/** Fixed-destination, tool-free Messages adapter. Credentials remain in host memory. * No provider fallback, endpoint override, subprocess, tools, retries or logging. */ import { type GlobalAiBudget } from './global-ai-budget.js'; import { type ContextAdapter } from './context-delegation.js'; export interface AnthropicContextPricing { model: string; inputUsdPerMillion: number; outputUsdPerMillion: number; cacheReadUsdPerMillion: number; cacheWrite5mUsdPerMillion: number; cacheWrite1hUsdPerMillion: number; source: string; observedAt: string; } export interface AnthropicContextAuthorization { action: 'context.read.delegate'; endpoints: readonly ['https://api.anthropic.com/v1/messages/count_tokens', 'https://api.anthropic.com/v1/messages']; model: string; requestSha256: string; sourceHashes: ReadonlyArray>; requestBytes: number; countRequestBytes: number; totalRequestBytes: number; inputTokenCeiling: number; outputTokenCeiling: number; costCeilingUsd: number; concurrency: 1; tools: readonly []; } export interface AnthropicContextUsage { inputTokens: number; outputTokens: number; cacheReadInputTokens: number; cacheCreationInputTokens: number; cacheWrite5mInputTokens: number; cacheWrite1hInputTokens: number; } export interface AnthropicContextCallReceipt { requestSha256: string; requestedModel: string; actualModel?: string; requestId?: string; stopReason?: string; status: 'succeeded' | 'failed'; stage: string; durationMs: number; countedInputTokens?: number; usage?: AnthropicContextUsage; /** Computed from captured usage and supplied prices; never invoice proof. */ usagePricedCostUsd?: number; pricing: AnthropicContextPricing; } export interface AnthropicContextAdapterOptions { apiKey: string; model: string; workspace: string; pricing: AnthropicContextPricing; maxOutputTokens: number; maxCostUsd: number; /** Mandatory host policy gate, with no source content or credential arguments. * Host must retain/reduce its inherited envelope, never construct broader authority. */ authorize: (request: Readonly, signal: AbortSignal) => Promise; /** Trusted runtime port; default is the existing user-global launch fuse. */ budget?: Pick & Partial>; maxResponseBytes?: number; timeoutMs?: number; } export interface GovernedAnthropicContextAdapter extends ContextAdapter { receipts(): readonly Readonly[]; } /** No inference happens until host authorization and a global launch permit. * Uses token counting before generation, retaining one global slot across both * requests. At most one count request and one generation, never a retry. */ export declare function createAnthropicContextAdapter(options: AnthropicContextAdapterOptions): GovernedAnthropicContextAdapter; //# sourceMappingURL=anthropic-context-adapter.d.ts.map