Files
Agent-System/web/src/api/chatSearch.ts
T
weichenandCursor 47984f4863 fix(frontend): gate data fetches until session validated and improve workflow UX
Prevent login-page 401 noise by deferring project/chat API calls until auth is confirmed, use public-config for registration policy, and add client-side duty assignment checks before saving workflow plans.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 02:50:23 +00:00

47 lines
1.3 KiB
TypeScript

import { ChatSearchHit, ChatSearchMode } from '../types/workbench';
import { mergeAuthHeaders } from './authHeaders';
export interface SearchChatMessagesParams {
sessionId: string;
q: string;
mode?: ChatSearchMode;
category?: string;
dateFrom?: string;
dateTo?: string;
limit?: number;
}
export async function searchChatMessages(params: SearchChatMessagesParams): Promise<ChatSearchHit[]> {
const url = new URL('/api/v1/chat/search', window.location.origin);
url.searchParams.set('session_id', params.sessionId);
url.searchParams.set('q', params.q);
if (params.mode) {
url.searchParams.set('mode', params.mode);
}
if (params.category && params.category !== 'all') {
url.searchParams.set('category', params.category);
}
if (params.dateFrom) {
url.searchParams.set('date_from', params.dateFrom);
}
if (params.dateTo) {
url.searchParams.set('date_to', params.dateTo);
}
if (params.limit) {
url.searchParams.set('limit', String(params.limit));
}
const res = await fetch(url.toString(), {
method: 'GET',
headers: mergeAuthHeaders({ Accept: 'application/json' }),
});
if (!res.ok) {
throw new Error(`searchChatMessages failed: HTTP ${res.status}`);
}
const data = await res.json();
return Array.isArray(data) ? data : [];
}