/** * Embeddings Module * * Generate embeddings for semantic search to find "hidden gems" - * activity suggestions that don't match explicit patterns. */ import type { ResponseCache } from '../../caching/types'; import type { CandidateMessage, EmbeddedMessage, EmbeddingConfig, ParsedMessage, QueryType, Result, SemanticSearchConfig } from '../../types'; export { cosineSimilarity, findTopK } from './cosine-similarity'; export { getAllQueryEmbeddings, getDefaultQueryEmbeddings, getQueryEmbedding, getQueryEmbeddingsDimensions, getQueryEmbeddingsModel, loadQueryEmbeddings } from './query-embeddings'; /** Suggestion queries - phrases indicating direct intent to do something. */ export declare const SUGGESTION_QUERIES: readonly string[]; /** Agreement queries - phrases indicating interest/agreement with a suggestion. */ export declare const AGREEMENT_QUERIES: readonly string[]; /** Activity type queries - short keywords for different activity categories. */ export declare const ACTIVITY_TYPE_QUERIES: readonly string[]; /** All default activity queries for semantic search. */ export declare const DEFAULT_ACTIVITY_QUERIES: readonly string[]; /** Get the query type for a given query string. */ export declare function getQueryType(query: string): QueryType; /** * Batch progress info passed to callbacks. */ interface EmbeddingBatchInfo { batchIndex: number; totalBatches: number; itemsInBatch: number; totalItems: number; cacheHit: boolean; durationMs: number; } /** * Callback for each batch of embeddings. */ type EmbeddingBatchCallback = (embeddings: readonly EmbeddedMessage[], info: EmbeddingBatchInfo) => void; /** * Options for messageEmbeddings. */ interface MessageEmbeddingsOptions { /** Called with each batch of embeddings as they become available */ onBatch?: EmbeddingBatchCallback; /** Batch size for API calls (default 100, max 2048) */ batchSize?: number; /** Max concurrent API calls (default 10) */ concurrency?: number; } /** * Stream message embeddings batch by batch. * * Embeddings are cached to the API cache. Each batch is passed to the onBatch * callback as soon as it's ready - nothing is accumulated in memory. * * @param messages Messages to embed (id and content required) * @param config OpenAI API configuration * @param cache Optional response cache to prevent duplicate API calls * @param options Streaming options including onBatch callback * @returns Success/failure result (embeddings are delivered via callback) */ export declare function messageEmbeddings(messages: readonly { id: number; content: string; }[], config: EmbeddingConfig, cache?: ResponseCache, options?: MessageEmbeddingsOptions): Promise>; /** * Embed query strings for semantic search. */ export declare function embedQueries(queries: readonly string[], config: EmbeddingConfig, cache?: ResponseCache): Promise>; /** * Find semantically similar messages using embedded queries. * * @param embeddings Pre-computed message embeddings * @param queryEmbeddings Embedded query vectors * @param config Search configuration * @returns Candidate messages found via semantic similarity */ export declare function findSemanticCandidates(embeddings: readonly EmbeddedMessage[], queryEmbeddings: readonly Float32Array[], messages: readonly ParsedMessage[], config?: SemanticSearchConfig): CandidateMessage[]; /** * Extract candidates using semantic search (embeddings). * * Embeds all messages and queries, then finds semantically similar messages. * Requires OpenAI API key for embeddings. * * IMPORTANT: Query embeddings are PRE-COMPUTED and loaded from query-embeddings.json.gz. * Do NOT call embedQueries() for the default queries - use getDefaultQueryEmbeddings(). * To update query embeddings, run: bun scripts/generate-query-embeddings.ts * * @param messages Parsed messages to search * @param embeddingConfig Embedding configuration * @param searchConfig Search configuration * @param cache Optional response cache to prevent duplicate API calls * @returns Semantic candidates or error */ export declare function extractCandidatesByEmbeddings(messages: readonly ParsedMessage[], embeddingConfig: EmbeddingConfig, searchConfig?: SemanticSearchConfig, cache?: ResponseCache, options?: MessageEmbeddingsOptions): Promise>; //# sourceMappingURL=index.d.ts.map