@animalabs/agent-framework 0.29.0 → 0.31.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/README.md +71 -8
- package/dist/src/admission/admit.d.ts +90 -0
- package/dist/src/admission/admit.d.ts.map +1 -0
- package/dist/src/admission/admit.js +43 -0
- package/dist/src/admission/admit.js.map +1 -0
- package/dist/src/agent.d.ts +50 -9
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +125 -23
- package/dist/src/agent.js.map +1 -1
- package/dist/src/api/mcp-server-core.d.ts.map +1 -1
- package/dist/src/api/mcp-server-core.js +10 -3
- package/dist/src/api/mcp-server-core.js.map +1 -1
- package/dist/src/author-presentation.d.ts +50 -0
- package/dist/src/author-presentation.d.ts.map +1 -0
- package/dist/src/author-presentation.js +58 -0
- package/dist/src/author-presentation.js.map +1 -0
- package/dist/src/code-execution/isolate/render.d.ts.map +1 -1
- package/dist/src/code-execution/isolate/render.js +7 -6
- package/dist/src/code-execution/isolate/render.js.map +1 -1
- package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
- package/dist/src/code-execution/isolate/scripts.js +5 -4
- package/dist/src/code-execution/isolate/scripts.js.map +1 -1
- package/dist/src/dendrite/index.d.ts +6 -0
- package/dist/src/dendrite/index.d.ts.map +1 -0
- package/dist/src/dendrite/index.js +3 -0
- package/dist/src/dendrite/index.js.map +1 -0
- package/dist/src/dendrite/presets.d.ts +60 -0
- package/dist/src/dendrite/presets.d.ts.map +1 -0
- package/dist/src/dendrite/presets.js +117 -0
- package/dist/src/dendrite/presets.js.map +1 -0
- package/dist/src/dendrite/registry.d.ts +260 -0
- package/dist/src/dendrite/registry.d.ts.map +1 -0
- package/dist/src/dendrite/registry.js +742 -0
- package/dist/src/dendrite/registry.js.map +1 -0
- package/dist/src/dendrite/types.d.ts +392 -0
- package/dist/src/dendrite/types.d.ts.map +1 -0
- package/dist/src/dendrite/types.js +24 -0
- package/dist/src/dendrite/types.js.map +1 -0
- package/dist/src/framework.d.ts +806 -118
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +4180 -1121
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts +36 -21
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +223 -149
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/gate/recipe-reconcile.d.ts.map +1 -1
- package/dist/src/gate/recipe-reconcile.js +6 -5
- package/dist/src/gate/recipe-reconcile.js.map +1 -1
- package/dist/src/host-presentation.d.ts +4 -0
- package/dist/src/host-presentation.d.ts.map +1 -1
- package/dist/src/host-presentation.js +12 -10
- package/dist/src/host-presentation.js.map +1 -1
- package/dist/src/index.d.ts +6 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/inference-bounds.d.ts +37 -0
- package/dist/src/inference-bounds.d.ts.map +1 -0
- package/dist/src/inference-bounds.js +84 -0
- package/dist/src/inference-bounds.js.map +1 -0
- package/dist/src/line-reader.d.ts +7 -1
- package/dist/src/line-reader.d.ts.map +1 -1
- package/dist/src/line-reader.js +17 -6
- package/dist/src/line-reader.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +84 -9
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +136 -58
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/errors.d.ts +1 -0
- package/dist/src/mcpl/errors.d.ts.map +1 -1
- package/dist/src/mcpl/errors.js +3 -0
- package/dist/src/mcpl/errors.js.map +1 -1
- package/dist/src/mcpl/inbound-source.d.ts +2 -2
- package/dist/src/mcpl/inbound-source.js +2 -2
- package/dist/src/mcpl/inference-router.d.ts +11 -1
- package/dist/src/mcpl/inference-router.d.ts.map +1 -1
- package/dist/src/mcpl/inference-router.js +65 -9
- package/dist/src/mcpl/inference-router.js.map +1 -1
- package/dist/src/mcpl/modern-connection.d.ts +10 -7
- package/dist/src/mcpl/modern-connection.d.ts.map +1 -1
- package/dist/src/mcpl/modern-connection.js +85 -74
- package/dist/src/mcpl/modern-connection.js.map +1 -1
- package/dist/src/mcpl/protocol-family.d.ts +1 -1
- package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
- package/dist/src/mcpl/protocol-family.js +45 -3
- package/dist/src/mcpl/protocol-family.js.map +1 -1
- package/dist/src/mcpl/push-coalescer.d.ts +11 -7
- package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
- package/dist/src/mcpl/push-coalescer.js +21 -0
- package/dist/src/mcpl/push-coalescer.js.map +1 -1
- package/dist/src/mcpl/references.d.ts +1 -2
- package/dist/src/mcpl/references.d.ts.map +1 -1
- package/dist/src/mcpl/references.js +3 -3
- package/dist/src/mcpl/references.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +14 -0
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +26 -22
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/tool-signature.d.ts +1 -0
- package/dist/src/mcpl/tool-signature.d.ts.map +1 -1
- package/dist/src/mcpl/tool-signature.js +16 -11
- package/dist/src/mcpl/tool-signature.js.map +1 -1
- package/dist/src/mcpl/toolsets-module.d.ts.map +1 -1
- package/dist/src/mcpl/toolsets-module.js +7 -0
- package/dist/src/mcpl/toolsets-module.js.map +1 -1
- package/dist/src/mcpl/transport.d.ts +44 -21
- package/dist/src/mcpl/transport.d.ts.map +1 -1
- package/dist/src/mcpl/transport.js +283 -64
- package/dist/src/mcpl/transport.js.map +1 -1
- package/dist/src/mcpl/types.d.ts +17 -1
- 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 +32 -4
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +189 -25
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -1
- package/dist/src/modules/discord/discord-js-client.js +24 -16
- package/dist/src/modules/discord/discord-js-client.js.map +1 -1
- package/dist/src/modules/sender-name.d.ts +5 -4
- package/dist/src/modules/sender-name.d.ts.map +1 -1
- package/dist/src/modules/sender-name.js +7 -5
- package/dist/src/modules/sender-name.js.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.d.ts +16 -8
- package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.js +33 -12
- package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +6 -3
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +61 -15
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/observe.d.ts +9 -1
- package/dist/src/modules/workspace/observe.d.ts.map +1 -1
- package/dist/src/modules/workspace/observe.js +50 -10
- package/dist/src/modules/workspace/observe.js.map +1 -1
- package/dist/src/modules/workspace/reconcile.d.ts +11 -1
- package/dist/src/modules/workspace/reconcile.d.ts.map +1 -1
- package/dist/src/modules/workspace/reconcile.js +19 -8
- package/dist/src/modules/workspace/reconcile.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +8 -0
- package/dist/src/modules/workspace/types.d.ts.map +1 -1
- package/dist/src/modules/workspace/types.js.map +1 -1
- package/dist/src/modules/workspace/watcher.d.ts +7 -0
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
- package/dist/src/modules/workspace/watcher.js +7 -5
- package/dist/src/modules/workspace/watcher.js.map +1 -1
- package/dist/src/notice-tags.d.ts +2 -0
- package/dist/src/notice-tags.d.ts.map +1 -1
- package/dist/src/notice-tags.js +2 -0
- package/dist/src/notice-tags.js.map +1 -1
- package/dist/src/recovery/discord-awareness-outbox.d.ts.map +1 -1
- package/dist/src/recovery/discord-awareness-outbox.js +1 -9
- package/dist/src/recovery/discord-awareness-outbox.js.map +1 -1
- package/dist/src/silent-heartbeat.d.ts +4 -2
- package/dist/src/silent-heartbeat.d.ts.map +1 -1
- package/dist/src/silent-heartbeat.js +7 -4
- package/dist/src/silent-heartbeat.js.map +1 -1
- package/dist/src/stored-injections.d.ts +4 -0
- package/dist/src/stored-injections.d.ts.map +1 -1
- package/dist/src/stored-injections.js +6 -0
- package/dist/src/stored-injections.js.map +1 -1
- package/dist/src/supplied-text.d.ts +2 -0
- package/dist/src/supplied-text.d.ts.map +1 -1
- package/dist/src/supplied-text.js +16 -7
- package/dist/src/supplied-text.js.map +1 -1
- package/dist/src/tool-result-guard.js +1 -1
- package/dist/src/tool-result-guard.js.map +1 -1
- package/dist/src/tune-out/coordinator.d.ts +368 -16
- package/dist/src/tune-out/coordinator.d.ts.map +1 -1
- package/dist/src/tune-out/coordinator.js +1224 -136
- package/dist/src/tune-out/coordinator.js.map +1 -1
- package/dist/src/tune-out/tools.d.ts +115 -7
- package/dist/src/tune-out/tools.d.ts.map +1 -1
- package/dist/src/tune-out/tools.js +55 -18
- package/dist/src/tune-out/tools.js.map +1 -1
- package/dist/src/types/agent.d.ts +27 -1
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +153 -15
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +42 -3
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +140 -3
- package/dist/src/types/trace.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/admission/admit.ts +113 -0
- package/src/agent.ts +138 -31
- package/src/api/mcp-server-core.ts +10 -3
- package/src/author-presentation.ts +81 -0
- package/src/code-execution/isolate/render.ts +7 -6
- package/src/code-execution/isolate/scripts.ts +5 -4
- package/src/dendrite/index.ts +32 -0
- package/src/dendrite/presets.ts +149 -0
- package/src/dendrite/registry.ts +808 -0
- package/src/dendrite/types.ts +397 -0
- package/src/framework.ts +4344 -1052
- package/src/gate/event-gate.ts +251 -150
- package/src/gate/recipe-reconcile.ts +7 -5
- package/src/host-presentation.ts +14 -10
- package/src/index.ts +16 -2
- package/src/inference-bounds.ts +111 -0
- package/src/line-reader.ts +22 -5
- package/src/mcpl/channel-registry.ts +170 -60
- package/src/mcpl/errors.ts +4 -0
- package/src/mcpl/inbound-source.ts +2 -2
- package/src/mcpl/inference-router.ts +67 -10
- package/src/mcpl/modern-connection.ts +83 -68
- package/src/mcpl/protocol-family.ts +37 -4
- package/src/mcpl/push-coalescer.ts +21 -7
- package/src/mcpl/references.ts +3 -4
- package/src/mcpl/server-connection.ts +30 -21
- package/src/mcpl/tool-signature.ts +18 -11
- package/src/mcpl/toolsets-module.ts +7 -0
- package/src/mcpl/transport.ts +261 -60
- package/src/mcpl/types.ts +18 -1
- package/src/module-registry.ts +178 -25
- package/src/modules/discord/discord-js-client.ts +33 -29
- package/src/modules/sender-name.ts +8 -5
- package/src/modules/workspace/disk-agreement.ts +39 -15
- package/src/modules/workspace/index.ts +65 -14
- package/src/modules/workspace/observe.ts +51 -10
- package/src/modules/workspace/reconcile.ts +22 -8
- package/src/modules/workspace/types.ts +5 -0
- package/src/modules/workspace/watcher.ts +8 -6
- package/src/notice-tags.ts +2 -0
- package/src/recovery/discord-awareness-outbox.ts +1 -11
- package/src/silent-heartbeat.ts +7 -4
- package/src/stored-injections.ts +7 -0
- package/src/supplied-text.ts +17 -6
- package/src/tool-result-guard.ts +1 -1
- package/src/tune-out/coordinator.ts +1374 -141
- package/src/tune-out/tools.ts +166 -13
- package/src/types/agent.ts +30 -1
- package/src/types/framework.ts +157 -15
- package/src/types/module.ts +42 -3
- package/src/types/trace.ts +154 -3
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
49
49
|
import { EventEmitter } from 'node:events';
|
|
50
50
|
import { Client, InsufficientScopeError, SdkError, SdkErrorCode, SdkHttpError, StreamableHTTPClientTransport, UnsupportedProtocolVersionError, parseJSONRPCMessage, } from '@modelcontextprotocol/client';
|
|
51
|
-
import { StdioTransport } from './transport.js';
|
|
52
|
-
import { McplProtocolVersionError, McplRequestError, McplUnreapedLaunchError } from './server-connection.js';
|
|
51
|
+
import { HeldStderr, STDERR_END_WAIT_MS, StdioTransport } from './transport.js';
|
|
52
|
+
import { McplProtocolVersionError, McplRequestError, McplUnreapedLaunchError, stderrTailOf, withStderr } from './server-connection.js';
|
|
53
53
|
import { LEGACY_MCP_PROTOCOL_VERSION, MAX_TIMER_MS, MODERN_MCP_PROTOCOL_VERSION, checkServerConfig, describeCredentialError, logDroppedLine, maskedError, noteDialSent, redactServerText, redactedData, serverTextRedactor } from './protocol-family.js';
|
|
54
54
|
import { boundedForLog } from './errors.js';
|
|
55
55
|
import { logDetail, logValue, logValueRedacted, loggedCode } from './log-value.js';
|
|
@@ -59,20 +59,12 @@ const DEFAULT_REQUEST_TIMEOUT_MS = 60_000;
|
|
|
59
59
|
const CONNECT_TIMEOUT_MS = 30_000;
|
|
60
60
|
/** Inventory listing has its own bound: it is host work, not a resident's call. */
|
|
61
61
|
const LIST_TIMEOUT_MS = 30_000;
|
|
62
|
-
/** Startup stderr kept for the first listener. */
|
|
63
|
-
const STDERR_BACKLOG_LINES = 200;
|
|
64
|
-
/**
|
|
65
|
-
* A send that Connectome's own transport refused before writing anything (its
|
|
66
|
-
* stdio line is closed): nothing of that request reached the server. `pipe`:
|
|
67
|
-
* the child's stdin or stdout had failed, so this host can no longer write to
|
|
68
|
-
* that server at all.
|
|
69
|
-
*/
|
|
70
62
|
class NotWrittenError extends Error {
|
|
71
|
-
|
|
72
|
-
constructor(message,
|
|
63
|
+
stdioStopped;
|
|
64
|
+
constructor(message, stdioStopped = false) {
|
|
73
65
|
super(message);
|
|
74
66
|
this.name = 'NotWrittenError';
|
|
75
|
-
this.
|
|
67
|
+
this.stdioStopped = stdioStopped;
|
|
76
68
|
}
|
|
77
69
|
}
|
|
78
70
|
/** The logical request a send belongs to. The SDK hands each request to the
|
|
@@ -260,15 +252,14 @@ class SpawnerStdioTransport {
|
|
|
260
252
|
onerror;
|
|
261
253
|
onmessage;
|
|
262
254
|
line = null;
|
|
255
|
+
/** How the child ended, once its line has closed: the line's reason, and
|
|
256
|
+
* the child's exit code or signal. */
|
|
257
|
+
closeInfo;
|
|
263
258
|
/** The spawn start() awaits, so a close() made meanwhile closes its child. */
|
|
264
259
|
spawning = null;
|
|
265
260
|
/** Built once for the transport: every malformed line uses it. */
|
|
266
261
|
recorded;
|
|
267
|
-
constructor(config, onStderr,
|
|
268
|
-
/** The child's pipe failed and it outlived SIGKILL too, so the line
|
|
269
|
-
* stays open, owning it (the line's 'unreaped'): `reason` names the
|
|
270
|
-
* pipe's error, and `failure` is the reap's. */
|
|
271
|
-
onUnreaped) {
|
|
262
|
+
constructor(config, onStderr, onUnreaped) {
|
|
272
263
|
this.config = config;
|
|
273
264
|
this.onStderr = onStderr;
|
|
274
265
|
this.onUnreaped = onUnreaped;
|
|
@@ -307,22 +298,31 @@ class SpawnerStdioTransport {
|
|
|
307
298
|
});
|
|
308
299
|
line.on('stderr', (text) => this.onStderr(text));
|
|
309
300
|
line.on('error', (error) => this.onerror?.(error));
|
|
310
|
-
line.on('close', () =>
|
|
311
|
-
|
|
301
|
+
line.on('close', (info) => {
|
|
302
|
+
this.closeInfo = info;
|
|
303
|
+
this.onclose?.();
|
|
304
|
+
});
|
|
305
|
+
line.on('unreaped', (failure) => this.onUnreaped(`this host stopped using the server's stdio (${line.stdioStopCause?.message ?? 'an error'})`, failure));
|
|
306
|
+
}
|
|
307
|
+
get stdioStopCause() {
|
|
308
|
+
return this.line?.stdioStopCause;
|
|
312
309
|
}
|
|
313
|
-
/** The
|
|
314
|
-
*
|
|
315
|
-
|
|
316
|
-
|
|
310
|
+
/** The last of the child's stderr, redacted, once the stream has ended or
|
|
311
|
+
* STDERR_END_WAIT_MS has passed, as the legacy handshake waits before it
|
|
312
|
+
* refuses; '' when there's no child or it wrote nothing. */
|
|
313
|
+
async stderrTail() {
|
|
314
|
+
const line = this.line;
|
|
315
|
+
if (!line)
|
|
316
|
+
return '';
|
|
317
|
+
await line.stderrEnded(STDERR_END_WAIT_MS);
|
|
318
|
+
return line.stderrTailRedacted(serverTextRedactor(this.config)).trimEnd();
|
|
317
319
|
}
|
|
318
320
|
async send(message) {
|
|
319
321
|
if (!this.line || this.line.closed)
|
|
320
322
|
throw new NotWrittenError(`MCP server "${this.config.id}" stdio transport is closed`);
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
if (failed)
|
|
325
|
-
throw new NotWrittenError(`MCP server "${this.config.id}" stdio pipe failed with ${failed.message}`, true);
|
|
323
|
+
const stopped = this.stdioStopCause;
|
|
324
|
+
if (stopped)
|
|
325
|
+
throw new NotWrittenError(`MCP server "${this.config.id}": this host stopped using the server's stdio (${stopped.message})`, true);
|
|
326
326
|
this.line.writeLine(JSON.stringify(message));
|
|
327
327
|
}
|
|
328
328
|
async close() {
|
|
@@ -397,10 +397,7 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
397
397
|
/** A lost session's reap in flight: the reconnect follows it, and
|
|
398
398
|
* close() waits for it. */
|
|
399
399
|
losing = null;
|
|
400
|
-
|
|
401
|
-
* connect() returns), delivered to the first listener. Bounded: the
|
|
402
|
-
* newest lines are kept. */
|
|
403
|
-
stderrBacklog = [];
|
|
400
|
+
heldStderr = new HeldStderr();
|
|
404
401
|
redactor;
|
|
405
402
|
/** The server's text with its configuration's credentials replaced, for
|
|
406
403
|
* the errors this connection hands its caller and its records. */
|
|
@@ -426,10 +423,9 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
426
423
|
console.error(`[mcp] ${this.id}: ${redactServerText(error.message, this.config)}`);
|
|
427
424
|
});
|
|
428
425
|
this.on('newListener', (event) => {
|
|
429
|
-
if (event !== 'stderr' || this.
|
|
426
|
+
if (event !== 'stderr' || this.heldStderr.empty)
|
|
430
427
|
return;
|
|
431
|
-
const pending = this.
|
|
432
|
-
this.stderrBacklog = [];
|
|
428
|
+
const pending = this.heldStderr.take();
|
|
433
429
|
// After the listener is added (newListener fires just before).
|
|
434
430
|
queueMicrotask(() => { for (const line of pending)
|
|
435
431
|
this.emit('stderr', { line }); });
|
|
@@ -440,9 +436,7 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
440
436
|
this.emit('stderr', { line });
|
|
441
437
|
return;
|
|
442
438
|
}
|
|
443
|
-
this.
|
|
444
|
-
if (this.stderrBacklog.length > STDERR_BACKLOG_LINES)
|
|
445
|
-
this.stderrBacklog.shift();
|
|
439
|
+
this.heldStderr.hold(line);
|
|
446
440
|
}
|
|
447
441
|
/** The per-call deadline: `requestTimeoutMs`, validated positive. */
|
|
448
442
|
get requestTimeoutMs() {
|
|
@@ -455,6 +449,13 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
455
449
|
get willReconnect() {
|
|
456
450
|
return this.reconnectEnabled && !this.closedByHost && this.unreaped.length === 0;
|
|
457
451
|
}
|
|
452
|
+
/**
|
|
453
|
+
* Stop reconnecting, closing nothing, as the legacy engine's does.
|
|
454
|
+
* @internal For the framework's stop(); not a host API.
|
|
455
|
+
*/
|
|
456
|
+
stopReconnecting() {
|
|
457
|
+
this.reconnectEnabled = false;
|
|
458
|
+
}
|
|
458
459
|
/** Whether close() has been called: closed for good, or closing. A
|
|
459
460
|
* connection lost on its own is not closed in this sense. */
|
|
460
461
|
get isClosed() {
|
|
@@ -539,13 +540,16 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
539
540
|
// `cause`, can carry it whole (maskedError). The protocol refusal
|
|
540
541
|
// above was built from redacted words.
|
|
541
542
|
const masked = maskedError(error, this.recorded);
|
|
543
|
+
const stderrTail = stderrTailOf(error);
|
|
544
|
+
if (stderrTail !== undefined)
|
|
545
|
+
Object.assign(masked, { stderrTail });
|
|
542
546
|
// A launch that couldn't be reaped halts reconnecting, so no retry
|
|
543
547
|
// will come: the first connect fails, as one without reconnect does.
|
|
544
548
|
if (!this.reconnectEnabled || this.holdsUnreapedChild)
|
|
545
549
|
throw masked;
|
|
546
|
-
console.error(`MCP server "${this.id}" initial connect failed, will retry
|
|
550
|
+
console.error(`MCP server "${this.id}" initial connect failed, will retry: ${masked.message}${withStderr(masked, this.recorded)}`);
|
|
547
551
|
this.reconnectAttempts = 1;
|
|
548
|
-
this.emit('connect-failed', { error: error.message, attempt: 0 });
|
|
552
|
+
this.emit('connect-failed', { error: error.message, ...(stderrTail === undefined ? {} : { stderrTail }), attempt: 0 });
|
|
549
553
|
this.scheduleReconnect();
|
|
550
554
|
}
|
|
551
555
|
}
|
|
@@ -584,13 +588,7 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
584
588
|
this.relistenAttempts = 0;
|
|
585
589
|
const stdio = this.transportKind === 'stdio'
|
|
586
590
|
? new SpawnerStdioTransport(this.config, (line) => { if (this.isCurrent(generation))
|
|
587
|
-
this.deliverStderr(line); },
|
|
588
|
-
// A child whose pipe failed and that outlived SIGKILL: a loss whose
|
|
589
|
-
// launch is already known unreaped, so it's held as the loss is
|
|
590
|
-
// handled (handleLost). During a connect there is no session to lose
|
|
591
|
-
// yet: a connect whose pipe has failed fails, whether or not the SDK
|
|
592
|
-
// resolves it (establish), and its cleanup holds the launch.
|
|
593
|
-
(reason, failure) => { if (this.isCurrent(generation))
|
|
591
|
+
this.deliverStderr(line); }, (reason, failure) => { if (this.isCurrent(generation))
|
|
594
592
|
this.handleLost(generation, reason, failure); })
|
|
595
593
|
: null;
|
|
596
594
|
const inner = stdio ?? new StreamableHTTPClientTransport(new URL(this.config.url), { authProvider: bearerAuth(this.config) });
|
|
@@ -624,8 +622,10 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
624
622
|
// Marked before the session is adopted too: a close during the connect
|
|
625
623
|
// makes it a failed connect (see establish).
|
|
626
624
|
session.lost = true;
|
|
625
|
+
// Over stdio, how its child ended, as legacy's loss carries it.
|
|
626
|
+
const ended = session.stdio?.closeInfo;
|
|
627
627
|
if (this.isCurrent(generation))
|
|
628
|
-
this.handleLost(generation, 'transport closed');
|
|
628
|
+
this.handleLost(generation, ended?.reason ?? 'transport closed', undefined, ended);
|
|
629
629
|
};
|
|
630
630
|
// `done` settles only once this connect's own cleanup has finished, on
|
|
631
631
|
// every path: close() waits on it, and must not resolve while that
|
|
@@ -641,6 +641,12 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
641
641
|
settle();
|
|
642
642
|
}
|
|
643
643
|
}
|
|
644
|
+
/** `error` carrying the session's stderr tail as `stderrTail`, as a
|
|
645
|
+
* legacy connect's failure does, when the child wrote any. */
|
|
646
|
+
static async withStderrTail(session, error) {
|
|
647
|
+
const tail = await session.stdio?.stderrTail();
|
|
648
|
+
return tail && error instanceof Error ? Object.assign(error, { stderrTail: tail }) : error;
|
|
649
|
+
}
|
|
644
650
|
/** Connect one generation's client, and adopt it if it's still current. */
|
|
645
651
|
async establish(session) {
|
|
646
652
|
try {
|
|
@@ -650,7 +656,7 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
650
656
|
const failure = await ModernMcpConnection.closeSession(session);
|
|
651
657
|
if (failure)
|
|
652
658
|
this.holdUnreaped(session, failure);
|
|
653
|
-
throw this.versionVerdict(error) ?? error;
|
|
659
|
+
throw await ModernMcpConnection.withStderrTail(session, this.versionVerdict(error) ?? error);
|
|
654
660
|
}
|
|
655
661
|
if (!this.isCurrent(session.generation)) {
|
|
656
662
|
// Superseded or closed while connecting: this generation never serves.
|
|
@@ -660,23 +666,23 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
660
666
|
return;
|
|
661
667
|
}
|
|
662
668
|
// The transport closed while the client connected, such as a child that
|
|
663
|
-
// exited at the connect-time list-change subscribe, or
|
|
664
|
-
//
|
|
665
|
-
// reports the subscribe's failure only as an error, and
|
|
666
|
-
// connect anyway (R1-2). Adopted, the session would read as
|
|
667
|
-
// with nothing it can write to behind it, and from a child that
|
|
668
|
-
// SIGKILL, whose 'unreaped' came while there was no session to
|
|
669
|
-
// later close would come to reconnect it. So the connect failed:
|
|
670
|
-
// close reaps the child, and a child it can't reap is held.
|
|
671
|
-
//
|
|
672
|
-
const
|
|
673
|
-
if (session.lost ||
|
|
669
|
+
// exited at the connect-time list-change subscribe, or this host stopped
|
|
670
|
+
// using the child's stdio, such as after that subscribe's write met
|
|
671
|
+
// EPIPE: the SDK reports the subscribe's failure only as an error, and
|
|
672
|
+
// resolves the connect anyway (R1-2). Adopted, the session would read as
|
|
673
|
+
// connected with nothing it can write to behind it, and from a child that
|
|
674
|
+
// outlived SIGKILL, whose 'unreaped' came while there was no session to
|
|
675
|
+
// lose, no later close would come to reconnect it. So the connect failed:
|
|
676
|
+
// its close reaps the child, and a child it can't reap is held. The
|
|
677
|
+
// stop's cause is named whether or not the child has exited by now.
|
|
678
|
+
const stopped = session.stdio?.stdioStopCause;
|
|
679
|
+
if (session.lost || stopped) {
|
|
674
680
|
const failure = await ModernMcpConnection.closeSession(session);
|
|
675
681
|
if (failure)
|
|
676
682
|
this.holdUnreaped(session, failure);
|
|
677
|
-
throw new Error(
|
|
678
|
-
? `MCP server "${this.id}" stdio
|
|
679
|
-
: `MCP server "${this.id}" closed its connection while connecting`);
|
|
683
|
+
throw await ModernMcpConnection.withStderrTail(session, new Error(stopped
|
|
684
|
+
? `MCP server "${this.id}": this host stopped using the server's stdio while connecting (${stopped.message})`
|
|
685
|
+
: `MCP server "${this.id}" closed its connection while connecting`));
|
|
680
686
|
}
|
|
681
687
|
this.session = session;
|
|
682
688
|
this.protocolVersion = MODERN_MCP_PROTOCOL_VERSION;
|
|
@@ -775,10 +781,8 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
775
781
|
this.scheduleRelisten(generation);
|
|
776
782
|
}
|
|
777
783
|
}
|
|
778
|
-
/** The transport went away (child exit, or a closed HTTP client).
|
|
779
|
-
|
|
780
|
-
* launch is already known unreaped. */
|
|
781
|
-
handleLost(generation, reason, unreaped) {
|
|
784
|
+
/** The transport went away (child exit, or a closed HTTP client). */
|
|
785
|
+
handleLost(generation, reason, unreaped, ended) {
|
|
782
786
|
const session = this.session;
|
|
783
787
|
if (session?.generation !== generation)
|
|
784
788
|
return;
|
|
@@ -821,7 +825,7 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
821
825
|
if (unreaped)
|
|
822
826
|
this.holdUnreaped(session, unreaped, false);
|
|
823
827
|
try {
|
|
824
|
-
this.emit('close', { reason });
|
|
828
|
+
this.emit('close', { reason, code: ended?.code ?? null, signal: ended?.signal ?? null, pipeFailed: ended?.pipeFailed === true });
|
|
825
829
|
}
|
|
826
830
|
finally {
|
|
827
831
|
if (unreaped)
|
|
@@ -859,19 +863,26 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
859
863
|
if (this.closedByHost)
|
|
860
864
|
return;
|
|
861
865
|
this.reconnectAttempts = attempt + 1;
|
|
866
|
+
const stderrTail = stderrTailOf(error);
|
|
867
|
+
const failed = (message, permanent) => this.emit('reconnect-failed', {
|
|
868
|
+
error: message,
|
|
869
|
+
...(stderrTail === undefined ? {} : { stderrTail }),
|
|
870
|
+
attempt,
|
|
871
|
+
...(permanent ? { permanent } : {}),
|
|
872
|
+
});
|
|
862
873
|
const halted = this.unreapedFailure();
|
|
863
874
|
if (halted) {
|
|
864
|
-
|
|
875
|
+
failed(`${error.message}; ${halted}`, true);
|
|
865
876
|
return;
|
|
866
877
|
}
|
|
867
878
|
// No common revision: every further attempt would hear the same
|
|
868
879
|
// answer. Stop; only the configuration can fix it.
|
|
869
880
|
if (error instanceof McplProtocolVersionError) {
|
|
870
881
|
this.reconnectEnabled = false;
|
|
871
|
-
|
|
882
|
+
failed(error.message, true);
|
|
872
883
|
return;
|
|
873
884
|
}
|
|
874
|
-
|
|
885
|
+
failed(error.message);
|
|
875
886
|
this.scheduleReconnect();
|
|
876
887
|
}
|
|
877
888
|
}
|
|
@@ -1104,8 +1115,8 @@ export class ModernMcpConnection extends EventEmitter {
|
|
|
1104
1115
|
: `${said}, so whether the request took effect is unknown. Check its effect before trying again.`;
|
|
1105
1116
|
if (!record.handedOff) {
|
|
1106
1117
|
log(`${what} not sent: ${logDetail(message)}`);
|
|
1107
|
-
const
|
|
1108
|
-
return new McplRequestError(
|
|
1118
|
+
const stdioStopped = error instanceof NotWrittenError && error.stdioStopped;
|
|
1119
|
+
return new McplRequestError(stdioStopped
|
|
1109
1120
|
? `The request wasn't sent: this host can no longer write to ${server}, so nothing ran. ${this.retryText()}`
|
|
1110
1121
|
// Before the wire, the cause can pass (the stdio line closing as
|
|
1111
1122
|
// the connection is lost) or stay (a tool's outputSchema the SDK
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modern-connection.js","sourceRoot":"","sources":["../../../src/mcpl/modern-connection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modern-connection.js","sourceRoot":"","sources":["../../../src/mcpl/modern-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -232,7 +232,7 @@ export declare function serverConfigProblems(config: McplServerConfig): string[]
|
|
|
232
232
|
* The refusal names the value's kind, never the value, which could be a
|
|
233
233
|
* credential pasted into the wrong field, and quotes nothing of the url.
|
|
234
234
|
*/
|
|
235
|
-
export declare function tokenTransportProblem(config: Pick<McplServerConfig, 'id' | 'tokenTransport'>, url: URL): string | undefined;
|
|
235
|
+
export declare function tokenTransportProblem(config: Pick<McplServerConfig, 'id' | 'tokenTransport' | 'credentialRequired'>, url: URL): string | undefined;
|
|
236
236
|
/**
|
|
237
237
|
* Whether a header-mode credential can go in an `Authorization: Bearer`
|
|
238
238
|
* header as it is: printable ASCII (U+0020 to U+007E), with no space at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-family.d.ts","sourceRoot":"","sources":["../../../src/mcpl/protocol-family.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol-family.d.ts","sourceRoot":"","sources":["../../../src/mcpl/protocol-family.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAGhE,6DAA6D;AAC7D,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD,2CAA2C;AAC3C,eAAO,MAAM,2BAA2B,eAAe,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED,6EAA6E;AAC7E,eAAO,MAAM,YAAY,aAAgB,CAAC;AAG1C,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC;AA0BjG;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAazD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,gBAAgB,CAAC,GAAG,MAAM,CAElI;AAED;yEACyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC;;;;;OAKG;IACH,GAAG,IAAI,SAAS,CAAC;CAClB;AAKD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,gBAAgB,CAAC,GAAG,kBAAkB,CAkBjI;AAED;6DAC6D;AAC7D,eAAO,MAAM,aAAa,QAAyF,CAAC;AAEpH;aACa;AACb,eAAO,MAAM,aAAa,QAAwD,CAAC;AAOnF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAoC9F;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,KAAK,CAKpF;AAcD;mEACmE;AACnE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsB3G;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,CAI3E;AAED,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,gBAAgB,CAAC,GAAG,iBAAiB,EAAE,CAqIxI;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CA6BpF;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAG5C;AAKD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAI9D;AAaD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAqCzE;AAcD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAwCnE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAsEvE;AAkCD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,gBAAgB,GAAG,oBAAoB,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAelJ;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD;AAaD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAmCvE;AAED;4EAC4E;AAC5E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAKzE;AAKD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAe1H"}
|
|
@@ -683,7 +683,7 @@ export function serverConfigProblems(config) {
|
|
|
683
683
|
catch (error) {
|
|
684
684
|
return [error.message];
|
|
685
685
|
}
|
|
686
|
-
const problems =
|
|
686
|
+
const problems = credentialRequiredProblems(config);
|
|
687
687
|
if (binding.transport === 'http') {
|
|
688
688
|
// fetch refuses a url with userinfo, and its error quotes the whole url,
|
|
689
689
|
// password included, into the connect failure's log line, trace and
|
|
@@ -739,6 +739,47 @@ export function serverConfigProblems(config) {
|
|
|
739
739
|
}
|
|
740
740
|
return problems;
|
|
741
741
|
}
|
|
742
|
+
/** Strict-only admission, also applied to a captured policy at dial time.
|
|
743
|
+
* Nothing supplied in an invalid setting is quoted. Runtime providers are
|
|
744
|
+
* host-attached, so their presence is checked by the dial, not here. */
|
|
745
|
+
function credentialRequiredProblems(config) {
|
|
746
|
+
const flag = config.credentialRequired;
|
|
747
|
+
if (flag === undefined || flag === null || flag === false)
|
|
748
|
+
return [];
|
|
749
|
+
const problem = (why) => [`MCP server "${config.id}": credentialRequired ${why}`];
|
|
750
|
+
if (flag !== true)
|
|
751
|
+
return problem('must be a boolean');
|
|
752
|
+
let binding;
|
|
753
|
+
try {
|
|
754
|
+
binding = resolveServerBinding(config);
|
|
755
|
+
}
|
|
756
|
+
catch {
|
|
757
|
+
return problem('requires a valid WebSocket binding');
|
|
758
|
+
}
|
|
759
|
+
if (binding.transport !== 'websocket' || binding.family !== 'legacy') {
|
|
760
|
+
return problem('applies only to a legacy ws(s):// server, not HTTP, stdio or modern servers');
|
|
761
|
+
}
|
|
762
|
+
if (config.token !== undefined && config.token !== null)
|
|
763
|
+
return problem('forbids a static token, including an empty token');
|
|
764
|
+
if (config.tokenTransport !== 'header')
|
|
765
|
+
return problem("requires tokenTransport 'header'");
|
|
766
|
+
const url = new URL(config.url);
|
|
767
|
+
if (url.hash)
|
|
768
|
+
return problem('forbids a URL fragment');
|
|
769
|
+
if (url.protocol === 'ws:') {
|
|
770
|
+
if (!isLoopbackHost(url.hostname))
|
|
771
|
+
return problem('requires TLS outside loopback');
|
|
772
|
+
const name = url.hostname.toLowerCase();
|
|
773
|
+
const host = name.replace(/\.$/, '');
|
|
774
|
+
if (host.endsWith('.localhost') || name === 'localhost.') {
|
|
775
|
+
return problem('requires TLS for a localhost name other than localhost itself, which a resolver can send off this host; use localhost or a loopback address');
|
|
776
|
+
}
|
|
777
|
+
if (host === '0.0.0.0' || host === '[::]') {
|
|
778
|
+
return problem('requires TLS for the unspecified address, which is not a loopback address; use 127.0.0.1 or [::1]');
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
return [];
|
|
782
|
+
}
|
|
742
783
|
/**
|
|
743
784
|
* What's wrong with a WebSocket server's `tokenTransport`, as a message, or
|
|
744
785
|
* undefined: a value that is neither mode, or `'header'` with a url that
|
|
@@ -757,11 +798,12 @@ export function tokenTransportProblem(config, url) {
|
|
|
757
798
|
if (mode !== 'header') {
|
|
758
799
|
return `MCP server "${config.id}": tokenTransport must be 'query' or 'header', not ${typeof mode === 'string' ? 'another string' : kindOf(mode)}`;
|
|
759
800
|
}
|
|
801
|
+
const strict = config.credentialRequired === true;
|
|
760
802
|
if (url.searchParams.has('token')) {
|
|
761
|
-
return `MCP server "${config.id}": with tokenTransport 'header' the url must not carry a "token" query parameter, which would still put a credential in it; give it as "token" or "accessProvider"`;
|
|
803
|
+
return `MCP server "${config.id}": with tokenTransport 'header' the url must not carry a "token" query parameter, which would still put a credential in it; give it as ${strict ? '"accessProvider"' : '"token" or "accessProvider"'}`;
|
|
762
804
|
}
|
|
763
805
|
if (url.username || url.password) {
|
|
764
|
-
return `MCP server "${config.id}": with tokenTransport 'header' the url must not carry userinfo (user:password@), since the Bearer header replaces the userinfo's Basic credential whenever it carries a credential; leave out "tokenTransport" to send the userinfo as before, or give the credential as "token" or "accessProvider"`;
|
|
806
|
+
return `MCP server "${config.id}": with tokenTransport 'header' the url must not carry userinfo (user:password@), since the Bearer header replaces the userinfo's Basic credential whenever it carries a credential; ${strict ? 'give the credential as "accessProvider"' : 'leave out "tokenTransport" to send the userinfo as before, or give the credential as "token" or "accessProvider"'}`;
|
|
765
807
|
}
|
|
766
808
|
return undefined;
|
|
767
809
|
}
|