aws-runtime-bridge 1.7.28 → 1.7.29
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/ClaudeSdkAdapter.d.ts +5 -0
- package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/ClaudeSdkAdapter.js +20 -6
- package/dist/adapter/ClaudeSdkAdapter.test.js +43 -0
- package/dist/adapter/CodexSdkAdapter.js +1 -1
- package/dist/adapter/OpencodeSdkAdapter.js +2 -2
- package/dist/adapter/types.d.ts +13 -4
- package/dist/adapter/types.d.ts.map +1 -1
- package/dist/index.js +101 -77
- package/dist/routes/sessions.js +16 -0
- package/dist/routes/terminal.d.ts +19 -1
- package/dist/routes/terminal.d.ts.map +1 -1
- package/dist/routes/terminal.js +62 -16
- package/dist/routes/terminal.test.js +25 -1
- package/dist/services/aws-client-agent-mcp.d.ts.map +1 -1
- package/dist/services/aws-client-agent-mcp.js +22 -3
- package/dist/services/mcp-launch-binding-queue.d.ts.map +1 -1
- package/dist/services/mcp-launch-binding-queue.js +8 -1
- package/dist/services/mcp-launch-binding-queue.test.js +11 -0
- package/dist/services/orphan-monitor.d.ts.map +1 -1
- package/dist/services/orphan-monitor.js +16 -5
- package/dist/services/runtime-binding.d.ts.map +1 -1
- package/dist/services/runtime-binding.js +8 -1
- package/dist/services/runtime-binding.test.js +15 -0
- package/dist/services/runtime-lifecycle-policy.d.ts +26 -0
- package/dist/services/runtime-lifecycle-policy.d.ts.map +1 -0
- package/dist/services/runtime-lifecycle-policy.js +34 -0
- package/dist/services/runtime-lifecycle-policy.test.d.ts +2 -0
- package/dist/services/runtime-lifecycle-policy.test.d.ts.map +1 -0
- package/dist/services/runtime-lifecycle-policy.test.js +41 -0
- package/dist/services/terminal-persistence.d.ts +12 -0
- package/dist/services/terminal-persistence.d.ts.map +1 -1
- package/dist/services/terminal-persistence.js +23 -0
- package/dist/services/terminal-persistence.test.js +18 -0
- package/dist/types.d.ts +8 -0
- package/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 +30 -3
- package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/agent-client.test.js +118 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.js +10 -1
- package/package/aws-client-agent-mcp/dist/config.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.test.js +10 -0
- package/package/aws-client-agent-mcp/dist/config.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.d.ts +5 -0
- package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.js +47 -3
- package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.test.js +344 -9
- package/package/aws-client-agent-mcp/dist/http-client.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +4 -3
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.js +28 -15
- package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js +107 -11
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/types.d.ts +9 -0
- 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 +5 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.js +26 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,13 @@ const DEFAULT_MCP_HTTP_REQUEST_TIMEOUT_MS = 120_000;
|
|
|
7
7
|
function repairDuplicatePort(raw) {
|
|
8
8
|
return raw.replace(/^((?:https?|wss?):\/\/(?:\[[^\]]+\]|[^/:?#]+):\d+):\d+(?=\/|$)/i, "$1");
|
|
9
9
|
}
|
|
10
|
+
function canonicalizeSchedulerHostname(hostname) {
|
|
11
|
+
const normalized = hostname.toLowerCase();
|
|
12
|
+
if (normalized === "localhost" || normalized === "::1" || normalized === "[::1]") {
|
|
13
|
+
return "127.0.0.1";
|
|
14
|
+
}
|
|
15
|
+
return normalized;
|
|
16
|
+
}
|
|
10
17
|
function normalizeMcpHttpUrl(value, options = {}) {
|
|
11
18
|
const raw = String(value || "").trim();
|
|
12
19
|
if (!raw) {
|
|
@@ -24,7 +31,7 @@ function normalizeMcpHttpUrl(value, options = {}) {
|
|
|
24
31
|
else {
|
|
25
32
|
url.protocol = url.protocol.toLowerCase();
|
|
26
33
|
}
|
|
27
|
-
url.hostname = url.hostname
|
|
34
|
+
url.hostname = canonicalizeSchedulerHostname(url.hostname);
|
|
28
35
|
const basePath = options.fromAgentWebSocketUrl
|
|
29
36
|
? url.pathname.replace(/\/ws\/agent\/?$/, "")
|
|
30
37
|
: url.pathname;
|
|
@@ -54,16 +61,27 @@ export class HttpClient {
|
|
|
54
61
|
*/
|
|
55
62
|
async callTool(toolName, args) {
|
|
56
63
|
await this.ensureRuntimeAccessToken();
|
|
64
|
+
const rejectedRuntimeAccessToken = this.serverConfig.runtimeAccessToken || "";
|
|
57
65
|
let response = await this.executeToolRequest(toolName, args);
|
|
58
66
|
if (response.status === 401 && this.serverConfig.runtimeBridgeBaseUrl) {
|
|
59
|
-
|
|
60
|
-
|
|
67
|
+
if (rejectedRuntimeAccessToken &&
|
|
68
|
+
this.serverConfig.runtimeAccessToken &&
|
|
69
|
+
this.serverConfig.runtimeAccessToken !== rejectedRuntimeAccessToken) {
|
|
70
|
+
logger.warn(`[HttpClient] MCP Tool ${toolName} 返回 401,检测到 runtime token 已被并发刷新,直接使用新 token 重试一次`);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
logger.warn(`[HttpClient] MCP Tool ${toolName} 返回 401,正在强制刷新 runtime token 后重试一次`);
|
|
74
|
+
await this.requestRuntimeAccessToken(true);
|
|
75
|
+
}
|
|
61
76
|
response = await this.executeToolRequest(toolName, args);
|
|
62
77
|
}
|
|
63
78
|
if (!response.ok) {
|
|
64
79
|
throw new Error(`MCP tool call failed: ${response.status} ${response.statusText}`);
|
|
65
80
|
}
|
|
66
81
|
const result = (await response.json());
|
|
82
|
+
if (typeof result.error === "string" && result.error.trim().length > 0) {
|
|
83
|
+
throw new Error(`MCP tool ${toolName} failed: ${result.error}`);
|
|
84
|
+
}
|
|
67
85
|
return result;
|
|
68
86
|
}
|
|
69
87
|
/**
|
|
@@ -140,6 +158,32 @@ export class HttpClient {
|
|
|
140
158
|
* 主流程:向 loopback bridge 请求 token -> 校验响应载荷 -> 写回共享 serverConfig 供 HTTP 与 WebSocket 复用。
|
|
141
159
|
*/
|
|
142
160
|
async requestRuntimeAccessToken(forceRefresh) {
|
|
161
|
+
while (true) {
|
|
162
|
+
const activeRefresh = this.serverConfig.runtimeAccessTokenRefreshPromise;
|
|
163
|
+
if (!activeRefresh) {
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
const activeRefreshForce = this.serverConfig.runtimeAccessTokenRefreshForce;
|
|
167
|
+
await activeRefresh;
|
|
168
|
+
if (!forceRefresh || activeRefreshForce || this.serverConfig.runtimeAccessTokenRefreshPromise) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
this.serverConfig.runtimeAccessTokenRefreshForce = forceRefresh;
|
|
173
|
+
this.serverConfig.runtimeAccessTokenRefreshPromise = this.performRuntimeAccessTokenRequest(forceRefresh);
|
|
174
|
+
try {
|
|
175
|
+
await this.serverConfig.runtimeAccessTokenRefreshPromise;
|
|
176
|
+
}
|
|
177
|
+
finally {
|
|
178
|
+
this.serverConfig.runtimeAccessTokenRefreshPromise = undefined;
|
|
179
|
+
this.serverConfig.runtimeAccessTokenRefreshForce = undefined;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* 执行实际 runtime token 请求。
|
|
184
|
+
* 主流程:由 requestRuntimeAccessToken 做单飞保护 -> 当前方法只负责调用 bridge 并写回共享 token。
|
|
185
|
+
*/
|
|
186
|
+
async performRuntimeAccessTokenRequest(forceRefresh) {
|
|
143
187
|
const runtimeBridgeBaseUrl = this.serverConfig.runtimeBridgeBaseUrl;
|
|
144
188
|
if (!runtimeBridgeBaseUrl) {
|
|
145
189
|
throw new Error("runtimeBridgeBaseUrl is required");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAarC,MAAM,mCAAmC,GAAG,OAAO,CAAC;AAEpD,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAChB,iEAAiE,EACjE,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,UAA+C,EAAE;IAC5F,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
|
+
import { EventEmitter } from 'node:events';
|
|
2
3
|
import { afterEach, beforeEach, describe, it, mock } from 'node:test';
|
|
4
|
+
import WebSocket from 'ws';
|
|
3
5
|
import { HttpClient } from './http-client.js';
|
|
6
|
+
import { WebSocketClient } from './websocket-client.js';
|
|
7
|
+
class FakeSocket extends EventEmitter {
|
|
8
|
+
readyState = WebSocket.CONNECTING;
|
|
9
|
+
send() { }
|
|
10
|
+
close() {
|
|
11
|
+
this.readyState = WebSocket.CLOSED;
|
|
12
|
+
}
|
|
13
|
+
terminate() {
|
|
14
|
+
this.readyState = WebSocket.CLOSED;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
4
17
|
describe('HttpClient', () => {
|
|
5
18
|
const originalFetch = global.fetch;
|
|
6
19
|
let fetchCalls = [];
|
|
@@ -62,7 +75,7 @@ describe('HttpClient', () => {
|
|
|
62
75
|
maxReconnectAttempts: -1,
|
|
63
76
|
};
|
|
64
77
|
const client = new HttpClient(config);
|
|
65
|
-
assert.equal(client.getMcpHttpUrl(), 'http://
|
|
78
|
+
assert.equal(client.getMcpHttpUrl(), 'http://127.0.0.1:8080/mcp/call');
|
|
66
79
|
});
|
|
67
80
|
it('derives HTTP URL from WebSocket URL (wss://)', () => {
|
|
68
81
|
const config = {
|
|
@@ -83,7 +96,7 @@ describe('HttpClient', () => {
|
|
|
83
96
|
mcpHttpUrl: '',
|
|
84
97
|
};
|
|
85
98
|
const client = new HttpClient(config);
|
|
86
|
-
assert.equal(client.getMcpHttpUrl(), 'http://
|
|
99
|
+
assert.equal(client.getMcpHttpUrl(), 'http://127.0.0.1:8080/mcp/call');
|
|
87
100
|
});
|
|
88
101
|
it('handles whitespace-only mcpHttpUrl', () => {
|
|
89
102
|
const config = {
|
|
@@ -94,7 +107,7 @@ describe('HttpClient', () => {
|
|
|
94
107
|
mcpHttpUrl: ' ',
|
|
95
108
|
};
|
|
96
109
|
const client = new HttpClient(config);
|
|
97
|
-
assert.equal(client.getMcpHttpUrl(), 'http://
|
|
110
|
+
assert.equal(client.getMcpHttpUrl(), 'http://127.0.0.1:8080/mcp/call');
|
|
98
111
|
});
|
|
99
112
|
it('repairs duplicated ports from configured mcpHttpUrl', () => {
|
|
100
113
|
const config = {
|
|
@@ -142,7 +155,7 @@ describe('HttpClient', () => {
|
|
|
142
155
|
await client.callTool('test-tool', { arg1: 'value1' });
|
|
143
156
|
assert.equal(fetchCalls.length, 1);
|
|
144
157
|
const [url, options] = fetchCalls[0];
|
|
145
|
-
assert.equal(url, 'http://
|
|
158
|
+
assert.equal(url, 'http://127.0.0.1:8080/mcp/call');
|
|
146
159
|
assert.equal(options.method, 'POST');
|
|
147
160
|
assert.equal(options.headers['Content-Type'], 'application/json');
|
|
148
161
|
assert.equal(options.headers['X-Runtime-Token'], 'runtime-token');
|
|
@@ -192,7 +205,7 @@ describe('HttpClient', () => {
|
|
|
192
205
|
});
|
|
193
206
|
await assert.rejects(() => client.callTool('test-tool', {}), /MCP tool call failed: 500 Internal Server Error/);
|
|
194
207
|
});
|
|
195
|
-
it('
|
|
208
|
+
it('throws a clear tool error when result contains error field', async () => {
|
|
196
209
|
const config = {
|
|
197
210
|
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
198
211
|
heartbeatInterval: 15000,
|
|
@@ -204,8 +217,7 @@ describe('HttpClient', () => {
|
|
|
204
217
|
ok: true,
|
|
205
218
|
json: async () => ({ error: 'Tool execution failed' }),
|
|
206
219
|
});
|
|
207
|
-
|
|
208
|
-
assert.deepEqual(result, { error: 'Tool execution failed' });
|
|
220
|
+
await assert.rejects(() => client.callTool('test-tool', {}), /MCP tool test-tool failed: Tool execution failed/);
|
|
209
221
|
});
|
|
210
222
|
it('handles 401 unauthorized response', async () => {
|
|
211
223
|
const config = {
|
|
@@ -235,7 +247,7 @@ describe('HttpClient', () => {
|
|
|
235
247
|
const client = new HttpClient(config);
|
|
236
248
|
global.fetch = async (url, options) => {
|
|
237
249
|
fetchCalls.push([url.toString(), options]);
|
|
238
|
-
if (url.toString() === 'http://
|
|
250
|
+
if (url.toString() === 'http://127.0.0.1:8080/mcp/call' && fetchCalls.length === 1) {
|
|
239
251
|
return {
|
|
240
252
|
ok: false,
|
|
241
253
|
status: 401,
|
|
@@ -270,6 +282,329 @@ describe('HttpClient', () => {
|
|
|
270
282
|
assert.equal(fetchCalls[2][1].headers['X-Runtime-Token'], 'fresh-token');
|
|
271
283
|
assert.equal(config.runtimeAccessToken, 'fresh-token');
|
|
272
284
|
});
|
|
285
|
+
it('shares one forced runtime token refresh across concurrent 401 responses', async () => {
|
|
286
|
+
const config = {
|
|
287
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
288
|
+
heartbeatInterval: 15000,
|
|
289
|
+
reconnectInterval: 200,
|
|
290
|
+
maxReconnectAttempts: -1,
|
|
291
|
+
userId: 'user-1',
|
|
292
|
+
runtimeAccessToken: 'stale-token',
|
|
293
|
+
runtimeBridgeBaseUrl: 'http://127.0.0.1:18081',
|
|
294
|
+
};
|
|
295
|
+
const client = new HttpClient(config);
|
|
296
|
+
const staleTokenCalls = new Set();
|
|
297
|
+
global.fetch = async (url, options) => {
|
|
298
|
+
fetchCalls.push([url.toString(), options]);
|
|
299
|
+
if (url.toString() === 'http://127.0.0.1:18081/runtime/binding/request-token') {
|
|
300
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
301
|
+
return {
|
|
302
|
+
ok: true,
|
|
303
|
+
status: 200,
|
|
304
|
+
statusText: 'OK',
|
|
305
|
+
json: async () => ({ ok: true, runtimeAccessToken: 'fresh-token' }),
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
const body = JSON.parse(String(options?.body || '{}'));
|
|
309
|
+
const token = options.headers['X-Runtime-Token'];
|
|
310
|
+
if (token === 'stale-token') {
|
|
311
|
+
staleTokenCalls.add(body.tool || '');
|
|
312
|
+
return {
|
|
313
|
+
ok: false,
|
|
314
|
+
status: 401,
|
|
315
|
+
statusText: 'Unauthorized',
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
return {
|
|
319
|
+
ok: true,
|
|
320
|
+
status: 200,
|
|
321
|
+
statusText: 'OK',
|
|
322
|
+
json: async () => ({ tool: body.tool, token }),
|
|
323
|
+
};
|
|
324
|
+
};
|
|
325
|
+
const [first, second] = await Promise.all([
|
|
326
|
+
client.callTool('get_memory_stats', { agentId: 'agent-1' }),
|
|
327
|
+
client.callTool('discover_group_rooms', { agentId: 'agent-1' }),
|
|
328
|
+
]);
|
|
329
|
+
assert.deepEqual(first, { tool: 'get_memory_stats', token: 'fresh-token' });
|
|
330
|
+
assert.deepEqual(second, { tool: 'discover_group_rooms', token: 'fresh-token' });
|
|
331
|
+
assert.deepEqual(staleTokenCalls, new Set(['get_memory_stats', 'discover_group_rooms']));
|
|
332
|
+
assert.equal(fetchCalls.filter(([url]) => url === 'http://127.0.0.1:18081/runtime/binding/request-token').length, 1);
|
|
333
|
+
assert.equal(config.runtimeAccessToken, 'fresh-token');
|
|
334
|
+
});
|
|
335
|
+
it('shares one initial runtime token request across concurrent calls without a token', async () => {
|
|
336
|
+
const config = {
|
|
337
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
338
|
+
heartbeatInterval: 15000,
|
|
339
|
+
reconnectInterval: 200,
|
|
340
|
+
maxReconnectAttempts: -1,
|
|
341
|
+
userId: 'user-1',
|
|
342
|
+
runtimeBridgeBaseUrl: 'http://127.0.0.1:18081',
|
|
343
|
+
};
|
|
344
|
+
const client = new HttpClient(config);
|
|
345
|
+
global.fetch = async (url, options) => {
|
|
346
|
+
fetchCalls.push([url.toString(), options]);
|
|
347
|
+
if (url.toString() === 'http://127.0.0.1:18081/runtime/binding/request-token') {
|
|
348
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
349
|
+
return {
|
|
350
|
+
ok: true,
|
|
351
|
+
status: 200,
|
|
352
|
+
statusText: 'OK',
|
|
353
|
+
json: async () => ({ ok: true, runtimeAccessToken: 'startup-token' }),
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
const body = JSON.parse(String(options?.body || '{}'));
|
|
357
|
+
return {
|
|
358
|
+
ok: true,
|
|
359
|
+
status: 200,
|
|
360
|
+
statusText: 'OK',
|
|
361
|
+
json: async () => ({ tool: body.tool, token: options.headers['X-Runtime-Token'] }),
|
|
362
|
+
};
|
|
363
|
+
};
|
|
364
|
+
const [first, second] = await Promise.all([
|
|
365
|
+
client.callTool('get_memory_stats', { agentId: 'agent-1' }),
|
|
366
|
+
client.callTool('discover_group_rooms', { agentId: 'agent-1' }),
|
|
367
|
+
]);
|
|
368
|
+
assert.deepEqual(first, { tool: 'get_memory_stats', token: 'startup-token' });
|
|
369
|
+
assert.deepEqual(second, { tool: 'discover_group_rooms', token: 'startup-token' });
|
|
370
|
+
assert.equal(fetchCalls.filter(([url]) => url === 'http://127.0.0.1:18081/runtime/binding/request-token').length, 1);
|
|
371
|
+
assert.equal(fetchCalls[0][1].body, JSON.stringify({
|
|
372
|
+
userId: 'user-1',
|
|
373
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
374
|
+
forceRefresh: false,
|
|
375
|
+
}));
|
|
376
|
+
assert.equal(config.runtimeAccessToken, 'startup-token');
|
|
377
|
+
});
|
|
378
|
+
it('clears failed runtime token refresh so later calls can retry', async () => {
|
|
379
|
+
const config = {
|
|
380
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
381
|
+
heartbeatInterval: 15000,
|
|
382
|
+
reconnectInterval: 200,
|
|
383
|
+
maxReconnectAttempts: -1,
|
|
384
|
+
userId: 'user-1',
|
|
385
|
+
runtimeBridgeBaseUrl: 'http://127.0.0.1:18081',
|
|
386
|
+
};
|
|
387
|
+
const client = new HttpClient(config);
|
|
388
|
+
let tokenRequestCount = 0;
|
|
389
|
+
global.fetch = async (url, options) => {
|
|
390
|
+
fetchCalls.push([url.toString(), options]);
|
|
391
|
+
if (url.toString() === 'http://127.0.0.1:18081/runtime/binding/request-token') {
|
|
392
|
+
tokenRequestCount += 1;
|
|
393
|
+
if (tokenRequestCount === 1) {
|
|
394
|
+
return {
|
|
395
|
+
ok: false,
|
|
396
|
+
status: 503,
|
|
397
|
+
statusText: 'Service Unavailable',
|
|
398
|
+
text: async () => 'bridge unavailable',
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
return {
|
|
402
|
+
ok: true,
|
|
403
|
+
status: 200,
|
|
404
|
+
statusText: 'OK',
|
|
405
|
+
json: async () => ({ ok: true, runtimeAccessToken: 'recovered-token' }),
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
return {
|
|
409
|
+
ok: true,
|
|
410
|
+
status: 200,
|
|
411
|
+
statusText: 'OK',
|
|
412
|
+
json: async () => ({ token: options.headers['X-Runtime-Token'] }),
|
|
413
|
+
};
|
|
414
|
+
};
|
|
415
|
+
await assert.rejects(() => client.callTool('get_memory_stats', { agentId: 'agent-1' }), /Failed to request runtime token from runtime-bridge: 503 Service Unavailable - bridge unavailable/);
|
|
416
|
+
const result = await client.callTool('get_memory_stats', { agentId: 'agent-1' });
|
|
417
|
+
assert.deepEqual(result, { token: 'recovered-token' });
|
|
418
|
+
assert.equal(tokenRequestCount, 2);
|
|
419
|
+
assert.equal(config.runtimeAccessToken, 'recovered-token');
|
|
420
|
+
});
|
|
421
|
+
it('shares one runtime token refresh between HTTP tools and websocket recovery', async () => {
|
|
422
|
+
const config = {
|
|
423
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
424
|
+
heartbeatInterval: 1000,
|
|
425
|
+
heartbeatTimeout: 3000,
|
|
426
|
+
reconnectInterval: 10,
|
|
427
|
+
maxReconnectAttempts: 2,
|
|
428
|
+
userId: 'user-1',
|
|
429
|
+
runtimeAccessToken: 'stale-token',
|
|
430
|
+
runtimeBridgeBaseUrl: 'http://127.0.0.1:18081',
|
|
431
|
+
};
|
|
432
|
+
const httpClient = new HttpClient(config);
|
|
433
|
+
let tokenRequestCount = 0;
|
|
434
|
+
let websocketAttempt = 0;
|
|
435
|
+
const websocketUrls = [];
|
|
436
|
+
let releaseRefresh;
|
|
437
|
+
const refreshGate = new Promise((resolve) => {
|
|
438
|
+
releaseRefresh = resolve;
|
|
439
|
+
});
|
|
440
|
+
global.fetch = async (url, options) => {
|
|
441
|
+
fetchCalls.push([url.toString(), options]);
|
|
442
|
+
if (url.toString() === 'http://127.0.0.1:18081/runtime/binding/request-token') {
|
|
443
|
+
tokenRequestCount += 1;
|
|
444
|
+
await refreshGate;
|
|
445
|
+
return {
|
|
446
|
+
ok: true,
|
|
447
|
+
status: 200,
|
|
448
|
+
statusText: 'OK',
|
|
449
|
+
json: async () => ({ ok: true, runtimeAccessToken: 'shared-fresh-token' }),
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
const body = JSON.parse(String(options?.body || '{}'));
|
|
453
|
+
const token = options.headers['X-Runtime-Token'];
|
|
454
|
+
if (token === 'stale-token') {
|
|
455
|
+
return {
|
|
456
|
+
ok: false,
|
|
457
|
+
status: 401,
|
|
458
|
+
statusText: 'Unauthorized',
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
return {
|
|
462
|
+
ok: true,
|
|
463
|
+
status: 200,
|
|
464
|
+
statusText: 'OK',
|
|
465
|
+
json: async () => ({ tool: body.tool, token }),
|
|
466
|
+
};
|
|
467
|
+
};
|
|
468
|
+
const wsClient = new WebSocketClient(config, (url) => {
|
|
469
|
+
websocketUrls.push(url);
|
|
470
|
+
websocketAttempt += 1;
|
|
471
|
+
const socket = new FakeSocket();
|
|
472
|
+
setImmediate(() => {
|
|
473
|
+
socket.readyState = WebSocket.OPEN;
|
|
474
|
+
socket.emit('open');
|
|
475
|
+
if (websocketAttempt === 1) {
|
|
476
|
+
socket.readyState = WebSocket.CLOSED;
|
|
477
|
+
socket.emit('close', 1008, Buffer.from('policy violation'));
|
|
478
|
+
}
|
|
479
|
+
});
|
|
480
|
+
return socket;
|
|
481
|
+
});
|
|
482
|
+
try {
|
|
483
|
+
wsClient.on('error', () => {
|
|
484
|
+
// suppress unhandled error event in test environment
|
|
485
|
+
});
|
|
486
|
+
const websocketConnected = wsClient.connect('agent-1');
|
|
487
|
+
const httpCall = httpClient.callTool('get_memory_stats', { agentId: 'agent-1' });
|
|
488
|
+
await new Promise((resolve, reject) => {
|
|
489
|
+
const timer = setTimeout(() => reject(new Error('expected both refresh waiters')), 500);
|
|
490
|
+
const interval = setInterval(() => {
|
|
491
|
+
if (tokenRequestCount === 1 && config.runtimeAccessTokenRefreshPromise) {
|
|
492
|
+
clearInterval(interval);
|
|
493
|
+
clearTimeout(timer);
|
|
494
|
+
resolve();
|
|
495
|
+
}
|
|
496
|
+
}, 5);
|
|
497
|
+
});
|
|
498
|
+
const websocketReconnected = new Promise((resolve, reject) => {
|
|
499
|
+
const timer = setTimeout(() => reject(new Error('expected websocket reconnect')), 500);
|
|
500
|
+
wsClient.on('connected', () => {
|
|
501
|
+
if (websocketAttempt >= 2) {
|
|
502
|
+
clearTimeout(timer);
|
|
503
|
+
resolve();
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
});
|
|
507
|
+
releaseRefresh?.();
|
|
508
|
+
const result = await httpCall;
|
|
509
|
+
await websocketConnected;
|
|
510
|
+
await websocketReconnected;
|
|
511
|
+
assert.deepEqual(result, { tool: 'get_memory_stats', token: 'shared-fresh-token' });
|
|
512
|
+
assert.equal(tokenRequestCount, 1);
|
|
513
|
+
assert.equal(config.runtimeAccessToken, 'shared-fresh-token');
|
|
514
|
+
assert.equal(new URL(websocketUrls[1] || '').searchParams.get('runtimeAccessToken'), 'shared-fresh-token');
|
|
515
|
+
}
|
|
516
|
+
finally {
|
|
517
|
+
releaseRefresh?.();
|
|
518
|
+
wsClient.disconnect();
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
it('shares one forced refresh among multiple waiters after an initial non-forced refresh', async () => {
|
|
522
|
+
const config = {
|
|
523
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
524
|
+
heartbeatInterval: 15000,
|
|
525
|
+
reconnectInterval: 200,
|
|
526
|
+
maxReconnectAttempts: -1,
|
|
527
|
+
userId: 'user-1',
|
|
528
|
+
runtimeBridgeBaseUrl: 'http://127.0.0.1:18081',
|
|
529
|
+
};
|
|
530
|
+
const initialClient = new HttpClient(config);
|
|
531
|
+
const forceClient = new HttpClient(config);
|
|
532
|
+
let tokenRequestCount = 0;
|
|
533
|
+
let forceRequestCount = 0;
|
|
534
|
+
let releaseInitialRefresh;
|
|
535
|
+
const initialRefreshGate = new Promise((resolve) => {
|
|
536
|
+
releaseInitialRefresh = resolve;
|
|
537
|
+
});
|
|
538
|
+
global.fetch = async (url, options) => {
|
|
539
|
+
fetchCalls.push([url.toString(), options]);
|
|
540
|
+
if (url.toString() === 'http://127.0.0.1:18081/runtime/binding/request-token') {
|
|
541
|
+
tokenRequestCount += 1;
|
|
542
|
+
const body = JSON.parse(String(options?.body || '{}'));
|
|
543
|
+
if (body.forceRefresh) {
|
|
544
|
+
forceRequestCount += 1;
|
|
545
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
546
|
+
return {
|
|
547
|
+
ok: true,
|
|
548
|
+
status: 200,
|
|
549
|
+
statusText: 'OK',
|
|
550
|
+
json: async () => ({ ok: true, runtimeAccessToken: 'forced-token' }),
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
await initialRefreshGate;
|
|
554
|
+
return {
|
|
555
|
+
ok: true,
|
|
556
|
+
status: 200,
|
|
557
|
+
statusText: 'OK',
|
|
558
|
+
json: async () => ({ ok: true, runtimeAccessToken: 'initial-token' }),
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
const body = JSON.parse(String(options?.body || '{}'));
|
|
562
|
+
const token = options.headers['X-Runtime-Token'];
|
|
563
|
+
if (token === 'initial-token') {
|
|
564
|
+
return {
|
|
565
|
+
ok: false,
|
|
566
|
+
status: 401,
|
|
567
|
+
statusText: 'Unauthorized',
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
return {
|
|
571
|
+
ok: true,
|
|
572
|
+
status: 200,
|
|
573
|
+
statusText: 'OK',
|
|
574
|
+
json: async () => ({ tool: body.tool, token }),
|
|
575
|
+
};
|
|
576
|
+
};
|
|
577
|
+
try {
|
|
578
|
+
const initialCall = initialClient.callTool('get_profile', { agentId: 'agent-1' });
|
|
579
|
+
await new Promise((resolve, reject) => {
|
|
580
|
+
const timer = setTimeout(() => reject(new Error('expected initial refresh to start')), 500);
|
|
581
|
+
const interval = setInterval(() => {
|
|
582
|
+
if (tokenRequestCount === 1 && config.runtimeAccessTokenRefreshPromise) {
|
|
583
|
+
clearInterval(interval);
|
|
584
|
+
clearTimeout(timer);
|
|
585
|
+
resolve();
|
|
586
|
+
}
|
|
587
|
+
}, 5);
|
|
588
|
+
});
|
|
589
|
+
const firstForceCall = forceClient.callTool('get_memory_stats', { agentId: 'agent-1' });
|
|
590
|
+
const secondForceCall = forceClient.callTool('discover_group_rooms', { agentId: 'agent-1' });
|
|
591
|
+
releaseInitialRefresh?.();
|
|
592
|
+
const [initialResult, firstForceResult, secondForceResult] = await Promise.all([
|
|
593
|
+
initialCall,
|
|
594
|
+
firstForceCall,
|
|
595
|
+
secondForceCall,
|
|
596
|
+
]);
|
|
597
|
+
assert.deepEqual(initialResult, { tool: 'get_profile', token: 'forced-token' });
|
|
598
|
+
assert.deepEqual(firstForceResult, { tool: 'get_memory_stats', token: 'forced-token' });
|
|
599
|
+
assert.deepEqual(secondForceResult, { tool: 'discover_group_rooms', token: 'forced-token' });
|
|
600
|
+
assert.equal(tokenRequestCount, 2);
|
|
601
|
+
assert.equal(forceRequestCount, 1);
|
|
602
|
+
assert.equal(config.runtimeAccessToken, 'forced-token');
|
|
603
|
+
}
|
|
604
|
+
finally {
|
|
605
|
+
releaseInitialRefresh?.();
|
|
606
|
+
}
|
|
607
|
+
});
|
|
273
608
|
it('does not retry 401 more than once after forced token refresh', async () => {
|
|
274
609
|
const config = {
|
|
275
610
|
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
@@ -298,7 +633,7 @@ describe('HttpClient', () => {
|
|
|
298
633
|
};
|
|
299
634
|
await assert.rejects(() => client.callTool('my_task', { agentId: 'agent-1' }), /MCP tool call failed: 401 Unauthorized/);
|
|
300
635
|
assert.equal(fetchCalls.length, 3);
|
|
301
|
-
assert.equal(fetchCalls.filter(([url]) => url === 'http://
|
|
636
|
+
assert.equal(fetchCalls.filter(([url]) => url === 'http://127.0.0.1:8080/mcp/call').length, 2);
|
|
302
637
|
assert.equal(fetchCalls.filter(([url]) => url === 'http://127.0.0.1:18081/runtime/binding/request-token').length, 1);
|
|
303
638
|
});
|
|
304
639
|
it('handles 404 not found response', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.test.js","sourceRoot":"","sources":["../src/http-client.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-client.test.js","sourceRoot":"","sources":["../src/http-client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -123,11 +123,12 @@ export declare class McpServer {
|
|
|
123
123
|
private handleSendPrivate;
|
|
124
124
|
private handlePollMessage;
|
|
125
125
|
/**
|
|
126
|
-
*
|
|
127
|
-
*
|
|
126
|
+
* 持续补拉未读消息直到有消息可返回。
|
|
127
|
+
* 主流程:用有限后端长轮询分片阻塞补拉 -> 空返回时短暂退避 -> 继续等待,避免 poll_message 空轮询唤醒模型。
|
|
128
|
+
* 注意:poll_message 是 Agent 主循环的永久阻塞入口,不能恢复为按总时长限时返回空结果。
|
|
128
129
|
*/
|
|
129
130
|
private hydrateUnreadMessagesUntilAvailable;
|
|
130
|
-
private
|
|
131
|
+
private resolvePollMessageBlockWaitMs;
|
|
131
132
|
private resolvePollMessageEmptyRetryDelayMs;
|
|
132
133
|
/**
|
|
133
134
|
* 解析正整数环境变量。
|