orbitx 0.2.1 → 0.2.4

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 (113) hide show
  1. package/Readme.md +26 -0
  2. package/dist/core/ai-provider.d.ts +31 -1
  3. package/dist/core/ai-provider.d.ts.map +1 -1
  4. package/dist/core/ai-provider.js.map +1 -1
  5. package/dist/core/anthropic-provider.d.ts +1 -0
  6. package/dist/core/anthropic-provider.d.ts.map +1 -1
  7. package/dist/core/anthropic-provider.js +83 -3
  8. package/dist/core/anthropic-provider.js.map +1 -1
  9. package/dist/core/base-agent.d.ts +13 -0
  10. package/dist/core/base-agent.d.ts.map +1 -1
  11. package/dist/core/base-agent.js +77 -109
  12. package/dist/core/base-agent.js.map +1 -1
  13. package/dist/core/deepseek-provider.d.ts +2 -0
  14. package/dist/core/deepseek-provider.d.ts.map +1 -1
  15. package/dist/core/deepseek-provider.js +56 -2
  16. package/dist/core/deepseek-provider.js.map +1 -1
  17. package/dist/core/image-describer.d.ts +7 -1
  18. package/dist/core/image-describer.d.ts.map +1 -1
  19. package/dist/core/image-describer.js +5 -1
  20. package/dist/core/image-describer.js.map +1 -1
  21. package/dist/core/ollama-provider.d.ts +1 -0
  22. package/dist/core/ollama-provider.d.ts.map +1 -1
  23. package/dist/core/ollama-provider.js +45 -1
  24. package/dist/core/ollama-provider.js.map +1 -1
  25. package/dist/core/openai-provider.d.ts +1 -0
  26. package/dist/core/openai-provider.d.ts.map +1 -1
  27. package/dist/core/openai-provider.js +54 -1
  28. package/dist/core/openai-provider.js.map +1 -1
  29. package/dist/core/think-effort.d.ts +21 -0
  30. package/dist/core/think-effort.d.ts.map +1 -0
  31. package/dist/core/think-effort.js +19 -0
  32. package/dist/core/think-effort.js.map +1 -0
  33. package/dist/core/worker-agent.d.ts +43 -0
  34. package/dist/core/worker-agent.d.ts.map +1 -0
  35. package/dist/core/worker-agent.js +40 -0
  36. package/dist/core/worker-agent.js.map +1 -0
  37. package/dist/index.d.ts +8 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +4 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/templates/simple.d.ts +2 -0
  42. package/dist/templates/simple.d.ts.map +1 -1
  43. package/dist/templates/simple.js.map +1 -1
  44. package/dist/tests/index.d.ts +1 -0
  45. package/dist/tests/index.d.ts.map +1 -1
  46. package/dist/tests/index.js +1 -0
  47. package/dist/tests/index.js.map +1 -1
  48. package/dist/tests/tools/agent/agent-tools.test.d.ts +2 -0
  49. package/dist/tests/tools/agent/agent-tools.test.d.ts.map +1 -0
  50. package/dist/tests/tools/agent/agent-tools.test.js +156 -0
  51. package/dist/tests/tools/agent/agent-tools.test.js.map +1 -0
  52. package/dist/tools/agent/hire.d.ts +6 -0
  53. package/dist/tools/agent/hire.d.ts.map +1 -0
  54. package/dist/tools/agent/hire.js +32 -0
  55. package/dist/tools/agent/hire.js.map +1 -0
  56. package/dist/tools/agent/index.d.ts +27 -0
  57. package/dist/tools/agent/index.d.ts.map +1 -0
  58. package/dist/tools/agent/index.js +31 -0
  59. package/dist/tools/agent/index.js.map +1 -0
  60. package/dist/tools/agent/interaction.d.ts +25 -0
  61. package/dist/tools/agent/interaction.d.ts.map +1 -0
  62. package/dist/tools/agent/interaction.js +14 -0
  63. package/dist/tools/agent/interaction.js.map +1 -0
  64. package/dist/tools/agent/list.d.ts +5 -0
  65. package/dist/tools/agent/list.d.ts.map +1 -0
  66. package/dist/tools/agent/list.js +16 -0
  67. package/dist/tools/agent/list.js.map +1 -0
  68. package/dist/tools/agent/prompt.d.ts +6 -0
  69. package/dist/tools/agent/prompt.d.ts.map +1 -0
  70. package/dist/tools/agent/prompt.js +73 -0
  71. package/dist/tools/agent/prompt.js.map +1 -0
  72. package/dist/tools/agent/registry.d.ts +33 -0
  73. package/dist/tools/agent/registry.d.ts.map +1 -0
  74. package/dist/tools/agent/registry.js +68 -0
  75. package/dist/tools/agent/registry.js.map +1 -0
  76. package/dist/tools/agent/report.d.ts +12 -0
  77. package/dist/tools/agent/report.d.ts.map +1 -0
  78. package/dist/tools/agent/report.js +31 -0
  79. package/dist/tools/agent/report.js.map +1 -0
  80. package/dist/tools/fs/edit-file.d.ts.map +1 -1
  81. package/dist/tools/fs/edit-file.js +9 -8
  82. package/dist/tools/fs/edit-file.js.map +1 -1
  83. package/dist/tools/fs/list-dir.d.ts.map +1 -1
  84. package/dist/tools/fs/list-dir.js +0 -1
  85. package/dist/tools/fs/list-dir.js.map +1 -1
  86. package/dist/tools/fs/read-file.js +3 -3
  87. package/dist/tools/fs/read-file.js.map +1 -1
  88. package/dist/tools/fs/utils.d.ts +7 -0
  89. package/dist/tools/fs/utils.d.ts.map +1 -1
  90. package/dist/tools/fs/utils.js +9 -2
  91. package/dist/tools/fs/utils.js.map +1 -1
  92. package/dist/tools/utils/index.d.ts +1 -0
  93. package/dist/tools/utils/index.d.ts.map +1 -1
  94. package/dist/tools/utils/index.js +4 -1
  95. package/dist/tools/utils/index.js.map +1 -1
  96. package/dist/tools/utils/read-image.d.ts +12 -0
  97. package/dist/tools/utils/read-image.d.ts.map +1 -0
  98. package/dist/tools/utils/read-image.js +70 -0
  99. package/dist/tools/utils/read-image.js.map +1 -0
  100. package/docs/agents.md +181 -0
  101. package/docs/api-reference.md +54 -0
  102. package/docs/getting-started.md +78 -0
  103. package/docs/index.md +23 -0
  104. package/docs/mcp-architecture.md +103 -0
  105. package/docs/providers.md +151 -0
  106. package/docs/skills.md +68 -0
  107. package/docs/streaming.md +116 -0
  108. package/docs/tools.md +179 -0
  109. package/package.json +4 -3
  110. package/dist/tests/mcp.test.d.ts +0 -2
  111. package/dist/tests/mcp.test.d.ts.map +0 -1
  112. package/dist/tests/mcp.test.js +0 -3
  113. package/dist/tests/mcp.test.js.map +0 -1
package/Readme.md CHANGED
@@ -1,5 +1,7 @@
1
1
  [![OrbitX Logo](https://raw.githubusercontent.com/ali39af/orbitx/refs/heads/main/orbitx.svg)](#)
2
2
 
3
+ 📖 **[Full documentation](./docs/index.md)** — a deeper, page-by-page guide (providers, agents, tools, skills, MCP transport, streaming, full API reference), written to be useful both to humans learning the library and to AI agents coding against it.
4
+
3
5
  ## Installation
4
6
 
5
7
  ```bash
@@ -128,6 +130,18 @@ import { OpenAIProvider } from "orbitx";
128
130
  const openaiProvider = new OpenAIProvider("api-key", "gpt-5");
129
131
  ```
130
132
 
133
+ ### Think effort
134
+
135
+ Every provider accepts a universal `thinkEffort` option (`0`-`1`, e.g. `0.5` or `0.8`) instead of a provider-specific string — each provider maps it onto whatever scale it actually accepts (DeepSeek's `none/low/high/max`, OpenAI/Ollama's `low/medium/high`, Anthropic's numeric thinking budget), and it's silently ignored by providers/models that don't support thinking at all:
136
+
137
+ ```ts
138
+ import { AnthropicProvider } from "orbitx";
139
+
140
+ const anthropicProvider = new AnthropicProvider("api-key", "claude-sonnet-5", { thinkEffort: 0.7 });
141
+ ```
142
+
143
+ See the [docs](./docs/providers.md#think-effort) for the per-provider mapping and how thinking text streams (where supported).
144
+
131
145
  ### Two providers: main + image
132
146
 
133
147
  An agent uses exactly two provider roles — `main` (drives the agent loop itself) and `image` (describes image tool output, e.g. screenshots, so the main conversation doesn't have to carry raw image bytes). Pass a single provider to use it for both roles, or an array to split them:
@@ -236,6 +250,18 @@ Drives a real headless browser session.
236
250
  | `GetCurrentTimeTool` | Get the current date/time (ISO string, unix timestamp, timezone). |
237
251
  | `DelayTool` | Wait a given number of milliseconds (max 60000ms) before continuing. |
238
252
 
253
+ ### Multi-agent (`AgentTools`) — Experimental
254
+
255
+ ⚠️ This feature is new and still settling — names and behavior may change in a future release.
256
+
257
+ Unlike the other domains, this one takes parameters — a roster of `WorkerAgent`s (a `BaseAgent` with a name/description/rating) you build ahead of time, and an optional hiring cap: `AgentTools([worker1, worker2, ...], { maxHired: 2 })`. Give the result to your planner agent so it can list, hire, and prompt those workers as sub-agents; give each worker its own `AgentReportTool()` so it can hand a result back and stop. Full walkthrough in the [docs](./docs/agents.md#multi-agent-workeragent-experimental).
258
+
259
+ | Tool | Purpose |
260
+ |---|---|
261
+ | `agent-list` | List every worker in the roster — name, description, rating, hired status. |
262
+ | `agent-hire` | Hire a worker by name, making it eligible for `agent-prompt`. |
263
+ | `agent-prompt` | Send a prompt to a hired worker and return its response once it's done. |
264
+
239
265
  ## Available Skills
240
266
 
241
267
  A `Skill` bundles instructions with the tools that go with them. Passing a skill into an agent adds its tools automatically and folds its instructions into the system prompt.
@@ -42,6 +42,16 @@ export interface Message {
42
42
  toolCallId?: string;
43
43
  /** Present on tool-role messages responding to a native tool call — the tool name being answered. */
44
44
  toolName?: string;
45
+ /** Accumulated reasoning/thinking text the model produced before its final answer, when `thinkEffort` was set on the provider and it supports surfacing thinking (see `ProviderCapabilities.supportsThinking`). Informational only — not required to be resent to the provider. */
46
+ thinking?: string;
47
+ /**
48
+ * Opaque, provider-specific thinking content (e.g. Anthropic's signed
49
+ * `thinking` content blocks) that MUST be replayed verbatim on the next
50
+ * turn for providers that validate it — needed when an assistant turn
51
+ * mixed thinking with a native tool call. BaseAgent carries this through
52
+ * untouched; only the provider that produced it interprets it.
53
+ */
54
+ providerThinking?: any[];
45
55
  }
46
56
  export interface ChatResponse {
47
57
  content: string;
@@ -49,17 +59,35 @@ export interface ChatResponse {
49
59
  outputTokens: number;
50
60
  /** Native tool calls requested by the model, when the provider supports native tool-calling and tools were supplied. */
51
61
  toolCalls?: ToolCallRequest[];
62
+ /** Accumulated reasoning/thinking text produced this turn, when thinking was requested and the provider can surface it. See `Message.thinking`. */
63
+ thinking?: string;
64
+ /** Opaque provider-specific thinking content to carry forward — see `Message.providerThinking`. */
65
+ providerThinking?: any[];
52
66
  }
53
67
  export type StreamCallback = (chunk: {
54
68
  role: "assistant" | "tool" | "user";
55
69
  content: string;
56
70
  done: boolean;
57
- /** Present on the final ("done") assistant chunk when the model requested native tool calls this turn. */
71
+ /**
72
+ * A tool call the model requested this turn. Emitted incrementally, as
73
+ * a single-element array, the moment *that one call* finishes
74
+ * generating — mid-stream, before the rest of the turn (more tool
75
+ * calls, or trailing text) has necessarily finished. Purely
76
+ * observational: it lets a consumer show "the model decided to call X"
77
+ * as it happens. It does not affect when the call is actually
78
+ * dispatched — `BaseAgent` still waits for the whole turn to finish and
79
+ * dispatches from `ChatResponse.toolCalls` (the full, aggregated list),
80
+ * regardless of what streamed through here. Not resent on the final
81
+ * `done: true` chunk — every call was already streamed individually by
82
+ * the time that chunk arrives, so it would just be a duplicate.
83
+ */
58
84
  toolCalls?: ToolCallRequest[];
59
85
  /** Present on "tool"-role chunks — the id of the native tool call this result answers. */
60
86
  toolCallId?: string;
61
87
  /** Present on "tool"-role chunks — the name of the tool that was called. */
62
88
  toolName?: string;
89
+ /** Reasoning/thinking text delta for this chunk, mirroring `content` — present only while the model is thinking, absent (or empty) once it moves on to its actual answer. Only ever set on non-`done` assistant chunks. Never set unless the provider was configured with `thinkEffort` and can stream thinking (see `ProviderCapabilities.supportsThinking`); when a thinking chunk is emitted, `content` on that same chunk is empty. */
90
+ thinking?: string;
63
91
  }) => Promise<void> | void;
64
92
  /**
65
93
  * Static capability + limits description for a provider/model pair. This
@@ -77,6 +105,8 @@ export interface ProviderCapabilities {
77
105
  contextWindow: number;
78
106
  /** Fraction of the context window (0-1) that's safe to fill before compacting; leaves headroom for the system prompt, tool schema, and the model's own output. Defaults applied by callers if not specified. */
79
107
  safeUsageRatio?: number;
108
+ /** Whether this provider can surface the model's reasoning/thinking text (streamed via the `thinking` chunk field, and returned as `ChatResponse.thinking`) when constructed with `thinkEffort`. A provider may still accept/honor `thinkEffort` server-side (e.g. it changes response quality/latency) while reporting `false` here, if its API never exposes the reasoning text itself. */
109
+ supportsThinking?: boolean;
80
110
  }
81
111
  export declare abstract class AIProvider {
82
112
  abstract chat(messages: Message[], streamCallback?: StreamCallback, tools?: ToolSchema[]): Promise<ChatResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-provider.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;QAC3D,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,GAAG,CAAC;KACjB,EAAE,CAAC;CACP;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,2FAA2F;AAC3F,MAAM,MAAM,kBAAkB,GACxB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAwC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gPAAgP;IAChP,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,sEAAsE;IACtE,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qGAAqG;IACrG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,wHAAwH;IACxH,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACjC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,0GAA0G;IAC1G,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACjC,qMAAqM;IACrM,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,cAAc,EAAE,OAAO,CAAC;IACxB,gLAAgL;IAChL,aAAa,EAAE,MAAM,CAAC;IACtB,gNAAgN;IAChN,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,8BAAsB,UAAU;IAC5B,QAAQ,CAAC,IAAI,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,UAAU,EAAE,GACrB,OAAO,CAAC,YAAY,CAAC;IAExB,8JAA8J;IAC9J,QAAQ,CAAC,eAAe,IAAI,oBAAoB;CACnD;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ai-provider.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-provider.js","sourceRoot":"","sources":["../../src/core/ai-provider.ts"],"names":[],"mappings":"AAkFA,MAAM,OAAgB,UAAU;CAS/B;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ai-provider.js","sourceRoot":"","sources":["../../src/core/ai-provider.ts"],"names":[],"mappings":"AAgHA,MAAM,OAAgB,UAAU;CAS/B;AAED,eAAe,UAAU,CAAC"}
@@ -7,6 +7,7 @@ export declare class AnthropicProvider extends AIProvider {
7
7
  supportsImages?: boolean;
8
8
  contextWindow?: number;
9
9
  maxTokens?: number;
10
+ thinkEffort?: number;
10
11
  });
11
12
  getCapabilities(): ProviderCapabilities;
12
13
  chat(messages: Message[], streamCallback?: StreamCallback, tools?: ToolSchema[]): Promise<ChatResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../src/core/anthropic-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAmB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACjI,OAAO,UAAU,MAAM,kBAAkB,CAAC;AA4F1C,qBAAa,iBAAkB,SAAQ,UAAU;;gBAQjC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA0B,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAU9K,eAAe,IAAI,oBAAoB;IASjC,IAAI,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,UAAU,EAAE,GACrB,OAAO,CAAC,YAAY,CAAC;CAmG3B;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"anthropic-provider.d.ts","sourceRoot":"","sources":["../../src/core/anthropic-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAmB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACjI,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAyH1C,qBAAa,iBAAkB,SAAQ,UAAU;;gBAUjC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA0B,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAWpM,eAAe,IAAI,oBAAoB;IAUjC,IAAI,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,KAAK,CAAC,EAAE,UAAU,EAAE,GACrB,OAAO,CAAC,YAAY,CAAC;CAgJ3B;AAED,eAAe,iBAAiB,CAAC"}
@@ -10,6 +10,17 @@ const MODEL_CONTEXT_WINDOWS = {
10
10
  "claude-mythos-5": 200_000,
11
11
  };
12
12
  const DEFAULT_CONTEXT_WINDOW = 200_000;
13
+ // Anthropic's extended thinking takes a numeric token budget rather than a
14
+ // low/medium/high enum, so the universal 0-1 `thinkEffort` is mapped onto a
15
+ // budget range instead of going through resolveThinkEffortLevel(). The
16
+ // range scales off the configured `maxTokens` so a bigger output budget
17
+ // also buys a bigger thinking budget at the same effort value.
18
+ const MIN_THINKING_BUDGET_TOKENS = 1024;
19
+ function resolveThinkingBudget(effort, baseMaxTokens) {
20
+ const clamped = Math.max(0, Math.min(1, effort));
21
+ const ceiling = Math.max(MIN_THINKING_BUDGET_TOKENS, baseMaxTokens * 4);
22
+ return Math.round(MIN_THINKING_BUDGET_TOKENS + clamped * (ceiling - MIN_THINKING_BUDGET_TOKENS));
23
+ }
13
24
  /**
14
25
  * Anthropic keeps `system` out of the messages array entirely, and encodes
15
26
  * tool calls/results as content blocks (`tool_use` on assistant turns,
@@ -44,6 +55,12 @@ function toAnthropicMessages(messages) {
44
55
  }
45
56
  if (msg.role === "assistant" && msg.toolCalls?.length) {
46
57
  const content = [];
58
+ // Extended thinking requires the signed thinking block(s) from
59
+ // this exact turn to be replayed before the tool_use blocks on
60
+ // any subsequent request that includes it — otherwise the API
61
+ // rejects the request. See Message.providerThinking.
62
+ if (msg.providerThinking?.length)
63
+ content.push(...msg.providerThinking);
47
64
  if (msg.content)
48
65
  content.push({ type: "text", text: msg.content });
49
66
  for (const tc of msg.toolCalls) {
@@ -85,6 +102,18 @@ function textFromAnthropicContent(content) {
85
102
  .map((block) => block.text)
86
103
  .join("");
87
104
  }
105
+ /** Extract raw thinking blocks (to carry forward via Message.providerThinking) and their concatenated text, from a non-streaming response's content array. */
106
+ function thinkingFromAnthropicContent(content) {
107
+ if (!content)
108
+ return { text: "" };
109
+ const blocks = content.filter((block) => block.type === "thinking" || block.type === "redacted_thinking");
110
+ if (blocks.length === 0)
111
+ return { text: "" };
112
+ return {
113
+ text: blocks.map((b) => b.thinking || "").join(""),
114
+ blocks,
115
+ };
116
+ }
88
117
  export class AnthropicProvider extends AIProvider {
89
118
  #client;
90
119
  #model;
@@ -92,6 +121,8 @@ export class AnthropicProvider extends AIProvider {
92
121
  #supportsImages;
93
122
  #contextWindow;
94
123
  #maxTokens;
124
+ /** Universal 0-1 thinking effort — see src/core/think-effort.ts. Mapped onto Anthropic's numeric thinking-token budget in #chat. */
125
+ #thinkEffort;
95
126
  constructor(apiKey, model = "claude-sonnet-5", options = {}) {
96
127
  super();
97
128
  this.#client = new Anthropic({ apiKey });
@@ -100,6 +131,7 @@ export class AnthropicProvider extends AIProvider {
100
131
  this.#supportsImages = options.supportsImages ?? true;
101
132
  this.#contextWindow = options.contextWindow ?? MODEL_CONTEXT_WINDOWS[model] ?? DEFAULT_CONTEXT_WINDOW;
102
133
  this.#maxTokens = options.maxTokens ?? 4096;
134
+ this.#thinkEffort = options.thinkEffort;
103
135
  }
104
136
  getCapabilities() {
105
137
  return {
@@ -107,6 +139,7 @@ export class AnthropicProvider extends AIProvider {
107
139
  supportsImages: this.#supportsImages,
108
140
  contextWindow: this.#contextWindow,
109
141
  safeUsageRatio: 0.5,
142
+ supportsThinking: true,
110
143
  };
111
144
  }
112
145
  async chat(messages, streamCallback, tools) {
@@ -114,6 +147,15 @@ export class AnthropicProvider extends AIProvider {
114
147
  const formattedTools = tools && tools.length > 0 && this.#supportsTools
115
148
  ? toAnthropicTools(tools)
116
149
  : undefined;
150
+ const thinkingBudget = this.#thinkEffort !== undefined
151
+ ? resolveThinkingBudget(this.#thinkEffort, this.#maxTokens)
152
+ : undefined;
153
+ // max_tokens must exceed the thinking budget, so it's added on top
154
+ // of the configured output budget rather than eating into it.
155
+ const effectiveMaxTokens = thinkingBudget !== undefined ? this.#maxTokens + thinkingBudget : this.#maxTokens;
156
+ const thinkingParam = thinkingBudget !== undefined
157
+ ? { thinking: { type: "enabled", budget_tokens: thinkingBudget } }
158
+ : {};
117
159
  if (streamCallback) {
118
160
  return withRetry(async () => {
119
161
  // Per-attempt accumulators live inside this closure so a
@@ -121,10 +163,11 @@ export class AnthropicProvider extends AIProvider {
121
163
  // into a retry's output — each attempt starts clean.
122
164
  const stream = await this.#client.messages.create({
123
165
  model: this.#model,
124
- max_tokens: this.#maxTokens,
166
+ max_tokens: effectiveMaxTokens,
125
167
  ...(system ? { system } : {}),
126
168
  messages: formattedMessages,
127
169
  ...(formattedTools ? { tools: formattedTools } : {}),
170
+ ...thinkingParam,
128
171
  stream: true,
129
172
  });
130
173
  let fullContent = "";
@@ -135,6 +178,11 @@ export class AnthropicProvider extends AIProvider {
135
178
  // so the partial JSON has to be accumulated per block index
136
179
  // the same way OpenAI's function-call arguments are.
137
180
  const toolBlocks = {};
181
+ // Thinking blocks stream the same way: a start event, then
182
+ // incremental thinking_delta (text) and signature_delta
183
+ // (the cryptographic signature Anthropic requires replayed
184
+ // verbatim alongside a tool_use in the same turn).
185
+ const thinkingBlocks = {};
138
186
  for await (const event of stream) {
139
187
  if (event.type === "content_block_start") {
140
188
  if (event.content_block?.type === "tool_use") {
@@ -144,6 +192,9 @@ export class AnthropicProvider extends AIProvider {
144
192
  inputJson: "",
145
193
  };
146
194
  }
195
+ if (event.content_block?.type === "thinking") {
196
+ thinkingBlocks[event.index] = { type: "thinking", thinking: "", signature: "" };
197
+ }
147
198
  }
148
199
  if (event.type === "content_block_delta") {
149
200
  if (event.delta?.type === "text_delta" && event.delta.text) {
@@ -153,6 +204,27 @@ export class AnthropicProvider extends AIProvider {
153
204
  if (event.delta?.type === "input_json_delta" && toolBlocks[event.index]) {
154
205
  toolBlocks[event.index].inputJson += event.delta.partial_json || "";
155
206
  }
207
+ if (event.delta?.type === "thinking_delta" && thinkingBlocks[event.index]) {
208
+ thinkingBlocks[event.index].thinking += event.delta.thinking || "";
209
+ await streamCallback({ role: "assistant", content: "", done: false, thinking: event.delta.thinking || "" });
210
+ }
211
+ if (event.delta?.type === "signature_delta" && thinkingBlocks[event.index]) {
212
+ thinkingBlocks[event.index].signature += event.delta.signature || "";
213
+ }
214
+ }
215
+ // A tool_use block is fully formed the moment Anthropic
216
+ // closes it — unlike OpenAI/DeepSeek there's no need to
217
+ // infer completion from the next block starting.
218
+ if (event.type === "content_block_stop" && toolBlocks[event.index]) {
219
+ const tb = toolBlocks[event.index];
220
+ let inputs = {};
221
+ try {
222
+ inputs = JSON.parse(tb.inputJson || "{}");
223
+ }
224
+ catch {
225
+ inputs = {};
226
+ }
227
+ await streamCallback({ role: "assistant", content: "", done: false, toolCalls: [{ id: tb.id || "", name: tb.name || "", inputs }] });
156
228
  }
157
229
  if (event.type === "message_start") {
158
230
  inputTokens = event.message?.usage?.input_tokens || 0;
@@ -175,12 +247,16 @@ export class AnthropicProvider extends AIProvider {
175
247
  return { id: tb.id || "", name: tb.name || "", inputs };
176
248
  })
177
249
  : undefined;
178
- await streamCallback({ role: "assistant", content: "", done: true, ...(toolCalls ? { toolCalls } : {}) });
250
+ const providerThinking = Object.keys(thinkingBlocks).length > 0 ? Object.values(thinkingBlocks) : undefined;
251
+ const thinkingText = providerThinking?.map(b => b.thinking).join("");
252
+ await streamCallback({ role: "assistant", content: "", done: true });
179
253
  return {
180
254
  content: fullContent,
181
255
  inputTokens,
182
256
  outputTokens,
183
257
  ...(toolCalls ? { toolCalls } : {}),
258
+ ...(thinkingText ? { thinking: thinkingText } : {}),
259
+ ...(providerThinking ? { providerThinking } : {}),
184
260
  };
185
261
  });
186
262
  }
@@ -188,17 +264,21 @@ export class AnthropicProvider extends AIProvider {
188
264
  return withRetry(async () => {
189
265
  const response = await this.#client.messages.create({
190
266
  model: this.#model,
191
- max_tokens: this.#maxTokens,
267
+ max_tokens: effectiveMaxTokens,
192
268
  ...(system ? { system } : {}),
193
269
  messages: formattedMessages,
194
270
  ...(formattedTools ? { tools: formattedTools } : {}),
271
+ ...thinkingParam,
195
272
  });
196
273
  const toolCalls = fromAnthropicToolCalls(response.content);
274
+ const { text: thinkingText, blocks: providerThinking } = thinkingFromAnthropicContent(response.content);
197
275
  return {
198
276
  content: textFromAnthropicContent(response.content),
199
277
  inputTokens: response.usage?.input_tokens || 0,
200
278
  outputTokens: response.usage?.output_tokens || 0,
201
279
  ...(toolCalls ? { toolCalls } : {}),
280
+ ...(thinkingText ? { thinking: thinkingText } : {}),
281
+ ...(providerThinking ? { providerThinking } : {}),
202
282
  };
203
283
  });
204
284
  }
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../src/core/anthropic-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../src/core/anthropic-provider.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,qBAAqB,GAA2B;IAClD,iBAAiB,EAAE,OAAO;IAC1B,iBAAiB,EAAE,OAAO;IAC1B,2BAA2B,EAAE,OAAO;IACpC,gBAAgB,EAAE,OAAO;IACzB,iBAAiB,EAAE,OAAO;CAC7B,CAAC;AACF,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAEvC,2EAA2E;AAC3E,4EAA4E;AAC5E,uEAAuE;AACvE,wEAAwE;AACxE,+DAA+D;AAC/D,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC,SAAS,qBAAqB,CAAC,MAAc,EAAE,aAAqB;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC,KAAK,CAAC,0BAA0B,GAAG,OAAO,GAAG,CAAC,OAAO,GAAG,0BAA0B,CAAC,CAAC,CAAC;AACrG,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,QAAmB;IAC5C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,GAAG,GAAU,EAAE,CAAC;IAEtB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,OAAO;gBAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,SAAS;QACb,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,gEAAgE;YAChE,gEAAgE;YAChE,+DAA+D;YAC/D,GAAG,CAAC,IAAI,CAAC;gBACL,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,GAAG,CAAC,UAAU;wBAC3B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;qBAC7B;iBACJ;aACJ,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YACpD,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,+DAA+D;YAC/D,+DAA+D;YAC/D,8DAA8D;YAC9D,qDAAqD;YACrD,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxE,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;YACzC,SAAS;QACb,CAAC;QAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;oBACzC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;oBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7G,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA0B;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC3E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;KAC5B,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,wBAAwB,CAAC,OAA0B;IACxD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO;SACT,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;SAC7C,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC/B,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,8JAA8J;AAC9J,SAAS,4BAA4B,CAAC,OAA0B;IAC5D,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;IAC/G,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC7C,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM;KACT,CAAC;AACN,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC7C,OAAO,CAAY;IACnB,MAAM,CAAS;IACf,cAAc,CAAU;IACxB,eAAe,CAAU;IACzB,cAAc,CAAS;IACvB,UAAU,CAAS;IACnB,oIAAoI;IACpI,YAAY,CAAU;IAEtB,YAAY,MAAc,EAAE,QAAgB,iBAAiB,EAAE,UAAmI,EAAE;QAChM,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,sBAAsB,CAAC;QACtG,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED,eAAe;QACX,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,cAAc,EAAE,GAAG;YACnB,gBAAgB,EAAE,IAAI;SACzB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,IAAI,CACN,QAAmB,EACnB,cAA+B,EAC/B,KAAoB;QAEpB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9E,MAAM,cAAc,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc;YACnE,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS;YAClD,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC;YAC3D,CAAC,CAAC,SAAS,CAAC;QAChB,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,kBAAkB,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7G,MAAM,aAAa,GAAG,cAAc,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE;YAC3E,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC,KAAK,IAAI,EAAE;gBACxB,yDAAyD;gBACzD,4DAA4D;gBAC5D,qDAAqD;gBACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC9C,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,UAAU,EAAE,kBAAkB;oBAC9B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,QAAQ,EAAE,iBAAwB;oBAClC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,aAAa;oBAChB,MAAM,EAAE,IAAI;iBACf,CAAC,CAAC;gBAEH,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,2DAA2D;gBAC3D,4DAA4D;gBAC5D,4DAA4D;gBAC5D,qDAAqD;gBACrD,MAAM,UAAU,GAAsE,EAAE,CAAC;gBACzF,2DAA2D;gBAC3D,wDAAwD;gBACxD,2DAA2D;gBAC3D,mDAAmD;gBACnD,MAAM,cAAc,GAA8E,EAAE,CAAC;gBAErG,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAa,EAAE,CAAC;oBACtC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;wBACvC,IAAI,KAAK,CAAC,aAAa,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC3C,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;gCACtB,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE;gCAC1B,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI;gCAC9B,SAAS,EAAE,EAAE;6BAChB,CAAC;wBACN,CAAC;wBACD,IAAI,KAAK,CAAC,aAAa,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC3C,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;wBACpF,CAAC;oBACL,CAAC;oBAED,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;wBACvC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;4BACzD,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;4BAChC,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;wBACxF,CAAC;wBACD,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,kBAAkB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;4BACtE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;wBACxE,CAAC;wBACD,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,gBAAgB,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;4BACxE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;4BACnE,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;wBAChH,CAAC;wBACD,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,iBAAiB,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;wBACzE,CAAC;oBACL,CAAC;oBAED,wDAAwD;oBACxD,wDAAwD;oBACxD,iDAAiD;oBACjD,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjE,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACnC,IAAI,MAAM,GAAwB,EAAE,CAAC;wBACrC,IAAI,CAAC;4BAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC;4BAAC,MAAM,GAAG,EAAE,CAAC;wBAAC,CAAC;wBACzE,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;oBACzI,CAAC;oBAED,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;wBACjC,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;oBAC1D,CAAC;oBAED,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;wBACjC,IAAI,KAAK,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;4BAC3C,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;wBAC7C,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,MAAM,SAAS,GAAkC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC/E,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;wBACjC,IAAI,MAAM,GAAwB,EAAE,CAAC;wBACrC,IAAI,CAAC;4BAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC;4BAAC,MAAM,GAAG,EAAE,CAAC;wBAAC,CAAC;wBACzE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;oBAC5D,CAAC,CAAC;oBACF,CAAC,CAAC,SAAS,CAAC;gBAEhB,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5G,MAAM,YAAY,GAAG,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAErE,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAErE,OAAO;oBACH,OAAO,EAAE,WAAW;oBACpB,WAAW;oBACX,YAAY;oBACZ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,OAAO,SAAS,CAAC,KAAK,IAAI,EAAE;gBACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAChD,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,UAAU,EAAE,kBAAkB;oBAC9B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,QAAQ,EAAE,iBAAwB;oBAClC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,aAAa;iBACnB,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,CAAC,OAAc,CAAC,CAAC;gBAClE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,4BAA4B,CAAC,QAAQ,CAAC,OAAc,CAAC,CAAC;gBAE/G,OAAO;oBACH,OAAO,EAAE,wBAAwB,CAAC,QAAQ,CAAC,OAAc,CAAC;oBAC1D,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;oBAC9C,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;oBAChD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;CACJ;AAED,eAAe,iBAAiB,CAAC"}
@@ -35,6 +35,9 @@ export declare class BaseAgent {
35
35
  currentInputMissTokens: number;
36
36
  currentInputHitTokens: number;
37
37
  currentOutputTokens: number;
38
+ /** Optional so snapshots taken before image-usage tracking existed still load — missing values default to 0. */
39
+ imageInputMissTokens?: number;
40
+ imageOutputTokens?: number;
38
41
  };
39
42
  });
40
43
  stop(): Promise<void>;
@@ -50,7 +53,10 @@ export declare class BaseAgent {
50
53
  currentInputMissTokens: number;
51
54
  currentInputHitTokens: number;
52
55
  currentOutputTokens: number;
56
+ imageInputMissTokens: number;
57
+ imageOutputTokens: number;
53
58
  };
59
+ /** Lifetime total across the main loop (current + all prior compacted segments) AND every ImageDescriber call this agent has made. */
54
60
  getTotalTokens(): {
55
61
  total: number;
56
62
  inputHit: number;
@@ -63,6 +69,13 @@ export declare class BaseAgent {
63
69
  inputMiss: number;
64
70
  output: number;
65
71
  };
72
+ /** Usage from ImageDescriber calls only (see #resolveToolOutputForModel) — not included in getCurrentTotalTokens()/getFullTotalTokens() since it isn't part of the main loop's current/full split, but it IS folded into getTotalTokens()'s grand total. Each call is a fresh, standalone chat, so there's no hit/miss split to make — inputHit is always 0, every input token counts as inputMiss. */
73
+ getImageTotalTokens(): {
74
+ total: number;
75
+ inputHit: number;
76
+ inputMiss: number;
77
+ output: number;
78
+ };
66
79
  getFullTotalTokens(): {
67
80
  total: number;
68
81
  inputHit: number;
@@ -1 +1 @@
1
- {"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,cAAc,EAA+B,MAAM,kBAAkB,CAAC;AACzG,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAyB,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEvF,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AAWhD,qBAAa,SAAS;;gBAkCN,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAUC,EACD,MAAW,EACX,gBAAgB,GACnB,EAAE;QACC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,UAAU,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,0NAA0N;QAC1N,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;YACf,YAAY,EAAE,OAAO,EAAE,CAAC;YACxB,mBAAmB,EAAE,MAAM,CAAC;YAC5B,kBAAkB,EAAE,MAAM,CAAC;YAC3B,gBAAgB,EAAE,MAAM,CAAC;YACzB,eAAe,EAAE,OAAO,EAAE,CAAC;YAC3B,sBAAsB,EAAE,MAAM,CAAC;YAC/B,qBAAqB,EAAE,MAAM,CAAC;YAC9B,mBAAmB,EAAE,MAAM,CAAC;SAC/B,CAAA;KACJ;IA6LK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBrB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgJzE,4QAA4Q;IAC5Q,qBAAqB;;;;;;;;;;;IAarB,cAAc;;;;;;IASd,qBAAqB;;;;;;IASrB,kBAAkB;;;;;;CAQrB;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,cAAc,EAA+B,MAAM,kBAAkB,CAAC;AACzG,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAyB,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEvF,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AA2BhD,qBAAa,SAAS;;gBA0CN,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAUC,EACD,MAAW,EACX,gBAAgB,GACnB,EAAE;QACC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,UAAU,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,0NAA0N;QAC1N,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;YACf,YAAY,EAAE,OAAO,EAAE,CAAC;YACxB,mBAAmB,EAAE,MAAM,CAAC;YAC5B,kBAAkB,EAAE,MAAM,CAAC;YAC3B,gBAAgB,EAAE,MAAM,CAAC;YACzB,eAAe,EAAE,OAAO,EAAE,CAAC;YAC3B,sBAAsB,EAAE,MAAM,CAAC;YAC/B,qBAAqB,EAAE,MAAM,CAAC;YAC9B,mBAAmB,EAAE,MAAM,CAAC;YAC5B,gHAAgH;YAChH,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC9B,CAAA;KACJ;IA6IK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBrB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0HzE,4QAA4Q;IAC5Q,qBAAqB;;;;;;;;;;;;;IAerB,sIAAsI;IACtI,cAAc;;;;;;IASd,qBAAqB;;;;;;IASrB,uYAAuY;IACvY,mBAAmB;;;;;;IASnB,kBAAkB;;;;;;CAQrB;AAED,eAAe,SAAS,CAAC"}