aws-runtime-bridge 1.1.0 → 1.1.2
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 +31 -9
- package/dist/index.js +2 -0
- package/dist/routes/instance.d.ts +10 -0
- package/dist/routes/instance.d.ts.map +1 -1
- package/dist/routes/instance.js +37 -13
- package/dist/routes/instance.test.js +38 -1
- package/dist/services/auto-register.d.ts +4 -0
- package/dist/services/auto-register.d.ts.map +1 -1
- package/dist/services/auto-register.js +3 -34
- package/dist/services/startup-config-wizard.d.ts +15 -0
- package/dist/services/startup-config-wizard.d.ts.map +1 -0
- package/dist/services/startup-config-wizard.js +122 -0
- package/dist/services/startup-config-wizard.test.d.ts +2 -0
- package/dist/services/startup-config-wizard.test.d.ts.map +1 -0
- package/dist/services/startup-config-wizard.test.js +103 -0
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts +166 -0
- package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/agent-client.js +602 -0
- package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.js +534 -0
- package/package/aws-client-agent-mcp/dist/agent-client.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/config.d.ts +22 -0
- package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/config.js +106 -0
- package/package/aws-client-agent-mcp/dist/config.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/config.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/config.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/config.test.js +139 -0
- package/package/aws-client-agent-mcp/dist/config.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/constants.d.ts +15 -0
- package/package/aws-client-agent-mcp/dist/constants.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/constants.js +19 -0
- package/package/aws-client-agent-mcp/dist/constants.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/http-client.d.ts +28 -0
- package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/http-client.js +96 -0
- package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/http-client.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/http-client.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/http-client.test.js +228 -0
- package/package/aws-client-agent-mcp/dist/http-client.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/index.d.ts +14 -0
- package/package/aws-client-agent-mcp/dist/index.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/index.js +30 -0
- package/package/aws-client-agent-mcp/dist/index.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/logger.d.ts +7 -0
- package/package/aws-client-agent-mcp/dist/logger.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/logger.js +19 -0
- package/package/aws-client-agent-mcp/dist/logger.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +77 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.js +438 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js +624 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +78 -0
- package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/mcp-tools.js +420 -0
- package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts +61 -0
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/memory-store.js +268 -0
- package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/memory-store.test.js +164 -0
- package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +87 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.js +185 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.test.js +44 -0
- package/package/aws-client-agent-mcp/dist/message-buffer.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/messageContent.d.ts +53 -0
- package/package/aws-client-agent-mcp/dist/messageContent.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/messageContent.js +125 -0
- package/package/aws-client-agent-mcp/dist/messageContent.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts +3 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js +50 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js +90 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +66 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.js +237 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js +19 -0
- package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/types.d.ts +309 -0
- package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/types.js +9 -0
- package/package/aws-client-agent-mcp/dist/types.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +94 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.js +316 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js +191 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js.map +1 -0
- package/package.json +3 -1
- package/scripts/ensure-bin-executable.mjs +31 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { describe, it, mock, beforeEach, afterEach } from 'node:test';
|
|
3
|
+
import { HttpClient } from './http-client.js';
|
|
4
|
+
describe('HttpClient', () => {
|
|
5
|
+
const originalFetch = global.fetch;
|
|
6
|
+
let fetchCalls = [];
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
fetchCalls = [];
|
|
9
|
+
global.fetch = async (url, options) => {
|
|
10
|
+
fetchCalls.push([url.toString(), options]);
|
|
11
|
+
return {
|
|
12
|
+
ok: true,
|
|
13
|
+
status: 200,
|
|
14
|
+
statusText: 'OK',
|
|
15
|
+
json: async () => ({ result: 'success' }),
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
afterEach(() => {
|
|
20
|
+
global.fetch = originalFetch;
|
|
21
|
+
mock.restoreAll();
|
|
22
|
+
});
|
|
23
|
+
describe('constructor and URL resolution', () => {
|
|
24
|
+
it('uses explicit mcpHttpUrl when provided', () => {
|
|
25
|
+
const config = {
|
|
26
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
27
|
+
heartbeatInterval: 15000,
|
|
28
|
+
reconnectInterval: 200,
|
|
29
|
+
maxReconnectAttempts: -1,
|
|
30
|
+
internalApiKey: 'test-key',
|
|
31
|
+
mcpHttpUrl: 'http://custom:3000/mcp/call',
|
|
32
|
+
};
|
|
33
|
+
const client = new HttpClient(config);
|
|
34
|
+
assert.equal(client.getMcpHttpUrl(), 'http://custom:3000/mcp/call');
|
|
35
|
+
});
|
|
36
|
+
it('appends /mcp/call to mcpHttpUrl when not present', () => {
|
|
37
|
+
const config = {
|
|
38
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
39
|
+
heartbeatInterval: 15000,
|
|
40
|
+
reconnectInterval: 200,
|
|
41
|
+
maxReconnectAttempts: -1,
|
|
42
|
+
internalApiKey: 'test-key',
|
|
43
|
+
mcpHttpUrl: 'http://custom:3000',
|
|
44
|
+
};
|
|
45
|
+
const client = new HttpClient(config);
|
|
46
|
+
assert.equal(client.getMcpHttpUrl(), 'http://custom:3000/mcp/call');
|
|
47
|
+
});
|
|
48
|
+
it('appends /mcp/call to mcpHttpUrl with trailing slash', () => {
|
|
49
|
+
const config = {
|
|
50
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
51
|
+
heartbeatInterval: 15000,
|
|
52
|
+
reconnectInterval: 200,
|
|
53
|
+
maxReconnectAttempts: -1,
|
|
54
|
+
internalApiKey: 'test-key',
|
|
55
|
+
mcpHttpUrl: 'http://custom:3000/',
|
|
56
|
+
};
|
|
57
|
+
const client = new HttpClient(config);
|
|
58
|
+
assert.equal(client.getMcpHttpUrl(), 'http://custom:3000/mcp/call');
|
|
59
|
+
});
|
|
60
|
+
it('derives HTTP URL from WebSocket URL (ws://)', () => {
|
|
61
|
+
const config = {
|
|
62
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
63
|
+
heartbeatInterval: 15000,
|
|
64
|
+
reconnectInterval: 200,
|
|
65
|
+
maxReconnectAttempts: -1,
|
|
66
|
+
internalApiKey: 'test-key',
|
|
67
|
+
};
|
|
68
|
+
const client = new HttpClient(config);
|
|
69
|
+
assert.equal(client.getMcpHttpUrl(), 'http://localhost:8080/mcp/call');
|
|
70
|
+
});
|
|
71
|
+
it('derives HTTP URL from WebSocket URL (wss://)', () => {
|
|
72
|
+
const config = {
|
|
73
|
+
serverUrl: 'wss://secure.example.com/ws/agent',
|
|
74
|
+
heartbeatInterval: 15000,
|
|
75
|
+
reconnectInterval: 200,
|
|
76
|
+
maxReconnectAttempts: -1,
|
|
77
|
+
internalApiKey: 'test-key',
|
|
78
|
+
};
|
|
79
|
+
const client = new HttpClient(config);
|
|
80
|
+
assert.equal(client.getMcpHttpUrl(), 'https://secure.example.com/mcp/call');
|
|
81
|
+
});
|
|
82
|
+
it('handles empty mcpHttpUrl by deriving from serverUrl', () => {
|
|
83
|
+
const config = {
|
|
84
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
85
|
+
heartbeatInterval: 15000,
|
|
86
|
+
reconnectInterval: 200,
|
|
87
|
+
maxReconnectAttempts: -1,
|
|
88
|
+
internalApiKey: 'test-key',
|
|
89
|
+
mcpHttpUrl: '',
|
|
90
|
+
};
|
|
91
|
+
const client = new HttpClient(config);
|
|
92
|
+
assert.equal(client.getMcpHttpUrl(), 'http://localhost:8080/mcp/call');
|
|
93
|
+
});
|
|
94
|
+
it('handles whitespace-only mcpHttpUrl', () => {
|
|
95
|
+
const config = {
|
|
96
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
97
|
+
heartbeatInterval: 15000,
|
|
98
|
+
reconnectInterval: 200,
|
|
99
|
+
maxReconnectAttempts: -1,
|
|
100
|
+
internalApiKey: 'test-key',
|
|
101
|
+
mcpHttpUrl: ' ',
|
|
102
|
+
};
|
|
103
|
+
const client = new HttpClient(config);
|
|
104
|
+
assert.equal(client.getMcpHttpUrl(), 'http://localhost:8080/mcp/call');
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
describe('callTool', () => {
|
|
108
|
+
it('makes POST request with correct headers', async () => {
|
|
109
|
+
const config = {
|
|
110
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
111
|
+
heartbeatInterval: 15000,
|
|
112
|
+
reconnectInterval: 200,
|
|
113
|
+
maxReconnectAttempts: -1,
|
|
114
|
+
internalApiKey: 'test-api-key',
|
|
115
|
+
};
|
|
116
|
+
const client = new HttpClient(config);
|
|
117
|
+
await client.callTool('test-tool', { arg1: 'value1' });
|
|
118
|
+
assert.equal(fetchCalls.length, 1);
|
|
119
|
+
const [url, options] = fetchCalls[0];
|
|
120
|
+
assert.equal(url, 'http://localhost:8080/mcp/call');
|
|
121
|
+
assert.equal(options.method, 'POST');
|
|
122
|
+
assert.equal(options.headers['Content-Type'], 'application/json');
|
|
123
|
+
assert.equal(options.headers['X-Internal-API-Key'], 'test-api-key');
|
|
124
|
+
assert.equal(options.body, JSON.stringify({ tool: 'test-tool', arguments: { arg1: 'value1' } }));
|
|
125
|
+
});
|
|
126
|
+
it('makes POST request without API key when not configured', async () => {
|
|
127
|
+
const config = {
|
|
128
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
129
|
+
heartbeatInterval: 15000,
|
|
130
|
+
reconnectInterval: 200,
|
|
131
|
+
maxReconnectAttempts: -1,
|
|
132
|
+
};
|
|
133
|
+
const client = new HttpClient(config);
|
|
134
|
+
await client.callTool('test-tool', {});
|
|
135
|
+
const [, options] = fetchCalls[0];
|
|
136
|
+
assert.equal(options.headers['X-Internal-API-Key'], undefined);
|
|
137
|
+
});
|
|
138
|
+
it('returns parsed result on success', async () => {
|
|
139
|
+
const config = {
|
|
140
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
141
|
+
heartbeatInterval: 15000,
|
|
142
|
+
reconnectInterval: 200,
|
|
143
|
+
maxReconnectAttempts: -1,
|
|
144
|
+
};
|
|
145
|
+
const client = new HttpClient(config);
|
|
146
|
+
global.fetch = async () => ({
|
|
147
|
+
ok: true,
|
|
148
|
+
json: async () => ({ data: 'test-data', count: 42 }),
|
|
149
|
+
});
|
|
150
|
+
const result = await client.callTool('test-tool', {});
|
|
151
|
+
assert.deepEqual(result, { data: 'test-data', count: 42 });
|
|
152
|
+
});
|
|
153
|
+
it('throws error when response is not ok', async () => {
|
|
154
|
+
const config = {
|
|
155
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
156
|
+
heartbeatInterval: 15000,
|
|
157
|
+
reconnectInterval: 200,
|
|
158
|
+
maxReconnectAttempts: -1,
|
|
159
|
+
};
|
|
160
|
+
const client = new HttpClient(config);
|
|
161
|
+
global.fetch = async () => ({
|
|
162
|
+
ok: false,
|
|
163
|
+
status: 500,
|
|
164
|
+
statusText: 'Internal Server Error',
|
|
165
|
+
});
|
|
166
|
+
await assert.rejects(() => client.callTool('test-tool', {}), /MCP Tool 调用失败: 500 Internal Server Error/);
|
|
167
|
+
});
|
|
168
|
+
it('throws error when result contains error field', async () => {
|
|
169
|
+
const config = {
|
|
170
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
171
|
+
heartbeatInterval: 15000,
|
|
172
|
+
reconnectInterval: 200,
|
|
173
|
+
maxReconnectAttempts: -1,
|
|
174
|
+
};
|
|
175
|
+
const client = new HttpClient(config);
|
|
176
|
+
global.fetch = async () => ({
|
|
177
|
+
ok: true,
|
|
178
|
+
json: async () => ({ error: 'Tool execution failed' }),
|
|
179
|
+
});
|
|
180
|
+
await assert.rejects(() => client.callTool('test-tool', {}), /MCP Tool 错误: Tool execution failed/);
|
|
181
|
+
});
|
|
182
|
+
it('handles 401 unauthorized response', async () => {
|
|
183
|
+
const config = {
|
|
184
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
185
|
+
heartbeatInterval: 15000,
|
|
186
|
+
reconnectInterval: 200,
|
|
187
|
+
maxReconnectAttempts: -1,
|
|
188
|
+
internalApiKey: 'invalid-key',
|
|
189
|
+
};
|
|
190
|
+
const client = new HttpClient(config);
|
|
191
|
+
global.fetch = async () => ({
|
|
192
|
+
ok: false,
|
|
193
|
+
status: 401,
|
|
194
|
+
statusText: 'Unauthorized',
|
|
195
|
+
});
|
|
196
|
+
await assert.rejects(() => client.callTool('test-tool', {}), /MCP Tool 调用失败: 401 Unauthorized/);
|
|
197
|
+
});
|
|
198
|
+
it('handles 404 not found response', async () => {
|
|
199
|
+
const config = {
|
|
200
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
201
|
+
heartbeatInterval: 15000,
|
|
202
|
+
reconnectInterval: 200,
|
|
203
|
+
maxReconnectAttempts: -1,
|
|
204
|
+
};
|
|
205
|
+
const client = new HttpClient(config);
|
|
206
|
+
global.fetch = async () => ({
|
|
207
|
+
ok: false,
|
|
208
|
+
status: 404,
|
|
209
|
+
statusText: 'Not Found',
|
|
210
|
+
});
|
|
211
|
+
await assert.rejects(() => client.callTool('unknown-tool', {}), /MCP Tool 调用失败: 404 Not Found/);
|
|
212
|
+
});
|
|
213
|
+
it('handles network errors', async () => {
|
|
214
|
+
const config = {
|
|
215
|
+
serverUrl: 'ws://localhost:8080/ws/agent',
|
|
216
|
+
heartbeatInterval: 15000,
|
|
217
|
+
reconnectInterval: 200,
|
|
218
|
+
maxReconnectAttempts: -1,
|
|
219
|
+
};
|
|
220
|
+
const client = new HttpClient(config);
|
|
221
|
+
global.fetch = async () => {
|
|
222
|
+
throw new Error('Network error');
|
|
223
|
+
};
|
|
224
|
+
await assert.rejects(() => client.callTool('test-tool', {}), /Network error/);
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
//# sourceMappingURL=http-client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.test.js","sourceRoot":"","sources":["../src/http-client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* aws-client-agent-mcp
|
|
4
|
+
* AgentsWorkStudio - Agent MCP Client 入口
|
|
5
|
+
*
|
|
6
|
+
* 这是编程 Agent 与调度中心的通信桥梁,通过 MCP 协议提供以下功能:
|
|
7
|
+
* - 注册/注销 Agent 上线
|
|
8
|
+
* - 发现在线用户
|
|
9
|
+
* - 发送/接收群消息
|
|
10
|
+
* - 发送/接收私信(支持调用式和通知式)
|
|
11
|
+
* - 消息主循环
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* aws-client-agent-mcp
|
|
4
|
+
* AgentsWorkStudio - Agent MCP Client 入口
|
|
5
|
+
*
|
|
6
|
+
* 这是编程 Agent 与调度中心的通信桥梁,通过 MCP 协议提供以下功能:
|
|
7
|
+
* - 注册/注销 Agent 上线
|
|
8
|
+
* - 发现在线用户
|
|
9
|
+
* - 发送/接收群消息
|
|
10
|
+
* - 发送/接收私信(支持调用式和通知式)
|
|
11
|
+
* - 消息主循环
|
|
12
|
+
*/
|
|
13
|
+
import { McpServer } from './mcp-server.js';
|
|
14
|
+
async function main() {
|
|
15
|
+
console.error('='.repeat(60));
|
|
16
|
+
console.error('AgentsWorkStudio - Agent MCP Client');
|
|
17
|
+
console.error('编程 Agent 与调度中心的通信桥梁');
|
|
18
|
+
console.error('='.repeat(60));
|
|
19
|
+
console.error('');
|
|
20
|
+
try {
|
|
21
|
+
const server = new McpServer();
|
|
22
|
+
await server.start();
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.error('[Main] 启动失败:', error);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
main();
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAgBjD,eAAO,MAAM,MAAM;oBACD,OAAO,EAAE,KAAG,IAAI;oBAChB,OAAO,EAAE,KAAG,IAAI;qBACf,OAAO,EAAE,KAAG,IAAI;CAClC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
function output(level, args) {
|
|
2
|
+
switch (level) {
|
|
3
|
+
case 'info':
|
|
4
|
+
console.error(...args);
|
|
5
|
+
break;
|
|
6
|
+
case 'warn':
|
|
7
|
+
console.warn(...args);
|
|
8
|
+
break;
|
|
9
|
+
case 'error':
|
|
10
|
+
console.error(...args);
|
|
11
|
+
break;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export const logger = {
|
|
15
|
+
info: (...args) => output('info', args),
|
|
16
|
+
warn: (...args) => output('warn', args),
|
|
17
|
+
error: (...args) => output('error', args)
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,SAAS,MAAM,CAAC,KAAe,EAAE,IAAe;IAC9C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACtB,MAAM;QACR,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,MAAM;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,GAAG,IAAe,EAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IACxD,IAAI,EAAE,CAAC,GAAG,IAAe,EAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,GAAG,IAAe,EAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;CAC3D,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server 实现
|
|
3
|
+
* 提供 MCP Tools 供 AI Agent 调用
|
|
4
|
+
*/
|
|
5
|
+
export declare class McpServer {
|
|
6
|
+
private server;
|
|
7
|
+
private agentClient;
|
|
8
|
+
private messageBuffer;
|
|
9
|
+
constructor();
|
|
10
|
+
private setupHandlers;
|
|
11
|
+
/**
|
|
12
|
+
* 处理工具调用
|
|
13
|
+
*/
|
|
14
|
+
private handleToolCall;
|
|
15
|
+
/**
|
|
16
|
+
* 执行具体的工具调用
|
|
17
|
+
*/
|
|
18
|
+
private executeToolCall;
|
|
19
|
+
private handleSendGroup;
|
|
20
|
+
private handleHireColleague;
|
|
21
|
+
private handleHireColleaguesBatch;
|
|
22
|
+
private handleSendPrivate;
|
|
23
|
+
private handlePollMessage;
|
|
24
|
+
/**
|
|
25
|
+
* 获取当前 Agent 的活跃任务(PENDING 待处理 / PROCESSING 处理中)列表
|
|
26
|
+
*/
|
|
27
|
+
private fetchActiveTasks;
|
|
28
|
+
/**
|
|
29
|
+
* 根据活跃任务列表构建系统提示 DirectMessage。
|
|
30
|
+
* 注意:此系统提示无需持久化,每次 poll_message 时动态生成。
|
|
31
|
+
*/
|
|
32
|
+
private buildTaskNotification;
|
|
33
|
+
private handleGetMessage;
|
|
34
|
+
/**
|
|
35
|
+
* 在本地缓冲区为空时,从服务端补拉离线期间积累的未读消息。
|
|
36
|
+
* 这样 Agent 重启或重连后,poll_message/get_message 仍能取到持久化未读消息。
|
|
37
|
+
*/
|
|
38
|
+
private hydrateUnreadMessagesIfNeeded;
|
|
39
|
+
private handleGetDmHistory;
|
|
40
|
+
private handleGetGroupHistory;
|
|
41
|
+
private handleSubmitTaskResult;
|
|
42
|
+
private handleStartTask;
|
|
43
|
+
private handleRejectTask;
|
|
44
|
+
private handleTerminateTask;
|
|
45
|
+
/**
|
|
46
|
+
* 处理接收到的消息(WebSocket 推送)
|
|
47
|
+
*/
|
|
48
|
+
private handleIncomingMessage;
|
|
49
|
+
/**
|
|
50
|
+
* 判断消息是否应该进入本地缓冲区。
|
|
51
|
+
* 当前仅过滤当前 Agent 自己发送的群消息,避免 send_group 后被 get_message 再次读到。
|
|
52
|
+
*/
|
|
53
|
+
private shouldBufferIncomingMessage;
|
|
54
|
+
/**
|
|
55
|
+
* 判断是否为群消息。
|
|
56
|
+
* 通过 msgId 类型进行收窄,便于后续安全执行群消息专属过滤逻辑。
|
|
57
|
+
*/
|
|
58
|
+
private isGroupMessage;
|
|
59
|
+
/**
|
|
60
|
+
* 判断群消息是否由当前 Agent 自己发送。
|
|
61
|
+
* 主流程:读取当前 Agent 状态 -> 比较 senderId -> 返回过滤结果。
|
|
62
|
+
*/
|
|
63
|
+
private isSelfSentGroupMessage;
|
|
64
|
+
/**
|
|
65
|
+
* 安全读取当前 Agent ID。
|
|
66
|
+
* 测试替身或异常场景下如果 agentClient 未提供 getState,则返回 null,避免影响消息主流程。
|
|
67
|
+
*/
|
|
68
|
+
private getCurrentAgentId;
|
|
69
|
+
start(): Promise<void>;
|
|
70
|
+
private autoRegister;
|
|
71
|
+
/**
|
|
72
|
+
* 内部方法:启动消息监听(不返回 MCP 响应)
|
|
73
|
+
*/
|
|
74
|
+
private startListeningInternal;
|
|
75
|
+
private delay;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=mcp-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6BH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgB;;IAqBrC,OAAO,CAAC,aAAa;IAqCrB;;OAEG;YACW,cAAc;IA4B5B;;OAEG;YACW,eAAe;YA0Ef,eAAe;YAWf,mBAAmB;YAOnB,yBAAyB;YA0BzB,iBAAiB;YAgBjB,iBAAiB;IAuC/B;;OAEG;YACW,gBAAgB;IAkB9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;YAmDf,gBAAgB;IAiB9B;;;OAGG;YACW,6BAA6B;YAiC7B,kBAAkB;YAQlB,qBAAqB;YAUrB,sBAAsB;YAetB,eAAe;YASf,gBAAgB;YAYhB,mBAAmB;IAejC;;OAEG;YACW,qBAAqB;IAiBnC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAUnC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAMtB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAK9B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAcnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAgBd,YAAY;IAyC1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,KAAK;CAGd"}
|