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.
Files changed (94) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts +15 -0
  2. package/dist/adapter/AcodeSdkAdapter.js +5 -5
  3. package/dist/adapter/types.d.ts +9 -0
  4. package/dist/browser/browser-frame-encode.d.ts +16 -0
  5. package/dist/browser/browser-frame-encode.js +2 -0
  6. package/dist/browser/browser-pool.js +1 -1
  7. package/dist/browser/built-in-browser-tools.js +1 -1
  8. package/dist/browser/screencast-differ.d.ts +35 -0
  9. package/dist/browser/screencast-differ.js +2 -0
  10. package/dist/browser/screencast-manager.d.ts +32 -0
  11. package/dist/browser/screencast-manager.js +1 -1
  12. package/dist/browser/types.d.ts +48 -1
  13. package/dist/browser/types.js +1 -1
  14. package/dist/browser/ws-server.d.ts +1 -1
  15. package/dist/browser/ws-server.js +1 -1
  16. package/dist/routes/background-tasks.js +7 -1
  17. package/dist/routes/instance-tool-status.d.ts +4 -0
  18. package/dist/routes/instance-tool-status.js +2 -0
  19. package/dist/routes/instance.d.ts +0 -2
  20. package/dist/routes/instance.js +1 -1
  21. package/dist/routes/system-metrics.js +1 -1
  22. package/dist/routes/terminal.js +19 -19
  23. package/dist/services/acode-bg-manager.d.ts +36 -0
  24. package/dist/services/acode-bg-manager.js +2 -0
  25. package/dist/services/browser-session-manager.js +1 -1
  26. package/dist/services/instance-features.d.ts +5 -0
  27. package/dist/services/instance-features.js +1 -1
  28. package/dist/services/process-detail.d.ts +77 -0
  29. package/dist/services/process-detail.js +32 -0
  30. package/dist/services/process-top.d.ts +53 -0
  31. package/dist/services/process-top.js +50 -0
  32. package/dist/services/session-output.d.ts +10 -0
  33. package/dist/services/session-output.js +3 -3
  34. package/package/acode/dist/await-complete-tool.js +4 -4
  35. package/package/acode/dist/background-command-manager.d.ts +39 -0
  36. package/package/acode/dist/background-command-manager.js +5 -5
  37. package/package/acode/dist/background-command-tools.js +1 -1
  38. package/package/acode/dist/built-in-file-tools.d.ts +25 -1
  39. package/package/acode/dist/built-in-file-tools.js +2 -2
  40. package/package/acode/dist/builtins/shellCommandResult.d.ts +3 -0
  41. package/package/acode/dist/builtins/shellCommandResult.js +1 -1
  42. package/package/acode/dist/builtins/shellCommandRunner.d.ts +2 -0
  43. package/package/acode/dist/builtins/shellCommandRunner.js +1 -1
  44. package/package/acode/dist/image-utils.d.ts +52 -0
  45. package/package/acode/dist/image-utils.js +2 -0
  46. package/package/acode/dist/index.d.ts +1 -0
  47. package/package/acode/dist/index.js +1 -1
  48. package/package/acode/dist/runtime.d.ts +15 -1
  49. package/package/acode/dist/runtime.js +26 -26
  50. package/package/acode/dist/sub-agent-tools.js +30 -26
  51. package/package/acode/dist/sub-agent-types.d.ts +1 -1
  52. package/package/acode/dist/tool-allocation.d.ts +4 -4
  53. package/package/acode/dist/tool-allocation.js +1 -1
  54. package/package/acode/dist/types.d.ts +3 -1
  55. package/package/aws-client-agent-mcp/dist/http-client.d.ts +4 -0
  56. package/package/aws-client-agent-mcp/dist/http-client.js +1 -1
  57. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +8 -0
  58. package/package/aws-client-agent-mcp/dist/mcp-server.js +28 -25
  59. package/package/aws-client-agent-mcp/dist/mcp-tools.js +6 -6
  60. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +6 -0
  61. package/package/aws-client-agent-mcp/dist/memory-tools.js +2 -2
  62. package/package/aws-client-agent-mcp/dist/types.d.ts +4 -0
  63. package/package/aws-client-agent-mcp/package.json +1 -1
  64. package/package.json +3 -3
  65. package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts +0 -1
  66. package/package/aws-client-agent-mcp/dist/agent-client.test.js +0 -1066
  67. package/package/aws-client-agent-mcp/dist/config.test.d.ts +0 -1
  68. package/package/aws-client-agent-mcp/dist/config.test.js +0 -259
  69. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +0 -2
  70. package/package/aws-client-agent-mcp/dist/context-manager.test.js +0 -312
  71. package/package/aws-client-agent-mcp/dist/http-client.test.d.ts +0 -1
  72. package/package/aws-client-agent-mcp/dist/http-client.test.js +0 -808
  73. package/package/aws-client-agent-mcp/dist/launch-config-tools.test.d.ts +0 -1
  74. package/package/aws-client-agent-mcp/dist/launch-config-tools.test.js +0 -110
  75. package/package/aws-client-agent-mcp/dist/logger.test.d.ts +0 -1
  76. package/package/aws-client-agent-mcp/dist/logger.test.js +0 -27
  77. package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts +0 -1
  78. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +0 -2798
  79. package/package/aws-client-agent-mcp/dist/mcp-tools.test.d.ts +0 -1
  80. package/package/aws-client-agent-mcp/dist/mcp-tools.test.js +0 -152
  81. package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts +0 -1
  82. package/package/aws-client-agent-mcp/dist/memory-store.test.js +0 -664
  83. package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts +0 -1
  84. package/package/aws-client-agent-mcp/dist/message-buffer.test.js +0 -142
  85. package/package/aws-client-agent-mcp/dist/parent-lifecycle.test.d.ts +0 -1
  86. package/package/aws-client-agent-mcp/dist/parent-lifecycle.test.js +0 -81
  87. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts +0 -1
  88. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js +0 -201
  89. package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts +0 -1
  90. package/package/aws-client-agent-mcp/dist/status-reporter.test.js +0 -157
  91. package/package/aws-client-agent-mcp/dist/watchdog.test.d.ts +0 -1
  92. package/package/aws-client-agent-mcp/dist/watchdog.test.js +0 -124
  93. package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts +0 -1
  94. 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
- });