@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.
Files changed (236) hide show
  1. package/README.md +71 -8
  2. package/dist/src/admission/admit.d.ts +90 -0
  3. package/dist/src/admission/admit.d.ts.map +1 -0
  4. package/dist/src/admission/admit.js +43 -0
  5. package/dist/src/admission/admit.js.map +1 -0
  6. package/dist/src/agent.d.ts +50 -9
  7. package/dist/src/agent.d.ts.map +1 -1
  8. package/dist/src/agent.js +125 -23
  9. package/dist/src/agent.js.map +1 -1
  10. package/dist/src/api/mcp-server-core.d.ts.map +1 -1
  11. package/dist/src/api/mcp-server-core.js +10 -3
  12. package/dist/src/api/mcp-server-core.js.map +1 -1
  13. package/dist/src/author-presentation.d.ts +50 -0
  14. package/dist/src/author-presentation.d.ts.map +1 -0
  15. package/dist/src/author-presentation.js +58 -0
  16. package/dist/src/author-presentation.js.map +1 -0
  17. package/dist/src/code-execution/isolate/render.d.ts.map +1 -1
  18. package/dist/src/code-execution/isolate/render.js +7 -6
  19. package/dist/src/code-execution/isolate/render.js.map +1 -1
  20. package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
  21. package/dist/src/code-execution/isolate/scripts.js +5 -4
  22. package/dist/src/code-execution/isolate/scripts.js.map +1 -1
  23. package/dist/src/dendrite/index.d.ts +6 -0
  24. package/dist/src/dendrite/index.d.ts.map +1 -0
  25. package/dist/src/dendrite/index.js +3 -0
  26. package/dist/src/dendrite/index.js.map +1 -0
  27. package/dist/src/dendrite/presets.d.ts +60 -0
  28. package/dist/src/dendrite/presets.d.ts.map +1 -0
  29. package/dist/src/dendrite/presets.js +117 -0
  30. package/dist/src/dendrite/presets.js.map +1 -0
  31. package/dist/src/dendrite/registry.d.ts +260 -0
  32. package/dist/src/dendrite/registry.d.ts.map +1 -0
  33. package/dist/src/dendrite/registry.js +742 -0
  34. package/dist/src/dendrite/registry.js.map +1 -0
  35. package/dist/src/dendrite/types.d.ts +392 -0
  36. package/dist/src/dendrite/types.d.ts.map +1 -0
  37. package/dist/src/dendrite/types.js +24 -0
  38. package/dist/src/dendrite/types.js.map +1 -0
  39. package/dist/src/framework.d.ts +806 -118
  40. package/dist/src/framework.d.ts.map +1 -1
  41. package/dist/src/framework.js +4180 -1121
  42. package/dist/src/framework.js.map +1 -1
  43. package/dist/src/gate/event-gate.d.ts +36 -21
  44. package/dist/src/gate/event-gate.d.ts.map +1 -1
  45. package/dist/src/gate/event-gate.js +223 -149
  46. package/dist/src/gate/event-gate.js.map +1 -1
  47. package/dist/src/gate/recipe-reconcile.d.ts.map +1 -1
  48. package/dist/src/gate/recipe-reconcile.js +6 -5
  49. package/dist/src/gate/recipe-reconcile.js.map +1 -1
  50. package/dist/src/host-presentation.d.ts +4 -0
  51. package/dist/src/host-presentation.d.ts.map +1 -1
  52. package/dist/src/host-presentation.js +12 -10
  53. package/dist/src/host-presentation.js.map +1 -1
  54. package/dist/src/index.d.ts +6 -2
  55. package/dist/src/index.d.ts.map +1 -1
  56. package/dist/src/index.js +7 -1
  57. package/dist/src/index.js.map +1 -1
  58. package/dist/src/inference-bounds.d.ts +37 -0
  59. package/dist/src/inference-bounds.d.ts.map +1 -0
  60. package/dist/src/inference-bounds.js +84 -0
  61. package/dist/src/inference-bounds.js.map +1 -0
  62. package/dist/src/line-reader.d.ts +7 -1
  63. package/dist/src/line-reader.d.ts.map +1 -1
  64. package/dist/src/line-reader.js +17 -6
  65. package/dist/src/line-reader.js.map +1 -1
  66. package/dist/src/mcpl/channel-registry.d.ts +84 -9
  67. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  68. package/dist/src/mcpl/channel-registry.js +136 -58
  69. package/dist/src/mcpl/channel-registry.js.map +1 -1
  70. package/dist/src/mcpl/errors.d.ts +1 -0
  71. package/dist/src/mcpl/errors.d.ts.map +1 -1
  72. package/dist/src/mcpl/errors.js +3 -0
  73. package/dist/src/mcpl/errors.js.map +1 -1
  74. package/dist/src/mcpl/inbound-source.d.ts +2 -2
  75. package/dist/src/mcpl/inbound-source.js +2 -2
  76. package/dist/src/mcpl/inference-router.d.ts +11 -1
  77. package/dist/src/mcpl/inference-router.d.ts.map +1 -1
  78. package/dist/src/mcpl/inference-router.js +65 -9
  79. package/dist/src/mcpl/inference-router.js.map +1 -1
  80. package/dist/src/mcpl/modern-connection.d.ts +10 -7
  81. package/dist/src/mcpl/modern-connection.d.ts.map +1 -1
  82. package/dist/src/mcpl/modern-connection.js +85 -74
  83. package/dist/src/mcpl/modern-connection.js.map +1 -1
  84. package/dist/src/mcpl/protocol-family.d.ts +1 -1
  85. package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
  86. package/dist/src/mcpl/protocol-family.js +45 -3
  87. package/dist/src/mcpl/protocol-family.js.map +1 -1
  88. package/dist/src/mcpl/push-coalescer.d.ts +11 -7
  89. package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
  90. package/dist/src/mcpl/push-coalescer.js +21 -0
  91. package/dist/src/mcpl/push-coalescer.js.map +1 -1
  92. package/dist/src/mcpl/references.d.ts +1 -2
  93. package/dist/src/mcpl/references.d.ts.map +1 -1
  94. package/dist/src/mcpl/references.js +3 -3
  95. package/dist/src/mcpl/references.js.map +1 -1
  96. package/dist/src/mcpl/server-connection.d.ts +14 -0
  97. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  98. package/dist/src/mcpl/server-connection.js +26 -22
  99. package/dist/src/mcpl/server-connection.js.map +1 -1
  100. package/dist/src/mcpl/tool-signature.d.ts +1 -0
  101. package/dist/src/mcpl/tool-signature.d.ts.map +1 -1
  102. package/dist/src/mcpl/tool-signature.js +16 -11
  103. package/dist/src/mcpl/tool-signature.js.map +1 -1
  104. package/dist/src/mcpl/toolsets-module.d.ts.map +1 -1
  105. package/dist/src/mcpl/toolsets-module.js +7 -0
  106. package/dist/src/mcpl/toolsets-module.js.map +1 -1
  107. package/dist/src/mcpl/transport.d.ts +44 -21
  108. package/dist/src/mcpl/transport.d.ts.map +1 -1
  109. package/dist/src/mcpl/transport.js +283 -64
  110. package/dist/src/mcpl/transport.js.map +1 -1
  111. package/dist/src/mcpl/types.d.ts +17 -1
  112. package/dist/src/mcpl/types.d.ts.map +1 -1
  113. package/dist/src/mcpl/types.js.map +1 -1
  114. package/dist/src/module-registry.d.ts +32 -4
  115. package/dist/src/module-registry.d.ts.map +1 -1
  116. package/dist/src/module-registry.js +189 -25
  117. package/dist/src/module-registry.js.map +1 -1
  118. package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -1
  119. package/dist/src/modules/discord/discord-js-client.js +24 -16
  120. package/dist/src/modules/discord/discord-js-client.js.map +1 -1
  121. package/dist/src/modules/sender-name.d.ts +5 -4
  122. package/dist/src/modules/sender-name.d.ts.map +1 -1
  123. package/dist/src/modules/sender-name.js +7 -5
  124. package/dist/src/modules/sender-name.js.map +1 -1
  125. package/dist/src/modules/workspace/disk-agreement.d.ts +16 -8
  126. package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
  127. package/dist/src/modules/workspace/disk-agreement.js +33 -12
  128. package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
  129. package/dist/src/modules/workspace/index.d.ts +6 -3
  130. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  131. package/dist/src/modules/workspace/index.js +61 -15
  132. package/dist/src/modules/workspace/index.js.map +1 -1
  133. package/dist/src/modules/workspace/observe.d.ts +9 -1
  134. package/dist/src/modules/workspace/observe.d.ts.map +1 -1
  135. package/dist/src/modules/workspace/observe.js +50 -10
  136. package/dist/src/modules/workspace/observe.js.map +1 -1
  137. package/dist/src/modules/workspace/reconcile.d.ts +11 -1
  138. package/dist/src/modules/workspace/reconcile.d.ts.map +1 -1
  139. package/dist/src/modules/workspace/reconcile.js +19 -8
  140. package/dist/src/modules/workspace/reconcile.js.map +1 -1
  141. package/dist/src/modules/workspace/types.d.ts +8 -0
  142. package/dist/src/modules/workspace/types.d.ts.map +1 -1
  143. package/dist/src/modules/workspace/types.js.map +1 -1
  144. package/dist/src/modules/workspace/watcher.d.ts +7 -0
  145. package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
  146. package/dist/src/modules/workspace/watcher.js +7 -5
  147. package/dist/src/modules/workspace/watcher.js.map +1 -1
  148. package/dist/src/notice-tags.d.ts +2 -0
  149. package/dist/src/notice-tags.d.ts.map +1 -1
  150. package/dist/src/notice-tags.js +2 -0
  151. package/dist/src/notice-tags.js.map +1 -1
  152. package/dist/src/recovery/discord-awareness-outbox.d.ts.map +1 -1
  153. package/dist/src/recovery/discord-awareness-outbox.js +1 -9
  154. package/dist/src/recovery/discord-awareness-outbox.js.map +1 -1
  155. package/dist/src/silent-heartbeat.d.ts +4 -2
  156. package/dist/src/silent-heartbeat.d.ts.map +1 -1
  157. package/dist/src/silent-heartbeat.js +7 -4
  158. package/dist/src/silent-heartbeat.js.map +1 -1
  159. package/dist/src/stored-injections.d.ts +4 -0
  160. package/dist/src/stored-injections.d.ts.map +1 -1
  161. package/dist/src/stored-injections.js +6 -0
  162. package/dist/src/stored-injections.js.map +1 -1
  163. package/dist/src/supplied-text.d.ts +2 -0
  164. package/dist/src/supplied-text.d.ts.map +1 -1
  165. package/dist/src/supplied-text.js +16 -7
  166. package/dist/src/supplied-text.js.map +1 -1
  167. package/dist/src/tool-result-guard.js +1 -1
  168. package/dist/src/tool-result-guard.js.map +1 -1
  169. package/dist/src/tune-out/coordinator.d.ts +368 -16
  170. package/dist/src/tune-out/coordinator.d.ts.map +1 -1
  171. package/dist/src/tune-out/coordinator.js +1224 -136
  172. package/dist/src/tune-out/coordinator.js.map +1 -1
  173. package/dist/src/tune-out/tools.d.ts +115 -7
  174. package/dist/src/tune-out/tools.d.ts.map +1 -1
  175. package/dist/src/tune-out/tools.js +55 -18
  176. package/dist/src/tune-out/tools.js.map +1 -1
  177. package/dist/src/types/agent.d.ts +27 -1
  178. package/dist/src/types/agent.d.ts.map +1 -1
  179. package/dist/src/types/framework.d.ts +153 -15
  180. package/dist/src/types/framework.d.ts.map +1 -1
  181. package/dist/src/types/module.d.ts +42 -3
  182. package/dist/src/types/module.d.ts.map +1 -1
  183. package/dist/src/types/trace.d.ts +140 -3
  184. package/dist/src/types/trace.d.ts.map +1 -1
  185. package/package.json +4 -4
  186. package/src/admission/admit.ts +113 -0
  187. package/src/agent.ts +138 -31
  188. package/src/api/mcp-server-core.ts +10 -3
  189. package/src/author-presentation.ts +81 -0
  190. package/src/code-execution/isolate/render.ts +7 -6
  191. package/src/code-execution/isolate/scripts.ts +5 -4
  192. package/src/dendrite/index.ts +32 -0
  193. package/src/dendrite/presets.ts +149 -0
  194. package/src/dendrite/registry.ts +808 -0
  195. package/src/dendrite/types.ts +397 -0
  196. package/src/framework.ts +4344 -1052
  197. package/src/gate/event-gate.ts +251 -150
  198. package/src/gate/recipe-reconcile.ts +7 -5
  199. package/src/host-presentation.ts +14 -10
  200. package/src/index.ts +16 -2
  201. package/src/inference-bounds.ts +111 -0
  202. package/src/line-reader.ts +22 -5
  203. package/src/mcpl/channel-registry.ts +170 -60
  204. package/src/mcpl/errors.ts +4 -0
  205. package/src/mcpl/inbound-source.ts +2 -2
  206. package/src/mcpl/inference-router.ts +67 -10
  207. package/src/mcpl/modern-connection.ts +83 -68
  208. package/src/mcpl/protocol-family.ts +37 -4
  209. package/src/mcpl/push-coalescer.ts +21 -7
  210. package/src/mcpl/references.ts +3 -4
  211. package/src/mcpl/server-connection.ts +30 -21
  212. package/src/mcpl/tool-signature.ts +18 -11
  213. package/src/mcpl/toolsets-module.ts +7 -0
  214. package/src/mcpl/transport.ts +261 -60
  215. package/src/mcpl/types.ts +18 -1
  216. package/src/module-registry.ts +178 -25
  217. package/src/modules/discord/discord-js-client.ts +33 -29
  218. package/src/modules/sender-name.ts +8 -5
  219. package/src/modules/workspace/disk-agreement.ts +39 -15
  220. package/src/modules/workspace/index.ts +65 -14
  221. package/src/modules/workspace/observe.ts +51 -10
  222. package/src/modules/workspace/reconcile.ts +22 -8
  223. package/src/modules/workspace/types.ts +5 -0
  224. package/src/modules/workspace/watcher.ts +8 -6
  225. package/src/notice-tags.ts +2 -0
  226. package/src/recovery/discord-awareness-outbox.ts +1 -11
  227. package/src/silent-heartbeat.ts +7 -4
  228. package/src/stored-injections.ts +7 -0
  229. package/src/supplied-text.ts +17 -6
  230. package/src/tool-result-guard.ts +1 -1
  231. package/src/tune-out/coordinator.ts +1374 -141
  232. package/src/tune-out/tools.ts +166 -13
  233. package/src/types/agent.ts +30 -1
  234. package/src/types/framework.ts +157 -15
  235. package/src/types/module.ts +42 -3
  236. package/src/types/trace.ts +154 -3
@@ -20,9 +20,9 @@
20
20
  import { spawn } from 'node:child_process';
21
21
  import { EventEmitter } from 'node:events';
22
22
  import { StringDecoder } from 'node:string_decoder';
23
- import { escapeLineSeparators, readLines } from '../line-reader.js';
23
+ import { MAX_LINE_CHARS, escapeLineSeparators, readLines } from '../line-reader.js';
24
24
  import WebSocket from 'ws';
25
- import { WITHHELD_TEXT, describeCredentialError, headerCarries, maskedError, noteDialSent, redactServerText, redactUrl, resolveServerBinding, serverTextRedactor, tokenTransportProblem, urlAsDialed } from './protocol-family.js';
25
+ import { WITHHELD_TEXT, describeCredentialError, headerCarries, maskedError, noteDialSent, redactServerText, redactUrl, resolveServerBinding, serverConfigProblems, serverTextRedactor, tokenTransportProblem, urlAsDialed } from './protocol-family.js';
26
26
  import { assertBooleanSetting } from '../config-checks.js';
27
27
  import { logDetail } from './log-value.js';
28
28
  /**
@@ -33,19 +33,15 @@ import { logDetail } from './log-value.js';
33
33
  * - `'stderr'` `(line: string)` diagnostic line (stdio child stderr; never WS)
34
34
  * - `'error'` `(err: Error)` transport-level error
35
35
  * - `'close'` `(info: TransportCloseInfo)` transport closed (once)
36
- * - `'unreaped'` `(failure: Error)` a stdio child whose pipe failed
37
- * outlived SIGKILL too: the transport stays open, owning the child, and
38
- * close() retries the reap (never WS)
39
- *
40
- * Inbound `'line'`/`'stderr'` events are buffered until the first matching
41
- * listener attaches (and re-buffered whenever there are none), so no message is
42
- * lost across the handshake→routing handoff regardless of attach timing.
36
+ * - `'unreaped'` `(failure: Error)` a stdio child this transport was
37
+ * ending outlived SIGKILL too: the transport stays open, owning the
38
+ * child, and close() retries the reap (never WS)
43
39
  */
44
40
  export class McplTransport extends EventEmitter {
45
41
  serverId;
46
42
  _closed = false;
47
43
  lineBuffer = [];
48
- stderrBuffer = [];
44
+ heldStderr = new HeldStderr();
49
45
  /** The server's id from its config, so a line the transport logs names it.
50
46
  * The stdio and WebSocket transports always give it; a test's stand-in
51
47
  * transport may leave it out. */
@@ -60,9 +56,8 @@ export class McplTransport extends EventEmitter {
60
56
  queueMicrotask(() => { for (const l of pending)
61
57
  this.emit('line', l); });
62
58
  }
63
- else if (event === 'stderr' && this.stderrBuffer.length > 0) {
64
- const pending = this.stderrBuffer;
65
- this.stderrBuffer = [];
59
+ else if (event === 'stderr' && !this.heldStderr.empty) {
60
+ const pending = this.heldStderr.take();
66
61
  queueMicrotask(() => { for (const l of pending)
67
62
  this.emit('stderr', l); });
68
63
  }
@@ -94,14 +89,7 @@ export class McplTransport extends EventEmitter {
94
89
  stderrTailRedacted(_redact) {
95
90
  return '';
96
91
  }
97
- /**
98
- * The error a stdio child's stdin or stdout failed with, once one has. The
99
- * transport is ending the child then, and stays open until it exits, but
100
- * writes nothing more to it: writeLine drops each line, and both engines
101
- * refuse a request as not sent. Undefined while writes go out, and always
102
- * for a transport that has no pipes.
103
- */
104
- get pipeFailure() {
92
+ get stdioStopCause() {
105
93
  return undefined;
106
94
  }
107
95
  /**
@@ -124,7 +112,7 @@ export class McplTransport extends EventEmitter {
124
112
  if (this.listenerCount('stderr') > 0)
125
113
  this.emit('stderr', line);
126
114
  else
127
- this.stderrBuffer.push(line);
115
+ this.heldStderr.hold(line);
128
116
  }
129
117
  /**
130
118
  * Report a transport error: to the 'error' listeners if there are any, else
@@ -247,8 +235,8 @@ export const STDERR_END_WAIT_MS = 1_000;
247
235
  export class StdioTransport extends McplTransport {
248
236
  child;
249
237
  kind = 'stdio';
250
- /** The first error on the child's stdin or stdout, named in the close reason. */
251
- pipeError;
238
+ stopCause;
239
+ endedChild = false;
252
240
  /** The stream's last STDERR_WINDOW_CHARS, raw. */
253
241
  stderrWindow = '';
254
242
  /** True once the child's stderr has ended or closed. */
@@ -272,8 +260,8 @@ export class StdioTransport extends McplTransport {
272
260
  kept = kept.slice(1);
273
261
  return (cut ? '…' : '') + kept;
274
262
  }
275
- get pipeFailure() {
276
- return this.pipeError;
263
+ get stdioStopCause() {
264
+ return this.stopCause;
277
265
  }
278
266
  stderrEnded(ms) {
279
267
  const stderr = this.child.stderr;
@@ -301,20 +289,44 @@ export class StdioTransport extends McplTransport {
301
289
  serverId) {
302
290
  super(serverId);
303
291
  this.child = child;
304
- this.stopLines = readLines(stdout, (line) => this.pushLine(line));
305
- // Stitch stderr chunks into whole lines (a chunk can split a line, and a
306
- // character's bytes), and keep the stream's last characters for
307
- // stderrTail.
292
+ const lineBound = testLineBound ?? MAX_LINE_CHARS;
293
+ this.stopLines = readLines(stdout, {
294
+ line: (line) => this.pushLine(line),
295
+ tooLong: (maxChars) => this.stopStdio(new Error(`the server wrote a line on stdout longer than ${maxChars.toLocaleString('en-US')} UTF-16 code units`), false),
296
+ }, lineBound);
308
297
  let carry = '';
298
+ let dropping = false;
299
+ const dropped = `[a stderr line longer than ${lineBound.toLocaleString('en-US')} UTF-16 code units was dropped]`;
309
300
  const decoder = new StringDecoder('utf8');
310
301
  const received = (text) => {
311
302
  const window = this.stderrWindow + text;
312
303
  this.stderrWindow = window.slice(-STDERR_WINDOW_CHARS);
313
- const lines = (carry + text).split('\n');
314
- carry = lines.pop() ?? '';
315
- for (const l of lines)
316
- if (l.length > 0)
317
- this.pushStderr(l);
304
+ let rest = text;
305
+ if (dropping) {
306
+ const end = rest.indexOf('\n');
307
+ if (end === -1)
308
+ return;
309
+ dropping = false;
310
+ rest = rest.slice(end + 1);
311
+ }
312
+ if (rest.includes('\n')) {
313
+ const lines = (carry + rest).split('\n');
314
+ carry = lines.pop() ?? '';
315
+ for (const l of lines) {
316
+ if (l.length > lineBound)
317
+ this.pushStderr(dropped);
318
+ else if (l.length > 0)
319
+ this.pushStderr(l);
320
+ }
321
+ }
322
+ else {
323
+ carry += rest;
324
+ }
325
+ if (carry.length > lineBound) {
326
+ carry = '';
327
+ dropping = true;
328
+ this.pushStderr(dropped);
329
+ }
318
330
  };
319
331
  this.child.stderr?.on('data', (chunk) => received(decoder.write(chunk)));
320
332
  // A last line with no newline is complete once the stream ends.
@@ -322,6 +334,7 @@ export class StdioTransport extends McplTransport {
322
334
  received(decoder.end());
323
335
  if (carry.length > 0)
324
336
  this.pushStderr(carry);
337
+ carry = '';
325
338
  this.stderrDone = true;
326
339
  });
327
340
  // A stream destroyed by an error closes without ending: nothing more comes.
@@ -329,13 +342,17 @@ export class StdioTransport extends McplTransport {
329
342
  this.child.on('error', (err) => this.reportError(err));
330
343
  // The child's stdin and stdout carry the protocol, so after an error on
331
344
  // either, a write's EPIPE or a read error, this transport can't reach the
332
- // child even if it's still running. The handler ends the child as close()
333
- // does, SIGTERM and then SIGKILL, in the one attempt close() shares, and
334
- // the exit's close names the error, so the connection handles it as any
335
- // other exit. The close is the report: no 'error' is emitted, nothing is
336
- // thrown, and nothing more is written meanwhile (pipeFailure). The first
337
- // error starts that one attempt, and a later one, from either pipe, adds
338
- // nothing to it. A child that outlives SIGKILL too stays this
345
+ // child even if it's still running. Nothing more is written (stdioStopCause),
346
+ // and the handler first gives the child its exit grace to exit on its
347
+ // own: a child already dead when the write failed, as one a stop's signal
348
+ // reached first, exits within it, and its close carries its own code and
349
+ // signal. One still running then is ended as close() ends it, SIGTERM and
350
+ // then SIGKILL, in the one attempt close() shares, and only that close is
351
+ // pipeFailed, since its signal is this transport's. Either way the exit's
352
+ // close names the error, so the connection handles it as any other exit.
353
+ // The close is the report: no 'error' is emitted and nothing is thrown.
354
+ // The first error starts the wait, and a later one, from either pipe,
355
+ // adds nothing to it. A child that outlives SIGKILL too stays this
339
356
  // transport's: 'unreaped' says so, unless the host is closing it, whose
340
357
  // close() reports the failure itself. A child that stops reading without
341
358
  // closing its stdin raises no error: the writes are buffered, and only
@@ -343,17 +360,8 @@ export class StdioTransport extends McplTransport {
343
360
  // Bun a child that closes its stdin isn't reported either: Bun emits no
344
361
  // 'error' for the writes to it (checked on 1.3.10, 1.4.3 and 1.4.4's
345
362
  // canary), so request timeouts are its only bound too.
346
- const endOnPipeError = (err) => {
347
- if (this.pipeError)
348
- return;
349
- this.pipeError = err;
350
- void this.terminate().catch((failure) => {
351
- if (!this.closed)
352
- this.emit('unreaped', failure instanceof Error ? failure : new Error(String(failure)));
353
- });
354
- };
355
- this.child.stdin?.on('error', endOnPipeError);
356
- this.child.stdout?.on('error', endOnPipeError);
363
+ this.child.stdin?.on('error', (err) => this.stopStdio(err, true));
364
+ this.child.stdout?.on('error', (err) => this.stopStdio(err, true));
357
365
  // stderr carries diagnostics only: a read error on it is reported, to the
358
366
  // listeners or else in the log, and never thrown. It ends nothing once
359
367
  // the connection is wired; during a handshake the listener is the
@@ -362,9 +370,25 @@ export class StdioTransport extends McplTransport {
362
370
  this.child.on('exit', (code, signal) => this.markClosed({
363
371
  code,
364
372
  signal,
365
- reason: this.pipeError ? `child process exited, and its pipe failed with ${this.pipeError.message}` : 'child process exited',
373
+ reason: this.stopCause ? `child process exited, and this host had stopped using the server's stdio (${this.stopCause.message})` : 'child process exited',
374
+ ...(this.endedChild ? { pipeFailed: true } : {}),
366
375
  }));
367
376
  }
377
+ stopStdio(cause, exitGraceFirst) {
378
+ if (this.stopCause)
379
+ return;
380
+ this.stopCause = cause;
381
+ const exitedFirst = exitGraceFirst ? this.exitWithin(this.exitGrace()) : Promise.resolve(this.exited());
382
+ void exitedFirst.then((gone) => {
383
+ if (gone || this.terminating)
384
+ return;
385
+ this.endedChild = true;
386
+ return this.terminate();
387
+ }).catch((failure) => {
388
+ if (!this.closed)
389
+ this.emit('unreaped', failure instanceof Error ? failure : new Error(String(failure)));
390
+ });
391
+ }
368
392
  /**
369
393
  * Spawn `config.command` and resolve with a ready stdio transport once the
370
394
  * child has spawned. Rejects if the command is missing (a config bug) or the
@@ -419,9 +443,7 @@ export class StdioTransport extends McplTransport {
419
443
  return new StdioTransport(child, child.stdout, config.id);
420
444
  }
421
445
  writeLine(json) {
422
- // Nothing more goes to a child whose stdin or stdout has failed: this
423
- // transport is ending it.
424
- if (this.pipeError)
446
+ if (this.stopCause)
425
447
  return;
426
448
  // stdin may be gone if the child died between the closed-check and here.
427
449
  this.child.stdin?.write(escapeLineSeparators(json) + '\n');
@@ -455,6 +477,21 @@ export class StdioTransport extends McplTransport {
455
477
  this.stopLines();
456
478
  await this.terminate();
457
479
  }
480
+ /** How long the child gets to exit after a pipe error, after SIGTERM and
481
+ * after SIGKILL: {@link STDIO_EXIT_GRACE_MS}, or a test's grace for it. */
482
+ exitGrace() {
483
+ return testExitGraces.get(this.child) ?? STDIO_EXIT_GRACE_MS;
484
+ }
485
+ /** Whether the child exits within `ms`: true at once if it has. */
486
+ exitWithin(ms) {
487
+ if (this.exited())
488
+ return Promise.resolve(true);
489
+ return new Promise((resolve) => {
490
+ const onExit = () => { clearTimeout(timer); resolve(true); };
491
+ const timer = setTimeout(() => { this.child.off('exit', onExit); resolve(false); }, ms);
492
+ this.child.once('exit', onExit);
493
+ });
494
+ }
458
495
  /** Whether the child has exited, or never started (a spawn error). */
459
496
  exited() {
460
497
  return this.child.pid === undefined || this.child.exitCode !== null || this.child.signalCode !== null;
@@ -479,24 +516,71 @@ export class StdioTransport extends McplTransport {
479
516
  const child = this.child;
480
517
  if (this.exited())
481
518
  return;
519
+ const grace = this.exitGrace();
482
520
  const exited = new Promise((resolve) => child.once('exit', () => resolve()));
483
521
  const exitWithin = (ms) => new Promise((resolve) => {
484
522
  const timer = setTimeout(() => resolve(false), ms);
485
523
  void exited.then(() => { clearTimeout(timer); resolve(true); });
486
524
  });
487
525
  child.kill('SIGTERM');
488
- if (await exitWithin(STDIO_EXIT_GRACE_MS))
526
+ if (await exitWithin(grace))
489
527
  return;
490
528
  const named = `stdio child ${child.pid} of MCP server "${this.serverId}"`;
491
- console.error(`[mcpl] ${named} ignored SIGTERM for ${STDIO_EXIT_GRACE_MS}ms — sending SIGKILL`);
529
+ console.error(`[mcpl] ${named} ignored SIGTERM for ${grace}ms — sending SIGKILL`);
492
530
  child.kill('SIGKILL');
493
- if (await exitWithin(STDIO_EXIT_GRACE_MS))
531
+ if (await exitWithin(grace))
494
532
  return;
495
- throw new Error(`${named} did not exit within ${STDIO_EXIT_GRACE_MS}ms of SIGKILL; it could not be reaped`);
533
+ throw new Error(`${named} did not exit within ${grace}ms of SIGKILL; it could not be reaped`);
496
534
  }
497
535
  }
498
- /** How long a stdio child gets to exit after SIGTERM, and again after SIGKILL. */
536
+ /** How long a stdio child gets to exit on its own after a pipe error, after
537
+ * SIGTERM, and again after SIGKILL. */
499
538
  const STDIO_EXIT_GRACE_MS = 2_000;
539
+ const testExitGraces = new WeakMap();
540
+ /**
541
+ * For tests only: `child` gets `ms` in place of {@link STDIO_EXIT_GRACE_MS}.
542
+ * Set it only on a child that can exit by no means, such as one whose
543
+ * `kill()` is a no-op and that nothing else ends while it's closed: a short
544
+ * grace there races no exit, and only brings "could not be reaped" sooner.
545
+ */
546
+ export function setStdioExitGraceForTests(child, ms) {
547
+ testExitGraces.set(child, ms);
548
+ }
549
+ let testLineBound;
550
+ const MAX_HELD_STDERR_LINES = 200;
551
+ export class HeldStderr {
552
+ lines = [];
553
+ chars = 0;
554
+ dropped = 0;
555
+ get empty() {
556
+ return this.lines.length === 0 && this.dropped === 0;
557
+ }
558
+ hold(line) {
559
+ // V8 can make a line split from a longer string a slice that keeps the
560
+ // whole string alive, so a held line is copied to own only its characters.
561
+ this.lines.push(Buffer.from(line, 'utf16le').toString('utf16le'));
562
+ this.chars += line.length;
563
+ const ceiling = testLineBound ?? MAX_LINE_CHARS;
564
+ while (this.lines.length > MAX_HELD_STDERR_LINES || this.chars > ceiling) {
565
+ this.chars -= this.lines.shift().length;
566
+ this.dropped++;
567
+ }
568
+ }
569
+ take() {
570
+ const held = this.lines;
571
+ const taken = this.dropped > 0
572
+ ? [`[${this.dropped.toLocaleString('en-US')} earlier stderr line${this.dropped === 1 ? ' was' : 's were'} dropped: unread stderr is held to ${MAX_HELD_STDERR_LINES} lines and ${(testLineBound ?? MAX_LINE_CHARS).toLocaleString('en-US')} UTF-16 code units]`, ...held]
573
+ : held;
574
+ this.lines = [];
575
+ this.chars = 0;
576
+ this.dropped = 0;
577
+ return taken;
578
+ }
579
+ }
580
+ /** @internal */
581
+ export function setStdioLineBoundForTests(maxChars) {
582
+ testLineBound = maxChars;
583
+ }
500
584
  // ---------------------------------------------------------------------------
501
585
  // WebSocket
502
586
  // ---------------------------------------------------------------------------
@@ -550,6 +634,9 @@ export class WebSocketTransport extends McplTransport {
550
634
  * at the open timeout.
551
635
  */
552
636
  static async open(config, signal) {
637
+ const credentialRequired = checkedCredentialRequired(config);
638
+ if (credentialRequired === true)
639
+ return WebSocketTransport.openStrict(config, signal);
553
640
  // Resolve the per-dial credential first: the provider runs on every
554
641
  // connect AND reconnect, so rotation happens at the transport layer and
555
642
  // nothing above it ever holds a credential.
@@ -650,6 +737,127 @@ export class WebSocketTransport extends McplTransport {
650
737
  });
651
738
  });
652
739
  }
740
+ /** Separate opt-in path: the legacy dial above keeps its objects, reads,
741
+ * receivers and error behavior. Capture policy before calling host code;
742
+ * only noteDialSent uses the original config after awaiting (as a WeakMap
743
+ * key, without reading it). No provider result is stored on either config. */
744
+ static async openStrict(config, signal) {
745
+ const captured = {
746
+ id: config.id, url: config.url, tokenTransport: config.tokenTransport,
747
+ credentialRequired: true, token: config.token, accessProvider: config.accessProvider,
748
+ command: config.command, transport: config.transport, protocol: config.protocol,
749
+ };
750
+ const id = captured.id;
751
+ const fail = (reason) => new Error(`MCPL server "${id}": ${reason}`);
752
+ let problems;
753
+ try {
754
+ problems = serverConfigProblems(captured);
755
+ }
756
+ catch {
757
+ throw fail('connection-failed');
758
+ }
759
+ if (problems.length)
760
+ throw fail('connection-failed');
761
+ const provider = captured.accessProvider;
762
+ if (typeof provider !== 'function')
763
+ throw fail('provider-failed');
764
+ const followRedirects = false;
765
+ let url;
766
+ try {
767
+ url = buildWebSocketUrl(captured, null);
768
+ }
769
+ catch {
770
+ throw fail('connection-failed');
771
+ }
772
+ if (signal?.aborted)
773
+ throw fail('connection-failed');
774
+ let token;
775
+ try {
776
+ // Preserve the provider's receiver, without re-reading any config input.
777
+ const provided = Promise.resolve(provider.call(config));
778
+ provided.catch(() => { });
779
+ token = signal ? await raceAbort(provided, signal) : await provided;
780
+ }
781
+ catch {
782
+ if (signal?.aborted)
783
+ throw fail('connection-failed');
784
+ throw fail('provider-failed');
785
+ }
786
+ if (signal?.aborted)
787
+ throw fail('connection-failed');
788
+ if (typeof token !== 'string' || !headerCarries(token))
789
+ throw fail('provider-failed');
790
+ noteDialSent(config, { url, token });
791
+ let ws;
792
+ try {
793
+ ws = new WebSocket(url, { headers: { Authorization: `Bearer ${token}` }, followRedirects });
794
+ }
795
+ catch {
796
+ throw fail('connection-failed');
797
+ }
798
+ const swallowLateErrors = () => { };
799
+ return new Promise((resolve, reject) => {
800
+ let settled = false;
801
+ const abandon = (reason = 'connection-failed', request, response) => {
802
+ if (settled)
803
+ return;
804
+ settled = true;
805
+ clearTimeout(timer);
806
+ signal?.removeEventListener('abort', onAbort);
807
+ ws.removeAllListeners();
808
+ ws.on('error', swallowLateErrors);
809
+ // The status listener suppresses ws's default abort. Discard the body
810
+ // without inspecting it, and use the request API this engine offers.
811
+ try {
812
+ response?.destroy();
813
+ }
814
+ catch { /* already gone */ }
815
+ try {
816
+ if (typeof request?.destroy === 'function')
817
+ request.destroy();
818
+ else
819
+ request?.abort?.(); // Some clients expose abort(), not destroy().
820
+ }
821
+ catch { /* already gone */ }
822
+ try {
823
+ ws.terminate();
824
+ }
825
+ catch { /* already gone */ }
826
+ reject(fail(reason));
827
+ };
828
+ const timer = setTimeout(() => abandon(), WS_OPEN_TIMEOUT_MS);
829
+ const onAbort = () => abandon();
830
+ if (signal?.aborted) {
831
+ onAbort();
832
+ return;
833
+ }
834
+ else
835
+ signal?.addEventListener('abort', onAbort, { once: true });
836
+ // Installed only on this explicit strict path. No peer text is a status.
837
+ ws.once('unexpected-response', (request, response) => {
838
+ const status = response?.statusCode;
839
+ // A refused upgrade without structured status cannot classify auth.
840
+ // Generic socket errors still mean connection-failed, never parsed text.
841
+ abandon(typeof status !== 'number' || !Number.isFinite(status) ? 'engine-unsupported'
842
+ : status === 401 || status === 403 ? 'credential-rejected' : 'connection-failed', request, response);
843
+ });
844
+ ws.once('open', () => {
845
+ if (settled)
846
+ return;
847
+ settled = true;
848
+ clearTimeout(timer);
849
+ signal?.removeEventListener('abort', onAbort);
850
+ ws.removeAllListeners('unexpected-response');
851
+ const transport = new WebSocketTransport(ws, captured, url);
852
+ // Strict transport-created errors carry only id and a fixed code;
853
+ // don't project a native error or its cause into them.
854
+ ws.removeAllListeners('error');
855
+ ws.on('error', () => transport.reportError(fail('connection-failed')));
856
+ resolve(transport);
857
+ });
858
+ ws.once('error', () => abandon());
859
+ });
860
+ }
653
861
  writeLine(json) {
654
862
  if (this.ws.readyState === WebSocket.OPEN) {
655
863
  this.ws.send(escapeLineSeparators(json));
@@ -778,14 +986,23 @@ function dialsNetwork(config) {
778
986
  * boolean setting added to McplServerConfig doesn't compile until it has
779
987
  * an entry here, so the check below covers it too. */
780
988
  const SERVER_CONFIG_BOOLEANS = {
989
+ credentialRequired: 'true requires a provider credential on every WebSocket dial without fallback; false or leaving it out keeps legacy behavior',
781
990
  inheritEnv: 'true passes the server the host\'s whole environment, and false or leaving it out passes only the allowlisted and LC_* host variables',
782
991
  reconnect: 'true retries in the background when the server can\'t be reached or its connection drops, and false or leaving it out doesn\'t',
783
992
  allowHostCommands: 'true lets the server run the host\'s admin commands, such as undo, hide, unstick and quiesce, and false or leaving it out refuses them',
784
993
  toolHints: 'true advertises MCPL tool hints (RFC-014) to an MCPL server, so its dynamic tools are announced in the conversation and called through toolsets--act; leaving it out does the same wherever the name toolsets is free; false lists every tool as before and advertises none',
785
994
  };
995
+ /** Direct transport callers bypass config validation, but not this check. */
996
+ function checkedCredentialRequired(config) {
997
+ const value = config.credentialRequired;
998
+ if (value !== undefined && value !== null && typeof value !== 'boolean') {
999
+ assertBooleanSetting(`MCPL server "${config.id}" credentialRequired`, value, SERVER_CONFIG_BOOLEANS.credentialRequired);
1000
+ }
1001
+ return value;
1002
+ }
786
1003
  /**
787
- * Refuse a server config whose `inheritEnv`, `reconnect`, `allowHostCommands`
788
- * or `toolHints` holds anything but true or false. A config read from JSON can carry a quoted
1004
+ * Refuse a server config whose `inheritEnv`, `reconnect`, `allowHostCommands`,
1005
+ * `credentialRequired` or `toolHints` holds anything but true or false. A config read from JSON can carry a quoted
789
1006
  * "false" where the type says boolean, and every reader of these settings takes
790
1007
  * only `true` as on, so the quotes would hide what the value does. null counts
791
1008
  * as not set, so a generated config that writes an unset setting as null
@@ -817,6 +1034,8 @@ export function assertServerConfigBooleans(config) {
817
1034
  * performed the MCPL handshake.
818
1035
  */
819
1036
  export async function openTransport(config, signal) {
1037
+ if (checkedCredentialRequired(config) === true)
1038
+ return WebSocketTransport.open(config, signal);
820
1039
  const binding = resolveServerBinding(config);
821
1040
  if (binding.family !== 'legacy') {
822
1041
  throw new Error(`MCP server "${config.id}" is configured for modern MCP; the legacy transports can't open it`);
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/mcpl/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/mcpl/transport.ts"],"names":[],"mappings":"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"}