aws-runtime-bridge 1.4.0 → 1.6.1

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 (72) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter/AdapterRegistry.d.ts +1 -1
  3. package/dist/adapter/AdapterRegistry.d.ts.map +1 -1
  4. package/dist/adapter/AdapterRegistry.js +0 -2
  5. package/dist/adapter/ClaudeSdkAdapter.d.ts +4 -0
  6. package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -1
  7. package/dist/adapter/ClaudeSdkAdapter.js +11 -2
  8. package/dist/adapter/CodexSdkAdapter.js +1 -1
  9. package/dist/adapter/OpencodeSdkAdapter.d.ts +13 -1
  10. package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
  11. package/dist/adapter/OpencodeSdkAdapter.js +58 -6
  12. package/dist/adapter/OpencodeSdkAdapter.test.js +57 -1
  13. package/dist/adapter/types.d.ts +10 -0
  14. package/dist/adapter/types.d.ts.map +1 -1
  15. package/dist/index.js +14 -43
  16. package/dist/middleware/auth.d.ts +5 -0
  17. package/dist/middleware/auth.d.ts.map +1 -1
  18. package/dist/middleware/auth.js +9 -1
  19. package/dist/routes/file-browser.d.ts +10 -0
  20. package/dist/routes/file-browser.d.ts.map +1 -1
  21. package/dist/routes/file-browser.js +226 -4
  22. package/dist/routes/file-browser.test.js +31 -0
  23. package/dist/routes/instance.d.ts +10 -0
  24. package/dist/routes/instance.d.ts.map +1 -1
  25. package/dist/routes/instance.js +93 -2
  26. package/dist/routes/instance.test.js +50 -0
  27. package/dist/routes/pty.d.ts +106 -0
  28. package/dist/routes/pty.d.ts.map +1 -0
  29. package/dist/routes/pty.js +526 -0
  30. package/dist/routes/pty.test.d.ts +2 -0
  31. package/dist/routes/pty.test.d.ts.map +1 -0
  32. package/dist/routes/pty.test.js +73 -0
  33. package/dist/routes/sessions.d.ts +1 -1
  34. package/dist/routes/sessions.d.ts.map +1 -1
  35. package/dist/routes/sessions.js +32 -213
  36. package/dist/routes/terminal.d.ts +32 -3
  37. package/dist/routes/terminal.d.ts.map +1 -1
  38. package/dist/routes/terminal.js +411 -243
  39. package/dist/routes/terminal.test.js +105 -29
  40. package/dist/services/agent-process-manager.d.ts +2 -2
  41. package/dist/services/agent-process-manager.d.ts.map +1 -1
  42. package/dist/services/agent-process-manager.js +3 -3
  43. package/dist/services/process-detector.d.ts +2 -4
  44. package/dist/services/process-detector.d.ts.map +1 -1
  45. package/dist/services/process-detector.js +9 -16
  46. package/dist/services/process-registry.d.ts +2 -2
  47. package/dist/services/process-registry.d.ts.map +1 -1
  48. package/dist/services/process-registry.js +1 -1
  49. package/dist/services/session-output.d.ts +27 -5
  50. package/dist/services/session-output.d.ts.map +1 -1
  51. package/dist/services/session-output.js +48 -3
  52. package/dist/services/session-output.test.js +43 -29
  53. package/dist/services/terminal-persistence.d.ts +9 -0
  54. package/dist/services/terminal-persistence.d.ts.map +1 -1
  55. package/dist/services/terminal-persistence.js +20 -0
  56. package/dist/services/tool-installer.d.ts +10 -0
  57. package/dist/services/tool-installer.d.ts.map +1 -1
  58. package/dist/services/tool-installer.js +126 -5
  59. package/dist/services/tool-installer.test.js +32 -1
  60. package/dist/services/workspace-files.d.ts +86 -0
  61. package/dist/services/workspace-files.d.ts.map +1 -1
  62. package/dist/services/workspace-files.js +571 -21
  63. package/dist/services/workspace-files.test.js +471 -11
  64. package/dist/services/workspace-watch.d.ts +21 -0
  65. package/dist/services/workspace-watch.d.ts.map +1 -0
  66. package/dist/services/workspace-watch.js +123 -0
  67. package/dist/services/workspace-watch.test.d.ts +2 -0
  68. package/dist/services/workspace-watch.test.d.ts.map +1 -0
  69. package/dist/services/workspace-watch.test.js +38 -0
  70. package/dist/types.d.ts +8 -4
  71. package/dist/types.d.ts.map +1 -1
  72. package/package.json +9 -1
@@ -0,0 +1,123 @@
1
+ import { watch, promises as fs } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { sendFileChanged } from './session-output.js';
4
+ const watchedFiles = new Map();
5
+ const WATCH_DEBOUNCE_MS = 300;
6
+ function toDisplayPath(targetPath) {
7
+ return String(targetPath || '').replace(/\\/g, '/');
8
+ }
9
+ function ensureInsideWorkspace(workspaceRoot, targetPath) {
10
+ const resolvedTargetPath = path.resolve(targetPath);
11
+ const relativePath = path.relative(workspaceRoot, resolvedTargetPath);
12
+ if (relativePath.startsWith('..') || path.isAbsolute(relativePath)) {
13
+ throw new Error(`Target path is outside workspace: ${resolvedTargetPath}`);
14
+ }
15
+ return resolvedTargetPath;
16
+ }
17
+ async function resolveWatchTarget(params) {
18
+ const requestedWorkspaceRoot = path.resolve(String(params.workspacePath || '').trim());
19
+ const workspaceRoot = await fs.realpath(requestedWorkspaceRoot);
20
+ const requestedFilePath = path.resolve(String(params.filePath || '').trim());
21
+ const requestedRelativePath = path.relative(requestedWorkspaceRoot, requestedFilePath);
22
+ if (requestedRelativePath.startsWith('..') || path.isAbsolute(requestedRelativePath)) {
23
+ throw new Error(`Target path is outside workspace: ${requestedFilePath}`);
24
+ }
25
+ const filePath = ensureInsideWorkspace(workspaceRoot, path.join(workspaceRoot, requestedRelativePath));
26
+ const realFilePath = await fs.realpath(filePath);
27
+ ensureInsideWorkspace(workspaceRoot, realFilePath);
28
+ const stat = await fs.stat(realFilePath);
29
+ if (!stat.isFile()) {
30
+ throw new Error(`Path is not a file: ${realFilePath}`);
31
+ }
32
+ return { workspaceRoot, filePath: realFilePath };
33
+ }
34
+ function watchKey(workspaceRoot, filePath) {
35
+ return `${toDisplayPath(workspaceRoot)}::${toDisplayPath(filePath)}`;
36
+ }
37
+ function closeWatchRecord(key, record) {
38
+ if (record.timer) {
39
+ clearTimeout(record.timer);
40
+ record.timer = null;
41
+ }
42
+ record.watcher.close();
43
+ watchedFiles.delete(key);
44
+ }
45
+ async function resolveWatchKey(params) {
46
+ const requestedWorkspaceRoot = path.resolve(String(params.workspacePath || '').trim());
47
+ const workspaceRoot = await fs.realpath(requestedWorkspaceRoot);
48
+ const requestedFilePath = path.resolve(String(params.filePath || '').trim());
49
+ const requestedRelativePath = path.relative(requestedWorkspaceRoot, requestedFilePath);
50
+ if (requestedRelativePath.startsWith('..') || path.isAbsolute(requestedRelativePath)) {
51
+ throw new Error(`Target path is outside workspace: ${requestedFilePath}`);
52
+ }
53
+ const filePath = ensureInsideWorkspace(workspaceRoot, path.join(workspaceRoot, requestedRelativePath));
54
+ return watchKey(workspaceRoot, filePath);
55
+ }
56
+ async function notifyFileChanged(record, eventType) {
57
+ let size;
58
+ let mtimeMs;
59
+ try {
60
+ const stat = await fs.stat(record.filePath);
61
+ size = stat.size;
62
+ mtimeMs = stat.mtimeMs;
63
+ }
64
+ catch {
65
+ // Deletions or transient writes still notify the frontend so it can show a refresh error if needed.
66
+ }
67
+ await sendFileChanged({
68
+ workspacePath: toDisplayPath(record.workspacePath),
69
+ filePath: toDisplayPath(record.filePath),
70
+ eventType,
71
+ size,
72
+ mtimeMs,
73
+ });
74
+ }
75
+ function scheduleFileChanged(record, eventType) {
76
+ if (record.timer) {
77
+ clearTimeout(record.timer);
78
+ }
79
+ record.timer = setTimeout(() => {
80
+ record.timer = null;
81
+ notifyFileChanged(record, eventType).catch(() => undefined);
82
+ }, WATCH_DEBOUNCE_MS);
83
+ }
84
+ /**
85
+ * 开始监听工作区内单个文件,重复监听同一文件会复用已有 watcher。
86
+ */
87
+ export async function watchWorkspaceFile(params) {
88
+ const { workspaceRoot, filePath } = await resolveWatchTarget(params);
89
+ const key = watchKey(workspaceRoot, filePath);
90
+ const existingRecord = watchedFiles.get(key);
91
+ if (existingRecord) {
92
+ existingRecord.refCount += 1;
93
+ }
94
+ else {
95
+ const record = {
96
+ watcher: watch(filePath, (eventType) => scheduleFileChanged(record, String(eventType || 'change'))),
97
+ workspacePath: workspaceRoot,
98
+ filePath,
99
+ timer: null,
100
+ refCount: 1,
101
+ };
102
+ record.watcher.on('error', () => closeWatchRecord(key, record));
103
+ watchedFiles.set(key, record);
104
+ }
105
+ return { ok: true, workspacePath: toDisplayPath(workspaceRoot), filePath: toDisplayPath(filePath) };
106
+ }
107
+ /**
108
+ * 停止监听工作区内单个文件;未监听时保持幂等。
109
+ */
110
+ export async function unwatchWorkspaceFile(params) {
111
+ const key = await resolveWatchKey(params);
112
+ const record = watchedFiles.get(key);
113
+ if (record) {
114
+ record.refCount -= 1;
115
+ if (record.refCount <= 0) {
116
+ closeWatchRecord(key, record);
117
+ }
118
+ }
119
+ return { ok: true };
120
+ }
121
+ export function getWorkspaceWatchCountForTests() {
122
+ return watchedFiles.size;
123
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workspace-watch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-watch.test.d.ts","sourceRoot":"","sources":["../../src/services/workspace-watch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
+ import { getWorkspaceWatchCountForTests, unwatchWorkspaceFile, watchWorkspaceFile, } from './workspace-watch.js';
6
+ describe('workspace file watch service', () => {
7
+ let tempRoot = '';
8
+ let workspacePath = '';
9
+ let filePath = '';
10
+ beforeEach(async () => {
11
+ tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'aws-workspace-watch-'));
12
+ workspacePath = path.join(tempRoot, 'workspace');
13
+ filePath = path.join(workspacePath, 'demo.docx');
14
+ await fs.mkdir(workspacePath, { recursive: true });
15
+ await fs.writeFile(filePath, 'watch me', 'utf-8');
16
+ });
17
+ afterEach(async () => {
18
+ await unwatchWorkspaceFile({ workspacePath, filePath }).catch(() => undefined);
19
+ await unwatchWorkspaceFile({ workspacePath, filePath }).catch(() => undefined);
20
+ await fs.rm(tempRoot, { recursive: true, force: true, maxRetries: 3, retryDelay: 50 });
21
+ });
22
+ it('unwatches a deleted file by its original workspace path key', async () => {
23
+ await watchWorkspaceFile({ workspacePath, filePath });
24
+ expect(getWorkspaceWatchCountForTests()).toBe(1);
25
+ await fs.rm(filePath);
26
+ await unwatchWorkspaceFile({ workspacePath, filePath });
27
+ expect(getWorkspaceWatchCountForTests()).toBe(0);
28
+ });
29
+ it('keeps shared watchers until all references unwatch', async () => {
30
+ await watchWorkspaceFile({ workspacePath, filePath });
31
+ await watchWorkspaceFile({ workspacePath, filePath });
32
+ expect(getWorkspaceWatchCountForTests()).toBe(1);
33
+ await unwatchWorkspaceFile({ workspacePath, filePath });
34
+ expect(getWorkspaceWatchCountForTests()).toBe(1);
35
+ await unwatchWorkspaceFile({ workspacePath, filePath });
36
+ expect(getWorkspaceWatchCountForTests()).toBe(0);
37
+ });
38
+ });
package/dist/types.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import type { Request, Response, NextFunction } from 'express';
2
- import type { IPty } from 'node-pty';
3
1
  import type { AppFlags } from '@cc-switch/sdk';
2
+ import type { Request, Response, NextFunction } from 'express';
4
3
  export type { McpServerSpec, AppFlags } from '@cc-switch/sdk';
5
4
  /**
6
5
  * MCP 服务器创建输入类型
@@ -25,7 +24,6 @@ export interface UpdateMcpServerInput {
25
24
  export interface Session {
26
25
  agentId: string;
27
26
  workspacePath: string;
28
- ptyProcess: IPty;
29
27
  outputBuffer: string;
30
28
  flushTimer: NodeJS.Timeout | null;
31
29
  flushInFlight: Promise<void> | null;
@@ -208,7 +206,9 @@ export interface PersistedSession {
208
206
  status: 'running' | 'stopped';
209
207
  pid?: number;
210
208
  providerSessionId?: string;
211
- mode?: 'pty' | 'sdk';
209
+ mode?: 'sdk';
210
+ idleInputAutoCommand?: string;
211
+ nonInputAutoCommand?: string;
212
212
  }
213
213
  export interface SessionsListResponse {
214
214
  ok: boolean;
@@ -225,6 +225,8 @@ export interface RecoverSessionRequest {
225
225
  agentId: string;
226
226
  workspacePath?: string;
227
227
  command?: string;
228
+ idleInputAutoCommand?: string;
229
+ nonInputAutoCommand?: string;
228
230
  }
229
231
  export interface RecoverSessionResult {
230
232
  ok: boolean;
@@ -234,5 +236,7 @@ export interface RecoverSessionResult {
234
236
  command: string;
235
237
  status: string;
236
238
  recovered: boolean;
239
+ mode?: 'sdk';
240
+ message?: string;
237
241
  }
238
242
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/D,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,gBAAgB,EAAE,aAAa,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,gBAAgB,EAAE,aAAa,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAGD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;CACb;AAGD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,KAAK;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9C,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAGD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAGvG,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;KACpC,CAAC;IACF,GAAG,EAAE;QACH,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,oBAAoB,EAAE,CAAC;QAC/B,UAAU,EAAE,kBAAkB,EAAE,CAAC;KAClC,CAAC;CACH;AAGD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAGD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAE9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAGD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC,CAAC;IACH,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAGD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAGD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws-runtime-bridge",
3
- "version": "1.4.0",
3
+ "version": "1.6.1",
4
4
  "description": "AgentsWorkStudio runtime bridge service for machine-level agent runtime integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -49,11 +49,15 @@
49
49
  "@anthropic-ai/claude-agent-sdk": "^0.2.87",
50
50
  "@cc-switch/sdk": "file:package/cc-switch-sdk",
51
51
  "@modelcontextprotocol/sdk": "^1.27.1",
52
+ "archiver": "^8.0.0",
52
53
  "axios": "^1.7.9",
53
54
  "cors": "^2.8.5",
54
55
  "express": "^4.21.2",
55
56
  "js-yaml": "^4.1.1",
57
+ "multer": "^2.1.1",
56
58
  "node-pty": "^1.0.0",
59
+ "tar": "^7.5.15",
60
+ "unzipper": "^0.12.3",
57
61
  "uuid": "^11.0.3",
58
62
  "ws": "^8.14.2",
59
63
  "yaml": "^2.3.4",
@@ -75,10 +79,14 @@
75
79
  "@eslint/js": "^9.0.0",
76
80
  "@openai/codex-sdk": "^0.125.0",
77
81
  "@opencode-ai/sdk": "^1.3.13",
82
+ "@types/archiver": "^7.0.0",
78
83
  "@types/cors": "^2.8.19",
79
84
  "@types/express": "^4.17.21",
80
85
  "@types/js-yaml": "^4.0.9",
86
+ "@types/multer": "^2.1.0",
81
87
  "@types/node": "^20.17.0",
88
+ "@types/unzipper": "^0.10.11",
89
+ "@types/ws": "^8.18.1",
82
90
  "@vitest/coverage-v8": "^2.0.0",
83
91
  "eslint": "^9.0.0",
84
92
  "eslint-plugin-import": "^2.29.0",