/** * Claude Code subscription provider. * * Backs the LLMClient interface with the local `claude` CLI in headless * print mode (`claude -p --output-format json`), so model calls bill against * the user's Claude Pro/Max SUBSCRIPTION credit instead of an * ANTHROPIC_API_KEY. No API key is read or required by this adapter. * * ───────────────────────────────────────────────────────────────────────── * CAPABILITY BOUNDARY: * * agent-bober drives its OWN agentic loop: chat() is contracted to take MY * tools, return ONE model turn, stop at tool_use, and let the caller execute * the tool. The `claude` CLI does the OPPOSITE — it runs ITS OWN loop with * ITS OWN built-in tools (Read/Write/Bash) and never hands custom tool_use * blocks back. There is no faithful single-turn-with-my-tools mode. * * Therefore this adapter supports ONLY the no-tools case (system + messages * → text). That covers the pure prompt→text roles (planner, researcher * question-gen). If `params.tools` is non-empty it THROWS rather than * silently dropping the tools and corrupting the caller's loop. * * COST CAVEAT: `claude -p` injects Claude Code's full system prompt * (~40k cache-creation tokens) on every call, and post-2026-06-15 these calls * bill at standard API rates against a capped monthly subscription credit * (Max 5×=$100/mo, 20×=$200/mo, no rollover). This path is NOT free-unlimited. * * TERMS: programmatic subscription use via `claude -p` is permitted by * Anthropic as of 2026-06-15, billed from the separate Agent-SDK/CLI credit. * Verify current terms before relying on it at scale. * ───────────────────────────────────────────────────────────────────────── */ import type { LLMClient, ChatParams, ChatResponse } from "./types.js"; export declare class ClaudeCodeAdapter implements LLMClient { private readonly binary; private readonly timeoutMs; /** * @param binary Path/name of the claude CLI (default "claude"). * @param timeoutMs Per-call timeout. Default 180s (sprints make long calls). */ constructor(binary?: string, timeoutMs?: number); chat(params: ChatParams): Promise; } //# sourceMappingURL=claude-code.d.ts.map