/** * Detect provider SDKs installed in the user's repo — the deterministic spec * signal. The MCP server runs in the user's project (cwd), so it can read the * manifest directly. We send raw package names; the backend maps them to specs * (single source of truth for the SDK→spec table). Best-effort, never throws. */ export declare function detectRepoDependencies(cwd?: string): string[]; /** * `coach` — server-side conversational orchestrator. * * v0.1 of the MCP-only integration coach (replaces the curl-pipe-to-bash * skill install for the conversational flow). The LLM calls `coach` once * per turn; the server tracks session state and tells the LLM what to * say to the user + what tool (if any) to call next. * * Call shapes: * - First turn: { intent: "" } * - Subsequent: { session_id, user_response: "" } * * The server holds the 7-step state machine (intake → comprehend → * elicit → route → prove → propose → done). The LLM is a thin relay: * say the `message_for_user`, then act on `next_action`: * - "wait_for_user" — say the message, wait for the user's reply, * call coach again with their reply * - "call_tool" — say the message, call the named `tool_call` * with the args, optionally fold the result back * into the next coach turn * - "done" — say the message, end the integration session */ export interface CoachInput { intent?: string; session_id?: string; user_response?: string; context?: Record; } export interface CoachOption { label: string; value: string; description?: string; } export interface CoachResponse { session_id: string; step: string; message_for_user: string; next_action: "wait_for_user" | "call_tool" | "done"; question?: string; options?: CoachOption[]; default_option?: string; allow_freeform?: boolean; tool_call?: { tool: string; args: Record; }; diff?: Record; compliance_notes?: Array<{ severity: string; note: string; }>; } export declare const coachTool: { name: string; description: string; inputSchema: { type: string; properties: { intent: { type: string; description: string; }; session_id: { type: string; description: string; }; user_response: { type: string; description: string; }; context: { type: string; description: string; }; }; }; }; export declare function runCoach(input: CoachInput): Promise;