@noodleseed/one 0.95.2 → 0.96.1

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 (423) hide show
  1. package/dist/commands/author-loop.d.ts.map +1 -1
  2. package/dist/commands/author-loop.js +3 -2
  3. package/dist/commands/author-loop.js.map +1 -1
  4. package/dist/commands/connect-oauth.d.ts.map +1 -1
  5. package/dist/commands/connect-oauth.js +1 -0
  6. package/dist/commands/connect-oauth.js.map +1 -1
  7. package/dist/dev.d.ts +6 -1
  8. package/dist/dev.d.ts.map +1 -1
  9. package/dist/dev.js +120 -34
  10. package/dist/dev.js.map +1 -1
  11. package/dist/device-login.js +1 -0
  12. package/dist/device-login.js.map +1 -1
  13. package/dist/devtools-preview.d.ts.map +1 -1
  14. package/dist/devtools-preview.js +82 -8
  15. package/dist/devtools-preview.js.map +1 -1
  16. package/dist/plugin-mode/build-readiness-server.d.ts +1 -1
  17. package/dist/plugin-mode/build-readiness-server.d.ts.map +1 -1
  18. package/dist/plugin-mode/build-readiness-server.js +3 -4
  19. package/dist/plugin-mode/build-readiness-server.js.map +1 -1
  20. package/dist/plugin-mode/plugin-operation-contract.d.ts +1 -1
  21. package/dist/plugin-mode/plugin-operation-contract.d.ts.map +1 -1
  22. package/dist/plugin-mode/plugin-operation-tools.d.ts +1 -2
  23. package/dist/plugin-mode/plugin-operation-tools.d.ts.map +1 -1
  24. package/dist/plugin-mode/plugin-operation-tools.js.map +1 -1
  25. package/node_modules/@modelcontextprotocol/client/LICENSE +216 -0
  26. package/node_modules/@modelcontextprotocol/client/README.md +26 -0
  27. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-1b6pVpkg.cjs +7531 -0
  28. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-1b6pVpkg.cjs.map +1 -0
  29. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-97rDpkRx.mjs +7514 -0
  30. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-97rDpkRx.mjs.map +1 -0
  31. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-FOQRM7up.d.cts +1071 -0
  32. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-FOQRM7up.d.cts.map +1 -0
  33. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-INpkxUi1.d.mts +1071 -0
  34. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-INpkxUi1.d.mts.map +1 -0
  35. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-B3ZJEoRM.d.mts +74 -0
  36. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-B3ZJEoRM.d.mts.map +1 -0
  37. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-B3dvjU3F.cjs +986 -0
  38. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-B3dvjU3F.cjs.map +1 -0
  39. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-BylNJ1R5.mjs +981 -0
  40. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-BylNJ1R5.mjs.map +1 -0
  41. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-doTkZbTr.d.cts +74 -0
  42. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-doTkZbTr.d.cts.map +1 -0
  43. package/node_modules/@modelcontextprotocol/client/dist/chunk-Bnu9O96Y.cjs +60 -0
  44. package/node_modules/@modelcontextprotocol/client/dist/chunk-Br0eD_fh.mjs +42 -0
  45. package/node_modules/@modelcontextprotocol/client/dist/dialects-BGO_ZrYF.cjs +46 -0
  46. package/node_modules/@modelcontextprotocol/client/dist/dialects-BGO_ZrYF.cjs.map +1 -0
  47. package/node_modules/@modelcontextprotocol/client/dist/dialects-BOhdv1Fc.mjs +34 -0
  48. package/node_modules/@modelcontextprotocol/client/dist/dialects-BOhdv1Fc.mjs.map +1 -0
  49. package/node_modules/@modelcontextprotocol/client/dist/index-CHhhk6PQ.d.cts +2526 -0
  50. package/node_modules/@modelcontextprotocol/client/dist/index-CHhhk6PQ.d.cts.map +1 -0
  51. package/node_modules/@modelcontextprotocol/client/dist/index-D4xIIEF6.d.mts +2523 -0
  52. package/node_modules/@modelcontextprotocol/client/dist/index-D4xIIEF6.d.mts.map +1 -0
  53. package/node_modules/@modelcontextprotocol/client/dist/index.cjs +5690 -0
  54. package/node_modules/@modelcontextprotocol/client/dist/index.cjs.map +1 -0
  55. package/node_modules/@modelcontextprotocol/client/dist/index.d.cts +3252 -0
  56. package/node_modules/@modelcontextprotocol/client/dist/index.d.cts.map +1 -0
  57. package/node_modules/@modelcontextprotocol/client/dist/index.d.mts +3252 -0
  58. package/node_modules/@modelcontextprotocol/client/dist/index.d.mts.map +1 -0
  59. package/node_modules/@modelcontextprotocol/client/dist/index.mjs +5481 -0
  60. package/node_modules/@modelcontextprotocol/client/dist/index.mjs.map +1 -0
  61. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.cjs +14 -0
  62. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.cjs.map +1 -0
  63. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.cts +13 -0
  64. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.cts.map +1 -0
  65. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.mts +13 -0
  66. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.mts.map +1 -0
  67. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.mjs +13 -0
  68. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.mjs.map +1 -0
  69. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.cjs +14 -0
  70. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.cjs.map +1 -0
  71. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.cts +13 -0
  72. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.cts.map +1 -0
  73. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.mts +13 -0
  74. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.mts.map +1 -0
  75. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.mjs +13 -0
  76. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.mjs.map +1 -0
  77. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.cjs +21 -0
  78. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.cjs.map +1 -0
  79. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.cts +13 -0
  80. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.cts.map +1 -0
  81. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.mts +13 -0
  82. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.mts.map +1 -0
  83. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.mjs +20 -0
  84. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.mjs.map +1 -0
  85. package/node_modules/@modelcontextprotocol/client/dist/src-D_zzAWoS.mjs +7063 -0
  86. package/node_modules/@modelcontextprotocol/client/dist/src-D_zzAWoS.mjs.map +1 -0
  87. package/node_modules/@modelcontextprotocol/client/dist/src-NAgB4Mp8.cjs +7431 -0
  88. package/node_modules/@modelcontextprotocol/client/dist/src-NAgB4Mp8.cjs.map +1 -0
  89. package/node_modules/@modelcontextprotocol/client/dist/stdio.cjs +217 -0
  90. package/node_modules/@modelcontextprotocol/client/dist/stdio.cjs.map +1 -0
  91. package/node_modules/@modelcontextprotocol/client/dist/stdio.d.cts +96 -0
  92. package/node_modules/@modelcontextprotocol/client/dist/stdio.d.cts.map +1 -0
  93. package/node_modules/@modelcontextprotocol/client/dist/stdio.d.mts +96 -0
  94. package/node_modules/@modelcontextprotocol/client/dist/stdio.d.mts.map +1 -0
  95. package/node_modules/@modelcontextprotocol/client/dist/stdio.mjs +212 -0
  96. package/node_modules/@modelcontextprotocol/client/dist/stdio.mjs.map +1 -0
  97. package/node_modules/@modelcontextprotocol/client/dist/types-DsbMXNFL.d.cts +1099 -0
  98. package/node_modules/@modelcontextprotocol/client/dist/types-DsbMXNFL.d.cts.map +1 -0
  99. package/node_modules/@modelcontextprotocol/client/dist/types-mS0yxCL0.d.mts +1099 -0
  100. package/node_modules/@modelcontextprotocol/client/dist/types-mS0yxCL0.d.mts.map +1 -0
  101. package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.cjs +5 -0
  102. package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.d.cts +2 -0
  103. package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.d.mts +2 -0
  104. package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.mjs +3 -0
  105. package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.cjs +3 -0
  106. package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.d.cts +2 -0
  107. package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.d.mts +2 -0
  108. package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.mjs +3 -0
  109. package/node_modules/@modelcontextprotocol/client/package.json +166 -0
  110. package/node_modules/@modelcontextprotocol/core/LICENSE +216 -0
  111. package/node_modules/@modelcontextprotocol/core/README.md +40 -0
  112. package/node_modules/@modelcontextprotocol/core/dist/auth-BWdKR39I.d.mts +8501 -0
  113. package/node_modules/@modelcontextprotocol/core/dist/auth-BWdKR39I.d.mts.map +1 -0
  114. package/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs +1678 -0
  115. package/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs.map +1 -0
  116. package/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs +2899 -0
  117. package/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs.map +1 -0
  118. package/node_modules/@modelcontextprotocol/core/dist/auth-hYtaIUZm.d.cts +8501 -0
  119. package/node_modules/@modelcontextprotocol/core/dist/auth-hYtaIUZm.d.cts.map +1 -0
  120. package/node_modules/@modelcontextprotocol/core/dist/index.cjs +175 -0
  121. package/node_modules/@modelcontextprotocol/core/dist/index.d.cts +2 -0
  122. package/node_modules/@modelcontextprotocol/core/dist/index.d.mts +2 -0
  123. package/node_modules/@modelcontextprotocol/core/dist/index.mjs +3 -0
  124. package/node_modules/@modelcontextprotocol/core/dist/internal.cjs +201 -0
  125. package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +99 -0
  126. package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts.map +1 -0
  127. package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +99 -0
  128. package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts.map +1 -0
  129. package/node_modules/@modelcontextprotocol/core/dist/internal.mjs +3 -0
  130. package/node_modules/@modelcontextprotocol/core/package.json +85 -0
  131. package/node_modules/@modelcontextprotocol/server/LICENSE +216 -0
  132. package/node_modules/@modelcontextprotocol/server/README.md +30 -0
  133. package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CEoC__sr.mjs +7514 -0
  134. package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CEoC__sr.mjs.map +1 -0
  135. package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CgI-5L6O.d.mts +1071 -0
  136. package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CgI-5L6O.d.mts.map +1 -0
  137. package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-FOQRM7up.d.cts +1071 -0
  138. package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-FOQRM7up.d.cts.map +1 -0
  139. package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-ZaoO9afR.cjs +7531 -0
  140. package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-ZaoO9afR.cjs.map +1 -0
  141. package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BwbPzsdI.cjs +986 -0
  142. package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BwbPzsdI.cjs.map +1 -0
  143. package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-C03CSigr.d.mts +74 -0
  144. package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-C03CSigr.d.mts.map +1 -0
  145. package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-doTkZbTr.d.cts +74 -0
  146. package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-doTkZbTr.d.cts.map +1 -0
  147. package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-p3WaZPqB.mjs +981 -0
  148. package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-p3WaZPqB.mjs.map +1 -0
  149. package/node_modules/@modelcontextprotocol/server/dist/chunk-Bnu9O96Y.cjs +60 -0
  150. package/node_modules/@modelcontextprotocol/server/dist/chunk-Br0eD_fh.mjs +42 -0
  151. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CLhGwQTn.d.mts +4043 -0
  152. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CLhGwQTn.d.mts.map +1 -0
  153. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-dBHMsxwf.d.cts +4045 -0
  154. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-dBHMsxwf.d.cts.map +1 -0
  155. package/node_modules/@modelcontextprotocol/server/dist/dialects-D8eXzoGv.cjs +46 -0
  156. package/node_modules/@modelcontextprotocol/server/dist/dialects-D8eXzoGv.cjs.map +1 -0
  157. package/node_modules/@modelcontextprotocol/server/dist/dialects-DoSzNhcb.mjs +34 -0
  158. package/node_modules/@modelcontextprotocol/server/dist/dialects-DoSzNhcb.mjs.map +1 -0
  159. package/node_modules/@modelcontextprotocol/server/dist/index.cjs +2055 -0
  160. package/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -0
  161. package/node_modules/@modelcontextprotocol/server/dist/index.d.cts +739 -0
  162. package/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +1 -0
  163. package/node_modules/@modelcontextprotocol/server/dist/index.d.mts +739 -0
  164. package/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +1 -0
  165. package/node_modules/@modelcontextprotocol/server/dist/index.mjs +1870 -0
  166. package/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -0
  167. package/node_modules/@modelcontextprotocol/server/dist/mcp-D7GmuPnv.cjs +2022 -0
  168. package/node_modules/@modelcontextprotocol/server/dist/mcp-D7GmuPnv.cjs.map +1 -0
  169. package/node_modules/@modelcontextprotocol/server/dist/mcp-DXXb3Vv3.mjs +1931 -0
  170. package/node_modules/@modelcontextprotocol/server/dist/mcp-DXXb3Vv3.mjs.map +1 -0
  171. package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs +23 -0
  172. package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs.map +1 -0
  173. package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts +11 -0
  174. package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts.map +1 -0
  175. package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts +11 -0
  176. package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts.map +1 -0
  177. package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs +22 -0
  178. package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs.map +1 -0
  179. package/node_modules/@modelcontextprotocol/server/dist/shimsNode.cjs +12 -0
  180. package/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.cts +3 -0
  181. package/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.mts +3 -0
  182. package/node_modules/@modelcontextprotocol/server/dist/shimsNode.mjs +4 -0
  183. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +30 -0
  184. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs.map +1 -0
  185. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts +10 -0
  186. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts.map +1 -0
  187. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts +10 -0
  188. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts.map +1 -0
  189. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +29 -0
  190. package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs.map +1 -0
  191. package/node_modules/@modelcontextprotocol/server/dist/src-CX2iR2pK.mjs +7606 -0
  192. package/node_modules/@modelcontextprotocol/server/dist/src-CX2iR2pK.mjs.map +1 -0
  193. package/node_modules/@modelcontextprotocol/server/dist/src-STyD_Vvf.cjs +8104 -0
  194. package/node_modules/@modelcontextprotocol/server/dist/src-STyD_Vvf.cjs.map +1 -0
  195. package/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +564 -0
  196. package/node_modules/@modelcontextprotocol/server/dist/stdio.cjs.map +1 -0
  197. package/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +107 -0
  198. package/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts.map +1 -0
  199. package/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +107 -0
  200. package/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts.map +1 -0
  201. package/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +562 -0
  202. package/node_modules/@modelcontextprotocol/server/dist/stdio.mjs.map +1 -0
  203. package/node_modules/@modelcontextprotocol/server/dist/types-DUs7mGBv.d.mts +1099 -0
  204. package/node_modules/@modelcontextprotocol/server/dist/types-DUs7mGBv.d.mts.map +1 -0
  205. package/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts +1099 -0
  206. package/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts.map +1 -0
  207. package/node_modules/@modelcontextprotocol/server/dist/validators/ajv.cjs +5 -0
  208. package/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.cts +2 -0
  209. package/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.mts +2 -0
  210. package/node_modules/@modelcontextprotocol/server/dist/validators/ajv.mjs +3 -0
  211. package/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.cjs +3 -0
  212. package/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.cts +2 -0
  213. package/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.mts +2 -0
  214. package/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.mjs +3 -0
  215. package/node_modules/@modelcontextprotocol/server/package.json +160 -0
  216. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
  217. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  218. package/node_modules/@noodle-borg/agent-kit/dist/skill-server-playbook-ref.d.ts.map +1 -1
  219. package/node_modules/@noodle-borg/agent-kit/dist/skill-server-playbook-ref.js +1 -0
  220. package/node_modules/@noodle-borg/agent-kit/dist/skill-server-playbook-ref.js.map +1 -1
  221. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  222. package/node_modules/@noodle-borg/capabilities/dist/index.d.ts.map +1 -1
  223. package/node_modules/@noodle-borg/capabilities/dist/index.js +10 -3
  224. package/node_modules/@noodle-borg/capabilities/dist/index.js.map +1 -1
  225. package/node_modules/@noodle-borg/developer-mcp/dist/prompts.d.ts +1 -1
  226. package/node_modules/@noodle-borg/developer-mcp/dist/prompts.d.ts.map +1 -1
  227. package/node_modules/@noodle-borg/developer-mcp/dist/resources.d.ts +1 -1
  228. package/node_modules/@noodle-borg/developer-mcp/dist/resources.d.ts.map +1 -1
  229. package/node_modules/@noodle-borg/developer-mcp/dist/server.d.ts +1 -1
  230. package/node_modules/@noodle-borg/developer-mcp/dist/server.d.ts.map +1 -1
  231. package/node_modules/@noodle-borg/developer-mcp/dist/server.js +3 -1
  232. package/node_modules/@noodle-borg/developer-mcp/dist/server.js.map +1 -1
  233. package/node_modules/@noodle-borg/developer-mcp/package.json +2 -1
  234. package/node_modules/@noodle-borg/module/dist/contract.d.ts +2 -0
  235. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  236. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  237. package/node_modules/@noodle-borg/protocol/dist/error-codes.d.ts +11 -0
  238. package/node_modules/@noodle-borg/protocol/dist/error-codes.d.ts.map +1 -0
  239. package/node_modules/@noodle-borg/protocol/dist/error-codes.js +11 -0
  240. package/node_modules/@noodle-borg/protocol/dist/error-codes.js.map +1 -0
  241. package/node_modules/@noodle-borg/protocol/dist/handlers/prompts.d.ts +6 -0
  242. package/node_modules/@noodle-borg/protocol/dist/handlers/prompts.d.ts.map +1 -0
  243. package/node_modules/@noodle-borg/protocol/dist/handlers/prompts.js +31 -0
  244. package/node_modules/@noodle-borg/protocol/dist/handlers/prompts.js.map +1 -0
  245. package/node_modules/@noodle-borg/protocol/dist/handlers/resources.d.ts +6 -0
  246. package/node_modules/@noodle-borg/protocol/dist/handlers/resources.d.ts.map +1 -0
  247. package/node_modules/@noodle-borg/protocol/dist/handlers/resources.js +50 -0
  248. package/node_modules/@noodle-borg/protocol/dist/handlers/resources.js.map +1 -0
  249. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.d.ts +6 -0
  250. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.d.ts.map +1 -0
  251. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.js +126 -0
  252. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.js.map +1 -0
  253. package/node_modules/@noodle-borg/protocol/dist/index.d.ts +6 -2
  254. package/node_modules/@noodle-borg/protocol/dist/index.d.ts.map +1 -1
  255. package/node_modules/@noodle-borg/protocol/dist/index.js +4 -1
  256. package/node_modules/@noodle-borg/protocol/dist/index.js.map +1 -1
  257. package/node_modules/@noodle-borg/protocol/dist/interaction-envelope.d.ts +10 -0
  258. package/node_modules/@noodle-borg/protocol/dist/interaction-envelope.d.ts.map +1 -0
  259. package/node_modules/@noodle-borg/protocol/dist/interaction-envelope.js +66 -0
  260. package/node_modules/@noodle-borg/protocol/dist/interaction-envelope.js.map +1 -0
  261. package/node_modules/@noodle-borg/protocol/dist/jsonrpc.d.ts +1 -0
  262. package/node_modules/@noodle-borg/protocol/dist/jsonrpc.d.ts.map +1 -1
  263. package/node_modules/@noodle-borg/protocol/dist/jsonrpc.js +1 -0
  264. package/node_modules/@noodle-borg/protocol/dist/jsonrpc.js.map +1 -1
  265. package/node_modules/@noodle-borg/protocol/dist/observation.d.ts +27 -0
  266. package/node_modules/@noodle-borg/protocol/dist/observation.d.ts.map +1 -0
  267. package/node_modules/@noodle-borg/protocol/dist/observation.js +20 -0
  268. package/node_modules/@noodle-borg/protocol/dist/observation.js.map +1 -0
  269. package/node_modules/@noodle-borg/protocol/dist/request-deps.d.ts +6 -0
  270. package/node_modules/@noodle-borg/protocol/dist/request-deps.d.ts.map +1 -0
  271. package/node_modules/@noodle-borg/protocol/dist/request-deps.js +16 -0
  272. package/node_modules/@noodle-borg/protocol/dist/request-deps.js.map +1 -0
  273. package/node_modules/@noodle-borg/protocol/dist/request-state.d.ts +50 -0
  274. package/node_modules/@noodle-borg/protocol/dist/request-state.d.ts.map +1 -0
  275. package/node_modules/@noodle-borg/protocol/dist/request-state.js +195 -0
  276. package/node_modules/@noodle-borg/protocol/dist/request-state.js.map +1 -0
  277. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +16 -23
  278. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
  279. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js +7 -341
  280. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
  281. package/node_modules/@noodle-borg/protocol/dist/tool-authorization.d.ts +1 -1
  282. package/node_modules/@noodle-borg/protocol/dist/tool-authorization.d.ts.map +1 -1
  283. package/node_modules/@noodle-borg/protocol/dist/tool-authorization.js +1 -1
  284. package/node_modules/@noodle-borg/protocol/dist/tool-authorization.js.map +1 -1
  285. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts +7 -2
  286. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -1
  287. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js +8 -1
  288. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js.map +1 -1
  289. package/node_modules/@noodle-borg/protocol/dist/tool-results.d.ts +7 -0
  290. package/node_modules/@noodle-borg/protocol/dist/tool-results.d.ts.map +1 -0
  291. package/node_modules/@noodle-borg/protocol/dist/tool-results.js +49 -0
  292. package/node_modules/@noodle-borg/protocol/dist/tool-results.js.map +1 -0
  293. package/node_modules/@noodle-borg/protocol/dist/v2/cache-hints.d.ts +11 -0
  294. package/node_modules/@noodle-borg/protocol/dist/v2/cache-hints.d.ts.map +1 -0
  295. package/node_modules/@noodle-borg/protocol/dist/v2/cache-hints.js +14 -0
  296. package/node_modules/@noodle-borg/protocol/dist/v2/cache-hints.js.map +1 -0
  297. package/node_modules/@noodle-borg/protocol/dist/v2/confirmation.d.ts +16 -0
  298. package/node_modules/@noodle-borg/protocol/dist/v2/confirmation.d.ts.map +1 -0
  299. package/node_modules/@noodle-borg/protocol/dist/v2/confirmation.js +57 -0
  300. package/node_modules/@noodle-borg/protocol/dist/v2/confirmation.js.map +1 -0
  301. package/node_modules/@noodle-borg/protocol/dist/v2/handler.d.ts +11 -0
  302. package/node_modules/@noodle-borg/protocol/dist/v2/handler.d.ts.map +1 -0
  303. package/node_modules/@noodle-borg/protocol/dist/v2/handler.js +154 -0
  304. package/node_modules/@noodle-borg/protocol/dist/v2/handler.js.map +1 -0
  305. package/node_modules/@noodle-borg/protocol/dist/v2/input-required.d.ts +12 -0
  306. package/node_modules/@noodle-borg/protocol/dist/v2/input-required.d.ts.map +1 -0
  307. package/node_modules/@noodle-borg/protocol/dist/v2/input-required.js +78 -0
  308. package/node_modules/@noodle-borg/protocol/dist/v2/input-required.js.map +1 -0
  309. package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts +5 -0
  310. package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts.map +1 -0
  311. package/node_modules/@noodle-borg/protocol/dist/v2/server.js +314 -0
  312. package/node_modules/@noodle-borg/protocol/dist/v2/server.js.map +1 -0
  313. package/node_modules/@noodle-borg/protocol/dist/v2/tool-list.d.ts +4 -0
  314. package/node_modules/@noodle-borg/protocol/dist/v2/tool-list.d.ts.map +1 -0
  315. package/node_modules/@noodle-borg/protocol/dist/v2/tool-list.js +25 -0
  316. package/node_modules/@noodle-borg/protocol/dist/v2/tool-list.js.map +1 -0
  317. package/node_modules/@noodle-borg/protocol/dist/v2/versions.d.ts +6 -0
  318. package/node_modules/@noodle-borg/protocol/dist/v2/versions.d.ts.map +1 -0
  319. package/node_modules/@noodle-borg/protocol/dist/v2/versions.js +11 -0
  320. package/node_modules/@noodle-borg/protocol/dist/v2/versions.js.map +1 -0
  321. package/node_modules/@noodle-borg/protocol/package.json +3 -0
  322. package/node_modules/@noodle-borg/service/dist/billing/usage-identity.d.ts +2 -0
  323. package/node_modules/@noodle-borg/service/dist/billing/usage-identity.d.ts.map +1 -1
  324. package/node_modules/@noodle-borg/service/dist/billing/usage-identity.js +15 -7
  325. package/node_modules/@noodle-borg/service/dist/billing/usage-identity.js.map +1 -1
  326. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.d.ts +2 -1
  327. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.d.ts.map +1 -1
  328. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +16 -14
  329. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js.map +1 -1
  330. package/node_modules/@noodle-borg/service/dist/developer-mcp/service-options.d.ts.map +1 -1
  331. package/node_modules/@noodle-borg/service/dist/developer-mcp/service-options.js +1 -0
  332. package/node_modules/@noodle-borg/service/dist/developer-mcp/service-options.js.map +1 -1
  333. package/node_modules/@noodle-borg/service/dist/index.d.ts +2 -0
  334. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  335. package/node_modules/@noodle-borg/service/dist/index.js +2 -0
  336. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  337. package/node_modules/@noodle-borg/service/dist/main.js +3 -0
  338. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  339. package/node_modules/@noodle-borg/service/dist/mcp-confirmation-nonce-postgres.d.ts +14 -0
  340. package/node_modules/@noodle-borg/service/dist/mcp-confirmation-nonce-postgres.d.ts.map +1 -0
  341. package/node_modules/@noodle-borg/service/dist/mcp-confirmation-nonce-postgres.js +35 -0
  342. package/node_modules/@noodle-borg/service/dist/mcp-confirmation-nonce-postgres.js.map +1 -0
  343. package/node_modules/@noodle-borg/service/dist/mcp-protocol-runtime.d.ts +16 -0
  344. package/node_modules/@noodle-borg/service/dist/mcp-protocol-runtime.d.ts.map +1 -0
  345. package/node_modules/@noodle-borg/service/dist/mcp-protocol-runtime.js +21 -0
  346. package/node_modules/@noodle-borg/service/dist/mcp-protocol-runtime.js.map +1 -0
  347. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts.map +1 -1
  348. package/node_modules/@noodle-borg/service/dist/oauth/app.js +47 -0
  349. package/node_modules/@noodle-borg/service/dist/oauth/app.js.map +1 -1
  350. package/node_modules/@noodle-borg/service/dist/oauth/authorization-response.d.ts +4 -0
  351. package/node_modules/@noodle-borg/service/dist/oauth/authorization-response.d.ts.map +1 -0
  352. package/node_modules/@noodle-borg/service/dist/oauth/authorization-response.js +6 -0
  353. package/node_modules/@noodle-borg/service/dist/oauth/authorization-response.js.map +1 -0
  354. package/node_modules/@noodle-borg/service/dist/oauth/consent-decision.d.ts.map +1 -1
  355. package/node_modules/@noodle-borg/service/dist/oauth/consent-decision.js +2 -1
  356. package/node_modules/@noodle-borg/service/dist/oauth/consent-decision.js.map +1 -1
  357. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js +2 -1
  358. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js.map +1 -1
  359. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.d.ts.map +1 -1
  360. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.js +1 -0
  361. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.js.map +1 -1
  362. package/node_modules/@noodle-borg/service/dist/oauth/metadata.d.ts.map +1 -1
  363. package/node_modules/@noodle-borg/service/dist/oauth/metadata.js +1 -0
  364. package/node_modules/@noodle-borg/service/dist/oauth/metadata.js.map +1 -1
  365. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
  366. package/node_modules/@noodle-borg/service/dist/oauth/provider.js +1 -0
  367. package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
  368. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts.map +1 -1
  369. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js +2 -1
  370. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js.map +1 -1
  371. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.d.ts.map +1 -1
  372. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js +1 -0
  373. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js.map +1 -1
  374. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts +1 -0
  375. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts.map +1 -1
  376. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.js +2 -1
  377. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.js.map +1 -1
  378. package/node_modules/@noodle-borg/service/dist/options.d.ts +8 -1
  379. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  380. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  381. package/node_modules/@noodle-borg/service/dist/serve.js +15 -0
  382. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  383. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  384. package/node_modules/@noodle-borg/service/dist/service.js +5 -0
  385. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  386. package/node_modules/@noodle-borg/service/dist/store/request-events-postgres.d.ts.map +1 -1
  387. package/node_modules/@noodle-borg/service/dist/store/request-events-postgres.js +9 -2
  388. package/node_modules/@noodle-borg/service/dist/store/request-events-postgres.js.map +1 -1
  389. package/node_modules/@noodle-borg/service/dist/store/request-events.d.ts.map +1 -1
  390. package/node_modules/@noodle-borg/service/dist/store/request-events.js +1 -0
  391. package/node_modules/@noodle-borg/service/dist/store/request-events.js.map +1 -1
  392. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +19 -67
  393. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
  394. package/node_modules/@noodle-borg/transport-http/dist/handler.js +12 -281
  395. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  396. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +2 -1
  397. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
  398. package/node_modules/@noodle-borg/transport-http/dist/index.js +1 -0
  399. package/node_modules/@noodle-borg/transport-http/dist/index.js.map +1 -1
  400. package/node_modules/@noodle-borg/transport-http/dist/request-capture.d.ts.map +1 -1
  401. package/node_modules/@noodle-borg/transport-http/dist/request-capture.js +38 -4
  402. package/node_modules/@noodle-borg/transport-http/dist/request-capture.js.map +1 -1
  403. package/node_modules/@noodle-borg/transport-http/dist/responses.d.ts +28 -0
  404. package/node_modules/@noodle-borg/transport-http/dist/responses.d.ts.map +1 -0
  405. package/node_modules/@noodle-borg/transport-http/dist/responses.js +50 -0
  406. package/node_modules/@noodle-borg/transport-http/dist/responses.js.map +1 -0
  407. package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts +28 -0
  408. package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts.map +1 -0
  409. package/node_modules/@noodle-borg/transport-http/dist/routing.js +52 -0
  410. package/node_modules/@noodle-borg/transport-http/dist/routing.js.map +1 -0
  411. package/node_modules/@noodle-borg/transport-http/dist/serve-request.d.ts +35 -0
  412. package/node_modules/@noodle-borg/transport-http/dist/serve-request.d.ts.map +1 -0
  413. package/node_modules/@noodle-borg/transport-http/dist/serve-request.js +190 -0
  414. package/node_modules/@noodle-borg/transport-http/dist/serve-request.js.map +1 -0
  415. package/node_modules/@noodle-borg/transport-http/dist/tool-dispatch.d.ts +1 -1
  416. package/node_modules/@noodle-borg/transport-http/dist/tool-dispatch.d.ts.map +1 -1
  417. package/node_modules/@noodle-borg/transport-http/dist/tool-dispatch.js +17 -5
  418. package/node_modules/@noodle-borg/transport-http/dist/tool-dispatch.js.map +1 -1
  419. package/node_modules/@noodle-borg/transport-http/dist/web-bridge.d.ts +9 -0
  420. package/node_modules/@noodle-borg/transport-http/dist/web-bridge.d.ts.map +1 -0
  421. package/node_modules/@noodle-borg/transport-http/dist/web-bridge.js +61 -0
  422. package/node_modules/@noodle-borg/transport-http/dist/web-bridge.js.map +1 -0
  423. package/package.json +6 -2
@@ -1,23 +1,12 @@
1
- import { parseLegacyTenantMcpPath, parsePublicTenantMcpUrl } from '@noodle-borg/module';
2
- import { handleStatelessHttp, JSON_RPC, } from '@noodle-borg/protocol';
3
- import { admissionContexts, requestsInvocationContext } from './admission-context.js';
1
+ import { JSON_RPC, } from '@noodle-borg/protocol';
4
2
  import { applySecurityHeaders, enforceHttps } from './front-door.js';
5
- import { authorizeIdentityMode, authorizeMixedMode, isIdentityMode, } from './identity-authorization.js';
6
3
  import { noopLogger } from './logging.js';
7
- import { canonicalPublicResourceUrl, edgeTokenMatches } from './public-routing.js';
8
- import { emitRequestEvent, header } from './request-capture.js';
9
- import { preflightToolAuthorization, sendToolAuthorizationDenial } from './tool-authorization.js';
10
- import { withHostedToolDispatch } from './tool-dispatch.js';
4
+ import { guard, logRequest, rpcError, sendJson } from './responses.js';
5
+ import { resolveRoute } from './routing.js';
6
+ import { serveRequest } from './serve-request.js';
11
7
  const DEFAULT_ENDPOINT = '/mcp';
12
8
  const DEFAULT_MAX_BODY = 1 << 20;
13
- /**
14
- * Build a `node:http` request listener that serves one {@link ServedArtifact} over the MCP **Streamable
15
- * HTTP** transport (the remote transport). This is the security/HTTP front-door: it validates origin,
16
- * method, content negotiation, and body size, then hands the parsed JSON-RPC body to the official
17
- * `@modelcontextprotocol/sdk` stateless transport ([ADR 0021]), which owns framing and version
18
- * negotiation. It is **stateless** — no `MCP-Session-Id` is issued. Server-initiated streaming (SSE)
19
- * is not offered, so `GET` returns `405`.
20
- */
9
+ /** Build the single-artifact raw-Node security front door. */
21
10
  export function createMcpHttpHandler(target, options = {}) {
22
11
  const endpoint = options.endpoint ?? DEFAULT_ENDPOINT;
23
12
  const maxBody = options.maxBodyBytes ?? DEFAULT_MAX_BODY;
@@ -50,17 +39,15 @@ export function createMcpHttpHandler(target, options = {}) {
50
39
  captureRequestEvent: options.captureRequestEvent,
51
40
  resolveInvocationContext: options.resolveInvocationContext,
52
41
  beforeToolDispatch: options.beforeToolDispatch,
42
+ protocolMode: options.protocolMode ?? 'dual',
43
+ requestState: options.requestState,
44
+ confirmationNonceLedger: options.confirmationNonceLedger,
53
45
  logger,
54
46
  trustProxy: tls.trustProxy ?? false,
55
47
  }, 'single', maxBody, options.allowedOrigins)).then(() => logRequest(logger, 'single', req, res, start));
56
48
  };
57
49
  }
58
- const SERVER_PATH = /^\/([^/]+)\/mcp$/;
59
- /**
60
- * Build a `node:http` request listener that serves **many** tenants over MCP Streamable HTTP, routing
61
- * by tenant paths. Each request reuses the same stateless pipeline as
62
- * {@link createMcpHttpHandler}; an unknown path or unknown server id returns `404`.
63
- */
50
+ /** Build the multi-tenant raw-Node security front door. */
64
51
  export function createMcpRouter(lookup, options = {}) {
65
52
  const maxBody = options.maxBodyBytes ?? DEFAULT_MAX_BODY;
66
53
  const logger = options.logger ?? noopLogger;
@@ -80,9 +67,6 @@ export function createMcpRouter(lookup, options = {}) {
80
67
  return;
81
68
  }
82
69
  const route = resolution.route;
83
- // The resolver is async (it may point-read the store + recompile on a cache miss — ADR 0036). A
84
- // resolved `undefined` (no such server) is a `404`; a resolver throw (store/compile error) falls
85
- // through to `guard`'s `500`. Authentication is still checked inside `serveRequest`, after resolution.
86
70
  void guard(res, (async () => {
87
71
  const target = route?.kind === 'tenant' && options.tenantLookup
88
72
  ? await options.tenantLookup(route.ref)
@@ -115,6 +99,9 @@ export function createMcpRouter(lookup, options = {}) {
115
99
  captureRequestEvent: options.captureRequestEvent,
116
100
  resolveInvocationContext: options.resolveInvocationContext,
117
101
  beforeToolDispatch: options.beforeToolDispatch,
102
+ protocolMode: options.protocolMode ?? 'dual',
103
+ requestState: options.requestState,
104
+ confirmationNonceLedger: options.confirmationNonceLedger,
118
105
  app: resolvedTarget.app ?? tenant?.app,
119
106
  environment: resolvedTarget.environment ?? tenant?.env,
120
107
  logger,
@@ -126,260 +113,4 @@ export function createMcpRouter(lookup, options = {}) {
126
113
  })()).then(() => logRequest(logger, route?.logId ?? '?', req, res, start));
127
114
  };
128
115
  }
129
- function resolveRoute(req, pathname, publicTenantRouting) {
130
- const forwardedHost = header(req, 'x-app-host');
131
- if (forwardedHost !== undefined) {
132
- if (publicTenantRouting === undefined ||
133
- !edgeTokenMatches(header(req, 'x-noodle-edge-token'), publicTenantRouting.edgeToken)) {
134
- return { ok: false, status: 403 };
135
- }
136
- const ref = parsePublicTenantMcpUrl(forwardedHost, publicTenantRouting.allowedBaseDomains);
137
- if (ref === undefined)
138
- return { ok: true, route: null };
139
- return {
140
- ok: true,
141
- route: {
142
- kind: 'tenant',
143
- ref,
144
- logId: tenantLogId(ref),
145
- publicResourceUrl: canonicalPublicResourceUrl(forwardedHost),
146
- },
147
- };
148
- }
149
- return { ok: true, route: parseRoute(pathname) };
150
- }
151
- function parseRoute(pathname) {
152
- const tenant = parseLegacyTenantMcpPath(pathname);
153
- if (tenant !== undefined) {
154
- return { kind: 'tenant', ref: tenant, logId: tenantLogId(tenant) };
155
- }
156
- const deployment = SERVER_PATH.exec(pathname);
157
- if (deployment) {
158
- const deploymentId = safeDecode(deployment[1]);
159
- if (deploymentId === null)
160
- return null;
161
- return { kind: 'deployment', deploymentId, logId: deploymentId };
162
- }
163
- return null;
164
- }
165
- function tenantLogId(ref) {
166
- return `${ref.org}/${ref.app}/${ref.env}${ref.serverVersion !== undefined ? `@${ref.serverVersion}` : ''}`;
167
- }
168
- /**
169
- * Emit one `mcp.request` lifecycle line. Only safe scalars (id, method, status, latency) — never the
170
- * Authorization header, bearer token, body, or JSON-RPC params.
171
- */
172
- function logRequest(logger, routeId, req, res, start) {
173
- logger.info('mcp.request', {
174
- serverId: routeId,
175
- method: req.method ?? 'UNKNOWN',
176
- status: res.statusCode,
177
- latencyMs: Date.now() - start,
178
- });
179
- }
180
- function safeDecode(value) {
181
- try {
182
- return decodeURIComponent(value);
183
- }
184
- catch {
185
- return null;
186
- }
187
- }
188
- function guard(res, fn) {
189
- return fn.catch(() => {
190
- if (!res.headersSent)
191
- sendJson(res, 500, rpcError(JSON_RPC.INTERNAL_ERROR, 'internal error'));
192
- });
193
- }
194
- /**
195
- * The shared, stateless front-door (origin → method → auth → content-type → accept → body) for one resolved
196
- * tenant. After the guards pass, the parsed JSON-RPC body is handed to the SDK transport, which writes
197
- * the full response (including `202` for a notification). Path matching is done by the caller.
198
- */
199
- async function serveRequest(req, res, target, auth, routeId, maxBody, allowed, tenant) {
200
- const startedAt = Date.now();
201
- const origin = header(req, 'origin');
202
- if (origin !== undefined && !originAllowed(origin, allowed)) {
203
- return sendJson(res, 403, rpcError(JSON_RPC.INVALID_REQUEST, 'origin not allowed'));
204
- }
205
- if (req.method !== 'POST') {
206
- // No server-initiated SSE stream this phase: GET/DELETE/other are not allowed.
207
- res.setHeader('Allow', 'POST');
208
- return sendJson(res, 405, rpcError(JSON_RPC.INVALID_REQUEST, 'method not allowed'));
209
- }
210
- // Identity auth gate, before reading the body so an unauthenticated caller never has its payload buffered
211
- // and the SDK transport is never constructed for it. A missing accessMode is reserved for loopback/local
212
- // dev targets and remains open.
213
- let protocolContext = {};
214
- let subject;
215
- if (isIdentityMode(auth.accessMode)) {
216
- const authResult = await authorizeIdentityMode(req, res, auth);
217
- if (!authResult.allow)
218
- return;
219
- if (authResult.caller !== undefined) {
220
- protocolContext = {
221
- caller: authResult.caller,
222
- ...(authResult.customerIssuer === undefined
223
- ? {}
224
- : { customerIssuer: authResult.customerIssuer }),
225
- ...(authResult.customerRouting === undefined
226
- ? {}
227
- : { customerRouting: authResult.customerRouting }),
228
- };
229
- subject = authResult.caller.subject;
230
- res.setHeader('Cache-Control', 'private, no-store');
231
- }
232
- else if (authResult.subject !== undefined) {
233
- subject = authResult.subject;
234
- }
235
- }
236
- else if (auth.accessMode === 'mixed') {
237
- const authResult = await authorizeMixedMode(req, res, auth);
238
- if (!authResult.allow)
239
- return;
240
- if (authResult.caller !== undefined) {
241
- protocolContext = {
242
- caller: authResult.caller,
243
- ...(authResult.customerIssuer === undefined
244
- ? {}
245
- : { customerIssuer: authResult.customerIssuer }),
246
- ...(authResult.customerRouting === undefined
247
- ? {}
248
- : { customerRouting: authResult.customerRouting }),
249
- };
250
- subject = authResult.caller.subject;
251
- res.setHeader('Cache-Control', 'private, no-store');
252
- }
253
- }
254
- // Content negotiation (Accept / Content-Type) is owned by the SDK transport ([ADR 0021]); it returns
255
- // `406`/`415` for non-compliant requests. The front-door only guards origin, method, and body size.
256
- const body = await readBody(req, maxBody);
257
- if (!body.ok)
258
- return sendJson(res, 413, rpcError(JSON_RPC.INVALID_REQUEST, 'request body too large'));
259
- let parsed;
260
- try {
261
- parsed = JSON.parse(body.text);
262
- }
263
- catch {
264
- return sendJson(res, 400, rpcError(JSON_RPC.PARSE_ERROR, 'invalid JSON'));
265
- }
266
- const contexts = admissionContexts(parsed, {
267
- routeId,
268
- ...(subject !== undefined ? { subject } : {}),
269
- ...(tenant !== undefined ? tenant : {}),
270
- ...(auth.deploymentId !== undefined ? { deploymentId: auth.deploymentId } : {}),
271
- ...(auth.accessMode !== undefined ? { accessMode: auth.accessMode } : {}),
272
- ...(req.socket.remoteAddress !== undefined ? { remoteAddress: req.socket.remoteAddress } : {}),
273
- });
274
- for (const context of contexts) {
275
- const decision = auth.admissionGate
276
- ? await auth.admissionGate(context)
277
- : { allow: true };
278
- auth.logger.info('mcp.admission', {
279
- routeId: context.routeId,
280
- method: context.method,
281
- category: context.category,
282
- ...(context.name !== undefined ? { name: context.name } : {}),
283
- ...(context.org !== undefined ? { org: context.org } : {}),
284
- ...(context.app !== undefined ? { app: context.app } : {}),
285
- ...(context.env !== undefined ? { env: context.env } : {}),
286
- ...(context.serverVersion !== undefined ? { serverVersion: context.serverVersion } : {}),
287
- ...(context.accessMode !== undefined ? { accessMode: context.accessMode } : {}),
288
- decision: decision.allow ? 'allow' : 'deny',
289
- ...(decision.reason !== undefined ? { reason: decision.reason } : {}),
290
- });
291
- if (!decision.allow) {
292
- if (decision.retryAfterSeconds !== undefined) {
293
- res.setHeader('Retry-After', String(decision.retryAfterSeconds));
294
- }
295
- return sendJson(res, decision.status ?? 403, admissionRpcError(context, decision));
296
- }
297
- }
298
- const authorization = preflightToolAuthorization(parsed, target, protocolContext.caller);
299
- for (const observation of authorization.observations) {
300
- auth.logger.info('mcp.tool_authorization', {
301
- toolName: observation.toolName,
302
- decision: observation.decision,
303
- reason: observation.reason,
304
- ruleClass: observation.ruleClass,
305
- ruleFingerprint: observation.ruleFingerprint,
306
- });
307
- }
308
- if (authorization.denial !== undefined) {
309
- sendToolAuthorizationDenial(req, res, auth, authorization.denial);
310
- return;
311
- }
312
- if (auth.resolveInvocationContext !== undefined && requestsInvocationContext(parsed)) {
313
- const invocationContext = await auth.resolveInvocationContext({
314
- target,
315
- ...(protocolContext.caller !== undefined ? { caller: protocolContext.caller } : {}),
316
- });
317
- if (invocationContext !== undefined) {
318
- protocolContext = { ...protocolContext, invocationContext };
319
- }
320
- }
321
- protocolContext = withHostedToolDispatch(req, protocolContext, auth);
322
- // The SDK stateless transport owns JSON-RPC framing, version negotiation, and the response (200 for a
323
- // request, 202 for a notification). We pass the already-read body so the body-size guard still applies.
324
- // The analytics observation hook is only attached when capture is configured, so the open loopback path
325
- // is untouched; the event is emitted after the response is written (zero response-path latency).
326
- let observed;
327
- if (auth.captureRequestEvent !== undefined) {
328
- protocolContext = {
329
- ...protocolContext,
330
- observe: (observation) => {
331
- observed = observation;
332
- },
333
- };
334
- }
335
- await handleStatelessHttp(target, req, res, parsed, protocolContext);
336
- emitRequestEvent({ req, res, target, auth, tenant, parsed, subject, observed, startedAt });
337
- }
338
- function originAllowed(origin, allowed) {
339
- if (allowed === undefined)
340
- return true;
341
- return typeof allowed === 'function' ? allowed(origin) : allowed.includes(origin);
342
- }
343
- async function readBody(req, max) {
344
- const chunks = [];
345
- let size = 0;
346
- for await (const chunk of req) {
347
- const buf = chunk;
348
- size += buf.length;
349
- if (size > max)
350
- return { ok: false };
351
- chunks.push(buf);
352
- }
353
- return { ok: true, text: Buffer.concat(chunks).toString('utf8') };
354
- }
355
- function sendJson(res, status, body) {
356
- res.writeHead(status, { 'content-type': 'application/json; charset=utf-8' });
357
- res.end(JSON.stringify(body));
358
- }
359
- /** A transport-level JSON-RPC error response with no id (per the Streamable HTTP spec). */
360
- function rpcError(code, message) {
361
- return { jsonrpc: '2.0', id: null, error: { code, message } };
362
- }
363
- function admissionRpcError(context, decision) {
364
- const code = decision.code ?? (decision.status === 429 ? -32002 : -32001);
365
- const message = code === -32002
366
- ? 'Quota exceeded'
367
- : code === -32003
368
- ? 'Rate limited'
369
- : 'Access denied by policy';
370
- const data = { reason: decision.reason };
371
- if (decision.policyId !== undefined)
372
- data.policyId = decision.policyId;
373
- if (decision.policyVersion !== undefined)
374
- data.policyVersion = decision.policyVersion;
375
- if (decision.retryAfterSeconds !== undefined)
376
- data.retryAfterSeconds = decision.retryAfterSeconds;
377
- if (decision.resetAt !== undefined)
378
- data.resetAt = decision.resetAt;
379
- return {
380
- jsonrpc: '2.0',
381
- id: context.requestId ?? null,
382
- error: { code, message, data },
383
- };
384
- }
385
116
  //# sourceMappingURL=handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export { applySecurityHeaders, effectiveProto, enforceHttps, type TlsPosture, } from './front-door.js';
2
- export { type AccessMode, type AdmissionCategory, type AdmissionContext, type AdmissionDecision, type AdmissionGate, createMcpHttpHandler, createMcpRouter, type DataPlaneAuthorizationResult, type DataPlaneIdentityAuthorizer, type HttpHandlerOptions, type InvocationContextResolutionInput, type InvocationContextResolver, type OriginPolicy, type OwnerTokenVerifier, type ServedTarget, type ServerLookup, type TenantRouteRef, } from './handler.js';
2
+ export { type AccessMode, type AdmissionCategory, type AdmissionContext, type AdmissionDecision, type AdmissionGate, createMcpHttpHandler, createMcpRouter, type DataPlaneAuthorizationResult, type DataPlaneIdentityAuthorizer, type HttpHandlerOptions, type InvocationContextResolutionInput, type InvocationContextResolver, type McpProtocolMode, type OriginPolicy, type OwnerTokenVerifier, type ServedTarget, type ServerLookup, type TenantRouteRef, } from './handler.js';
3
3
  export { createLogger, type LogFields, type Logger, type LoggerOptions, type LogLevel, type LogSink, noopLogger, stderrSink, stdoutSink, } from './logging.js';
4
4
  export { type RunningServer, type ServeOptions, serveHttp } from './serve.js';
5
5
  export type { HostedToolDispatchContext, HostedToolDispatchHook, } from './tool-dispatch.js';
6
+ export { toWebRequest, writeWebResponse } from './web-bridge.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,oBAAoB,EACpB,eAAe,EACf,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EACV,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,oBAAoB,EACpB,eAAe,EACf,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EACV,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -2,4 +2,5 @@ export { applySecurityHeaders, effectiveProto, enforceHttps, } from './front-doo
2
2
  export { createMcpHttpHandler, createMcpRouter, } from './handler.js';
3
3
  export { createLogger, noopLogger, stderrSink, stdoutSink, } from './logging.js';
4
4
  export { serveHttp } from './serve.js';
5
+ export { toWebRequest, writeWebResponse } from './web-bridge.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,YAAY,GAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,oBAAoB,EACpB,eAAe,GAWhB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EAMZ,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAyC,SAAS,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,YAAY,GAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,oBAAoB,EACpB,eAAe,GAYhB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EAMZ,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAyC,SAAS,EAAE,MAAM,YAAY,CAAC;AAK9E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-capture.d.ts","sourceRoot":"","sources":["../src/request-capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEjF;;;;GAIG;AAEH,oGAAoG;AACpG,UAAU,WAAW;IACnB,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,sFAAsF;AACtF,UAAU,aAAa;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAYD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GAAG,IAAI,CA+CP;AA0BD,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIhD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQhF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,CAMzF;AAED,2DAA2D;AAC3D,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7E"}
1
+ {"version":3,"file":"request-capture.d.ts","sourceRoot":"","sources":["../src/request-capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEjF;;;;GAIG;AAEH,oGAAoG;AACpG,UAAU,WAAW;IACnB,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,sFAAsF;AACtF,UAAU,aAAa;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAaD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GAAG,IAAI,CA2DP;AAmDD,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIhD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQhF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,CAMzF;AAED,2DAA2D;AAC3D,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7E"}
@@ -1,6 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  /** JSON-RPC methods that are protocol discovery/chatter, excluded from usage metrics (ADR 0121). */
3
3
  const DISCOVERY_METHODS = new Set([
4
+ 'server/discover',
4
5
  'tools/list',
5
6
  'resources/list',
6
7
  'resources/templates/list',
@@ -25,8 +26,10 @@ export function emitRequestEvent(input) {
25
26
  const first = Array.isArray(parsed) ? parsed[0] : parsed;
26
27
  const method = observed?.method ?? rpcMethod(first);
27
28
  const init = method === 'initialize' ? initializeInfo(first) : undefined;
28
- const sessionId = header(req, 'mcp-session-id');
29
- const sdkProtocolVersion = header(req, 'mcp-protocol-version') ?? init?.protocolVersion;
29
+ const modern = modernRequestInfo(first);
30
+ const protocolEra = modern === undefined ? 'legacy' : 'modern';
31
+ const sessionId = modern === undefined ? header(req, 'mcp-session-id') : undefined;
32
+ const sdkProtocolVersion = modern?.protocolVersion ?? header(req, 'mcp-protocol-version') ?? init?.protocolVersion;
30
33
  const failed = res.statusCode >= 400;
31
34
  const toolName = observed?.toolName ?? (method === 'tools/call' ? rpcTargetName(first, method) : undefined);
32
35
  const errorKind = observed?.errorKind ?? (failed ? `http_${res.statusCode}` : undefined);
@@ -36,11 +39,20 @@ export function emitRequestEvent(input) {
36
39
  ...(auth.deploymentId !== undefined ? { deploymentId: auth.deploymentId } : {}),
37
40
  serverVersion: target.artifact.server.version,
38
41
  ...(sdkProtocolVersion !== undefined ? { sdkProtocolVersion } : {}),
42
+ protocolEra,
39
43
  requestId: randomUUID(),
40
44
  ...(sessionId !== undefined ? { sessionId } : {}),
41
45
  sessionSource: sessionId !== undefined ? 'mcp' : 'none',
42
- ...(init?.clientName !== undefined ? { clientName: init.clientName } : {}),
43
- ...(init?.clientVersion !== undefined ? { clientVersion: init.clientVersion } : {}),
46
+ ...(modern?.clientName !== undefined
47
+ ? { clientName: modern.clientName }
48
+ : init?.clientName !== undefined
49
+ ? { clientName: init.clientName }
50
+ : {}),
51
+ ...(modern?.clientVersion !== undefined
52
+ ? { clientVersion: modern.clientVersion }
53
+ : init?.clientVersion !== undefined
54
+ ? { clientVersion: init.clientVersion }
55
+ : {}),
44
56
  ...(auth.accessMode !== undefined ? { accessMode: auth.accessMode } : {}),
45
57
  subjectKind: subject !== undefined ? 'authenticated' : 'anonymous',
46
58
  method,
@@ -62,6 +74,25 @@ export function emitRequestEvent(input) {
62
74
  // Analytics is strictly best-effort; a capture bug must never surface to the caller.
63
75
  }
64
76
  }
77
+ function modernRequestInfo(value) {
78
+ if (!isRecord(value) || !isRecord(value.params) || !isRecord(value.params._meta)) {
79
+ return undefined;
80
+ }
81
+ const meta = value.params._meta;
82
+ const protocolVersion = meta['io.modelcontextprotocol/protocolVersion'];
83
+ if (typeof protocolVersion !== 'string')
84
+ return undefined;
85
+ const clientInfo = meta['io.modelcontextprotocol/clientInfo'];
86
+ return {
87
+ protocolVersion,
88
+ ...(isRecord(clientInfo) && typeof clientInfo.name === 'string'
89
+ ? { clientName: clientInfo.name }
90
+ : {}),
91
+ ...(isRecord(clientInfo) && typeof clientInfo.version === 'string'
92
+ ? { clientVersion: clientInfo.version }
93
+ : {}),
94
+ };
95
+ }
65
96
  /** Safely pull `clientInfo` + `protocolVersion` out of an `initialize` request's params. */
66
97
  function initializeInfo(value) {
67
98
  if (typeof value !== 'object' || value === null)
@@ -113,4 +144,7 @@ export function header(req, name) {
113
144
  const value = req.headers[name];
114
145
  return Array.isArray(value) ? value[0] : value;
115
146
  }
147
+ function isRecord(value) {
148
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
149
+ }
116
150
  //# sourceMappingURL=request-capture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-capture.js","sourceRoot":"","sources":["../src/request-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-capture.js","sourceRoot":"","sources":["../src/request-capture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { AdmissionContext, AdmissionGate } from '@noodle-borg/module';
3
+ import type { Logger } from './logging.js';
4
+ /** Emit one `mcp.request` lifecycle line with safe scalar fields only. */
5
+ export declare function logRequest(logger: Logger, routeId: string, req: IncomingMessage, res: ServerResponse, start: number): void;
6
+ export declare function guard(res: ServerResponse, fn: Promise<void>): Promise<void>;
7
+ export declare function sendJson(res: ServerResponse, status: number, body: unknown): void;
8
+ /** A transport-level JSON-RPC error response with no id (per the Streamable HTTP spec). */
9
+ export declare function rpcError(code: number, message: string): {
10
+ jsonrpc: '2.0';
11
+ id: null;
12
+ error: {
13
+ code: number;
14
+ message: string;
15
+ };
16
+ };
17
+ export declare function admissionRpcError(context: AdmissionContext, decision: Exclude<Awaited<ReturnType<AdmissionGate>>, {
18
+ allow: true;
19
+ }>): {
20
+ jsonrpc: '2.0';
21
+ id: string | number | null;
22
+ error: {
23
+ code: number;
24
+ message: string;
25
+ data: Record<string, string | number>;
26
+ };
27
+ };
28
+ //# sourceMappingURL=responses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,0EAA0E;AAC1E,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,GACZ,IAAI,CAON;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAGjF;AAED,2FAA2F;AAC3F,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAExE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAC,GACrE;IACD,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;KAAE,CAAC;CACjF,CAsBA"}
@@ -0,0 +1,50 @@
1
+ import { JSON_RPC, LEGACY_MCP_ERROR } from '@noodle-borg/protocol';
2
+ /** Emit one `mcp.request` lifecycle line with safe scalar fields only. */
3
+ export function logRequest(logger, routeId, req, res, start) {
4
+ logger.info('mcp.request', {
5
+ serverId: routeId,
6
+ method: req.method ?? 'UNKNOWN',
7
+ status: res.statusCode,
8
+ latencyMs: Date.now() - start,
9
+ });
10
+ }
11
+ export function guard(res, fn) {
12
+ return fn.catch(() => {
13
+ if (!res.headersSent)
14
+ sendJson(res, 500, rpcError(JSON_RPC.INTERNAL_ERROR, 'internal error'));
15
+ });
16
+ }
17
+ export function sendJson(res, status, body) {
18
+ res.writeHead(status, { 'content-type': 'application/json; charset=utf-8' });
19
+ res.end(JSON.stringify(body));
20
+ }
21
+ /** A transport-level JSON-RPC error response with no id (per the Streamable HTTP spec). */
22
+ export function rpcError(code, message) {
23
+ return { jsonrpc: '2.0', id: null, error: { code, message } };
24
+ }
25
+ export function admissionRpcError(context, decision) {
26
+ const code = decision.code ??
27
+ (decision.status === 429
28
+ ? LEGACY_MCP_ERROR.ADMISSION_QUOTA_EXCEEDED
29
+ : LEGACY_MCP_ERROR.ADMISSION_DENIED);
30
+ const message = code === LEGACY_MCP_ERROR.ADMISSION_QUOTA_EXCEEDED
31
+ ? 'Quota exceeded'
32
+ : code === LEGACY_MCP_ERROR.ADMISSION_RATE_LIMITED
33
+ ? 'Rate limited'
34
+ : 'Access denied by policy';
35
+ const data = { reason: decision.reason };
36
+ if (decision.policyId !== undefined)
37
+ data.policyId = decision.policyId;
38
+ if (decision.policyVersion !== undefined)
39
+ data.policyVersion = decision.policyVersion;
40
+ if (decision.retryAfterSeconds !== undefined)
41
+ data.retryAfterSeconds = decision.retryAfterSeconds;
42
+ if (decision.resetAt !== undefined)
43
+ data.resetAt = decision.resetAt;
44
+ return {
45
+ jsonrpc: '2.0',
46
+ id: context.requestId ?? null,
47
+ error: { code, message, data },
48
+ };
49
+ }
50
+ //# sourceMappingURL=responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGnE,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,OAAe,EACf,GAAoB,EACpB,GAAmB,EACnB,KAAa;IAEb,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;QACzB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;QAC/B,MAAM,EAAE,GAAG,CAAC,UAAU;QACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAmB,EAAE,EAAiB;IAC1D,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa;IACzE,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC;IAC7E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,OAAe;IAEf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAyB,EACzB,QAAsE;IAMtE,MAAM,IAAI,GACR,QAAQ,CAAC,IAAI;QACb,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG;YACtB,CAAC,CAAC,gBAAgB,CAAC,wBAAwB;YAC3C,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACzC,MAAM,OAAO,GACX,IAAI,KAAK,gBAAgB,CAAC,wBAAwB;QAChD,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,sBAAsB;YAChD,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,yBAAyB,CAAC;IAClC,MAAM,IAAI,GAAoC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC1E,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACvE,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtF,IAAI,QAAQ,CAAC,iBAAiB,KAAK,SAAS;QAAE,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAClG,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAC/B,CAAC;AACJ,CAAC"}