neoctl 0.2.0 → 0.2.2

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 (92) hide show
  1. package/README.md +20 -9
  2. package/dist/context/compaction.d.ts +3 -0
  3. package/dist/context/compaction.js +231 -40
  4. package/dist/context/compaction.js.map +1 -1
  5. package/dist/context/prompts.js +4 -4
  6. package/dist/context/prompts.js.map +1 -1
  7. package/dist/core/commands.d.ts +66 -0
  8. package/dist/core/commands.js +151 -0
  9. package/dist/core/commands.js.map +1 -0
  10. package/dist/core/context-metrics.d.ts +5 -2
  11. package/dist/core/context-metrics.js +85 -9
  12. package/dist/core/context-metrics.js.map +1 -1
  13. package/dist/core/image-registry.d.ts +42 -0
  14. package/dist/core/image-registry.js +128 -0
  15. package/dist/core/image-registry.js.map +1 -0
  16. package/dist/core/message-pipeline.d.ts +6 -0
  17. package/dist/core/message-pipeline.js +12 -0
  18. package/dist/core/message-pipeline.js.map +1 -1
  19. package/dist/core/query-engine.d.ts +0 -4
  20. package/dist/core/query-engine.js +0 -22
  21. package/dist/core/query-engine.js.map +1 -1
  22. package/dist/core/query.d.ts +0 -4
  23. package/dist/core/query.js +21 -8
  24. package/dist/core/query.js.map +1 -1
  25. package/dist/core/runtime.d.ts +59 -0
  26. package/dist/core/runtime.js +161 -0
  27. package/dist/core/runtime.js.map +1 -0
  28. package/dist/core/state.d.ts +6 -7
  29. package/dist/core/state.js +2 -0
  30. package/dist/core/state.js.map +1 -1
  31. package/dist/index.d.ts +4 -1
  32. package/dist/index.js +4 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/model/anthropic-adapter.d.ts +30 -0
  35. package/dist/model/anthropic-adapter.js +106 -0
  36. package/dist/model/anthropic-adapter.js.map +1 -0
  37. package/dist/model/anthropic-mapper.d.ts +13 -0
  38. package/dist/model/anthropic-mapper.js +482 -0
  39. package/dist/model/anthropic-mapper.js.map +1 -0
  40. package/dist/model/config.d.ts +8 -2
  41. package/dist/model/config.js +24 -1
  42. package/dist/model/config.js.map +1 -1
  43. package/dist/model/openai-mappers.js +1 -1
  44. package/dist/model/openai-mappers.js.map +1 -1
  45. package/dist/model/provider-factory.js +17 -0
  46. package/dist/model/provider-factory.js.map +1 -1
  47. package/dist/model/smoke-anthropic-mapper.d.ts +1 -0
  48. package/dist/model/smoke-anthropic-mapper.js +85 -0
  49. package/dist/model/smoke-anthropic-mapper.js.map +1 -0
  50. package/dist/repl/index.js +56 -27
  51. package/dist/repl/index.js.map +1 -1
  52. package/dist/repl/transcript-flush.d.ts +6 -0
  53. package/dist/repl/transcript-flush.js +54 -0
  54. package/dist/repl/transcript-flush.js.map +1 -0
  55. package/dist/repl/transcript-format.d.ts +16 -0
  56. package/dist/repl/transcript-format.js +199 -0
  57. package/dist/repl/transcript-format.js.map +1 -0
  58. package/dist/server/agent-manager.d.ts +56 -0
  59. package/dist/server/agent-manager.js +171 -0
  60. package/dist/server/agent-manager.js.map +1 -0
  61. package/dist/server/connection-manager.d.ts +18 -0
  62. package/dist/server/connection-manager.js +52 -0
  63. package/dist/server/connection-manager.js.map +1 -0
  64. package/dist/server/event-mapper.d.ts +4 -0
  65. package/dist/server/event-mapper.js +31 -0
  66. package/dist/server/event-mapper.js.map +1 -0
  67. package/dist/server/query-runtime.d.ts +29 -0
  68. package/dist/server/query-runtime.js +61 -0
  69. package/dist/server/query-runtime.js.map +1 -0
  70. package/dist/server/rpc-router.d.ts +24 -0
  71. package/dist/server/rpc-router.js +165 -0
  72. package/dist/server/rpc-router.js.map +1 -0
  73. package/dist/server/rpc-types.d.ts +92 -0
  74. package/dist/server/rpc-types.js +2 -0
  75. package/dist/server/rpc-types.js.map +1 -0
  76. package/dist/server/ws-server.d.ts +22 -0
  77. package/dist/server/ws-server.js +84 -0
  78. package/dist/server/ws-server.js.map +1 -0
  79. package/dist/tasks/task-record.d.ts +50 -0
  80. package/dist/tasks/task-record.js +50 -0
  81. package/dist/tasks/task-record.js.map +1 -0
  82. package/dist/tips.js +1 -1
  83. package/dist/tips.js.map +1 -1
  84. package/dist/tools/builtins/image-loader-tool.d.ts +22 -0
  85. package/dist/tools/builtins/image-loader-tool.js +235 -0
  86. package/dist/tools/builtins/image-loader-tool.js.map +1 -0
  87. package/dist/web/html.js +3 -4
  88. package/dist/web/html.js.map +1 -1
  89. package/dist/web/index.d.ts +6 -0
  90. package/dist/web/index.js +60 -20
  91. package/dist/web/index.js.map +1 -1
  92. package/package.json +3 -1
@@ -0,0 +1,482 @@
1
+ import { createTextMessage, createThinkingMessage } from "../types/messages.js";
2
+ import { categoryForStatus, ModelAPIError } from "./errors.js";
3
+ import { decodeSSE } from "./sse-decoder.js";
4
+ import { asNumber, asString, dropUndefined } from "./openai-mappers.js";
5
+ export function buildAnthropicRequest(request, options) {
6
+ const tools = buildAnthropicTools(request.tools);
7
+ const reasoningDisabled = request.reasoning === null || (request.reasoning === undefined && options.defaultReasoning === null);
8
+ const reasoning = reasoningDisabled ? undefined : (request.reasoning ?? options.defaultReasoning ?? undefined);
9
+ const built = buildAnthropicMessages(request.messages, request.instructions ?? request.systemPrompt);
10
+ return dropUndefined({
11
+ model: request.model ?? options.model,
12
+ system: built.system,
13
+ messages: built.messages,
14
+ tools: tools.length ? tools : undefined,
15
+ tool_choice: anthropicToolChoice(request.toolChoice, tools.length),
16
+ max_tokens: request.maxOutputTokens ?? options.defaultMaxOutputTokens,
17
+ thinking: anthropicThinkingOption(reasoningDisabled, reasoning),
18
+ ...(request.providerOptions?.anthropic ?? {}),
19
+ });
20
+ }
21
+ export async function* normalizeAnthropicStream(stream, options) {
22
+ const textParts = [];
23
+ const thinkingParts = [];
24
+ const thinkingSignatures = new Map();
25
+ const toolBuffers = new Map();
26
+ const emittedToolUses = new Set();
27
+ let responseId;
28
+ let stopReason;
29
+ let usage;
30
+ for await (const sse of decodeSSE(stream, options.streamIdleTimeoutMs ?? 120000)) {
31
+ const event = sse.data;
32
+ const type = asString(event.type ?? sse.event);
33
+ yield { type: "provider_event", event };
34
+ if (type === "error")
35
+ throw normalizeAnthropicStreamError(event);
36
+ if (type === "message_start") {
37
+ const message = asRecord(event.message);
38
+ responseId = asString(message?.id) ?? responseId;
39
+ if (responseId)
40
+ yield { type: "response_started", responseId };
41
+ const nextUsage = normalizeAnthropicUsage(message?.usage);
42
+ if (nextUsage) {
43
+ usage = nextUsage;
44
+ yield { type: "usage", usage };
45
+ }
46
+ continue;
47
+ }
48
+ if (type === "content_block_start") {
49
+ const index = asNumber(event.index) ?? toolBuffers.size;
50
+ const block = asRecord(event.content_block);
51
+ if (block?.type === "tool_use") {
52
+ toolBuffers.set(index, {
53
+ callId: asString(block.id) ?? `toolu_${index}`,
54
+ name: asString(block.name) ?? "unknown_tool",
55
+ argumentsBuffer: hasUsableInitialToolInput(block.input) ? serializeInitialToolInput(block.input) : "",
56
+ });
57
+ }
58
+ continue;
59
+ }
60
+ if (type === "content_block_delta") {
61
+ const index = asNumber(event.index) ?? toolBuffers.size;
62
+ const delta = asRecord(event.delta);
63
+ const deltaType = asString(delta?.type);
64
+ if (deltaType === "text_delta") {
65
+ const text = asString(delta?.text) ?? "";
66
+ if (text) {
67
+ textParts.push(text);
68
+ yield { type: "assistant_delta", text };
69
+ }
70
+ continue;
71
+ }
72
+ if (deltaType === "thinking_delta") {
73
+ const thinking = asString(delta?.thinking) ?? asString(delta?.text) ?? "";
74
+ if (thinking) {
75
+ thinkingParts.push(thinking);
76
+ yield { type: "thinking_delta", text: thinking };
77
+ }
78
+ continue;
79
+ }
80
+ if (deltaType === "signature_delta") {
81
+ const signature = asString(delta?.signature);
82
+ if (signature)
83
+ thinkingSignatures.set(index, signature);
84
+ continue;
85
+ }
86
+ if (deltaType === "input_json_delta") {
87
+ const buffer = toolBuffers.get(index) ?? { callId: `toolu_${index}`, name: "unknown_tool", argumentsBuffer: "" };
88
+ const partialJson = asString(delta?.partial_json) ?? "";
89
+ buffer.argumentsBuffer += partialJson;
90
+ toolBuffers.set(index, buffer);
91
+ if (partialJson)
92
+ yield { type: "tool_call_delta", callId: buffer.callId, name: buffer.name, argumentsDelta: partialJson };
93
+ continue;
94
+ }
95
+ continue;
96
+ }
97
+ if (type === "message_delta") {
98
+ const delta = asRecord(event.delta);
99
+ stopReason = asString(delta?.stop_reason) ?? stopReason;
100
+ const nextUsage = normalizeAnthropicUsage(event.usage);
101
+ if (nextUsage) {
102
+ usage = nextUsage;
103
+ yield { type: "usage", usage };
104
+ }
105
+ continue;
106
+ }
107
+ if (type === "message_stop") {
108
+ for (const buffer of toolBuffers.values()) {
109
+ if (emittedToolUses.has(buffer.callId))
110
+ continue;
111
+ emittedToolUses.add(buffer.callId);
112
+ yield { type: "tool_use", toolUse: toToolUse(buffer) };
113
+ }
114
+ const text = textParts.join("");
115
+ if (text)
116
+ yield { type: "assistant_message", message: createTextMessage("assistant", text) };
117
+ const thinking = thinkingParts.join("").trim();
118
+ if (thinking) {
119
+ const signature = [...thinkingSignatures.values()].find(Boolean);
120
+ yield { type: "assistant_message", message: createThinkingMessage(thinking, signature) };
121
+ }
122
+ if (stopReason === "max_tokens" || stopReason === "pause_turn") {
123
+ yield { type: "response_incomplete", responseId, reason: normalizeStopReason(stopReason), usage };
124
+ }
125
+ else {
126
+ yield { type: "response_completed", responseId, stopReason, usage };
127
+ }
128
+ return;
129
+ }
130
+ }
131
+ for (const buffer of toolBuffers.values()) {
132
+ if (emittedToolUses.has(buffer.callId))
133
+ continue;
134
+ emittedToolUses.add(buffer.callId);
135
+ yield { type: "tool_use", toolUse: toToolUse(buffer) };
136
+ }
137
+ const text = textParts.join("");
138
+ if (text)
139
+ yield { type: "assistant_message", message: createTextMessage("assistant", text) };
140
+ const thinking = thinkingParts.join("").trim();
141
+ if (thinking) {
142
+ const signature = [...thinkingSignatures.values()].find(Boolean);
143
+ yield { type: "assistant_message", message: createThinkingMessage(thinking, signature) };
144
+ }
145
+ if (stopReason === "max_tokens" || stopReason === "pause_turn") {
146
+ yield { type: "response_incomplete", responseId, reason: normalizeStopReason(stopReason), usage };
147
+ }
148
+ else {
149
+ yield { type: "response_completed", responseId, stopReason, usage };
150
+ }
151
+ }
152
+ export function* normalizeAnthropicObject(response) {
153
+ const body = response.body;
154
+ const responseId = asString(body.id);
155
+ if (responseId)
156
+ yield { type: "response_started", responseId };
157
+ const content = Array.isArray(body.content) ? body.content : [];
158
+ const textParts = [];
159
+ const thinkingParts = [];
160
+ for (const item of content) {
161
+ const block = asRecord(item);
162
+ if (!block)
163
+ continue;
164
+ if (block.type === "text") {
165
+ const text = asString(block.text) ?? "";
166
+ if (text)
167
+ textParts.push(text);
168
+ continue;
169
+ }
170
+ if (block.type === "thinking") {
171
+ const thinking = asString(block.thinking) ?? asString(block.text) ?? "";
172
+ if (thinking)
173
+ thinkingParts.push(thinking);
174
+ continue;
175
+ }
176
+ if (block.type === "tool_use") {
177
+ yield {
178
+ type: "tool_use",
179
+ toolUse: {
180
+ id: asString(block.id) ?? "toolu_unknown",
181
+ name: asString(block.name) ?? "unknown_tool",
182
+ input: block.input ?? {},
183
+ },
184
+ };
185
+ }
186
+ }
187
+ const text = textParts.join("");
188
+ if (text)
189
+ yield { type: "assistant_message", message: createTextMessage("assistant", text) };
190
+ const thinking = thinkingParts.join("").trim();
191
+ if (thinking)
192
+ yield { type: "assistant_message", message: createThinkingMessage(thinking, asString(findThinkingSignature(content))) };
193
+ const usage = normalizeAnthropicUsage(body.usage);
194
+ if (usage)
195
+ yield { type: "usage", usage };
196
+ const stopReason = asString(body.stop_reason);
197
+ if (stopReason === "max_tokens" || stopReason === "pause_turn") {
198
+ yield { type: "response_incomplete", responseId, reason: normalizeStopReason(stopReason), usage };
199
+ }
200
+ else {
201
+ yield { type: "response_completed", responseId, stopReason, usage };
202
+ }
203
+ }
204
+ export function normalizeAnthropicStreamError(event) {
205
+ const error = asRecord(event.error) ?? event;
206
+ const status = asNumber(error.status ?? event.status);
207
+ const type = asString(error.type);
208
+ const message = asString(error.message) ?? JSON.stringify(error);
209
+ return new ModelAPIError({
210
+ category: status !== undefined ? categoryForStatus(status, error) : categoryForAnthropicError(type, message),
211
+ provider: "anthropic",
212
+ message,
213
+ status,
214
+ code: type,
215
+ raw: event,
216
+ });
217
+ }
218
+ function buildAnthropicTools(tools) {
219
+ return tools.map((tool) => ({
220
+ name: tool.name,
221
+ description: tool.description,
222
+ input_schema: normalizeSchema(tool.inputSchema),
223
+ }));
224
+ }
225
+ function buildAnthropicMessages(messages, systemPrompt) {
226
+ const systemParts = [];
227
+ if (systemPrompt?.trim())
228
+ systemParts.push(systemPrompt.trim());
229
+ const pairedIds = collectPairedToolIds(messages);
230
+ const builtMessages = [];
231
+ const pushMessage = (role, content) => {
232
+ if (content.length === 0)
233
+ return;
234
+ const last = builtMessages[builtMessages.length - 1];
235
+ if (last?.role === role) {
236
+ last.content.push(...content);
237
+ return;
238
+ }
239
+ builtMessages.push({ role, content: [...content] });
240
+ };
241
+ for (const message of messages) {
242
+ if (message.role === "progress")
243
+ continue;
244
+ if (message.role === "system") {
245
+ const text = textFromBlocks(message.blocks).trim();
246
+ if (text)
247
+ systemParts.push(text);
248
+ continue;
249
+ }
250
+ if (message.role === "assistant") {
251
+ const content = anthropicAssistantContentFromBlocks(message.blocks, pairedIds);
252
+ pushMessage("assistant", content);
253
+ continue;
254
+ }
255
+ if (message.role === "tool_result") {
256
+ const content = anthropicToolResultContentFromBlocks(message.blocks, pairedIds);
257
+ pushMessage("user", content);
258
+ continue;
259
+ }
260
+ const content = anthropicUserContentFromBlocks(message.blocks);
261
+ pushMessage("user", content);
262
+ }
263
+ const system = systemParts.map((part) => part.trim()).filter(Boolean).join("\n\n").trim() || undefined;
264
+ return { system, messages: builtMessages };
265
+ }
266
+ function anthropicAssistantContentFromBlocks(blocks, pairedIds) {
267
+ const content = [];
268
+ for (const block of blocks) {
269
+ if (block.type === "text" && block.text)
270
+ content.push({ type: "text", text: block.text });
271
+ if (block.type === "tool_use" && pairedIds.has(block.id)) {
272
+ content.push({ type: "tool_use", id: block.id, name: block.name, input: block.input ?? {} });
273
+ }
274
+ }
275
+ return content;
276
+ }
277
+ function anthropicToolResultContentFromBlocks(blocks, pairedIds) {
278
+ const content = [];
279
+ for (const block of blocks) {
280
+ if (block.type !== "tool_result" || !pairedIds.has(block.toolUseId))
281
+ continue;
282
+ content.push(dropUndefined({
283
+ type: "tool_result",
284
+ tool_use_id: block.toolUseId,
285
+ is_error: block.ok ? undefined : true,
286
+ content: serializeToolOutput(block.output),
287
+ }));
288
+ }
289
+ return content;
290
+ }
291
+ function anthropicUserContentFromBlocks(blocks) {
292
+ const content = [];
293
+ for (const block of blocks) {
294
+ if (block.type === "text" && block.text)
295
+ content.push({ type: "text", text: block.text });
296
+ if (block.type === "image") {
297
+ const image = anthropicImageBlock(block);
298
+ if (image)
299
+ content.push(image);
300
+ const storageText = imageStorageText(block);
301
+ if (storageText)
302
+ content.push({ type: "text", text: storageText });
303
+ }
304
+ }
305
+ return content;
306
+ }
307
+ function anthropicImageBlock(block) {
308
+ const mediaType = block.mimeType.trim();
309
+ const base64 = base64Data(block.data);
310
+ if (!mediaType || !base64)
311
+ return undefined;
312
+ return {
313
+ type: "image",
314
+ source: {
315
+ type: "base64",
316
+ media_type: mediaType,
317
+ data: base64,
318
+ },
319
+ };
320
+ }
321
+ function anthropicToolChoice(toolChoice, toolCount) {
322
+ if (toolCount === 0)
323
+ return undefined;
324
+ if (!toolChoice || toolChoice === "auto")
325
+ return { type: "auto" };
326
+ if (toolChoice === "required")
327
+ return { type: "any" };
328
+ if (toolChoice === "none")
329
+ return undefined;
330
+ if (toolChoice.type === "function")
331
+ return { type: "tool", name: toolChoice.name };
332
+ return undefined;
333
+ }
334
+ function anthropicThinkingOption(reasoningDisabled, reasoning) {
335
+ if (reasoningDisabled || reasoning?.effort === "none")
336
+ return undefined;
337
+ if (!reasoning?.effort)
338
+ return undefined;
339
+ return {
340
+ type: "enabled",
341
+ budget_tokens: thinkingBudgetTokens(reasoning.effort),
342
+ };
343
+ }
344
+ function thinkingBudgetTokens(effort) {
345
+ switch (effort) {
346
+ case "minimal": return 1024;
347
+ case "low": return 2048;
348
+ case "medium": return 4096;
349
+ case "high": return 8192;
350
+ case "xhigh": return 16384;
351
+ case "max": return 32768;
352
+ default: return 1024;
353
+ }
354
+ }
355
+ function normalizeAnthropicUsage(raw) {
356
+ if (!raw || typeof raw !== "object")
357
+ return undefined;
358
+ const usage = raw;
359
+ const inputTokens = asNumber(usage.input_tokens);
360
+ const outputTokens = asNumber(usage.output_tokens);
361
+ const cacheCreationTokens = asNumber(usage.cache_creation_input_tokens);
362
+ const cacheReadTokens = asNumber(usage.cache_read_input_tokens);
363
+ return {
364
+ inputTokens,
365
+ outputTokens,
366
+ totalTokens: sum(inputTokens, outputTokens),
367
+ cachedTokens: sum(cacheCreationTokens, cacheReadTokens),
368
+ raw,
369
+ };
370
+ }
371
+ function normalizeStopReason(reason) {
372
+ if (reason === "max_tokens")
373
+ return "max_output_tokens";
374
+ return reason;
375
+ }
376
+ function findThinkingSignature(content) {
377
+ for (const item of content) {
378
+ const block = asRecord(item);
379
+ const signature = asString(block?.signature);
380
+ if (signature)
381
+ return signature;
382
+ }
383
+ return undefined;
384
+ }
385
+ function textFromBlocks(blocks) {
386
+ return blocks
387
+ .filter((block) => block.type === "text")
388
+ .map((block) => block.text)
389
+ .join("\n");
390
+ }
391
+ function collectPairedToolIds(messages) {
392
+ const toolUseIds = new Set();
393
+ const toolResultIds = new Set();
394
+ for (const message of messages) {
395
+ for (const block of message.blocks) {
396
+ if (block.type === "tool_use")
397
+ toolUseIds.add(block.id);
398
+ if (block.type === "tool_result")
399
+ toolResultIds.add(block.toolUseId);
400
+ }
401
+ }
402
+ return new Set([...toolUseIds].filter((id) => toolResultIds.has(id)));
403
+ }
404
+ function imageStorageText(block) {
405
+ if (!block.storage?.path)
406
+ return undefined;
407
+ const label = block.label ? `${block.label} ` : "";
408
+ return `${label}image payload is stored as ${block.storage.format} at ${block.storage.path}; use the load_image tool with this image label/id for visual inspection, or view/read only if you need the stored base64 text.`;
409
+ }
410
+ function base64Data(data) {
411
+ const trimmed = data.trim();
412
+ const match = /^data:[^;]+;base64,(.*)$/i.exec(trimmed);
413
+ return match ? match[1] : trimmed;
414
+ }
415
+ function hasUsableInitialToolInput(input) {
416
+ if (input === undefined || input === null)
417
+ return false;
418
+ if (typeof input === "string")
419
+ return input.trim().length > 0;
420
+ if (Array.isArray(input))
421
+ return input.length > 0;
422
+ if (typeof input === "object")
423
+ return Object.keys(input).length > 0;
424
+ return true;
425
+ }
426
+ function serializeInitialToolInput(input) {
427
+ if (input === undefined)
428
+ return "";
429
+ if (typeof input === "string")
430
+ return input;
431
+ return JSON.stringify(input);
432
+ }
433
+ function toToolUse(buffer) {
434
+ return { id: buffer.callId, name: buffer.name, input: parseArguments(buffer.argumentsBuffer) };
435
+ }
436
+ function parseArguments(value) {
437
+ if (!value.trim())
438
+ return {};
439
+ try {
440
+ return JSON.parse(value);
441
+ }
442
+ catch {
443
+ throw new Error(`Tool call arguments are not valid JSON: ${value}`);
444
+ }
445
+ }
446
+ function serializeToolOutput(output) {
447
+ return typeof output === "string" ? output : JSON.stringify(output);
448
+ }
449
+ function normalizeSchema(schema) {
450
+ if (!schema || typeof schema !== "object")
451
+ return { type: "object", properties: {}, additionalProperties: false };
452
+ return schema;
453
+ }
454
+ function categoryForAnthropicError(type, message) {
455
+ const text = `${type ?? ""} ${message}`.toLowerCase();
456
+ if (text.includes("rate_limit"))
457
+ return "rate_limit";
458
+ if (text.includes("overloaded"))
459
+ return "overloaded";
460
+ if (text.includes("authentication") || text.includes("api key") || text.includes("auth"))
461
+ return "auth_unavailable";
462
+ if (text.includes("permission"))
463
+ return "permission_denied";
464
+ if (text.includes("context") && text.includes("length"))
465
+ return "context_length";
466
+ if (text.includes("max_tokens") || text.includes("max tokens"))
467
+ return "max_output_tokens";
468
+ if (text.includes("timeout"))
469
+ return "timeout";
470
+ if (text.includes("server"))
471
+ return "server_error";
472
+ return "provider_bug";
473
+ }
474
+ function asRecord(value) {
475
+ return value && typeof value === "object" && !Array.isArray(value) ? value : undefined;
476
+ }
477
+ function sum(left, right) {
478
+ if (left === undefined && right === undefined)
479
+ return undefined;
480
+ return (left ?? 0) + (right ?? 0);
481
+ }
482
+ //# sourceMappingURL=anthropic-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic-mapper.js","sourceRoot":"","sources":["../../src/model/anthropic-mapper.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ReasoningConfig } from "./model-gateway.js";
2
- export type ModelProviderName = "openai" | "deepseek" | "kimi";
2
+ export type ModelProviderName = "openai" | "anthropic" | "deepseek" | "kimi";
3
3
  export type ReasoningSummary = NonNullable<ReasoningConfig["summary"]>;
4
4
  export interface BaseModelProviderConfig {
5
5
  provider: ModelProviderName;
@@ -20,12 +20,18 @@ export interface OpenAIProviderConfig extends BaseModelProviderConfig {
20
20
  endpoint?: OpenAIEndpointPreference;
21
21
  };
22
22
  }
23
+ export interface AnthropicProviderConfig extends BaseModelProviderConfig {
24
+ provider: "anthropic";
25
+ anthropic?: {
26
+ version?: string;
27
+ };
28
+ }
23
29
  export interface DeepSeekProviderConfig extends BaseModelProviderConfig {
24
30
  provider: "deepseek";
25
31
  }
26
32
  export interface KimiProviderConfig extends BaseModelProviderConfig {
27
33
  provider: "kimi";
28
34
  }
29
- export type ModelProviderConfig = OpenAIProviderConfig | DeepSeekProviderConfig | KimiProviderConfig;
35
+ export type ModelProviderConfig = OpenAIProviderConfig | AnthropicProviderConfig | DeepSeekProviderConfig | KimiProviderConfig;
30
36
  export declare function readModelProviderConfig(env?: NodeJS.ProcessEnv): ModelProviderConfig | undefined;
31
37
  export declare function parseReasoning(effortValue: string | undefined, summaryValue?: string | undefined): ReasoningConfig | null | undefined;
@@ -1,4 +1,5 @@
1
1
  const DEFAULT_OPENAI_MODEL = "gpt-5.5";
2
+ const DEFAULT_ANTHROPIC_MODEL = "claude-sonnet-4-6";
2
3
  const DEFAULT_DEEPSEEK_MODEL = "deepseek-chat";
3
4
  const DEFAULT_KIMI_MODEL = "kimi-k2.6";
4
5
  const DEFAULT_MAX_OUTPUT_TOKENS = 800;
@@ -7,6 +8,8 @@ export function readModelProviderConfig(env = process.env) {
7
8
  switch (provider) {
8
9
  case "openai":
9
10
  return readOpenAIProviderConfig(env);
11
+ case "anthropic":
12
+ return readAnthropicProviderConfig(env);
10
13
  case "deepseek":
11
14
  return readDeepSeekProviderConfig(env);
12
15
  case "kimi":
@@ -44,6 +47,26 @@ function readOpenAIProviderConfig(env) {
44
47
  openai: endpoint ? { endpoint } : undefined,
45
48
  };
46
49
  }
50
+ function readAnthropicProviderConfig(env) {
51
+ const apiKey = firstNonEmpty(env.ANTHROPIC_API_KEY);
52
+ if (!apiKey)
53
+ return undefined;
54
+ return {
55
+ provider: "anthropic",
56
+ apiKey,
57
+ baseUrl: firstNonEmpty(env.ANTHROPIC_BASE_URL),
58
+ model: firstNonEmpty(env.ANTHROPIC_MODEL) ?? DEFAULT_ANTHROPIC_MODEL,
59
+ fallbackModel: firstNonEmpty(env.ANTHROPIC_FALLBACK_MODEL),
60
+ timeoutMs: parseNumber(firstNonEmpty(env.MODEL_TIMEOUT_MS)),
61
+ streamIdleTimeoutMs: parseNumber(firstNonEmpty(env.MODEL_STREAM_IDLE_TIMEOUT_MS)),
62
+ maxRetries: parseNumber(firstNonEmpty(env.MODEL_MAX_RETRIES)),
63
+ defaultMaxOutputTokens: parseNumber(firstNonEmpty(env.MODEL_MAX_OUTPUT_TOKENS)) ?? DEFAULT_MAX_OUTPUT_TOKENS,
64
+ defaultReasoning: parseReasoning(firstNonEmpty(env.MODEL_REASONING_EFFORT), firstNonEmpty(env.MODEL_REASONING_SUMMARY)),
65
+ anthropic: {
66
+ version: firstNonEmpty(env.ANTHROPIC_VERSION),
67
+ },
68
+ };
69
+ }
47
70
  function readDeepSeekProviderConfig(env) {
48
71
  const apiKey = firstNonEmpty(env.DEEPSEEK_API_KEY);
49
72
  if (!apiKey)
@@ -89,7 +112,7 @@ function parseReasoningSummary(value) {
89
112
  return undefined;
90
113
  }
91
114
  function parseProvider(value) {
92
- if (value === "openai" || value === "deepseek" || value === "kimi")
115
+ if (value === "openai" || value === "anthropic" || value === "deepseek" || value === "kimi")
93
116
  return value;
94
117
  throw new Error(`Unsupported MODEL_PROVIDER: ${value}`);
95
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/model/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/model/config.ts"],"names":[],"mappings":"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"}
@@ -234,7 +234,7 @@ function imageStorageText(block) {
234
234
  if (!block.storage?.path)
235
235
  return undefined;
236
236
  const label = block.label ? `${block.label} ` : "";
237
- return `${label}image payload is stored as ${block.storage.format} at ${block.storage.path}; use the vision tool with this image label/path for visual inspection, or view/read only if you need the stored base64 text.`;
237
+ return `${label}image payload is stored as ${block.storage.format} at ${block.storage.path}; use the load_image tool with this image label/id for visual inspection, or view/read only if you need the stored base64 text.`;
238
238
  }
239
239
  function imageDataUrl(block) {
240
240
  if (block.data.startsWith("data:"))