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.
- package/dist/adapter/AcodeSdkAdapter.d.ts +40 -0
- package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/AcodeSdkAdapter.js +353 -7
- package/dist/adapter/AcodeSdkAdapter.test.js +155 -8
- package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/OpencodeSdkAdapter.js +36 -3
- package/dist/adapter/instance-ai-config-resolver.d.ts +49 -0
- package/dist/adapter/instance-ai-config-resolver.d.ts.map +1 -0
- package/dist/adapter/instance-ai-config-resolver.js +46 -0
- package/dist/adapter/types.d.ts +27 -2
- package/dist/adapter/types.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/routes/dashboard.d.ts.map +1 -1
- package/dist/routes/dashboard.js +749 -15
- package/dist/routes/events.d.ts +7 -0
- package/dist/routes/events.d.ts.map +1 -0
- package/dist/routes/events.js +22 -0
- package/dist/routes/file-browser.d.ts +1 -1
- package/dist/routes/file-browser.d.ts.map +1 -1
- package/dist/routes/file-browser.js +25 -9
- package/dist/routes/file-snapshot.d.ts +10 -0
- package/dist/routes/file-snapshot.d.ts.map +1 -0
- package/dist/routes/file-snapshot.js +156 -0
- package/dist/routes/git.d.ts +10 -0
- package/dist/routes/git.d.ts.map +1 -1
- package/dist/routes/git.js +305 -2
- package/dist/routes/git.test.js +39 -2
- package/dist/routes/instance.js +3 -1
- package/dist/routes/memory.d.ts +3 -0
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/memory.js +3 -0
- package/dist/routes/terminal.d.ts +2 -1
- package/dist/routes/terminal.d.ts.map +1 -1
- package/dist/routes/terminal.js +378 -41
- package/dist/routes/terminal.test.js +33 -7
- package/dist/services/agent-event-store.d.ts +59 -0
- package/dist/services/agent-event-store.d.ts.map +1 -0
- package/dist/services/agent-event-store.js +68 -0
- package/dist/services/event-delta-pusher.d.ts +40 -0
- package/dist/services/event-delta-pusher.d.ts.map +1 -0
- package/dist/services/event-delta-pusher.js +95 -0
- package/dist/services/fileSnapshotStore.d.ts +96 -0
- package/dist/services/fileSnapshotStore.d.ts.map +1 -0
- package/dist/services/fileSnapshotStore.js +500 -0
- package/dist/services/instance-ai-config-service.d.ts +49 -0
- package/dist/services/instance-ai-config-service.d.ts.map +1 -0
- package/dist/services/instance-ai-config-service.js +174 -0
- package/dist/services/panel-auth.d.ts +8 -0
- package/dist/services/panel-auth.d.ts.map +1 -1
- package/dist/services/panel-auth.js +8 -0
- package/dist/services/ring-buffer.d.ts +67 -0
- package/dist/services/ring-buffer.d.ts.map +1 -0
- package/dist/services/ring-buffer.js +103 -0
- package/dist/services/session-output.d.ts +47 -3
- package/dist/services/session-output.d.ts.map +1 -1
- package/dist/services/session-output.js +112 -2
- package/dist/utils/instance-ai-config-debug-logger.d.ts +37 -0
- package/dist/utils/instance-ai-config-debug-logger.d.ts.map +1 -0
- package/dist/utils/instance-ai-config-debug-logger.js +63 -0
- package/dist/utils/logger.d.ts +18 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +48 -4
- package/package/acode/dist/built-in-file-tools.d.ts +1 -1
- package/package/acode/dist/built-in-file-tools.d.ts.map +1 -1
- package/package/acode/dist/built-in-file-tools.js +5 -3
- package/package/acode/dist/builtins/commandArtifacts.d.ts +8 -1
- package/package/acode/dist/builtins/commandArtifacts.d.ts.map +1 -1
- package/package/acode/dist/builtins/commandArtifacts.js +24 -4
- package/package/acode/dist/builtins/shellCommandResult.d.ts +1 -0
- package/package/acode/dist/builtins/shellCommandResult.d.ts.map +1 -1
- package/package/acode/dist/builtins/shellCommandResult.js +3 -3
- package/package/acode/dist/builtins/shellCommandRunner.d.ts +1 -0
- package/package/acode/dist/builtins/shellCommandRunner.d.ts.map +1 -1
- package/package/acode/dist/builtins/shellCommandRunner.js +1 -0
- package/package/acode/dist/cli.js +2 -0
- package/package/acode/dist/runtime.d.ts.map +1 -1
- package/package/acode/dist/runtime.js +156 -5
- package/package/acode/dist/types.d.ts +1 -0
- package/package/acode/dist/types.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts +5 -0
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/agent-client.js +16 -0
- package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/context-manager.d.ts +136 -0
- package/package/aws-client-agent-mcp/dist/context-manager.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/context-manager.js +473 -0
- package/package/aws-client-agent-mcp/dist/context-manager.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +6 -0
- package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/context-manager.test.js +307 -0
- package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +170 -2
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.js +947 -9
- package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js +103 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +15 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.js +62 -2
- package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts +46 -1
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-store.js +164 -12
- package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +8 -0
- package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.js +88 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +7 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/server-memory-store.js +18 -0
- package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/types.d.ts +103 -2
- package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/types.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +27 -2
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.js +122 -5
- package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -1
- 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
|
+
}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
|
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":"
|
|
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
|
|
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(
|
|
39
|
+
return path.join(buildAcodeCmdDistDir(agentId), `${year}-${month}-${day}`, hour, minute, `${timestamp}-${suffix}.${extension}`);
|
|
33
40
|
}
|
|
34
|
-
export async function writeCommandArtifactFile(
|
|
35
|
-
const targetPath = buildCommandArtifactPath(
|
|
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}`,
|
|
@@ -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(
|
|
3
|
-
return writeCommandArtifactFile(
|
|
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.
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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"}
|