aws-runtime-bridge 1.9.130 → 1.9.134
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 +15 -0
- package/dist/adapter/AcodeSdkAdapter.js +5 -5
- package/dist/adapter/types.d.ts +9 -0
- package/dist/browser/browser-frame-encode.d.ts +16 -0
- package/dist/browser/browser-frame-encode.js +2 -0
- package/dist/browser/browser-pool.js +1 -1
- package/dist/browser/built-in-browser-tools.js +1 -1
- package/dist/browser/screencast-differ.d.ts +35 -0
- package/dist/browser/screencast-differ.js +2 -0
- package/dist/browser/screencast-manager.d.ts +32 -0
- package/dist/browser/screencast-manager.js +1 -1
- package/dist/browser/types.d.ts +48 -1
- package/dist/browser/types.js +1 -1
- package/dist/browser/ws-server.d.ts +1 -1
- package/dist/browser/ws-server.js +1 -1
- package/dist/routes/background-tasks.js +7 -1
- package/dist/routes/instance-tool-status.d.ts +4 -0
- package/dist/routes/instance-tool-status.js +2 -0
- package/dist/routes/instance.d.ts +0 -2
- package/dist/routes/instance.js +1 -1
- package/dist/routes/system-metrics.js +1 -1
- package/dist/routes/terminal.js +19 -19
- package/dist/services/acode-bg-manager.d.ts +36 -0
- package/dist/services/acode-bg-manager.js +2 -0
- package/dist/services/browser-session-manager.js +1 -1
- package/dist/services/instance-features.d.ts +5 -0
- package/dist/services/instance-features.js +1 -1
- package/dist/services/process-detail.d.ts +77 -0
- package/dist/services/process-detail.js +32 -0
- package/dist/services/process-top.d.ts +53 -0
- package/dist/services/process-top.js +50 -0
- package/dist/services/session-output.d.ts +10 -0
- package/dist/services/session-output.js +3 -3
- package/package/acode/dist/await-complete-tool.js +4 -4
- package/package/acode/dist/background-command-manager.d.ts +39 -0
- package/package/acode/dist/background-command-manager.js +5 -5
- package/package/acode/dist/background-command-tools.js +1 -1
- package/package/acode/dist/built-in-file-tools.d.ts +25 -1
- package/package/acode/dist/built-in-file-tools.js +2 -2
- package/package/acode/dist/builtins/shellCommandResult.d.ts +3 -0
- package/package/acode/dist/builtins/shellCommandResult.js +1 -1
- package/package/acode/dist/builtins/shellCommandRunner.d.ts +2 -0
- package/package/acode/dist/builtins/shellCommandRunner.js +1 -1
- package/package/acode/dist/image-utils.d.ts +52 -0
- package/package/acode/dist/image-utils.js +2 -0
- package/package/acode/dist/index.d.ts +1 -0
- package/package/acode/dist/index.js +1 -1
- package/package/acode/dist/runtime.d.ts +15 -1
- package/package/acode/dist/runtime.js +26 -26
- package/package/acode/dist/sub-agent-tools.js +30 -26
- package/package/acode/dist/sub-agent-types.d.ts +1 -1
- package/package/acode/dist/tool-allocation.d.ts +4 -4
- package/package/acode/dist/tool-allocation.js +1 -1
- package/package/acode/dist/types.d.ts +3 -1
- package/package/aws-client-agent-mcp/dist/http-client.d.ts +4 -0
- package/package/aws-client-agent-mcp/dist/http-client.js +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +8 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.js +28 -25
- package/package/aws-client-agent-mcp/dist/mcp-tools.js +6 -6
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts +6 -0
- package/package/aws-client-agent-mcp/dist/memory-tools.js +2 -2
- package/package/aws-client-agent-mcp/dist/types.d.ts +4 -0
- package/package/aws-client-agent-mcp/package.json +1 -1
- package/package.json +3 -3
- package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/agent-client.test.js +0 -1066
- package/package/aws-client-agent-mcp/dist/config.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/config.test.js +0 -259
- package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +0 -2
- package/package/aws-client-agent-mcp/dist/context-manager.test.js +0 -312
- package/package/aws-client-agent-mcp/dist/http-client.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/http-client.test.js +0 -808
- package/package/aws-client-agent-mcp/dist/launch-config-tools.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/launch-config-tools.test.js +0 -110
- package/package/aws-client-agent-mcp/dist/logger.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/logger.test.js +0 -27
- package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js +0 -2798
- package/package/aws-client-agent-mcp/dist/mcp-tools.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/mcp-tools.test.js +0 -152
- package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/memory-store.test.js +0 -664
- package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/message-buffer.test.js +0 -142
- package/package/aws-client-agent-mcp/dist/parent-lifecycle.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/parent-lifecycle.test.js +0 -81
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js +0 -201
- package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js +0 -157
- package/package/aws-client-agent-mcp/dist/watchdog.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/watchdog.test.js +0 -124
- package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js +0 -725
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import assert from 'node:assert/strict';
|
|
2
|
-
import { spawn } from 'node:child_process';
|
|
3
|
-
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
|
-
import { tmpdir } from 'node:os';
|
|
5
|
-
import path from 'node:path';
|
|
6
|
-
import { describe, it } from 'node:test';
|
|
7
|
-
import { resolveWatchdogOptions } from './watchdog.js';
|
|
8
|
-
const WATCHDOG_MODULE_URL = new URL('./watchdog.js', import.meta.url).href;
|
|
9
|
-
describe('resolveWatchdogOptions', () => {
|
|
10
|
-
it('uses defaults when nothing is provided', () => {
|
|
11
|
-
const resolved = resolveWatchdogOptions({}, {});
|
|
12
|
-
assert.deepEqual(resolved, {
|
|
13
|
-
tickMs: 1_000,
|
|
14
|
-
staleThresholdMs: 45_000,
|
|
15
|
-
checkIntervalMs: 5_000,
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
it('reads environment overrides', () => {
|
|
19
|
-
const resolved = resolveWatchdogOptions({}, {
|
|
20
|
-
AWS_MCP_WATCHDOG_TICK_MS: '200',
|
|
21
|
-
AWS_MCP_WATCHDOG_STALE_MS: '6000',
|
|
22
|
-
AWS_MCP_WATCHDOG_CHECK_MS: '1000',
|
|
23
|
-
});
|
|
24
|
-
assert.deepEqual(resolved, {
|
|
25
|
-
tickMs: 200,
|
|
26
|
-
staleThresholdMs: 6_000,
|
|
27
|
-
checkIntervalMs: 1_000,
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
it('falls back to defaults for out-of-range env values', () => {
|
|
31
|
-
const resolved = resolveWatchdogOptions({}, {
|
|
32
|
-
AWS_MCP_WATCHDOG_TICK_MS: '1',
|
|
33
|
-
AWS_MCP_WATCHDOG_STALE_MS: '999999999',
|
|
34
|
-
AWS_MCP_WATCHDOG_CHECK_MS: 'abc',
|
|
35
|
-
});
|
|
36
|
-
assert.deepEqual(resolved, {
|
|
37
|
-
tickMs: 1_000,
|
|
38
|
-
staleThresholdMs: 45_000,
|
|
39
|
-
checkIntervalMs: 5_000,
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
it('prefers explicit options over environment', () => {
|
|
43
|
-
const resolved = resolveWatchdogOptions({ tickMs: 50, staleThresholdMs: 500, checkIntervalMs: 100 }, {
|
|
44
|
-
AWS_MCP_WATCHDOG_TICK_MS: '200',
|
|
45
|
-
AWS_MCP_WATCHDOG_STALE_MS: '6000',
|
|
46
|
-
AWS_MCP_WATCHDOG_CHECK_MS: '1000',
|
|
47
|
-
});
|
|
48
|
-
assert.deepEqual(resolved, {
|
|
49
|
-
tickMs: 50,
|
|
50
|
-
staleThresholdMs: 500,
|
|
51
|
-
checkIntervalMs: 100,
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
it('falls back to env when explicit option is invalid', () => {
|
|
55
|
-
const resolved = resolveWatchdogOptions({ tickMs: Number.NaN, staleThresholdMs: -1 }, {
|
|
56
|
-
AWS_MCP_WATCHDOG_TICK_MS: '200',
|
|
57
|
-
AWS_MCP_WATCHDOG_STALE_MS: '6000',
|
|
58
|
-
});
|
|
59
|
-
assert.deepEqual(resolved, {
|
|
60
|
-
tickMs: 200,
|
|
61
|
-
staleThresholdMs: 6_000,
|
|
62
|
-
checkIntervalMs: 5_000,
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
/**
|
|
67
|
-
* 端到端验证:真实子进程 + 短阈值看门狗。
|
|
68
|
-
* 覆盖两类行为:
|
|
69
|
-
* 1) 主循环被同步死循环冻结 → 看门狗在阈值内强制终止进程(SIGKILL);
|
|
70
|
-
* 2) 主循环健康 → 看门狗不干预,进程正常退出。
|
|
71
|
-
*
|
|
72
|
-
* 注意:子进程必须以「文件」方式启动(node <tmp.mjs>)而非 --eval,
|
|
73
|
-
* 否则 --input-type 等 CLI flag 会被 worker 线程继承,导致看门狗 worker
|
|
74
|
-
* 启动失败(生产环境为 node dist/index.js,不受影响)。
|
|
75
|
-
*/
|
|
76
|
-
async function runChild(code, timeoutMs = 10_000) {
|
|
77
|
-
const dir = mkdtempSync(path.join(tmpdir(), 'aws-mcp-watchdog-test-'));
|
|
78
|
-
const file = path.join(dir, 'child.mjs');
|
|
79
|
-
writeFileSync(file, code, 'utf8');
|
|
80
|
-
const child = spawn(process.execPath, [file], {
|
|
81
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
82
|
-
});
|
|
83
|
-
let stderr = '';
|
|
84
|
-
child.stderr.on('data', (chunk) => {
|
|
85
|
-
stderr += chunk.toString();
|
|
86
|
-
});
|
|
87
|
-
const exitCode = await new Promise((resolve) => {
|
|
88
|
-
const timer = setTimeout(() => {
|
|
89
|
-
child.kill('SIGKILL');
|
|
90
|
-
resolve(null);
|
|
91
|
-
}, timeoutMs);
|
|
92
|
-
child.on('exit', (code) => {
|
|
93
|
-
clearTimeout(timer);
|
|
94
|
-
resolve(code);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
rmSync(dir, { recursive: true, force: true });
|
|
98
|
-
return { code: exitCode, stderr };
|
|
99
|
-
}
|
|
100
|
-
describe('startEventLoopWatchdog (integration)', () => {
|
|
101
|
-
it('force-kills the process when the main event loop freezes', async () => {
|
|
102
|
-
// tick=50ms, stale 阈值=300ms, 检查间隔=50ms;300ms 后主循环进入同步死循环。
|
|
103
|
-
const code = `
|
|
104
|
-
import { startEventLoopWatchdog } from ${JSON.stringify(WATCHDOG_MODULE_URL)};
|
|
105
|
-
startEventLoopWatchdog({ tickMs: 50, staleThresholdMs: 300, checkIntervalMs: 50 });
|
|
106
|
-
setTimeout(() => {
|
|
107
|
-
const t = Date.now();
|
|
108
|
-
while (Date.now() - t < 30000) {}
|
|
109
|
-
}, 300);
|
|
110
|
-
`;
|
|
111
|
-
const { code: exitCode, stderr } = await runChild(code);
|
|
112
|
-
assert.notEqual(exitCode, null, `看门狗未在超时内终止冻结进程。stderr: ${stderr}`);
|
|
113
|
-
assert.notEqual(exitCode, 0, '冻结进程应被强杀而非正常退出');
|
|
114
|
-
});
|
|
115
|
-
it('leaves a healthy process untouched', async () => {
|
|
116
|
-
const code = `
|
|
117
|
-
import { startEventLoopWatchdog } from ${JSON.stringify(WATCHDOG_MODULE_URL)};
|
|
118
|
-
startEventLoopWatchdog({ tickMs: 50, staleThresholdMs: 300, checkIntervalMs: 50 });
|
|
119
|
-
setTimeout(() => process.exit(0), 1500);
|
|
120
|
-
`;
|
|
121
|
-
const { code: exitCode, stderr } = await runChild(code);
|
|
122
|
-
assert.equal(exitCode, 0, `健康进程不应被看门狗终止。stderr: ${stderr}`);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|