@aiden-ade/sandbox-agent 0.1.17 → 0.1.19

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 (66) hide show
  1. package/dist/__tests__/cli-executable.test.d.ts +2 -0
  2. package/dist/__tests__/cli-executable.test.d.ts.map +1 -0
  3. package/dist/__tests__/cli-executable.test.js +83 -0
  4. package/dist/__tests__/cli-executable.test.js.map +1 -0
  5. package/dist/__tests__/cli-help.test.d.ts +2 -0
  6. package/dist/__tests__/cli-help.test.d.ts.map +1 -0
  7. package/dist/__tests__/cli-help.test.js +33 -0
  8. package/dist/__tests__/cli-help.test.js.map +1 -0
  9. package/dist/__tests__/daemon-socket.integration.test.d.ts +2 -0
  10. package/dist/__tests__/daemon-socket.integration.test.d.ts.map +1 -0
  11. package/dist/__tests__/daemon-socket.integration.test.js +152 -0
  12. package/dist/__tests__/daemon-socket.integration.test.js.map +1 -0
  13. package/dist/__tests__/daemon.test.d.ts +2 -0
  14. package/dist/__tests__/daemon.test.d.ts.map +1 -0
  15. package/dist/__tests__/daemon.test.js +978 -0
  16. package/dist/__tests__/daemon.test.js.map +1 -0
  17. package/dist/__tests__/generated-images.test.d.ts +2 -0
  18. package/dist/__tests__/generated-images.test.d.ts.map +1 -0
  19. package/dist/__tests__/generated-images.test.js +38 -0
  20. package/dist/__tests__/generated-images.test.js.map +1 -0
  21. package/dist/aiden-system-prompt.d.ts +6 -0
  22. package/dist/aiden-system-prompt.d.ts.map +1 -0
  23. package/dist/aiden-system-prompt.js +6 -0
  24. package/dist/aiden-system-prompt.js.map +1 -0
  25. package/dist/cli-executable.d.ts +65 -0
  26. package/dist/cli-executable.d.ts.map +1 -0
  27. package/dist/cli-executable.js +298 -0
  28. package/dist/cli-executable.js.map +1 -0
  29. package/dist/cli-help.d.ts +7 -0
  30. package/dist/cli-help.d.ts.map +1 -0
  31. package/dist/cli-help.js +45 -0
  32. package/dist/cli-help.js.map +1 -0
  33. package/dist/core-agent.d.ts +5 -1
  34. package/dist/core-agent.d.ts.map +1 -1
  35. package/dist/core-agent.js +101 -12
  36. package/dist/core-agent.js.map +1 -1
  37. package/dist/daemon.d.ts +46 -0
  38. package/dist/daemon.d.ts.map +1 -0
  39. package/dist/daemon.js +836 -0
  40. package/dist/daemon.js.map +1 -0
  41. package/dist/generated-images.d.ts +3 -0
  42. package/dist/generated-images.d.ts.map +1 -0
  43. package/dist/generated-images.js +123 -0
  44. package/dist/generated-images.js.map +1 -0
  45. package/dist/index.cjs +65 -143
  46. package/dist/index.js +94 -42
  47. package/dist/index.js.map +1 -1
  48. package/dist/sandbox.d.ts.map +1 -1
  49. package/dist/sandbox.js +18 -3
  50. package/dist/sandbox.js.map +1 -1
  51. package/dist/updater.d.ts.map +1 -1
  52. package/dist/updater.js +0 -4
  53. package/dist/updater.js.map +1 -1
  54. package/dist/version.d.ts +1 -1
  55. package/dist/version.d.ts.map +1 -1
  56. package/dist/version.js +1 -1
  57. package/dist/version.js.map +1 -1
  58. package/dist/web-presenter.d.ts +6 -2
  59. package/dist/web-presenter.d.ts.map +1 -1
  60. package/dist/web-presenter.js +20 -1
  61. package/dist/web-presenter.js.map +1 -1
  62. package/dist/ws-client.d.ts +35 -0
  63. package/dist/ws-client.d.ts.map +1 -1
  64. package/dist/ws-client.js +1 -0
  65. package/dist/ws-client.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GeneratedImagePayload } from "@aiden/shared/agent";
2
+ export declare function extractGeneratedImagesFromToolResult(toolId: string, content: string, cwd?: string): GeneratedImagePayload[];
3
+ //# sourceMappingURL=generated-images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-images.d.ts","sourceRoot":"","sources":["../src/generated-images.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AA2FjE,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,qBAAqB,EAAE,CAoCzB"}
@@ -0,0 +1,123 @@
1
+ import { randomUUID, createHash } from "node:crypto";
2
+ import { existsSync, readFileSync, statSync } from "node:fs";
3
+ import { basename, extname, isAbsolute, join } from "node:path";
4
+ const IMAGE_MIME_BY_EXT = {
5
+ ".gif": "image/gif",
6
+ ".jpeg": "image/jpeg",
7
+ ".jpg": "image/jpeg",
8
+ ".png": "image/png",
9
+ ".webp": "image/webp",
10
+ };
11
+ const MAX_GENERATED_IMAGE_BYTES = 20 * 1024 * 1024;
12
+ function collectStringValues(value, out) {
13
+ if (typeof value === "string") {
14
+ out.push(value);
15
+ return;
16
+ }
17
+ if (Array.isArray(value)) {
18
+ for (const item of value)
19
+ collectStringValues(item, out);
20
+ return;
21
+ }
22
+ if (!value || typeof value !== "object")
23
+ return;
24
+ for (const entry of Object.values(value)) {
25
+ collectStringValues(entry, out);
26
+ }
27
+ }
28
+ function candidateStrings(content) {
29
+ const values = [content];
30
+ try {
31
+ collectStringValues(JSON.parse(content), values);
32
+ }
33
+ catch {
34
+ // Plain text tool output.
35
+ }
36
+ return values;
37
+ }
38
+ function extractPathCandidates(content) {
39
+ const paths = new Set();
40
+ const imagePathPattern = /(?:file:\/\/)?(?:~|\.{1,2}|\/)?[^\s"'`)\]}<>]+?\.(?:png|jpe?g|gif|webp)\b/gi;
41
+ for (const value of candidateStrings(content)) {
42
+ for (const match of value.matchAll(imagePathPattern)) {
43
+ paths.add(match[0]);
44
+ }
45
+ }
46
+ return [...paths];
47
+ }
48
+ function normalizePath(candidate, cwd) {
49
+ let path = candidate.trim().replace(/^file:\/\//, "");
50
+ try {
51
+ path = decodeURI(path);
52
+ }
53
+ catch {
54
+ // Keep original if it is not URI-encoded.
55
+ }
56
+ if (path.startsWith("~/"))
57
+ return null;
58
+ if (isAbsolute(path))
59
+ return path;
60
+ return cwd ? join(cwd, path) : null;
61
+ }
62
+ function readImageDimensions(buffer, mimeType) {
63
+ if (mimeType === "image/png" && buffer.length >= 24 && buffer.toString("ascii", 1, 4) === "PNG") {
64
+ return { width: buffer.readUInt32BE(16), height: buffer.readUInt32BE(20) };
65
+ }
66
+ if (mimeType === "image/gif" && buffer.length >= 10 && buffer.toString("ascii", 0, 3) === "GIF") {
67
+ return { width: buffer.readUInt16LE(6), height: buffer.readUInt16LE(8) };
68
+ }
69
+ if (mimeType === "image/jpeg" && buffer.length > 4) {
70
+ let offset = 2;
71
+ while (offset + 9 < buffer.length) {
72
+ if (buffer[offset] !== 0xff)
73
+ break;
74
+ const marker = buffer[offset + 1];
75
+ const length = buffer.readUInt16BE(offset + 2);
76
+ if (length < 2)
77
+ break;
78
+ if (marker >= 0xc0 && marker <= 0xcf && ![0xc4, 0xc8, 0xcc].includes(marker)) {
79
+ return {
80
+ width: buffer.readUInt16BE(offset + 7),
81
+ height: buffer.readUInt16BE(offset + 5),
82
+ };
83
+ }
84
+ offset += 2 + length;
85
+ }
86
+ }
87
+ return { width: null, height: null };
88
+ }
89
+ export function extractGeneratedImagesFromToolResult(toolId, content, cwd) {
90
+ const images = [];
91
+ const seen = new Set();
92
+ for (const candidate of extractPathCandidates(content)) {
93
+ const path = normalizePath(candidate, cwd);
94
+ if (!path || seen.has(path) || !existsSync(path))
95
+ continue;
96
+ seen.add(path);
97
+ const ext = extname(path).toLowerCase();
98
+ const mimeType = IMAGE_MIME_BY_EXT[ext];
99
+ if (!mimeType)
100
+ continue;
101
+ const stat = statSync(path);
102
+ if (!stat.isFile() || stat.size <= 0 || stat.size > MAX_GENERATED_IMAGE_BYTES)
103
+ continue;
104
+ const buffer = readFileSync(path);
105
+ const { width, height } = readImageDimensions(buffer, mimeType);
106
+ images.push({
107
+ type: "generated_image",
108
+ id: randomUUID(),
109
+ filename: basename(path),
110
+ mimeType,
111
+ size: buffer.length,
112
+ width,
113
+ height,
114
+ data: buffer.toString("base64"),
115
+ sourcePath: path,
116
+ sourceHash: createHash("sha256").update(buffer).digest("hex"),
117
+ toolId,
118
+ ts: Date.now(),
119
+ });
120
+ }
121
+ return images;
122
+ }
123
+ //# sourceMappingURL=generated-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-images.js","sourceRoot":"","sources":["../src/generated-images.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -3404,7 +3404,7 @@ var require_websocket = __commonJS({
3404
3404
  var http2 = require("http");
3405
3405
  var net = require("net");
3406
3406
  var tls = require("tls");
3407
- var { randomBytes: randomBytes2, createHash: createHash4 } = require("crypto");
3407
+ var { randomBytes: randomBytes2, createHash: createHash3 } = require("crypto");
3408
3408
  var { Duplex, Readable } = require("stream");
3409
3409
  var { URL } = require("url");
3410
3410
  var PerMessageDeflate = require_permessage_deflate();
@@ -4061,7 +4061,7 @@ var require_websocket = __commonJS({
4061
4061
  abortHandshake(websocket, socket, "Invalid Upgrade header");
4062
4062
  return;
4063
4063
  }
4064
- const digest = createHash4("sha1").update(key + GUID).digest("base64");
4064
+ const digest = createHash3("sha1").update(key + GUID).digest("base64");
4065
4065
  if (res.headers["sec-websocket-accept"] !== digest) {
4066
4066
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
4067
4067
  return;
@@ -4428,7 +4428,7 @@ var require_websocket_server = __commonJS({
4428
4428
  var EventEmitter = require("events");
4429
4429
  var http2 = require("http");
4430
4430
  var { Duplex } = require("stream");
4431
- var { createHash: createHash4 } = require("crypto");
4431
+ var { createHash: createHash3 } = require("crypto");
4432
4432
  var extension = require_extension();
4433
4433
  var PerMessageDeflate = require_permessage_deflate();
4434
4434
  var subprotocol = require_subprotocol();
@@ -4725,7 +4725,7 @@ var require_websocket_server = __commonJS({
4725
4725
  );
4726
4726
  }
4727
4727
  if (this._state > RUNNING) return abortHandshake(socket, 503);
4728
- const digest = createHash4("sha1").update(key + GUID).digest("base64");
4728
+ const digest = createHash3("sha1").update(key + GUID).digest("base64");
4729
4729
  const headers = [
4730
4730
  "HTTP/1.1 101 Switching Protocols",
4731
4731
  "Upgrade: websocket",
@@ -4826,13 +4826,16 @@ You may inspect, edit, run commands, create artifacts, and use MCP tools when th
4826
4826
 
4827
4827
  Use these tools, in roughly this order of frequency:
4828
4828
  1. \`delegate_task_session\` \u2014 route work to a specialist, reusing active matching workers by default
4829
- 2. \`get_task_memory\` / \`update_task_memory\` \u2014 keep the task-level working memory current
4830
- 3. \`list_subtasks\` / \`create_subtask\` / \`update_subtask\` \u2014 keep task breakdown current
4831
- 4. \`get_session_context\` \u2014 check what a worker accomplished
4832
- 5. \`update_task\` \u2014 keep status, priority, labels current
4833
- 6. \`send_session_message\` / \`start_task_session\` \u2014 continue a specific session or force a new session only when needed
4834
- 7. \`list_sessions\` / \`search\` / \`Read\` / \`Glob\` / \`Grep\` \u2014 situational awareness
4835
- 8. \`add_task_comment\` / \`create_plan\` \u2014 document decisions and plans
4829
+ 2. \`list_task_events\` / \`add_task_event\` \u2014 use only for high-signal human-visible events: durable decisions, learnings, checkpoints, and outcomes that change future work
4830
+ 3. \`list_agent_memory\` / \`add_agent_memory\` \u2014 use only when synthesized context will help future agents; do not store raw files inspected, commands run, or tool outputs
4831
+ 4. \`list_subtasks\` / \`create_subtask\` / \`update_subtask\` \u2014 keep task breakdown current
4832
+ 5. \`get_session_context\` \u2014 check what a worker accomplished
4833
+ 6. \`update_task\` \u2014 keep status, priority, labels current
4834
+ 7. \`send_session_message\` / \`start_task_session\` \u2014 continue a specific session or force a new session only when needed
4835
+ 8. \`list_sessions\` / \`search\` / \`Read\` / \`Glob\` / \`Grep\` \u2014 situational awareness
4836
+ 9. \`get_task_memory\` / \`update_task_memory\` \u2014 compatibility memory tools for older task summaries and session outcomes
4837
+ 10. \`create_plan\` \u2014 document implementation plans and durable specs as artifacts
4838
+ 11. \`add_task_comment\` \u2014 human-facing collaboration: answer questions, post explicit status updates, escalate blockers, or leave comments the user asked you to post. Do not use comments as running notes or memory.
4836
4839
 
4837
4840
  ## How to scale work
4838
4841
 
@@ -4867,7 +4870,7 @@ Write it like a senior engineer's handoff note, not a vague request.
4867
4870
  1. Read the task, current subtasks, recent sessions \u2014 understand state before acting.
4868
4871
  2. Decide the next concrete unit of work. Break it down when scope is wide; keep subtasks current.
4869
4872
  3. **Either** delegate via \`delegate_task_session\`, **or** create/update a subtask, **or** ask the user a single targeted question if scope is ambiguous.
4870
- 4. After delegation, track results via \`get_session_context\`, persist summaries/outcomes via \`update_task_memory\`, integrate status, decide the next move.
4873
+ 4. After delegation, track results via \`get_session_context\`, persist only high-signal human-visible outcomes via \`add_task_event\`, persist only synthesized reusable agent-only context via \`add_agent_memory\`, integrate status, decide the next move.
4871
4874
 
4872
4875
  You are coordination-first, not read-only. Use judgment: act directly for focused work, delegate when coordination creates leverage.`;
4873
4876
  var PM_PROMPT = `## You are the PM Agent
@@ -4894,7 +4897,9 @@ Use these tools, in roughly this order of frequency:
4894
4897
  3. \`start_task_session\` \u2014 delegate to a specialist once scope is defined
4895
4898
  4. \`get_session_context\` / \`list_sessions\` \u2014 track progress
4896
4899
  5. \`update_task\` \u2014 keep status and priority current
4897
- 6. \`add_task_comment\` \u2014 surface decisions and risks to the user
4900
+ 6. \`list_task_events\` / \`add_task_event\` \u2014 persist only high-signal human-readable decisions, learnings, checkpoints, and outcomes in the Agent Log
4901
+ 7. \`list_agent_memory\` / \`add_agent_memory\` \u2014 persist only synthesized agent-only context that future agents need
4902
+ 8. \`add_task_comment\` \u2014 human-facing collaboration: answer questions, post explicit status updates, escalate blockers, or leave comments the user asked you to post. Do not use comments as running notes or memory.
4898
4903
 
4899
4904
  ## How to think like a PM
4900
4905
 
@@ -5234,11 +5239,10 @@ function getAidenAgentPrompt(agentId) {
5234
5239
  var SESSION_RESUME_FAILED_MESSAGE = "Session resume failed. The previous session may have expired or is no longer available. Please start a new session.";
5235
5240
 
5236
5241
  // ../agent-core/dist/index.js
5237
- var import_crypto = require("crypto");
5238
5242
  var import_fs = require("fs");
5239
5243
  var import_os = require("os");
5240
5244
  var import_path = require("path");
5241
- var import_crypto2 = require("crypto");
5245
+ var import_crypto = require("crypto");
5242
5246
  var import_fs2 = require("fs");
5243
5247
  var import_fs3 = require("fs");
5244
5248
  var import_os2 = require("os");
@@ -5409,7 +5413,6 @@ function normalizeCodexMcpToolResult(output) {
5409
5413
  }
5410
5414
  return raw;
5411
5415
  }
5412
- var MAX_INLINE_GENERATED_IMAGE_BYTES = 20 * 1024 * 1024;
5413
5416
  function findCodexSessionLog(runtimeSessionId, codexHome) {
5414
5417
  if (!runtimeSessionId || !(0, import_fs.existsSync)(codexHome)) return null;
5415
5418
  const root = (0, import_path.join)(codexHome, "sessions");
@@ -5440,106 +5443,14 @@ function findCodexSessionLog(runtimeSessionId, codexHome) {
5440
5443
  matches.sort((a, b) => b.mtimeMs - a.mtimeMs);
5441
5444
  return matches[0]?.path ?? null;
5442
5445
  }
5443
- function inferImageMimeType(buffer) {
5444
- if (buffer.length >= 8 && buffer.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]))) {
5445
- return "image/png";
5446
- }
5447
- if (buffer.length >= 3 && buffer[0] === 255 && buffer[1] === 216 && buffer[2] === 255) {
5448
- return "image/jpeg";
5449
- }
5450
- if (buffer.length >= 6 && (buffer.toString("ascii", 0, 6) === "GIF87a" || buffer.toString("ascii", 0, 6) === "GIF89a")) {
5451
- return "image/gif";
5452
- }
5453
- if (buffer.length >= 12 && buffer.toString("ascii", 0, 4) === "RIFF" && buffer.toString("ascii", 8, 12) === "WEBP") {
5454
- return "image/webp";
5455
- }
5456
- return null;
5457
- }
5458
- function extensionForMimeType(mimeType) {
5459
- switch (mimeType) {
5460
- case "image/jpeg":
5461
- return "jpg";
5462
- case "image/gif":
5463
- return "gif";
5464
- case "image/webp":
5465
- return "webp";
5466
- case "image/png":
5467
- default:
5468
- return "png";
5469
- }
5470
- }
5471
- function readImageDimensions(buffer, mimeType) {
5472
- if (mimeType === "image/png" && buffer.length >= 24) {
5473
- return { width: buffer.readUInt32BE(16), height: buffer.readUInt32BE(20) };
5474
- }
5475
- if (mimeType === "image/gif" && buffer.length >= 10) {
5476
- return { width: buffer.readUInt16LE(6), height: buffer.readUInt16LE(8) };
5477
- }
5478
- if (mimeType === "image/jpeg" && buffer.length > 4) {
5479
- let offset = 2;
5480
- while (offset + 9 < buffer.length) {
5481
- if (buffer[offset] !== 255) break;
5482
- const marker = buffer[offset + 1];
5483
- const length = buffer.readUInt16BE(offset + 2);
5484
- if (length < 2) break;
5485
- if (marker >= 192 && marker <= 207 && ![196, 200, 204].includes(marker)) {
5486
- return {
5487
- width: buffer.readUInt16BE(offset + 7),
5488
- height: buffer.readUInt16BE(offset + 5)
5489
- };
5490
- }
5491
- offset += 2 + length;
5492
- }
5493
- }
5494
- return { width: null, height: null };
5495
- }
5496
- function buildGeneratedImageFromCodexPayload(payload) {
5497
- const data = typeof payload.result === "string" ? payload.result : "";
5498
- if (!data) return null;
5499
- const buffer = Buffer.from(data, "base64");
5500
- if (buffer.length <= 0 || buffer.length > MAX_INLINE_GENERATED_IMAGE_BYTES) return null;
5501
- const mimeType = inferImageMimeType(buffer);
5502
- if (!mimeType) return null;
5503
- const callId = typeof payload.call_id === "string" && payload.call_id ? payload.call_id : void 0;
5504
- const imageId = (0, import_crypto.randomUUID)();
5505
- const { width, height } = readImageDimensions(buffer, mimeType);
5506
- return {
5507
- type: "generated_image",
5508
- id: imageId,
5509
- filename: `${callId ?? imageId}.${extensionForMimeType(mimeType)}`,
5510
- mimeType,
5511
- size: buffer.length,
5512
- width,
5513
- height,
5514
- data: buffer.toString("base64"),
5515
- sourceHash: (0, import_crypto.createHash)("sha256").update(buffer).digest("hex"),
5516
- ...callId ? { toolId: callId } : {},
5517
- ts: Date.now()
5518
- };
5519
- }
5520
- function latestUserMessageLineIndex(lines) {
5521
- let latestIndex = -1;
5522
- for (let index = 0; index < lines.length; index += 1) {
5523
- const line = lines[index];
5524
- if (!line) continue;
5525
- const entry = parseJsonObject(line);
5526
- const payload = entry && typeof entry.payload === "object" && entry.payload !== null ? entry.payload : null;
5527
- if (payload?.type === "message" && payload.role === "user") {
5528
- latestIndex = index;
5529
- }
5530
- }
5531
- return latestIndex;
5532
- }
5533
5446
  async function replayCodexMcpToolEventsFromSessionLog(context, state) {
5534
5447
  const runtimeSessionId = state.runtimeSessionId;
5535
5448
  if (!runtimeSessionId) return;
5536
5449
  const codexHome = context.env.CODEX_HOME || process.env.CODEX_HOME || (0, import_path.join)((0, import_os.homedir)(), ".codex");
5537
5450
  const logPath = findCodexSessionLog(runtimeSessionId, codexHome);
5538
5451
  if (!logPath) return;
5539
- const allLines = (0, import_fs.readFileSync)(logPath, "utf8").split(/\r?\n/).filter(Boolean);
5540
- const latestUserLineIndex = latestUserMessageLineIndex(allLines);
5541
- const lines = latestUserLineIndex >= 0 ? allLines.slice(latestUserLineIndex + 1) : allLines;
5542
5452
  const emittedToolIds = /* @__PURE__ */ new Set();
5453
+ const lines = (0, import_fs.readFileSync)(logPath, "utf8").split(/\r?\n/).filter(Boolean);
5543
5454
  for (const line of lines) {
5544
5455
  const entry = parseJsonObject(line);
5545
5456
  const payload = entry && typeof entry.payload === "object" && entry.payload !== null ? entry.payload : null;
@@ -5559,27 +5470,20 @@ async function replayCodexMcpToolEventsFromSessionLog(context, state) {
5559
5470
  if (!callId) continue;
5560
5471
  context.presenter.onToolUse("tool_search", payload.arguments ?? {}, callId);
5561
5472
  emittedToolIds.add(callId);
5562
- continue;
5563
- }
5564
- if (payload.type === "image_generation_end") {
5565
- const image = buildGeneratedImageFromCodexPayload(payload);
5566
- if (image) await context.presenter.onGeneratedImage?.(image);
5567
5473
  }
5568
5474
  }
5569
- if (emittedToolIds.size > 0) {
5570
- for (const line of lines) {
5571
- const entry = parseJsonObject(line);
5572
- const payload = entry && typeof entry.payload === "object" && entry.payload !== null ? entry.payload : null;
5573
- if (!payload || payload.type !== "function_call_output" && payload.type !== "tool_search_output")
5574
- continue;
5575
- const callId = typeof payload.call_id === "string" ? payload.call_id : "";
5576
- if (!emittedToolIds.has(callId)) continue;
5577
- try {
5578
- const result = payload.type === "tool_search_output" ? JSON.stringify(payload.tools ?? [], null, 2) : normalizeCodexMcpToolResult(payload.output);
5579
- context.presenter.onToolResult?.(callId, result);
5580
- } catch {
5581
- context.presenter.onToolResult?.(callId, String(payload.output ?? ""));
5582
- }
5475
+ if (emittedToolIds.size === 0) return;
5476
+ for (const line of lines) {
5477
+ const entry = parseJsonObject(line);
5478
+ const payload = entry && typeof entry.payload === "object" && entry.payload !== null ? entry.payload : null;
5479
+ if (!payload || payload.type !== "function_call_output" && payload.type !== "tool_search_output") continue;
5480
+ const callId = typeof payload.call_id === "string" ? payload.call_id : "";
5481
+ if (!emittedToolIds.has(callId)) continue;
5482
+ try {
5483
+ const result = payload.type === "tool_search_output" ? JSON.stringify(payload.tools ?? [], null, 2) : normalizeCodexMcpToolResult(payload.output);
5484
+ context.presenter.onToolResult?.(callId, result);
5485
+ } catch {
5486
+ context.presenter.onToolResult?.(callId, String(payload.output ?? ""));
5583
5487
  }
5584
5488
  }
5585
5489
  }
@@ -5589,7 +5493,7 @@ function kimiSessionId(cwd) {
5589
5493
  resolved = (0, import_fs2.realpathSync)(cwd);
5590
5494
  } catch {
5591
5495
  }
5592
- return (0, import_crypto2.createHash)("md5").update(resolved).digest("hex");
5496
+ return (0, import_crypto.createHash)("md5").update(resolved).digest("hex");
5593
5497
  }
5594
5498
  function parseKimiStructuredLine(line, context, state) {
5595
5499
  const presenter = context.presenter;
@@ -6271,7 +6175,7 @@ function resolveKimiCliModelArg(model) {
6271
6175
  if (trimmed.startsWith("claude-")) return void 0;
6272
6176
  return trimmed;
6273
6177
  }
6274
- function createKimiCliBackend(command = "kimi-cli", defaultArgs = []) {
6178
+ function createKimiCliBackend(command = "kimi", defaultArgs = []) {
6275
6179
  return {
6276
6180
  kind: "kimi_cli",
6277
6181
  supportTier: "structured",
@@ -7097,12 +7001,7 @@ function createCodexRuntimeBackend(command = "codex", defaultArgs = []) {
7097
7001
  const resumeId = ctx.config.runtimeSessionId?.trim() || ctx.config.providerSessionId?.trim();
7098
7002
  const modelArgs = ctx.config.selectedModel?.trim() ? ["--model", ctx.config.selectedModel.trim()] : [];
7099
7003
  const effortArgs = buildCodexEffortArgs(ctx.config.selectedEffortLevel);
7100
- const permissionArgs = [
7101
- "--ask-for-approval",
7102
- "never",
7103
- "--sandbox",
7104
- "danger-full-access"
7105
- ];
7004
+ const permissionArgs = ["--dangerously-bypass-approvals-and-sandbox"];
7106
7005
  const imageArgs = imagePaths.flatMap((p) => ["--image", p]);
7107
7006
  const baseArgs = resumeId ? [...permissionArgs, "exec", "resume", "--json", "--skip-git-repo-check", ...modelArgs, ...effortArgs, ...imageArgs, resumeId, "-"] : [...permissionArgs, "exec", "--json", "--skip-git-repo-check", ...modelArgs, ...effortArgs, ...imageArgs, "-"];
7108
7007
  return [...baseArgs, ...defaultArgs];
@@ -7425,7 +7324,7 @@ Prefer relative paths and keep your work scoped to this project.`
7425
7324
  const promptText = this.buildPromptText(runtimeConfig);
7426
7325
  const runtimeCommand = runtimeConfig.runtimeCommand || this.runtime.runtimeCommand;
7427
7326
  const runtimeArgs = runtimeConfig.runtimeArgs || this.runtime.runtimeArgs || [];
7428
- const backend = backendKind === "claude_cli" ? createClaudeCliBackend(runtimeCommand || "claude", runtimeArgs) : backendKind === "codex_app_server" ? createCodexRuntimeBackend(runtimeCommand || "codex", runtimeArgs) : backendKind === "copilot_cli" ? createCopilotCliBackend(runtimeCommand || "copilot", runtimeArgs) : backendKind === "cursor_agent_cli" ? createCursorAgentCliBackend(runtimeCommand || "cursor-agent", runtimeArgs) : backendKind === "gemini_cli" ? createGeminiCliBackend(runtimeCommand || "gemini", runtimeArgs) : backendKind === "droid_cli" ? createDroidCliBackend(runtimeCommand || "droid", runtimeArgs) : backendKind === "opencode_cli" ? createOpencodeCliBackend(runtimeCommand || "opencode", runtimeArgs) : backendKind === "kimi_cli" ? createKimiCliBackend(runtimeCommand || "kimi-cli", runtimeArgs) : backendKind === "supatest_cli" ? createSupatestCliBackend(runtimeCommand || "supatest", runtimeArgs) : createGenericCliPassthroughBackend(runtimeCommand || "generic-cli", runtimeArgs);
7327
+ const backend = backendKind === "claude_cli" ? createClaudeCliBackend(runtimeCommand || "claude", runtimeArgs) : backendKind === "codex_app_server" ? createCodexRuntimeBackend(runtimeCommand || "codex", runtimeArgs) : backendKind === "copilot_cli" ? createCopilotCliBackend(runtimeCommand || "copilot", runtimeArgs) : backendKind === "cursor_agent_cli" ? createCursorAgentCliBackend(runtimeCommand || "cursor-agent", runtimeArgs) : backendKind === "gemini_cli" ? createGeminiCliBackend(runtimeCommand || "gemini", runtimeArgs) : backendKind === "droid_cli" ? createDroidCliBackend(runtimeCommand || "droid", runtimeArgs) : backendKind === "opencode_cli" ? createOpencodeCliBackend(runtimeCommand || "opencode", runtimeArgs) : backendKind === "kimi_cli" ? createKimiCliBackend(runtimeCommand || "kimi", runtimeArgs) : backendKind === "supatest_cli" ? createSupatestCliBackend(runtimeCommand || "supatest", runtimeArgs) : createGenericCliPassthroughBackend(runtimeCommand || "generic-cli", runtimeArgs);
7429
7328
  let lastResult = null;
7430
7329
  for (let attempt = 0; attempt <= _BaseMachineAgent.MAX_RETRIES; attempt++) {
7431
7330
  if (this.abortController?.signal.aborted) break;
@@ -8088,6 +7987,22 @@ var IMAGE_MIME_BY_EXT = {
8088
7987
  ".webp": "image/webp"
8089
7988
  };
8090
7989
  var MAX_GENERATED_IMAGE_BYTES = 20 * 1024 * 1024;
7990
+ function isGeneratedImageToolName(toolName) {
7991
+ if (!toolName) return false;
7992
+ const normalized = toolName.toLowerCase().replace(/[^a-z0-9]+/g, "_");
7993
+ return [
7994
+ "image_generation",
7995
+ "image_gen",
7996
+ "imagegen",
7997
+ "generate_image",
7998
+ "edit_image",
7999
+ "text_to_image",
8000
+ "images_generate"
8001
+ ].some((token) => normalized.includes(token));
8002
+ }
8003
+ function shouldExtractGeneratedImagesFromToolResult(toolName) {
8004
+ return isGeneratedImageToolName(toolName);
8005
+ }
8091
8006
  function collectStringValues(value2, out) {
8092
8007
  if (typeof value2 === "string") {
8093
8008
  out.push(value2);
@@ -8130,7 +8045,7 @@ function normalizePath(candidate, cwd) {
8130
8045
  if ((0, import_node_path2.isAbsolute)(path)) return path;
8131
8046
  return cwd ? (0, import_node_path2.join)(cwd, path) : null;
8132
8047
  }
8133
- function readImageDimensions2(buffer, mimeType) {
8048
+ function readImageDimensions(buffer, mimeType) {
8134
8049
  if (mimeType === "image/png" && buffer.length >= 24 && buffer.toString("ascii", 1, 4) === "PNG") {
8135
8050
  return { width: buffer.readUInt32BE(16), height: buffer.readUInt32BE(20) };
8136
8051
  }
@@ -8155,7 +8070,8 @@ function readImageDimensions2(buffer, mimeType) {
8155
8070
  }
8156
8071
  return { width: null, height: null };
8157
8072
  }
8158
- function extractGeneratedImagesFromToolResult(toolId, content, cwd) {
8073
+ function extractGeneratedImagesFromToolResult(toolId, content, cwd, toolName) {
8074
+ if (!shouldExtractGeneratedImagesFromToolResult(toolName)) return [];
8159
8075
  const images = [];
8160
8076
  const seen = /* @__PURE__ */ new Set();
8161
8077
  for (const candidate of extractPathCandidates(content)) {
@@ -8168,7 +8084,7 @@ function extractGeneratedImagesFromToolResult(toolId, content, cwd) {
8168
8084
  const stat = (0, import_node_fs2.statSync)(path);
8169
8085
  if (!stat.isFile() || stat.size <= 0 || stat.size > MAX_GENERATED_IMAGE_BYTES) continue;
8170
8086
  const buffer = (0, import_node_fs2.readFileSync)(path);
8171
- const { width, height } = readImageDimensions2(buffer, mimeType);
8087
+ const { width, height } = readImageDimensions(buffer, mimeType);
8172
8088
  images.push({
8173
8089
  type: "generated_image",
8174
8090
  id: (0, import_node_crypto.randomUUID)(),
@@ -8197,6 +8113,7 @@ var WebPresenter = class {
8197
8113
  wsClient;
8198
8114
  conversationId;
8199
8115
  emittedGeneratedImageKeys = /* @__PURE__ */ new Set();
8116
+ toolNamesById = /* @__PURE__ */ new Map();
8200
8117
  suppressSessionLifecycle = false;
8201
8118
  setSuppressSessionLifecycle(suppress) {
8202
8119
  this.suppressSessionLifecycle = suppress;
@@ -8214,6 +8131,7 @@ var WebPresenter = class {
8214
8131
  this.wsClient.emitEvent({ type: "thinking", text, ts: Date.now() });
8215
8132
  }
8216
8133
  onToolUse(tool, input, toolId) {
8134
+ this.toolNamesById.set(toolId, tool);
8217
8135
  this.wsClient.emitEvent({ type: "tool_use", id: toolId, name: tool, input, ts: Date.now() });
8218
8136
  }
8219
8137
  onToolResult(toolId, content, isError) {
@@ -8225,7 +8143,8 @@ var WebPresenter = class {
8225
8143
  ...isError ? { is_error: true } : {}
8226
8144
  });
8227
8145
  if (isError) return;
8228
- for (const image of extractGeneratedImagesFromToolResult(toolId, content, this.cwd)) {
8146
+ const toolName = this.toolNamesById.get(toolId);
8147
+ for (const image of extractGeneratedImagesFromToolResult(toolId, content, this.cwd, toolName)) {
8229
8148
  this.emitGeneratedImage(image);
8230
8149
  }
8231
8150
  }
@@ -11940,7 +11859,7 @@ var WSClient = class {
11940
11859
  };
11941
11860
 
11942
11861
  // src/version.ts
11943
- var AGENT_VERSION = "0.1.17";
11862
+ var AGENT_VERSION = "0.1.19";
11944
11863
 
11945
11864
  // src/sandbox.ts
11946
11865
  async function runSandbox(config) {
@@ -12574,6 +12493,7 @@ var RuntimePresenter = class {
12574
12493
  this.cwd = cwd;
12575
12494
  }
12576
12495
  emittedGeneratedImageKeys = /* @__PURE__ */ new Set();
12496
+ toolNamesById = /* @__PURE__ */ new Map();
12577
12497
  emitEvent(event) {
12578
12498
  this.socket.emit("agent.event", {
12579
12499
  conversationId: this.conversationId,
@@ -12594,6 +12514,7 @@ var RuntimePresenter = class {
12594
12514
  this.emitEvent({ type: "thinking", text, ts: Date.now() });
12595
12515
  }
12596
12516
  onToolUse(tool, input, toolId) {
12517
+ this.toolNamesById.set(toolId, tool);
12597
12518
  this.emitEvent({ type: "tool_use", id: toolId, name: tool, input, ts: Date.now() });
12598
12519
  }
12599
12520
  onToolResult(toolId, content, isError) {
@@ -12605,7 +12526,8 @@ var RuntimePresenter = class {
12605
12526
  ...isError ? { is_error: true } : {}
12606
12527
  });
12607
12528
  if (isError) return;
12608
- for (const image of extractGeneratedImagesFromToolResult(toolId, content, this.cwd)) {
12529
+ const toolName = this.toolNamesById.get(toolId);
12530
+ for (const image of extractGeneratedImagesFromToolResult(toolId, content, this.cwd, toolName)) {
12609
12531
  this.emitGeneratedImage(image);
12610
12532
  }
12611
12533
  }