/** * Classification Prompt * * AI prompt for classifying candidate messages as activities. * Split into two prompt types for better accuracy with smaller models: * - Suggestion prompt: For regular candidates where activity is in the >>> message * - Agreement prompt: For [AGREE] candidates pointing to earlier messages */ import type { ScrapedMetadata } from '../scraper/types'; import type { CandidateMessage } from '../types'; export { parseClassificationResponse } from './response-parser'; /** * Inject metadata JSON after each URL in text. * Returns the enriched text with metadata on lines after URLs. */ export declare function injectUrlMetadataIntoText(text: string, metadataMap: Map): string; /** * User context for classification. */ export interface ClassificationContext { /** User's home country (e.g., "New Zealand") - REQUIRED for location disambiguation */ readonly homeCountry: string; /** User's timezone (e.g., "Pacific/Auckland") - optional, helps with temporal context */ readonly timezone?: string | undefined; /** URL metadata map for enriching context - optional */ readonly urlMetadata?: Map | undefined; } export type PromptType = 'suggestion' | 'agreement'; /** * Build the classification prompt for a batch of candidates. * Automatically selects the appropriate prompt type based on candidate types. */ export declare function buildClassificationPrompt(candidates: readonly CandidateMessage[], context: ClassificationContext, promptType?: PromptType): string; /** * Separate candidates into suggestion and agreement batches. * This allows processing them with different prompts for better accuracy. */ export declare function separateCandidatesByType(candidates: readonly CandidateMessage[]): { suggestions: CandidateMessage[]; agreements: CandidateMessage[]; }; /** * Get a stable hash of the prompt template. * * Uses an "eigenprompt" approach: generates a prompt from a dummy candidate * and hashes it. Any change to prompt structure/constants will change the hash. * * Computed lazily and cached for the lifetime of the process. */ export declare function getPromptSignature(): string; //# sourceMappingURL=prompt.d.ts.map