Add search and RAG workspace flows
This commit is contained in:
@@ -12,6 +12,7 @@ export const queryKeys = {
|
||||
limit: number
|
||||
) => ['financials-v3', ticker, surfaceKind, cadence, includeDimensions ? 'dims' : 'no-dims', includeFacts ? 'facts' : 'rows', factsCursor ?? '', factsLimit, cursor ?? '', limit] as const,
|
||||
filings: (ticker: string | null, limit: number) => ['filings', ticker ?? '', limit] as const,
|
||||
search: (query: string, ticker: string | null, sources: string[], limit: number) => ['search', query, ticker ?? '', sources.join(','), limit] as const,
|
||||
report: (accessionNumber: string) => ['report', accessionNumber] as const,
|
||||
watchlist: () => ['watchlist'] as const,
|
||||
researchJournal: (ticker: string) => ['research', 'journal', ticker] as const,
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user