aws-runtime-bridge 1.9.10 → 1.9.20

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 (121) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts +40 -0
  2. package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
  3. package/dist/adapter/AcodeSdkAdapter.js +353 -7
  4. package/dist/adapter/AcodeSdkAdapter.test.js +155 -8
  5. package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
  6. package/dist/adapter/OpencodeSdkAdapter.js +36 -3
  7. package/dist/adapter/instance-ai-config-resolver.d.ts +49 -0
  8. package/dist/adapter/instance-ai-config-resolver.d.ts.map +1 -0
  9. package/dist/adapter/instance-ai-config-resolver.js +46 -0
  10. package/dist/adapter/types.d.ts +27 -2
  11. package/dist/adapter/types.d.ts.map +1 -1
  12. package/dist/index.js +5 -1
  13. package/dist/routes/dashboard.d.ts.map +1 -1
  14. package/dist/routes/dashboard.js +749 -15
  15. package/dist/routes/events.d.ts +7 -0
  16. package/dist/routes/events.d.ts.map +1 -0
  17. package/dist/routes/events.js +22 -0
  18. package/dist/routes/file-browser.d.ts +1 -1
  19. package/dist/routes/file-browser.d.ts.map +1 -1
  20. package/dist/routes/file-browser.js +25 -9
  21. package/dist/routes/file-snapshot.d.ts +10 -0
  22. package/dist/routes/file-snapshot.d.ts.map +1 -0
  23. package/dist/routes/file-snapshot.js +156 -0
  24. package/dist/routes/git.d.ts +10 -0
  25. package/dist/routes/git.d.ts.map +1 -1
  26. package/dist/routes/git.js +305 -2
  27. package/dist/routes/git.test.js +39 -2
  28. package/dist/routes/instance.js +3 -1
  29. package/dist/routes/memory.d.ts +3 -0
  30. package/dist/routes/memory.d.ts.map +1 -1
  31. package/dist/routes/memory.js +3 -0
  32. package/dist/routes/terminal.d.ts +2 -1
  33. package/dist/routes/terminal.d.ts.map +1 -1
  34. package/dist/routes/terminal.js +378 -41
  35. package/dist/routes/terminal.test.js +33 -7
  36. package/dist/services/agent-event-store.d.ts +59 -0
  37. package/dist/services/agent-event-store.d.ts.map +1 -0
  38. package/dist/services/agent-event-store.js +68 -0
  39. package/dist/services/event-delta-pusher.d.ts +40 -0
  40. package/dist/services/event-delta-pusher.d.ts.map +1 -0
  41. package/dist/services/event-delta-pusher.js +95 -0
  42. package/dist/services/fileSnapshotStore.d.ts +96 -0
  43. package/dist/services/fileSnapshotStore.d.ts.map +1 -0
  44. package/dist/services/fileSnapshotStore.js +500 -0
  45. package/dist/services/instance-ai-config-service.d.ts +49 -0
  46. package/dist/services/instance-ai-config-service.d.ts.map +1 -0
  47. package/dist/services/instance-ai-config-service.js +174 -0
  48. package/dist/services/panel-auth.d.ts +8 -0
  49. package/dist/services/panel-auth.d.ts.map +1 -1
  50. package/dist/services/panel-auth.js +8 -0
  51. package/dist/services/ring-buffer.d.ts +67 -0
  52. package/dist/services/ring-buffer.d.ts.map +1 -0
  53. package/dist/services/ring-buffer.js +103 -0
  54. package/dist/services/session-output.d.ts +47 -3
  55. package/dist/services/session-output.d.ts.map +1 -1
  56. package/dist/services/session-output.js +112 -2
  57. package/dist/utils/instance-ai-config-debug-logger.d.ts +37 -0
  58. package/dist/utils/instance-ai-config-debug-logger.d.ts.map +1 -0
  59. package/dist/utils/instance-ai-config-debug-logger.js +63 -0
  60. package/dist/utils/logger.d.ts +18 -0
  61. package/dist/utils/logger.d.ts.map +1 -1
  62. package/dist/utils/logger.js +48 -4
  63. package/package/acode/dist/built-in-file-tools.d.ts +1 -1
  64. package/package/acode/dist/built-in-file-tools.d.ts.map +1 -1
  65. package/package/acode/dist/built-in-file-tools.js +5 -3
  66. package/package/acode/dist/builtins/commandArtifacts.d.ts +8 -1
  67. package/package/acode/dist/builtins/commandArtifacts.d.ts.map +1 -1
  68. package/package/acode/dist/builtins/commandArtifacts.js +24 -4
  69. package/package/acode/dist/builtins/shellCommandResult.d.ts +1 -0
  70. package/package/acode/dist/builtins/shellCommandResult.d.ts.map +1 -1
  71. package/package/acode/dist/builtins/shellCommandResult.js +3 -3
  72. package/package/acode/dist/builtins/shellCommandRunner.d.ts +1 -0
  73. package/package/acode/dist/builtins/shellCommandRunner.d.ts.map +1 -1
  74. package/package/acode/dist/builtins/shellCommandRunner.js +1 -0
  75. package/package/acode/dist/cli.js +2 -0
  76. package/package/acode/dist/runtime.d.ts.map +1 -1
  77. package/package/acode/dist/runtime.js +156 -5
  78. package/package/acode/dist/types.d.ts +1 -0
  79. package/package/acode/dist/types.d.ts.map +1 -1
  80. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +5 -0
  81. package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +1 -1
  82. package/package/aws-client-agent-mcp/dist/agent-client.js +16 -0
  83. package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -1
  84. package/package/aws-client-agent-mcp/dist/context-manager.d.ts +136 -0
  85. package/package/aws-client-agent-mcp/dist/context-manager.d.ts.map +1 -0
  86. package/package/aws-client-agent-mcp/dist/context-manager.js +473 -0
  87. package/package/aws-client-agent-mcp/dist/context-manager.js.map +1 -0
  88. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +6 -0
  89. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts.map +1 -0
  90. package/package/aws-client-agent-mcp/dist/context-manager.test.js +307 -0
  91. package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +1 -0
  92. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +170 -2
  93. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
  94. package/package/aws-client-agent-mcp/dist/mcp-server.js +947 -9
  95. package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
  96. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +103 -1
  97. package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
  98. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +15 -1
  99. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -1
  100. package/package/aws-client-agent-mcp/dist/mcp-tools.js +62 -2
  101. package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -1
  102. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +46 -1
  103. package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -1
  104. package/package/aws-client-agent-mcp/dist/memory-store.js +164 -12
  105. package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -1
  106. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +8 -0
  107. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +1 -1
  108. package/package/aws-client-agent-mcp/dist/memory-tools.js +88 -1
  109. package/package/aws-client-agent-mcp/dist/memory-tools.js.map +1 -1
  110. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +7 -1
  111. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +1 -1
  112. package/package/aws-client-agent-mcp/dist/server-memory-store.js +18 -0
  113. package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +1 -1
  114. package/package/aws-client-agent-mcp/dist/types.d.ts +103 -2
  115. package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -1
  116. package/package/aws-client-agent-mcp/dist/types.js.map +1 -1
  117. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +27 -2
  118. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -1
  119. package/package/aws-client-agent-mcp/dist/websocket-client.js +122 -5
  120. package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -1
  121. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-ai-config-debug-logger.d.ts","sourceRoot":"","sources":["../../src/utils/instance-ai-config-debug-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,GAAE,MAAuB;IAI5C;;;OAGG;IACG,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B9C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAID;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,2BAA2B,CAK5E"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Instance AI 配置调试日志记录器
3
+ *
4
+ * 将 AI 配置解析/应用过程写入固定日志文件,
5
+ * 供 bridge + 后端共享调试。
6
+ */
7
+ import fs from "node:fs/promises";
8
+ import path from "node:path";
9
+ import os from "node:os";
10
+ const DEBUG_LOG_PATH = path.join(os.userInfo().homedir, "Instance-ai-configuration-debug.log");
11
+ /**
12
+ * 调试日志记录器。
13
+ * 所有日志异步追加到固定文件,不阻塞主流程。
14
+ */
15
+ export class InstanceAiConfigDebugLogger {
16
+ constructor(logPath = DEBUG_LOG_PATH) {
17
+ this.logPath = logPath;
18
+ }
19
+ /**
20
+ * 写入一条调试日志。
21
+ * 格式:ISO时间 | level | 消息
22
+ */
23
+ async log(entry) {
24
+ try {
25
+ const timestamp = new Date().toISOString();
26
+ const parts = [
27
+ `[${timestamp}]`,
28
+ `[${entry.level.toUpperCase()}]`,
29
+ `[${entry.source}]`,
30
+ `[${entry.category}]`,
31
+ entry.message,
32
+ ];
33
+ if (entry.sessionId)
34
+ parts.push(`session=${entry.sessionId}`);
35
+ if (entry.agentId)
36
+ parts.push(`agent=${entry.agentId}`);
37
+ const line = parts.join(" ");
38
+ const detailLine = entry.details
39
+ ? ` ${JSON.stringify(entry.details, null, 2)}`
40
+ : "";
41
+ await fs.appendFile(this.logPath, `${line}\n${detailLine ? `${detailLine}\n` : ""}`, "utf-8");
42
+ }
43
+ catch {
44
+ // 调试日志写入失败不阻塞主流程
45
+ }
46
+ }
47
+ /**
48
+ * 刷新日志(当前实现为无操作,追加写入天然实时落盘)。
49
+ */
50
+ async flush() {
51
+ // appendFile 每次调用已保证落盘
52
+ }
53
+ }
54
+ let defaultLogger;
55
+ /**
56
+ * 获取全局单例的调试日志记录器。
57
+ */
58
+ export function getInstanceAiConfigDebugLogger() {
59
+ if (!defaultLogger) {
60
+ defaultLogger = new InstanceAiConfigDebugLogger();
61
+ }
62
+ return defaultLogger;
63
+ }
@@ -2,8 +2,26 @@
2
2
  * 统一日志模块
3
3
  *
4
4
  * 提供结构化日志输出,支持不同日志级别和格式化
5
+ * 附带环形缓冲区,capture 最近 N 条日志供面板查看
5
6
  */
6
7
  export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
8
+ /** 向缓冲区追加一条日志 */
9
+ export declare function pushLog(level: LogLevel, prefix: string, message: string): void;
10
+ /**
11
+ * 返回缓冲区中最近的日志(按时间倒序)
12
+ * @param maxCount 最多返回条数
13
+ * @param filterLevel 可选级别过滤
14
+ */
15
+ export declare function getRecentLogs(maxCount?: number, filterLevel?: LogLevel): Array<{
16
+ level: LogLevel;
17
+ timestamp: string;
18
+ prefix: string;
19
+ message: string;
20
+ }>;
21
+ /** 启用/禁用缓冲区(测试时使用) */
22
+ export declare function setLogBufferEnabled(enabled: boolean): void;
23
+ /** 清空缓冲区 */
24
+ export declare function clearLogBuffer(): void;
7
25
  export interface LogConfig {
8
26
  level: LogLevel;
9
27
  prefix?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAkCD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAExB,MAAM,GAAE,SAA6B;IAMjD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;IAkBrB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/B;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAO9B;AAQD,eAAO,MAAM,MAAM;qBACA,OAAO,EAAE,KAAG,IAAI;oBACjB,OAAO,EAAE,KAAG,IAAI;oBAChB,OAAO,EAAE,KAAG,IAAI;qBACf,OAAO,EAAE,KAAG,IAAI;oBACjB,MAAM,KAAG,MAAM;CAChC,CAAC;AAGF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAMhF"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAO3D,iBAAiB;AACjB,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAM9E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,SAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAQpJ;AAED,sBAAsB;AACtB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE1D;AAED,YAAY;AACZ,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAkCD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAExB,MAAM,GAAE,SAA6B;IAMjD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;IAkBrB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAQ/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAQ9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAQ9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAQ/B;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAO9B;AAQD,eAAO,MAAM,MAAM;qBACA,OAAO,EAAE,KAAG,IAAI;oBACjB,OAAO,EAAE,KAAG,IAAI;oBAChB,OAAO,EAAE,KAAG,IAAI;qBACf,OAAO,EAAE,KAAG,IAAI;oBACjB,MAAM,KAAG,MAAM;CAChC,CAAC;AAGF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAMhF"}
@@ -2,7 +2,43 @@
2
2
  * 统一日志模块
3
3
  *
4
4
  * 提供结构化日志输出,支持不同日志级别和格式化
5
+ * 附带环形缓冲区,capture 最近 N 条日志供面板查看
5
6
  */
7
+ // ── 环形日志缓冲区 ──────────────────────────────────────
8
+ const MAX_LOG_ENTRIES = 500;
9
+ const logBuffer = [];
10
+ let logBufferEnabled = true;
11
+ /** 向缓冲区追加一条日志 */
12
+ export function pushLog(level, prefix, message) {
13
+ if (!logBufferEnabled)
14
+ return;
15
+ logBuffer.push({ level, timestamp: new Date().toISOString(), prefix, message });
16
+ if (logBuffer.length > MAX_LOG_ENTRIES) {
17
+ logBuffer.splice(0, logBuffer.length - MAX_LOG_ENTRIES);
18
+ }
19
+ }
20
+ /**
21
+ * 返回缓冲区中最近的日志(按时间倒序)
22
+ * @param maxCount 最多返回条数
23
+ * @param filterLevel 可选级别过滤
24
+ */
25
+ export function getRecentLogs(maxCount = 200, filterLevel) {
26
+ let entries = logBuffer;
27
+ if (filterLevel) {
28
+ const levels = ['debug', 'info', 'warn', 'error'];
29
+ const minIdx = levels.indexOf(filterLevel);
30
+ entries = entries.filter(e => levels.indexOf(e.level) >= minIdx);
31
+ }
32
+ return entries.slice(-maxCount).reverse();
33
+ }
34
+ /** 启用/禁用缓冲区(测试时使用) */
35
+ export function setLogBufferEnabled(enabled) {
36
+ logBufferEnabled = enabled;
37
+ }
38
+ /** 清空缓冲区 */
39
+ export function clearLogBuffer() {
40
+ logBuffer.length = 0;
41
+ }
6
42
  const LOG_LEVEL_PRIORITY = {
7
43
  debug: 0,
8
44
  info: 1,
@@ -59,22 +95,30 @@ export class Logger {
59
95
  }
60
96
  debug(...args) {
61
97
  if (this.shouldLog('debug')) {
62
- console.debug(this.formatMessage('debug', args));
98
+ const msg = this.formatMessage('debug', args);
99
+ console.debug(msg);
100
+ pushLog('debug', this.prefix, formatArgs(args));
63
101
  }
64
102
  }
65
103
  info(...args) {
66
104
  if (this.shouldLog('info')) {
67
- console.info(this.formatMessage('info', args));
105
+ const msg = this.formatMessage('info', args);
106
+ console.info(msg);
107
+ pushLog('info', this.prefix, formatArgs(args));
68
108
  }
69
109
  }
70
110
  warn(...args) {
71
111
  if (this.shouldLog('warn')) {
72
- console.warn(this.formatMessage('warn', args));
112
+ const msg = this.formatMessage('warn', args);
113
+ console.warn(msg);
114
+ pushLog('warn', this.prefix, formatArgs(args));
73
115
  }
74
116
  }
75
117
  error(...args) {
76
118
  if (this.shouldLog('error')) {
77
- console.error(this.formatMessage('error', args));
119
+ const msg = this.formatMessage('error', args);
120
+ console.error(msg);
121
+ pushLog('error', this.prefix, formatArgs(args));
78
122
  }
79
123
  }
80
124
  /**
@@ -16,5 +16,5 @@ export interface ACodeBuiltInTool {
16
16
  export interface ACodeBuiltInToolExecutionContext {
17
17
  readonly onOutput?: CommandOutputSink;
18
18
  }
19
- export declare function createBuiltInFileTools(workingDirectory: string): ACodeBuiltInTool[];
19
+ export declare function createBuiltInFileTools(workingDirectory: string, agentId?: string): ACodeBuiltInTool[];
20
20
  //# sourceMappingURL=built-in-file-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"built-in-file-tools.d.ts","sourceRoot":"","sources":["../src/built-in-file-tools.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,CACL,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,gCAAgC,GACzC,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAsfD,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,MAAM,GACvB,gBAAgB,EAAE,CAOpB"}
1
+ {"version":3,"file":"built-in-file-tools.d.ts","sourceRoot":"","sources":["../src/built-in-file-tools.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,CACL,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,gCAAgC,GACzC,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAufD,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,EAAE,CAQpB"}
@@ -298,7 +298,7 @@ function readFileTool(workingDirectory) {
298
298
  },
299
299
  };
300
300
  }
301
- function bashTool(workingDirectory) {
301
+ function bashTool(workingDirectory, agentId) {
302
302
  return {
303
303
  kind: "builtin",
304
304
  toolName: "Bash",
@@ -341,6 +341,7 @@ function bashTool(workingDirectory) {
341
341
  const resolved = await resolveWorkspaceDirectory(workingDirectory, cwdArg);
342
342
  const result = await runShellCommand({
343
343
  commandText: command,
344
+ agentId,
344
345
  workspaceRoot: resolved.workspaceRoot,
345
346
  cwd: resolved.cwd,
346
347
  timeoutMs,
@@ -370,11 +371,12 @@ function bashTool(workingDirectory) {
370
371
  },
371
372
  };
372
373
  }
373
- export function createBuiltInFileTools(workingDirectory) {
374
+ export function createBuiltInFileTools(workingDirectory, agentId) {
375
+ const resolvedAgentId = agentId || "unknown";
374
376
  return [
375
377
  readFileTool(workingDirectory),
376
378
  writeFileTool(workingDirectory),
377
379
  editFileTool(workingDirectory),
378
- bashTool(workingDirectory),
380
+ bashTool(workingDirectory, resolvedAgentId),
379
381
  ];
380
382
  }
@@ -3,7 +3,14 @@ export declare const LONG_COMMAND_LINE_LIMIT = 300;
3
3
  export declare const MAX_COMMAND_OUTPUT_BYTES: number;
4
4
  export declare function toDisplayPath(targetPath: string): string;
5
5
  export declare function countOutputLines(output: string): number;
6
- export declare function writeCommandArtifactFile(workspaceRoot: string, suffix: string, extension: string, content: string, now?: Date): Promise<string>;
6
+ export declare function buildAcodeCmdDistDir(agentId: string): string;
7
+ export declare function buildAcodeAgentDir(agentId: string): string;
8
+ export declare function writeCommandArtifactFile(agentId: string, suffix: string, extension: string, content: string, now?: Date): Promise<string>;
9
+ /**
10
+ * 清理 ACode 重启时指定 agentId 的旧 spillover 输出目录。
11
+ * 删除 ~/.agentswork/acode/<agentId>/cmd-dist/ 下的所有内容。
12
+ */
13
+ export declare function cleanupAcodeCmdDist(agentId: string): Promise<void>;
7
14
  export declare function buildCommandOutputSpilloverContent(input: {
8
15
  readonly commandText: string;
9
16
  readonly commandFilePath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"commandArtifacts.d.ts","sourceRoot":"","sources":["../../src/builtins/commandArtifacts.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mCAAmC,MAAM,CAAC;AACvD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,wBAAwB,QAAa,CAAC;AAEnD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWvD;AA4BD,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,OAAa,GACf,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAmBT;AAED,wBAAgB,kCAAkC,CAChD,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,MAAM,CAMR;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAWvE"}
1
+ {"version":3,"file":"commandArtifacts.d.ts","sourceRoot":"","sources":["../../src/builtins/commandArtifacts.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mCAAmC,MAAM,CAAC;AACvD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,wBAAwB,QAAa,CAAC;AAEnD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWvD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAyBD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,OAAa,GACf,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAmBT;AAED,wBAAgB,kCAAkC,CAChD,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,MAAM,CAMR;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAWvE"}
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { promises as fs } from "node:fs";
3
+ import os from "node:os";
3
4
  import path from "node:path";
4
5
  export const COMMAND_OUTPUT_SPILLOVER_LINE_LIMIT = 300;
5
6
  export const LONG_COMMAND_LINE_LIMIT = 300;
@@ -22,21 +23,40 @@ export function countOutputLines(output) {
22
23
  ? withoutTrailingLineBreak.split("\n").length
23
24
  : 1;
24
25
  }
25
- function buildCommandArtifactPath(workspaceRoot, now, suffix, extension) {
26
+ export function buildAcodeCmdDistDir(agentId) {
27
+ return path.join(os.homedir(), ".acode", "cmd-dist", agentId);
28
+ }
29
+ export function buildAcodeAgentDir(agentId) {
30
+ return path.join(os.homedir(), ".acode", "cmd-dist", agentId);
31
+ }
32
+ function buildCommandArtifactPath(agentId, now, suffix, extension) {
26
33
  const year = now.getFullYear();
27
34
  const month = padDatePart(now.getMonth() + 1);
28
35
  const day = padDatePart(now.getDate());
29
36
  const hour = padDatePart(now.getHours());
30
37
  const minute = padDatePart(now.getMinutes());
31
38
  const timestamp = `${year}${month}${day}-${hour}${minute}${padDatePart(now.getSeconds())}-${String(now.getMilliseconds()).padStart(3, "0")}-${process.pid}-${randomUUID().slice(0, 8)}`;
32
- return path.join(workspaceRoot, ".agentswork", "acode", "cmd-dist", `${year}-${month}-${day}`, hour, minute, `${timestamp}-${suffix}.${extension}`);
39
+ return path.join(buildAcodeCmdDistDir(agentId), `${year}-${month}-${day}`, hour, minute, `${timestamp}-${suffix}.${extension}`);
33
40
  }
34
- export async function writeCommandArtifactFile(workspaceRoot, suffix, extension, content, now = new Date()) {
35
- const targetPath = buildCommandArtifactPath(workspaceRoot, now, suffix, extension);
41
+ export async function writeCommandArtifactFile(agentId, suffix, extension, content, now = new Date()) {
42
+ const targetPath = buildCommandArtifactPath(agentId, now, suffix, extension);
36
43
  await fs.mkdir(path.dirname(targetPath), { recursive: true });
37
44
  await fs.writeFile(targetPath, content, "utf-8");
38
45
  return targetPath;
39
46
  }
47
+ /**
48
+ * 清理 ACode 重启时指定 agentId 的旧 spillover 输出目录。
49
+ * 删除 ~/.agentswork/acode/<agentId>/cmd-dist/ 下的所有内容。
50
+ */
51
+ export async function cleanupAcodeCmdDist(agentId) {
52
+ const cmdDistDir = buildAcodeCmdDistDir(agentId);
53
+ try {
54
+ await fs.rm(cmdDistDir, { recursive: true, force: true });
55
+ }
56
+ catch {
57
+ // 目录不存在或权限不足时静默忽略
58
+ }
59
+ }
40
60
  export function buildCommandOutputSpilloverContent(input) {
41
61
  return [
42
62
  `Command: ${input.commandText}`,
@@ -22,6 +22,7 @@ interface ClosedShellCommandInput {
22
22
  readonly timedOut: boolean;
23
23
  readonly inactivityTimedOut: boolean;
24
24
  readonly prepared: PreparedShellCommand;
25
+ readonly agentId: string;
25
26
  readonly workspaceRoot: string;
26
27
  readonly cwd: string;
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shellCommandResult.d.ts","sourceRoot":"","sources":["../../src/builtins/shellCommandResult.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CAClC;AAED,UAAU,uBAAuB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB;AA0CD,wBAAsB,yBAAyB,CAC9C,KAAK,EAAE,uBAAuB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAuD7B"}
1
+ {"version":3,"file":"shellCommandResult.d.ts","sourceRoot":"","sources":["../../src/builtins/shellCommandResult.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CAClC;AAED,UAAU,uBAAuB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB;AA0CD,wBAAsB,yBAAyB,CAC9C,KAAK,EAAE,uBAAuB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAuD7B"}
@@ -1,6 +1,6 @@
1
1
  import { buildCommandOutputSpilloverContent, COMMAND_OUTPUT_SPILLOVER_LINE_LIMIT, countOutputLines, formatCommandOutputSpilloverStdout, toDisplayPath, truncateOutput, writeCommandArtifactFile, } from "./commandArtifacts.js";
2
- async function writeCommandOutputSpilloverFile(workspaceRoot, content) {
3
- return writeCommandArtifactFile(workspaceRoot, "cmd", "out", content);
2
+ async function writeCommandOutputSpilloverFile(agentId, content) {
3
+ return writeCommandArtifactFile(agentId, "cmd", "out", content);
4
4
  }
5
5
  function buildShellCommandResult(input) {
6
6
  return {
@@ -24,7 +24,7 @@ export async function resolveClosedShellCommand(input) {
24
24
  const endedAt = new Date();
25
25
  const outputLineCount = countOutputLines(`${input.stdout}${input.stderr}`);
26
26
  if (outputLineCount > COMMAND_OUTPUT_SPILLOVER_LINE_LIMIT) {
27
- const outputFilePath = await writeCommandOutputSpilloverFile(input.workspaceRoot, buildCommandOutputSpilloverContent({
27
+ const outputFilePath = await writeCommandOutputSpilloverFile(input.agentId, buildCommandOutputSpilloverContent({
28
28
  commandText: input.prepared.originalCommandText,
29
29
  commandFilePath: input.prepared.commandFilePath,
30
30
  commandLineCount: input.prepared.commandLineCount,
@@ -3,6 +3,7 @@ import { type ShellCommandResult } from "./shellCommandResult.js";
3
3
  export type { CommandOutputEvent, CommandOutputSink };
4
4
  export interface RunShellCommandOptions {
5
5
  readonly commandText: string;
6
+ readonly agentId: string;
6
7
  readonly workspaceRoot: string;
7
8
  readonly cwd: string;
8
9
  readonly timeoutMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"shellCommandRunner.d.ts","sourceRoot":"","sources":["../../src/builtins/shellCommandRunner.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEtB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AAMjC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAInC,wBAAsB,eAAe,CACpC,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAqH7B"}
1
+ {"version":3,"file":"shellCommandRunner.d.ts","sourceRoot":"","sources":["../../src/builtins/shellCommandRunner.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEtB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AAMjC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAInC,wBAAsB,eAAe,CACpC,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAsH7B"}
@@ -106,6 +106,7 @@ export async function runShellCommand(options) {
106
106
  timedOut,
107
107
  inactivityTimedOut,
108
108
  prepared,
109
+ agentId: options.agentId,
109
110
  workspaceRoot: options.workspaceRoot,
110
111
  cwd: options.cwd,
111
112
  }).then(resolve, reject);
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { randomUUID } from 'node:crypto';
3
+ import os from 'node:os';
3
4
  import path from 'node:path';
4
5
  import { ACodeRuntime } from './runtime.js';
5
6
  function getFlagValue(args, name) {
@@ -18,6 +19,7 @@ async function main() {
18
19
  const prompt = getFlagValue(args, '--prompt') || args.filter((arg) => !arg.startsWith('--')).join(' ');
19
20
  const runtime = new ACodeRuntime({
20
21
  sessionId: getFlagValue(args, '--session-id') || randomUUID(),
22
+ agentId: getFlagValue(args, '--agent-id') || os.hostname(),
21
23
  workingDirectory: cwd,
22
24
  configPath,
23
25
  skillsDir,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkB3C,OAAO,KAAK,EAOV,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAksCpB,qBAAa,YAAa,SAAQ,YAAY;IAsChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IArCnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,OAAO,CAAC,KAAK,CAoBX;IAEF,OAAO,CAAC,eAAe,CAAgC;IAEvD,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;gBAExB,MAAM,EAAE,kBAAkB;IAevD,OAAO,CAAC,cAAc;IAatB;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2F5B;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC,OAAO,CAAC,gBAAgB;YAIV,aAAa;IA6F3B,oDAAoD;IAC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,uCAAuC;IACjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B3B,OAAO,CAAC,kBAAkB;YAaZ,YAAY;YAoFZ,qBAAqB;YAuKrB,wBAAwB;YA8ExB,eAAe;YAuMf,sBAAsB;IA6CpC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;YAQX,oCAAoC;IAsBlD,OAAO,CAAC,uBAAuB;YAuBjB,iBAAiB;IA2C/B,OAAO,CAAC,kBAAkB;YA2BZ,oBAAoB;CAiBnC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmB3C,OAAO,KAAK,EAOV,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAksCpB,qBAAa,YAAa,SAAQ,YAAY;IAsChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IArCnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,OAAO,CAAC,KAAK,CAoBX;IAEF,OAAO,CAAC,eAAe,CAAgC;IAEvD,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;gBAExB,MAAM,EAAE,kBAAkB;IAevD,OAAO,CAAC,cAAc;IAatB;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoG5B;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC,OAAO,CAAC,gBAAgB;YAIV,aAAa;IAoO3B,oDAAoD;IAC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,uCAAuC;IACjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B3B,OAAO,CAAC,kBAAkB;YAaZ,YAAY;YAyJZ,qBAAqB;YAmLrB,wBAAwB;YA8ExB,eAAe;YAqSf,sBAAsB;IA6CpC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;YAQX,oCAAoC;IAsBlD,OAAO,CAAC,uBAAuB;YAuBjB,iBAAiB;IA2C/B,OAAO,CAAC,kBAAkB;YA2BZ,oBAAoB;CAiBnC"}