@mcpmesh/sdk 2.3.0 → 2.5.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 (166) hide show
  1. package/dist/__tests__/agent-single-instance.spec.d.ts +2 -0
  2. package/dist/__tests__/agent-single-instance.spec.d.ts.map +1 -0
  3. package/dist/__tests__/agent-single-instance.spec.js +80 -0
  4. package/dist/__tests__/agent-single-instance.spec.js.map +1 -0
  5. package/dist/__tests__/event-loop-resilience.spec.d.ts +2 -0
  6. package/dist/__tests__/event-loop-resilience.spec.d.ts.map +1 -0
  7. package/dist/__tests__/event-loop-resilience.spec.js +321 -0
  8. package/dist/__tests__/event-loop-resilience.spec.js.map +1 -0
  9. package/dist/__tests__/llm-agent-model-params.test.js +83 -0
  10. package/dist/__tests__/llm-agent-model-params.test.js.map +1 -1
  11. package/dist/__tests__/llm-max-iterations.test.d.ts +20 -0
  12. package/dist/__tests__/llm-max-iterations.test.d.ts.map +1 -0
  13. package/dist/__tests__/llm-max-iterations.test.js +252 -0
  14. package/dist/__tests__/llm-max-iterations.test.js.map +1 -0
  15. package/dist/__tests__/llm-mesh-error-mapping.test.d.ts +16 -0
  16. package/dist/__tests__/llm-mesh-error-mapping.test.d.ts.map +1 -0
  17. package/dist/__tests__/llm-mesh-error-mapping.test.js +135 -0
  18. package/dist/__tests__/llm-mesh-error-mapping.test.js.map +1 -0
  19. package/dist/__tests__/llm-provider-multistep.test.d.ts +20 -0
  20. package/dist/__tests__/llm-provider-multistep.test.d.ts.map +1 -0
  21. package/dist/__tests__/llm-provider-multistep.test.js +138 -0
  22. package/dist/__tests__/llm-provider-multistep.test.js.map +1 -0
  23. package/dist/__tests__/llm-provider-output-mode.test.d.ts +21 -0
  24. package/dist/__tests__/llm-provider-output-mode.test.d.ts.map +1 -0
  25. package/dist/__tests__/llm-provider-output-mode.test.js +116 -0
  26. package/dist/__tests__/llm-provider-output-mode.test.js.map +1 -0
  27. package/dist/__tests__/llm-provider-stopwhen.test.d.ts +22 -0
  28. package/dist/__tests__/llm-provider-stopwhen.test.d.ts.map +1 -0
  29. package/dist/__tests__/llm-provider-stopwhen.test.js +127 -0
  30. package/dist/__tests__/llm-provider-stopwhen.test.js.map +1 -0
  31. package/dist/__tests__/llm-provider-system-synthesis.test.d.ts +20 -0
  32. package/dist/__tests__/llm-provider-system-synthesis.test.d.ts.map +1 -0
  33. package/dist/__tests__/llm-provider-system-synthesis.test.js +168 -0
  34. package/dist/__tests__/llm-provider-system-synthesis.test.js.map +1 -0
  35. package/dist/__tests__/llm-provider-vertex-settings.test.d.ts +18 -0
  36. package/dist/__tests__/llm-provider-vertex-settings.test.d.ts.map +1 -0
  37. package/dist/__tests__/llm-provider-vertex-settings.test.js +128 -0
  38. package/dist/__tests__/llm-provider-vertex-settings.test.js.map +1 -0
  39. package/dist/__tests__/llm-response-model.test.d.ts +10 -0
  40. package/dist/__tests__/llm-response-model.test.d.ts.map +1 -0
  41. package/dist/__tests__/llm-response-model.test.js +92 -0
  42. package/dist/__tests__/llm-response-model.test.js.map +1 -0
  43. package/dist/__tests__/port-conflict-fallback.spec.d.ts +2 -0
  44. package/dist/__tests__/port-conflict-fallback.spec.d.ts.map +1 -0
  45. package/dist/__tests__/port-conflict-fallback.spec.js +123 -0
  46. package/dist/__tests__/port-conflict-fallback.spec.js.map +1 -0
  47. package/dist/__tests__/port-probe-errors.spec.d.ts +2 -0
  48. package/dist/__tests__/port-probe-errors.spec.d.ts.map +1 -0
  49. package/dist/__tests__/port-probe-errors.spec.js +100 -0
  50. package/dist/__tests__/port-probe-errors.spec.js.map +1 -0
  51. package/dist/__tests__/provider-handler-registry.test.d.ts +0 -1
  52. package/dist/__tests__/provider-handler-registry.test.d.ts.map +1 -1
  53. package/dist/__tests__/provider-handler-registry.test.js +23 -1
  54. package/dist/__tests__/provider-handler-registry.test.js.map +1 -1
  55. package/dist/__tests__/proxy-sse-no-data.test.d.ts +13 -0
  56. package/dist/__tests__/proxy-sse-no-data.test.d.ts.map +1 -0
  57. package/dist/__tests__/proxy-sse-no-data.test.js +147 -0
  58. package/dist/__tests__/proxy-sse-no-data.test.js.map +1 -0
  59. package/dist/__tests__/proxy-stream.test.js +26 -0
  60. package/dist/__tests__/proxy-stream.test.js.map +1 -1
  61. package/dist/__tests__/proxy-timeout-guard.test.d.ts +12 -0
  62. package/dist/__tests__/proxy-timeout-guard.test.d.ts.map +1 -0
  63. package/dist/__tests__/proxy-timeout-guard.test.js +85 -0
  64. package/dist/__tests__/proxy-timeout-guard.test.js.map +1 -0
  65. package/dist/__tests__/proxy-timer-leak.test.d.ts +16 -0
  66. package/dist/__tests__/proxy-timer-leak.test.d.ts.map +1 -0
  67. package/dist/__tests__/proxy-timer-leak.test.js +97 -0
  68. package/dist/__tests__/proxy-timer-leak.test.js.map +1 -0
  69. package/dist/__tests__/proxy-tool-error.test.d.ts +13 -0
  70. package/dist/__tests__/proxy-tool-error.test.d.ts.map +1 -0
  71. package/dist/__tests__/proxy-tool-error.test.js +313 -0
  72. package/dist/__tests__/proxy-tool-error.test.js.map +1 -0
  73. package/dist/__tests__/registry-disconnect-retains-deps.spec.d.ts +2 -0
  74. package/dist/__tests__/registry-disconnect-retains-deps.spec.d.ts.map +1 -0
  75. package/dist/__tests__/registry-disconnect-retains-deps.spec.js +101 -0
  76. package/dist/__tests__/registry-disconnect-retains-deps.spec.js.map +1 -0
  77. package/dist/__tests__/response-parser.test.js +29 -0
  78. package/dist/__tests__/response-parser.test.js.map +1 -1
  79. package/dist/__tests__/route.test.js +21 -1
  80. package/dist/__tests__/route.test.js.map +1 -1
  81. package/dist/__tests__/settle-window.spec.d.ts +2 -0
  82. package/dist/__tests__/settle-window.spec.d.ts.map +1 -0
  83. package/dist/__tests__/settle-window.spec.js +324 -0
  84. package/dist/__tests__/settle-window.spec.js.map +1 -0
  85. package/dist/__tests__/sse.test.js +12 -0
  86. package/dist/__tests__/sse.test.js.map +1 -1
  87. package/dist/__tests__/stop-dispatchers.spec.d.ts +2 -0
  88. package/dist/__tests__/stop-dispatchers.spec.d.ts.map +1 -0
  89. package/dist/__tests__/stop-dispatchers.spec.js +227 -0
  90. package/dist/__tests__/stop-dispatchers.spec.js.map +1 -0
  91. package/dist/agent.d.ts +65 -5
  92. package/dist/agent.d.ts.map +1 -1
  93. package/dist/agent.js +317 -78
  94. package/dist/agent.js.map +1 -1
  95. package/dist/api-runtime.d.ts +33 -3
  96. package/dist/api-runtime.d.ts.map +1 -1
  97. package/dist/api-runtime.js +133 -33
  98. package/dist/api-runtime.js.map +1 -1
  99. package/dist/claim-dispatcher.d.ts +25 -0
  100. package/dist/claim-dispatcher.d.ts.map +1 -1
  101. package/dist/claim-dispatcher.js +59 -1
  102. package/dist/claim-dispatcher.js.map +1 -1
  103. package/dist/config.d.ts +73 -1
  104. package/dist/config.d.ts.map +1 -1
  105. package/dist/config.js +108 -2
  106. package/dist/config.js.map +1 -1
  107. package/dist/debug.d.ts +1 -1
  108. package/dist/debug.d.ts.map +1 -1
  109. package/dist/express.d.ts +33 -0
  110. package/dist/express.d.ts.map +1 -1
  111. package/dist/express.js +157 -32
  112. package/dist/express.js.map +1 -1
  113. package/dist/index.d.ts +1 -1
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +1 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/llm-agent.d.ts +34 -0
  118. package/dist/llm-agent.d.ts.map +1 -1
  119. package/dist/llm-agent.js +239 -434
  120. package/dist/llm-agent.js.map +1 -1
  121. package/dist/llm-provider.d.ts +51 -4
  122. package/dist/llm-provider.d.ts.map +1 -1
  123. package/dist/llm-provider.js +175 -36
  124. package/dist/llm-provider.js.map +1 -1
  125. package/dist/llm.d.ts +1 -1
  126. package/dist/llm.d.ts.map +1 -1
  127. package/dist/llm.js +8 -5
  128. package/dist/llm.js.map +1 -1
  129. package/dist/provider-handlers/gemini-handler.d.ts.map +1 -1
  130. package/dist/provider-handlers/gemini-handler.js +8 -14
  131. package/dist/provider-handlers/gemini-handler.js.map +1 -1
  132. package/dist/provider-handlers/openai-handler.d.ts.map +1 -1
  133. package/dist/provider-handlers/openai-handler.js +2 -15
  134. package/dist/provider-handlers/openai-handler.js.map +1 -1
  135. package/dist/provider-handlers/provider-handler-registry.d.ts +10 -1
  136. package/dist/provider-handlers/provider-handler-registry.d.ts.map +1 -1
  137. package/dist/provider-handlers/provider-handler-registry.js +4 -1
  138. package/dist/provider-handlers/provider-handler-registry.js.map +1 -1
  139. package/dist/provider-handlers/provider-handler.d.ts +12 -0
  140. package/dist/provider-handlers/provider-handler.d.ts.map +1 -1
  141. package/dist/provider-handlers/provider-handler.js +24 -0
  142. package/dist/provider-handlers/provider-handler.js.map +1 -1
  143. package/dist/proxy.d.ts.map +1 -1
  144. package/dist/proxy.js +360 -287
  145. package/dist/proxy.js.map +1 -1
  146. package/dist/response-parser.d.ts +10 -0
  147. package/dist/response-parser.d.ts.map +1 -1
  148. package/dist/response-parser.js +55 -0
  149. package/dist/response-parser.js.map +1 -1
  150. package/dist/route.d.ts.map +1 -1
  151. package/dist/route.js +38 -0
  152. package/dist/route.js.map +1 -1
  153. package/dist/settle.d.ts +129 -0
  154. package/dist/settle.d.ts.map +1 -0
  155. package/dist/settle.js +284 -0
  156. package/dist/settle.js.map +1 -0
  157. package/dist/sse.d.ts.map +1 -1
  158. package/dist/sse.js +5 -2
  159. package/dist/sse.js.map +1 -1
  160. package/dist/tracing.d.ts +13 -0
  161. package/dist/tracing.d.ts.map +1 -1
  162. package/dist/tracing.js +40 -0
  163. package/dist/tracing.js.map +1 -1
  164. package/dist/types.d.ts +10 -2
  165. package/dist/types.d.ts.map +1 -1
  166. package/package.json +2 -2
@@ -39,6 +39,15 @@ const _POLL_BASE_MS = 500;
39
39
  const _POLL_MAX_MS = 5000;
40
40
  const _MAX_CONCURRENT_DISPATCHES = 4;
41
41
  const _CONSECUTIVE_FAILURES_ERROR_THRESHOLD = 5;
42
+ /** Default per-dispatcher in-flight-handler drain window (see stop()). */
43
+ const _STOP_DRAIN_TIMEOUT_MS = 30_000;
44
+ /**
45
+ * Headroom on top of the shared drain budget in `stopDispatchers` for
46
+ * per-dispatcher bookkeeping (poll-loop stop, keep-alive pool close)
47
+ * before the whole phase is abandoned. Mirrors Python's
48
+ * `_STOP_BUDGET_GRACE_SECS` in `_mcp_mesh/engine/claim_dispatcher.py`.
49
+ */
50
+ const _STOP_BUDGET_GRACE_MS = 10_000;
42
51
  /**
43
52
  * One dispatcher per (capability, handler) pair. Spawned on agent
44
53
  * startup for every tool registered with `task: true`.
@@ -128,7 +137,7 @@ export class ClaimDispatcher {
128
137
  * forever. Caller is free to override (e.g. tests pass `0` for an
129
138
  * immediate close).
130
139
  */
131
- async stop(timeoutMs = 30_000) {
140
+ async stop(timeoutMs = _STOP_DRAIN_TIMEOUT_MS) {
132
141
  this._stopped = true;
133
142
  // Wake any waiters so the loop can observe the stop signal.
134
143
  while (this._permitWaiters.length)
@@ -475,4 +484,53 @@ export class ClaimDispatcher {
475
484
  });
476
485
  }
477
486
  }
487
+ /**
488
+ * Stop multiple dispatchers concurrently under ONE shared drain budget
489
+ * (issue #1173 — mirrors Python's `stop_dispatchers` in
490
+ * `_mcp_mesh/engine/claim_dispatcher.py`).
491
+ *
492
+ * Every dispatcher drains against the SAME `drainTimeoutMs` window — the
493
+ * `stop()` calls run in parallel — so N dispatchers with in-flight jobs
494
+ * cost roughly one drain window of wall time, not N stacked windows.
495
+ * Sequential 30s drains would starve whatever the caller sequences after
496
+ * this (registry unregister via `handle.shutdown()`, pool teardown) past
497
+ * a typical SIGTERM grace period (K8s default 30s), getting the process
498
+ * SIGKILLed before unregister runs.
499
+ *
500
+ * The whole phase is additionally hard-capped at `drainTimeoutMs +
501
+ * graceMs`: past that, the remaining `stop()` calls are abandoned with a
502
+ * warning. Never rejects — a wedged dispatcher must not prevent the
503
+ * registry cleanup that callers run after this.
504
+ *
505
+ * @param dispatchers - Dispatchers to stop.
506
+ * @param drainTimeoutMs - Shared in-flight-handler drain window, passed
507
+ * to every `stop()` call. Defaults to 30s.
508
+ * @param graceMs - Headroom on top of `drainTimeoutMs` for per-dispatcher
509
+ * bookkeeping before the phase is abandoned wholesale. Defaults to 10s.
510
+ */
511
+ export async function stopDispatchers(dispatchers, drainTimeoutMs = _STOP_DRAIN_TIMEOUT_MS, graceMs = _STOP_BUDGET_GRACE_MS) {
512
+ if (dispatchers.length === 0)
513
+ return;
514
+ // ClaimDispatcher.stop() is documented never-throws, but guard anyway —
515
+ // one failing stop must not reject the gather and skip its peers.
516
+ const stops = dispatchers.map((d) => d.stop(drainTimeoutMs).catch((err) => {
517
+ console.warn(`[mesh-claim] error stopping dispatcher capability=${d.capability}:`, err);
518
+ }));
519
+ let budgetTimer = null;
520
+ const budget = new Promise((resolve) => {
521
+ budgetTimer = setTimeout(() => resolve("timeout"), drainTimeoutMs + graceMs);
522
+ });
523
+ try {
524
+ const outcome = await Promise.race([Promise.allSettled(stops), budget]);
525
+ if (outcome === "timeout") {
526
+ console.warn(`[mesh-claim] shutdown of ${dispatchers.length} dispatcher(s) exceeded ` +
527
+ `the shared budget (${drainTimeoutMs}ms drain + ${graceMs}ms grace); ` +
528
+ `abandoning remaining drains so shutdown can proceed to registry cleanup`);
529
+ }
530
+ }
531
+ finally {
532
+ if (budgetTimer)
533
+ clearTimeout(budgetTimer);
534
+ }
535
+ }
478
536
  //# sourceMappingURL=claim-dispatcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claim-dispatcher.js","sourceRoot":"","sources":["../src/claim-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claim-dispatcher.js","sourceRoot":"","sources":["../src/claim-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AAChD,0EAA0E;AAC1E,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAkBrC;;;GAGG;AACH,MAAM,OAAO,eAAe;IACjB,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,WAAW,CAAS;IACZ,OAAO,CAAe;IACvC;;;;;;;OAOG;IACc,OAAO,CAAoD;IAEpE,QAAQ,GAAG,KAAK,CAAC;IACjB,YAAY,GAAyB,IAAI,CAAC;IAC1C,oBAAoB,GAAG,CAAC,CAAC;IACjC;;;;;OAKG;IACK,QAAQ,GAAG,0BAA0B,CAAC;IAC9C,kDAAkD;IAC1C,cAAc,GAAsB,EAAE,CAAC;IAC/C,0EAA0E;IAClE,aAAa,GAAsB,EAAE,CAAC;IAC9C;;;;;;;OAOG;IACK,iBAAiB,GAAuB,IAAI,GAAG,EAAE,CAAC;IAC1D;;;;;;;;;OASG;IACc,UAAU,GAAU,IAAI,KAAK,CAAC;QAC7C,gBAAgB,EAAE,MAAM;QACxB,mBAAmB,EAAE,MAAM;QAC3B,WAAW,EAAE,0BAA0B;KACxC,CAAC,CAAC;IAEH,YACE,UAAkB,EAClB,UAAkB,EAClB,WAAmB,EACnB,OAAqB,EACrB,OAA0D;QAE1D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,0CAA0C;IAC1C,KAAK;QACH,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChD,OAAO,CAAC,KAAK,CACX,sCAAsC,IAAI,CAAC,UAAU,gBAAgB,EACrE,GAAG,CACJ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,IAAI,CAAC,YAAoB,sBAAsB;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,4DAA4D;QAC5D,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM;YAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAG,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM;YAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAG,EAAE,CAAC;QAChE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;QACH,CAAC;QACD,mEAAmE;QACnE,iEAAiE;QACjE,2DAA2D;QAC3D,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC9D,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,iEAAiE;YACnE,CAAC;iBAAM,CAAC;gBACN,IAAI,UAAU,GAAyC,IAAI,CAAC;gBAC5D,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACjD,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC3B,OAAO,CAAC,IAAI,CACV,2BAA2B,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,UAAU,IAAI;4BACxE,gCAAgC,SAAS,WAAW,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG;4BAClF,4DAA4D,CAC/D,CAAC;wBACF,OAAO,EAAE,CAAC;oBACZ,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC5C,CAAC;wBAAS,CAAC;oBACT,IAAI,UAAU;wBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QACD,+DAA+D;QAC/D,4DAA4D;QAC5D,0DAA0D;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,IAAI;YAAE,IAAI,EAAE,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,UAAU;QACtB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC;QAChE,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,UAAU;SAC7B,CAAC;QACF,IAAI,IAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBACtB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,qDAAqD;oBACrD,yDAAyD;oBACzD,uDAAuD;oBACvD,uCAAuC;oBACvC,8DAA8D;oBAC9D,UAAU,EAAE,IAAI,CAAC,UAAiB;iBACpB,CAAC,CAAC;YACpB,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CACnB,qBAAsB,GAAa,EAAE,IAAI,IAAI,OAAO,KACjD,GAAa,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CACvC,EAAE,CACH,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,IAAI,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,mBAAoB,GAAa,EAAE,OAAO,EAAE,CAAC,CAAC;YACpE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,OAAO,GAAI,MAAgC,EAAE,OAAO,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CACnB,iDAAiD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC3E,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAAsB,CAAC,EAAE,CAC9B,CAAC;IACtC,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,oBAAoB,CAChC,KAAa,EACb,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC;QAChE,MAAM,IAAI,GAAG;YACX,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,MAAM;iBACd;aACF;SACF,CAAC;QACF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAC5B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,8DAA8D;oBAC9D,UAAU,EAAE,IAAI,CAAC,UAAiB;iBACpB,CAAC,CAAC;gBAClB,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CACV,qCAAqC,IAAI,CAAC,MAAM,gBAAgB;wBAC9D,OAAO,KAAK,kDAAkD;wBAC9D,mBAAmB,CACtB,CAAC;gBACJ,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,8CAA8C,KAAK,UAAU,EAC7D,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,GAAG,GACP,2BAA2B,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,UAAU,IAAI;YAC1E,GAAG,MAAM,0BAA0B,IAAI,CAAC,oBAAoB,GAAG,CAAC;QAClE,IAAI,IAAI,CAAC,oBAAoB,IAAI,qCAAqC,EAAE,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,SAAS,CAAC,OAAgC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,OAAO,GACX,OAAO,CAAC,iBAAiB,IAAI,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ;YACxE,CAAC,CAAE,OAAO,CAAC,iBAA6C;YACxD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,OAAO,CAAC,YAAkC,CAAC;QAC1D,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3D,IAAI,UAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,0DAA0D,KAAK,GAAG,EAClE,GAAG,CACJ,CAAC;YACF,iEAAiE;YACjE,iEAAiE;YACjE,iEAAiE;YACjE,4DAA4D;YAC5D,6DAA6D;YAC7D,iEAAiE;YACjE,iCAAiC;YACjC,MAAM,IAAI,CAAC,oBAAoB,CAC7B,KAAK,EACL,mCACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;YACF,OAAO;QACT,CAAC;QAED,gEAAgE;QAChE,gEAAgE;QAChE,mCAAmC;QACnC,iDAAiD;QACjD,uEAAuE;QACvE,EAAE;QACF,kEAAkE;QAClE,yDAAyD;QACzD,mEAAmE;QACnE,mEAAmE;QACnE,uDAAuD;QACvD,MAAM,OAAO,GAA2B;YACtC,eAAe,EAAE,KAAK;SACvB,CAAC;QACF,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,CAC3C,iBAAiB,CACf,KAAK,EACL,YAAY,EACZ,UAAU,EACV,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EACvC,IAAI,CAAC,OAAO,CACb,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,uCAAuC,KAAK,eAAe,IAAI,CAAC,UAAU,GAAG,EAC7E,GAAG,CACJ,CAAC;YACF,oDAAoD;YACpD,iEAAiE;QACnE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ;QACpB,IAAI,SAAS,GAAG,aAAa,CAAC;QAC9B,OAAO,CAAC,GAAG,CACT,+CAA+C,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,UAAU,EAAE,CAC7F,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,4DAA4D;YAC5D,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM;YACR,CAAC;YACD,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,2DAA2D;oBAC3D,0DAA0D;oBAC1D,2DAA2D;oBAC3D,4DAA4D;oBAC5D,2DAA2D;oBAC3D,uDAAuD;oBACvD,8CAA8C;oBAC9C,2DAA2D;oBAC3D,yDAAyD;oBACzD,uDAAuD;oBACvD,OAAO,CAAC,IAAI,CACV,2BAA2B,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,UAAU,IAAI;wBACxE,wCAAwC,OAAO,CAAC,MAAM,WAAW;wBACjE,gEAAgE;wBAChE,cAAc,CACjB,CAAC;gBACJ,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,yDAAyD;oBACzD,2DAA2D;oBAC3D,IAAI,KAAK,GAAG,IAAI,CAAC;oBACjB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;wBAC1B,IAAI,KAAK,EAAE,CAAC;4BACV,KAAK,GAAG,KAAK,CAAC;4BACd,iBAAiB,GAAG,IAAI,CAAC;4BACzB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;wBAChC,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;wBAChC,CAAC;oBACH,CAAC;oBACD,SAAS,GAAG,aAAa,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBACD,gEAAgE;gBAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,iBAAiB,GAAG,IAAI,CAAC,CAAC,sCAAsC;gBAChE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CACT,+CAA+C,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,UAAU,EAAE,CAC7F,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,OAAgC;QAC1D,gEAAgE;QAChE,+DAA+D;QAC/D,iEAAiE;QACjE,8DAA8D;QAC9D,MAAM,CAAC,GAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YAC5D,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,EAAU;QACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,GAAG,IAAI,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAA8B,EAC9B,iBAAyB,sBAAsB,EAC/C,UAAkB,qBAAqB;IAEvC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAErC,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,OAAO,CAAC,IAAI,CACV,qDAAqD,CAAC,CAAC,UAAU,GAAG,EACpE,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,IAAI,WAAW,GAAyC,IAAI,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;QAChD,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CACV,4BAA4B,WAAW,CAAC,MAAM,0BAA0B;gBACtE,sBAAsB,cAAc,cAAc,OAAO,aAAa;gBACtE,yEAAyE,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,WAAW;YAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
package/dist/config.d.ts CHANGED
@@ -7,11 +7,83 @@
7
7
  * Defaults are also sourced from Rust core to ensure single source of truth.
8
8
  */
9
9
  import type { AgentConfig, ResolvedAgentConfig } from "./types.js";
10
+ /**
11
+ * Hard cap on the exponential backoff between `nextEvent()` retries in
12
+ * the mesh event loops (MeshAgent, ApiRuntime, MeshExpress).
13
+ */
14
+ export declare const NEXT_EVENT_BACKOFF_CAP_MS = 5000;
15
+ /**
16
+ * Consecutive `nextEvent()` failure ceiling for the mesh event loops.
17
+ *
18
+ * The backoff ramps 100ms → 3.2s over the first 6 failures (~6.3s of
19
+ * sleep), then sits at the 5s cap; terminating on failure #18 means
20
+ * 11 more sleeps at the cap (~55s), so the loop tolerates roughly
21
+ * 60 seconds of CONTINUOUS failure before giving up. A permanently
22
+ * broken handle must not retry forever — the ref'd backoff timers
23
+ * would keep an otherwise-finished process alive indefinitely.
24
+ */
25
+ export declare const MAX_CONSECUTIVE_NEXT_EVENT_FAILURES = 18;
10
26
  /**
11
27
  * Find an available port by binding to port 0 and getting the OS-assigned port.
12
28
  * This is used when port=0 is specified to auto-assign a port.
29
+ *
30
+ * `host` must be the host the caller will actually bind — a port that is
31
+ * free on loopback is not necessarily bindable on `0.0.0.0` (issue #1194).
32
+ */
33
+ export declare function findAvailablePort(host?: string): Promise<number>;
34
+ /**
35
+ * Check whether a TCP port can be bound on the given host.
36
+ *
37
+ * Issue #1194: used to surface bind conflicts BEFORE the HTTP server and
38
+ * the registry heartbeat start, so a configured-but-unbindable port never
39
+ * reaches registration (phantom endpoint).
40
+ *
41
+ * Resolves `false` ONLY for a genuine address-in-use conflict
42
+ * (`EADDRINUSE`) — the one condition the auto-assign fallback can adapt
43
+ * to. Any other bind failure (`EACCES` privileged port, `EADDRNOTAVAIL` /
44
+ * host misconfiguration, ...) REJECTS with the underlying error: falling
45
+ * back there would mask a real problem behind a misleading "port in use"
46
+ * warning, and the real server's own bind would hit the same error anyway.
47
+ */
48
+ export declare function isPortBindable(port: number, host: string): Promise<boolean>;
49
+ /**
50
+ * Resolve the port the HTTP server should bind (issue #1194: adapt, don't crash).
51
+ *
52
+ * - `configuredPort === 0`: auto-assign via the OS (existing port-0 path).
53
+ * - configured port bindable: use it as-is.
54
+ * - configured port in use (`EADDRINUSE`): fall back to an OS-assigned port
55
+ * and report `fellBack: true` so the caller can log a prominent warning.
56
+ * The caller MUST propagate the returned port into its config before
57
+ * starting the heartbeat — the registry must only ever see the
58
+ * actually-bound port.
59
+ * - any other bind failure (`EACCES`, host errors, ...): the probe's
60
+ * rejection propagates — adapt only to genuine conflicts, surface
61
+ * everything else loudly.
62
+ *
63
+ * Every probe — including the auto-assign and fallback paths — binds on
64
+ * `host`, the host the server will actually bind. Probing loopback for a
65
+ * server that binds `0.0.0.0` could hand back a port owned by another
66
+ * process on a non-loopback interface.
67
+ */
68
+ export declare function resolveBindPort(configuredPort: number, host: string): Promise<{
69
+ port: number;
70
+ fellBack: boolean;
71
+ }>;
72
+ /**
73
+ * Resolve the startup bind port and emit the canonical conflict warning.
74
+ *
75
+ * Shared by `MeshAgent._autoStart()` and `MeshExpress.start()` so the
76
+ * resolve-and-warn behavior (and the warning text) cannot drift between
77
+ * the two entry points. The caller MUST write the returned port back into
78
+ * the config its heartbeat reads BEFORE starting tracing/server/heartbeat
79
+ * — registration must always carry the ACTUAL bound port (issue #1194).
80
+ *
81
+ * The PORT CONFLICT warning is emitted only for a genuine `EADDRINUSE`
82
+ * fallback; non-conflict bind failures (`EACCES`, host errors, ...)
83
+ * propagate to the caller as rejections instead of being mislabeled as
84
+ * conflicts.
13
85
  */
14
- export declare function findAvailablePort(): Promise<number>;
86
+ export declare function resolveStartupBindPort(configuredPort: number, label: string): Promise<number>;
15
87
  /**
16
88
  * Generate a short UUID suffix (8 hex chars) for agent IDs.
17
89
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOnE;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAczD;AAQD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,CA4BtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;CACvB,CAQA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOnE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC,KAAK,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,MAAoB,GACzB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ9C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAejB;AAQD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,CA4BtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;CACvB,CAQA"}
package/dist/config.js CHANGED
@@ -9,14 +9,33 @@
9
9
  import { randomBytes } from "crypto";
10
10
  import { createServer } from "net";
11
11
  import { resolveConfig as rustResolveConfig, resolveConfigInt, getDefault, } from "@mcpmesh/core";
12
+ /**
13
+ * Hard cap on the exponential backoff between `nextEvent()` retries in
14
+ * the mesh event loops (MeshAgent, ApiRuntime, MeshExpress).
15
+ */
16
+ export const NEXT_EVENT_BACKOFF_CAP_MS = 5_000;
17
+ /**
18
+ * Consecutive `nextEvent()` failure ceiling for the mesh event loops.
19
+ *
20
+ * The backoff ramps 100ms → 3.2s over the first 6 failures (~6.3s of
21
+ * sleep), then sits at the 5s cap; terminating on failure #18 means
22
+ * 11 more sleeps at the cap (~55s), so the loop tolerates roughly
23
+ * 60 seconds of CONTINUOUS failure before giving up. A permanently
24
+ * broken handle must not retry forever — the ref'd backoff timers
25
+ * would keep an otherwise-finished process alive indefinitely.
26
+ */
27
+ export const MAX_CONSECUTIVE_NEXT_EVENT_FAILURES = 18;
12
28
  /**
13
29
  * Find an available port by binding to port 0 and getting the OS-assigned port.
14
30
  * This is used when port=0 is specified to auto-assign a port.
31
+ *
32
+ * `host` must be the host the caller will actually bind — a port that is
33
+ * free on loopback is not necessarily bindable on `0.0.0.0` (issue #1194).
15
34
  */
16
- export async function findAvailablePort() {
35
+ export async function findAvailablePort(host = "127.0.0.1") {
17
36
  return new Promise((resolve, reject) => {
18
37
  const server = createServer();
19
- server.listen(0, "127.0.0.1", () => {
38
+ server.listen(0, host, () => {
20
39
  const address = server.address();
21
40
  if (address && typeof address === "object") {
22
41
  const port = address.port;
@@ -29,6 +48,93 @@ export async function findAvailablePort() {
29
48
  server.on("error", reject);
30
49
  });
31
50
  }
51
+ /**
52
+ * Check whether a TCP port can be bound on the given host.
53
+ *
54
+ * Issue #1194: used to surface bind conflicts BEFORE the HTTP server and
55
+ * the registry heartbeat start, so a configured-but-unbindable port never
56
+ * reaches registration (phantom endpoint).
57
+ *
58
+ * Resolves `false` ONLY for a genuine address-in-use conflict
59
+ * (`EADDRINUSE`) — the one condition the auto-assign fallback can adapt
60
+ * to. Any other bind failure (`EACCES` privileged port, `EADDRNOTAVAIL` /
61
+ * host misconfiguration, ...) REJECTS with the underlying error: falling
62
+ * back there would mask a real problem behind a misleading "port in use"
63
+ * warning, and the real server's own bind would hit the same error anyway.
64
+ */
65
+ export async function isPortBindable(port, host) {
66
+ return new Promise((resolve, reject) => {
67
+ const server = createServer();
68
+ server.once("error", (err) => {
69
+ if (err.code === "EADDRINUSE") {
70
+ resolve(false);
71
+ }
72
+ else {
73
+ reject(err);
74
+ }
75
+ });
76
+ server.listen(port, host, () => {
77
+ server.close(() => resolve(true));
78
+ });
79
+ });
80
+ }
81
+ /**
82
+ * Resolve the port the HTTP server should bind (issue #1194: adapt, don't crash).
83
+ *
84
+ * - `configuredPort === 0`: auto-assign via the OS (existing port-0 path).
85
+ * - configured port bindable: use it as-is.
86
+ * - configured port in use (`EADDRINUSE`): fall back to an OS-assigned port
87
+ * and report `fellBack: true` so the caller can log a prominent warning.
88
+ * The caller MUST propagate the returned port into its config before
89
+ * starting the heartbeat — the registry must only ever see the
90
+ * actually-bound port.
91
+ * - any other bind failure (`EACCES`, host errors, ...): the probe's
92
+ * rejection propagates — adapt only to genuine conflicts, surface
93
+ * everything else loudly.
94
+ *
95
+ * Every probe — including the auto-assign and fallback paths — binds on
96
+ * `host`, the host the server will actually bind. Probing loopback for a
97
+ * server that binds `0.0.0.0` could hand back a port owned by another
98
+ * process on a non-loopback interface.
99
+ */
100
+ export async function resolveBindPort(configuredPort, host) {
101
+ if (configuredPort === 0) {
102
+ return { port: await findAvailablePort(host), fellBack: false };
103
+ }
104
+ if (await isPortBindable(configuredPort, host)) {
105
+ return { port: configuredPort, fellBack: false };
106
+ }
107
+ return { port: await findAvailablePort(host), fellBack: true };
108
+ }
109
+ /**
110
+ * Resolve the startup bind port and emit the canonical conflict warning.
111
+ *
112
+ * Shared by `MeshAgent._autoStart()` and `MeshExpress.start()` so the
113
+ * resolve-and-warn behavior (and the warning text) cannot drift between
114
+ * the two entry points. The caller MUST write the returned port back into
115
+ * the config its heartbeat reads BEFORE starting tracing/server/heartbeat
116
+ * — registration must always carry the ACTUAL bound port (issue #1194).
117
+ *
118
+ * The PORT CONFLICT warning is emitted only for a genuine `EADDRINUSE`
119
+ * fallback; non-conflict bind failures (`EACCES`, host errors, ...)
120
+ * propagate to the caller as rejections instead of being mislabeled as
121
+ * conflicts.
122
+ */
123
+ export async function resolveStartupBindPort(configuredPort, label) {
124
+ const bindHost = process.env.HOST ?? "0.0.0.0";
125
+ const resolved = await resolveBindPort(configuredPort, bindHost);
126
+ if (resolved.fellBack) {
127
+ console.warn(`PORT CONFLICT: configured HTTP port ${configuredPort} on ${bindHost} ` +
128
+ `is already in use. Falling back to auto-assigned port ${resolved.port} — ` +
129
+ `the registry will be given the ACTUAL bound port. Another process ` +
130
+ `likely owns port ${configuredPort}; fix the port assignment to ` +
131
+ `silence this warning.`);
132
+ }
133
+ else if (resolved.port !== configuredPort) {
134
+ console.log(`Auto-assigned port ${resolved.port} for ${label}`);
135
+ }
136
+ return resolved.port;
137
+ }
32
138
  // TypeScript-specific defaults (not in Rust core)
33
139
  const TS_DEFAULTS = {
34
140
  version: "1.0.0",
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/debug.d.ts CHANGED
@@ -14,7 +14,7 @@
14
14
  * MCP_MESH_DEBUG_MODE=true node my-agent.js
15
15
  * ```
16
16
  */
17
- type DebugCategory = "llm" | "llm-provider" | "sse" | "template" | "agent" | "registry" | "provider-handler-registry" | "provider-handler" | "claude-handler" | "openai-handler" | "gemini-handler" | "media-resolver";
17
+ type DebugCategory = "llm" | "llm-provider" | "sse" | "template" | "agent" | "registry" | "proxy" | "provider-handler-registry" | "provider-handler" | "claude-handler" | "openai-handler" | "gemini-handler" | "media-resolver";
18
18
  /**
19
19
  * Create a debug logger for a specific category.
20
20
  *
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,KAAK,aAAa,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,2BAA2B,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAyCvN;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAQjF;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;mBAb8C,OAAO,EAAE,KAAK,IAAI;mBAAlB,OAAO,EAAE,KAAK,IAAI;wBAAlB,OAAO,EAAE,KAAK,IAAI;qBAAlB,OAAO,EAAE,KAAK,IAAI;wBAAlB,OAAO,EAAE,KAAK,IAAI;CAmBjF,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,KAAK,aAAa,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,2BAA2B,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAyCjO;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAQjF;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;mBAb8C,OAAO,EAAE,KAAK,IAAI;mBAAlB,OAAO,EAAE,KAAK,IAAI;wBAAlB,OAAO,EAAE,KAAK,IAAI;qBAAlB,OAAO,EAAE,KAAK,IAAI;wBAAlB,OAAO,EAAE,KAAK,IAAI;CAmBjF,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
package/dist/express.d.ts CHANGED
@@ -72,6 +72,21 @@ export declare class MeshExpress {
72
72
  private server;
73
73
  private started;
74
74
  private shutdownRequested;
75
+ /**
76
+ * Memoized in-flight (or completed) teardown. `shutdown()` is
77
+ * idempotent: the first caller creates this promise and every later
78
+ * caller — user code, the signal handler, a second signal — awaits
79
+ * the SAME teardown instead of racing a concurrent napi
80
+ * `handle.shutdown()` / `server.close()`.
81
+ */
82
+ private shutdownPromise;
83
+ /**
84
+ * This instance's own SIGINT/SIGTERM handler references, kept so
85
+ * shutdown() can `process.off` them — otherwise sequential instances
86
+ * in one process accumulate stale handlers whose memoized (already
87
+ * resolved) shutdown() would `process.exit(0)` on the next signal.
88
+ */
89
+ private signalHandlers;
75
90
  constructor(app: Application, config: MeshExpressConfig);
76
91
  /**
77
92
  * Setup health check endpoints for the registry.
@@ -83,6 +98,11 @@ export declare class MeshExpress {
83
98
  start(): Promise<void>;
84
99
  /**
85
100
  * Start the Express HTTP server.
101
+ *
102
+ * Issue #1163 MED-3: uses `await import("node:https")` — `require()`
103
+ * is not defined in an ESM package ("type": "module"), so the TLS
104
+ * path previously threw a ReferenceError at startup. Mirrors the
105
+ * MCP-agent path in agent.ts.
86
106
  */
87
107
  private startServer;
88
108
  /**
@@ -91,6 +111,13 @@ export declare class MeshExpress {
91
111
  private startHeartbeat;
92
112
  /**
93
113
  * Run the event loop to handle mesh events.
114
+ *
115
+ * Resilience (issue #1163 MED-1): the loop must outlive individual
116
+ * failures. A throw from an event handler (e.g. a malformed event
117
+ * hitting a non-null assertion) is logged and the loop continues; a
118
+ * `nextEvent()` rejection (e.g. a transient napi failure) backs off
119
+ * exponentially (capped) and retries. Only the "shutdown" event — or
120
+ * the handle being torn down — exits the loop.
94
121
  */
95
122
  private runEventLoop;
96
123
  /**
@@ -131,6 +158,12 @@ export declare class MeshExpress {
131
158
  getHandle(): JsAgentHandle | null;
132
159
  /**
133
160
  * Shutdown the service gracefully.
161
+ *
162
+ * Idempotent and re-entrant: the first call runs the teardown; every
163
+ * later call (user code, the signal handler, a double signal) returns
164
+ * the SAME promise. The memo is never cleared: shutdown is terminal,
165
+ * and re-running a half-torn-down cleanup after a failure would be
166
+ * worse than surfacing the original rejection to every caller.
134
167
  */
135
168
  shutdown(): Promise<void>;
136
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA4DnE;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB;IAuBvD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAoCnB;;OAEG;YACW,cAAc;IAmD5B;;OAEG;YACW,YAAY;IA0E1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA+BnC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,SAAS,IAAI,mBAAmB;IAIhC;;OAEG;IACH,MAAM,IAAI,WAAW;IAIrB;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,SAAS,IAAI,aAAa,GAAG,IAAI;IAIjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAchC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,iBAAiB,GACxB,WAAW,CAEb"}
1
+ {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAkEnE;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAClC;;;;;;OAMG;IACH,OAAO,CAAC,eAAe,CAA8B;IACrD;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAGN;gBAEJ,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB;IAuBvD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD5B;;;;;;;OAOG;YACW,WAAW;IAqCzB;;OAEG;YACW,cAAc;IAmD5B;;;;;;;;;OASG;YACW,YAAY;IAmI1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA+BnC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAqD7B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,SAAS,IAAI,mBAAmB;IAIhC;;OAEG;IACH,MAAM,IAAI,WAAW;IAIrB;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,SAAS,IAAI,aAAa,GAAG,IAAI;IAIjC;;;;;;;;OAQG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B1B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,iBAAiB,GACxB,WAAW,CAEb"}