@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.
- package/dist/__tests__/cli-executable.test.d.ts +2 -0
- package/dist/__tests__/cli-executable.test.d.ts.map +1 -0
- package/dist/__tests__/cli-executable.test.js +83 -0
- package/dist/__tests__/cli-executable.test.js.map +1 -0
- package/dist/__tests__/cli-help.test.d.ts +2 -0
- package/dist/__tests__/cli-help.test.d.ts.map +1 -0
- package/dist/__tests__/cli-help.test.js +33 -0
- package/dist/__tests__/cli-help.test.js.map +1 -0
- package/dist/__tests__/daemon-socket.integration.test.d.ts +2 -0
- package/dist/__tests__/daemon-socket.integration.test.d.ts.map +1 -0
- package/dist/__tests__/daemon-socket.integration.test.js +152 -0
- package/dist/__tests__/daemon-socket.integration.test.js.map +1 -0
- package/dist/__tests__/daemon.test.d.ts +2 -0
- package/dist/__tests__/daemon.test.d.ts.map +1 -0
- package/dist/__tests__/daemon.test.js +978 -0
- package/dist/__tests__/daemon.test.js.map +1 -0
- package/dist/__tests__/generated-images.test.d.ts +2 -0
- package/dist/__tests__/generated-images.test.d.ts.map +1 -0
- package/dist/__tests__/generated-images.test.js +38 -0
- package/dist/__tests__/generated-images.test.js.map +1 -0
- package/dist/aiden-system-prompt.d.ts +6 -0
- package/dist/aiden-system-prompt.d.ts.map +1 -0
- package/dist/aiden-system-prompt.js +6 -0
- package/dist/aiden-system-prompt.js.map +1 -0
- package/dist/cli-executable.d.ts +65 -0
- package/dist/cli-executable.d.ts.map +1 -0
- package/dist/cli-executable.js +298 -0
- package/dist/cli-executable.js.map +1 -0
- package/dist/cli-help.d.ts +7 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +45 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/core-agent.d.ts +5 -1
- package/dist/core-agent.d.ts.map +1 -1
- package/dist/core-agent.js +101 -12
- package/dist/core-agent.js.map +1 -1
- package/dist/daemon.d.ts +46 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +836 -0
- package/dist/daemon.js.map +1 -0
- package/dist/generated-images.d.ts +3 -0
- package/dist/generated-images.d.ts.map +1 -0
- package/dist/generated-images.js +123 -0
- package/dist/generated-images.js.map +1 -0
- package/dist/index.cjs +65 -143
- package/dist/index.js +94 -42
- package/dist/index.js.map +1 -1
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +18 -3
- package/dist/sandbox.js.map +1 -1
- package/dist/updater.d.ts.map +1 -1
- package/dist/updater.js +0 -4
- package/dist/updater.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/web-presenter.d.ts +6 -2
- package/dist/web-presenter.d.ts.map +1 -1
- package/dist/web-presenter.js +20 -1
- package/dist/web-presenter.js.map +1 -1
- package/dist/ws-client.d.ts +35 -0
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +1 -0
- package/dist/ws-client.js.map +1 -1
- 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 @@
|
|
|
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:
|
|
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 =
|
|
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:
|
|
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 =
|
|
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. \`
|
|
4830
|
-
3. \`
|
|
4831
|
-
4. \`
|
|
4832
|
-
5. \`
|
|
4833
|
-
6. \`
|
|
4834
|
-
7. \`
|
|
4835
|
-
8. \`
|
|
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
|
|
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. \`
|
|
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
|
|
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
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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 } =
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
}
|