Add search and RAG workspace flows

This commit is contained in:
2026-03-07 20:34:00 -05:00
parent db01f207a5
commit e20aba998b
35 changed files with 3417 additions and 372 deletions

View File

@@ -5,6 +5,7 @@ import {
getCompanyFinancialStatements,
getLatestPortfolioInsight,
getPortfolioSummary,
searchKnowledge,
getTask,
getTaskTimeline,
listFilings,
@@ -16,7 +17,8 @@ import {
import { queryKeys } from '@/lib/query/keys';
import type {
FinancialCadence,
FinancialSurfaceKind
FinancialSurfaceKind,
SearchSource
} from '@/lib/types';
export function companyAnalysisQueryOptions(ticker: string) {
@@ -86,6 +88,31 @@ export function filingsQueryOptions(input: { ticker?: string; limit?: number } =
});
}
export function searchQueryOptions(input: {
query: string;
ticker?: string | null;
sources?: SearchSource[];
limit?: number;
}) {
const normalizedQuery = input.query.trim();
const normalizedTicker = input.ticker?.trim().toUpperCase() ?? null;
const sources = input.sources && input.sources.length > 0
? [...new Set(input.sources)]
: ['documents', 'filings', 'research'] as SearchSource[];
const limit = input.limit ?? 10;
return queryOptions({
queryKey: queryKeys.search(normalizedQuery, normalizedTicker, sources, limit),
queryFn: () => searchKnowledge({
query: normalizedQuery,
ticker: normalizedTicker ?? undefined,
sources,
limit
}),
staleTime: 30_000
});
}
export function aiReportQueryOptions(accessionNumber: string) {
const normalizedAccession = accessionNumber.trim();