@animalabs/agent-framework 0.30.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.
Files changed (179) hide show
  1. package/README.md +71 -8
  2. package/dist/src/agent.d.ts +29 -9
  3. package/dist/src/agent.d.ts.map +1 -1
  4. package/dist/src/agent.js +82 -17
  5. package/dist/src/agent.js.map +1 -1
  6. package/dist/src/api/mcp-server-core.d.ts.map +1 -1
  7. package/dist/src/api/mcp-server-core.js +10 -3
  8. package/dist/src/api/mcp-server-core.js.map +1 -1
  9. package/dist/src/code-execution/isolate/render.d.ts.map +1 -1
  10. package/dist/src/code-execution/isolate/render.js +7 -6
  11. package/dist/src/code-execution/isolate/render.js.map +1 -1
  12. package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
  13. package/dist/src/code-execution/isolate/scripts.js +5 -4
  14. package/dist/src/code-execution/isolate/scripts.js.map +1 -1
  15. package/dist/src/framework.d.ts +129 -92
  16. package/dist/src/framework.d.ts.map +1 -1
  17. package/dist/src/framework.js +1115 -704
  18. package/dist/src/framework.js.map +1 -1
  19. package/dist/src/gate/event-gate.d.ts +24 -17
  20. package/dist/src/gate/event-gate.d.ts.map +1 -1
  21. package/dist/src/gate/event-gate.js +198 -144
  22. package/dist/src/gate/event-gate.js.map +1 -1
  23. package/dist/src/gate/recipe-reconcile.d.ts.map +1 -1
  24. package/dist/src/gate/recipe-reconcile.js +6 -5
  25. package/dist/src/gate/recipe-reconcile.js.map +1 -1
  26. package/dist/src/host-presentation.d.ts.map +1 -1
  27. package/dist/src/host-presentation.js +5 -7
  28. package/dist/src/host-presentation.js.map +1 -1
  29. package/dist/src/index.d.ts +1 -0
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +1 -0
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/inference-bounds.d.ts +37 -0
  34. package/dist/src/inference-bounds.d.ts.map +1 -0
  35. package/dist/src/inference-bounds.js +84 -0
  36. package/dist/src/inference-bounds.js.map +1 -0
  37. package/dist/src/line-reader.d.ts +7 -1
  38. package/dist/src/line-reader.d.ts.map +1 -1
  39. package/dist/src/line-reader.js +17 -6
  40. package/dist/src/line-reader.js.map +1 -1
  41. package/dist/src/mcpl/errors.d.ts +1 -0
  42. package/dist/src/mcpl/errors.d.ts.map +1 -1
  43. package/dist/src/mcpl/errors.js +3 -0
  44. package/dist/src/mcpl/errors.js.map +1 -1
  45. package/dist/src/mcpl/inbound-source.d.ts +2 -2
  46. package/dist/src/mcpl/inbound-source.js +2 -2
  47. package/dist/src/mcpl/inference-router.d.ts +11 -1
  48. package/dist/src/mcpl/inference-router.d.ts.map +1 -1
  49. package/dist/src/mcpl/inference-router.js +65 -9
  50. package/dist/src/mcpl/inference-router.js.map +1 -1
  51. package/dist/src/mcpl/modern-connection.d.ts +10 -7
  52. package/dist/src/mcpl/modern-connection.d.ts.map +1 -1
  53. package/dist/src/mcpl/modern-connection.js +85 -74
  54. package/dist/src/mcpl/modern-connection.js.map +1 -1
  55. package/dist/src/mcpl/protocol-family.d.ts +1 -1
  56. package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
  57. package/dist/src/mcpl/protocol-family.js +45 -3
  58. package/dist/src/mcpl/protocol-family.js.map +1 -1
  59. package/dist/src/mcpl/push-coalescer.d.ts +2 -7
  60. package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
  61. package/dist/src/mcpl/push-coalescer.js.map +1 -1
  62. package/dist/src/mcpl/references.d.ts +1 -2
  63. package/dist/src/mcpl/references.d.ts.map +1 -1
  64. package/dist/src/mcpl/references.js +3 -3
  65. package/dist/src/mcpl/references.js.map +1 -1
  66. package/dist/src/mcpl/server-connection.d.ts +14 -0
  67. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  68. package/dist/src/mcpl/server-connection.js +26 -22
  69. package/dist/src/mcpl/server-connection.js.map +1 -1
  70. package/dist/src/mcpl/tool-signature.d.ts +1 -0
  71. package/dist/src/mcpl/tool-signature.d.ts.map +1 -1
  72. package/dist/src/mcpl/tool-signature.js +16 -11
  73. package/dist/src/mcpl/tool-signature.js.map +1 -1
  74. package/dist/src/mcpl/transport.d.ts +44 -21
  75. package/dist/src/mcpl/transport.d.ts.map +1 -1
  76. package/dist/src/mcpl/transport.js +283 -64
  77. package/dist/src/mcpl/transport.js.map +1 -1
  78. package/dist/src/mcpl/types.d.ts +17 -1
  79. package/dist/src/mcpl/types.d.ts.map +1 -1
  80. package/dist/src/mcpl/types.js.map +1 -1
  81. package/dist/src/module-registry.d.ts +32 -4
  82. package/dist/src/module-registry.d.ts.map +1 -1
  83. package/dist/src/module-registry.js +189 -25
  84. package/dist/src/module-registry.js.map +1 -1
  85. package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -1
  86. package/dist/src/modules/discord/discord-js-client.js +24 -16
  87. package/dist/src/modules/discord/discord-js-client.js.map +1 -1
  88. package/dist/src/modules/sender-name.d.ts +5 -4
  89. package/dist/src/modules/sender-name.d.ts.map +1 -1
  90. package/dist/src/modules/sender-name.js +7 -5
  91. package/dist/src/modules/sender-name.js.map +1 -1
  92. package/dist/src/modules/workspace/disk-agreement.d.ts +16 -8
  93. package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
  94. package/dist/src/modules/workspace/disk-agreement.js +33 -12
  95. package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
  96. package/dist/src/modules/workspace/index.d.ts +6 -3
  97. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  98. package/dist/src/modules/workspace/index.js +61 -15
  99. package/dist/src/modules/workspace/index.js.map +1 -1
  100. package/dist/src/modules/workspace/observe.d.ts +9 -1
  101. package/dist/src/modules/workspace/observe.d.ts.map +1 -1
  102. package/dist/src/modules/workspace/observe.js +50 -10
  103. package/dist/src/modules/workspace/observe.js.map +1 -1
  104. package/dist/src/modules/workspace/reconcile.d.ts +11 -1
  105. package/dist/src/modules/workspace/reconcile.d.ts.map +1 -1
  106. package/dist/src/modules/workspace/reconcile.js +19 -8
  107. package/dist/src/modules/workspace/reconcile.js.map +1 -1
  108. package/dist/src/modules/workspace/types.d.ts +8 -0
  109. package/dist/src/modules/workspace/types.d.ts.map +1 -1
  110. package/dist/src/modules/workspace/types.js.map +1 -1
  111. package/dist/src/modules/workspace/watcher.d.ts +7 -0
  112. package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
  113. package/dist/src/modules/workspace/watcher.js +7 -5
  114. package/dist/src/modules/workspace/watcher.js.map +1 -1
  115. package/dist/src/recovery/discord-awareness-outbox.d.ts.map +1 -1
  116. package/dist/src/recovery/discord-awareness-outbox.js +1 -9
  117. package/dist/src/recovery/discord-awareness-outbox.js.map +1 -1
  118. package/dist/src/supplied-text.d.ts +2 -0
  119. package/dist/src/supplied-text.d.ts.map +1 -1
  120. package/dist/src/supplied-text.js +16 -7
  121. package/dist/src/supplied-text.js.map +1 -1
  122. package/dist/src/tool-result-guard.js +1 -1
  123. package/dist/src/tool-result-guard.js.map +1 -1
  124. package/dist/src/tune-out/coordinator.d.ts +2 -20
  125. package/dist/src/tune-out/coordinator.d.ts.map +1 -1
  126. package/dist/src/tune-out/coordinator.js +175 -70
  127. package/dist/src/tune-out/coordinator.js.map +1 -1
  128. package/dist/src/tune-out/tools.d.ts +14 -2
  129. package/dist/src/tune-out/tools.d.ts.map +1 -1
  130. package/dist/src/tune-out/tools.js.map +1 -1
  131. package/dist/src/types/agent.d.ts +2 -1
  132. package/dist/src/types/agent.d.ts.map +1 -1
  133. package/dist/src/types/framework.d.ts +54 -15
  134. package/dist/src/types/framework.d.ts.map +1 -1
  135. package/dist/src/types/module.d.ts +42 -3
  136. package/dist/src/types/module.d.ts.map +1 -1
  137. package/dist/src/types/trace.d.ts +4 -3
  138. package/dist/src/types/trace.d.ts.map +1 -1
  139. package/package.json +3 -3
  140. package/src/agent.ts +90 -25
  141. package/src/api/mcp-server-core.ts +10 -3
  142. package/src/code-execution/isolate/render.ts +7 -6
  143. package/src/code-execution/isolate/scripts.ts +5 -4
  144. package/src/framework.ts +1145 -723
  145. package/src/gate/event-gate.ts +220 -145
  146. package/src/gate/recipe-reconcile.ts +7 -5
  147. package/src/host-presentation.ts +4 -7
  148. package/src/index.ts +1 -0
  149. package/src/inference-bounds.ts +111 -0
  150. package/src/line-reader.ts +22 -5
  151. package/src/mcpl/errors.ts +4 -0
  152. package/src/mcpl/inbound-source.ts +2 -2
  153. package/src/mcpl/inference-router.ts +67 -10
  154. package/src/mcpl/modern-connection.ts +83 -68
  155. package/src/mcpl/protocol-family.ts +37 -4
  156. package/src/mcpl/push-coalescer.ts +2 -7
  157. package/src/mcpl/references.ts +3 -4
  158. package/src/mcpl/server-connection.ts +30 -21
  159. package/src/mcpl/tool-signature.ts +18 -11
  160. package/src/mcpl/transport.ts +261 -60
  161. package/src/mcpl/types.ts +18 -1
  162. package/src/module-registry.ts +178 -25
  163. package/src/modules/discord/discord-js-client.ts +33 -29
  164. package/src/modules/sender-name.ts +8 -5
  165. package/src/modules/workspace/disk-agreement.ts +39 -15
  166. package/src/modules/workspace/index.ts +65 -14
  167. package/src/modules/workspace/observe.ts +51 -10
  168. package/src/modules/workspace/reconcile.ts +22 -8
  169. package/src/modules/workspace/types.ts +5 -0
  170. package/src/modules/workspace/watcher.ts +8 -6
  171. package/src/recovery/discord-awareness-outbox.ts +1 -11
  172. package/src/supplied-text.ts +17 -6
  173. package/src/tool-result-guard.ts +1 -1
  174. package/src/tune-out/coordinator.ts +187 -85
  175. package/src/tune-out/tools.ts +14 -2
  176. package/src/types/agent.ts +2 -1
  177. package/src/types/framework.ts +55 -15
  178. package/src/types/module.ts +42 -3
  179. package/src/types/trace.ts +4 -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
- pipe;
72
- constructor(message, pipe = false) {
63
+ stdioStopped;
64
+ constructor(message, stdioStopped = false) {
73
65
  super(message);
74
66
  this.name = 'NotWrittenError';
75
- this.pipe = pipe;
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', () => this.onclose?.());
311
- line.on('unreaped', (failure) => this.onUnreaped(`its stdio pipe failed with ${line.pipeFailure?.message ?? 'an error'}`, failure));
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 first error on the child's stdin or stdout, once there is one: the
314
- * line is ending the child then, and writes nothing more to it. */
315
- get pipeFailure() {
316
- return this.line?.pipeFailure;
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
- // Once the child's stdin or stdout has failed, the line is ending it and
322
- // writes nothing more to it, so a message is refused here as not sent.
323
- const failed = this.pipeFailure;
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
- /** Child stderr from before anyone listens (the caller attaches only once
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.stderrBacklog.length === 0)
426
+ if (event !== 'stderr' || this.heldStderr.empty)
430
427
  return;
431
- const pending = this.stderrBacklog;
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.stderrBacklog.push(line);
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:`, masked.message);
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 the child's stdio
664
- // pipe failed, such as that subscribe's write meeting EPIPE: the SDK
665
- // reports the subscribe's failure only as an error, and resolves the
666
- // connect anyway (R1-2). Adopted, the session would read as connected
667
- // with nothing it can write to behind it, and from a child that outlived
668
- // SIGKILL, whose 'unreaped' came while there was no session to lose, no
669
- // later close would come to reconnect it. So the connect failed: its
670
- // close reaps the child, and a child it can't reap is held. A failed
671
- // pipe is named whether or not the child has exited by now.
672
- const pipe = session.stdio?.pipeFailure;
673
- if (session.lost || pipe) {
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(pipe
678
- ? `MCP server "${this.id}" stdio pipe failed with ${pipe.message} while connecting`
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
- * `unreaped`: the child's pipe failed and it outlived SIGKILL, so its
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
- this.emit('reconnect-failed', { error: `${error.message}; ${halted}`, attempt, permanent: true });
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
- this.emit('reconnect-failed', { error: error.message, attempt, permanent: true });
882
+ failed(error.message, true);
872
883
  return;
873
884
  }
874
- this.emit('reconnect-failed', { error: error.message, attempt });
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 pipe = error instanceof NotWrittenError && error.pipe;
1108
- return new McplRequestError(pipe
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":"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"}
@@ -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
  }