@animalabs/agent-framework 0.5.7 → 0.6.0
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/src/framework.d.ts +67 -0
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +469 -26
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts +44 -1
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +152 -8
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/gate/gate-script-worker.d.ts +2 -0
- package/dist/src/gate/gate-script-worker.d.ts.map +1 -0
- package/dist/src/gate/gate-script-worker.js +69 -0
- package/dist/src/gate/gate-script-worker.js.map +1 -0
- package/dist/src/gate/gate-script.d.ts +44 -0
- package/dist/src/gate/gate-script.d.ts.map +1 -0
- package/dist/src/gate/gate-script.js +164 -0
- package/dist/src/gate/gate-script.js.map +1 -0
- package/dist/src/gate/types.d.ts +18 -3
- package/dist/src/gate/types.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +43 -1
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +82 -8
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/checkpoint-manager.d.ts +7 -0
- package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -1
- package/dist/src/mcpl/checkpoint-manager.js +15 -0
- package/dist/src/mcpl/checkpoint-manager.js.map +1 -1
- package/dist/src/mcpl/push-handler.d.ts.map +1 -1
- package/dist/src/mcpl/push-handler.js +1 -0
- package/dist/src/mcpl/push-handler.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +35 -30
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +145 -206
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/transport.d.ts +98 -0
- package/dist/src/mcpl/transport.d.ts.map +1 -0
- package/dist/src/mcpl/transport.js +281 -0
- package/dist/src/mcpl/transport.js.map +1 -0
- package/dist/src/mcpl/types.d.ts +42 -2
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/module-registry.d.ts +2 -0
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +9 -2
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/prose-segments.d.ts +18 -0
- package/dist/src/prose-segments.d.ts.map +1 -0
- package/dist/src/prose-segments.js +39 -0
- package/dist/src/prose-segments.js.map +1 -0
- package/dist/src/runtime/liveness-watchdog-worker.d.ts +2 -0
- package/dist/src/runtime/liveness-watchdog-worker.d.ts.map +1 -0
- package/dist/src/runtime/liveness-watchdog-worker.js +57 -0
- package/dist/src/runtime/liveness-watchdog-worker.js.map +1 -0
- package/dist/src/runtime/liveness-watchdog.d.ts +36 -0
- package/dist/src/runtime/liveness-watchdog.d.ts.map +1 -0
- package/dist/src/runtime/liveness-watchdog.js +106 -0
- package/dist/src/runtime/liveness-watchdog.js.map +1 -0
- package/dist/src/types/agent.d.ts +10 -0
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +14 -0
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +12 -0
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/test/channel-registry-routing.test.js +108 -1
- package/dist/test/channel-registry-routing.test.js.map +1 -1
- package/dist/test/checkpoint-attribution.test.d.ts +2 -0
- package/dist/test/checkpoint-attribution.test.d.ts.map +1 -0
- package/dist/test/checkpoint-attribution.test.js +40 -0
- package/dist/test/checkpoint-attribution.test.js.map +1 -0
- package/dist/test/event-gate-policy-mutation.test.d.ts +2 -0
- package/dist/test/event-gate-policy-mutation.test.d.ts.map +1 -0
- package/dist/test/event-gate-policy-mutation.test.js +137 -0
- package/dist/test/event-gate-policy-mutation.test.js.map +1 -0
- package/dist/test/event-gate-script.test.d.ts +2 -0
- package/dist/test/event-gate-script.test.d.ts.map +1 -0
- package/dist/test/event-gate-script.test.js +95 -0
- package/dist/test/event-gate-script.test.js.map +1 -0
- package/dist/test/event-gate-tags.test.d.ts +2 -0
- package/dist/test/event-gate-tags.test.d.ts.map +1 -0
- package/dist/test/event-gate-tags.test.js +76 -0
- package/dist/test/event-gate-tags.test.js.map +1 -0
- package/dist/test/liveness-watchdog.test.d.ts +2 -0
- package/dist/test/liveness-watchdog.test.d.ts.map +1 -0
- package/dist/test/liveness-watchdog.test.js +78 -0
- package/dist/test/liveness-watchdog.test.js.map +1 -0
- package/dist/test/mcpl-ws-transport.test.d.ts +2 -0
- package/dist/test/mcpl-ws-transport.test.d.ts.map +1 -0
- package/dist/test/mcpl-ws-transport.test.js +155 -0
- package/dist/test/mcpl-ws-transport.test.js.map +1 -0
- package/dist/test/prose-segments.test.d.ts +2 -0
- package/dist/test/prose-segments.test.d.ts.map +1 -0
- package/dist/test/prose-segments.test.js +52 -0
- package/dist/test/prose-segments.test.js.map +1 -0
- package/dist/test/trunk-channel-routing.test.d.ts +19 -0
- package/dist/test/trunk-channel-routing.test.d.ts.map +1 -0
- package/dist/test/trunk-channel-routing.test.js +175 -0
- package/dist/test/trunk-channel-routing.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/framework.ts +509 -24
- package/src/gate/event-gate.ts +153 -8
- package/src/gate/gate-script-worker.ts +73 -0
- package/src/gate/gate-script.ts +180 -0
- package/src/gate/types.ts +19 -3
- package/src/mcpl/channel-registry.ts +112 -8
- package/src/mcpl/checkpoint-manager.ts +16 -0
- package/src/mcpl/push-handler.ts +1 -0
- package/src/mcpl/server-connection.ts +153 -224
- package/src/mcpl/transport.ts +307 -0
- package/src/mcpl/types.ts +49 -2
- package/src/module-registry.ts +13 -2
- package/src/prose-segments.ts +42 -0
- package/src/runtime/liveness-watchdog-worker.ts +66 -0
- package/src/runtime/liveness-watchdog.ts +122 -0
- package/src/types/agent.ts +10 -0
- package/src/types/framework.ts +15 -0
- package/src/types/module.ts +13 -0
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* McplServerConnection — manages a single JSON-RPC 2.0 connection to an MCPL server.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Connects over a pluggable {@link McplTransport} (a spawned stdio child OR a
|
|
5
|
+
* WebSocket), performs the MCP initialize handshake with MCPL capability
|
|
6
|
+
* negotiation, and provides typed methods for all outbound MCPL messages plus
|
|
7
|
+
* EventEmitter events for inbound messages. The handshake, message routing, and
|
|
8
|
+
* every send path are transport-agnostic — they operate on NDJSON lines, so
|
|
9
|
+
* stdio and WebSocket behave identically above the transport seam.
|
|
7
10
|
*/
|
|
8
|
-
import { spawn } from 'node:child_process';
|
|
9
|
-
import { createInterface } from 'node:readline';
|
|
10
11
|
import { EventEmitter } from 'node:events';
|
|
12
|
+
import { openTransport } from './transport.js';
|
|
11
13
|
import { McplMethod } from './types.js';
|
|
12
14
|
/** Timeout for the initialize handshake in milliseconds.
|
|
13
15
|
* Spring Boot + JDA servers can take 5-10s to boot, so 30s is safe. */
|
|
@@ -35,8 +37,9 @@ export class McplServerConnection extends EventEmitter {
|
|
|
35
37
|
id;
|
|
36
38
|
/** MCPL capabilities negotiated during the initialize handshake, or null if the server does not support MCPL. */
|
|
37
39
|
capabilities;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
/** The active transport (stdio child or WebSocket). Null for a disconnected
|
|
41
|
+
* stub awaiting its first background reconnect. */
|
|
42
|
+
transport;
|
|
40
43
|
nextRequestId = 1;
|
|
41
44
|
pendingRequests = new Map();
|
|
42
45
|
closed = false;
|
|
@@ -49,21 +52,17 @@ export class McplServerConnection extends EventEmitter {
|
|
|
49
52
|
reconnectEnabled = false;
|
|
50
53
|
reconnectIntervalMs = 5000;
|
|
51
54
|
reconnectTimer = null;
|
|
52
|
-
/** Swaps the line handler on the current child's stderr pipe. Re-bound on reconnect. */
|
|
53
|
-
rebindStderr = null;
|
|
54
55
|
/**
|
|
55
56
|
* Private constructor. Use `McplServerConnection.connect()` instead.
|
|
56
57
|
*/
|
|
57
|
-
constructor(id, capabilities,
|
|
58
|
+
constructor(id, capabilities, transport) {
|
|
58
59
|
super();
|
|
59
60
|
this.id = id;
|
|
60
61
|
this.capabilities = capabilities;
|
|
61
|
-
this.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this.setupMessageRouting();
|
|
66
|
-
this.setupLifecycle();
|
|
62
|
+
this.transport = transport;
|
|
63
|
+
// Skip setup for disconnected stubs (transport is null).
|
|
64
|
+
if (transport) {
|
|
65
|
+
this.wireTransport(transport);
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
// ==========================================================================
|
|
@@ -97,138 +96,101 @@ export class McplServerConnection extends EventEmitter {
|
|
|
97
96
|
// Static factory
|
|
98
97
|
// ==========================================================================
|
|
99
98
|
/**
|
|
100
|
-
*
|
|
101
|
-
* supplied callback. The callback can be swapped at any time via `rebind`
|
|
102
|
-
* (used during reconnect, when we want already-wired pipes to target a new
|
|
103
|
-
* emitter).
|
|
104
|
-
*/
|
|
105
|
-
static wireStderrForwarding(child, initialLineHandler) {
|
|
106
|
-
let onLine = initialLineHandler;
|
|
107
|
-
let carry = '';
|
|
108
|
-
child.stderr?.on('data', (chunk) => {
|
|
109
|
-
const text = carry + chunk.toString('utf8');
|
|
110
|
-
const lines = text.split('\n');
|
|
111
|
-
carry = lines.pop() ?? '';
|
|
112
|
-
for (const line of lines) {
|
|
113
|
-
if (line.length > 0)
|
|
114
|
-
onLine(line);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
return {
|
|
118
|
-
rebind(next) {
|
|
119
|
-
onLine = next;
|
|
120
|
-
},
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Spawn a server process, perform the MCP initialize handshake with MCPL
|
|
99
|
+
* Open the transport, perform the MCP initialize handshake with MCPL
|
|
125
100
|
* capability negotiation, and return a ready-to-use connection.
|
|
126
101
|
*
|
|
127
|
-
*
|
|
102
|
+
* Works over stdio (spawned child) or WebSocket, selected by `config` (see
|
|
103
|
+
* {@link openTransport}). Throws if the transport can't be opened, the server
|
|
104
|
+
* closes/errors before the handshake, or the handshake times out.
|
|
128
105
|
*/
|
|
129
106
|
static async connect(config, hostCapabilities) {
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
protocolVersion: MCP_PROTOCOL_VERSION,
|
|
161
|
-
capabilities: {
|
|
162
|
-
experimental: {
|
|
163
|
-
mcpl: hostCapabilities,
|
|
164
|
-
},
|
|
165
|
-
},
|
|
166
|
-
clientInfo: {
|
|
167
|
-
name: 'agent-framework',
|
|
168
|
-
version: '1.0.0',
|
|
107
|
+
const { transport, capabilities } = await McplServerConnection.handshake(config, hostCapabilities);
|
|
108
|
+
const connection = new McplServerConnection(config.id, capabilities, transport);
|
|
109
|
+
// Store config for reconnection
|
|
110
|
+
if (config.reconnect) {
|
|
111
|
+
connection.config = config;
|
|
112
|
+
connection.hostCapabilities = hostCapabilities;
|
|
113
|
+
connection.reconnectEnabled = true;
|
|
114
|
+
connection.reconnectIntervalMs = config.reconnectIntervalMs ?? 5000;
|
|
115
|
+
}
|
|
116
|
+
return connection;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Open a fresh transport and run the MCP/MCPL initialize handshake over it,
|
|
120
|
+
* returning the connected transport plus the negotiated capabilities. Shared
|
|
121
|
+
* by {@link connect} and {@link attemptReconnect} so both transports handshake
|
|
122
|
+
* identically. On any failure the transport is closed so a spawned child /
|
|
123
|
+
* open socket never leaks.
|
|
124
|
+
*/
|
|
125
|
+
static async handshake(config, hostCapabilities) {
|
|
126
|
+
const transport = await openTransport(config);
|
|
127
|
+
try {
|
|
128
|
+
const initId = 0; // use id=0 for the handshake
|
|
129
|
+
const initRequest = {
|
|
130
|
+
jsonrpc: '2.0',
|
|
131
|
+
method: 'initialize',
|
|
132
|
+
id: initId,
|
|
133
|
+
params: {
|
|
134
|
+
protocolVersion: MCP_PROTOCOL_VERSION,
|
|
135
|
+
capabilities: { experimental: { mcpl: hostCapabilities } },
|
|
136
|
+
clientInfo: { name: 'agent-framework', version: '1.0.0' },
|
|
169
137
|
},
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
138
|
+
};
|
|
139
|
+
// Await the initialize response, racing an early transport close/error and
|
|
140
|
+
// a timeout. All three paths clean up their listeners.
|
|
141
|
+
const capabilities = await new Promise((resolve, reject) => {
|
|
142
|
+
const cleanup = () => {
|
|
143
|
+
transport.off('line', onLine);
|
|
144
|
+
transport.off('close', onClose);
|
|
145
|
+
transport.off('error', onError);
|
|
146
|
+
clearTimeout(timer);
|
|
147
|
+
};
|
|
176
148
|
const onLine = (line) => {
|
|
149
|
+
let msg;
|
|
177
150
|
try {
|
|
178
|
-
|
|
179
|
-
if (msg.id === initId) {
|
|
180
|
-
rl.off('line', onLine);
|
|
181
|
-
if (msg.error) {
|
|
182
|
-
reject(new Error(`MCPL server "${config.id}" initialize error: ${msg.error.message}`));
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
resolve(msg);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
151
|
+
msg = JSON.parse(line);
|
|
188
152
|
}
|
|
189
153
|
catch {
|
|
190
|
-
// Ignore non-JSON lines (e.g. logback output from Java servers)
|
|
154
|
+
return; // Ignore non-JSON lines (e.g. logback output from Java servers)
|
|
155
|
+
}
|
|
156
|
+
if (msg.id !== initId)
|
|
157
|
+
return;
|
|
158
|
+
cleanup();
|
|
159
|
+
if (msg.error) {
|
|
160
|
+
reject(new Error(`MCPL server "${config.id}" initialize error: ${msg.error.message}`));
|
|
161
|
+
return;
|
|
191
162
|
}
|
|
163
|
+
const result = msg.result;
|
|
164
|
+
const caps = result?.capabilities;
|
|
165
|
+
const experimental = caps?.experimental;
|
|
166
|
+
resolve(experimental?.mcpl ?? null);
|
|
192
167
|
};
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
child.removeAllListeners('error');
|
|
214
|
-
const connection = new McplServerConnection(config.id, mcplCaps, child, rl);
|
|
215
|
-
// Swap the stderr handler to emit events on the instance, then drain
|
|
216
|
-
// anything that arrived during the handshake window. Keep the rebind
|
|
217
|
-
// handle on the instance so reconnect can re-target it later.
|
|
218
|
-
connection.rebindStderr = attachStderr.rebind;
|
|
219
|
-
attachStderr.rebind((line) => connection.emit('stderr', { line }));
|
|
220
|
-
for (const line of earlyStderrBuffer) {
|
|
221
|
-
connection.emit('stderr', { line });
|
|
168
|
+
const onClose = (info) => {
|
|
169
|
+
cleanup();
|
|
170
|
+
reject(new Error(`MCPL server "${config.id}" transport closed before handshake completed (${info.reason ?? 'unknown'})`));
|
|
171
|
+
};
|
|
172
|
+
const onError = (err) => {
|
|
173
|
+
cleanup();
|
|
174
|
+
reject(new Error(`MCPL server "${config.id}" transport error during handshake: ${err.message}`));
|
|
175
|
+
};
|
|
176
|
+
const timer = setTimeout(() => {
|
|
177
|
+
cleanup();
|
|
178
|
+
reject(new Error(`MCPL server "${config.id}" initialize handshake timed out`));
|
|
179
|
+
}, INITIALIZE_TIMEOUT_MS);
|
|
180
|
+
transport.on('line', onLine);
|
|
181
|
+
transport.on('close', onClose);
|
|
182
|
+
transport.on('error', onError);
|
|
183
|
+
transport.writeLine(JSON.stringify(initRequest));
|
|
184
|
+
});
|
|
185
|
+
// Send `initialized` notification (no id)
|
|
186
|
+
transport.writeLine(JSON.stringify({ jsonrpc: '2.0', method: 'notifications/initialized' }));
|
|
187
|
+
return { transport, capabilities };
|
|
222
188
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
connection.hostCapabilities = hostCapabilities;
|
|
228
|
-
connection.reconnectEnabled = true;
|
|
229
|
-
connection.reconnectIntervalMs = config.reconnectIntervalMs ?? 5000;
|
|
189
|
+
catch (err) {
|
|
190
|
+
// Never leak the child / socket if the handshake fails.
|
|
191
|
+
await transport.close().catch(() => { });
|
|
192
|
+
throw err;
|
|
230
193
|
}
|
|
231
|
-
return connection;
|
|
232
194
|
}
|
|
233
195
|
/**
|
|
234
196
|
* Connect with reconnect support.
|
|
@@ -255,8 +217,8 @@ export class McplServerConnection extends EventEmitter {
|
|
|
255
217
|
* @internal
|
|
256
218
|
*/
|
|
257
219
|
static createDisconnectedStub(config, hostCapabilities) {
|
|
258
|
-
//
|
|
259
|
-
const stub = new McplServerConnection(config.id, null, null
|
|
220
|
+
// Null transport — the stub is closed until its first background reconnect.
|
|
221
|
+
const stub = new McplServerConnection(config.id, null, null);
|
|
260
222
|
stub.closed = true;
|
|
261
223
|
stub.config = config;
|
|
262
224
|
stub.hostCapabilities = hostCapabilities;
|
|
@@ -266,17 +228,6 @@ export class McplServerConnection extends EventEmitter {
|
|
|
266
228
|
stub.scheduleReconnect();
|
|
267
229
|
return stub;
|
|
268
230
|
}
|
|
269
|
-
/**
|
|
270
|
-
* Extract internals for transfer during reconnection.
|
|
271
|
-
* Strips the source connection — caller takes ownership of the process/readline.
|
|
272
|
-
* @internal Used only by attemptReconnect().
|
|
273
|
-
*/
|
|
274
|
-
extractInternals() {
|
|
275
|
-
const result = { process: this.process, readline: this.readline };
|
|
276
|
-
// Prevent the source connection from killing the transferred process
|
|
277
|
-
this.closed = true;
|
|
278
|
-
return result;
|
|
279
|
-
}
|
|
280
231
|
// ==========================================================================
|
|
281
232
|
// Outbound requests (return Promises)
|
|
282
233
|
// ==========================================================================
|
|
@@ -389,24 +340,11 @@ export class McplServerConnection extends EventEmitter {
|
|
|
389
340
|
pending.reject(new Error(`Connection to MCPL server "${this.id}" closed while awaiting response for ${pending.method} (id=${id})`));
|
|
390
341
|
}
|
|
391
342
|
this.pendingRequests.clear();
|
|
392
|
-
//
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
if (this.process && !this.process.killed) {
|
|
398
|
-
this.process.kill();
|
|
399
|
-
}
|
|
400
|
-
// Wait for process to actually exit
|
|
401
|
-
if (this.process) {
|
|
402
|
-
await new Promise((resolve) => {
|
|
403
|
-
if (this.process.exitCode !== null || this.process.killed) {
|
|
404
|
-
resolve();
|
|
405
|
-
}
|
|
406
|
-
else {
|
|
407
|
-
this.process.once('exit', () => resolve());
|
|
408
|
-
}
|
|
409
|
-
});
|
|
343
|
+
// Tear down the transport (kills the child / closes the socket). The
|
|
344
|
+
// transport's own 'close' event is short-circuited by `this.closed` in
|
|
345
|
+
// setupLifecycle, so this is the single source of the connection 'close'.
|
|
346
|
+
if (this.transport) {
|
|
347
|
+
await this.transport.close();
|
|
410
348
|
}
|
|
411
349
|
this.emit('close');
|
|
412
350
|
}
|
|
@@ -422,39 +360,26 @@ export class McplServerConnection extends EventEmitter {
|
|
|
422
360
|
}, this.reconnectIntervalMs);
|
|
423
361
|
}
|
|
424
362
|
/**
|
|
425
|
-
* Attempt to reconnect by
|
|
363
|
+
* Attempt to reconnect by opening a fresh transport and performing the
|
|
364
|
+
* handshake, then adopting that transport in place. Unlike the previous
|
|
365
|
+
* approach this builds no throwaway connection instance, so there are no
|
|
366
|
+
* leaked listeners on a dead object.
|
|
426
367
|
*/
|
|
427
368
|
async attemptReconnect() {
|
|
428
369
|
if (!this.reconnectEnabled || !this.config || !this.hostCapabilities)
|
|
429
370
|
return;
|
|
430
371
|
try {
|
|
431
|
-
const
|
|
432
|
-
|
|
433
|
-
//
|
|
434
|
-
|
|
435
|
-
this.
|
|
436
|
-
this.capabilities =
|
|
372
|
+
const { transport, capabilities } = await McplServerConnection.handshake(this.config, this.hostCapabilities);
|
|
373
|
+
// Adopt the new transport. Listeners were attached to external consumers
|
|
374
|
+
// on the first wire, so mark ready immediately (re-wire re-binds the
|
|
375
|
+
// transport-level handlers below).
|
|
376
|
+
this.transport = transport;
|
|
377
|
+
this.capabilities = capabilities;
|
|
437
378
|
this.closed = false;
|
|
438
379
|
this.nextRequestId = 1;
|
|
439
380
|
this.pendingRequests.clear();
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
// Note: this follows the same "transfer internals, leak listeners on the
|
|
443
|
-
// dead instance" pattern as the message-routing and lifecycle rewiring
|
|
444
|
-
// below — `fresh`'s own readline 'line' handler and process 'exit'
|
|
445
|
-
// handler stay registered on the transferred child, short-circuited by
|
|
446
|
-
// `fresh.closed = true` set in extractInternals(). Rebinding fresh's
|
|
447
|
-
// stderr listener (rather than removing it) keeps that invariant: if we
|
|
448
|
-
// ever clean up the message-routing duplication, fresh's stderr data
|
|
449
|
-
// listener closure-holds onLine and would need the same teardown.
|
|
450
|
-
if (fresh.rebindStderr) {
|
|
451
|
-
fresh.rebindStderr((line) => this.emit('stderr', { line }));
|
|
452
|
-
this.rebindStderr = fresh.rebindStderr;
|
|
453
|
-
}
|
|
454
|
-
// Re-wire message routing and lifecycle on the new process
|
|
455
|
-
this.setupMessageRouting();
|
|
456
|
-
this.setupLifecycle();
|
|
457
|
-
this.readyFlag = true; // Listeners already attached from initial wire
|
|
381
|
+
this.wireTransport(transport);
|
|
382
|
+
this.readyFlag = true;
|
|
458
383
|
console.error(`MCPL server "${this.id}" reconnected successfully`);
|
|
459
384
|
this.emit('reconnect');
|
|
460
385
|
}
|
|
@@ -483,7 +408,7 @@ export class McplServerConnection extends EventEmitter {
|
|
|
483
408
|
};
|
|
484
409
|
return new Promise((resolve, reject) => {
|
|
485
410
|
this.pendingRequests.set(id, { resolve, reject, method });
|
|
486
|
-
this.
|
|
411
|
+
this.transport.writeLine(JSON.stringify(request));
|
|
487
412
|
});
|
|
488
413
|
}
|
|
489
414
|
/**
|
|
@@ -498,7 +423,7 @@ export class McplServerConnection extends EventEmitter {
|
|
|
498
423
|
method,
|
|
499
424
|
params,
|
|
500
425
|
};
|
|
501
|
-
this.
|
|
426
|
+
this.transport?.writeLine(JSON.stringify(notification));
|
|
502
427
|
}
|
|
503
428
|
// ==========================================================================
|
|
504
429
|
// Private: inbound message routing
|
|
@@ -521,10 +446,22 @@ export class McplServerConnection extends EventEmitter {
|
|
|
521
446
|
'host/command': 'host-command',
|
|
522
447
|
};
|
|
523
448
|
/**
|
|
524
|
-
*
|
|
449
|
+
* Bind all transport-level handlers (inbound routing, lifecycle, stderr) to a
|
|
450
|
+
* transport. Called from the constructor and again from attemptReconnect when
|
|
451
|
+
* a new transport is adopted.
|
|
452
|
+
*/
|
|
453
|
+
wireTransport(transport) {
|
|
454
|
+
this.setupMessageRouting(transport);
|
|
455
|
+
this.setupLifecycle(transport);
|
|
456
|
+
// Surface transport diagnostics (stdio child stderr) as 'stderr' events,
|
|
457
|
+
// preserving the `{ line }` payload existing consumers expect.
|
|
458
|
+
transport.on('stderr', (line) => this.emit('stderr', { line }));
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Wire up the transport's line stream to route incoming JSON-RPC messages.
|
|
525
462
|
*/
|
|
526
|
-
setupMessageRouting() {
|
|
527
|
-
|
|
463
|
+
setupMessageRouting(transport) {
|
|
464
|
+
transport.on('line', (line) => {
|
|
528
465
|
let msg;
|
|
529
466
|
try {
|
|
530
467
|
msg = JSON.parse(line);
|
|
@@ -581,7 +518,7 @@ export class McplServerConnection extends EventEmitter {
|
|
|
581
518
|
if (this.closed)
|
|
582
519
|
return;
|
|
583
520
|
const response = { jsonrpc: '2.0', id, result };
|
|
584
|
-
this.
|
|
521
|
+
this.transport?.writeLine(JSON.stringify(response));
|
|
585
522
|
}
|
|
586
523
|
/**
|
|
587
524
|
* Send a JSON-RPC error response back to the server.
|
|
@@ -594,28 +531,30 @@ export class McplServerConnection extends EventEmitter {
|
|
|
594
531
|
id,
|
|
595
532
|
error: { code, message, data },
|
|
596
533
|
};
|
|
597
|
-
this.
|
|
534
|
+
this.transport?.writeLine(JSON.stringify(response));
|
|
598
535
|
}
|
|
599
536
|
// ==========================================================================
|
|
600
537
|
// Private: lifecycle
|
|
601
538
|
// ==========================================================================
|
|
602
539
|
/**
|
|
603
|
-
* Set up
|
|
540
|
+
* Set up transport error/close handlers. An unexpected transport close
|
|
541
|
+
* (child exit or WebSocket drop) rejects in-flight requests, emits 'close',
|
|
542
|
+
* and — when enabled — schedules a background reconnect.
|
|
604
543
|
*/
|
|
605
|
-
setupLifecycle() {
|
|
606
|
-
|
|
607
|
-
this.emit('error', new Error(`MCPL server "${this.id}"
|
|
544
|
+
setupLifecycle(transport) {
|
|
545
|
+
transport.on('error', (err) => {
|
|
546
|
+
this.emit('error', new Error(`MCPL server "${this.id}" transport error: ${err.message}`));
|
|
608
547
|
});
|
|
609
|
-
|
|
548
|
+
transport.on('close', (info) => {
|
|
610
549
|
if (!this.closed) {
|
|
611
550
|
this.closed = true;
|
|
612
551
|
// Reject all pending requests
|
|
613
552
|
for (const [id, pending] of this.pendingRequests) {
|
|
614
|
-
pending.reject(new Error(`MCPL server "${this.id}"
|
|
553
|
+
pending.reject(new Error(`MCPL server "${this.id}" disconnected unexpectedly (code=${info.code ?? 'n/a'}, signal=${info.signal ?? 'n/a'}, reason=${info.reason ?? 'unknown'}) while awaiting ${pending.method} (id=${id})`));
|
|
615
554
|
}
|
|
616
555
|
this.pendingRequests.clear();
|
|
617
|
-
this.emit('close', code, signal);
|
|
618
|
-
// Schedule reconnect if enabled (unexpected
|
|
556
|
+
this.emit('close', info.code ?? null, info.signal ?? null);
|
|
557
|
+
// Schedule reconnect if enabled (unexpected disconnect triggers auto-reconnect)
|
|
619
558
|
if (this.reconnectEnabled) {
|
|
620
559
|
this.scheduleReconnect();
|
|
621
560
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-connection.js","sourceRoot":"","sources":["../../../src/mcpl/server-connection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAuC,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA6B3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;wEACwE;AACxE,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,6DAA6D;AAC7D,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAW1C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,4CAA4C;IACnC,EAAE,CAAS;IAEpB,iHAAiH;IACjH,YAAY,CAA0B;IAE9B,OAAO,CAAe;IACtB,QAAQ,CAAoB;IAC5B,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC7D,MAAM,GAAG,KAAK,CAAC;IAEvB,sEAAsE;IAC9D,SAAS,GAAG,KAAK,CAAC;IAClB,cAAc,GAA8C,EAAE,CAAC;IAEvE,4EAA4E;IACpE,MAAM,GAA4B,IAAI,CAAC;IACvC,gBAAgB,GAAgC,IAAI,CAAC;IACrD,gBAAgB,GAAG,KAAK,CAAC;IACzB,mBAAmB,GAAG,IAAI,CAAC;IAC3B,cAAc,GAAyC,IAAI,CAAC;IAEpE,wFAAwF;IAChF,YAAY,GAAoD,IAAI,CAAC;IAE7E;;OAEG;IACH,YACE,EAAU,EACV,YAAqC,EACrC,YAA0B,EAC1B,QAA2B;QAE3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,gEAAgE;QAChE,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACM,IAAI,CAAC,KAAsB,EAAE,GAAG,IAAe;QACtD,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACnF,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,iBAAiB;IACjB,6EAA6E;IAE7E;;;;;OAKG;IACK,MAAM,CAAC,oBAAoB,CACjC,KAAmB,EACnB,kBAA0C;QAE1C,IAAI,MAAM,GAAG,kBAAkB,CAAC;QAChC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO;YACL,MAAM,CAAC,IAAI;gBACT,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,MAAwB,EACxB,gBAAsC;QAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;YACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE;SACvC,CAAC,CAAC;QAEH,0EAA0E;QAC1E,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7E,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;QAEF,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YAC/D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,EAAE,mCAAmC,IAAI,GAAG,CAAC,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uDAAuD;QACvD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAO,EAAE,CAAC,CAAC;QAErD,0EAA0E;QAC1E,+BAA+B;QAC/B,0EAA0E;QAE1E,oCAAoC;QACpC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,6BAA6B;QAC/C,MAAM,WAAW,GAAmB;YAClC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,YAAY;YACpB,EAAE,EAAE,MAAM;YACV,MAAM,EAAE;gBACN,eAAe,EAAE,oBAAoB;gBACrC,YAAY,EAAE;oBACZ,YAAY,EAAE;wBACZ,IAAI,EAAE,gBAAgB;qBACvB;iBACF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,OAAO;iBACjB;aACF;SACF,CAAC;QACF,KAAK,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;QAEvD,2CAA2C;QAC3C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACtC,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;oBAC9B,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;wBAChD,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;4BACtB,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;4BACvB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gCACd,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,EAAE,uBAAuB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BACzF,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,GAAG,CAAC,CAAC;4BACf,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,gEAAgE;oBAClE,CAAC;gBACH,CAAC,CAAC;gBACF,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxB,CAAC,CAAC;YACF,gBAAgB;YAChB,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CACtC,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,EAAE,kCAAkC,CAAC,CAAC,CAAC;YACjF,CAAC,EAAE,qBAAqB,CAAC,CAC1B;SACF,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,MAA6C,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,EAAE,YAAmD,CAAC;QACzE,MAAM,YAAY,GAAG,IAAI,EAAE,YAAmD,CAAC;QAC/E,MAAM,QAAQ,GAAI,YAAY,EAAE,IAAyB,IAAI,IAAI,CAAC;QAElE,kDAAkD;QAClD,MAAM,uBAAuB,GAAmB;YAC9C,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,2BAA2B;SACpC,CAAC;QACF,KAAK,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,CAAC;QAEnE,qEAAqE;QACrE,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAE5E,qEAAqE;QACrE,qEAAqE;QACrE,8DAA8D;QAC9D,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;QAC9C,YAAY,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QAE7B,gCAAgC;QAChC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAC3B,UAAU,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;YAC/C,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACnC,UAAU,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC;QACtE,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAC/B,MAAwB,EACxB,gBAAsC;QAEtC,IAAI,CAAC;YACH,OAAO,MAAM,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,KAAK,CAAC;YACd,CAAC;YAED,mFAAmF;YACnF,OAAO,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,EAAE,uCAAuC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAC1G,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,sBAAsB,CACnC,MAAwB,EACxB,gBAAsC;QAEtC,gEAAgE;QAChE,MAAM,IAAI,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAqB,EAAE,IAA0B,CAAC,CAAC;QAC1G,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAE9D,gCAAgC;QAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClE,qEAAqE;QACrE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,sCAAsC;IACtC,6EAA6E;IAE7E,uDAAuD;IACvD,mBAAmB,CAAC,MAA6B;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,MAA4C,CAAmC,CAAC;IACtI,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,MAA4B,EAAE,QAAkB;QACjE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,MAA4C,CAAkC,CAAC;QACpI,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,cAAc,EAAE,MAA4C,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,8CAA8C;IAC9C,qBAAqB,CAAC,MAA+B;QACnD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,EAAE,MAA4C,CAAC,CAAC;IACpG,CAAC;IAED,2CAA2C;IAC3C,kBAAkB,CAAC,MAA4B;QAC7C,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,cAAc,EAAE,MAA4C,CAAC,CAAC;IACjG,CAAC;IAED,sDAAsD;IACtD,iBAAiB,CAAC,MAA2B;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,MAA4C,CAAiC,CAAC;IAClI,CAAC;IAED,qDAAqD;IACrD,gBAAgB,CAAC,MAA0B;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,MAA4C,CAAgC,CAAC;IAChI,CAAC;IAED,sDAAsD;IACtD,iBAAiB,CAAC,MAA2B;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,MAA4C,CAAiC,CAAC;IAClI,CAAC;IAED,qDAAqD;IACrD,gBAAgB;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAgC,CAAC;IACtF,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,MAA6B;QAC/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,eAAe,EAAE,MAA4C,CAAC,CAAC;YAChG,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,MAA4C,CAAmC,CAAC;IACtI,CAAC;IAED,mDAAmD;IACnD,yBAAyB,CAAC,MAAmC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,qBAAqB,EAAE,MAA4C,CAAC,CAAC;IACxG,CAAC;IAED,sDAAsD;IACtD,4BAA4B,CAAC,MAAsC;QACjE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,wBAAwB,EAAE,MAA4C,CAAC,CAAC;IAC3G,CAAC;IAED;;;;;;uEAMmE;IACnE,kBAAkB,CAChB,SAAiB,EACjB,QAAkC,EAClC,KAAuB,OAAO;QAE9B,MAAM,MAAM,GAA4B,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAC1D,IAAI,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,6EAA6E;IAC7E,uBAAuB;IACvB,6EAA6E;IAE7E,kEAAkE;IAClE,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,CAA4C,CAAC;IACvF,CAAC;IAED,wGAAwG;IACxG,aAAa,CACX,IAAY,EACZ,IAA6B,EAC7B,WAAsD;QAEtD,MAAM,MAAM,GAA4B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,WAAW,EAAE,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QACvE,IAAI,WAAW,EAAE,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;QACtF,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAA+B,CAAC;IAC9E,CAAC;IAED,6EAA6E;IAC7E,YAAY;IACZ,6EAA6E;IAE7E,+FAA+F;IAC/F,KAAK,CAAC,KAAK;QACT,wEAAwE;QACxE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,8BAA8B;QAC9B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,EAAE,wCAAwC,OAAO,CAAC,MAAM,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACtI,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,iBAAiB;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,oCAAoC;QACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC1D,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAE1D,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAE7E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAE3C,wDAAwD;YACxD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACvC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAE7B,6EAA6E;YAC7E,EAAE;YACF,yEAAyE;YACzE,uEAAuE;YACvE,mEAAmE;YACnE,uEAAuE;YACvE,qEAAqE;YACrE,wEAAwE;YACxE,qEAAqE;YACrE,kEAAkE;YAClE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,KAAK,CAAC,YAAY,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACzC,CAAC;YAED,2DAA2D;YAC3D,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,+CAA+C;YAEtE,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,4BAA4B,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,qBAAqB,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,2BAA2B;IAC3B,6EAA6E;IAE7E;;;OAGG;IACK,WAAW,CAAC,MAAc,EAAE,MAA+B;QACjE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAmB;YAC9B,OAAO,EAAE,KAAK;YACd,MAAM;YACN,EAAE;YACF,MAAM;SACP,CAAC;QAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAc,EAAE,MAA+B;QACtE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAmB;YACnC,OAAO,EAAE,KAAK;YACd,MAAM;YACN,MAAM;SACP,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,6EAA6E;IAC7E,mCAAmC;IACnC,6EAA6E;IAE7E;;OAEG;IACK,MAAM,CAAU,eAAe,GAA2B;QAChE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,YAAY;QACpC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,mBAAmB;QAClD,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,eAAe;QAC1C,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,mBAAmB;QAClD,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,kBAAkB;QAChD,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,mBAAmB;QAClD,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,sBAAsB;QACvD,kCAAkC,EAAE,oBAAoB;QACxD,qEAAqE;QACrE,iEAAiE;QACjE,kCAAkC;QAClC,cAAc,EAAE,cAAc;KAC/B,CAAC;IAEF;;OAEG;IACK,mBAAmB;QACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,IAAI,GAAqC,CAAC;YAC1C,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;gBACxB,OAAO;YACT,CAAC;YAED,sDAAsD;YACtD,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,cAAc,CAAC,GAAsB,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,2DAA2D;YAC3D,MAAM,OAAO,GAAG,GAAqB,CAAC;YACtC,MAAM,SAAS,GAAG,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEvE,IAAI,SAAS,EAAE,CAAC;gBACd,yEAAyE;gBACzE,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;oBACvB,uDAAuD;oBACvD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE;wBACnC,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,OAAO,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAG,EAAE,MAAM,CAAC;wBACpE,YAAY,EAAE,CAAC,IAAY,EAAE,OAAe,EAAE,IAAc,EAAE,EAAE,CAC9D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;qBAC3D,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAyB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,6BAA6B;QACvC,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,MAAM,CACZ,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,wBAAwB,OAAO,CAAC,MAAM,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC/H,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,EAAmB,EAAE,MAAe;QACvD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,QAAQ,GAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,EAAmB,EAAE,IAAY,EAAE,OAAe,EAAE,IAAc;QAC1F,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,QAAQ,GAAoB;YAChC,OAAO,EAAE,KAAK;YACd,EAAE;YACF,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;SAC/B,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,6EAA6E;IAC7E,qBAAqB;IACrB,6EAA6E;IAE7E;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBAEnB,8BAA8B;gBAC9B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACjD,OAAO,CAAC,MAAM,CACZ,IAAI,KAAK,CACP,gBAAgB,IAAI,CAAC,EAAE,+BAA+B,IAAI,YAAY,MAAM,oBAAoB,OAAO,CAAC,MAAM,QAAQ,EAAE,GAAG,CAC5H,CACF,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAE7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBAEjC,0EAA0E;gBAC1E,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"server-connection.js","sourceRoot":"","sources":["../../../src/mcpl/server-connection.ts"],"names":[],"mappings":"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"}
|