@deepstrike/sdk 0.2.71 → 0.2.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +27 -3
  2. package/dist/advanced/public.d.ts +4 -0
  3. package/dist/advanced/public.js +2 -0
  4. package/dist/agent-facade.d.ts +19 -6
  5. package/dist/agent-facade.js +118 -20
  6. package/dist/agent-ir.d.ts +11 -5
  7. package/dist/agent-ir.js +42 -26
  8. package/dist/canonical-prefix-allowlist.d.ts +6 -0
  9. package/dist/canonical-prefix-allowlist.js +30 -0
  10. package/dist/evals/public.d.ts +50 -0
  11. package/dist/evals/public.js +25 -0
  12. package/dist/guardrail.d.ts +4 -1
  13. package/dist/handoff-target.d.ts +2 -0
  14. package/dist/handoff-target.js +7 -1
  15. package/dist/index.d.ts +10 -16
  16. package/dist/index.js +5 -7
  17. package/dist/kernel.d.ts +2 -2
  18. package/dist/knowledge/public.d.ts +2 -0
  19. package/dist/knowledge/public.js +1 -1
  20. package/dist/knowledge/source.d.ts +7 -0
  21. package/dist/knowledge/source.js +20 -1
  22. package/dist/memory/protocols.d.ts +2 -2
  23. package/dist/projection-pairs.d.ts +43 -0
  24. package/dist/projection-pairs.js +9 -0
  25. package/dist/providers/anthropic-adapter.d.ts +2 -2
  26. package/dist/providers/anthropic.d.ts +4 -4
  27. package/dist/providers/base.d.ts +5 -5
  28. package/dist/providers/content-normalization.d.ts +4 -4
  29. package/dist/providers/gemini-adapter.d.ts +2 -2
  30. package/dist/providers/gemini.d.ts +3 -3
  31. package/dist/providers/ollama-adapter.d.ts +2 -2
  32. package/dist/providers/ollama.d.ts +2 -2
  33. package/dist/providers/openai-chat.d.ts +4 -4
  34. package/dist/providers/openai-responses-adapter.d.ts +2 -2
  35. package/dist/providers/openai-responses.d.ts +2 -2
  36. package/dist/providers/openai.d.ts +4 -4
  37. package/dist/providers/protocol-adapter.d.ts +2 -2
  38. package/dist/providers/protocol-capabilities.d.ts +1 -0
  39. package/dist/providers/protocol-capabilities.js +3 -0
  40. package/dist/providers/public.d.ts +4 -2
  41. package/dist/providers/public.js +2 -1
  42. package/dist/providers/replay-validator.d.ts +3 -3
  43. package/dist/runtime/archive.d.ts +7 -7
  44. package/dist/runtime/canonical-kernel-step.d.ts +2 -2
  45. package/dist/runtime/context-manager.d.ts +56 -0
  46. package/dist/runtime/context-manager.js +112 -0
  47. package/dist/runtime/eval.d.ts +2 -2
  48. package/dist/runtime/kernel-step.d.ts +5 -5
  49. package/dist/runtime/provider-replay.d.ts +2 -2
  50. package/dist/runtime/public.d.ts +22 -0
  51. package/dist/runtime/public.js +11 -0
  52. package/dist/runtime/replay-fixture.d.ts +3 -3
  53. package/dist/runtime/replay-fixture.js +1 -1
  54. package/dist/runtime/replay-provider.d.ts +4 -4
  55. package/dist/runtime/replay-provider.js +1 -1
  56. package/dist/runtime/runner.d.ts +17 -5
  57. package/dist/runtime/runner.js +110 -37
  58. package/dist/runtime/session-log.d.ts +1 -1
  59. package/dist/runtime/session-repair.d.ts +2 -2
  60. package/dist/runtime/workflow-control-flow.d.ts +1 -1
  61. package/dist/runtime/workflow-control-flow.js +16 -2
  62. package/dist/runtime-classification.d.ts +161 -0
  63. package/dist/runtime-classification.js +66 -0
  64. package/dist/runtime-language.d.ts +32 -0
  65. package/dist/runtime-language.js +51 -0
  66. package/dist/skill.d.ts +31 -5
  67. package/dist/types/agent.d.ts +17 -4
  68. package/dist/types.d.ts +22 -12
  69. package/dist/workflow/definition.d.ts +19 -0
  70. package/dist/workflow/definition.js +29 -0
  71. package/dist/workflow/public.d.ts +3 -1
  72. package/dist/workflow/public.js +1 -0
  73. package/package.json +16 -2
  74. package/dist/compat/anthropic/mcp.d.ts +0 -15
  75. package/dist/compat/anthropic/mcp.js +0 -10
  76. package/dist/compat/openai/agent.d.ts +0 -34
  77. package/dist/compat/openai/agent.js +0 -24
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createAgent } from "./agent-facade.js";
2
- export type { AgentDefinition, AgentRunOptions, AgentSession, DelegationRequest, DelegationResult, ExecutableAgent, MemoryInput, RecallOptions, RunResult, SessionRef, } from "./agent-facade.js";
2
+ export type { AgentDefinition, AgentRunOptions, AgentSession, AgentRuntime, DelegationRequest, DelegationResult, MemoryInput, RecallOptions, RunResult, SessionRef, } from "./agent-facade.js";
3
3
  export { collectText } from "./runtime/runner.js";
4
4
  export type { InstructionProfile, NudgeRule, NudgeTrigger } from "./harness/public.js";
5
5
  export type { SignalPolicy } from "./runtime/os-profile.js";
@@ -8,10 +8,6 @@ export type { ContextPolicyOverrides, ContextPolicy, ContextPolicyWire, ContextP
8
8
  export type { SessionEvent, SessionEventKind } from "./runtime/session-log.js";
9
9
  export { SESSION_EVENT_KINDS } from "./runtime/session-log.js";
10
10
  export { CANONICAL_CONTENT_PARTS_PREFIX, encodeCanonicalContentParts, decodeCanonicalContentParts, } from "./runtime/kernel-step.js";
11
- export { FileKernelJournal, InMemoryKernelJournal, JournalCasConflictError, JournalIntegrityError, JournalIoError, } from "./runtime/kernel-journal.js";
12
- export type { CheckpointCandidate, InstalledCheckpoint, JournalAppendReceipt, JournalEntry, JournalHead, JournalPruneReceipt, JournalRecordInput, KernelJournal, } from "./runtime/kernel-journal.js";
13
- export { diagnoseKernelJournal } from "./runtime/kernel-doctor.js";
14
- export type { KernelJournalDiagnosis } from "./runtime/kernel-doctor.js";
15
11
  export { InMemoryGroupBudgetStore, GroupBudgetScope } from "./runtime/run-group.js";
16
12
  export type { RunGroup, GroupBudgetStore, GroupLedger, GroupCharge, GroupMember, GroupBudgetRequest, GroupBudgetReservation, } from "./runtime/run-group.js";
17
13
  export { InMemoryEventStream, isVisibleTo } from "./runtime/event-stream.js";
@@ -36,14 +32,8 @@ export { OpenAIResponsesProvider } from "./providers/openai-responses.js";
36
32
  export { createProvider, createProviderAsync, resolveProviderRuntime, resolveProviderRuntimeAsync } from "./providers/catalog.js";
37
33
  export { UnsupportedModalityError } from "./providers/base.js";
38
34
  export type { CreateProviderOptions, EndpointProfileId } from "./providers/catalog.js";
39
- export { createProviderRequestPlan, createProviderRequestPlanForProvider, estimateProviderPromptTokens, measurementForPlan, normalizeProviderUsage, priceProviderUsage, recordPromptMeasurement, resolveProviderRoute } from "./providers/request-plan.js";
40
- export type { CostObservation, NormalizedProviderUsage, PricingSnapshot, ProviderRequestEndpoint, ProviderRequestPlan, RecordedPromptMeasurement, ResolvedProviderRoute } from "./providers/request-plan.js";
41
- export { FULL_FOOTPRINT_USAGE_ACCOUNTING_POLICY, providerAttemptToRecord } from "./runtime/execution-evidence.js";
42
- export type { InvocationOutcome, ModelInvocation, ProviderAttempt, ProviderAttemptRecord, ProviderAttemptStatus, UsageAccountingPolicy, ModelUsageSettlement } from "./runtime/execution-evidence.js";
43
35
  export { VERIFIABLE_REPORT_SCHEMA, VERIFIABLE_FORK_SCHEMA, assertVerifiableReportSchema, createVerifiableRuntimeAdapter, createNativeVerifiableRuntimeAdapter, VerifiableOperation, } from "./runtime/verifiable-report.js";
44
36
  export type { VerifiableCommand, CheckVerdict, VerifiableForkManifest, ForkPlan, VerifiableEvidence, VerifyOptions, ReplayOptions, VerifiableRuntimeAdapter, VerifiableReport, VerifiableOperationJson, } from "./runtime/verifiable-report.js";
45
- export { createEvolutionRuntimeAdapter, createNativeEvolutionRuntimeAdapter, EvolutionRuntime } from "./runtime/evolution.js";
46
- export type { ActivationBinding, ArtifactKind, ArtifactManifest, ArtifactRef, ArtifactSet, ArtifactVersion, ContextEntryRef, ContextEntrySource, ContextExecutionInput, ContextPreparationRequest, ContextPlan, ContextPlanAction, ContextSelection, ContextState, EvaluationContextBinding, EvaluationFact, EvaluationGate, EvaluationMetric, EvaluationRun, EvolutionBundle, EvolutionProposal, EvolutionReport, EvolutionVerdict, EvolutionViolation, PromotionDecision, PromotionOutcome, EvolutionStore, } from "./runtime/evolution.js";
47
37
  export type { GovernancePolicy, GovernanceConstraint } from "./governance.js";
48
38
  export { Agent } from "./agent.js";
49
39
  export type { AgentOptions, AgentMemory, MemoryReference, ModelRef, ModelRequirement } from "./agent.js";
@@ -52,13 +42,17 @@ export type { AgentCapabilityIR, AgentLoweringInputs, AgentMemoryIR, AgentSpec,
52
42
  export type { Guardrail } from "./guardrail.js";
53
43
  export type { MCPServer, McpTransport } from "./mcp-server.js";
54
44
  export type { Knowledge, KnowledgeSourceRef } from "./knowledge/public.js";
45
+ export { createTextKnowledgeSource } from "./knowledge/public.js";
46
+ export type { TextKnowledgeDocument } from "./knowledge/public.js";
47
+ export { agentRefName } from "./handoff-target.js";
55
48
  export type { AgentRef, Handoff } from "./handoff-target.js";
56
49
  export type { Session } from "./session.js";
50
+ export { createWorkflow } from "./workflow/definition.js";
51
+ export type { WorkflowDefinition, WorkflowStep, WorkflowResult } from "./workflow/definition.js";
52
+ export { evaluate } from "./evals/public.js";
53
+ export type { Dataset, DatasetCase, Evaluator, EvalResult, EvalRun, EvalTrace } from "./evals/public.js";
57
54
  export type { RuntimeSignal, SignalClaim, SignalDeliveryReceipt, SignalSource, } from "./signals/types.js";
58
- export type { ProviderMessage, ToolCall, ToolExecutionResult, ToolSchema, ContentPart, TextPart, ImagePart, AudioPart, MediaSource, ContentBlockText, ContentBlockImage, ContentBlockAudio, ContentBlockVideo, ContentBlockFile, StreamEvent, TextDelta, ThinkingDelta, ToolCallEvent, ToolChunk, ToolDeltaEvent, ToolSuspendEvent, ToolResultEvent, ToolAuditFailedEvent, DoneEvent, ErrorEvent, PermissionRequestEvent, PermissionResolvedEvent, PermissionResponse, EntropySample, EntropySampleEvent, EntropyAlertEvent, EntropyWatchOptions, LLMProvider, RetryConfig, TokenUsage, ProviderWireEvidence, ProviderTransportTelemetry, } from "./types.js";
55
+ export type { ModelMessage, RuntimeMessage, StoredMessage, WireMessage, ToolCall, ToolExecutionResult, ToolSchema, ContentPart, TextPart, ImagePart, AudioPart, MediaSource, ContentBlockText, ContentBlockImage, ContentBlockAudio, ContentBlockVideo, ContentBlockFile, StreamEvent, TextDelta, ThinkingDelta, ToolCallEvent, ToolChunk, ToolDeltaEvent, ToolSuspendEvent, ToolResultEvent, ToolAuditFailedEvent, DoneEvent, ErrorEvent, PermissionRequestEvent, PermissionResolvedEvent, PermissionResponse, EntropySample, EntropySampleEvent, EntropyAlertEvent, EntropyWatchOptions, LLMProvider, RetryConfig, TokenUsage, ProviderWireEvidence, ProviderTransportTelemetry, } from "./types.js";
59
56
  export { DurableContentError, decodeDurableContent, decodeDurableToolResult, encodeDurableContent, encodeDurableToolResult, toolOutputBlocksToDurable, durableBlocksToToolOutput, } from "./runtime/durable-content.js";
60
57
  export type { DurableContent, DurableContentBlock, DurableSource, DurableToolResult } from "./runtime/durable-content.js";
61
- export type { WorkflowSpec, WorkflowNodeSpec, SchedulingFactors, WorkflowDependencyPolicy, WorkflowNodeStatus, WorkflowNodeOutcome, WorkflowOutcome, } from "./types/agent.js";
62
- export { createContextPreparationAdapter, createNativeContextPreparationAdapter } from "./runtime/context.js";
63
- export type { ContextPrepareJson, ContextVerifyJson, ContextPrepared, ContextProviderPreparationRequest } from "./runtime/context.js";
64
- export type { PreparedProviderRequest } from "./types.js";
58
+ export type { WorkflowSpec, WorkflowNodeSpec, SchedulingFactors, WorkflowDependencyPolicy, WorkflowContextInclude, WorkflowDependencyMode, WorkflowContextPolicy, WorkflowNodeStatus, WorkflowNodeOutcome, WorkflowOutcome, } from "./types/agent.js";
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // ╔══════════════════════════════════════════════════════════════════════════╗
2
- // ║ @deepstrike/sdk — root surface (v0.2.30). ║
2
+ // ║ @deepstrike/sdk — root surface (v0.2.72). ║
3
3
  // ║ ║
4
4
  // ║ This is the intent layer: run an agent, run a workflow, author a tool, ║
5
5
  // ║ pick a provider. Advanced machinery lives behind subpaths: ║
@@ -20,8 +20,6 @@ export { SESSION_EVENT_KINDS } from "./runtime/session-log.js";
20
20
  // ── content-parts-v1 registered encoding (F14/B5; byte-pinned by sdk-conformance) ──
21
21
  export { CANONICAL_CONTENT_PARTS_PREFIX, encodeCanonicalContentParts, decodeCanonicalContentParts, } from "./runtime/kernel-step.js";
22
22
  // ── Durable transaction capability (Canonical Kernel ABI §9.1) ──────────────
23
- export { FileKernelJournal, InMemoryKernelJournal, JournalCasConflictError, JournalIntegrityError, JournalIoError, } from "./runtime/kernel-journal.js";
24
- export { diagnoseKernelJournal } from "./runtime/kernel-doctor.js";
25
23
  export { InMemoryGroupBudgetStore, GroupBudgetScope } from "./runtime/run-group.js";
26
24
  export { InMemoryEventStream, isVisibleTo } from "./runtime/event-stream.js";
27
25
  export { reactByMention, directorDriven, roundRobin, firstNonEmpty, union } from "./runtime/turn-policy.js";
@@ -38,14 +36,14 @@ export { OpenAIProvider } from "./providers/openai.js";
38
36
  export { OpenAIResponsesProvider } from "./providers/openai-responses.js";
39
37
  export { createProvider, createProviderAsync, resolveProviderRuntime, resolveProviderRuntimeAsync } from "./providers/catalog.js";
40
38
  export { UnsupportedModalityError } from "./providers/base.js";
41
- export { createProviderRequestPlan, createProviderRequestPlanForProvider, estimateProviderPromptTokens, measurementForPlan, normalizeProviderUsage, priceProviderUsage, recordPromptMeasurement, resolveProviderRoute } from "./providers/request-plan.js";
42
- export { FULL_FOOTPRINT_USAGE_ACCOUNTING_POLICY, providerAttemptToRecord } from "./runtime/execution-evidence.js";
43
39
  export { VERIFIABLE_REPORT_SCHEMA, VERIFIABLE_FORK_SCHEMA, assertVerifiableReportSchema, createVerifiableRuntimeAdapter, createNativeVerifiableRuntimeAdapter, VerifiableOperation, } from "./runtime/verifiable-report.js";
44
- export { createEvolutionRuntimeAdapter, createNativeEvolutionRuntimeAdapter, EvolutionRuntime } from "./runtime/evolution.js";
45
40
  // ── Multi-agent primitive ───────────────────────────────────────────────────
46
41
  // Parallel fan-out / sub-agent delegation. The full orchestration layer is in `@deepstrike/sdk/workflow`.
47
42
  // ── Ecosystem Surface Contract (spc_001) ────────────────────────────────────
48
43
  export { Agent } from "./agent.js";
49
44
  export { lowerAgent, normalizeAgent } from "./agent-ir.js";
45
+ export { createTextKnowledgeSource } from "./knowledge/public.js";
46
+ export { agentRefName } from "./handoff-target.js";
47
+ export { createWorkflow } from "./workflow/definition.js";
48
+ export { evaluate } from "./evals/public.js";
50
49
  export { DurableContentError, decodeDurableContent, decodeDurableToolResult, encodeDurableContent, encodeDurableToolResult, toolOutputBlocksToDurable, durableBlocksToToolOutput, } from "./runtime/durable-content.js";
51
- export { createContextPreparationAdapter, createNativeContextPreparationAdapter } from "./runtime/context.js";
package/dist/kernel.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ProviderMessage } from "./types.js";
1
+ import type { ModelMessage } from "./types.js";
2
2
  /**
3
3
  * M2 资源配额 — declarative resource limits enforced at the kernel's single syscall trap.
4
4
  *
@@ -150,7 +150,7 @@ export interface CanonicalKernelInstance {
150
150
  interface KernelModule {
151
151
  CanonicalKernel: new () => CanonicalKernelInstance;
152
152
  SignalRouter: new (maxQueueSize: number) => SignalRouterInstance;
153
- buildEvalMessages(goal: string, criteria: NativeCriterion[], result: string, attempt: number, extractSkillOnPass: boolean): ProviderMessage[];
153
+ buildEvalMessages(goal: string, criteria: NativeCriterion[], result: string, attempt: number, extractSkillOnPass: boolean): ModelMessage[];
154
154
  parseVerdict(content: string): Verdict;
155
155
  verdictOutputSchema(extractSkillOnPass: boolean): string;
156
156
  verifiableOperationJson(request: string): string;
@@ -27,3 +27,5 @@ export interface Knowledge {
27
27
  metadata?: Record<string, unknown>;
28
28
  providerOptions?: Record<string, unknown>;
29
29
  }
30
+ export { createTextKnowledgeSource } from "./source.js";
31
+ export type { TextKnowledgeDocument } from "./source.js";
@@ -1 +1 @@
1
- export {};
1
+ export { createTextKnowledgeSource } from "./source.js";
@@ -3,3 +3,10 @@ export interface KnowledgeSource {
3
3
  /** One-time warmup called before the first run (load index, open connection, etc.). */
4
4
  init(): Promise<void>;
5
5
  }
6
+ export interface TextKnowledgeDocument {
7
+ id?: string;
8
+ name?: string;
9
+ content: string;
10
+ }
11
+ /** Deterministic local retrieval for inline text knowledge; external sources keep explicit bindings. */
12
+ export declare function createTextKnowledgeSource(documents: TextKnowledgeDocument[]): KnowledgeSource;
@@ -1 +1,20 @@
1
- export {};
1
+ /** Deterministic local retrieval for inline text knowledge; external sources keep explicit bindings. */
2
+ export function createTextKnowledgeSource(documents) {
3
+ const prepared = documents.filter(document => document.content.trim()).map((document, index) => ({
4
+ ...document,
5
+ key: document.id ?? document.name ?? `text-${index}`,
6
+ terms: new Set(document.content.toLowerCase().match(/[\p{L}\p{N}]+/gu) ?? []),
7
+ }));
8
+ return {
9
+ async init() { },
10
+ async retrieve(goal, topK = 5) {
11
+ const queryTerms = new Set(goal.toLowerCase().match(/[\p{L}\p{N}]+/gu) ?? []);
12
+ return prepared
13
+ .map(document => ({ document, score: [...queryTerms].reduce((score, term) => score + (document.terms.has(term) ? 1 : 0), 0) }))
14
+ .sort((left, right) => right.score - left.score || left.document.key.localeCompare(right.document.key))
15
+ .filter(item => item.score > 0 || queryTerms.size === 0)
16
+ .slice(0, Math.max(0, topK))
17
+ .map(({ document }) => document.name ? `[Knowledge: ${document.name}]\n${document.content}` : document.content);
18
+ },
19
+ };
20
+ }
@@ -1,6 +1,6 @@
1
- import type { ProviderMessage, ContentPart } from "../types.js";
1
+ import type { ModelMessage, ContentPart } from "../types.js";
2
2
  export interface SessionMessage {
3
- role: ProviderMessage["role"];
3
+ role: ModelMessage["role"];
4
4
  content: string;
5
5
  /** Structured multimodal parts. Preserved for round-trip fidelity (e.g. tool result messages). */
6
6
  contentParts?: ContentPart[];
@@ -0,0 +1,43 @@
1
+ /** SPC-028-09: registered authority/projection relationships. */
2
+ export interface ProjectionPair {
3
+ readonly authority: string;
4
+ readonly projection: string;
5
+ readonly crossingFunction: string;
6
+ }
7
+ export declare const PROJECTION_PAIRS: {
8
+ readonly Message: {
9
+ readonly authority: "ModelMessage";
10
+ readonly projection: "WireMessage";
11
+ readonly crossingFunction: "adapter.encode/decode";
12
+ };
13
+ readonly Content: {
14
+ readonly authority: "ContentPart[]";
15
+ readonly projection: "string";
16
+ readonly crossingFunction: "projectContentToText";
17
+ };
18
+ readonly ToolResult: {
19
+ readonly authority: "contentParts";
20
+ readonly projection: "output";
21
+ readonly crossingFunction: "projectToolOutputToText";
22
+ };
23
+ readonly StopReason: {
24
+ readonly authority: "GenerationProtocol stop reason";
25
+ readonly projection: "CanonicalStopReason";
26
+ readonly crossingFunction: "normalizeStopReason";
27
+ };
28
+ readonly ToolCall: {
29
+ readonly authority: "ToolCall";
30
+ readonly projection: "ToolCallEvent";
31
+ readonly crossingFunction: "decodeToolCall";
32
+ };
33
+ readonly ResourceQuota: {
34
+ readonly authority: "ResourceQuota";
35
+ readonly projection: "QuotaSnapshot";
36
+ readonly crossingFunction: "projectQuota";
37
+ };
38
+ readonly TerminationReason: {
39
+ readonly authority: "Kernel terminal fact";
40
+ readonly projection: "RunResult.status";
41
+ readonly crossingFunction: "statusFromDone";
42
+ };
43
+ };
@@ -0,0 +1,9 @@
1
+ export const PROJECTION_PAIRS = {
2
+ Message: { authority: "ModelMessage", projection: "WireMessage", crossingFunction: "adapter.encode/decode" },
3
+ Content: { authority: "ContentPart[]", projection: "string", crossingFunction: "projectContentToText" },
4
+ ToolResult: { authority: "contentParts", projection: "output", crossingFunction: "projectToolOutputToText" },
5
+ StopReason: { authority: "GenerationProtocol stop reason", projection: "CanonicalStopReason", crossingFunction: "normalizeStopReason" },
6
+ ToolCall: { authority: "ToolCall", projection: "ToolCallEvent", crossingFunction: "decodeToolCall" },
7
+ ResourceQuota: { authority: "ResourceQuota", projection: "QuotaSnapshot", crossingFunction: "projectQuota" },
8
+ TerminationReason: { authority: "Kernel terminal fact", projection: "RunResult.status", crossingFunction: "statusFromDone" },
9
+ };
@@ -1,4 +1,4 @@
1
- import type { ProviderMessage, ProviderReplay, ProviderUsage, ToolCall } from "../types.js";
1
+ import type { ModelMessage, ProviderReplay, ProviderUsage, ToolCall } from "../types.js";
2
2
  import type { CanonicalAdapterInput } from "./content-normalization.js";
3
3
  import { type AdapterDecodeInput, type AdapterOutput, type AdapterStreamInput, type CanonicalStopReason, type ProtocolAdapter } from "./protocol-adapter.js";
4
4
  export declare const ANTHROPIC_TEXTUAL_TOOL_CALL_START_MARKER = "<\uFF5C\uFF5CDSML\uFF5C\uFF5Ctool_calls>";
@@ -47,7 +47,7 @@ export declare class AnthropicMessagesAdapter implements ProtocolAdapter<Anthrop
47
47
  readonly protocolCapabilities: import("./protocol-capabilities.js").ProtocolRuntimeCapabilities;
48
48
  buildRequest(input: CanonicalAdapterInput): AnthropicRequestPlan;
49
49
  decodeComplete(raw: Record<string, any>, decodeInput: AdapterDecodeInput): {
50
- message: ProviderMessage;
50
+ message: ModelMessage;
51
51
  replay?: ProviderReplay;
52
52
  };
53
53
  createStreamState(input: AdapterStreamInput): AnthropicStreamState;
@@ -1,5 +1,5 @@
1
1
  import type { PreparedProviderRequest, ProviderRunState as PreparedRunState } from "../types.js";
2
- import type { LLMProvider, ProviderMessage, PromptMeasurement, ProviderDescriptor, ProviderReplay, ProviderTransportTelemetry, RenderedContext, RuntimePolicy, StreamEvent, ToolSchema } from "../types.js";
2
+ import type { LLMProvider, ModelMessage, PromptMeasurement, ProviderDescriptor, ProviderReplay, ProviderTransportTelemetry, RenderedContext, RuntimePolicy, StreamEvent, ToolSchema } from "../types.js";
3
3
  import { type CanonicalAdapterInput } from "./content-normalization.js";
4
4
  export interface AnthropicProviderConfig {
5
5
  apiKey: string;
@@ -35,11 +35,11 @@ export declare class AnthropicProvider implements LLMProvider {
35
35
  private lastTelemetry;
36
36
  peekTransportTelemetry(): ProviderTransportTelemetry | undefined;
37
37
  bindResolvedRuntime(resolved: ResolvedAnthropicRuntime): void;
38
- peekProviderReplay(message: Pick<ProviderMessage, "content" | "toolCalls">): ProviderReplay | undefined;
39
- seedProviderReplay(message: Pick<ProviderMessage, "content" | "toolCalls">, replay: ProviderReplay): void;
38
+ peekProviderReplay(message: Pick<ModelMessage, "content" | "toolCalls">): ProviderReplay | undefined;
39
+ seedProviderReplay(message: Pick<ModelMessage, "content" | "toolCalls">, replay: ProviderReplay): void;
40
40
  private adapterInput;
41
41
  private buildPlan;
42
- complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ProviderMessage>;
42
+ complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ModelMessage>;
43
43
  /** Native measurement belongs to the verified official endpoint, not the wire protocol. */
44
44
  countTokens(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<PromptMeasurement>;
45
45
  private countPlan;
@@ -1,4 +1,4 @@
1
- import type { ProviderMessage, RenderedContext } from "../types.js";
1
+ import type { ModelMessage, RenderedContext } from "../types.js";
2
2
  export declare class CircuitBreaker {
3
3
  private readonly openAfter;
4
4
  private readonly resetAfter;
@@ -53,7 +53,7 @@ export declare class UnsupportedModalityError extends Error {
53
53
  readonly provider: string;
54
54
  constructor(modality: string, provider: string);
55
55
  }
56
- export declare function toAnthropicContent(msg: ProviderMessage): string | Array<Record<string, unknown>>;
56
+ export declare function toAnthropicContent(msg: ModelMessage): string | Array<Record<string, unknown>>;
57
57
  /**
58
58
  * History turns with the volatile State turn appended as the latest turn, for
59
59
  * providers that render it inline (OpenAI-family, Gemini, Ollama). Appending
@@ -64,14 +64,14 @@ export declare function toAnthropicContent(msg: ProviderMessage): string | Array
64
64
  * AnthropicProvider.buildMessages). When `stateTurn` is absent (un-rebuilt
65
65
  * binding) the State turn is still inside `turns`, so this returns `turns` as-is.
66
66
  */
67
- export declare function turnsWithStateAppended(context: RenderedContext): ProviderMessage[];
67
+ export declare function turnsWithStateAppended(context: RenderedContext): ModelMessage[];
68
68
  /** Convert RenderedContext.turns to Anthropic messages array.
69
69
  * `turns` contains only user / assistant / tool roles — no system filtering needed. */
70
- export declare function toAnthropicMessages(turns: ProviderMessage[], nativeReplay?: (message: ProviderMessage) => Array<Record<string, unknown>> | undefined): Array<Record<string, unknown>>;
70
+ export declare function toAnthropicMessages(turns: ModelMessage[], nativeReplay?: (message: ModelMessage) => Array<Record<string, unknown>> | undefined): Array<Record<string, unknown>>;
71
71
  /** Map an audio MIME type to OpenAI's `input_audio.format` (accepts "mp3" | "wav").
72
72
  * `audio/mpeg` must become "mp3", not the raw "mpeg" subtype. */
73
73
  export declare function openaiAudioFormat(mediaType: string | undefined): string;
74
- export declare function toOpenAIContent(msg: ProviderMessage): string | Array<Record<string, unknown>>;
74
+ export declare function toOpenAIContent(msg: ModelMessage): string | Array<Record<string, unknown>>;
75
75
  /** Build the full OpenAI messages array from a RenderedContext.
76
76
  * Prepends systemText as the first system message, then converts turns. */
77
77
  export declare function toOpenAIMessageParams(context: RenderedContext): Array<Record<string, unknown>>;
@@ -1,4 +1,4 @@
1
- import type { ProviderMessage, RenderedContext, ToolOutputBlock, ToolResultPart, ToolSchema, ToolCall, ProviderReplay } from "../types.js";
1
+ import type { ModelMessage, RenderedContext, ToolOutputBlock, ToolResultPart, ToolSchema, ToolCall, ProviderReplay } from "../types.js";
2
2
  import type { ResolvedProviderRuntime } from "./model-registry.js";
3
3
  export declare class ContentValidationError extends Error {
4
4
  constructor(message: string);
@@ -16,7 +16,7 @@ export interface CanonicalToolResult {
16
16
  }
17
17
  export type CanonicalMessageBlock = ToolOutputBlock | CanonicalToolResult;
18
18
  export interface CanonicalMessage {
19
- readonly role: ProviderMessage["role"];
19
+ readonly role: ModelMessage["role"];
20
20
  readonly blocks: readonly CanonicalMessageBlock[];
21
21
  /** `blocks` remains authoritative; this only preserves an observable wire-shape distinction. */
22
22
  readonly contentForm?: "text" | "blocks";
@@ -43,7 +43,7 @@ export declare function projectToolOutputToText(blocks: readonly ToolOutputBlock
43
43
  export declare function normalizeToolResultPart(part: ToolResultPart): CanonicalToolResult;
44
44
  /** Attach process-local blocks only within the operation that produced them. */
45
45
  export declare function attachToolOutputOverlay(context: RenderedContext, overlay: ReadonlyMap<string, readonly ToolOutputBlock[]>): RenderedContext;
46
- export declare function normalizeCanonicalContext(context: RenderedContext, replayForMessage?: (message: ProviderMessage) => ProviderReplay | undefined): CanonicalRenderedContext;
46
+ export declare function normalizeCanonicalContext(context: RenderedContext, replayForMessage?: (message: ModelMessage) => ProviderReplay | undefined): CanonicalRenderedContext;
47
47
  /** Full-tree validation uses the resolved operation capabilities. Unknown stays unknown/fail-open. */
48
48
  export declare function validateCanonicalAdapterInput(input: CanonicalAdapterInput): void;
49
49
  export declare function normalizeCanonicalAdapterInput(input: {
@@ -51,6 +51,6 @@ export declare function normalizeCanonicalAdapterInput(input: {
51
51
  tools: readonly ToolSchema[];
52
52
  resolved: ResolvedProviderRuntime<unknown>;
53
53
  extensions?: Readonly<Record<string, unknown>>;
54
- replayForMessage?: (message: ProviderMessage) => ProviderReplay | undefined;
54
+ replayForMessage?: (message: ModelMessage) => ProviderReplay | undefined;
55
55
  }): CanonicalAdapterInput;
56
56
  export declare function normalizeToolResultContent(callId: string, output: string, isError: boolean, contentParts: readonly ToolOutputBlock[] | undefined): CanonicalToolResult;
@@ -1,5 +1,5 @@
1
1
  import type { Content, GenerateContentRequest, GenerateContentResponse, ModelParams, Tool } from "@google/generative-ai";
2
- import type { ProviderMessage, ProviderUsage } from "../types.js";
2
+ import type { ModelMessage, ProviderUsage } from "../types.js";
3
3
  import type { CanonicalAdapterInput } from "./content-normalization.js";
4
4
  import { type AdapterDecodeInput, type AdapterOutput, type AdapterStreamInput, type CanonicalStopReason, type ProtocolAdapter } from "./protocol-adapter.js";
5
5
  export interface GeminiRequestPlan {
@@ -23,7 +23,7 @@ export declare class GeminiAdapter implements ProtocolAdapter<GeminiRequestPlan,
23
23
  readonly protocolCapabilities: import("./protocol-capabilities.js").ProtocolRuntimeCapabilities;
24
24
  buildRequest(input: CanonicalAdapterInput): GeminiRequestPlan;
25
25
  decodeComplete(raw: GenerateContentResponse, _input: AdapterDecodeInput): {
26
- message: ProviderMessage;
26
+ message: ModelMessage;
27
27
  };
28
28
  createStreamState(input: AdapterStreamInput): GeminiStreamState;
29
29
  pushStreamChunk(chunk: GenerateContentResponse, state: GeminiStreamState): AdapterOutput;
@@ -1,9 +1,9 @@
1
1
  import type { PreparedProviderRequest, ProviderRunState as PreparedRunState } from "../types.js";
2
2
  import { type Content } from "@google/generative-ai";
3
- import type { ProviderMessage, RenderedContext, ToolSchema, StreamEvent, LLMProvider, RuntimePolicy, PromptMeasurement, ProviderTransportTelemetry } from "../types.js";
3
+ import type { ModelMessage, RenderedContext, ToolSchema, StreamEvent, LLMProvider, RuntimePolicy, PromptMeasurement, ProviderTransportTelemetry } from "../types.js";
4
4
  import { type CanonicalAdapterInput } from "./content-normalization.js";
5
5
  type ResolvedGeminiRuntime = CanonicalAdapterInput["resolved"];
6
- export declare function buildContents(turns: ProviderMessage[]): Content[];
6
+ export declare function buildContents(turns: ModelMessage[]): Content[];
7
7
  export declare class GeminiProvider implements LLMProvider {
8
8
  private readonly model;
9
9
  private resolvedRuntime?;
@@ -24,7 +24,7 @@ export declare class GeminiProvider implements LLMProvider {
24
24
  runtimePolicy(): RuntimePolicy;
25
25
  bindResolvedRuntime(resolved: ResolvedGeminiRuntime): void;
26
26
  private adapterInput;
27
- complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ProviderMessage>;
27
+ complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ModelMessage>;
28
28
  prepareRequest(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>, state?: PreparedRunState): PreparedProviderRequest;
29
29
  stream(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>, state?: PreparedRunState, signal?: AbortSignal): AsyncIterable<StreamEvent>;
30
30
  private streamPlan;
@@ -1,4 +1,4 @@
1
- import type { ProviderMessage, ProviderUsage } from "../types.js";
1
+ import type { ModelMessage, ProviderUsage } from "../types.js";
2
2
  import type { CanonicalAdapterInput } from "./content-normalization.js";
3
3
  import { type AdapterDecodeInput, type AdapterOutput, type AdapterStreamInput, type CanonicalStopReason, type ProtocolAdapter } from "./protocol-adapter.js";
4
4
  export interface OllamaMessage {
@@ -54,7 +54,7 @@ export declare class OllamaAdapter implements ProtocolAdapter<OllamaRequest, Oll
54
54
  readonly protocolCapabilities: import("./protocol-capabilities.js").ProtocolRuntimeCapabilities;
55
55
  buildRequest(input: CanonicalAdapterInput): OllamaRequest;
56
56
  decodeComplete(raw: OllamaChunk, _input: AdapterDecodeInput): {
57
- message: ProviderMessage;
57
+ message: ModelMessage;
58
58
  };
59
59
  createStreamState(input: AdapterStreamInput): OllamaStreamState;
60
60
  pushStreamChunk(chunk: OllamaChunk, state: OllamaStreamState): AdapterOutput;
@@ -1,5 +1,5 @@
1
1
  import type { PreparedProviderRequest, ProviderRunState as PreparedRunState } from "../types.js";
2
- import type { ProviderMessage, RenderedContext, ToolSchema, StreamEvent, LLMProvider, RuntimePolicy, ProviderTransportTelemetry } from "../types.js";
2
+ import type { ModelMessage, RenderedContext, ToolSchema, StreamEvent, LLMProvider, RuntimePolicy, ProviderTransportTelemetry } from "../types.js";
3
3
  import { type CanonicalAdapterInput } from "./content-normalization.js";
4
4
  type ResolvedOllamaRuntime = CanonicalAdapterInput["resolved"];
5
5
  export declare class OllamaProvider implements LLMProvider {
@@ -15,7 +15,7 @@ export declare class OllamaProvider implements LLMProvider {
15
15
  runtimePolicy(): RuntimePolicy;
16
16
  bindResolvedRuntime(resolved: ResolvedOllamaRuntime): void;
17
17
  private adapterInput;
18
- complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ProviderMessage>;
18
+ complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ModelMessage>;
19
19
  prepareRequest(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>, state?: PreparedRunState): PreparedProviderRequest;
20
20
  stream(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>, state?: PreparedRunState, signal?: AbortSignal): AsyncIterable<StreamEvent>;
21
21
  private streamPlan;
@@ -1,5 +1,5 @@
1
1
  import type OpenAI from "openai";
2
- import type { ProviderMessage, ProviderDescriptor, ProviderReplay, ProviderUsage, RenderedContext, ToolCall, ToolSchema } from "../types.js";
2
+ import type { ModelMessage, ProviderDescriptor, ProviderReplay, ProviderUsage, RenderedContext, ToolCall, ToolSchema } from "../types.js";
3
3
  import { ThinkingTagStreamExtractor } from "./base.js";
4
4
  import type { CanonicalAdapterInput } from "./content-normalization.js";
5
5
  import { type ReplayabilityAssessment } from "./replay-validator.js";
@@ -41,7 +41,7 @@ export declare class OpenAIChatAdapter implements ProtocolAdapter<OpenAIChatRequ
41
41
  readonly protocolCapabilities: import("./protocol-capabilities.js").ProtocolRuntimeCapabilities;
42
42
  buildRequest(input: CanonicalAdapterInput, dialect?: OpenAIChatWireDialect): OpenAIChatRequestPlan;
43
43
  decodeComplete(raw: Record<string, any>, input: AdapterDecodeInput, dialect?: OpenAIChatWireDialect): {
44
- message: ProviderMessage;
44
+ message: ModelMessage;
45
45
  replay?: ProviderReplay;
46
46
  };
47
47
  createStreamState(input: AdapterStreamInput, dialect?: OpenAIChatWireDialect): OpenAIChatStreamState;
@@ -60,6 +60,6 @@ export declare class OpenAIChatAdapter implements ProtocolAdapter<OpenAIChatRequ
60
60
  buildMessages(context: RenderedContext, options?: OpenAIChatBuildMessageOptions): OpenAI.ChatCompletionMessageParam[];
61
61
  assessReasoning(context: RenderedContext): ReplayabilityAssessment;
62
62
  normalizeToolCalls(toolCalls?: OpenAI.ChatCompletionMessageToolCall[]): ToolCall[];
63
- rememberReplayFields(message: Pick<ProviderMessage, "content" | "toolCalls">, fields: Record<string, unknown>): void;
64
- peekReplayFields(message: Pick<ProviderMessage, "content" | "toolCalls">): Record<string, unknown> | undefined;
63
+ rememberReplayFields(message: Pick<ModelMessage, "content" | "toolCalls">, fields: Record<string, unknown>): void;
64
+ peekReplayFields(message: Pick<ModelMessage, "content" | "toolCalls">): Record<string, unknown> | undefined;
65
65
  }
@@ -1,4 +1,4 @@
1
- import type { ProviderMessage, ProviderUsage, RenderedContext, ToolCall, ToolSchema } from "../types.js";
1
+ import type { ModelMessage, ProviderUsage, RenderedContext, ToolCall, ToolSchema } from "../types.js";
2
2
  import type { CanonicalAdapterInput } from "./content-normalization.js";
3
3
  import { type AdapterDecodeInput, type AdapterOutput, type AdapterStreamInput, type CanonicalStopReason, type ProtocolAdapter } from "./protocol-adapter.js";
4
4
  export interface OpenAIResponsesRunState {
@@ -23,7 +23,7 @@ export declare class OpenAIResponsesAdapter implements ProtocolAdapter<OpenAIRes
23
23
  readonly protocolCapabilities: import("./protocol-capabilities.js").ProtocolRuntimeCapabilities;
24
24
  buildRequest(input: CanonicalAdapterInput, state?: OpenAIResponsesRunState): OpenAIResponsesRequestPlan;
25
25
  decodeComplete(raw: Record<string, any>, _input: AdapterDecodeInput): {
26
- message: ProviderMessage;
26
+ message: ModelMessage;
27
27
  };
28
28
  createStreamState(input: AdapterStreamInput, _state?: OpenAIResponsesRunState): OpenAIResponsesStreamState;
29
29
  pushStreamChunk(chunk: OpenAIResponsesStreamChunk, state: OpenAIResponsesStreamState): AdapterOutput;
@@ -1,6 +1,6 @@
1
1
  import type { PreparedProviderRequest, ProviderRunState as PreparedRunState } from "../types.js";
2
2
  import OpenAI from "openai";
3
- import type { LLMProvider, ProviderMessage, PromptMeasurement, ProviderRunState, ProviderTransportTelemetry, RenderedContext, RuntimePolicy, StreamEvent, ToolSchema } from "../types.js";
3
+ import type { LLMProvider, ModelMessage, PromptMeasurement, ProviderRunState, ProviderTransportTelemetry, RenderedContext, RuntimePolicy, StreamEvent, ToolSchema } from "../types.js";
4
4
  import { CircuitBreaker } from "./base.js";
5
5
  import { type CanonicalAdapterInput } from "./content-normalization.js";
6
6
  import { OpenAIResponsesAdapter, type OpenAIResponsesRunState } from "./openai-responses-adapter.js";
@@ -25,7 +25,7 @@ export declare class OpenAIResponsesProvider implements LLMProvider {
25
25
  bindResolvedRuntime(resolved: ResolvedOpenAIResponsesRuntime): void;
26
26
  createRunState(): OpenAIResponsesRunState;
27
27
  private adapterInput;
28
- complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ProviderMessage>;
28
+ complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ModelMessage>;
29
29
  /** spc_024-05: native preflight via the official Responses input-token count endpoint. Counts
30
30
  * the exact create request plan (stateful `previous_response_id` continuation included) —
31
31
  * native measurement belongs to the verified official endpoint, not the wire protocol. */
@@ -1,6 +1,6 @@
1
1
  import type { PreparedProviderRequest, ProviderRunState as PreparedRunState } from "../types.js";
2
2
  import OpenAI from "openai";
3
- import type { LLMProvider, ProviderMessage, ProviderDescriptor, ProviderReplay, ProviderTransportTelemetry, RenderedContext, ReplayabilityAssessment, RuntimePolicy, StreamEvent, ToolSchema } from "../types.js";
3
+ import type { LLMProvider, ModelMessage, ProviderDescriptor, ProviderReplay, ProviderTransportTelemetry, RenderedContext, ReplayabilityAssessment, RuntimePolicy, StreamEvent, ToolSchema } from "../types.js";
4
4
  import { CircuitBreaker } from "./base.js";
5
5
  import { type CanonicalAdapterInput } from "./content-normalization.js";
6
6
  import { OpenAIChatAdapter } from "./openai-chat.js";
@@ -39,11 +39,11 @@ export declare class OpenAIChatProvider implements LLMProvider {
39
39
  /** P4-S1: transport facts of the most recent execution. Host evidence only (B7). */
40
40
  private lastTelemetry;
41
41
  peekTransportTelemetry(): ProviderTransportTelemetry | undefined;
42
- peekProviderReplay(message: Pick<ProviderMessage, "content" | "toolCalls">): ProviderReplay | undefined;
43
- seedProviderReplay(message: Pick<ProviderMessage, "content" | "toolCalls">, replay: ProviderReplay): void;
42
+ peekProviderReplay(message: Pick<ModelMessage, "content" | "toolCalls">): ProviderReplay | undefined;
43
+ seedProviderReplay(message: Pick<ModelMessage, "content" | "toolCalls">, replay: ProviderReplay): void;
44
44
  private rememberReplay;
45
45
  private adapterInput;
46
- complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ProviderMessage>;
46
+ complete(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>): Promise<ModelMessage>;
47
47
  prepareRequest(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>, state?: PreparedRunState): PreparedProviderRequest;
48
48
  stream(context: RenderedContext, tools: ToolSchema[], extensions?: Record<string, unknown>, state?: PreparedRunState, signal?: AbortSignal): AsyncIterable<StreamEvent>;
49
49
  private streamPlan;
@@ -1,4 +1,4 @@
1
- import type { ProviderMessage, ProviderReplay, ProviderRunState, ProviderUsage, StreamEvent } from "../types.js";
1
+ import type { ModelMessage, ProviderReplay, ProviderRunState, ProviderUsage, StreamEvent } from "../types.js";
2
2
  import type { CanonicalAdapterInput } from "./content-normalization.js";
3
3
  import type { GenerationProtocol, ProtocolRuntimeCapabilities } from "./protocol-capabilities.js";
4
4
  export { GEMINI_PROTOCOL_CAPABILITIES, OLLAMA_PROTOCOL_CAPABILITIES, } from "./protocol-capabilities.js";
@@ -19,7 +19,7 @@ export interface ProtocolAdapter<TRequest, TCompleteResponse, TStreamChunk, TStr
19
19
  readonly protocolCapabilities: ProtocolRuntimeCapabilities;
20
20
  buildRequest(input: CanonicalAdapterInput): TRequest;
21
21
  decodeComplete(raw: TCompleteResponse, input: AdapterDecodeInput): {
22
- message: ProviderMessage;
22
+ message: ModelMessage;
23
23
  replay?: ProviderReplay;
24
24
  };
25
25
  createStreamState(input: AdapterStreamInput): TStreamState;
@@ -1,6 +1,7 @@
1
1
  export type InputModality = "text" | "image" | "audio" | "video" | "file";
2
2
  export type OutputModality = "text" | "image" | "audio" | "embedding";
3
3
  export type GenerationProtocol = "anthropic-messages" | "openai-chat" | "openai-responses" | "gemini" | "ollama-chat";
4
+ export declare const GENERATION_PROTOCOLS: readonly GenerationProtocol[];
4
5
  export interface ProtocolRuntimeCapabilities {
5
6
  acceptedInputModalities: readonly InputModality[];
6
7
  emittedOutputModalities: readonly OutputModality[];
@@ -1,3 +1,6 @@
1
+ export const GENERATION_PROTOCOLS = [
2
+ "anthropic-messages", "openai-chat", "openai-responses", "gemini", "ollama-chat",
3
+ ];
1
4
  export const ANTHROPIC_PROTOCOL_CAPABILITIES = {
2
5
  acceptedInputModalities: ["text", "image"],
3
6
  emittedOutputModalities: ["text"],
@@ -20,8 +20,10 @@ export { ContentPolicyError, contentDispositionFor } from "./content-policy.js";
20
20
  export type { ContentDisposition, ContentPlacement } from "./content-policy.js";
21
21
  export { CapabilityRouter } from "./capability-router.js";
22
22
  export type { CapabilityRequirement, CapabilityRouteResult } from "./capability-router.js";
23
- export { createProviderRequestPlan, createProviderRequestPlanForProvider, estimateProviderPromptTokens, measurementForPlan, normalizeProviderUsage, priceProviderUsage, recordPromptMeasurement } from "./request-plan.js";
24
- export type { CostObservation, NormalizedProviderUsage, PricingSnapshot, ProviderRequestEndpoint, ProviderRequestPlan, RecordedPromptMeasurement } from "./request-plan.js";
23
+ export { createProviderRequestPlan, createProviderRequestPlanForProvider, estimateProviderPromptTokens, measurementForPlan, normalizeProviderUsage, priceProviderUsage, recordPromptMeasurement, resolveProviderRoute } from "./request-plan.js";
24
+ export type { CostObservation, NormalizedProviderUsage, PricingSnapshot, ProviderRequestEndpoint, ProviderRequestPlan, RecordedPromptMeasurement, ResolvedProviderRoute } from "./request-plan.js";
25
+ export { FULL_FOOTPRINT_USAGE_ACCOUNTING_POLICY, providerAttemptToRecord } from "../runtime/execution-evidence.js";
26
+ export type { InvocationOutcome, ModelInvocation, ProviderAttempt, ProviderAttemptRecord, ProviderAttemptStatus, UsageAccountingPolicy, ModelUsageSettlement } from "../runtime/execution-evidence.js";
25
27
  export { CredentialResolutionError, OAuthCredentialResolver, redactCredential, resolveCredential } from "./credentials.js";
26
28
  export type { CredentialOptions, CredentialRequest, CredentialResolver, OAuthAccessToken, OAuthCredentialResolverOptions, OAuthRefreshRequest, ProviderCredential, } from "./credentials.js";
27
29
  export { DynamicModelCatalog, StaticModelCatalog } from "./model-catalog.js";
@@ -16,7 +16,8 @@ export { ProviderError, classifyProviderError, } from "./provider-error.js";
16
16
  export { endpointProfiles } from "./endpoints.js";
17
17
  export { ContentPolicyError, contentDispositionFor } from "./content-policy.js";
18
18
  export { CapabilityRouter } from "./capability-router.js";
19
- export { createProviderRequestPlan, createProviderRequestPlanForProvider, estimateProviderPromptTokens, measurementForPlan, normalizeProviderUsage, priceProviderUsage, recordPromptMeasurement } from "./request-plan.js";
19
+ export { createProviderRequestPlan, createProviderRequestPlanForProvider, estimateProviderPromptTokens, measurementForPlan, normalizeProviderUsage, priceProviderUsage, recordPromptMeasurement, resolveProviderRoute } from "./request-plan.js";
20
+ export { FULL_FOOTPRINT_USAGE_ACCOUNTING_POLICY, providerAttemptToRecord } from "../runtime/execution-evidence.js";
20
21
  export { CredentialResolutionError, OAuthCredentialResolver, redactCredential, resolveCredential } from "./credentials.js";
21
22
  export { DynamicModelCatalog, StaticModelCatalog } from "./model-catalog.js";
22
23
  export { modelRegistry, resolveEffectiveCapability } from "./model-registry.js";
@@ -1,4 +1,4 @@
1
- import type { ProviderMessage, ProviderDescriptor, ProviderReplay, RenderedContext, ReplayabilityAssessment } from "../types.js";
1
+ import type { ModelMessage, ProviderDescriptor, ProviderReplay, RenderedContext, ReplayabilityAssessment } from "../types.js";
2
2
  export type { ReplayabilityAssessment };
3
3
  export declare class ProviderReplayValidationError extends Error {
4
4
  constructor(message: string);
@@ -20,7 +20,7 @@ export interface OpenAIChatReplayValidationOptions {
20
20
  * rather than fail outright.
21
21
  */
22
22
  degradeMissingReasoning?: boolean;
23
- replayForAssistant?: (message: Pick<ProviderMessage, "content" | "toolCalls">) => ProviderReplay | Record<string, unknown> | undefined;
23
+ replayForAssistant?: (message: Pick<ModelMessage, "content" | "toolCalls">) => ProviderReplay | Record<string, unknown> | undefined;
24
24
  }
25
25
  export declare function validateOpenAIChatReplay(context: RenderedContext, options?: OpenAIChatReplayValidationOptions): void;
26
26
  /**
@@ -29,4 +29,4 @@ export declare function validateOpenAIChatReplay(context: RenderedContext, optio
29
29
  * embedder decide per-candidate whether to keep thinking on, disable it, or
30
30
  * skip the candidate — before sending.
31
31
  */
32
- export declare function assessReasoningReplay(turns: ProviderMessage[], options: Pick<OpenAIChatReplayValidationOptions, "replayForAssistant">): ReplayabilityAssessment;
32
+ export declare function assessReasoningReplay(turns: ModelMessage[], options: Pick<OpenAIChatReplayValidationOptions, "replayForAssistant">): ReplayabilityAssessment;
@@ -1,15 +1,15 @@
1
- import type { ProviderMessage } from "../types.js";
1
+ import type { ModelMessage } from "../types.js";
2
2
  export interface ArchiveStore {
3
- write(sessionId: string, seq: number, messages: ProviderMessage[]): Promise<string>;
4
- read(archiveRef: string): Promise<ProviderMessage[]>;
3
+ write(sessionId: string, seq: number, messages: ModelMessage[]): Promise<string>;
4
+ read(archiveRef: string): Promise<ModelMessage[]>;
5
5
  }
6
6
  export declare class NullArchiveStore implements ArchiveStore {
7
- write(_sessionId: string, _seq: number, _messages: ProviderMessage[]): Promise<string>;
8
- read(_archiveRef: string): Promise<ProviderMessage[]>;
7
+ write(_sessionId: string, _seq: number, _messages: ModelMessage[]): Promise<string>;
8
+ read(_archiveRef: string): Promise<ModelMessage[]>;
9
9
  }
10
10
  export declare class FileArchiveStore implements ArchiveStore {
11
11
  private readonly root;
12
12
  constructor(root: string);
13
- write(sessionId: string, seq: number, messages: ProviderMessage[]): Promise<string>;
14
- read(archiveRef: string): Promise<ProviderMessage[]>;
13
+ write(sessionId: string, seq: number, messages: ModelMessage[]): Promise<string>;
14
+ read(archiveRef: string): Promise<ModelMessage[]>;
15
15
  }