@namzu/sdk 40.0.0 → 42.0.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 (188) hide show
  1. package/CHANGELOG.md +236 -0
  2. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  3. package/dist/agents/ReactiveAgent.js +3 -0
  4. package/dist/agents/ReactiveAgent.js.map +1 -1
  5. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  6. package/dist/agents/SupervisorAgent.js +11 -0
  7. package/dist/agents/SupervisorAgent.js.map +1 -1
  8. package/dist/agents/runAgent.d.ts +14 -0
  9. package/dist/agents/runAgent.d.ts.map +1 -1
  10. package/dist/agents/runAgent.js +3 -0
  11. package/dist/agents/runAgent.js.map +1 -1
  12. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  13. package/dist/bridge/a2a/mapper.js +8 -0
  14. package/dist/bridge/a2a/mapper.js.map +1 -1
  15. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  16. package/dist/bridge/sse/mapper.js +11 -0
  17. package/dist/bridge/sse/mapper.js.map +1 -1
  18. package/dist/connector/index.d.ts +2 -2
  19. package/dist/connector/index.d.ts.map +1 -1
  20. package/dist/connector/index.js +1 -1
  21. package/dist/connector/index.js.map +1 -1
  22. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  23. package/dist/connector/mcp/adapter.js +92 -4
  24. package/dist/connector/mcp/adapter.js.map +1 -1
  25. package/dist/connector/mcp/audio-admission.d.ts +17 -0
  26. package/dist/connector/mcp/audio-admission.d.ts.map +1 -0
  27. package/dist/connector/mcp/audio-admission.js +171 -0
  28. package/dist/connector/mcp/audio-admission.js.map +1 -0
  29. package/dist/connector/mcp/client.d.ts +252 -1
  30. package/dist/connector/mcp/client.d.ts.map +1 -1
  31. package/dist/connector/mcp/client.js +611 -39
  32. package/dist/connector/mcp/client.js.map +1 -1
  33. package/dist/connector/mcp/envelope.d.ts +91 -0
  34. package/dist/connector/mcp/envelope.d.ts.map +1 -0
  35. package/dist/connector/mcp/envelope.js +173 -0
  36. package/dist/connector/mcp/envelope.js.map +1 -0
  37. package/dist/connector/mcp/era.d.ts +130 -0
  38. package/dist/connector/mcp/era.d.ts.map +1 -0
  39. package/dist/connector/mcp/era.js +304 -0
  40. package/dist/connector/mcp/era.js.map +1 -0
  41. package/dist/connector/mcp/errors.d.ts +106 -0
  42. package/dist/connector/mcp/errors.d.ts.map +1 -0
  43. package/dist/connector/mcp/errors.js +154 -0
  44. package/dist/connector/mcp/errors.js.map +1 -0
  45. package/dist/connector/mcp/http-sse.d.ts +11 -0
  46. package/dist/connector/mcp/http-sse.d.ts.map +1 -1
  47. package/dist/connector/mcp/http-sse.js +21 -6
  48. package/dist/connector/mcp/http-sse.js.map +1 -1
  49. package/dist/connector/mcp/index.d.ts +7 -0
  50. package/dist/connector/mcp/index.d.ts.map +1 -1
  51. package/dist/connector/mcp/index.js +10 -0
  52. package/dist/connector/mcp/index.js.map +1 -1
  53. package/dist/connector/mcp/streamable-http.d.ts +83 -0
  54. package/dist/connector/mcp/streamable-http.d.ts.map +1 -1
  55. package/dist/connector/mcp/streamable-http.js +177 -11
  56. package/dist/connector/mcp/streamable-http.js.map +1 -1
  57. package/dist/connector/mcp/x-mcp-header.d.ts +56 -0
  58. package/dist/connector/mcp/x-mcp-header.d.ts.map +1 -0
  59. package/dist/connector/mcp/x-mcp-header.js +254 -0
  60. package/dist/connector/mcp/x-mcp-header.js.map +1 -0
  61. package/dist/constants/mcp/index.d.ts +123 -15
  62. package/dist/constants/mcp/index.d.ts.map +1 -1
  63. package/dist/constants/mcp/index.js +135 -16
  64. package/dist/constants/mcp/index.js.map +1 -1
  65. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  66. package/dist/manager/agent/lifecycle.js +43 -0
  67. package/dist/manager/agent/lifecycle.js.map +1 -1
  68. package/dist/prompt/coding-agent-doctrine.d.ts +20 -0
  69. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  70. package/dist/prompt/coding-agent-doctrine.js +19 -3
  71. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  72. package/dist/prompt/index.d.ts +1 -1
  73. package/dist/prompt/index.d.ts.map +1 -1
  74. package/dist/prompt/index.js +1 -1
  75. package/dist/prompt/index.js.map +1 -1
  76. package/dist/public-runtime.d.ts +7 -4
  77. package/dist/public-runtime.d.ts.map +1 -1
  78. package/dist/public-runtime.js +16 -4
  79. package/dist/public-runtime.js.map +1 -1
  80. package/dist/public-tools.d.ts +1 -1
  81. package/dist/public-tools.d.ts.map +1 -1
  82. package/dist/public-tools.js +4 -2
  83. package/dist/public-tools.js.map +1 -1
  84. package/dist/registry/tool/execute.d.ts.map +1 -1
  85. package/dist/registry/tool/execute.js +10 -1
  86. package/dist/registry/tool/execute.js.map +1 -1
  87. package/dist/runtime/bidi/session.d.ts +11 -0
  88. package/dist/runtime/bidi/session.d.ts.map +1 -1
  89. package/dist/runtime/bidi/session.js +2 -0
  90. package/dist/runtime/bidi/session.js.map +1 -1
  91. package/dist/runtime/query/executor.d.ts +6 -0
  92. package/dist/runtime/query/executor.d.ts.map +1 -1
  93. package/dist/runtime/query/executor.js +6 -0
  94. package/dist/runtime/query/executor.js.map +1 -1
  95. package/dist/runtime/query/guardrail-presets.d.ts +187 -1
  96. package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
  97. package/dist/runtime/query/guardrail-presets.js +298 -0
  98. package/dist/runtime/query/guardrail-presets.js.map +1 -1
  99. package/dist/runtime/query/index.d.ts +14 -0
  100. package/dist/runtime/query/index.d.ts.map +1 -1
  101. package/dist/runtime/query/index.js +3 -0
  102. package/dist/runtime/query/index.js.map +1 -1
  103. package/dist/runtime/query/tooling.d.ts +2 -0
  104. package/dist/runtime/query/tooling.d.ts.map +1 -1
  105. package/dist/runtime/query/tooling.js +3 -0
  106. package/dist/runtime/query/tooling.js.map +1 -1
  107. package/dist/sandbox/provider/local.d.ts.map +1 -1
  108. package/dist/sandbox/provider/local.js +46 -3
  109. package/dist/sandbox/provider/local.js.map +1 -1
  110. package/dist/scheduler/local.d.ts.map +1 -1
  111. package/dist/scheduler/local.js +8 -0
  112. package/dist/scheduler/local.js.map +1 -1
  113. package/dist/store/run/disk.d.ts +35 -1
  114. package/dist/store/run/disk.d.ts.map +1 -1
  115. package/dist/store/run/disk.js +100 -0
  116. package/dist/store/run/disk.js.map +1 -1
  117. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  118. package/dist/tools/coordinator/agent.js +17 -2
  119. package/dist/tools/coordinator/agent.js.map +1 -1
  120. package/dist/tools/coordinator/index.d.ts.map +1 -1
  121. package/dist/tools/coordinator/index.js +17 -3
  122. package/dist/tools/coordinator/index.js.map +1 -1
  123. package/dist/tools/untrusted-envelope.d.ts +35 -0
  124. package/dist/tools/untrusted-envelope.d.ts.map +1 -1
  125. package/dist/tools/untrusted-envelope.js +91 -3
  126. package/dist/tools/untrusted-envelope.js.map +1 -1
  127. package/dist/types/agent/base.d.ts +23 -0
  128. package/dist/types/agent/base.d.ts.map +1 -1
  129. package/dist/types/agent/scheduler.d.ts +20 -0
  130. package/dist/types/agent/scheduler.d.ts.map +1 -1
  131. package/dist/types/agent/task.d.ts +39 -0
  132. package/dist/types/agent/task.d.ts.map +1 -1
  133. package/dist/types/connector/mcp.d.ts +205 -0
  134. package/dist/types/connector/mcp.d.ts.map +1 -1
  135. package/dist/types/run/events.d.ts +56 -0
  136. package/dist/types/run/events.d.ts.map +1 -1
  137. package/dist/types/run/events.js.map +1 -1
  138. package/dist/types/run/store.d.ts +41 -0
  139. package/dist/types/run/store.d.ts.map +1 -1
  140. package/dist/types/sandbox/index.d.ts +68 -1
  141. package/dist/types/sandbox/index.d.ts.map +1 -1
  142. package/dist/types/sandbox/index.js.map +1 -1
  143. package/dist/types/tool/index.d.ts +19 -0
  144. package/dist/types/tool/index.d.ts.map +1 -1
  145. package/dist/types/tool/index.js.map +1 -1
  146. package/package.json +1 -1
  147. package/src/agents/ReactiveAgent.ts +3 -0
  148. package/src/agents/SupervisorAgent.ts +11 -0
  149. package/src/agents/runAgent.ts +18 -0
  150. package/src/bridge/a2a/mapper.ts +8 -0
  151. package/src/bridge/sse/mapper.ts +11 -0
  152. package/src/connector/index.ts +27 -0
  153. package/src/connector/mcp/adapter.ts +103 -4
  154. package/src/connector/mcp/audio-admission.ts +173 -0
  155. package/src/connector/mcp/client.ts +694 -45
  156. package/src/connector/mcp/envelope.ts +235 -0
  157. package/src/connector/mcp/era.ts +400 -0
  158. package/src/connector/mcp/errors.ts +171 -0
  159. package/src/connector/mcp/http-sse.ts +23 -6
  160. package/src/connector/mcp/index.ts +37 -0
  161. package/src/connector/mcp/streamable-http.ts +199 -11
  162. package/src/connector/mcp/x-mcp-header.ts +322 -0
  163. package/src/constants/mcp/index.ts +145 -16
  164. package/src/manager/agent/lifecycle.ts +51 -0
  165. package/src/prompt/coding-agent-doctrine.ts +31 -4
  166. package/src/prompt/index.ts +1 -0
  167. package/src/public-runtime.ts +42 -0
  168. package/src/public-tools.ts +8 -2
  169. package/src/registry/tool/execute.ts +9 -1
  170. package/src/runtime/bidi/session.ts +13 -0
  171. package/src/runtime/query/executor.ts +13 -0
  172. package/src/runtime/query/guardrail-presets.ts +356 -0
  173. package/src/runtime/query/index.ts +17 -0
  174. package/src/runtime/query/tooling.ts +5 -0
  175. package/src/sandbox/provider/local.ts +45 -2
  176. package/src/scheduler/local.ts +8 -0
  177. package/src/store/run/disk.ts +108 -0
  178. package/src/tools/coordinator/agent.ts +17 -2
  179. package/src/tools/coordinator/index.ts +17 -3
  180. package/src/tools/untrusted-envelope.ts +94 -3
  181. package/src/types/agent/base.ts +24 -0
  182. package/src/types/agent/scheduler.ts +21 -0
  183. package/src/types/agent/task.ts +41 -0
  184. package/src/types/connector/mcp.ts +205 -1
  185. package/src/types/run/events.ts +56 -0
  186. package/src/types/run/store.ts +42 -0
  187. package/src/types/sandbox/index.ts +69 -1
  188. package/src/types/tool/index.ts +20 -0
@@ -30,12 +30,15 @@ export class HttpSseTransport {
30
30
  postUrl;
31
31
  log;
32
32
  timeoutMs;
33
+ /** Defaults to the ambient global `fetch`; never read again once captured. */
34
+ fetchImpl;
33
35
  constructor(config, log) {
34
36
  this.config = config;
35
37
  const base = stripTrailingSlashes(config.url);
36
38
  this.sseUrl = `${base}/sse`;
37
39
  this.postUrl = `${base}/message`;
38
40
  this.timeoutMs = validateConnectorTimeoutMs(config.timeoutMs ?? DEFAULT_TIMEOUT_MS, 'HttpSseTransport timeoutMs');
41
+ this.fetchImpl = config.fetch ?? fetch;
39
42
  this.log = resolveLogger(log).child({ [SCOPE_ATTRIBUTE]: 'connector/mcp/http-sse' });
40
43
  }
41
44
  async connect() {
@@ -82,12 +85,9 @@ export class HttpSseTransport {
82
85
  const owned = this.beginSend(options?.signal);
83
86
  const operation = new ConnectorHttpOperation(owned.controller.signal, this.timeoutMs, 'HTTP-SSE MCP send');
84
87
  try {
85
- const response = await operation.run(() => fetch(this.postUrl, {
88
+ const response = await operation.run(() => this.fetchImpl(this.postUrl, {
86
89
  method: 'POST',
87
- headers: {
88
- 'Content-Type': 'application/json',
89
- ...this.config.headers,
90
- },
90
+ headers: this.buildHeaders(options?.headers),
91
91
  body: JSON.stringify(message),
92
92
  redirect: 'manual',
93
93
  signal: operation.signal,
@@ -123,6 +123,21 @@ export class HttpSseTransport {
123
123
  isConnected() {
124
124
  return this.connected;
125
125
  }
126
+ /**
127
+ * `extra` comes from `MCPTransportSendOptions.headers` — the client's
128
+ * per-send authority — and is merged over this transport's own static
129
+ * config headers so a caller's value wins on a collision. See
130
+ * {@link StreamableHttpTransport}'s method of the same name, which this
131
+ * mirrors; the HTTP-SSE POST had no equivalent merge until now, so a
132
+ * per-request header or bearer token silently never reached the wire.
133
+ */
134
+ buildHeaders(extra) {
135
+ return {
136
+ 'Content-Type': 'application/json',
137
+ ...this.config.headers,
138
+ ...extra,
139
+ };
140
+ }
126
141
  beginSend(signal) {
127
142
  signal?.throwIfAborted();
128
143
  const controller = new AbortController();
@@ -163,7 +178,7 @@ export class HttpSseTransport {
163
178
  });
164
179
  }
165
180
  async listenSSE(generation, signal) {
166
- const response = await fetch(this.sseUrl, {
181
+ const response = await this.fetchImpl(this.sseUrl, {
167
182
  headers: {
168
183
  Accept: 'text/event-stream',
169
184
  ...this.config.headers,
@@ -1 +1 @@
1
- {"version":3,"file":"http-sse.js","sourceRoot":"","sources":["../../../src/connector/mcp/http-sse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-sse.js","sourceRoot":"","sources":["../../../src/connector/mcp/http-sse.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAe,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,KAAa;IAC1C,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAA;IACtB,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1C,GAAG,EAAE,CAAA;IACN,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,OAAO,gBAAgB;IAgBV;IAfV,eAAe,GAAgD,EAAE,CAAA;IACjE,aAAa,GAAsB,EAAE,CAAA;IACrC,aAAa,GAAkC,EAAE,CAAA;IACjD,SAAS,GAAG,KAAK,CAAA;IACjB,eAAe,GAA2B,IAAI,CAAA;IAC9C,UAAU,GAAG,CAAC,CAAA;IACd,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAA;IACxC,MAAM,CAAQ;IACd,OAAO,CAAQ;IACf,GAAG,CAAQ;IACF,SAAS,CAAQ;IAClC,8EAA8E;IAC7D,SAAS,CAAc;IAExC,YACkB,MAAiC,EAClD,GAAY;QADK,WAAM,GAAN,MAAM,CAA2B;QAGlD,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,UAAU,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,0BAA0B,CAC1C,MAAM,CAAC,SAAS,IAAI,kBAAkB,EACtC,4BAA4B,CAC5B,CAAA;QACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAA;QACtC,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAE1B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,MAAM,UAAU,GAAG,EAAE,IAAI,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QACnD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW;YAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACxB,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAA;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAA;QACnD,2CAA2C;QAC3C,IAAI,CAAC,aAAa,EAAE,CAAA;IACrB,CAAC;IAED;;;;;;;;OAQG;IACK,aAAa;QACpB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA0B,EAAE,OAAiC;QACvE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,IAAI,sBAAsB,CAC3C,KAAK,CAAC,UAAU,CAAC,MAAM,EACvB,IAAI,CAAC,SAAS,EACd,mBAAmB,CACnB,CAAA;QAED,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC5B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC5C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7B,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,SAAS,CAAC,MAAM;aACxB,CAAC,CACF,CAAA;YAED,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YACnE,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;YAC9D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAsB,CAAA;gBAC9E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;gBAC/C,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;oBAC/C,OAAO,CAAC,IAAI,CAAC,CAAA;gBACd,CAAC;YACF,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,SAAS,CAAC,KAAK,EAAE,CAAA;YACjB,KAAK,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;IACF,CAAC;IAED,SAAS,CAAC,OAA6C;QACtD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,CAAC,OAAmB;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,OAA+B;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACtB,CAAC;IAED;;;;;;;OAOG;IACK,YAAY,CAAC,KAAwC;QAC5D,OAAO;YACN,cAAc,EAAE,kBAAkB;YAClC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;YACtB,GAAG,KAAK;SACR,CAAA;IACF,CAAC;IAEO,SAAS,CAAC,MAA+B;QAKhD,MAAM,EAAE,cAAc,EAAE,CAAA;QACxB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5D,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO,EAAE,CAAA;QAC9B,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC7C,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;QACnC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAChC,OAAO;YACN,UAAU;YACV,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,GAAG,EAAE;gBACb,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAC7C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACpC,CAAC;SACD,CAAA;IACF,CAAC;IAEO,aAAa,CAAC,UAAkB,EAAE,SAAiC;QAC1E,SAAS,CAAC,cAAc,EAAE,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;QACnF,CAAC;IACF,CAAC;IAEO,SAAS,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,CAAA;IACxD,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,MAAmB;QAC7D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACxE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa;oBACvC,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC9D,CAAC;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,MAAmB;QAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE;YAClD,OAAO,EAAE;gBACR,MAAM,EAAE,mBAAmB;gBAC3B,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;aACtB;YACD,QAAQ,EAAE,QAAQ;YAClB,MAAM;SACN,CAAC,CAAA;QAEF,qBAAqB,CAAC,QAAQ,CAAC,CAAA;QAC/B,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,IAAI,MAAM,GAAG,EAAE,CAAA;QAEf,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI;gBAAE,MAAK;YACf,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;gBAAE,MAAK;YAEtC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACnC,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;YAE3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;oBAAE,OAAM;gBACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAC5E,IAAI,CAAC,QAAQ;oBAAE,SAAQ;gBACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC9B,IAAI,CAAC;oBACJ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAA;oBACrD,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;wBACjD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;4BAAE,OAAM;wBACvC,OAAO,CAAC,OAAO,CAAC,CAAA;oBACjB,CAAC;gBACF,CAAC;gBAAC,MAAM,CAAC;oBACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE;wBACnD,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;qBACzC,CAAC,CAAA;gBACH,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
@@ -2,6 +2,13 @@ export { StdioTransport } from './stdio.js';
2
2
  export { HttpSseTransport } from './http-sse.js';
3
3
  export { StreamableHttpTransport } from './streamable-http.js';
4
4
  export { MCPClient } from './client.js';
5
+ export { isHeaderMismatchError, isMissingRequiredClientCapabilityError, isResourceNotFoundError, isUnsupportedProtocolVersionError, MCPHttpStatusError, MCPInputRequiredError, MCPInvalidResultTypeError, MCPProtocolError, } from './errors.js';
6
+ export { classifyModernHttpFailure, createMcpEraCache, defaultMcpEraCache, isRecognizedModernError, mcpEraCacheKey, resolveMcpEra, } from './era.js';
7
+ export type { McpEraProbe, McpEraProbeAnswer, McpEraResolution, McpEraResolutionInput, } from './era.js';
8
+ export { buildEnvelope, decodeResult, encodeMcpHeaderValue } from './envelope.js';
9
+ export type { McpEnvelope, McpEnvelopeInput, MCPDecodedResult } from './envelope.js';
10
+ export { validateMcpHeaderAnnotations } from './x-mcp-header.js';
11
+ export type { McpHeaderAnnotationVerdict, McpParamHeaderBinding } from './x-mcp-header.js';
5
12
  export { mcpToolToToolDefinition, toolDefinitionToMCPTool, mcpJsonSchemaToZod, zodToMCPJsonSchema, mcpToolResultToToolResult, toolResultToMCPToolResult, } from './adapter.js';
6
13
  export { MCPToolDiscovery } from './discovery.js';
7
14
  export { mcpPromptToToolDefinition, renderPromptMessages } from './prompt-adapter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAM1E,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACtF,YAAY,EACX,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,GACrB,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC9F,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACN,qBAAqB,EACrB,sCAAsC,EACtC,uBAAuB,EACvB,iCAAiC,EACjC,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,GAChB,MAAM,aAAa,CAAA;AAKpB,OAAO,EACN,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,aAAa,GACb,MAAM,UAAU,CAAA;AACjB,YAAY,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACrB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACjF,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAKpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAChE,YAAY,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE1F,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAM1E,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACtF,YAAY,EACX,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,GACrB,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC9F,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA"}
@@ -2,6 +2,16 @@ export { StdioTransport } from './stdio.js';
2
2
  export { HttpSseTransport } from './http-sse.js';
3
3
  export { StreamableHttpTransport } from './streamable-http.js';
4
4
  export { MCPClient } from './client.js';
5
+ export { isHeaderMismatchError, isMissingRequiredClientCapabilityError, isResourceNotFoundError, isUnsupportedProtocolVersionError, MCPHttpStatusError, MCPInputRequiredError, MCPInvalidResultTypeError, MCPProtocolError, } from './errors.js';
6
+ // Era resolution lives beside the client, never inside a transport: stdio
7
+ // and HTTP share the whole state machine and differ only in the probe, so
8
+ // a transport that owned a copy would strand the other one.
9
+ export { classifyModernHttpFailure, createMcpEraCache, defaultMcpEraCache, isRecognizedModernError, mcpEraCacheKey, resolveMcpEra, } from './era.js';
10
+ export { buildEnvelope, decodeResult, encodeMcpHeaderValue } from './envelope.js';
11
+ // The repo's first refusal path: a tool definition namzu declines to expose.
12
+ // Exported so a host can ask the same question of a schema it holds — and
13
+ // because `McpEnvelopeInput.paramHeaders` names the binding type.
14
+ export { validateMcpHeaderAnnotations } from './x-mcp-header.js';
5
15
  export { mcpToolToToolDefinition, toolDefinitionToMCPTool, mcpJsonSchemaToZod, zodToMCPJsonSchema, mcpToolResultToToolResult, toolResultToMCPToolResult, } from './adapter.js';
6
16
  export { MCPToolDiscovery } from './discovery.js';
7
17
  export { mcpPromptToToolDefinition, renderPromptMessages } from './prompt-adapter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connector/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,yEAAyE;AACzE,yEAAyE;AACzE,sEAAsE;AACtE,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAQtF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connector/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACN,qBAAqB,EACrB,sCAAsC,EACtC,uBAAuB,EACvB,iCAAiC,EACjC,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,GAChB,MAAM,aAAa,CAAA;AAEpB,0EAA0E;AAC1E,0EAA0E;AAC1E,4DAA4D;AAC5D,OAAO,EACN,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,aAAa,GACb,MAAM,UAAU,CAAA;AAOjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAGjF,6EAA6E;AAC7E,0EAA0E;AAC1E,kEAAkE;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAGhE,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,yEAAyE;AACzE,yEAAyE;AACzE,sEAAsE;AACtE,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAQtF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
@@ -7,13 +7,53 @@ export declare class StreamableHttpTransport implements MCPTransport {
7
7
  private errorHandlers;
8
8
  private connected;
9
9
  private sessionId;
10
+ /**
11
+ * The most recent SSE event `id` this transport has seen, if any.
12
+ *
13
+ * Legacy-only in effect, never in name: this transport only ever holds a
14
+ * `sessionId` on a legacy connection (a modern connection has no
15
+ * `initialize` reply to capture one from — `MCPClient` probes with
16
+ * `server/discover` instead), and {@link buildHeaders} sends
17
+ * `Last-Event-ID` only alongside a session id. Deliberately NOT cleared
18
+ * by `close()`: the whole point is arming the header for the request
19
+ * that follows a reconnect, once a fresh session exists to carry it.
20
+ */
21
+ private lastEventId;
10
22
  private generation;
11
23
  private activeSends;
12
24
  private log;
13
25
  private readonly timeoutMs;
26
+ /** Defaults to the ambient global `fetch`; never read again once captured. */
27
+ private readonly fetchImpl;
14
28
  constructor(config: MCPStreamableHttpTransportConfig, log?: Logger);
15
29
  connect(): Promise<void>;
16
30
  close(): Promise<void>;
31
+ /**
32
+ * Forget the session this transport has been attaching to requests,
33
+ * without otherwise disturbing the connection.
34
+ *
35
+ * Used by `MCPClient`'s legacy session-recovery path: a `404` on a
36
+ * request means the server has forgotten this session, and the spec's
37
+ * remedy is a fresh `initialize` sent with no session id attached — which
38
+ * only happens if this transport stops sending the stale one first.
39
+ */
40
+ resetSession(): void;
41
+ /** Whether this transport is currently attaching a session id to its requests. */
42
+ hasSession(): boolean;
43
+ /**
44
+ * Tell the peer this session is done, without making `close()` wait on
45
+ * the answer.
46
+ *
47
+ * A SHOULD, not a MUST: it lets a cooperative server free resources
48
+ * promptly instead of waiting out its own idle timeout, but a server that
49
+ * never hears it is no worse off than before this existed. Fire-and-forget
50
+ * on purpose — `close()`'s existing bounded-teardown guarantee must not
51
+ * grow a dependency on a round trip to a peer that may already be gone —
52
+ * and bounded by its own short timeout so a peer that never answers does
53
+ * not leave a request open indefinitely. A modern origin never reaches
54
+ * this: it never had a session id to send in the first place.
55
+ */
56
+ private sendSessionDelete;
17
57
  /** See {@link StdioTransport} — the same append-only handler leak. */
18
58
  private clearHandlers;
19
59
  send(message: MCPJsonRpcMessage, options?: MCPTransportSendOptions): Promise<void>;
@@ -21,10 +61,53 @@ export declare class StreamableHttpTransport implements MCPTransport {
21
61
  onClose(handler: () => void): void;
22
62
  onError(handler: (error: Error) => void): void;
23
63
  isConnected(): boolean;
64
+ /**
65
+ * `extra` comes from `MCPTransportSendOptions.headers` — the client's
66
+ * per-send authority, `MCP-Protocol-Version` today — and is merged over
67
+ * this transport's own static config headers so a caller's value wins
68
+ * on a collision. `Mcp-Session-Id` is applied after both: it is
69
+ * transport-managed state a caller cannot see to conflict with.
70
+ */
24
71
  private buildHeaders;
25
72
  private captureSessionId;
26
73
  private beginSend;
27
74
  private assertCurrent;
28
75
  private dispatchResponseMessages;
76
+ /**
77
+ * Parse an SSE body and remember the newest event `id` it carried, if
78
+ * any.
79
+ *
80
+ * The id survives past this one call — see the `lastEventId` field's own
81
+ * doc comment — so it is available to arm `Last-Event-ID` on whatever
82
+ * request follows a later reconnect.
83
+ */
84
+ private parseSseAndCaptureEventId;
29
85
  }
86
+ /** What one SSE-formatted Streamable HTTP response body parsed into. */
87
+ export interface MCPSseParseResult {
88
+ readonly messages: MCPJsonRpcMessage[];
89
+ /**
90
+ * The value of the last `id:` field seen across every event in the body
91
+ * — including one whose `data:` was empty, SSE's own priming event.
92
+ * `undefined` when no event in the body carried an id at all.
93
+ */
94
+ readonly lastEventId?: string;
95
+ }
96
+ /**
97
+ * Parse a response body served as `text/event-stream`.
98
+ *
99
+ * Exported and pure so it is a direct unit-test target, with no transport,
100
+ * socket or server needed to see what it decides.
101
+ *
102
+ * Already correct on three counts before this: `data:` with or without a
103
+ * leading space, multi-line data joined with `\n`, and the empty-data
104
+ * priming event skipped as a message. This adds the two genuinely new
105
+ * pieces — capturing `id:` (armed by the caller for a legacy
106
+ * `Last-Event-ID` reconnect) and treating a `:`-prefixed comment or another
107
+ * unrecognized line as exactly what the spec says it is: not a field, never
108
+ * malformed input. Neither needed a special case: both filters below already
109
+ * select a line by its OWN prefix and so already ignore anything else — a
110
+ * comment, an `event:` line, a `retry:` line — without one.
111
+ */
112
+ export declare function parseSseMessages(raw: string): MCPSseParseResult;
30
113
  //# sourceMappingURL=streamable-http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/streamable-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,gCAAgC,EAChC,YAAY,EACZ,uBAAuB,EACvB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,uBAAuB,CAAA;AAMlE,qBAAa,uBAAwB,YAAW,YAAY;IAY1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXxB,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAGhB,MAAM,EAAE,gCAAgC,EACzD,GAAG,CAAC,EAAE,MAAM;IASP,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B,sEAAsE;IACtE,OAAO,CAAC,aAAa;IAMf,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CxF,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAI9D,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI9C,WAAW,IAAI,OAAO;IAItB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,aAAa;YAOP,wBAAwB;CAsBtC"}
1
+ {"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../../../src/connector/mcp/streamable-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,iBAAiB,EACjB,gCAAgC,EAChC,YAAY,EACZ,uBAAuB,EACvB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,uBAAuB,CAAA;AAgBlE,qBAAa,uBAAwB,YAAW,YAAY;IA0B1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAzBxB,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,SAAS,CAAsB;IACvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;gBAGtB,MAAM,EAAE,gCAAgC,EACzD,GAAG,CAAC,EAAE,MAAM;IAUP,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB5B;;;;;;;;OAQG;IACH,YAAY,IAAI,IAAI;IAIpB,kFAAkF;IAClF,UAAU,IAAI,OAAO;IAIrB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;IAoCzB,sEAAsE;IACtE,OAAO,CAAC,aAAa;IAMf,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDxF,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAI9D,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI9C,WAAW,IAAI,OAAO;IAItB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,aAAa;YAOP,wBAAwB;IAuBtC;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;CAKjC;AA4BD,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IACtC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAmC/D"}
@@ -1,8 +1,17 @@
1
1
  import { SCOPE_ATTRIBUTE } from '../../utils/log/types.js';
2
2
  import { resolveLogger } from '../../utils/logger.js';
3
3
  import { ConnectorHttpOperation, validateConnectorTimeoutMs } from '../http-operation.js';
4
+ import { MCPHttpStatusError } from './errors.js';
4
5
  import { refuseMcpHttpRedirect } from './http-redirect.js';
5
6
  const DEFAULT_TIMEOUT_MS = 30_000;
7
+ /**
8
+ * How long a best-effort session teardown DELETE is given before this
9
+ * transport stops tracking it.
10
+ *
11
+ * `close()` never awaits this at all — the bound exists only so a DELETE to
12
+ * an unresponsive peer does not accumulate as a dangling request forever.
13
+ */
14
+ const SESSION_DELETE_TIMEOUT_MS = 5_000;
6
15
  export class StreamableHttpTransport {
7
16
  config;
8
17
  messageHandlers = [];
@@ -10,13 +19,28 @@ export class StreamableHttpTransport {
10
19
  errorHandlers = [];
11
20
  connected = false;
12
21
  sessionId = null;
22
+ /**
23
+ * The most recent SSE event `id` this transport has seen, if any.
24
+ *
25
+ * Legacy-only in effect, never in name: this transport only ever holds a
26
+ * `sessionId` on a legacy connection (a modern connection has no
27
+ * `initialize` reply to capture one from — `MCPClient` probes with
28
+ * `server/discover` instead), and {@link buildHeaders} sends
29
+ * `Last-Event-ID` only alongside a session id. Deliberately NOT cleared
30
+ * by `close()`: the whole point is arming the header for the request
31
+ * that follows a reconnect, once a fresh session exists to carry it.
32
+ */
33
+ lastEventId = null;
13
34
  generation = 0;
14
35
  activeSends = new Set();
15
36
  log;
16
37
  timeoutMs;
38
+ /** Defaults to the ambient global `fetch`; never read again once captured. */
39
+ fetchImpl;
17
40
  constructor(config, log) {
18
41
  this.config = config;
19
42
  this.timeoutMs = validateConnectorTimeoutMs(config.timeoutMs ?? DEFAULT_TIMEOUT_MS, 'StreamableHttpTransport timeoutMs');
43
+ this.fetchImpl = config.fetch ?? fetch;
20
44
  this.log = resolveLogger(log).child({ [SCOPE_ATTRIBUTE]: 'connector/mcp/streamable-http' });
21
45
  }
22
46
  async connect() {
@@ -27,16 +51,20 @@ export class StreamableHttpTransport {
27
51
  this.log.info('StreamableHttpTransport connected', { 'namzu.mcp.url': this.config.url });
28
52
  }
29
53
  async close() {
54
+ // Read and clear before anything else can observe or re-enter: whatever
55
+ // happens below, this transport no longer believes it holds this session.
56
+ const sessionId = this.sessionId;
57
+ this.sessionId = null;
30
58
  if (!this.connected) {
31
59
  // Never connected, or already closed: nothing will notify, so this is
32
60
  // the only chance to drop what `connect()` registered before it failed.
33
61
  this.clearHandlers();
34
- this.sessionId = null;
62
+ if (sessionId)
63
+ this.sendSessionDelete(sessionId);
35
64
  return;
36
65
  }
37
66
  this.connected = false;
38
67
  this.generation++;
39
- this.sessionId = null;
40
68
  const reason = new Error('StreamableHttpTransport closed');
41
69
  for (const controller of this.activeSends)
42
70
  controller.abort(reason);
@@ -45,6 +73,73 @@ export class StreamableHttpTransport {
45
73
  handler();
46
74
  // After the notification, never before it.
47
75
  this.clearHandlers();
76
+ if (sessionId)
77
+ this.sendSessionDelete(sessionId);
78
+ }
79
+ /**
80
+ * Forget the session this transport has been attaching to requests,
81
+ * without otherwise disturbing the connection.
82
+ *
83
+ * Used by `MCPClient`'s legacy session-recovery path: a `404` on a
84
+ * request means the server has forgotten this session, and the spec's
85
+ * remedy is a fresh `initialize` sent with no session id attached — which
86
+ * only happens if this transport stops sending the stale one first.
87
+ */
88
+ resetSession() {
89
+ this.sessionId = null;
90
+ }
91
+ /** Whether this transport is currently attaching a session id to its requests. */
92
+ hasSession() {
93
+ return this.sessionId !== null;
94
+ }
95
+ /**
96
+ * Tell the peer this session is done, without making `close()` wait on
97
+ * the answer.
98
+ *
99
+ * A SHOULD, not a MUST: it lets a cooperative server free resources
100
+ * promptly instead of waiting out its own idle timeout, but a server that
101
+ * never hears it is no worse off than before this existed. Fire-and-forget
102
+ * on purpose — `close()`'s existing bounded-teardown guarantee must not
103
+ * grow a dependency on a round trip to a peer that may already be gone —
104
+ * and bounded by its own short timeout so a peer that never answers does
105
+ * not leave a request open indefinitely. A modern origin never reaches
106
+ * this: it never had a session id to send in the first place.
107
+ */
108
+ sendSessionDelete(sessionId) {
109
+ const controller = new AbortController();
110
+ const timer = setTimeout(() => {
111
+ controller.abort(new Error('MCP session DELETE timed out'));
112
+ }, SESSION_DELETE_TIMEOUT_MS);
113
+ timer.unref?.();
114
+ const headers = {
115
+ ...this.config.headers,
116
+ 'Mcp-Session-Id': sessionId,
117
+ };
118
+ let sending;
119
+ try {
120
+ sending = this.fetchImpl(this.config.url, {
121
+ method: 'DELETE',
122
+ headers,
123
+ redirect: 'manual',
124
+ signal: controller.signal,
125
+ });
126
+ }
127
+ catch (err) {
128
+ clearTimeout(timer);
129
+ this.log.debug('Failed to send MCP legacy session DELETE', {
130
+ 'namzu.mcp.url': this.config.url,
131
+ 'exception.message': err instanceof Error ? err.message : String(err),
132
+ });
133
+ return;
134
+ }
135
+ void sending
136
+ .catch((err) => {
137
+ this.log.debug('Failed to send MCP legacy session DELETE', {
138
+ 'namzu.mcp.url': this.config.url,
139
+ 'exception.message': err instanceof Error ? err.message : String(err),
140
+ });
141
+ })
142
+ .finally(() => clearTimeout(timer));
48
143
  }
49
144
  /** See {@link StdioTransport} — the same append-only handler leak. */
50
145
  clearHandlers() {
@@ -59,16 +154,16 @@ export class StreamableHttpTransport {
59
154
  const owned = this.beginSend(options?.signal);
60
155
  const operation = new ConnectorHttpOperation(owned.controller.signal, this.timeoutMs, 'Streamable HTTP MCP send');
61
156
  try {
62
- const response = await operation.run(() => fetch(this.config.url, {
157
+ const response = await operation.run(() => this.fetchImpl(this.config.url, {
63
158
  method: 'POST',
64
- headers: this.buildHeaders(),
159
+ headers: this.buildHeaders(options?.headers),
65
160
  body: JSON.stringify(message),
66
161
  redirect: 'manual',
67
162
  signal: operation.signal,
68
163
  }));
69
164
  refuseMcpHttpRedirect(response, message.method);
70
165
  if (!response.ok) {
71
- throw new Error(`StreamableHttpTransport: HTTP ${response.status}: ${response.statusText}`);
166
+ throw new MCPHttpStatusError('StreamableHttpTransport', response.status, response.statusText, await readErrorBody(response, operation));
72
167
  }
73
168
  this.assertCurrent(owned.generation, operation);
74
169
  // MCP assigns the session during initialize. Letting an ordinary or
@@ -99,14 +194,28 @@ export class StreamableHttpTransport {
99
194
  isConnected() {
100
195
  return this.connected;
101
196
  }
102
- buildHeaders() {
197
+ /**
198
+ * `extra` comes from `MCPTransportSendOptions.headers` — the client's
199
+ * per-send authority, `MCP-Protocol-Version` today — and is merged over
200
+ * this transport's own static config headers so a caller's value wins
201
+ * on a collision. `Mcp-Session-Id` is applied after both: it is
202
+ * transport-managed state a caller cannot see to conflict with.
203
+ */
204
+ buildHeaders(extra) {
103
205
  const headers = {
104
206
  'Content-Type': 'application/json',
105
207
  Accept: 'application/json, text/event-stream',
106
208
  ...this.config.headers,
209
+ ...extra,
107
210
  };
108
211
  if (this.sessionId) {
109
212
  headers['Mcp-Session-Id'] = this.sessionId;
213
+ // Resumption is a legacy-only concept, and gated the same way the
214
+ // session id itself is: a modern connection never captures a
215
+ // `sessionId` (see the field's own doc comment), so this branch is
216
+ // unreachable there without a second, redundant era flag.
217
+ if (this.lastEventId)
218
+ headers['Last-Event-ID'] = this.lastEventId;
110
219
  }
111
220
  return headers;
112
221
  }
@@ -150,7 +259,7 @@ export class StreamableHttpTransport {
150
259
  return;
151
260
  const contentType = response.headers.get('content-type') ?? '';
152
261
  const messages = contentType.includes('text/event-stream')
153
- ? parseSseMessages(text)
262
+ ? this.parseSseAndCaptureEventId(text)
154
263
  : parseJsonMessages(text);
155
264
  for (const message of messages) {
156
265
  this.assertCurrent(generation, operation);
@@ -160,18 +269,75 @@ export class StreamableHttpTransport {
160
269
  }
161
270
  }
162
271
  }
272
+ /**
273
+ * Parse an SSE body and remember the newest event `id` it carried, if
274
+ * any.
275
+ *
276
+ * The id survives past this one call — see the `lastEventId` field's own
277
+ * doc comment — so it is available to arm `Last-Event-ID` on whatever
278
+ * request follows a later reconnect.
279
+ */
280
+ parseSseAndCaptureEventId(raw) {
281
+ const { messages, lastEventId } = parseSseMessages(raw);
282
+ if (lastEventId !== undefined)
283
+ this.lastEventId = lastEventId;
284
+ return messages;
285
+ }
286
+ }
287
+ /**
288
+ * The body of a failed response, or an empty string.
289
+ *
290
+ * Carried on the error rather than discarded, because a status alone cannot
291
+ * tell a legacy origin from a modern one: a modern server answers an
292
+ * unknown method with `404` and a JSON-RPC error body precisely so that a
293
+ * client can tell the two apart. Reading it must never turn a clean HTTP
294
+ * failure into a different one, so a body that cannot be read is simply
295
+ * absent — the status error is the real answer either way.
296
+ */
297
+ async function readErrorBody(response, operation) {
298
+ try {
299
+ return await operation.run(() => response.text());
300
+ }
301
+ catch {
302
+ return '';
303
+ }
163
304
  }
164
305
  function parseJsonMessages(raw) {
165
306
  const parsed = JSON.parse(raw);
166
307
  return Array.isArray(parsed) ? parsed : [parsed];
167
308
  }
168
- function parseSseMessages(raw) {
309
+ /**
310
+ * Parse a response body served as `text/event-stream`.
311
+ *
312
+ * Exported and pure so it is a direct unit-test target, with no transport,
313
+ * socket or server needed to see what it decides.
314
+ *
315
+ * Already correct on three counts before this: `data:` with or without a
316
+ * leading space, multi-line data joined with `\n`, and the empty-data
317
+ * priming event skipped as a message. This adds the two genuinely new
318
+ * pieces — capturing `id:` (armed by the caller for a legacy
319
+ * `Last-Event-ID` reconnect) and treating a `:`-prefixed comment or another
320
+ * unrecognized line as exactly what the spec says it is: not a field, never
321
+ * malformed input. Neither needed a special case: both filters below already
322
+ * select a line by its OWN prefix and so already ignore anything else — a
323
+ * comment, an `event:` line, a `retry:` line — without one.
324
+ */
325
+ export function parseSseMessages(raw) {
169
326
  const normalized = raw.replace(/\r\n/g, '\n');
170
327
  const events = normalized.split(/\n\n+/);
171
328
  const messages = [];
329
+ let lastEventId;
172
330
  for (const event of events) {
173
- const dataLines = event
174
- .split('\n')
331
+ const lines = event.split('\n');
332
+ const idLines = lines
333
+ .filter((line) => line.startsWith('id:'))
334
+ .map((line) => line.slice('id:'.length).trim());
335
+ // The LAST `id:` field within one event wins, per SSE's own
336
+ // field-processing rules — relevant only for a malformed event that
337
+ // repeats the field, but cheap to get right.
338
+ if (idLines.length > 0)
339
+ lastEventId = idLines.at(-1);
340
+ const dataLines = lines
175
341
  .filter((line) => line.startsWith('data:'))
176
342
  .map((line) => line.slice('data:'.length).trimStart());
177
343
  if (dataLines.length === 0)
@@ -187,6 +353,6 @@ function parseSseMessages(raw) {
187
353
  messages.push(parsed);
188
354
  }
189
355
  }
190
- return messages;
356
+ return lastEventId !== undefined ? { messages, lastEventId } : { messages };
191
357
  }
192
358
  //# sourceMappingURL=streamable-http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"streamable-http.js","sourceRoot":"","sources":["../../../src/connector/mcp/streamable-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamable-http.js","sourceRoot":"","sources":["../../../src/connector/mcp/streamable-http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * One validated `x-mcp-header` annotation: which header to write, which
3
+ * argument to read it from, and how to spell that argument.
4
+ *
5
+ * `path` is the exact chain of `properties` keys leading to the annotated
6
+ * property, which is also the path into a call's `arguments` object. It is
7
+ * produced only by {@link validateMcpHeaderAnnotations}, so a binding cannot
8
+ * exist for a property that was not statically reachable.
9
+ */
10
+ export interface McpParamHeaderBinding {
11
+ /** The full field name, prefix included — `Mcp-Param-Region`. */
12
+ readonly header: string;
13
+ /** The chain of `properties` keys, read against the call's `arguments`. */
14
+ readonly path: readonly string[];
15
+ readonly type: 'string' | 'boolean' | 'integer';
16
+ }
17
+ /**
18
+ * Whether a tool definition may be exposed, and what it asked to mirror.
19
+ *
20
+ * A verdict about the WHOLE tool, not about one annotation: the spec makes a
21
+ * single bad annotation invalidate the tool definition, because a client
22
+ * that mirrored the rest would send a request the server then rejects for
23
+ * headers it cannot explain.
24
+ */
25
+ export type McpHeaderAnnotationVerdict = {
26
+ readonly ok: true;
27
+ readonly bindings: readonly McpParamHeaderBinding[];
28
+ } | {
29
+ readonly ok: false;
30
+ readonly reason: string;
31
+ };
32
+ /**
33
+ * Decide whether a tool may be exposed, and collect what it asked to mirror.
34
+ *
35
+ * The six constraints, in the spec's own order: non-empty; HTTP field-name
36
+ * token syntax; no control characters; case-insensitively unique across the
37
+ * whole `inputSchema`; applied only to `string`, `boolean` or `integer`
38
+ * (never `number`); and statically reachable through a chain of `properties`
39
+ * keys alone.
40
+ *
41
+ * Returns a REASON rather than throwing, because the caller's job is to drop
42
+ * one tool and keep the rest: a listing where one definition is malformed
43
+ * must still deliver the others, and an exception here would take the whole
44
+ * listing down with it.
45
+ */
46
+ export declare function validateMcpHeaderAnnotations(inputSchema: unknown): McpHeaderAnnotationVerdict;
47
+ /**
48
+ * The `Mcp-Param-*` field values for one call's arguments, unencoded.
49
+ *
50
+ * Returns the values as the BODY carries them; wrapping a value that cannot
51
+ * be written into a header field verbatim is the envelope's job, so the
52
+ * sentinel rule lives in one place for `Mcp-Name` and `Mcp-Param-*` alike
53
+ * rather than being reimplemented here.
54
+ */
55
+ export declare function mcpParamHeaderValues(bindings: readonly McpParamHeaderBinding[], args: unknown): Record<string, string>;
56
+ //# sourceMappingURL=x-mcp-header.d.ts.map