@aiden-ade/sandbox-agent 0.1.23 → 0.1.25

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 (77) hide show
  1. package/dist/core-agent.d.ts +2 -6
  2. package/dist/core-agent.d.ts.map +1 -1
  3. package/dist/core-agent.js +21 -140
  4. package/dist/core-agent.js.map +1 -1
  5. package/dist/index.cjs +99 -14
  6. package/dist/index.d.ts +0 -4
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +42 -107
  9. package/dist/index.js.map +1 -1
  10. package/dist/sandbox.d.ts +0 -6
  11. package/dist/sandbox.d.ts.map +1 -1
  12. package/dist/sandbox.js +10 -40
  13. package/dist/sandbox.js.map +1 -1
  14. package/dist/updater.d.ts.map +1 -1
  15. package/dist/updater.js +4 -0
  16. package/dist/updater.js.map +1 -1
  17. package/dist/version.d.ts +1 -1
  18. package/dist/version.d.ts.map +1 -1
  19. package/dist/version.js +1 -1
  20. package/dist/version.js.map +1 -1
  21. package/dist/web-presenter.d.ts +4 -7
  22. package/dist/web-presenter.d.ts.map +1 -1
  23. package/dist/web-presenter.js +4 -29
  24. package/dist/web-presenter.js.map +1 -1
  25. package/dist/ws-client.d.ts +0 -35
  26. package/dist/ws-client.d.ts.map +1 -1
  27. package/dist/ws-client.js +9 -32
  28. package/dist/ws-client.js.map +1 -1
  29. package/package.json +3 -3
  30. package/dist/__tests__/cli-executable.test.d.ts +0 -2
  31. package/dist/__tests__/cli-executable.test.d.ts.map +0 -1
  32. package/dist/__tests__/cli-executable.test.js +0 -83
  33. package/dist/__tests__/cli-executable.test.js.map +0 -1
  34. package/dist/__tests__/cli-help.test.d.ts +0 -2
  35. package/dist/__tests__/cli-help.test.d.ts.map +0 -1
  36. package/dist/__tests__/cli-help.test.js +0 -33
  37. package/dist/__tests__/cli-help.test.js.map +0 -1
  38. package/dist/__tests__/core-agent-workflow-context.test.d.ts +0 -2
  39. package/dist/__tests__/core-agent-workflow-context.test.d.ts.map +0 -1
  40. package/dist/__tests__/core-agent-workflow-context.test.js +0 -50
  41. package/dist/__tests__/core-agent-workflow-context.test.js.map +0 -1
  42. package/dist/__tests__/daemon-socket.integration.test.d.ts +0 -2
  43. package/dist/__tests__/daemon-socket.integration.test.d.ts.map +0 -1
  44. package/dist/__tests__/daemon-socket.integration.test.js +0 -156
  45. package/dist/__tests__/daemon-socket.integration.test.js.map +0 -1
  46. package/dist/__tests__/daemon.test.d.ts +0 -2
  47. package/dist/__tests__/daemon.test.d.ts.map +0 -1
  48. package/dist/__tests__/daemon.test.js +0 -1014
  49. package/dist/__tests__/daemon.test.js.map +0 -1
  50. package/dist/__tests__/generated-images.test.d.ts +0 -2
  51. package/dist/__tests__/generated-images.test.d.ts.map +0 -1
  52. package/dist/__tests__/generated-images.test.js +0 -50
  53. package/dist/__tests__/generated-images.test.js.map +0 -1
  54. package/dist/__tests__/sandbox-workflow-context.test.d.ts +0 -2
  55. package/dist/__tests__/sandbox-workflow-context.test.d.ts.map +0 -1
  56. package/dist/__tests__/sandbox-workflow-context.test.js +0 -66
  57. package/dist/__tests__/sandbox-workflow-context.test.js.map +0 -1
  58. package/dist/aiden-system-prompt.d.ts +0 -6
  59. package/dist/aiden-system-prompt.d.ts.map +0 -1
  60. package/dist/aiden-system-prompt.js +0 -6
  61. package/dist/aiden-system-prompt.js.map +0 -1
  62. package/dist/cli-executable.d.ts +0 -58
  63. package/dist/cli-executable.d.ts.map +0 -1
  64. package/dist/cli-executable.js +0 -301
  65. package/dist/cli-executable.js.map +0 -1
  66. package/dist/cli-help.d.ts +0 -7
  67. package/dist/cli-help.d.ts.map +0 -1
  68. package/dist/cli-help.js +0 -45
  69. package/dist/cli-help.js.map +0 -1
  70. package/dist/daemon.d.ts +0 -46
  71. package/dist/daemon.d.ts.map +0 -1
  72. package/dist/daemon.js +0 -876
  73. package/dist/daemon.js.map +0 -1
  74. package/dist/generated-images.d.ts +0 -4
  75. package/dist/generated-images.d.ts.map +0 -1
  76. package/dist/generated-images.js +0 -142
  77. package/dist/generated-images.js.map +0 -1
@@ -9,18 +9,15 @@
9
9
  * Everything else (retry loop, system-prompt assembly, backend selection) lives
10
10
  * in BaseMachineAgent.
11
11
  */
12
+ import { BaseMachineAgent, type AgentRuntimeConfig } from "@aiden/agent-core";
12
13
  import type { ChildProcessWithoutNullStreams } from "node:child_process";
13
- import { type AgentRuntimeConfig, BaseMachineAgent } from "@aiden/agent-core";
14
14
  import type { AgentConfig } from "./types.js";
15
15
  export declare class CoreAgent extends BaseMachineAgent {
16
16
  private childProcess;
17
17
  private _aborted;
18
- private providerApiKey;
19
18
  /** How long to wait after SIGTERM before escalating to SIGKILL. */
20
19
  private static readonly SIGKILL_DELAY_MS;
21
- constructor(presenter: ConstructorParameters<typeof BaseMachineAgent>[0], runtime: AgentRuntimeConfig & {
22
- providerApiKey?: string;
23
- });
20
+ constructor(presenter: ConstructorParameters<typeof BaseMachineAgent>[0], runtime: AgentRuntimeConfig);
24
21
  abort(): void;
25
22
  kill(): boolean;
26
23
  private killChildProcess;
@@ -29,7 +26,6 @@ export declare class CoreAgent extends BaseMachineAgent {
29
26
  * Used for interactive tools like AskUserQuestion.
30
27
  */
31
28
  sendToolResponse(toolId: string, response: string): boolean;
32
- sendUserMessage(text: string): boolean;
33
29
  protected getOnProcessSpawned(): ((child: ChildProcessWithoutNullStreams) => void) | undefined;
34
30
  protected buildCliEnvironment(): Promise<Record<string, string>>;
35
31
  protected buildExtraSystemPromptParts(config: AgentConfig): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"core-agent.d.ts","sourceRoot":"","sources":["../src/core-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,KAAK,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,qBAAa,SAAU,SAAQ,gBAAgB;IAC7C,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAqB;IAE3C,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;gBAG9C,SAAS,EAAE,qBAAqB,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAC5D,OAAO,EAAE,kBAAkB,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAMpD,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,OAAO;IAStB,OAAO,CAAC,gBAAgB;IA6CxB;;;OAGG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IA8B3D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA0B7C,SAAS,CAAC,mBAAmB,IAAI,CAAC,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,CAAC,GAAG,SAAS;cAe9E,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAuBtE,SAAS,CAAC,2BAA2B,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE;CAqKrE"}
1
+ {"version":3,"file":"core-agent.d.ts","sourceRoot":"","sources":["../src/core-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,qBAAa,SAAU,SAAQ,gBAAgB;IAC7C,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,QAAQ,CAAS;IAEzB,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;gBAEpC,SAAS,EAAE,qBAAqB,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB;IAI9F,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,OAAO;IAStB,OAAO,CAAC,gBAAgB;IAyCxB;;;OAGG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAgClE,SAAS,CAAC,mBAAmB,IAAI,CAAC,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,CAAC,GAAG,SAAS;cAW9E,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAkBtE,SAAS,CAAC,2BAA2B,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE;CAuFrE"}
@@ -9,18 +9,14 @@
9
9
  * Everything else (retry loop, system-prompt assembly, backend selection) lives
10
10
  * in BaseMachineAgent.
11
11
  */
12
- import { platform } from "node:os";
13
12
  import { BaseMachineAgent } from "@aiden/agent-core";
14
- import { getDaemonCliEnvironment } from "./cli-executable.js";
15
13
  export class CoreAgent extends BaseMachineAgent {
16
14
  childProcess = null;
17
15
  _aborted = false;
18
- providerApiKey;
19
16
  /** How long to wait after SIGTERM before escalating to SIGKILL. */
20
17
  static SIGKILL_DELAY_MS = 3000;
21
18
  constructor(presenter, runtime) {
22
19
  super(presenter, runtime);
23
- this.providerApiKey = runtime.providerApiKey;
24
20
  }
25
21
  abort() {
26
22
  this._aborted = true;
@@ -54,9 +50,7 @@ export class CoreAgent extends BaseMachineAgent {
54
50
  try {
55
51
  child.kill("SIGTERM");
56
52
  }
57
- catch {
58
- /* already dead */
59
- }
53
+ catch { /* already dead */ }
60
54
  }
61
55
  setTimeout(() => {
62
56
  if (child.killed || child.exitCode !== null)
@@ -105,7 +99,7 @@ export class CoreAgent extends BaseMachineAgent {
105
99
  session_id: "default",
106
100
  parent_tool_use_id: null,
107
101
  });
108
- stdin.write(`${message}\n`);
102
+ stdin.write(message + "\n");
109
103
  console.info(`[CoreAgent] Sent tool_response for tool ${toolId}`);
110
104
  return true;
111
105
  }
@@ -114,68 +108,34 @@ export class CoreAgent extends BaseMachineAgent {
114
108
  return false;
115
109
  }
116
110
  }
117
- sendUserMessage(text) {
118
- if (!this.childProcess || this._aborted)
119
- return false;
120
- const stdin = this.childProcess.stdin;
121
- if (!stdin || stdin.destroyed)
122
- return false;
123
- try {
124
- const message = JSON.stringify({
125
- type: "user",
126
- message: {
127
- role: "user",
128
- content: [{ type: "text", text }],
129
- },
130
- session_id: "default",
131
- parent_tool_use_id: null,
132
- });
133
- stdin.write(`${message}\n`);
134
- console.info(`[CoreAgent] Appended user message to live CLI stdin (${text.length} chars)`);
135
- return true;
136
- }
137
- catch (err) {
138
- console.error("[CoreAgent] Failed to append user message to stdin", err);
139
- return false;
140
- }
141
- }
142
111
  // ── BaseMachineAgent hooks ─────────────────────────────────────────────
143
112
  getOnProcessSpawned() {
144
113
  return (child) => {
145
114
  this.childProcess = child;
146
- child.on("exit", () => {
147
- this.childProcess = null;
148
- });
149
- child.on("error", () => {
150
- this.childProcess = null;
151
- });
115
+ child.on("exit", () => { this.childProcess = null; });
116
+ child.on("error", () => { this.childProcess = null; });
152
117
  if (this._aborted) {
153
118
  this.killChildProcess(child);
154
119
  }
155
120
  };
156
121
  }
157
122
  async buildCliEnvironment() {
123
+ const loginEnv = process.env;
158
124
  const env = {};
159
- for (const [key, value] of Object.entries(process.env)) {
125
+ for (const [key, value] of Object.entries(loginEnv)) {
160
126
  if (value !== undefined)
161
127
  env[key] = value;
162
128
  }
163
- const augmented = getDaemonCliEnvironment();
164
- if (this.runtime.backendKind === "supatest_cli" && this.providerApiKey) {
165
- augmented.SUPATEST_API_KEY = this.providerApiKey;
166
- }
167
- if (platform() !== "win32") {
168
- const home = augmented.HOME ?? "/home/user";
169
- const extraPaths = [`${home}/.local/node/bin`, `${home}/.local/bin`];
170
- const separator = ":";
171
- const basePath = augmented.PATH ?? "";
172
- const existingSegments = new Set(basePath.split(separator).filter(Boolean));
173
- const missing = extraPaths.filter((p) => !existingSegments.has(p));
174
- if (missing.length > 0) {
175
- augmented.PATH = `${missing.join(separator)}${separator}${basePath}`;
176
- }
177
- }
178
- return augmented;
129
+ // Guarantee CLI runtime bin dirs are in PATH regardless of how the agent
130
+ // was launched. Uses HOME from the inherited env so this works for both
131
+ // E2B (/home/user) and Daytona (/home/daytona) without hardcoding.
132
+ const home = env.HOME ?? "/home/user";
133
+ const extraPaths = [`${home}/.local/node/bin`, `${home}/.local/bin`];
134
+ const basePath = env.PATH ?? "";
135
+ const existingSegments = new Set(basePath.split(":").filter(Boolean));
136
+ const missing = extraPaths.filter((p) => !existingSegments.has(p));
137
+ env.PATH = missing.length > 0 ? `${missing.join(":")}:${basePath}` : basePath;
138
+ return env;
179
139
  }
180
140
  buildExtraSystemPromptParts(config) {
181
141
  const parts = [];
@@ -214,94 +174,23 @@ export class CoreAgent extends BaseMachineAgent {
214
174
  if (meta.descriptionAttachmentIds && meta.descriptionAttachmentIds.length > 0) {
215
175
  lines.push("");
216
176
  lines.push("## Task Description Images");
217
- lines.push('The task description contains images. Use the `attachment` MCP tool with op="get" to view them:');
177
+ lines.push("The task description contains images. Use the `attachment` MCP tool with op=\"get\" to view them:");
218
178
  for (const att of meta.descriptionAttachmentIds) {
219
179
  lines.push(`- Attachment ID: \`${att.id}\` (${att.filename})`);
220
180
  }
221
181
  }
222
- if (meta.linkedResources && meta.linkedResources.length > 0) {
223
- lines.push("");
224
- lines.push("## Linked Task Resources");
225
- for (const resource of meta.linkedResources) {
226
- lines.push(`- ${resource.type}: "${resource.title}" (${resource.url ?? resource.id})`);
227
- }
228
- }
229
182
  parts.push(lines.join("\n"));
230
183
  }
231
- // Inject pull-request metadata for Review Agent sessions started from a PR.
232
- if (config.prMeta) {
233
- const pr = config.prMeta;
234
- const lines = ["# Pull Request Context"];
235
- lines.push(`- **Repo**: ${pr.owner}/${pr.repo}`);
236
- lines.push(`- **PR**: #${pr.prNumber} — ${pr.title}`);
237
- lines.push(`- **State**: ${pr.state}`);
238
- if (pr.author)
239
- lines.push(`- **Author**: ${pr.author}`);
240
- const baseHead = `${pr.baseBranch || "?"} ← ${pr.headBranch || "?"}`;
241
- lines.push(`- **Base ← Head**: ${baseHead}`);
242
- if (pr.mergeable === false) {
243
- lines.push(`- **Mergeable**: no`);
244
- }
245
- else if (pr.mergeable === true) {
246
- lines.push(`- **Mergeable**: yes`);
247
- }
248
- if (pr.labels && pr.labels.length > 0) {
249
- lines.push(`- **Labels**: ${pr.labels.join(", ")}`);
250
- }
251
- const sizeBits = [];
252
- if (typeof pr.changedFilesCount === "number")
253
- sizeBits.push(`${pr.changedFilesCount} files`);
254
- if (typeof pr.additions === "number")
255
- sizeBits.push(`+${pr.additions}`);
256
- if (typeof pr.deletions === "number")
257
- sizeBits.push(`-${pr.deletions}`);
258
- if (sizeBits.length > 0)
259
- lines.push(`- **Size**: ${sizeBits.join(" / ")}`);
260
- if (pr.linkedTaskReadableId) {
261
- lines.push(`- **Linked task**: ${pr.linkedTaskReadableId}`);
262
- }
263
- if (pr.htmlUrl)
264
- lines.push(`- **URL**: ${pr.htmlUrl}`);
265
- if (pr.body) {
266
- lines.push("");
267
- lines.push("## PR Description");
268
- lines.push(pr.body);
269
- }
270
- if (pr.changedFiles && pr.changedFiles.length > 0) {
271
- lines.push("");
272
- lines.push("## Changed Files (first 50)");
273
- for (const file of pr.changedFiles) {
274
- lines.push(`- ${file.status}: \`${file.path}\` (+${file.additions} / -${file.deletions})`);
275
- }
276
- }
277
- parts.push(lines.join("\n"));
278
- }
279
- // Inject artifact context so the agent associates MCP artifacts with the right owner.
280
- // Session context dictates ownership: task session → taskId; workflow session →
281
- // workflowId + workflowExecutionId. Never both. Prefer config fields (sent by
282
- // dispatch pipeline); fall back to AIDEN_* env vars.
184
+ // Inject artifact context so the agent associates MCP artifacts with the right task.
185
+ // Prefer config fields (sent by dispatch pipeline); fall back to AIDEN_* env vars.
283
186
  const taskId = config.taskId ?? process.env.AIDEN_TASK_ID;
284
- const workflowId = config.workflowId ?? process.env.AIDEN_WORKFLOW_ID;
285
- const workflowExecutionId = config.workflowExecutionId ?? process.env.AIDEN_WORKFLOW_EXECUTION_ID;
286
187
  const conversationId = config.conversationId ?? process.env.AIDEN_SESSION_ID;
287
188
  const teamId = config.teamId;
288
189
  const artifactIds = [];
289
190
  if (teamId)
290
191
  artifactIds.push(`- teamId: "${teamId}"`);
291
- // workflowId wins when present — workflow machine sessions always have AIDEN_TASK_ID=machineId
292
- // (not a real task), so taskId must not shadow workflowId for artifact routing.
293
- // When workflowExecutionId is set but workflowId is missing, this is a workflow session
294
- // where AIDEN_WORKFLOW_ID wasn't injected — skip taskId entirely so the backend can
295
- // auto-resolve workflow context from conversationId.
296
- const isWorkflowSession = !!(workflowId || workflowExecutionId);
297
- if (workflowId) {
298
- artifactIds.push(`- workflowId: "${workflowId}"`);
299
- if (workflowExecutionId)
300
- artifactIds.push(`- workflowExecutionId: "${workflowExecutionId}"`);
301
- }
302
- else if (taskId && !isWorkflowSession) {
192
+ if (taskId)
303
193
  artifactIds.push(`- taskId: "${taskId}"`);
304
- }
305
194
  if (conversationId)
306
195
  artifactIds.push(`- conversationId: "${conversationId}"`);
307
196
  if (artifactIds.length > 0) {
@@ -310,15 +199,7 @@ export class CoreAgent extends BaseMachineAgent {
310
199
  ...artifactIds,
311
200
  ].join("\n"));
312
201
  }
313
- if (workflowId && conversationId && teamId) {
314
- parts.push([
315
- "## Prototype Artifacts",
316
- "When the user asks to create, build, modify, or iterate on a prototype, do not create local prototype files such as prototype/index.html.",
317
- "Instead, generate a Vite React TypeScript source snapshot and call the Aiden MCP tool upsert_prototype_version with teamId, workflowId, workflowExecutionId, conversationId, title, sourceSnapshot, and packageJson.",
318
- "For follow-up changes to the same prototype, call list_prototypes (with workflowId) or get_prototype if needed, then call upsert_prototype_version again with the existing prototypeId and parentVersionId.",
319
- ].join("\n"));
320
- }
321
- else if (taskId && conversationId && teamId) {
202
+ if (taskId && conversationId && teamId) {
322
203
  parts.push([
323
204
  "## Prototype Artifacts",
324
205
  "When the user asks to create, build, modify, or iterate on a prototype, do not create local prototype files such as prototype/index.html.",
@@ -1 +1 @@
1
- {"version":3,"file":"core-agent.js","sourceRoot":"","sources":["../src/core-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-agent.js","sourceRoot":"","sources":["../src/core-agent.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -9362,6 +9362,10 @@ Deliverables persist as Aiden artifacts and documents \u2014 not as chat. Plans,
9362
9362
  - Own mistakes. Wrong ID, jumped too fast \u2014 say so and fix it.
9363
9363
  - Think visually. Mermaid over paragraphs for architecture, flows, state, and schema.
9364
9364
 
9365
+ ## Task Logging
9366
+
9367
+ For non-trivial tasks, log high-signal events as they happen: decisions, changed assumptions, validation results, known-good IDs, blockers, risks, and direction changes. Keep one current task-state summary updated with current state, known-good IDs, open risks, and next action. Do not log routine commands or file reads. Before stopping, ensure the timeline and current state are enough for a human to understand progress and for another agent to resume. If a prior decision is stale, write a newer event that supersedes it.
9368
+
9365
9369
  The specific work you do \u2014 implementation, planning, review, coordination, verification \u2014 is determined by your agent role, described next.`;
9366
9370
  var PLAN_MODE_PROMPT = [
9367
9371
  "You are in Aiden plan mode.",
@@ -9594,7 +9598,7 @@ var PRIORITY_OPTIONS = [
9594
9598
  detail: "Low",
9595
9599
  color: CATEGORICAL_COLORS.blueBright,
9596
9600
  iconClass: "text-blue-500/70 dark:text-blue-400/70",
9597
- flagClass: "text-primary"
9601
+ flagClass: "text-blue-600 dark:text-blue-400"
9598
9602
  },
9599
9603
  {
9600
9604
  value: "none",
@@ -9664,6 +9668,9 @@ function isLikelyProviderAuthError(stderr) {
9664
9668
  }
9665
9669
  function normalizeCodexCliErrorMessage(message) {
9666
9670
  const lower = message.toLowerCase();
9671
+ if (lower.includes("reconnecting") && lower.includes("request timed out")) {
9672
+ return "Codex connection to OpenAI timed out while waiting for the turn to continue. Retry the message; if it repeats, check network/API latency or reduce slow MCP/tool calls in the turn.";
9673
+ }
9667
9674
  if (lower.includes("access token could not be refreshed") || lower.includes("refresh_token_invalidated") || lower.includes("refresh token has been invalidated")) {
9668
9675
  return "Codex CLI connection expired. Reconnect OpenAI Codex CLI in Cloud settings, then restart or recreate the machine.";
9669
9676
  }
@@ -9700,7 +9707,7 @@ function classifyCliError(stderr, exitCode) {
9700
9707
  }
9701
9708
  function isTransientError(errorMessage) {
9702
9709
  const lower = errorMessage.toLowerCase();
9703
- return lower.includes("rate limit") || lower.includes("overloaded") || lower.includes("503") || lower.includes("429") || lower.includes("service unavailable") || lower.includes("etimedout") || lower.includes("econnreset") || lower.includes("econnrefused") || lower.includes("epipe");
9710
+ return lower.includes("rate limit") || lower.includes("overloaded") || lower.includes("503") || lower.includes("429") || lower.includes("service unavailable") || lower.includes("etimedout") || lower.includes("econnreset") || lower.includes("econnrefused") || lower.includes("epipe") || lower.includes("timeout") || lower.includes("timed out");
9704
9711
  }
9705
9712
  function planCliSpawn(command, args, env = process.env) {
9706
9713
  const isWindows = process.platform === "win32";
@@ -10244,6 +10251,10 @@ function createImageTempDirectory(cwd) {
10244
10251
  }
10245
10252
  return (0, import_fs2.mkdtempSync)((0, import_path2.join)((0, import_os2.tmpdir)(), "aiden-images-"));
10246
10253
  }
10254
+ function safeFilename(filename) {
10255
+ const safe = filename.replace(/[^a-zA-Z0-9._-]/g, "_").replace(/^_+/, "");
10256
+ return safe || "attachment";
10257
+ }
10247
10258
  function writeImagesToTempFiles(images, cwd) {
10248
10259
  if (!images?.length) return { paths: [], files: [], cleanup: () => {
10249
10260
  } };
@@ -10274,6 +10285,48 @@ function writeImagesToTempFiles(images, cwd) {
10274
10285
  }
10275
10286
  };
10276
10287
  }
10288
+ function writeFilesToTempFiles(files, cwd) {
10289
+ if (!files?.length) return { paths: [], files: [], cleanup: () => {
10290
+ } };
10291
+ const dataFiles = files.filter((file) => file.data !== void 0);
10292
+ const existingFiles = files.filter((file) => file.tempPath && file.data === void 0);
10293
+ const directory = dataFiles.length > 0 ? createImageTempDirectory(cwd) : null;
10294
+ const paths = [];
10295
+ const tempFiles = [];
10296
+ for (const file of existingFiles) {
10297
+ if (!file.tempPath) continue;
10298
+ paths.push(file.tempPath);
10299
+ tempFiles.push({
10300
+ filename: file.filename,
10301
+ mimeType: file.mimeType,
10302
+ label: file.label,
10303
+ path: file.tempPath
10304
+ });
10305
+ }
10306
+ for (const file of dataFiles) {
10307
+ if (!directory || file.data === void 0) continue;
10308
+ const filePath = (0, import_path2.join)(directory, `${file.id}-${safeFilename(file.filename)}`);
10309
+ (0, import_fs2.writeFileSync)(filePath, Buffer.from(file.data, "base64"));
10310
+ paths.push(filePath);
10311
+ tempFiles.push({
10312
+ filename: file.filename,
10313
+ mimeType: file.mimeType,
10314
+ label: file.label,
10315
+ path: filePath
10316
+ });
10317
+ }
10318
+ return {
10319
+ paths,
10320
+ files: tempFiles,
10321
+ cleanup: () => {
10322
+ if (!directory) return;
10323
+ try {
10324
+ (0, import_fs2.rmSync)(directory, { recursive: true, force: true });
10325
+ } catch {
10326
+ }
10327
+ }
10328
+ };
10329
+ }
10277
10330
  function appendImagePathReferences(prompt, images) {
10278
10331
  if (images.length === 0) return prompt;
10279
10332
  const imageLines = images.map((img) => {
@@ -11445,6 +11498,17 @@ function isOpenCodeToolError(parsed, part) {
11445
11498
  const state = getRecord(part?.state) ?? getRecord(parsed.state);
11446
11499
  return part?.is_error === true || part?.isError === true || state?.status === "error" || Boolean(getOpenCodeToolError(parsed, part));
11447
11500
  }
11501
+ function getOpenCodePartId(parsed, part) {
11502
+ return getString(part?.id) || getString(parsed.id) || getString(parsed.partID);
11503
+ }
11504
+ function resolveOpenCodeTextDelta(text, partId, state) {
11505
+ if (!partId) return text;
11506
+ state.opencodeTextByPartId ??= /* @__PURE__ */ new Map();
11507
+ const previous = state.opencodeTextByPartId.get(partId) ?? "";
11508
+ state.opencodeTextByPartId.set(partId, text);
11509
+ if (!previous || !text.startsWith(previous)) return text;
11510
+ return text.slice(previous.length);
11511
+ }
11448
11512
  function parseOpencodeStructuredLine(line, context, state) {
11449
11513
  const presenter = context.presenter;
11450
11514
  let parsed = null;
@@ -11468,8 +11532,10 @@ function parseOpencodeStructuredLine(line, context, state) {
11468
11532
  case "text": {
11469
11533
  const text = part && typeof part.text === "string" ? part.text : "";
11470
11534
  if (text) {
11471
- state.summary += text;
11472
- void presenter.onAssistantText(text);
11535
+ const delta = resolveOpenCodeTextDelta(text, getOpenCodePartId(parsed, part), state);
11536
+ if (!delta) break;
11537
+ state.summary += delta;
11538
+ void presenter.onAssistantText(delta);
11473
11539
  }
11474
11540
  break;
11475
11541
  }
@@ -11607,6 +11673,10 @@ function createOpencodeCliBackend(command = "opencode", defaultArgs = []) {
11607
11673
  context.config.images,
11608
11674
  context.cwd
11609
11675
  );
11676
+ const { paths: filePaths, cleanup: cleanupFiles } = writeFilesToTempFiles(
11677
+ context.config.files,
11678
+ context.cwd
11679
+ );
11610
11680
  try {
11611
11681
  const runContext = withAutonomousOpenCodePermissions(context);
11612
11682
  return await createGenericCliBackend({
@@ -11623,7 +11693,8 @@ function createOpencodeCliBackend(command = "opencode", defaultArgs = []) {
11623
11693
  if (resumeId) args.push("--session", resumeId);
11624
11694
  const model = ctx.config.selectedModel?.trim();
11625
11695
  if (model?.includes("/")) args.push("--model", model);
11626
- const fileArgs = imagePaths.flatMap((p) => ["--file", p]);
11696
+ const attachmentPaths = [...imagePaths, ...filePaths];
11697
+ const fileArgs = attachmentPaths.flatMap((p) => ["--file", p]);
11627
11698
  if (fileArgs.length > 0) {
11628
11699
  return [...args, ...fileArgs, ...defaultArgs, "--", prompt];
11629
11700
  }
@@ -11637,6 +11708,7 @@ function createOpencodeCliBackend(command = "opencode", defaultArgs = []) {
11637
11708
  }).run(runContext);
11638
11709
  } finally {
11639
11710
  cleanup();
11711
+ cleanupFiles();
11640
11712
  }
11641
11713
  }
11642
11714
  };
@@ -11842,7 +11914,8 @@ function canonicalizePath(inputPath) {
11842
11914
  }
11843
11915
  function buildPromptWithFiles(task, files) {
11844
11916
  if (!files || files.length === 0) return task;
11845
- const fileList = files.map((file) => `- ${file.filename} (${file.label}): ${file.tempPath}`).join("\n");
11917
+ const fileList = files.filter((file) => file.tempPath).map((file) => `- ${file.filename} (${file.label}): ${file.tempPath}`).join("\n");
11918
+ if (!fileList) return task;
11846
11919
  return `${task}
11847
11920
 
11848
11921
  The user has attached the following files. You can read them using your available tools:
@@ -12600,7 +12673,7 @@ function extractGeneratedImagesFromToolResult(toolId, content, cwd, toolName) {
12600
12673
  }
12601
12674
 
12602
12675
  // src/version.ts
12603
- var AGENT_VERSION = "0.1.23";
12676
+ var AGENT_VERSION = "0.1.25";
12604
12677
 
12605
12678
  // src/daemon.ts
12606
12679
  var OPENCODE_FREE_MODEL_IDS = [
@@ -12792,7 +12865,9 @@ function summarizeRunnerStatus(input) {
12792
12865
  const lastRunActivityAtMs = activeEntries.reduce((latest, entry) => {
12793
12866
  return latest === null ? entry.lastActivityAtMs : Math.max(latest, entry.lastActivityAtMs);
12794
12867
  }, null);
12795
- const staleRunCount = input.connected ? 0 : activeEntries.filter((entry) => nowMs - entry.lastActivityAtMs >= RUNNER_RECOVERY_GRACE_MS).length;
12868
+ const staleRunCount = activeEntries.filter(
12869
+ (entry) => nowMs - entry.lastActivityAtMs >= RUNNER_RECOVERY_GRACE_MS
12870
+ ).length;
12796
12871
  const pastDisconnectGrace = input.disconnectedSinceMs !== null && nowMs - input.disconnectedSinceMs >= RUNNER_RECOVERY_GRACE_MS;
12797
12872
  const restartRecommended = !input.connected && activeRunIds.length === 0 && pastDisconnectGrace;
12798
12873
  return {
@@ -12807,7 +12882,6 @@ function summarizeRunnerStatus(input) {
12807
12882
  };
12808
12883
  }
12809
12884
  function recoverStaleActiveRuns(input) {
12810
- if (input.connected) return;
12811
12885
  const nowMs = input.nowMs ?? Date.now();
12812
12886
  for (const [runId, entry] of input.activeAgents.entries()) {
12813
12887
  if (nowMs - entry.lastActivityAtMs < RUNNER_RECOVERY_GRACE_MS) continue;
@@ -12949,7 +13023,6 @@ async function setupDaemon(args) {
12949
13023
  const setupToken = argValue(args, "--setup-token") ?? process.env.AIDEN_RUNTIME_SETUP_TOKEN;
12950
13024
  const token = argValue(args, "--token") ?? process.env.AIDEN_SETUP_TOKEN;
12951
13025
  const displayName = argValue(args, "--name") ?? (0, import_node_os4.hostname)();
12952
- const legacyLocalMachineId = argValue(args, "--legacy-local-machine-id") ?? process.env.AIDEN_LEGACY_LOCAL_MACHINE_ID;
12953
13026
  const scope = argValue(args, "--scope") ?? process.env.AIDEN_RUNTIME_SCOPE ?? "team";
12954
13027
  if (scope !== "team" && scope !== "user") {
12955
13028
  throw new Error("setup --scope must be either 'team' or 'user'");
@@ -12972,7 +13045,6 @@ async function setupDaemon(args) {
12972
13045
  ...setupToken ? { setupToken } : {},
12973
13046
  displayName,
12974
13047
  hostname: (0, import_node_os4.hostname)(),
12975
- ...legacyLocalMachineId ? { legacyLocalMachineId } : {},
12976
13048
  runtimeKind: "machine",
12977
13049
  managementKind: "user_managed",
12978
13050
  hostKind: "daemon",
@@ -13186,7 +13258,8 @@ async function startDaemon(args) {
13186
13258
  teamId: payload.teamId,
13187
13259
  currentUser: payload.currentUser,
13188
13260
  workflowTools: payload.workflowTools,
13189
- images: payload.images
13261
+ images: payload.images,
13262
+ files: payload.files
13190
13263
  }).catch((error) => {
13191
13264
  const message = error instanceof Error ? error.message : String(error);
13192
13265
  pushLog(`failed run=${payload.runId} ${message}`);
@@ -13716,6 +13789,7 @@ var WSClient = class {
13716
13789
  callbacks.onUserMessage({
13717
13790
  text: data.text,
13718
13791
  images: data.images,
13792
+ files: data.files,
13719
13793
  providerSessionId: data.providerSessionId,
13720
13794
  backendKind: data.backendKind,
13721
13795
  agentId: data.agentId,
@@ -13755,8 +13829,10 @@ var WSClient = class {
13755
13829
  async function runSandbox(config) {
13756
13830
  let currentTask = config.task;
13757
13831
  let currentImages = [];
13832
+ let currentFiles = [];
13758
13833
  const stopped = false;
13759
13834
  let pendingMessageResolve = null;
13835
+ const queuedMessages = [];
13760
13836
  let currentAgent = null;
13761
13837
  let currentTaskMeta;
13762
13838
  let currentPrMeta;
@@ -13786,7 +13862,7 @@ async function runSandbox(config) {
13786
13862
  pendingMessageResolve = null;
13787
13863
  resolve2(payload);
13788
13864
  } else {
13789
- console.warn("[sandbox] No handler for user message \u2014 dropped");
13865
+ queuedMessages.push(payload);
13790
13866
  }
13791
13867
  },
13792
13868
  onStop: () => {
@@ -13866,6 +13942,14 @@ async function runSandbox(config) {
13866
13942
  filename: img.filename,
13867
13943
  width: 0,
13868
13944
  height: 0
13945
+ })) : void 0,
13946
+ files: currentFiles.length > 0 ? currentFiles.map((file) => ({
13947
+ id: file.id,
13948
+ data: file.data,
13949
+ mimeType: file.mimeType,
13950
+ filename: file.filename,
13951
+ size: file.size,
13952
+ label: file.label
13869
13953
  })) : void 0
13870
13954
  });
13871
13955
  } catch (error) {
@@ -13886,7 +13970,7 @@ async function runSandbox(config) {
13886
13970
  }
13887
13971
  if (stopped) break;
13888
13972
  }
13889
- const nextPayload = await new Promise((resolve2) => {
13973
+ const nextPayload = queuedMessages.shift() ?? await new Promise((resolve2) => {
13890
13974
  pendingMessageResolve = resolve2;
13891
13975
  });
13892
13976
  if (nextPayload === null || stopped) {
@@ -13894,6 +13978,7 @@ async function runSandbox(config) {
13894
13978
  }
13895
13979
  currentTask = nextPayload.text;
13896
13980
  currentImages = nextPayload.images ?? [];
13981
+ currentFiles = nextPayload.files ?? [];
13897
13982
  if (nextPayload.providerSessionId) {
13898
13983
  lastProviderSessionId = nextPayload.providerSessionId;
13899
13984
  }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,2 @@
1
- /**
2
- * Aiden Sandbox Agent
3
- * Runs inside E2B sandbox, connects to WS server, executes CoreAgent.
4
- */
5
1
  export {};
6
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}