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.
- package/README.md +1 -1
- package/dist/adapter/AdapterRegistry.d.ts +1 -1
- package/dist/adapter/AdapterRegistry.d.ts.map +1 -1
- package/dist/adapter/AdapterRegistry.js +0 -2
- package/dist/adapter/ClaudeSdkAdapter.d.ts +4 -0
- package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/ClaudeSdkAdapter.js +11 -2
- package/dist/adapter/CodexSdkAdapter.js +1 -1
- package/dist/adapter/OpencodeSdkAdapter.d.ts +13 -1
- package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/OpencodeSdkAdapter.js +58 -6
- package/dist/adapter/OpencodeSdkAdapter.test.js +57 -1
- package/dist/adapter/types.d.ts +10 -0
- package/dist/adapter/types.d.ts.map +1 -1
- package/dist/index.js +14 -43
- package/dist/middleware/auth.d.ts +5 -0
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +9 -1
- package/dist/routes/file-browser.d.ts +10 -0
- package/dist/routes/file-browser.d.ts.map +1 -1
- package/dist/routes/file-browser.js +226 -4
- package/dist/routes/file-browser.test.js +31 -0
- package/dist/routes/instance.d.ts +10 -0
- package/dist/routes/instance.d.ts.map +1 -1
- package/dist/routes/instance.js +93 -2
- package/dist/routes/instance.test.js +50 -0
- package/dist/routes/pty.d.ts +106 -0
- package/dist/routes/pty.d.ts.map +1 -0
- package/dist/routes/pty.js +526 -0
- package/dist/routes/pty.test.d.ts +2 -0
- package/dist/routes/pty.test.d.ts.map +1 -0
- package/dist/routes/pty.test.js +73 -0
- package/dist/routes/sessions.d.ts +1 -1
- package/dist/routes/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +32 -213
- package/dist/routes/terminal.d.ts +32 -3
- package/dist/routes/terminal.d.ts.map +1 -1
- package/dist/routes/terminal.js +411 -243
- package/dist/routes/terminal.test.js +105 -29
- package/dist/services/agent-process-manager.d.ts +2 -2
- package/dist/services/agent-process-manager.d.ts.map +1 -1
- package/dist/services/agent-process-manager.js +3 -3
- package/dist/services/process-detector.d.ts +2 -4
- package/dist/services/process-detector.d.ts.map +1 -1
- package/dist/services/process-detector.js +9 -16
- package/dist/services/process-registry.d.ts +2 -2
- package/dist/services/process-registry.d.ts.map +1 -1
- package/dist/services/process-registry.js +1 -1
- package/dist/services/session-output.d.ts +27 -5
- package/dist/services/session-output.d.ts.map +1 -1
- package/dist/services/session-output.js +48 -3
- package/dist/services/session-output.test.js +43 -29
- package/dist/services/terminal-persistence.d.ts +9 -0
- package/dist/services/terminal-persistence.d.ts.map +1 -1
- package/dist/services/terminal-persistence.js +20 -0
- package/dist/services/tool-installer.d.ts +10 -0
- package/dist/services/tool-installer.d.ts.map +1 -1
- package/dist/services/tool-installer.js +126 -5
- package/dist/services/tool-installer.test.js +32 -1
- package/dist/services/workspace-files.d.ts +86 -0
- package/dist/services/workspace-files.d.ts.map +1 -1
- package/dist/services/workspace-files.js +571 -21
- package/dist/services/workspace-files.test.js +471 -11
- package/dist/services/workspace-watch.d.ts +21 -0
- package/dist/services/workspace-watch.d.ts.map +1 -0
- package/dist/services/workspace-watch.js +123 -0
- package/dist/services/workspace-watch.test.d.ts +2 -0
- package/dist/services/workspace-watch.test.d.ts.map +1 -0
- package/dist/services/workspace-watch.test.js +38 -0
- package/dist/types.d.ts +8 -4
- package/dist/types.d.ts.map +1 -1
- 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 @@
|
|
|
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?: '
|
|
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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aws-runtime-bridge",
|
|
3
|
-
"version": "1.
|
|
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",
|