@qwen-code/arena-agent 0.0.7-preview.0 → 0.0.8-dev.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 (53) hide show
  1. package/.env.example +15 -5
  2. package/README.md +127 -16
  3. package/dist/agent.d.ts +23 -4
  4. package/dist/agent.js +287 -95
  5. package/dist/agent.js.map +1 -1
  6. package/dist/anthropic.d.ts +16 -0
  7. package/dist/anthropic.js +391 -0
  8. package/dist/anthropic.js.map +1 -0
  9. package/dist/attachments.d.ts +29 -0
  10. package/dist/attachments.js +222 -0
  11. package/dist/attachments.js.map +1 -0
  12. package/dist/canonical-data.d.ts +2 -0
  13. package/dist/canonical-data.js +4 -0
  14. package/dist/canonical-data.js.map +1 -0
  15. package/dist/cli.js +55 -13
  16. package/dist/cli.js.map +1 -1
  17. package/dist/compaction.d.ts +16 -0
  18. package/dist/compaction.js +183 -0
  19. package/dist/compaction.js.map +1 -0
  20. package/dist/config.d.ts +6 -1
  21. package/dist/config.js +28 -2
  22. package/dist/config.js.map +1 -1
  23. package/dist/history.d.ts +3 -3
  24. package/dist/history.js +4 -4
  25. package/dist/history.js.map +1 -1
  26. package/dist/index.d.ts +9 -0
  27. package/dist/index.js +9 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/mock.js +24 -1
  30. package/dist/mock.js.map +1 -1
  31. package/dist/protocol.d.ts +5 -2
  32. package/dist/protocol.js +20 -1
  33. package/dist/protocol.js.map +1 -1
  34. package/dist/provider.d.ts +4 -0
  35. package/dist/provider.js +163 -4
  36. package/dist/provider.js.map +1 -1
  37. package/dist/repo.js +2 -5
  38. package/dist/repo.js.map +1 -1
  39. package/dist/server.js +9 -174
  40. package/dist/server.js.map +1 -1
  41. package/dist/spec.d.ts +7 -9
  42. package/dist/spec.js +128 -27
  43. package/dist/spec.js.map +1 -1
  44. package/dist/tools.d.ts +13 -3
  45. package/dist/tools.js +289 -29
  46. package/dist/tools.js.map +1 -1
  47. package/dist/tui.js +48 -12
  48. package/dist/tui.js.map +1 -1
  49. package/dist/types.d.ts +26 -9
  50. package/dist/web/app.js +2 -3
  51. package/dist/web/app.js.map +1 -1
  52. package/package.json +22 -8
  53. package/spec/tools.json +0 -418
package/dist/agent.js CHANGED
@@ -1,9 +1,20 @@
1
1
  import crypto from "node:crypto";
2
+ import { setTimeout as delay } from "node:timers/promises";
3
+ import { compactMessagesIfNeeded } from "./compaction.js";
2
4
  import { MockModelClient } from "./mock.js";
3
5
  import { HttpModelClient } from "./provider.js";
4
6
  import { detectRepoContext } from "./repo.js";
5
- import { defaultClientContext, initialMessages, interruptedUserMessage, isCanonicalSystemMessage, repoContextFromSystemMessage, repoSystemMessage, toolDefinitions, } from "./spec.js";
7
+ import { defaultClientContext, initialMessages, interruptedUserMessage, isCanonicalSystemMessage, repoContextFromSystemMessage, repoSystemMessage, } from "./spec.js";
6
8
  import { ToolExecutor } from "./tools.js";
9
+ const workspaceMutatingTools = new Set([
10
+ "bash",
11
+ "edit_file",
12
+ "write_file",
13
+ "image_search",
14
+ "generate_image",
15
+ "generate_speech",
16
+ "generate_video",
17
+ ]);
7
18
  function parseToolResult(content) {
8
19
  try {
9
20
  return JSON.parse(content);
@@ -12,6 +23,76 @@ function parseToolResult(content) {
12
23
  return {};
13
24
  }
14
25
  }
26
+ // Network faults that abort an in-flight stream (a dropped socket, a reset, a
27
+ // DNS blip). undici surfaces these mid-stream as `TypeError: fetch failed` or
28
+ // `TypeError: terminated`; some are also reachable via an errno-style code on
29
+ // the error or its cause.
30
+ const retryableStreamCodes = new Set([
31
+ "ECONNRESET",
32
+ "ECONNREFUSED",
33
+ "ECONNABORTED",
34
+ "EPIPE",
35
+ "ETIMEDOUT",
36
+ "ENETUNREACH",
37
+ "ENETDOWN",
38
+ "EHOSTUNREACH",
39
+ "EAI_AGAIN",
40
+ "UND_ERR_SOCKET",
41
+ "UND_ERR_CONNECT_TIMEOUT",
42
+ "UND_ERR_HEADERS_TIMEOUT",
43
+ "UND_ERR_BODY_TIMEOUT",
44
+ "ARENA_STREAM_IDLE_TIMEOUT",
45
+ ]);
46
+ function describeError(error) {
47
+ return error instanceof Error ? error.message : String(error);
48
+ }
49
+ function errorCode(error) {
50
+ const direct = error?.code;
51
+ if (typeof direct === "string")
52
+ return direct;
53
+ const cause = error?.cause?.code;
54
+ return typeof cause === "string" ? cause : undefined;
55
+ }
56
+ function isRetryableStreamError(error) {
57
+ if (error instanceof TypeError)
58
+ return true;
59
+ const code = errorCode(error);
60
+ return code !== undefined && retryableStreamCodes.has(code);
61
+ }
62
+ function completeInterruptedToolCalls(messages) {
63
+ const completed = [];
64
+ let pending = [];
65
+ const flushPending = () => {
66
+ for (const call of pending) {
67
+ completed.push({
68
+ role: "tool",
69
+ tool_call_id: call.id,
70
+ content: JSON.stringify({
71
+ status: "error",
72
+ tool: call.function.name,
73
+ error: "tool result was not recorded because the previous process stopped",
74
+ interrupted: true,
75
+ }),
76
+ });
77
+ }
78
+ pending = [];
79
+ };
80
+ for (const message of messages) {
81
+ if (pending.length && message.role !== "tool")
82
+ flushPending();
83
+ completed.push(message);
84
+ if (message.role === "assistant") {
85
+ pending = [...(message.tool_calls || [])];
86
+ }
87
+ else if (message.role === "tool") {
88
+ const index = pending.findIndex((call) => call.id === message.tool_call_id);
89
+ if (index !== -1)
90
+ pending.splice(index, 1);
91
+ }
92
+ }
93
+ flushPending();
94
+ return completed;
95
+ }
15
96
  class PartialAssistantTurnError extends Error {
16
97
  cause;
17
98
  assistant;
@@ -35,6 +116,7 @@ export class Agent {
35
116
  sink;
36
117
  options;
37
118
  client;
119
+ tools;
38
120
  sessionId;
39
121
  constructor(config, sink, options = {}) {
40
122
  this.config = config;
@@ -45,6 +127,14 @@ export class Agent {
45
127
  (config.model.startsWith("mock/")
46
128
  ? new MockModelClient()
47
129
  : new HttpModelClient(config));
130
+ this.tools =
131
+ options.tools ||
132
+ new ToolExecutor(config, {
133
+ signal: options.signal,
134
+ askUserHandler: options.askUserHandler,
135
+ deferUserInput: options.deferUserInput,
136
+ workspaceContext: options.workspaceContext,
137
+ });
48
138
  this.sessionId =
49
139
  options.sessionId || crypto.randomUUID().replaceAll("-", "");
50
140
  }
@@ -56,61 +146,84 @@ export class Agent {
56
146
  : structuredClone(baseUserMessage);
57
147
  const clientContext = this.options.clientContext || defaultClientContext();
58
148
  const repoContext = resolveRepoContext(this.config.workspace, history);
59
- const tools = new ToolExecutor(this.config, {
60
- signal: this.options.signal,
61
- askUserHandler: this.options.askUserHandler,
62
- });
63
149
  const messages = history?.length
64
- ? structuredClone(history)
65
- : initialMessages(prompt, clientContext, repoContext);
150
+ ? completeInterruptedToolCalls(structuredClone(history))
151
+ : initialMessages(prompt, clientContext, this.options.workspaceContext, repoContext);
66
152
  if (history?.length) {
67
- // repo 模式下 canonical 的判据是用 history 里的仓库变量重新生成的
68
- // 那条 system message,通用模式落回 fixture。
69
153
  const expected = repoContext
70
154
  ? repoSystemMessage(clientContext, repoContext)
71
155
  : undefined;
72
- if (!isCanonicalSystemMessage(messages[0], expected)) {
73
- throw new Error("history does not start with the canonical system message");
156
+ if (!isCanonicalSystemMessage(messages[0], expected || this.options.workspaceContext)) {
157
+ if (!repoContext &&
158
+ this.options.workspaceContext &&
159
+ isCanonicalSystemMessage(messages[0])) {
160
+ messages[0] = initialMessages("", this.options.clientContext, this.options.workspaceContext)[0];
161
+ }
162
+ else {
163
+ throw new Error("history does not match the current workspace runtime context");
164
+ }
74
165
  }
75
166
  messages.push(userMessage);
76
167
  }
77
168
  else {
78
169
  messages[1] = userMessage;
79
170
  }
171
+ const toolsForRun = this.tools.availableTools(runOptions.toolNames);
172
+ await this.maybeCompact(messages, toolsForRun);
80
173
  this.sink.start(this.sessionId, messages);
81
174
  try {
82
- for (let step = 1; step <= this.config.maxSteps; step += 1) {
175
+ await this.checkpoint(messages);
176
+ for (let step = 1;; step += 1) {
83
177
  if (this.options.signal?.aborted) {
84
178
  throw this.options.signal.reason || new Error("operation cancelled");
85
179
  }
180
+ if (step > 1 &&
181
+ (await this.maybeCompact(messages, toolsForRun))) {
182
+ await this.checkpoint(messages);
183
+ }
86
184
  this.sink.modelStart(this.sessionId, step);
87
185
  let assistant;
88
186
  try {
89
- assistant = await this.assistantTurn(messages);
187
+ assistant = await this.assistantTurn(messages, toolsForRun);
90
188
  }
91
189
  catch (error) {
92
190
  if (error instanceof PartialAssistantTurnError) {
93
191
  if (error.assistant) {
94
192
  messages.push(error.assistant);
95
193
  this.sink.message(this.sessionId, error.assistant, messages);
194
+ await this.checkpoint(messages);
96
195
  }
97
196
  throw error.cause;
98
197
  }
99
198
  throw error;
100
199
  }
101
200
  const finishReason = assistant.tool_calls?.length ? "tool_calls" : "stop";
102
- this.sink.modelComplete(this.sessionId, step, finishReason);
201
+ this.sink.modelComplete(this.sessionId, step, finishReason, assistant.usage);
103
202
  messages.push(assistant);
104
203
  this.sink.message(this.sessionId, assistant, messages);
204
+ await this.checkpoint(messages);
205
+ if (!assistant.tool_calls?.length &&
206
+ runOptions.resumeAfterInput &&
207
+ step === 1) {
208
+ const continuation = {
209
+ role: "user",
210
+ content: "<arena-system-message>Clarification is complete. Continue executing the original task now. Use the available tools whenever they are needed to produce and present the requested result; do not stop at a statement of intent.</arena-system-message>",
211
+ };
212
+ messages.push(continuation);
213
+ this.sink.message(this.sessionId, continuation, messages);
214
+ await this.checkpoint(messages);
215
+ continue;
216
+ }
105
217
  if (!assistant.tool_calls?.length) {
106
218
  return this.sink.result(this.sessionId, "success", messages);
107
219
  }
108
220
  const completedToolCallIds = [];
221
+ let workspaceDirty = false;
109
222
  for (const call of assistant.tool_calls) {
110
223
  const toolCallId = String(call.id || "");
111
224
  const toolName = String(call.function?.name || "tool");
112
225
  this.sink.toolStart(this.sessionId, toolCallId, toolName);
113
- const toolMessage = await tools.execute(call);
226
+ const toolMessage = await this.tools.execute(call);
114
227
  const toolResult = parseToolResult(toolMessage.content);
115
228
  const skippedAskUser = toolName === "ask_user" && toolResult.skipped === true;
116
229
  if (this.options.signal?.aborted && !skippedAskUser) {
@@ -119,13 +232,17 @@ export class Agent {
119
232
  messages.push(toolMessage);
120
233
  completedToolCallIds.push(toolCallId);
121
234
  this.sink.message(this.sessionId, toolMessage, messages);
235
+ await this.checkpoint(messages);
122
236
  this.sink.toolComplete(this.sessionId, toolCallId, toolName);
237
+ if (workspaceMutatingTools.has(toolName))
238
+ workspaceDirty = true;
123
239
  if (toolName === "ask_user") {
124
240
  if (toolResult.status === "needs_input") {
125
- const visualMessage = tools.takeVisualMessage(completedToolCallIds);
241
+ const visualMessage = this.tools.takeVisualMessage(completedToolCallIds);
126
242
  if (visualMessage) {
127
243
  messages.push(visualMessage);
128
244
  this.sink.message(this.sessionId, visualMessage, messages);
245
+ await this.checkpoint(messages);
129
246
  }
130
247
  const questions = Array.isArray(toolResult.questions)
131
248
  ? toolResult.questions
@@ -138,105 +255,180 @@ export class Agent {
138
255
  throw this.options.signal.reason || new Error("operation cancelled");
139
256
  }
140
257
  }
141
- const visualMessage = tools.takeVisualMessage(completedToolCallIds);
258
+ if (workspaceDirty &&
259
+ this.options.emitWorkspaceSnapshots &&
260
+ this.tools.workspaceSnapshot) {
261
+ try {
262
+ this.sink.workspaceSnapshot(this.sessionId, await this.tools.workspaceSnapshot());
263
+ }
264
+ catch {
265
+ // Workspace projection is best-effort and must not fail the task.
266
+ }
267
+ }
268
+ const visualMessage = this.tools.takeVisualMessage(completedToolCallIds);
142
269
  if (visualMessage) {
143
270
  messages.push(visualMessage);
144
271
  this.sink.message(this.sessionId, visualMessage, messages);
272
+ await this.checkpoint(messages);
145
273
  }
146
274
  }
147
- return this.sink.result(this.sessionId, "error", messages, "agent exceeded ARENA_MAX_STEPS");
148
275
  }
149
276
  catch (error) {
150
277
  const message = error instanceof Error ? error.message : String(error);
151
278
  return this.sink.result(this.sessionId, "error", messages, message);
152
279
  }
153
280
  }
154
- async assistantTurn(messages) {
155
- const contentParts = [];
156
- const reasoningParts = [];
157
- const calls = new Map();
158
- const stream = this.client.stream({
159
- model: this.config.model,
160
- messages: structuredClone(messages),
161
- tools: toolDefinitions(),
162
- toolChoice: this.config.toolChoice,
163
- temperature: this.config.temperature,
164
- maxTokens: this.config.maxTokens,
165
- enableThinking: this.config.enableThinking,
166
- thinkingBudget: this.config.thinkingBudget,
167
- preserveThinking: this.config.preserveThinking,
168
- signal: this.options.signal,
169
- });
281
+ async checkpoint(messages) {
282
+ await this.options.onCheckpoint?.(messages);
283
+ }
284
+ async maybeCompact(messages, tools) {
170
285
  try {
171
- for await (const chunk of stream) {
172
- const delta = chunk.choices?.[0]?.delta || {};
173
- if (delta.content) {
174
- const content = String(delta.content);
175
- contentParts.push(content);
176
- this.sink.delta(this.sessionId, { content });
177
- }
178
- const reasoning = delta.reasoning_content || delta.reasoning;
179
- if (reasoning) {
180
- const value = String(reasoning);
181
- reasoningParts.push(value);
182
- this.sink.delta(this.sessionId, { reasoning_content: value });
183
- }
184
- for (const [position, fragment] of (delta.tool_calls || []).entries()) {
185
- const index = Number(fragment.index ?? position);
186
- const call = calls.get(index) ||
187
- {
188
- id: "",
189
- type: "function",
190
- function: { name: "", arguments: "" },
191
- };
192
- if (fragment.id)
193
- call.id += String(fragment.id);
194
- if (fragment.function?.name) {
195
- call.function.name += String(fragment.function.name);
286
+ const result = await compactMessagesIfNeeded(messages, tools, this.client, this.config.model, {
287
+ contextWindow: this.config.contextWindow,
288
+ triggerRatio: this.config.contextCompactionRatio,
289
+ summaryMaxTokens: this.config.compactionSummaryMaxTokens,
290
+ }, this.options.signal);
291
+ if (result.compacted) {
292
+ // The summary request's tokens belong to no history message (the
293
+ // summarized prefix is replaced), so the event stream is the only
294
+ // place its usage can be accounted for.
295
+ this.sink.compaction(this.sessionId, result.usage);
296
+ }
297
+ return result.compacted;
298
+ }
299
+ catch {
300
+ // Compaction is protective rather than task-critical. If its dedicated
301
+ // summary request fails, keep the original history and let the normal
302
+ // model request (and its retry policy) decide whether it still fits.
303
+ return false;
304
+ }
305
+ }
306
+ async assistantTurn(messages, tools) {
307
+ // A mid-stream network fault loses only the tokens produced so far, not the
308
+ // conversation: the request is idempotent, so the whole turn is re-issued
309
+ // from scratch. Accumulators live inside the loop and reset each attempt, so
310
+ // the assistant message written to history reflects one clean completion.
311
+ const maxRetries = Math.max(0, Math.floor(this.config.modelMaxRetries ?? 5));
312
+ for (let attempt = 0;; attempt += 1) {
313
+ const contentParts = [];
314
+ const reasoningParts = [];
315
+ const calls = new Map();
316
+ let usage;
317
+ let reasoningDetails;
318
+ try {
319
+ const stream = this.client.stream({
320
+ model: this.config.model,
321
+ messages: structuredClone(messages),
322
+ tools,
323
+ toolChoice: this.config.toolChoice,
324
+ temperature: this.config.temperature,
325
+ maxTokens: this.config.maxTokens,
326
+ enableThinking: this.config.enableThinking,
327
+ thinkingBudget: this.config.thinkingBudget,
328
+ preserveThinking: this.config.preserveThinking,
329
+ signal: this.options.signal,
330
+ });
331
+ for await (const chunk of stream) {
332
+ // With stream_options.include_usage the usage arrives on the final
333
+ // chunk; providers that report it cumulatively are covered by
334
+ // letting the last non-empty value win.
335
+ if (chunk.usage)
336
+ usage = chunk.usage;
337
+ if (chunk.reasoning_details?.length) {
338
+ reasoningDetails = chunk.reasoning_details;
196
339
  }
197
- if (fragment.function?.arguments) {
198
- call.function.arguments += String(fragment.function.arguments);
340
+ const delta = chunk.choices?.[0]?.delta || {};
341
+ if (delta.content) {
342
+ const content = String(delta.content);
343
+ contentParts.push(content);
344
+ this.sink.delta(this.sessionId, { content });
199
345
  }
200
- calls.set(index, call);
201
- this.sink.delta(this.sessionId, {
202
- tool_calls: [
346
+ const reasoning = delta.reasoning_content || delta.reasoning;
347
+ if (reasoning) {
348
+ const value = String(reasoning);
349
+ reasoningParts.push(value);
350
+ this.sink.delta(this.sessionId, { reasoning_content: value });
351
+ }
352
+ for (const [position, fragment] of (delta.tool_calls || []).entries()) {
353
+ const index = Number(fragment.index ?? position);
354
+ const call = calls.get(index) ||
203
355
  {
204
- index,
205
- id: String(fragment.id || ""),
206
- type: String(fragment.type || ""),
207
- function: {
208
- name: String(fragment.function?.name || ""),
209
- arguments: String(fragment.function?.arguments || ""),
356
+ id: "",
357
+ type: "function",
358
+ function: { name: "", arguments: "" },
359
+ };
360
+ if (fragment.id)
361
+ call.id += String(fragment.id);
362
+ if (fragment.function?.name) {
363
+ call.function.name += String(fragment.function.name);
364
+ }
365
+ if (fragment.function?.arguments) {
366
+ call.function.arguments += String(fragment.function.arguments);
367
+ }
368
+ calls.set(index, call);
369
+ this.sink.delta(this.sessionId, {
370
+ tool_calls: [
371
+ {
372
+ index,
373
+ id: String(fragment.id || ""),
374
+ type: String(fragment.type || ""),
375
+ function: {
376
+ name: String(fragment.function?.name || ""),
377
+ arguments: String(fragment.function?.arguments || ""),
378
+ },
210
379
  },
211
- },
212
- ],
213
- });
380
+ ],
381
+ });
382
+ }
214
383
  }
215
384
  }
216
- }
217
- catch (error) {
218
- const content = contentParts.join("");
219
- const reasoningContent = reasoningParts.join("");
220
- const partial = content || reasoningContent
221
- ? {
222
- role: "assistant",
223
- content,
224
- reasoning_content: reasoningContent,
385
+ catch (error) {
386
+ // A user cancellation is not a transient fault: skip the retry, but
387
+ // still fall through so any partial output is preserved in history.
388
+ const aborted = Boolean(this.options.signal?.aborted);
389
+ if (!aborted && isRetryableStreamError(error) && attempt < maxRetries) {
390
+ this.sink.modelRetry(this.sessionId, attempt + 1, describeError(error));
391
+ await this.retryBackoff(attempt);
392
+ continue;
225
393
  }
226
- : undefined;
227
- throw new PartialAssistantTurnError(error, partial);
228
- }
229
- const assistant = {
230
- role: "assistant",
231
- content: contentParts.join(""),
232
- reasoning_content: reasoningParts.join(""),
233
- };
234
- if (calls.size) {
235
- assistant.tool_calls = [...calls.entries()]
236
- .sort(([left], [right]) => left - right)
237
- .map(([, call]) => call);
394
+ const content = contentParts.join("");
395
+ const reasoningContent = reasoningParts.join("");
396
+ const partial = content || reasoningContent
397
+ ? {
398
+ role: "assistant",
399
+ content,
400
+ reasoning_content: reasoningContent,
401
+ ...(usage ? { usage } : {}),
402
+ ...(reasoningDetails ? { reasoning_details: reasoningDetails } : {}),
403
+ }
404
+ : undefined;
405
+ throw new PartialAssistantTurnError(error, partial);
406
+ }
407
+ const assistant = {
408
+ role: "assistant",
409
+ content: contentParts.join(""),
410
+ reasoning_content: reasoningParts.join(""),
411
+ };
412
+ if (usage)
413
+ assistant.usage = usage;
414
+ if (reasoningDetails)
415
+ assistant.reasoning_details = reasoningDetails;
416
+ if (calls.size) {
417
+ assistant.tool_calls = [...calls.entries()]
418
+ .sort(([left], [right]) => left - right)
419
+ .map(([, call]) => call);
420
+ }
421
+ return assistant;
238
422
  }
239
- return assistant;
423
+ }
424
+ async retryBackoff(attempt) {
425
+ const base = Math.max(0, this.config.modelRetryBaseMs ?? 1000);
426
+ const maximum = Math.max(0, this.config.modelRetryMaxMs ?? 30000);
427
+ const exponential = Math.min(maximum, base * 2 ** Math.min(attempt, 30));
428
+ const wait = Math.floor(exponential * Math.random());
429
+ if (wait <= 0)
430
+ return;
431
+ await delay(wait, undefined, { signal: this.options.signal });
240
432
  }
241
433
  }
242
434
  export function finalText(result) {
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Message, ModelChunk, ModelRequest } from "./types.js";
2
+ type Block = Record<string, unknown> & {
3
+ type: string;
4
+ };
5
+ interface ConvertedMessages {
6
+ system?: string;
7
+ messages: Array<{
8
+ role: "user" | "assistant";
9
+ content: Block[];
10
+ }>;
11
+ }
12
+ export declare function anthropicMessages(messages: Message[], includeThinking: boolean): ConvertedMessages;
13
+ export declare function anthropicRequestBody(request: ModelRequest, model: string): Record<string, unknown>;
14
+ export declare function anthropicChunks(stream: ReadableStream<Uint8Array>): AsyncGenerator<ModelChunk>;
15
+ export declare function anthropicFallbackChunk(value: Record<string, unknown>): ModelChunk;
16
+ export {};