orbitx 0.2.3 → 0.2.5

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 (48) hide show
  1. package/dist/core/base-agent.d.ts +13 -0
  2. package/dist/core/base-agent.d.ts.map +1 -1
  3. package/dist/core/base-agent.js +70 -106
  4. package/dist/core/base-agent.js.map +1 -1
  5. package/dist/core/deepseek-provider.d.ts +1 -0
  6. package/dist/core/deepseek-provider.d.ts.map +1 -1
  7. package/dist/core/deepseek-provider.js +5 -1
  8. package/dist/core/deepseek-provider.js.map +1 -1
  9. package/dist/core/image-describer.d.ts +7 -1
  10. package/dist/core/image-describer.d.ts.map +1 -1
  11. package/dist/core/image-describer.js +5 -1
  12. package/dist/core/image-describer.js.map +1 -1
  13. package/dist/index.d.ts +2 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/templates/simple.d.ts +2 -0
  18. package/dist/templates/simple.d.ts.map +1 -1
  19. package/dist/templates/simple.js.map +1 -1
  20. package/dist/tools/browser/session-manager.d.ts.map +1 -1
  21. package/dist/tools/browser/session-manager.js +16 -3
  22. package/dist/tools/browser/session-manager.js.map +1 -1
  23. package/dist/tools/fs/edit-file.d.ts.map +1 -1
  24. package/dist/tools/fs/edit-file.js +9 -8
  25. package/dist/tools/fs/edit-file.js.map +1 -1
  26. package/dist/tools/fs/read-file.js +3 -3
  27. package/dist/tools/fs/read-file.js.map +1 -1
  28. package/dist/tools/fs/utils.d.ts +7 -0
  29. package/dist/tools/fs/utils.d.ts.map +1 -1
  30. package/dist/tools/fs/utils.js +9 -2
  31. package/dist/tools/fs/utils.js.map +1 -1
  32. package/dist/tools/utils/index.d.ts +1 -0
  33. package/dist/tools/utils/index.d.ts.map +1 -1
  34. package/dist/tools/utils/index.js +4 -1
  35. package/dist/tools/utils/index.js.map +1 -1
  36. package/dist/tools/utils/read-image.d.ts +12 -0
  37. package/dist/tools/utils/read-image.d.ts.map +1 -0
  38. package/dist/tools/utils/read-image.js +70 -0
  39. package/dist/tools/utils/read-image.js.map +1 -0
  40. package/docs/agents.md +29 -11
  41. package/docs/api-reference.md +2 -2
  42. package/docs/providers.md +5 -2
  43. package/docs/tools.md +5 -0
  44. package/package.json +1 -1
  45. package/dist/tests/mcp.test.d.ts +0 -2
  46. package/dist/tests/mcp.test.d.ts.map +0 -1
  47. package/dist/tests/mcp.test.js +0 -3
  48. package/dist/tests/mcp.test.js.map +0 -1
@@ -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;IAoJzE,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"}
@@ -1,5 +1,19 @@
1
1
  import { ImageDescriber } from "./image-describer.js";
2
2
  import { resolveAgentProviders } from "./agent-providers.js";
3
+ /** Built-in tool, always available alongside whatever MCP tools are allowed — lets the model trigger memory compaction itself instead of only having it happen as a hidden side-effect. */
4
+ const COMPACT_MEMORY_TOOL_NAME = "compact_memory";
5
+ const COMPACT_MEMORY_TOOL = {
6
+ name: COMPACT_MEMORY_TOOL_NAME,
7
+ description: "Compact the conversation so far into a persistent memory note and reset the active working context. Nothing is lost — the summary is shown in every future system prompt's MEMORY section. Call this proactively when the conversation has grown long, or whenever asked to free up context.",
8
+ inputs: [
9
+ {
10
+ name: "new_memory",
11
+ type: "string",
12
+ description: "A compact summary capturing every important fact, decision, and pending task from the conversation so far. Replaces the current MEMORY note.",
13
+ required: true,
14
+ },
15
+ ],
16
+ };
3
17
  export class BaseAgent {
4
18
  #maxMemorizeToken;
5
19
  #instruction = "";
@@ -19,6 +33,13 @@ export class BaseAgent {
19
33
  #currentInputHitTokens = 0;
20
34
  #currentLastOutputTokens = 0;
21
35
  #currentOutputTokens = 0;
36
+ // Usage from ImageDescriber calls (see #resolveToolOutputForModel) — tracked
37
+ // separately from the main loop's counters above since each call is a fresh,
38
+ // standalone chat with no history to replay, unlike the main loop. No hit/miss
39
+ // split here (unlike #currentInput*Tokens above) — there's nothing to have been
40
+ // cached from a prior turn, so every input token is a miss.
41
+ #imageInputMissTokens = 0;
42
+ #imageOutputTokens = 0;
22
43
  #stopSignal = false;
23
44
  #mcpClient;
24
45
  #mainProvider;
@@ -46,6 +67,8 @@ export class BaseAgent {
46
67
  this.#currentInputMissTokens = initData.currentInputMissTokens;
47
68
  this.#currentInputHitTokens = initData.currentInputHitTokens;
48
69
  this.#currentOutputTokens = initData.currentOutputTokens;
70
+ this.#imageInputMissTokens = initData.imageInputMissTokens ?? 0;
71
+ this.#imageOutputTokens = initData.imageOutputTokens ?? 0;
49
72
  this.#allSkills = skills;
50
73
  const resolved = resolveAgentProviders(aiProvider);
51
74
  this.#mainProvider = resolved.main;
@@ -57,57 +80,10 @@ export class BaseAgent {
57
80
  const ratio = caps.safeUsageRatio ?? 0.5;
58
81
  return Math.floor(caps.contextWindow * ratio);
59
82
  }
60
- #extractJson(str) {
61
- const segments = [];
62
- let textStart = 0;
63
- for (let i = 0; i < str.length; i++) {
64
- if (str[i] !== "{")
65
- continue;
66
- let brace = 0;
67
- for (let j = i; j < str.length; j++) {
68
- if (str[j] === "{")
69
- brace++;
70
- if (str[j] === "}")
71
- brace--;
72
- if (brace === 0) {
73
- const candidate = str.slice(i, j + 1);
74
- try {
75
- const result = JSON.parse(candidate);
76
- if (result &&
77
- typeof result === "object" &&
78
- "tool" in result &&
79
- "inputs" in result &&
80
- typeof result.tool === "string") {
81
- const text = str.slice(textStart, i);
82
- if (text.trim().length > 0) {
83
- segments.push({ type: "text", context: text });
84
- }
85
- segments.push({ type: "tool", context: result });
86
- i = j;
87
- textStart = j + 1;
88
- }
89
- }
90
- catch {
91
- // not valid JSON, skip
92
- }
93
- break;
94
- }
95
- }
96
- }
97
- const remaining = str.slice(textStart);
98
- if (remaining.trim().length > 0) {
99
- segments.push({ type: "text", context: remaining });
100
- }
101
- return segments;
102
- }
103
- async #extractToolCalls(content) {
104
- return this.#extractJson(content)
105
- .filter((r) => r.type === "tool")
106
- .map((t) => t.context);
107
- }
108
83
  async #getAllToolSchemas() {
109
- return (await this.#mcpClient.getTools())
84
+ const mcpTools = (await this.#mcpClient.getTools())
110
85
  .filter(t => this.#allowedTools.map(t => t.getOptions().name).includes(t.name));
86
+ return [...mcpTools, COMPACT_MEMORY_TOOL];
111
87
  }
112
88
  #buildSkillsAndMemoryBlock(skills) {
113
89
  return `${skills && `
@@ -136,10 +112,22 @@ ${this.#buildSkillsAndMemoryBlock(skills)}`;
136
112
  this.#systemPrompt = this.#buildNativeSystemPrompt(this.#allSkills);
137
113
  return this.#systemPrompt;
138
114
  }
139
- #buildMemoryPrompt() {
140
- return `Summarize all important facts and pending tasks from this conversation.
141
- Output only this JSON line, nothing else:
142
- {"tool":"set_memory","inputs":{"new_memory":"<compact summary>"}}`;
115
+ /** Injected as a normal user turn once the running context crosses `#maxMemorizeToken`, so the model calls `compact_memory` itself on its next turn instead of the reset happening as a hidden side-effect. */
116
+ #buildForceCompactPrompt() {
117
+ return `You're nearing the safe context limit for this conversation. Before doing anything else, call the "${COMPACT_MEMORY_TOOL_NAME}" tool with a "new_memory" summary capturing every important fact, decision, and pending task so far.`;
118
+ }
119
+ /** Rolls the current (working) token counters into the lifetime totals, clears the working context, and stores the new running summary. Shared by voluntary and forced compaction — both go through the same `compact_memory` tool call. */
120
+ #compactMemory(newMemory) {
121
+ this.#memory = newMemory;
122
+ this.#messagesCompact = [];
123
+ this.#fullInputHitTokens += this.#currentInputHitTokens;
124
+ this.#fullInputMissTokens += this.#currentInputMissTokens;
125
+ this.#fullOutputTokens += this.#currentOutputTokens;
126
+ this.#currentInputHitTokens = 0;
127
+ this.#currentInputMissTokens = 0;
128
+ this.#currentOutputTokens = 0;
129
+ this.#currentLastOutputTokens = 0;
130
+ return "Memory compacted. Continue where you left off, using MEMORY above for context.";
143
131
  }
144
132
  async #resolveToolOutputForModel(toolName, output) {
145
133
  if (output.type === "text") {
@@ -162,16 +150,17 @@ Output only this JSON line, nothing else:
162
150
  };
163
151
  }
164
152
  const describer = new ImageDescriber(this.#imageProvider);
165
- const description = await describer.describe(image, mimeType, focusHint);
166
- return { text: JSON.stringify({ description, ...rest }) };
153
+ const result = await describer.describe(image, mimeType, focusHint);
154
+ this.#imageInputMissTokens += result.inputTokens;
155
+ this.#imageOutputTokens += result.outputTokens;
156
+ return { text: JSON.stringify({ description: result.description, ...rest }) };
167
157
  }
168
158
  async #dispatchTool(id, toolName, inputs) {
169
- if (toolName === "set_memory") {
159
+ if (toolName === COMPACT_MEMORY_TOOL_NAME) {
170
160
  if (typeof inputs?.new_memory === "string") {
171
- this.#memory = inputs.new_memory;
172
- return { id, name: toolName, resultText: "Memory updated." };
161
+ return { id, name: toolName, resultText: this.#compactMemory(inputs.new_memory) };
173
162
  }
174
- return { id, name: toolName, resultText: `Error: set_memory requires new_memory:string, got ${JSON.stringify(inputs)}` };
163
+ return { id, name: toolName, resultText: `Error: ${COMPACT_MEMORY_TOOL_NAME} requires new_memory:string, got ${JSON.stringify(inputs)}` };
175
164
  }
176
165
  if (!this.#allowedTools.map(t => t.getOptions().name).includes(toolName)) {
177
166
  return { id, name: toolName, resultText: `Error: tool "${toolName}" not found or not allowed.` };
@@ -185,22 +174,6 @@ Output only this JSON line, nothing else:
185
174
  return { id, name: toolName, resultText: `Error: ${err?.message ?? String(err)}` };
186
175
  }
187
176
  }
188
- /** Legacy-path dispatch: takes a ParsedToolCall (from #extractJson) and returns the JSON string historically pushed as a `system`-role message. */
189
- async #dispatchLegacyTool(toolCall) {
190
- const result = await this.#dispatchTool(toolCall.id, toolCall.tool, toolCall.inputs);
191
- if (toolCall.tool === "set_memory") {
192
- return result.resultText;
193
- }
194
- return JSON.stringify({ id: result.id, output: this.#safeParse(result.resultText) });
195
- }
196
- #safeParse(text) {
197
- try {
198
- return JSON.parse(text);
199
- }
200
- catch {
201
- return text;
202
- }
203
- }
204
177
  async stop() {
205
178
  this.#stopSignal = true;
206
179
  return new Promise((res, rej) => {
@@ -296,36 +269,15 @@ Output only this JSON line, nothing else:
296
269
  this.#messagesCompact.push(toolMessage);
297
270
  await streamCallback?.({ role: "tool", content: result.resultText, done: true, toolCallId: result.id, toolName: result.name });
298
271
  }
299
- let memorizeEventHappened = false;
300
- if (this.#currentInputMissTokens + this.#currentLastOutputTokens > this.#maxMemorizeToken) {
301
- memorizeEventHappened = true;
302
- const memChat = await this.#mainProvider.chat([
303
- { role: "system", content: systemPrompt },
304
- ...this.#messagesCompact,
305
- { role: "user", content: this.#buildMemoryPrompt() }
306
- ]);
307
- this.#currentInputHitTokens += this.#currentInputMissTokens;
308
- this.#currentInputMissTokens += memChat.inputTokens - this.#currentInputMissTokens;
309
- this.#currentOutputTokens += memChat.outputTokens;
310
- for (const mc of await this.#extractToolCalls(memChat.content)) {
311
- const toolResponse = await this.#dispatchLegacyTool(mc);
312
- await streamCallback?.({ role: "tool", content: toolResponse, done: true, toolCallId: mc.id, toolName: mc.tool });
313
- }
314
- this.#messagesCompact = [];
315
- this.#fullInputHitTokens += this.#currentInputHitTokens;
316
- this.#fullInputMissTokens += this.#currentInputMissTokens;
317
- this.#fullOutputTokens += this.#currentOutputTokens;
318
- this.#currentInputHitTokens = 0;
319
- this.#currentInputMissTokens = 0;
320
- this.#currentOutputTokens = 0;
321
- this.#currentLastOutputTokens = 0;
322
- }
323
- if (!calledAnyTool && memorizeEventHappened) {
324
- prompt = "Continue where you left off, using MEMORY above for context.";
325
- firstIteration = true;
272
+ const overMemoryBudget = this.#currentInputMissTokens + this.#currentLastOutputTokens > this.#maxMemorizeToken;
273
+ if (overMemoryBudget) {
274
+ const forcePrompt = { role: "user", content: this.#buildForceCompactPrompt() };
275
+ this.#messagesFull.push(forcePrompt);
276
+ this.#messagesCompact.push(forcePrompt);
277
+ await streamCallback?.({ role: "user", content: forcePrompt.content, done: true });
326
278
  }
327
279
  const stopAfterToolCall = this.#allowedTools.filter(t => nativeCalls.map(nc => nc.name).includes(t.getOptions().name)).find(t => t.getOptions().stopIterationAfterUsingThisTool);
328
- keepGoing = !stopAfterToolCall && calledAnyTool || memorizeEventHappened;
280
+ keepGoing = (!stopAfterToolCall && calledAnyTool) || overMemoryBudget;
329
281
  } while (keepGoing && this.#incomingRun.length == 0);
330
282
  if (this.#incomingRun.length > 1) {
331
283
  for (let i = 0; i < this.#incomingRun.length - 1; i++) {
@@ -352,14 +304,17 @@ Output only this JSON line, nothing else:
352
304
  currentInputMissTokens: this.#currentInputMissTokens,
353
305
  currentInputHitTokens: this.#currentInputHitTokens,
354
306
  currentOutputTokens: this.#currentOutputTokens,
307
+ imageInputMissTokens: this.#imageInputMissTokens,
308
+ imageOutputTokens: this.#imageOutputTokens,
355
309
  };
356
310
  }
311
+ /** Lifetime total across the main loop (current + all prior compacted segments) AND every ImageDescriber call this agent has made. */
357
312
  getTotalTokens() {
358
313
  return {
359
- total: this.#currentInputHitTokens + this.#currentInputMissTokens + this.#currentOutputTokens + this.#fullInputHitTokens + this.#fullInputMissTokens + this.#fullOutputTokens,
314
+ total: this.#currentInputHitTokens + this.#currentInputMissTokens + this.#currentOutputTokens + this.#fullInputHitTokens + this.#fullInputMissTokens + this.#fullOutputTokens + this.#imageInputMissTokens + this.#imageOutputTokens,
360
315
  inputHit: this.#currentInputHitTokens + this.#fullInputHitTokens,
361
- inputMiss: this.#currentInputMissTokens + this.#fullInputMissTokens,
362
- output: this.#currentOutputTokens + this.#fullOutputTokens
316
+ inputMiss: this.#currentInputMissTokens + this.#fullInputMissTokens + this.#imageInputMissTokens,
317
+ output: this.#currentOutputTokens + this.#fullOutputTokens + this.#imageOutputTokens
363
318
  };
364
319
  }
365
320
  getCurrentTotalTokens() {
@@ -370,6 +325,15 @@ Output only this JSON line, nothing else:
370
325
  output: this.#currentOutputTokens
371
326
  };
372
327
  }
328
+ /** 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. */
329
+ getImageTotalTokens() {
330
+ return {
331
+ total: this.#imageInputMissTokens + this.#imageOutputTokens,
332
+ inputHit: 0,
333
+ inputMiss: this.#imageInputMissTokens,
334
+ output: this.#imageOutputTokens
335
+ };
336
+ }
373
337
  getFullTotalTokens() {
374
338
  return {
375
339
  total: this.#fullInputHitTokens + this.#fullInputMissTokens + this.#fullOutputTokens,
@@ -1 +1 @@
1
- {"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare class DeepSeekProvider extends AIProvider {
4
4
  #private;
5
5
  constructor(apiKey: string, model?: string, options?: {
6
6
  supportsTools?: boolean;
7
+ supportsImages?: boolean;
7
8
  contextWindow?: number;
8
9
  thinkEffort?: number;
9
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../src/core/deepseek-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;AAiE1C,qBAAa,gBAAiB,SAAQ,UAAU;;gBAQhC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA4B,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAYxJ,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;CAyH3B;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../src/core/deepseek-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;AAoE1C,qBAAa,gBAAiB,SAAQ,UAAU;;gBAShC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA4B,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAalL,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;CAyH3B;AAED,eAAe,gBAAgB,CAAC"}
@@ -5,12 +5,14 @@ import { withRetry } from "./retry.js";
5
5
  import { resolveThinkEffortLevel } from "./think-effort.js";
6
6
  const MODEL_CONTEXT_WINDOWS = {
7
7
  "deepseek-v4-flash": 1_000_000,
8
+ "deepseek-v4-flash-vision-exp": 1_000_000,
8
9
  "deepseek-v4-pro": 1_000_000,
9
10
  };
10
11
  const DEFAULT_CONTEXT_WINDOW = 1_000_000;
11
12
  // DeepSeek's reasoning models accept `reasoning_effort` as one of these
12
13
  // four levels (OpenAI-compatible param, not in the `openai` SDK's types).
13
14
  const DEEPSEEK_THINK_LEVELS = ["none", "low", "high", "max"];
15
+ const IMAGE_MODELS = new Set(["deepseek-v4-flash-vision-exp"]);
14
16
  function toOpenAIMessages(messages) {
15
17
  return messages.map(msg => {
16
18
  if (msg.role === "tool") {
@@ -62,6 +64,7 @@ export class DeepSeekProvider extends AIProvider {
62
64
  #client;
63
65
  #model;
64
66
  #supportsTools;
67
+ #supportsImages;
65
68
  #contextWindow;
66
69
  /** Universal 0-1 thinking effort — see src/core/think-effort.ts. Mapped onto DEEPSEEK_THINK_LEVELS in #chat. */
67
70
  #thinkEffort;
@@ -73,13 +76,14 @@ export class DeepSeekProvider extends AIProvider {
73
76
  });
74
77
  this.#model = model;
75
78
  this.#supportsTools = options.supportsTools ?? true;
79
+ this.#supportsImages = options.supportsImages ?? IMAGE_MODELS.has(model);
76
80
  this.#contextWindow = options.contextWindow ?? MODEL_CONTEXT_WINDOWS[model] ?? DEFAULT_CONTEXT_WINDOW;
77
81
  this.#thinkEffort = options.thinkEffort;
78
82
  }
79
83
  getCapabilities() {
80
84
  return {
81
85
  supportsTools: this.#supportsTools,
82
- supportsImages: false,
86
+ supportsImages: this.#supportsImages,
83
87
  contextWindow: this.#contextWindow,
84
88
  safeUsageRatio: 0.5,
85
89
  supportsThinking: true,
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek-provider.js","sourceRoot":"","sources":["../../src/core/deepseek-provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAyB,MAAM,mBAAmB,CAAC;AAEnF,MAAM,qBAAqB,GAA2B;IAClD,mBAAmB,EAAE,SAAS;IAC9B,iBAAiB,EAAE,SAAS;CAC/B,CAAC;AACF,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAEzC,wEAAwE;AACxE,0EAA0E;AAC1E,MAAM,qBAAqB,GAAgC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1F,SAAS,gBAAgB,CAAC,QAAmB;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACtB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO;gBACH,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;gBAC1B,YAAY,EAAE,GAAG,CAAC,UAAU;aAC/B,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YACpD,OAAO;gBACH,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;gBAC5B,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACjC,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;iBACpE,CAAC,CAAC;aACN,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACpB,OAAO;gBACH,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,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI,WAAW,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;aAC1G,CAAC;QACN,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA4B;IACrD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3D,OAAO,SAAS;SACX,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,QAAQ,CAAC;SAC1D,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE;QACb,IAAI,MAAM,GAAwB,EAAE,CAAC;QACrC,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC5C,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,cAAc,CAAU;IACxB,cAAc,CAAS;IACvB,gHAAgH;IAChH,YAAY,CAAU;IAEtB,YAAY,MAAc,EAAE,QAAgB,mBAAmB,EAAE,UAAqF,EAAE;QACpJ,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC;YACtB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,0BAA0B;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,sBAAsB,CAAC;QACtG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED,eAAe;QACX,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,cAAc,EAAE,KAAK;YACrB,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,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc;YACnE,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC;YAC9B,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;QACrF,MAAM,UAAU,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpF,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,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACtD,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,QAAQ,EAAE,iBAAwB;oBAClC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,UAAU;oBACb,MAAM,EAAE,IAAI;iBACf,CAAC,CAAC;gBAEH,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,IAAI,YAAY,GAAG,EAAE,CAAC;gBACtB,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,MAAM,cAAc,GAAsE,EAAE,CAAC;gBAC7F,8DAA8D;gBAC9D,qDAAqD;gBACrD,4DAA4D;gBAC5D,4DAA4D;gBAC5D,mCAAmC;gBACnC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;gBACzC,IAAI,WAA+B,CAAC;gBAEpC,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;oBAC1C,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO;oBACpC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACxB,MAAM,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;oBAC/B,IAAI,MAAM,GAAwB,EAAE,CAAC;oBACrC,IAAI,CAAC;wBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC;wBAAC,MAAM,GAAG,EAAE,CAAC;oBAAC,CAAC;oBACzE,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;gBACzI,CAAC,CAAC;gBAEF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAY,CAAC;oBAC7C,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;oBACrC,IAAI,OAAO,EAAE,CAAC;wBACV,WAAW,IAAI,OAAO,CAAC;wBACvB,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtE,CAAC;oBAED,sDAAsD;oBACtD,wDAAwD;oBACxD,MAAM,SAAS,GAAG,KAAK,EAAE,iBAAiB,IAAI,EAAE,CAAC;oBACjD,IAAI,SAAS,EAAE,CAAC;wBACZ,YAAY,IAAI,SAAS,CAAC;wBAC1B,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC/F,CAAC;oBAED,IAAI,KAAK,EAAE,UAAU,EAAE,CAAC;wBACpB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;4BAChC,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;4BAC1B,IAAI,EAAE,CAAC,EAAE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gCAC5D,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;4BACvC,CAAC;4BACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gCAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;4BAClE,IAAI,EAAE,CAAC,EAAE;gCAAE,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;4BAC1C,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI;gCAAE,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;4BACnE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS;gCAAE,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;4BACnF,WAAW,GAAG,GAAG,CAAC;wBACtB,CAAC;oBACL,CAAC;oBAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACd,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;wBAC7C,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;oBACtD,CAAC;gBACL,CAAC;gBACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC;gBAED,MAAM,SAAS,GAAkC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC;oBACnF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;wBACrC,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,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;iBACtD,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,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACxD,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,QAAQ,EAAE,iBAAwB;oBAClC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,UAAU;iBAChB,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAc,CAAC;gBAEpD,OAAO;oBACH,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;oBAC/B,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;oBAC/C,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC;oBACpD,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,CAAC,OAAO,EAAE,UAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1H,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjF,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;CACJ;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"deepseek-provider.js","sourceRoot":"","sources":["../../src/core/deepseek-provider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import type { AIProvider } from "./ai-provider.js";
2
+ /** Usage for one `describe()` call. */
3
+ export interface ImageDescription {
4
+ description: string;
5
+ inputTokens: number;
6
+ outputTokens: number;
7
+ }
2
8
  export declare class ImageDescriber {
3
9
  #private;
4
10
  constructor(provider: AIProvider);
@@ -7,7 +13,7 @@ export declare class ImageDescriber {
7
13
  * @param mimeType e.g. "image/png"
8
14
  * @param focusHint what the calling agent wants the description to pay attention to
9
15
  */
10
- describe(image: string, mimeType?: string, focusHint?: string): Promise<string>;
16
+ describe(image: string, mimeType?: string, focusHint?: string): Promise<ImageDescription>;
11
17
  }
12
18
  export default ImageDescriber;
13
19
  //# sourceMappingURL=image-describer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-describer.d.ts","sourceRoot":"","sources":["../../src/core/image-describer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAEvE,qBAAa,cAAc;;gBAGX,QAAQ,EAAE,UAAU;IAIhC;;;;OAIG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAoB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAyBrG;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"image-describer.d.ts","sourceRoot":"","sources":["../../src/core/image-describer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAEvE,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,cAAc;;gBAGX,QAAQ,EAAE,UAAU;IAIhC;;;;OAIG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAoB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA6B/G;AAED,eAAe,cAAc,CAAC"}
@@ -26,7 +26,11 @@ export class ImageDescriber {
26
26
  const response = await this.#provider.chat([
27
27
  { role: "user", parts },
28
28
  ]);
29
- return response.content;
29
+ return {
30
+ description: response.content,
31
+ inputTokens: response.inputTokens,
32
+ outputTokens: response.outputTokens,
33
+ };
30
34
  }
31
35
  }
32
36
  export default ImageDescriber;
@@ -1 +1 @@
1
- {"version":3,"file":"image-describer.js","sourceRoot":"","sources":["../../src/core/image-describer.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IACvB,SAAS,CAAa;IAEtB,YAAY,QAAoB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,WAAmB,WAAW,EAAE,SAAkB;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACX,uGAAuG;gBACvG,0DAA0D,CAC7D,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAyB;YAChC;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;oBACX,CAAC,CAAC,iGAAiG,SAAS,EAAE;oBAC9G,CAAC,CAAC,yJAAyJ;aAClK;YACD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;SACrC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACvC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;SAC1B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;CACJ;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"image-describer.js","sourceRoot":"","sources":["../../src/core/image-describer.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,cAAc;IACvB,SAAS,CAAa;IAEtB,YAAY,QAAoB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,WAAmB,WAAW,EAAE,SAAkB;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACX,uGAAuG;gBACvG,0DAA0D,CAC7D,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAyB;YAChC;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;oBACX,CAAC,CAAC,iGAAiG,SAAS,EAAE;oBAC9G,CAAC,CAAC,yJAAyJ;aAClK;YACD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;SACrC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACvC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;SAC1B,CAAC,CAAC;QAEH,OAAO;YACH,WAAW,EAAE,QAAQ,CAAC,OAAO;YAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;SACtC,CAAC;IACN,CAAC;CACJ;AAED,eAAe,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export { OllamaProvider } from "./core/ollama-provider.js";
18
18
  export { Skill } from "./core/skill.js";
19
19
  export { MCPComputer } from "./core/mcp-computer.js";
20
20
  export { ImageDescriber } from "./core/image-describer.js";
21
+ export type { ImageDescription } from "./core/image-describer.js";
21
22
  export { toOpenAIFunctionTools } from "./core/tool-schema-translator.js";
22
23
  export { resolveAgentProviders } from "./core/agent-providers.js";
23
24
  export type { AgentProviderRole, AgentProviderEntry, AgentProvidersInput, ResolvedAgentProviders } from "./core/agent-providers.js";
@@ -30,7 +31,7 @@ export { WorkerAgent } from "./core/worker-agent.js";
30
31
  export type { WorkerAgentRating } from "./core/worker-agent.js";
31
32
  export { AgentTools, AgentListTool, AgentHireTool, AgentPromptTool, AgentReportTool, AgentRegistry, AgentInteraction, } from "./tools/agent/index.js";
32
33
  export type { AgentInfo, AgentEvent, AgentToolsOptions } from "./tools/agent/index.js";
33
- export { GetCurrentTimeTool, DelayTool, UtilTools } from "./tools/utils/index.js";
34
+ export { GetCurrentTimeTool, DelayTool, ReadImageTool, UtilTools } from "./tools/utils/index.js";
34
35
  export { TodoCreateListTool, TodoRemoveListTool, TodoGetListsTool, TodoGetListTool, TodoCreateTaskTool, TodoRemoveTaskTool, TodoCheckTaskTool, TodoTools, TodoInteraction, } from "./tools/todo/index.js";
35
36
  export type { TodoTask, TodoList, TodoEvent } from "./tools/todo/index.js";
36
37
  export { BrowserCreateSessionTool, BrowserRemoveSessionTool, BrowserGetSessionsTool, BrowserNavigateTool, BrowserConsoleTool, BrowserInjectTool, BrowserReadTool, BrowserClickTool, BrowserFillTool, BrowserScrollInfoTool, BrowserScrollTool, BrowserNetworkStatusTool, BrowserNetworkTool, BrowserSubmitFormTool, BrowserScreenshotTool, BrowserTools, BrowserInteraction, } from "./tools/browser/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ export { MCPFilter } from "./core/mcp-filter.js";
23
23
  export { SimpleAgent } from "./templates/simple.js";
24
24
  export { WorkerAgent } from "./core/worker-agent.js";
25
25
  export { AgentTools, AgentListTool, AgentHireTool, AgentPromptTool, AgentReportTool, AgentRegistry, AgentInteraction, } from "./tools/agent/index.js";
26
- export { GetCurrentTimeTool, DelayTool, UtilTools } from "./tools/utils/index.js";
26
+ export { GetCurrentTimeTool, DelayTool, ReadImageTool, UtilTools } from "./tools/utils/index.js";
27
27
  export { TodoCreateListTool, TodoRemoveListTool, TodoGetListsTool, TodoGetListTool, TodoCreateTaskTool, TodoRemoveTaskTool, TodoCheckTaskTool, TodoTools, TodoInteraction, } from "./tools/todo/index.js";
28
28
  export { BrowserCreateSessionTool, BrowserRemoveSessionTool, BrowserGetSessionsTool, BrowserNavigateTool, BrowserConsoleTool, BrowserInjectTool, BrowserReadTool, BrowserClickTool, BrowserFillTool, BrowserScrollInfoTool, BrowserScrollTool, BrowserNetworkStatusTool, BrowserNetworkTool, BrowserSubmitFormTool, BrowserScreenshotTool, BrowserTools, BrowserInteraction, } from "./tools/browser/index.js";
29
29
  export { FsReadFileTool, FsWriteFileTool, FsEditFileTool, FsListDirTool, FsCreateDirTool, FsDeleteTool, FsMoveTool, FsStatTool, FsTools, FsInteraction, } from "./tools/fs/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACH,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,GACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEjG,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,eAAe,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACH,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,aAAa,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACH,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,eAAe,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -20,6 +20,8 @@ export declare class SimpleAgent extends BaseAgent {
20
20
  currentInputMissTokens: number;
21
21
  currentInputHitTokens: number;
22
22
  currentOutputTokens: number;
23
+ imageInputMissTokens?: number;
24
+ imageOutputTokens?: number;
23
25
  };
24
26
  });
25
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../src/templates/simple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAI1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAE1C,qBAAa,WAAY,SAAQ,SAAS;gBAC1B,EACR,UAAU,EACV,WAAgB,EAChB,KAAU,EACV,MAAW,EACX,gBAAwB,EACxB,QAUC,EACJ,EAAE;QACC,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,UAAU,EAAE,UAAU,CAAC;QACvB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,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;CAsBJ;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../src/templates/simple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAI1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAE1C,qBAAa,WAAY,SAAQ,SAAS;gBAC1B,EACR,UAAU,EACV,WAAgB,EAChB,KAAU,EACV,MAAW,EACX,gBAAwB,EACxB,QAUC,EACJ,EAAE;QACC,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,UAAU,EAAE,UAAU,CAAC;QACvB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,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,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC9B,CAAA;KACJ;CAsBJ;AAED,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/templates/simple.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAE9C,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAG9C,MAAM,OAAO,WAAY,SAAQ,SAAS;IACtC,YAAY,EACR,UAAU,EACV,WAAW,GAAG,EAAE,EAChB,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,EACX,gBAAgB,GAAG,KAAK,EACxB,QAAQ,GAAG;QACP,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,mBAAmB,EAAE,CAAC;QACtB,kBAAkB,EAAE,CAAC;QACrB,gBAAgB,EAAE,CAAC;QACnB,eAAe,EAAE,EAAE;QACnB,sBAAsB,EAAE,CAAC;QACzB,qBAAqB,EAAE,CAAC;QACxB,mBAAmB,EAAE,CAAC;KACzB,EAkBJ;QACG,MAAM,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC;YACF,UAAU;YACV,WAAW;YACX,SAAS;YACT,YAAY,EAAE,KAAK;YACnB,MAAM;YACN,gBAAgB;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;CACJ;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/templates/simple.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAE9C,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAG9C,MAAM,OAAO,WAAY,SAAQ,SAAS;IACtC,YAAY,EACR,UAAU,EACV,WAAW,GAAG,EAAE,EAChB,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,EACX,gBAAgB,GAAG,KAAK,EACxB,QAAQ,GAAG;QACP,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,mBAAmB,EAAE,CAAC;QACtB,kBAAkB,EAAE,CAAC;QACrB,gBAAgB,EAAE,CAAC;QACnB,eAAe,EAAE,EAAE;QACnB,sBAAsB,EAAE,CAAC;QACzB,qBAAqB,EAAE,CAAC;QACxB,mBAAmB,EAAE,CAAC;KACzB,EAoBJ;QACG,MAAM,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC;YACF,UAAU;YACV,WAAW;YACX,SAAS;YACT,YAAY,EAAE,KAAK;YACnB,MAAM;YACN,gBAAgB;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;CACJ;AAED,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../src/tools/browser/session-manager.ts"],"names":[],"mappings":"AACA,OAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAMD;;;;GAIG;AACH,cAAM,cAAc;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,eAAe,EAAE,CAAM;IACpC,WAAW,EAAE,eAAe,EAAE,CAAM;gBAExB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;IAMpD,cAAc,CAAC,KAAK,EAAE,eAAe;IAOrC,cAAc,CAAC,KAAK,EAAE,eAAe;CAMxC;AAQD,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAgD3F;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAM5D;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpE;AAED,eAAe,cAAc,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../src/tools/browser/session-manager.ts"],"names":[],"mappings":"AACA,OAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAMD;;;;GAIG;AACH,cAAM,cAAc;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,eAAe,EAAE,CAAM;IACpC,WAAW,EAAE,eAAe,EAAE,CAAM;gBAExB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;IAMpD,cAAc,CAAC,KAAK,EAAE,eAAe;IAOrC,cAAc,CAAC,KAAK,EAAE,eAAe;CAMxC;AAQD,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA4D3F;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAM5D;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpE;AAED,eAAe,cAAc,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -38,11 +38,24 @@ function truncate(str, cap) {
38
38
  }
39
39
  export async function createSession(url, sessionId) {
40
40
  const browser = await puppeteer.launch({
41
- executablePath: process.env.CHROME_PATH || (os.platform() == "win32" ?
41
+ executablePath: process.env.CHROME_PATH || (os.platform() === "win32" ?
42
42
  "C:/Program Files/Google/Chrome/Application/chrome.exe" :
43
43
  "/usr/bin/google-chrome-stable"),
44
- headless: Boolean(process.env.HEADLESS_BROWSER_SESSIONS || true),
45
- args: ["--no-sandbox"],
44
+ headless: process.env.HEADLESS_BROWSER_SESSIONS !== "false",
45
+ defaultViewport: { width: 1280, height: 800, deviceScaleFactor: 1 },
46
+ args: [
47
+ "--no-sandbox",
48
+ "--disable-dev-shm-usage",
49
+ "--disable-background-networking",
50
+ "--disable-background-timer-throttling",
51
+ "--disable-backgrounding-occluded-windows",
52
+ "--disable-renderer-backgrounding",
53
+ "--disable-sync",
54
+ "--mute-audio",
55
+ "--no-first-run",
56
+ "--force-color-profile=srgb",
57
+ "--font-render-hinting=none",
58
+ ],
46
59
  });
47
60
  const page = await browser.newPage();
48
61
  const session = new BrowserSession(sessionId, browser, page);
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/tools/browser/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/tools/browser/session-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/edit-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,eAAO,MAAM,cAAc,8BAiFzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/edit-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,eAAO,MAAM,cAAc,8BAkFzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -4,7 +4,7 @@ import { FsInteraction } from "./interaction.js";
4
4
  import { resolvePath, toLines } from "./utils.js";
5
5
  export const FsEditFileTool = () => new MCPTool({
6
6
  name: "fs-edit-file",
7
- description: "replace a specific line range in an existing file without rewriting the whole file. lines are 0-indexed; the range [offsetLine, offsetLine+limitLine) is replaced entirely by `content` (use limitLine 0 to insert at offsetLine without deleting anything). read the file first (fs-read-file) to get accurate line numbers, since another edit may have shifted them.",
7
+ description: "replace a specific line range in an existing file without rewriting the whole file. lines are 1-indexed (line 1 is the first line of the file, matching fs-read-file); the range [offsetLine, offsetLine+limitLine) 1-indexed lines is replaced entirely by `content` (use limitLine 0 to insert before offsetLine without deleting anything; use offsetLine totalLines+1 to append at end of file). read the file first (fs-read-file) to get accurate line numbers, since another edit may have shifted them.",
8
8
  inputs: [
9
9
  {
10
10
  name: "path",
@@ -15,7 +15,7 @@ export const FsEditFileTool = () => new MCPTool({
15
15
  {
16
16
  name: "offsetLine",
17
17
  type: "number",
18
- description: "0-indexed line to start replacing from",
18
+ description: "1-indexed line to start replacing from (line 1 is the first line of the file)",
19
19
  required: true,
20
20
  },
21
21
  {
@@ -34,8 +34,8 @@ export const FsEditFileTool = () => new MCPTool({
34
34
  customClass: new FsInteraction(),
35
35
  execute: async (_envID, inputs, _mcp, customClass) => {
36
36
  const { path, offsetLine, limitLine, content } = inputs;
37
- if (typeof offsetLine !== "number" || offsetLine < 0) {
38
- throw new Error("offsetLine must be a non-negative number");
37
+ if (typeof offsetLine !== "number" || offsetLine < 1) {
38
+ throw new Error("offsetLine is 1-indexed (line 1 is the first line of the file) and must be >= 1");
39
39
  }
40
40
  if (typeof limitLine !== "number" || limitLine < 0) {
41
41
  throw new Error("limitLine must be a non-negative number");
@@ -55,12 +55,13 @@ export const FsEditFileTool = () => new MCPTool({
55
55
  throw err;
56
56
  }
57
57
  const lines = toLines(raw);
58
- if (offsetLine > lines.length) {
59
- throw new Error(`offsetLine ${offsetLine} is past end of file (${lines.length} lines)`);
58
+ const index = offsetLine - 1;
59
+ if (index > lines.length) {
60
+ throw new Error(`offsetLine ${offsetLine} is past end of file (${lines.length} lines; use offsetLine ${lines.length + 1} to append)`);
60
61
  }
61
- const removedCount = Math.min(limitLine, lines.length - offsetLine);
62
+ const removedCount = Math.min(limitLine, lines.length - index);
62
63
  const insertedLines = content.length === 0 ? [] : content.split(/\r\n|\r|\n/);
63
- lines.splice(offsetLine, removedCount, ...insertedLines);
64
+ lines.splice(index, removedCount, ...insertedLines);
64
65
  await writeFile(fullPath, lines.join("\n"), { encoding: "utf-8" });
65
66
  return {
66
67
  message: "success",
@@ -1 +1 @@
1
- {"version":3,"file":"edit-file.js","sourceRoot":"","sources":["../../../src/tools/fs/edit-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-file.js","sourceRoot":"","sources":["../../../src/tools/fs/edit-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,CAAgB;IAC3D,IAAI,EAAE,cAAc;IACpB,WAAW,EACP,ifAAif;IACrf,MAAM,EAAE;QACJ;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;SACjB;QACD;YACI,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+EAA+E;YAC5F,QAAQ,EAAE,IAAI;SACjB;QACD;YACI,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2DAA2D;YACxE,QAAQ,EAAE,IAAI;SACjB;QACD;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wGAAwG;YACrH,QAAQ,EAAE,IAAI;SACjB;KACJ;IACD,WAAW,EAAE,IAAI,aAAa,EAAE;IAChC,OAAO,EAAE,KAAK,EACV,MAAc,EACd,MAA2B,EAC3B,IAAU,EACV,WAA2B,EACf,EAAE;QACd,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAExD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnC,WAAW,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE9D,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACD,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;YACzE,MAAM,GAAG,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;QAE7B,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,cAAc,UAAU,yBAAyB,KAAK,CAAC,MAAM,0BAA0B,KAAK,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1I,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE9E,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC;QAEpD,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAEnE,OAAO;YACH,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,YAAY;YAC1B,aAAa,EAAE,aAAa,CAAC,MAAM;YACnC,UAAU,EAAE,KAAK,CAAC,MAAM;SAC3B,CAAC;IACN,CAAC;CACJ,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -15,9 +15,9 @@ export const FsReadFileTool = () => new MCPTool({
15
15
  {
16
16
  name: "offsetLine",
17
17
  type: "number",
18
- description: "line offset to start reading from",
18
+ description: "1-indexed line number to start reading from (line 1 is the first line of the file)",
19
19
  required: false,
20
- default: 0,
20
+ default: 1,
21
21
  },
22
22
  {
23
23
  name: "limitLine",
@@ -29,7 +29,7 @@ export const FsReadFileTool = () => new MCPTool({
29
29
  ],
30
30
  customClass: new FsInteraction(),
31
31
  execute: async (_envID, inputs, _mcp, customClass) => {
32
- const { path, offsetLine = 0, limitLine = 2000 } = inputs;
32
+ const { path, offsetLine = 1, limitLine = 2000 } = inputs;
33
33
  const fullPath = resolvePath(path);
34
34
  customClass?.emitFsEvent({ type: "reading", path: fullPath });
35
35
  let raw;
@@ -1 +1 @@
1
- {"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../src/tools/fs/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,CAAgB;IAC3D,IAAI,EAAE,cAAc;IACpB,WAAW,EACP,mHAAmH;IACvH,MAAM,EAAE;QACJ;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;SACjB;QACD;YACI,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC;SACb;QACD;YACI,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;SAChB;KACJ;IACD,WAAW,EAAE,IAAI,aAAa,EAAE;IAChC,OAAO,EAAE,KAAK,EACV,MAAc,EACd,MAA2B,EAC3B,IAAU,EACV,WAA2B,EACf,EAAE;QACd,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAE1D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnC,WAAW,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE9D,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACD,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;YACzE,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,8BAA8B,CAAC,CAAC;YACnF,MAAM,GAAG,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhG,OAAO;YACH,OAAO;YACP,UAAU;YACV,SAAS;YACT,OAAO;SACV,CAAC;IACN,CAAC;CACJ,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../src/tools/fs/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,CAAgB;IAC3D,IAAI,EAAE,cAAc;IACpB,WAAW,EACP,mHAAmH;IACvH,MAAM,EAAE;QACJ;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;SACjB;QACD;YACI,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,oFAAoF;YACjG,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC;SACb;QACD;YACI,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;SAChB;KACJ;IACD,WAAW,EAAE,IAAI,aAAa,EAAE;IAChC,OAAO,EAAE,KAAK,EACV,MAAc,EACd,MAA2B,EAC3B,IAAU,EACV,WAA2B,EACf,EAAE;QACd,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAE1D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnC,WAAW,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE9D,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACD,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;YACzE,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,8BAA8B,CAAC,CAAC;YACnF,MAAM,GAAG,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhG,OAAO;YACH,OAAO;YACP,UAAU;YACV,SAAS;YACT,OAAO;SACV,CAAC;IACN,CAAC;CACJ,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -10,6 +10,13 @@ export declare function toLines(content: string): string[];
10
10
  * Slices an array of lines by offset/limit, clamping to bounds, and returns
11
11
  * both the slice and the total line count so callers can page through large
12
12
  * files without ever loading the whole thing into a response.
13
+ *
14
+ * `offsetLine` is 1-indexed (the first line of the file is line 1), matching
15
+ * the convention every fs tool that talks about line numbers uses — this is
16
+ * what LLMs already expect from editors/`cat -n`, and keeping it consistent
17
+ * with `fs-edit-file`'s `offsetLine` is the whole point: a line number read
18
+ * here can be pasted straight into an edit call without an off-by-one.
19
+ * `startLine`/`endLine` in the result are 1-indexed and inclusive.
13
20
  */
14
21
  export declare function paginateLines(lines: string[], offsetLine: number, limitLine: number): {
15
22
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/utils.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;EAUnF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/utils.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;EAUnF"}
@@ -18,15 +18,22 @@ export function toLines(content) {
18
18
  * Slices an array of lines by offset/limit, clamping to bounds, and returns
19
19
  * both the slice and the total line count so callers can page through large
20
20
  * files without ever loading the whole thing into a response.
21
+ *
22
+ * `offsetLine` is 1-indexed (the first line of the file is line 1), matching
23
+ * the convention every fs tool that talks about line numbers uses — this is
24
+ * what LLMs already expect from editors/`cat -n`, and keeping it consistent
25
+ * with `fs-edit-file`'s `offsetLine` is the whole point: a line number read
26
+ * here can be pasted straight into an edit call without an off-by-one.
27
+ * `startLine`/`endLine` in the result are 1-indexed and inclusive.
21
28
  */
22
29
  export function paginateLines(lines, offsetLine, limitLine) {
23
30
  const totalLines = lines.length;
24
- const start = Math.max(0, Math.min(offsetLine, totalLines));
31
+ const start = Math.max(0, Math.min(offsetLine - 1, totalLines));
25
32
  const end = Math.max(start, Math.min(start + limitLine, totalLines));
26
33
  return {
27
34
  content: lines.slice(start, end).join("\n"),
28
35
  totalLines,
29
- startLine: start,
36
+ startLine: start + 1,
30
37
  endLine: end,
31
38
  };
32
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/tools/fs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACpC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,OAAO,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAe,EAAE,UAAkB,EAAE,SAAiB;IAChF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACrE,OAAO;QACH,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3C,UAAU;QACV,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,GAAG;KACf,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/tools/fs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACpC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,OAAO,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,KAAe,EAAE,UAAkB,EAAE,SAAiB;IAChF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACrE,OAAO;QACH,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3C,UAAU;QACV,SAAS,EAAE,KAAK,GAAG,CAAC;QACpB,OAAO,EAAE,GAAG;KACf,CAAC;AACN,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { GetCurrentTimeTool } from "./get-current-time.js";
2
2
  export { DelayTool } from "./delay.js";
3
+ export { ReadImageTool } from "./read-image.js";
3
4
  export declare const UtilTools: () => import("../../index.js").MCPTool<undefined>[];
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOvC,eAAO,MAAM,SAAS,qDAGrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,eAAO,MAAM,SAAS,qDAIrB,CAAC"}
@@ -1,9 +1,12 @@
1
1
  export { GetCurrentTimeTool } from "./get-current-time.js";
2
2
  export { DelayTool } from "./delay.js";
3
+ export { ReadImageTool } from "./read-image.js";
3
4
  import { GetCurrentTimeTool } from "./get-current-time.js";
4
5
  import { DelayTool } from "./delay.js";
6
+ import { ReadImageTool } from "./read-image.js";
5
7
  export const UtilTools = () => [
6
8
  GetCurrentTimeTool(),
7
- DelayTool()
9
+ DelayTool(),
10
+ ReadImageTool()
8
11
  ];
9
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IAC3B,kBAAkB,EAAE;IACpB,SAAS,EAAE;CACd,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IAC3B,kBAAkB,EAAE;IACpB,SAAS,EAAE;IACX,aAAa,EAAE;CAClB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { MCPTool } from "../../core/mcp.js";
2
+ /**
3
+ * Reads an image straight off disk and hands it to the agent as an image
4
+ * tool-output — same shape and same downstream handling as
5
+ * `browser-screenshot` (see BaseAgent#resolveToolOutputForModel): depending
6
+ * on how the agent is configured, the raw bytes go straight to the main
7
+ * model, or a separate image-capable provider describes it first so the
8
+ * main conversation doesn't have to carry image bytes.
9
+ */
10
+ export declare const ReadImageTool: () => MCPTool<undefined>;
11
+ export default ReadImageTool;
12
+ //# sourceMappingURL=read-image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-image.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/read-image.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAgB5C;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,0BA8CxB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { readFile } from "fs/promises";
2
+ import { extname } from "path";
3
+ import { MCPTool } from "../../core/mcp.js";
4
+ import { resolvePath } from "../fs/utils.js";
5
+ const MIME_TYPES = {
6
+ ".png": "image/png",
7
+ ".jpg": "image/jpeg",
8
+ ".jpeg": "image/jpeg",
9
+ ".gif": "image/gif",
10
+ ".webp": "image/webp",
11
+ ".bmp": "image/bmp",
12
+ };
13
+ function mimeTypeForPath(path) {
14
+ return MIME_TYPES[extname(path).toLowerCase()] ?? "image/png";
15
+ }
16
+ /**
17
+ * Reads an image straight off disk and hands it to the agent as an image
18
+ * tool-output — same shape and same downstream handling as
19
+ * `browser-screenshot` (see BaseAgent#resolveToolOutputForModel): depending
20
+ * on how the agent is configured, the raw bytes go straight to the main
21
+ * model, or a separate image-capable provider describes it first so the
22
+ * main conversation doesn't have to carry image bytes.
23
+ */
24
+ export const ReadImageTool = () => new MCPTool({
25
+ name: "read-image",
26
+ description: "read an image file from disk and hand it to the agent. works just like browser-screenshot: returns an image tool-output — depending on how the agent is configured, the raw image may be handed directly to the model, or first described by a separate image-capable AI so the main conversation doesn't have to carry image bytes. " +
27
+ "use `focusHint` to tell that description step what you actually care about (e.g. 'read out any visible text' or 'check whether the chart trend is up or down'), so the resulting description is useful for your task instead of a generic caption.",
28
+ inputs: [
29
+ {
30
+ name: "path",
31
+ type: "string",
32
+ description: "absolute or cwd-relative path to the image file (png, jpg, gif, webp, bmp)",
33
+ required: true,
34
+ },
35
+ {
36
+ name: "focusHint",
37
+ type: "string",
38
+ description: "what to focus on when describing the image",
39
+ required: false,
40
+ },
41
+ ],
42
+ execute: async (_envID, inputs) => {
43
+ const { path, focusHint } = inputs;
44
+ if (!path || typeof path !== "string") {
45
+ throw new Error("path must be a non-empty string");
46
+ }
47
+ const fullPath = resolvePath(path);
48
+ let image;
49
+ try {
50
+ image = (await readFile(fullPath)).toString("base64");
51
+ }
52
+ catch (err) {
53
+ if (err.code === "ENOENT")
54
+ throw new Error(`no file found at "${path}"`);
55
+ if (err.code === "EISDIR")
56
+ throw new Error(`"${path}" is a directory, not a file`);
57
+ throw err;
58
+ }
59
+ return {
60
+ type: "image",
61
+ output: {
62
+ image,
63
+ mimeType: mimeTypeForPath(fullPath),
64
+ ...(focusHint ? { focusHint } : {}),
65
+ },
66
+ };
67
+ },
68
+ });
69
+ export default ReadImageTool;
70
+ //# sourceMappingURL=read-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-image.js","sourceRoot":"","sources":["../../../src/tools/utils/read-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,UAAU,GAA2B;IACvC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACtB,CAAC;AAEF,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,WAAW,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC;IAC3C,IAAI,EAAE,YAAY;IAClB,WAAW,EACP,uUAAuU;QACvU,oPAAoP;IACxP,MAAM,EAAE;QACJ;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4EAA4E;YACzF,QAAQ,EAAE,IAAI;SACjB;QACD;YACI,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,KAAK;SAClB;KACJ;IACD,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,MAA2B,EAAgB,EAAE;QACzE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAEnC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,KAAa,CAAC;QAClB,IAAI,CAAC;YACD,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;YACzE,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,8BAA8B,CAAC,CAAC;YACnF,MAAM,GAAG,CAAC;QACd,CAAC;QAED,OAAO;YACH,IAAI,EAAE,OAAO;YACb,MAAM,EAAE;gBACJ,KAAK;gBACL,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;gBACnC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtC;SACJ,CAAC;IACN,CAAC;CACJ,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
package/docs/agents.md CHANGED
@@ -47,6 +47,15 @@ Each call to `run()`:
47
47
 
48
48
  If `run()` is called again while a previous call is still in flight, the new call is queued and resolves once the current run finishes (or times out after 4 minutes) — it does not run concurrently or interleave.
49
49
 
50
+ ### Calling `run()` again mid-flight: prompt coalescing, not truncation
51
+
52
+ This is a deliberate design for absorbing multiple user prompts that arrive while the agent is still mid-turn (e.g. a chat UI where the user sends a couple of follow-up messages before the first reply lands) — not a bug, and nothing gets cut off mid-tool-call. The currently running loop iteration (one model turn plus all of that turn's tool dispatches) always finishes; only the *next* iteration is skipped once another `run()` call has queued:
53
+
54
+ - **One call queues up:** the in-flight run finishes its current iteration and stops there; the queued call then runs its own fresh loop from scratch, in a context that already contains everything the first run produced (including any pending tool results).
55
+ - **Multiple calls queue up:** every queued call except the last one has its prompt appended straight into history as a plain `role: "user"` message (with a matching stream chunk) and its own `run()` promise resolves immediately — no model turn is generated for that prompt specifically. The *last* queued call is the one that actually drives a real model turn, in a context that now includes every prompt that queued before it. The model's eventual reply addresses the whole accumulated batch at once, not each queued prompt individually.
56
+
57
+ Practical implication: don't treat an early queued call's resolved `run()` promise as "the model has now answered this prompt" — for anything but the last queued call, it only means the prompt was recorded. Drive replies off `streamCallback` if you need to know when the model has actually responded.
58
+
50
59
  `stop()` requests the current run stop at the next safe point; it resolves once the loop has actually stopped, or rejects if it doesn't stop within 4 minutes.
51
60
 
52
61
  ### Native tool-calling is required
@@ -55,28 +64,37 @@ If `run()` is called again while a previous call is still in flight, the new cal
55
64
 
56
65
  ## Memory compaction
57
66
 
58
- OrbitX never truncates or deletes conversation history. Instead, `BaseAgent` tracks two token totals per run: `currentInputMissTokens` (uncached input) and `currentLastOutputTokens` (the last turn's output). When their sum exceeds `maxMemorizeToken`:
67
+ OrbitX never truncates or deletes conversation history. Compaction happens through a real, always-available native tool — `compact_memory({ new_memory: string })` — that `BaseAgent` appends to every tool schema list alongside whatever MCP tools you allowed. This means the model can compact its own context whenever *it* judges the conversation has grown long, not only when forced to.
59
68
 
60
- 1. The agent asks the main provider to summarize the conversation so far into a single JSON tool call (`{"tool":"set_memory","inputs":{"new_memory":"..."}}`), which becomes the running `memory` string injected into every future system prompt (`MEMORY:` section).
61
- 2. `messagesCompact` — the *working* context sent to the provider each turn — is cleared.
62
- 3. `messagesFull` — the complete, ever-appended history — is untouched, so nothing is lost; it's just no longer replayed to the model every turn.
63
- 4. If no tool was called this turn (i.e. compaction happened on an otherwise-idle turn), the agent auto-continues with a synthetic "Continue where you left off, using MEMORY above for context." prompt so the model doesn't just stop mid-task.
69
+ Calling `compact_memory`:
70
+
71
+ 1. Replaces the running `memory` string with `new_memory`, which is injected into every future system prompt (`MEMORY:` section).
72
+ 2. Clears `messagesCompact` — the *working* context sent to the provider each turn.
73
+ 3. Leaves `messagesFull` — the complete, ever-appended history — untouched, so nothing is lost; it's just no longer replayed to the model every turn.
74
+ 4. Rolls the current token counters into the lifetime totals (see [Token accounting](#token-accounting)) and resets them to zero.
75
+
76
+ `BaseAgent` also tracks two token totals per run: `currentInputMissTokens` (uncached input) and `currentLastOutputTokens` (the last turn's output). When their sum exceeds `maxMemorizeToken`, the agent doesn't compact on the model's behalf — instead it appends a `role: "user"` message telling the model to call `compact_memory` before doing anything else, and loops back for another turn. This keeps compaction on the same native tool-call path the model already uses for everything else, rather than a hidden side-channel; a model that ignores the nudge (rare, since the instruction is explicit) will simply see it repeated on the next turn until it complies.
64
77
 
65
78
  `maxMemorizeToken`, if not passed explicitly, is derived as `contextWindow * safeUsageRatio` (default ratio `0.5`) from the main provider's `getCapabilities()` — so it scales automatically with whatever model you plug in.
66
79
 
67
80
  ## Persisting and resuming state
68
81
 
69
- `getCurrentAgentStates()` returns exactly the shape expected by the `initData` constructor option — `memory`, `messagesFull`, `messagesCompact`, and all six token counters. Serialize it (it's plain JSON) after any `run()` call, and pass it back into a fresh `BaseAgent`/`SimpleAgent` to resume — same conversation, same memory, same token history. See the example in [Getting Started](./getting-started.md#recovering-an-agents-state).
82
+ `getCurrentAgentStates()` returns exactly the shape expected by the `initData` constructor option — `memory`, `messagesFull`, `messagesCompact`, the six main-loop token counters, and the two image-usage counters (`imageInputMissTokens`, `imageOutputTokens` — see [Token accounting](#token-accounting)). Serialize it (it's plain JSON) after any `run()` call, and pass it back into a fresh `BaseAgent`/`SimpleAgent` to resume — same conversation, same memory, same token history. See the example in [Getting Started](./getting-started.md#recovering-an-agents-state).
83
+
84
+ The two image counters are optional on `initData` — a snapshot taken before image-usage tracking existed still loads, with both defaulting to `0`.
70
85
 
71
86
  ## Token accounting
72
87
 
73
- Three read methods, all returning `{ total, inputHit, inputMiss, output }`:
88
+ Four read methods, all returning `{ total, inputHit, inputMiss, output }`:
89
+
90
+ - `getCurrentTotalTokens()` — main-loop tokens used since the last memory compaction.
91
+ - `getFullTotalTokens()` — main-loop tokens used across all *prior* compacted segments.
92
+ - `getImageTotalTokens()` — tokens used by every `ImageDescriber` call this agent has made (see [Providers](./providers.md#two-provider-roles-main--image)), tracked separately since a one-off image-description call has no conversation history to compact and so doesn't fit the current/full split.
93
+ - `getTotalTokens()` — the sum of all three (lifetime total for this agent instance, main loop and image calls combined).
74
94
 
75
- - `getCurrentTotalTokens()` — tokens used since the last memory compaction.
76
- - `getFullTotalTokens()` — tokens used across all *prior* compacted segments.
77
- - `getTotalTokens()` — the sum of both (lifetime total for this agent instance).
95
+ `inputHit`/`inputMiss` on the main-loop methods track cached vs. uncached input tokens, since the compacted-context-replay pattern means most of a long conversation's prefix is a cache hit on providers that support prompt caching — this is a heuristic `BaseAgent` computes itself from the growing/reset conversation history: whatever was `inputMiss` last turn rolls into `inputHit` this turn, and `inputMiss` becomes this turn's raw input token count.
78
96
 
79
- `inputHit`/`inputMiss` track cached vs. uncached input tokens, since the compacted-context-replay pattern means most of a long conversation's prefix is a cache hit on providers that support prompt caching.
97
+ `getImageTotalTokens()`'s `inputHit` is always `0` — each `ImageDescriber` call is a fresh, standalone chat with no prior turns to replay, so there's nothing for that heuristic to apply to. Every input token an image call reports counts as `inputMiss`.
80
98
 
81
99
  ## Instructions, skills, and memory in the system prompt
82
100
 
@@ -11,7 +11,7 @@ Flat index of every public export from `orbitx` (see `src/index.ts`), grouped by
11
11
  - Types: `ChatResponse`, `Message`, `StreamCallback`, `ToolSchema`, `ToolCallRequest`, `MessageContentPart`, `ProviderCapabilities`
12
12
  - `resolveThinkEffortLevel()`, `clampThinkEffort()` — the universal 0-1 `thinkEffort` → provider-native-level mapping helpers; see [Providers](./providers.md#think-effort)
13
13
  - Type: `ThinkEffortLevel`
14
- - `ImageDescriber` — used internally by `BaseAgent` to describe image tool output via the `image` provider role; exported for direct use if you want to describe an image outside the agent loop.
14
+ - `ImageDescriber`, type `ImageDescription` — used internally by `BaseAgent` to describe image tool output via the `image` provider role; exported for direct use if you want to describe an image outside the agent loop. `describe()` returns an `ImageDescription` (`{ description, inputTokens, outputTokens }`), not a bare string.
15
15
  - `toOpenAIFunctionTools()` — translates a `ToolSchema[]` into OpenAI's function-calling format; exported for building custom providers.
16
16
 
17
17
  ## Agents — see [Agents](./agents.md)
@@ -36,7 +36,7 @@ Built-in tool factories, grouped by domain (each domain also exports a `*Tools()
36
36
  | Todo | `TodoCreateListTool`, `TodoRemoveListTool`, `TodoGetListsTool`, `TodoGetListTool`, `TodoCreateTaskTool`, `TodoRemoveTaskTool`, `TodoCheckTaskTool`, `TodoTools`, `TodoInteraction`, types `TodoTask`, `TodoList`, `TodoEvent` |
37
37
  | Present | `PresentAddTool`, `PresentClearTool`, `PresentGetListTool`, `PresentTools`, `getPresentFolder()`, `PresentInteraction`, type `PresentEvent` |
38
38
  | Question/Answer | `QuestionAnswerTool`, `QuestionAnswerTools`, `QuestionAnswerInteraction`, type `QuestionAnswerEvent` |
39
- | Utility | `GetCurrentTimeTool`, `DelayTool`, `UtilTools` |
39
+ | Utility | `GetCurrentTimeTool`, `DelayTool`, `ReadImageTool`, `UtilTools` |
40
40
  | Multi-agent *(experimental)* | `AgentTools(availableAgents, options?)`, `AgentListTool`, `AgentHireTool`, `AgentPromptTool`, `AgentReportTool`, `AgentRegistry`, `AgentInteraction`, type `AgentInfo`, type `AgentEvent`, type `AgentToolsOptions` — see [Agents](./agents.md#multi-agent-workeragent-experimental) |
41
41
 
42
42
  ## Skills — see [Skills](./skills.md)
package/docs/providers.md CHANGED
@@ -79,12 +79,15 @@ import { DeepSeekProvider } from "orbitx";
79
79
 
80
80
  new DeepSeekProvider(apiKey: string, model = "deepseek-v4-flash", options?: {
81
81
  supportsTools?: boolean; // default true
82
- contextWindow?: number; // default 1_000_000 (deepseek-v4-flash / deepseek-v4-pro)
82
+ supportsImages?: boolean; // default: true only for deepseek-v4-flash-vision-exp
83
+ contextWindow?: number; // default 1_000_000 (deepseek-v4-flash / deepseek-v4-flash-vision-exp / deepseek-v4-pro)
83
84
  thinkEffort?: number; // 0-1, see "Think effort" above
84
85
  });
85
86
  ```
86
87
 
87
- Uses the `openai` SDK pointed at `https://api.deepseek.com` (DeepSeek's API is OpenAI-compatible). Always reports `supportsImages: false`.
88
+ Uses the `openai` SDK pointed at `https://api.deepseek.com` (DeepSeek's API is OpenAI-compatible). `getCapabilities().supportsImages` is `false` for every model except `deepseek-v4-flash-vision-exp`, which is `deepseek-v4-flash` plus native image input (same context window, same reasoning support) — pass `supportsImages: true` explicitly if a future model adds vision support before this SDK's allowlist is updated.
89
+
90
+ Token usage (`inputTokens`/`outputTokens`) is only accurate on the non-streaming path (`chat()` called without `streamCallback`), which reads `response.usage` directly. On the streaming path this provider deliberately does not set `stream_options: { include_usage: true }`, so DeepSeek never sends a usage-bearing chunk and both counts report as `0`. This matters most for `ImageDescriber`, which always calls `chat()` without a `streamCallback` (see [Token accounting](./agents.md#token-accounting)) — so image-description usage is captured correctly even though live agent streaming isn't.
88
91
 
89
92
  ### Anthropic
90
93
 
package/docs/tools.md CHANGED
@@ -34,6 +34,8 @@ new MCPTool({
34
34
 
35
35
  Tools are registered on an `MCPServer` and invoked through an `MCPClient`; `SimpleAgent` does this wiring for you from a flat `tools` array.
36
36
 
37
+ One tool schema the model sees isn't an `MCPTool` at all: `BaseAgent` always appends a built-in `compact_memory` tool to the schema list, handled internally rather than routed through the `MCPClient`. See [Memory compaction](./agents.md#memory-compaction).
38
+
37
39
  ## Built-in tool catalog
38
40
 
39
41
  Import a whole domain's tools at once (e.g. `FsTools()`), or import individual tools by name. Every domain also exports a `*Interaction` `EventEmitter` for subscribing to that domain's live progress events (e.g. `FsInteraction`, `BashInteraction`).
@@ -51,6 +53,8 @@ Import a whole domain's tools at once (e.g. `FsTools()`), or import individual t
51
53
  | `FsCreateDirTool` | Create a directory, including missing parents. |
52
54
  | `FsDeleteTool` | Permanently delete a file or directory (recursive optional). ⚠️ No undo. |
53
55
  | `FsMoveTool` | Move or rename a file or directory. |
56
+
57
+ `FsReadFileTool` and `FsEditFileTool` both use **1-indexed** line numbers (line 1 is the first line of the file) for their `offsetLine` input — matching the convention most models already default to (`cat -n`, most editors). This is deliberate: a line number reported by `fs-read-file`'s `startLine`/`endLine` can be passed straight into `fs-edit-file`'s `offsetLine` without an off-by-one conversion. `limitLine` on both is a plain count, not a line number, so it isn't affected by the indexing.
54
58
  | `FsStatTool` | Check whether a path exists and get its metadata (type, size, modified time). |
55
59
 
56
60
  ### Bash / processes — `BashTools()`
@@ -122,6 +126,7 @@ Backs the `PlannerSkill` (see [Skills](./skills.md)), but usable standalone.
122
126
  |---|---|
123
127
  | `GetCurrentTimeTool` | Get the current date/time (ISO string, unix timestamp, timezone). |
124
128
  | `DelayTool` | Wait a given number of milliseconds (max 60000ms) before continuing. |
129
+ | `ReadImageTool` | Read an image file off disk and hand it to the agent as an image tool-output — same handling as `BrowserScreenshotTool` (raw bytes to the model, or described by the image provider first, depending on config). |
125
130
 
126
131
  ### Multi-agent — `AgentTools(availableAgents, options?)` *(experimental)*
127
132
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orbitx",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "An AI SDK providing agents, swarms, planners, skills, MCP tools, workflows, and multi-provider AI integrations.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=mcp.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.test.d.ts","sourceRoot":"","sources":["../../src/tests/mcp.test.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export {};
2
- // TODO need to write new TEST files later
3
- //# sourceMappingURL=mcp.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../src/tests/mcp.test.ts"],"names":[],"mappings":";AAAA,0CAA0C"}