@chances-ai/engine 29.0.0 → 31.0.0

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 (109) hide show
  1. package/dist/agents/index.js +1 -1
  2. package/dist/ai/adapters/ai-sdk-stream.d.ts +13 -1
  3. package/dist/ai/adapters/ai-sdk-stream.d.ts.map +1 -1
  4. package/dist/ai/adapters/ai-sdk-stream.js +140 -39
  5. package/dist/ai/adapters/ai-sdk-stream.js.map +1 -1
  6. package/dist/ai/adapters/ai-sdk.d.ts +8 -0
  7. package/dist/ai/adapters/ai-sdk.d.ts.map +1 -1
  8. package/dist/ai/adapters/ai-sdk.js +40 -2
  9. package/dist/ai/adapters/ai-sdk.js.map +1 -1
  10. package/dist/ai/adapters/mock.d.ts.map +1 -1
  11. package/dist/ai/adapters/mock.js +6 -2
  12. package/dist/ai/adapters/mock.js.map +1 -1
  13. package/dist/ai/adapters/native-anthropic.d.ts +51 -0
  14. package/dist/ai/adapters/native-anthropic.d.ts.map +1 -0
  15. package/dist/ai/adapters/native-anthropic.js +179 -0
  16. package/dist/ai/adapters/native-anthropic.js.map +1 -0
  17. package/dist/ai/adapters/openai-compatible.d.ts +17 -1
  18. package/dist/ai/adapters/openai-compatible.d.ts.map +1 -1
  19. package/dist/ai/adapters/openai-compatible.js +105 -1
  20. package/dist/ai/adapters/openai-compatible.js.map +1 -1
  21. package/dist/ai/compat.d.ts +30 -0
  22. package/dist/ai/compat.d.ts.map +1 -0
  23. package/dist/ai/compat.js +93 -0
  24. package/dist/ai/compat.js.map +1 -0
  25. package/dist/ai/cost.d.ts +9 -0
  26. package/dist/ai/cost.d.ts.map +1 -1
  27. package/dist/ai/cost.js +15 -2
  28. package/dist/ai/cost.js.map +1 -1
  29. package/dist/ai/index.d.ts +6 -2
  30. package/dist/ai/index.d.ts.map +1 -1
  31. package/dist/ai/index.js +5 -1
  32. package/dist/ai/index.js.map +1 -1
  33. package/dist/ai/known-models.d.ts +20 -6
  34. package/dist/ai/known-models.d.ts.map +1 -1
  35. package/dist/ai/known-models.generated.d.ts +3 -0
  36. package/dist/ai/known-models.generated.d.ts.map +1 -0
  37. package/dist/ai/known-models.generated.js +518 -0
  38. package/dist/ai/known-models.generated.js.map +1 -0
  39. package/dist/ai/known-models.js +29 -128
  40. package/dist/ai/known-models.js.map +1 -1
  41. package/dist/ai/provider-table.d.ts +36 -0
  42. package/dist/ai/provider-table.d.ts.map +1 -0
  43. package/dist/ai/provider-table.js +80 -0
  44. package/dist/ai/provider-table.js.map +1 -0
  45. package/dist/ai/retry.d.ts +74 -3
  46. package/dist/ai/retry.d.ts.map +1 -1
  47. package/dist/ai/retry.js +246 -6
  48. package/dist/ai/retry.js.map +1 -1
  49. package/dist/ai/router.d.ts +12 -0
  50. package/dist/ai/router.d.ts.map +1 -1
  51. package/dist/ai/router.js +19 -0
  52. package/dist/ai/router.js.map +1 -1
  53. package/dist/ai/sampling.d.ts +37 -0
  54. package/dist/ai/sampling.d.ts.map +1 -0
  55. package/dist/ai/sampling.js +34 -0
  56. package/dist/ai/sampling.js.map +1 -0
  57. package/dist/ai/setup.d.ts +1 -1
  58. package/dist/ai/setup.d.ts.map +1 -1
  59. package/dist/ai/setup.js +28 -4
  60. package/dist/ai/setup.js.map +1 -1
  61. package/dist/ai/summarizer.d.ts.map +1 -1
  62. package/dist/ai/summarizer.js +6 -1
  63. package/dist/ai/summarizer.js.map +1 -1
  64. package/dist/ai/think-filter.d.ts +30 -0
  65. package/dist/ai/think-filter.d.ts.map +1 -0
  66. package/dist/ai/think-filter.js +193 -0
  67. package/dist/ai/think-filter.js.map +1 -0
  68. package/dist/ai/thinking.d.ts +77 -0
  69. package/dist/ai/thinking.d.ts.map +1 -0
  70. package/dist/ai/thinking.js +174 -0
  71. package/dist/ai/thinking.js.map +1 -0
  72. package/dist/ai/types.d.ts +135 -8
  73. package/dist/ai/types.d.ts.map +1 -1
  74. package/dist/core/compaction/compactor.d.ts.map +1 -1
  75. package/dist/core/compaction/compactor.js +44 -6
  76. package/dist/core/compaction/compactor.js.map +1 -1
  77. package/dist/core/engine.d.ts +19 -4
  78. package/dist/core/engine.d.ts.map +1 -1
  79. package/dist/core/engine.js +123 -19
  80. package/dist/core/engine.js.map +1 -1
  81. package/dist/core/index.d.ts +1 -1
  82. package/dist/core/index.d.ts.map +1 -1
  83. package/dist/core/index.js +1 -1
  84. package/dist/core/index.js.map +1 -1
  85. package/dist/core/task-tool.d.ts +1 -1
  86. package/dist/core/task-tool.js +1 -1
  87. package/dist/core/workspace-query.d.ts +1 -1
  88. package/dist/core/workspace-query.js +1 -1
  89. package/dist/local-vault/index.d.ts +1 -1
  90. package/dist/local-vault/index.js +1 -1
  91. package/dist/lsp/index.d.ts +1 -1
  92. package/dist/lsp/index.js +1 -1
  93. package/dist/lsp/types.d.ts +2 -2
  94. package/dist/mcp/host.d.ts +3 -3
  95. package/dist/mcp/load-mcp-host.d.ts +4 -4
  96. package/dist/mcp/load-mcp-host.js +4 -4
  97. package/dist/mcp/oauth/provider.d.ts.map +1 -1
  98. package/dist/mcp/oauth/provider.js +10 -1
  99. package/dist/mcp/oauth/provider.js.map +1 -1
  100. package/dist/plugin-api/index.d.ts +10 -2
  101. package/dist/plugin-api/index.d.ts.map +1 -1
  102. package/dist/plugin-api/index.js +15 -0
  103. package/dist/plugin-api/index.js.map +1 -1
  104. package/dist/tools/approval.d.ts +1 -1
  105. package/dist/tools/approval.js +1 -1
  106. package/dist/tools/builtins/lsp.js +1 -1
  107. package/dist/tools/builtins/pty.d.ts +1 -1
  108. package/dist/tools/types.d.ts +1 -1
  109. package/package.json +3 -3
@@ -4,7 +4,7 @@ export { BUNDLED_AGENTS, COORDINATOR_AGENT } from "./bundled.js";
4
4
  /**
5
5
  * Render the catalog as the appended text the task tool injects into its
6
6
  * description, with hard caps on per-entry and total budget. Exported here
7
- * so the task tool (in `@chances-ai/core`) and the `/agents` slash command
7
+ * so the task tool (in `@chances-ai/engine/core`) and the `/agents` slash command
8
8
  * (in `apps/cli`) can both consume the same rendering rules. Codex-#7/#8.
9
9
  */
10
10
  import { stripAllControlChars } from "@chances-ai/runtime";
@@ -15,5 +15,17 @@ import type { ChatRequest, ProviderEvent } from "../types.js";
15
15
  * streaming-error redaction path without depending on the real `ai`
16
16
  * package's internals. Production callers omit it and pay one `import("ai")`.
17
17
  */
18
- export declare function streamFromAiSdk(model: unknown, req: ChatRequest, signal: AbortSignal, loadAi?: () => Promise<unknown>): AsyncIterable<ProviderEvent>;
18
+ /** (7.10 §3.5) Adapter-computed extras threaded into `streamText`. */
19
+ export interface AiSdkStreamOptions {
20
+ /** Provider-specific options (reasoning/thinking) spread into `streamText`. */
21
+ providerOptions?: Record<string, unknown>;
22
+ /** When set (anthropic), the cache_control marker placed on the LAST user
23
+ * message's last content part — caches the whole prefix (system + tools +
24
+ * history) before it. `ttl` rides through to the provider. */
25
+ cacheControl?: {
26
+ type: "ephemeral";
27
+ ttl?: string;
28
+ };
29
+ }
30
+ export declare function streamFromAiSdk(model: unknown, req: ChatRequest, signal: AbortSignal, loadAi?: () => Promise<unknown>, opts?: AiSdkStreamOptions): AsyncIterable<ProviderEvent>;
19
31
  //# sourceMappingURL=ai-sdk-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk-stream.d.ts","sourceRoot":"","sources":["../../../src/ai/adapters/ai-sdk-stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAoDpF;;;;;;;;;;;;;;;GAeG;AACH,wBAAuB,eAAe,CACpC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,MAAM,GAAE,MAAM,OAAO,CAAC,OAAO,CAAsB,GAClD,aAAa,CAAC,aAAa,CAAC,CA6E9B"}
1
+ {"version":3,"file":"ai-sdk-stream.d.ts","sourceRoot":"","sources":["../../../src/ai/adapters/ai-sdk-stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AA4DpF;;;;;;;;;;;;;;;GAeG;AACH,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C;;mEAE+D;IAC/D,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,wBAAuB,eAAe,CACpC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,MAAM,GAAE,MAAM,OAAO,CAAC,OAAO,CAAsB,EACnD,IAAI,GAAE,kBAAuB,GAC5B,aAAa,CAAC,aAAa,CAAC,CAwK9B"}
@@ -14,23 +14,7 @@ function toJsonArgs(x) {
14
14
  return {};
15
15
  }
16
16
  }
17
- /**
18
- * Streams a chat request through any Vercel AI SDK language model. Both
19
- * {@link AiSdkAdapter} (native @ai-sdk/* providers) and
20
- * {@link OpenAICompatibleAdapter} (createOpenAICompatible-backed providers)
21
- * call into this so the normalization → ProviderEvent mapping lives in one
22
- * place.
23
- *
24
- * `model` is typed as `unknown` because the AI SDK module is dynamic-imported
25
- * and we don't pin its type surface here; callers pass through whatever
26
- * `streamText({ model })` accepts at their installed version.
27
- *
28
- * `loadAi` is a test-only seam — the adapters thread their own
29
- * `__loadSdkModuleForTest` through it so an end-to-end test can drive the
30
- * streaming-error redaction path without depending on the real `ai`
31
- * package's internals. Production callers omit it and pay one `import("ai")`.
32
- */
33
- export async function* streamFromAiSdk(model, req, signal, loadAi = () => import("ai")) {
17
+ export async function* streamFromAiSdk(model, req, signal, loadAi = () => import("ai"), opts = {}) {
34
18
  const ai = (await loadAi().catch(() => null));
35
19
  const streamText = ai?.streamText;
36
20
  const jsonSchema = ai?.jsonSchema;
@@ -47,31 +31,109 @@ export async function* streamFromAiSdk(model, req, signal, loadAi = () => import
47
31
  t.name,
48
32
  { description: t.description, parameters: jsonSchema(t.parameters) },
49
33
  ]));
34
+ // (7.10 §3.5) Cache the conversation prefix by marking the LAST user message's
35
+ // last content part (anthropic caches everything before the marker). The W6
36
+ // native client does the full 3-anchor placement; this single anchor captures
37
+ // the bulk of the savings on the AI-SDK path.
38
+ let lastUserIdx = -1;
39
+ for (let i = req.messages.length - 1; i >= 0; i--) {
40
+ if (req.messages[i].role === "user") {
41
+ lastUserIdx = i;
42
+ break;
43
+ }
44
+ }
45
+ const messages = req.messages.map((m, i) => toCoreMessage(m, i === lastUserIdx ? opts.cacheControl : undefined));
46
+ // (7.10 §3.5) Sampling. Skip temperature/topP when reasoning is on — reasoning
47
+ // models (anthropic extended thinking, openai o-series) reject them; maxTokens
48
+ // is always honored.
49
+ const s = req.sampling;
50
+ const reasoningOn = req.reasoning !== undefined;
51
+ const sampling = {};
52
+ if (s?.maxTokens !== undefined)
53
+ sampling.maxTokens = s.maxTokens;
54
+ if (!reasoningOn && s?.temperature !== undefined)
55
+ sampling.temperature = s.temperature;
56
+ if (!reasoningOn && s?.topP !== undefined)
57
+ sampling.topP = s.topP;
58
+ // (7.10 TS re-review) Honor `sampling.timeoutMs` as a whole-request deadline:
59
+ // combine the caller's abort signal with a timeout signal. When the deadline
60
+ // (not the caller) fires we relabel the error "timed out" so the retry
61
+ // classifier treats it as a retryable network error rather than a mystery.
62
+ const timeoutMs = req.sampling?.timeoutMs;
63
+ const deadline = timeoutMs !== undefined ? AbortSignal.timeout(timeoutMs) : undefined;
64
+ const abortSignal = deadline ? AbortSignal.any([signal, deadline]) : signal;
65
+ const errorMessage = (err) => deadline?.aborted && !signal.aborted
66
+ ? `provider stream timed out after ${timeoutMs}ms`
67
+ : err instanceof Error
68
+ ? err.message
69
+ : String(err);
50
70
  let result;
51
71
  try {
52
72
  result = streamText({
53
73
  model,
54
74
  system: req.system,
55
- messages: req.messages.map(toCoreMessage),
75
+ messages,
56
76
  tools,
57
- abortSignal: signal,
77
+ abortSignal,
78
+ ...sampling,
79
+ ...(opts.providerOptions ? { providerOptions: opts.providerOptions } : {}),
58
80
  });
59
81
  }
60
82
  catch (err) {
61
- yield { type: "error", message: err instanceof Error ? err.message : String(err) };
83
+ yield { type: "error", message: errorMessage(err) };
62
84
  return;
63
85
  }
64
86
  // (7.7 §7) The provider's finish reason, captured from the `finish` part and
65
87
  // surfaced on the terminal `done` event so the engine can detect a length-stop
66
88
  // overflow (Xiaomi MiMo: `finishReason: "length"` with zero output tokens).
67
89
  let finishReason;
90
+ // (7.10) Thinking-block lifecycle. AI SDK v4 streams reasoning as
91
+ // `reasoning`/`reasoning-signature`/`redacted-reasoning` parts BEFORE the
92
+ // answer text; we open a block on the first one and close it (carrying the
93
+ // captured signature) when the first non-reasoning part arrives.
94
+ let inThinking = false;
95
+ let thinkingSig;
96
+ let thinkingRedacted = false;
97
+ function* endThinking() {
98
+ if (inThinking) {
99
+ yield { type: "thinking-end", signature: thinkingSig, redacted: thinkingRedacted || undefined };
100
+ inThinking = false;
101
+ thinkingSig = undefined;
102
+ thinkingRedacted = false;
103
+ }
104
+ }
68
105
  try {
69
106
  for await (const part of result.fullStream) {
70
107
  switch (part.type) {
108
+ case "reasoning": {
109
+ if (!inThinking) {
110
+ inThinking = true;
111
+ yield { type: "thinking-start" };
112
+ }
113
+ yield { type: "thinking-delta", text: part.textDelta ?? part.text ?? "" };
114
+ break;
115
+ }
116
+ case "reasoning-signature":
117
+ // Captured now; emitted on thinking-end so the block carries it.
118
+ if (part.signature)
119
+ thinkingSig = part.signature;
120
+ break;
121
+ case "redacted-reasoning":
122
+ if (!inThinking) {
123
+ inThinking = true;
124
+ yield { type: "thinking-start" };
125
+ }
126
+ // The opaque payload travels as the signature; mark the block redacted.
127
+ thinkingRedacted = true;
128
+ if (part.data)
129
+ thinkingSig = part.data;
130
+ break;
71
131
  case "text-delta":
132
+ yield* endThinking();
72
133
  yield { type: "text-delta", text: part.text ?? part.textDelta ?? "" };
73
134
  break;
74
135
  case "tool-call":
136
+ yield* endThinking();
75
137
  yield {
76
138
  type: "tool-call",
77
139
  call: {
@@ -82,14 +144,24 @@ export async function* streamFromAiSdk(model, req, signal, loadAi = () => import
82
144
  };
83
145
  break;
84
146
  case "finish": {
147
+ yield* endThinking();
85
148
  const u = part.usage ?? {};
86
149
  finishReason = typeof part.finishReason === "string" ? part.finishReason : undefined;
150
+ // (7.10) Map the SDK's flat counts into the 4-bucket Usage. The SDK
151
+ // reports cache hits in `cachedInputTokens` and folds them INTO
152
+ // `inputTokens`; we split them OUT so the buckets stay mutually
153
+ // exclusive (cacheRead bills at its own cheaper rate). cacheRead is
154
+ // clamped to the reported prompt total so an over-reporting SDK can't
155
+ // inflate totalTokens / the `input + cacheRead` overflow check beyond
156
+ // the real prompt size (codex W2 R2-M1). cacheWrite is 0 here — the
157
+ // AI SDK doesn't separate cache creation (the W6 native client does).
158
+ const rawInput = u.inputTokens ?? u.promptTokens ?? 0;
159
+ const output = u.outputTokens ?? u.completionTokens ?? 0;
160
+ const cacheRead = Math.min(Math.max(0, u.cachedInputTokens ?? 0), rawInput);
161
+ const input = rawInput - cacheRead;
87
162
  yield {
88
163
  type: "usage",
89
- usage: {
90
- inputTokens: u.inputTokens ?? u.promptTokens ?? 0,
91
- outputTokens: u.outputTokens ?? u.completionTokens ?? 0,
92
- },
164
+ usage: { input, output, cacheRead, cacheWrite: 0, totalTokens: input + output + cacheRead },
93
165
  };
94
166
  break;
95
167
  }
@@ -100,12 +172,18 @@ export async function* streamFromAiSdk(model, req, signal, loadAi = () => import
100
172
  }
101
173
  }
102
174
  catch (err) {
103
- yield { type: "error", message: err instanceof Error ? err.message : String(err) };
175
+ yield { type: "error", message: errorMessage(err) };
104
176
  return;
105
177
  }
178
+ // Safety: close an open thinking block if the provider ended without a `finish`.
179
+ yield* endThinking();
106
180
  yield { type: "done", finishReason };
107
181
  }
108
- function toCoreMessage(m) {
182
+ /** (7.10) The anthropic cache marker as AI-SDK content-part providerOptions. */
183
+ function cacheMeta(cacheControl) {
184
+ return cacheControl ? { providerOptions: { anthropic: { cacheControl } } } : {};
185
+ }
186
+ function toCoreMessage(m, cacheControl) {
109
187
  if (m.role === "tool") {
110
188
  return {
111
189
  role: "tool",
@@ -120,9 +198,25 @@ function toCoreMessage(m) {
120
198
  if (m.role === "assistant") {
121
199
  return {
122
200
  role: "assistant",
123
- content: m.content.map((c) => c.type === "tool-call"
124
- ? { type: "tool-call", toolCallId: c.callId, toolName: c.name, args: c.args }
125
- : { type: "text", text: c.type === "text" ? c.text : "" }),
201
+ content: m.content.map((c) => {
202
+ if (c.type === "tool-call") {
203
+ return { type: "tool-call", toolCallId: c.callId, toolName: c.name, args: c.args };
204
+ }
205
+ // (7.10) Replay a stored thinking block for reasoning continuity. A real
206
+ // signature → reasoning part; redacted → redacted-reasoning; an empty
207
+ // signature can't be replayed as reasoning (the API rejects it), so it
208
+ // degrades to text (the conservative default; the W6 native client
209
+ // honors per-model allowEmptySignature via thinkingBlockToProvider).
210
+ if (c.type === "thinking") {
211
+ if (c.redacted)
212
+ return { type: "redacted-reasoning", data: c.signature ?? "" };
213
+ if (c.signature && c.signature.trim().length > 0) {
214
+ return { type: "reasoning", text: c.text, signature: c.signature };
215
+ }
216
+ return { type: "text", text: c.text };
217
+ }
218
+ return { type: "text", text: c.type === "text" ? c.text : "" };
219
+ }),
126
220
  };
127
221
  }
128
222
  // user (or system). (7.9) When the message carries image parts, emit the AI
@@ -130,16 +224,23 @@ function toCoreMessage(m) {
130
224
  // the plain-string form so existing text-only messages are byte-identical.
131
225
  const hasImage = m.content.some((c) => c.type === "image");
132
226
  if (m.role === "user" && hasImage) {
133
- return {
134
- role: "user",
135
- content: m.content
136
- .filter((c) => c.type === "text" || c.type === "image")
137
- .map((c) => c.type === "image"
138
- ? // `mediaType` (AI SDK v5) + `mimeType` (older) for cross-version safety.
139
- { type: "image", image: c.data, mediaType: c.mimeType, mimeType: c.mimeType }
140
- : { type: "text", text: c.type === "text" ? c.text : "" }),
141
- };
227
+ const parts = m.content
228
+ .filter((c) => c.type === "text" || c.type === "image")
229
+ .map((c) => c.type === "image"
230
+ ? // `mediaType` (AI SDK v5) + `mimeType` (older) for cross-version safety.
231
+ { type: "image", image: c.data, mediaType: c.mimeType, mimeType: c.mimeType }
232
+ : { type: "text", text: c.type === "text" ? c.text : "" });
233
+ // Mark the LAST part for caching (caches the prefix up to here).
234
+ if (cacheControl && parts.length > 0)
235
+ parts[parts.length - 1] = { ...parts[parts.length - 1], ...cacheMeta(cacheControl) };
236
+ return { role: "user", content: parts };
237
+ }
238
+ const text = m.content.map((c) => (c.type === "text" ? c.text : "")).join("");
239
+ // (7.10 §3.5) A cached user turn must use the array content form so the marker
240
+ // can ride a content part (a plain string can't carry providerOptions).
241
+ if (cacheControl && m.role === "user") {
242
+ return { role: "user", content: [{ type: "text", text, ...cacheMeta(cacheControl) }] };
142
243
  }
143
- return { role: m.role, content: m.content.map((c) => (c.type === "text" ? c.text : "")).join("") };
244
+ return { role: m.role, content: text };
144
245
  }
145
246
  //# sourceMappingURL=ai-sdk-stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk-stream.js","sourceRoot":"","sources":["../../../src/ai/adapters/ai-sdk-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-sdk-stream.js","sourceRoot":"","sources":["../../../src/ai/adapters/ai-sdk-stream.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,14 @@ export declare class AiSdkAdapter implements ProviderAdapter {
40
40
  constructor(opts: AiSdkAdapterOptions);
41
41
  listModels(): ModelDescriptor[];
42
42
  stream(req: ChatRequest, signal: AbortSignal): AsyncIterable<ProviderEvent>;
43
+ /** (7.10 §3.5) The anthropic cache marker for this request (undefined for
44
+ * non-anthropic providers or `cacheRetention:"none"`). `long` upgrades to a
45
+ * 1h ttl only when the model's compat allows it. */
46
+ private anthropicCache;
47
+ /** (7.10 §3.4) Translate the requested reasoning effort to the provider's
48
+ * native `providerOptions` for the AI SDK. The engine has already clamped the
49
+ * effort to the model's supported range. */
50
+ private reasoningOptions;
43
51
  private createModel;
44
52
  }
45
53
  /** Replaces every occurrence of `apiKey` in `message` with `[REDACTED]`.
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../../src/ai/adapters/ai-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D;;;yBAGyB;AACzB,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAIzD,CAAC;AAoBF,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,YAAW,eAAe;IAGtC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAES,IAAI,EAAE,mBAAmB;IAItD,UAAU,IAAI,eAAe,EAAE;IAIxB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC;YAuBpE,WAAW;CAyB1B;AAED;;;;;2BAK2B;AAC3B,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;2EAE2E;AAC3E,wBAAuB,YAAY,CACjC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,EACpC,MAAM,EAAE,MAAM,GACb,aAAa,CAAC,aAAa,CAAC,CAQ9B"}
1
+ {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../../src/ai/adapters/ai-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AAUrB,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D;;;yBAGyB;AACzB,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAIzD,CAAC;AAoBF,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,YAAW,eAAe;IAGtC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAES,IAAI,EAAE,mBAAmB;IAItD,UAAU,IAAI,eAAe,EAAE;IAIxB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC;IA2BlF;;yDAEqD;IACrD,OAAO,CAAC,cAAc;IAUtB;;iDAE6C;IAC7C,OAAO,CAAC,gBAAgB;YAgBV,WAAW;CAyB1B;AAED;;;;;2BAK2B;AAC3B,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;2EAE2E;AAC3E,wBAAuB,YAAY,CACjC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,EACpC,MAAM,EAAE,MAAM,GACb,aAAa,CAAC,aAAa,CAAC,CAQ9B"}
@@ -1,3 +1,5 @@
1
+ import { detectCompat } from "../compat.js";
2
+ import { effortToGoogleThinkingBudget, effortToThinkingBudget, mapEffortToOpenAIReasoningEffort, } from "../thinking.js";
1
3
  import { streamFromAiSdk } from "./ai-sdk-stream.js";
2
4
  /** Maps native AI-SDK providers to the npm package each one needs. Exported
3
5
  * so the diagnostic in {@link AiSdkAdapter.createModel} and tests share one
@@ -58,7 +60,43 @@ export class AiSdkAdapter {
58
60
  const loadAi = this.opts.__loadSdkModuleForTest
59
61
  ? () => this.opts.__loadSdkModuleForTest("ai")
60
62
  : undefined;
61
- yield* redactStream(streamFromAiSdk(model, req, signal, loadAi), this.opts.apiKey);
63
+ const opts = {
64
+ providerOptions: this.reasoningOptions(req.reasoning),
65
+ cacheControl: this.anthropicCache(req),
66
+ };
67
+ yield* redactStream(streamFromAiSdk(model, req, signal, loadAi, opts), this.opts.apiKey);
68
+ }
69
+ /** (7.10 §3.5) The anthropic cache marker for this request (undefined for
70
+ * non-anthropic providers or `cacheRetention:"none"`). `long` upgrades to a
71
+ * 1h ttl only when the model's compat allows it. */
72
+ anthropicCache(req) {
73
+ if (this.opts.provider !== "anthropic" || req.cacheRetention === "none")
74
+ return undefined;
75
+ const compat = detectCompat("anthropic-messages", {
76
+ provider: "anthropic",
77
+ modelId: req.model,
78
+ });
79
+ const ttl = req.cacheRetention === "long" && compat.supportsLongCacheRetention ? "1h" : undefined;
80
+ return { type: "ephemeral", ...(ttl ? { ttl } : {}) };
81
+ }
82
+ /** (7.10 §3.4) Translate the requested reasoning effort to the provider's
83
+ * native `providerOptions` for the AI SDK. The engine has already clamped the
84
+ * effort to the model's supported range. */
85
+ reasoningOptions(reasoning) {
86
+ if (!reasoning)
87
+ return undefined;
88
+ switch (this.opts.provider) {
89
+ case "anthropic":
90
+ return { anthropic: { thinking: { type: "enabled", budgetTokens: effortToThinkingBudget(reasoning) } } };
91
+ case "openai":
92
+ return { openai: { reasoningEffort: mapEffortToOpenAIReasoningEffort(reasoning) } };
93
+ case "google":
94
+ return {
95
+ google: {
96
+ thinkingConfig: { thinkingBudget: effortToGoogleThinkingBudget(reasoning), includeThoughts: true },
97
+ },
98
+ };
99
+ }
62
100
  }
63
101
  async createModel(modelId) {
64
102
  const pkg = AI_SDK_PACKAGES[this.opts.provider];
@@ -71,7 +109,7 @@ export class AiSdkAdapter {
71
109
  }
72
110
  catch (cause) {
73
111
  const reason = cause instanceof Error ? cause.message : String(cause);
74
- throw new Error(`Provider '${this.opts.provider}' requires the '${pkg}' npm package to be installed. It is declared as an optional peer dependency of @chances-ai/ai. Install it with the package manager you use (e.g. \`bun add ${pkg}\`, \`npm i ${pkg}\`, \`pnpm add ${pkg}\`). (underlying: ${reason})`);
112
+ throw new Error(`Provider '${this.opts.provider}' requires the '${pkg}' npm package to be installed. It is declared as an optional peer dependency of @chances-ai/engine/ai. Install it with the package manager you use (e.g. \`bun add ${pkg}\`, \`npm i ${pkg}\`, \`pnpm add ${pkg}\`). (underlying: ${reason})`);
75
113
  }
76
114
  // Resolve the provider's factory by name. If the module loaded but lacks
77
115
  // the expected `create…` export, surface a clear named error (better than
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../../../src/ai/adapters/ai-sdk.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD;;;yBAGyB;AACzB,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;CACzB,CAAC;AAaF,wDAAwD;AACxD,MAAM,aAAa,GAAmD;IACpE,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,0BAA0B;CACnC,CAAC;AAmBF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,YAAY;IAGM;IAFpB,EAAE,CAAS;IAEpB,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;QACpD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,GAAgB,EAAE,MAAmB;QACjD,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC5E,OAAO;QACT,CAAC;QACD,uEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAC7C,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAuB,CAAC,IAAI,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,KAAK,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAe;QACvC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,GAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAsB,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,mBAAmB,GAAG,+JAA+J,GAAG,eAAe,GAAG,kBAAkB,GAAG,qBAAqB,MAAM,GAAG,CAC7R,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,aAAa,GAAG,qBAAqB,WAAW,GAAG,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;CAEF;AAED;;;;;2BAK2B;AAC3B,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,MAAc;IACpD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACjD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED;;2EAE2E;AAC3E,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,MAAoC,EACpC,MAAc;IAEd,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../../../src/ai/adapters/ai-sdk.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAA2B,MAAM,oBAAoB,CAAC;AAI9E;;;yBAGyB;AACzB,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;CACzB,CAAC;AAaF,wDAAwD;AACxD,MAAM,aAAa,GAAmD;IACpE,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,0BAA0B;CACnC,CAAC;AAmBF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,YAAY;IAGM;IAFpB,EAAE,CAAS;IAEpB,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;QACpD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,GAAgB,EAAE,MAAmB;QACjD,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC5E,OAAO;QACT,CAAC;QACD,uEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAC7C,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAuB,CAAC,IAAI,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,IAAI,GAAuB;YAC/B,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;SACvC,CAAC;QACF,KAAK,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED;;yDAEqD;IAC7C,cAAc,CAAC,GAAgB;QACrC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,cAAc,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAC1F,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,EAAE;YAChD,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,GAAG,CAAC,KAAK;SACnB,CAA4B,CAAC;QAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,cAAc,KAAK,MAAM,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC;IAED;;iDAE6C;IACrC,gBAAgB,CAAC,SAAmC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,KAAK,WAAW;gBACd,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;YAC3G,KAAK,QAAQ;gBACX,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,gCAAgC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YACtF,KAAK,QAAQ;gBACX,OAAO;oBACL,MAAM,EAAE;wBACN,cAAc,EAAE,EAAE,cAAc,EAAE,4BAA4B,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;qBACnG;iBACF,CAAC;QACN,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAe;QACvC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,GAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAsB,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,mBAAmB,GAAG,sKAAsK,GAAG,eAAe,GAAG,kBAAkB,GAAG,qBAAqB,MAAM,GAAG,CACpS,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,aAAa,GAAG,qBAAqB,WAAW,GAAG,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;CAEF;AAED;;;;;2BAK2B;AAC3B,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,MAAc;IACpD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACjD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED;;2EAE2E;AAC3E,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,MAAoC,EACpC,MAAc;IAEd,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/ai/adapters/mock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EACf,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,EAAE,UAAU;IAErB,UAAU,IAAI,eAAe,EAAE;IAexB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC;CAwBpF"}
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/ai/adapters/mock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EACf,eAAe,EACf,aAAa,EAEd,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,EAAE,UAAU;IAErB,UAAU,IAAI,eAAe,EAAE;IAexB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC;CAwBpF"}
@@ -28,7 +28,7 @@ export class MockAdapter {
28
28
  const readMatch = /^\s*read\s+(\S+)/i.exec(text);
29
29
  if (readMatch && !alreadyHasToolResult && req.tools.some((t) => t.name === "read")) {
30
30
  yield { type: "tool-call", call: { callId: createId("call"), name: "read", args: { path: readMatch[1] } } };
31
- yield { type: "usage", usage: { inputTokens: estimate(text), outputTokens: 4 } };
31
+ yield { type: "usage", usage: usageOf(estimate(text), 4) };
32
32
  yield { type: "done" };
33
33
  return;
34
34
  }
@@ -38,10 +38,14 @@ export class MockAdapter {
38
38
  for (const chunk of reply.match(/.{1,12}/g) ?? [reply]) {
39
39
  yield { type: "text-delta", text: chunk };
40
40
  }
41
- yield { type: "usage", usage: { inputTokens: estimate(text), outputTokens: estimate(reply) } };
41
+ yield { type: "usage", usage: usageOf(estimate(text), estimate(reply)) };
42
42
  yield { type: "done" };
43
43
  }
44
44
  }
45
+ /** (7.10) The mock has no prompt cache — emit a zeroed 4-bucket Usage. */
46
+ function usageOf(input, output) {
47
+ return { input, output, cacheRead: 0, cacheWrite: 0, totalTokens: input + output };
48
+ }
45
49
  function textOf(content) {
46
50
  return content
47
51
  .filter((c) => c.type === "text")
@@ -1 +1 @@
1
- {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/ai/adapters/mock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/ai/adapters/mock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { ChatRequest, ModelDescriptor, ProviderAdapter, ProviderEvent } from "../types.js";
2
+ export interface NativeAnthropicAdapterOptions {
3
+ apiKey: string;
4
+ models: ModelDescriptor[];
5
+ /** Optional override base URL (Bedrock/Vertex relays, proxies). */
6
+ baseURL?: string;
7
+ }
8
+ /**
9
+ * (7.10 W6) `api="anthropic-messages"` adapter. Prefers the hand-rolled native
10
+ * client (chances-natives `anthropic` feature) which gives us cache_control
11
+ * 3-anchor placement, byte-faithful thinking signatures, and structured
12
+ * status/Retry-After the AI-SDK hides; falls back to `@ai-sdk/anthropic` when no
13
+ * native client is loaded (the per-fn JS-fallback invariant — the live path
14
+ * works today regardless of the addon build).
15
+ *
16
+ * Both paths emit the SAME `ProviderEvent` sequence (the native parser is the
17
+ * golden-equivalence target), so the engine is oblivious to which ran.
18
+ */
19
+ export declare class NativeAnthropicAdapter implements ProviderAdapter {
20
+ private readonly opts;
21
+ readonly id = "anthropic";
22
+ private readonly fallback;
23
+ constructor(opts: NativeAnthropicAdapterOptions);
24
+ listModels(): ModelDescriptor[];
25
+ stream(req: ChatRequest, signal: AbortSignal): AsyncIterable<ProviderEvent>;
26
+ /** Bridge the native callback stream to an async iterable. The Rust worker
27
+ * pushes ProviderEvent JSON on a libuv-thread callback; we queue + hand them
28
+ * out in order, ending on the terminal `done`/`error` or on abort. */
29
+ private streamNative;
30
+ private parseEvent;
31
+ private buildNativeRequest;
32
+ private buildNativeOptions;
33
+ }
34
+ /**
35
+ * (7.10 W6) The JSON the Rust `build_request_body` consumes. Pure + exported so
36
+ * the request shaping is unit-tested without a native build. effort→budget lives
37
+ * ONCE (here, via `thinking.ts`); the cache compat flags come from the model.
38
+ * Reasoning and sampling are mutually exclusive on anthropic — when a thinking
39
+ * budget is present the Rust builder drops temperature/top_p, so we omit them.
40
+ */
41
+ export declare function buildNativeAnthropicRequest(req: ChatRequest, models: ModelDescriptor[]): Record<string, unknown>;
42
+ /**
43
+ * (7.10 W6) Map a raw native event object to a {@link ProviderEvent}. Pure +
44
+ * exported for unit tests. The native `error` event carries `status` +
45
+ * `retryAfter` (raw header); we normalize the Retry-After (incl. an HTTP-date)
46
+ * to seconds and fold it into the message so the engine's classifier
47
+ * (`classifyProviderError`) classifies by the HTTP code AND honors the
48
+ * server-directed delay — the precise path the AI-SDK hides.
49
+ */
50
+ export declare function normalizeNativeError(e: Record<string, unknown>): ProviderEvent;
51
+ //# sourceMappingURL=native-anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-anthropic.d.ts","sourceRoot":"","sources":["../../../src/ai/adapters/native-anthropic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAIhD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,QAAQ,CAAC,EAAE,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAEX,IAAI,EAAE,6BAA6B;IAQhE,UAAU,IAAI,eAAe,EAAE;IAIxB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC;IASlF;;2EAEuE;YACxD,YAAY;IA+C3B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;CAuB3B;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAW9E"}