import type { Logger } from 'pino'; export interface IntentResult { agent: string; score: number; reason: string; triggeredBy: 'explicit' | 'sticky' | 'keyword' | 'topic' | 'default' | 'fallback'; } /** * Classify a user message and return the best agent to handle it. * * `defaultAgent` is the operator-configured fallback (config.defaultAgent). * Without it, a generic message like "hello" on a fresh thread used to fall * through to the first agent in PROFILES declaration order (opencode), * regardless of what the operator picked as default — the web chat surface * hit this every time a new conversation was started. We give defaultAgent * a small score bias (smaller than topic +2 / keyword +1*weight, larger * than base weight) so explicit topic/keyword signal still wins, but * ambiguous messages route to the operator's chosen default. */ export declare function classifyIntent(text: string, stickyAgent?: string, logger?: Logger, defaultAgent?: string): IntentResult; //# sourceMappingURL=intent.d.ts.map