@noodleseed/one 0.95.2 → 0.96.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 (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
@@ -0,0 +1,27 @@
1
+ /** Two-tier request outcome (ADR 0121): recoverable tool error vs protocol/MCP error. */
2
+ export type ObservedOutcome = 'ok' | 'tool_error' | 'mcp_error';
3
+ /**
4
+ * One analytics observation per executed tool/resource/prompt request, reported to the transport's
5
+ * capture hook. The protocol layer owns the two-tier outcome split (it sees the `isError` channel and
6
+ * the execution-error codes); the transport composes tenant identity and timing around it.
7
+ */
8
+ export interface ProtocolObservation {
9
+ readonly method: string;
10
+ readonly toolName?: string;
11
+ readonly resourceName?: string;
12
+ readonly promptName?: string;
13
+ readonly outcome: ObservedOutcome;
14
+ readonly errorKind?: string;
15
+ /** Rough token-equivalent of the response payload (chars/4), the context-bloat gauge. */
16
+ readonly outputTokensEst?: number;
17
+ }
18
+ interface ObservationContext {
19
+ readonly observe?: (observation: ProtocolObservation) => void;
20
+ }
21
+ /** Report an observation; an observer bug must never break the request it watched. */
22
+ export declare function notify(context: ObservationContext, observation: ProtocolObservation): void;
23
+ /** Rough content-level token estimate (JSON chars / 4), computed on the raw execution output so
24
+ * the response path serializes it once — wire framing/duplication is deliberately excluded. */
25
+ export declare function estimateTokens(value: unknown): number;
26
+ export {};
27
+ //# sourceMappingURL=observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../src/observation.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,YAAY,GAAG,WAAW,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC/D;AAED,sFAAsF;AACtF,wBAAgB,MAAM,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAM1F;AAED;+FAC+F;AAC/F,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMrD"}
@@ -0,0 +1,20 @@
1
+ /** Report an observation; an observer bug must never break the request it watched. */
2
+ export function notify(context, observation) {
3
+ try {
4
+ context.observe?.(observation);
5
+ }
6
+ catch {
7
+ // Analytics is strictly best-effort.
8
+ }
9
+ }
10
+ /** Rough content-level token estimate (JSON chars / 4), computed on the raw execution output so
11
+ * the response path serializes it once — wire framing/duplication is deliberately excluded. */
12
+ export function estimateTokens(value) {
13
+ try {
14
+ return Math.ceil(JSON.stringify(value).length / 4);
15
+ }
16
+ catch {
17
+ return 0;
18
+ }
19
+ }
20
+ //# sourceMappingURL=observation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation.js","sourceRoot":"","sources":["../src/observation.ts"],"names":[],"mappings":"AAuBA,sFAAsF;AACtF,MAAM,UAAU,MAAM,CAAC,OAA2B,EAAE,WAAgC;IAClF,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;AACH,CAAC;AAED;+FAC+F;AAC/F,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { RuntimeArtifact } from '@noodle-borg/compiler';
2
+ import { type ExecuteDeps } from '@noodle-borg/runtime';
3
+ import type { ProtocolRequestContext } from './sdk-server.js';
4
+ /** Resolve the version-neutral execution dependencies for one protocol request. */
5
+ export declare function buildProtocolRequestDeps(artifact: RuntimeArtifact, deps: ExecuteDeps, context: ProtocolRequestContext): ExecuteDeps;
6
+ //# sourceMappingURL=request-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-deps.d.ts","sourceRoot":"","sources":["../src/request-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,mFAAmF;AACnF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,sBAAsB,GAC9B,WAAW,CAYb"}
@@ -0,0 +1,16 @@
1
+ import { freezeCustomerRoutes } from '@noodle-borg/runtime';
2
+ /** Resolve the version-neutral execution dependencies for one protocol request. */
3
+ export function buildProtocolRequestDeps(artifact, deps, context) {
4
+ return {
5
+ ...deps,
6
+ ...(context.caller !== undefined ? { caller: context.caller } : {}),
7
+ ...(context.customerIssuer !== undefined ? { customerIssuer: context.customerIssuer } : {}),
8
+ ...(artifact.customerEndpoints === undefined
9
+ ? {}
10
+ : {
11
+ customerRoutes: freezeCustomerRoutes(artifact.customerEndpoints, context.customerRouting),
12
+ }),
13
+ ...(context.invocationContext !== undefined ? { context: context.invocationContext } : {}),
14
+ };
15
+ }
16
+ //# sourceMappingURL=request-deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-deps.js","sourceRoot":"","sources":["../src/request-deps.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG9E,mFAAmF;AACnF,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,IAAiB,EACjB,OAA+B;IAE/B,OAAO;QACL,GAAG,IAAI;QACP,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,GAAG,CAAC,QAAQ,CAAC,iBAAiB,KAAK,SAAS;YAC1C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,cAAc,EAAE,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC;aAC1F,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { type ElicitationResponse, SecretBox } from '@noodle-borg/runtime';
2
+ export type RequestStateMethod = 'tools/call' | 'resources/read' | 'prompts/get';
3
+ export interface RequestStateBinding {
4
+ readonly deploymentId: string;
5
+ readonly serverVersion: string;
6
+ readonly method: RequestStateMethod;
7
+ readonly target: string;
8
+ readonly principal: string;
9
+ readonly argumentDigest: string;
10
+ }
11
+ export interface SealedRequestState {
12
+ readonly responses: Readonly<Record<string, ElicitationResponse>>;
13
+ readonly round: number;
14
+ readonly expiresAt: number;
15
+ readonly nonce: string;
16
+ readonly binding: RequestStateBinding;
17
+ readonly pendingRequest: {
18
+ readonly id: string;
19
+ readonly interaction: 'input' | 'confirmation';
20
+ };
21
+ readonly confirmation?: true;
22
+ }
23
+ export interface SealRequestStateInput extends SealedRequestState {
24
+ }
25
+ export interface RequestStateManagerOptions {
26
+ readonly now?: () => number;
27
+ readonly maxRounds?: number;
28
+ readonly maxTokenBytes?: number;
29
+ }
30
+ export interface ConfirmationNonceLedger {
31
+ /** Atomically consume one nonce until its expiry. Returns false for a replay. */
32
+ consume(nonce: string, expiresAt: number): Promise<boolean>;
33
+ }
34
+ /** Opaque failure used for every malformed, expired, tampered, or mis-bound state. */
35
+ export declare class RequestStateError extends Error {
36
+ constructor();
37
+ }
38
+ /** Derive a domain-separated static SecretBox from the existing 32-byte operator master key. */
39
+ export declare function requestStateSecretBox(masterKey: Buffer): SecretBox;
40
+ /** Seal and verify bounded, confidential MRTR state using the runtime's AES-256-GCM primitive. */
41
+ export declare class RequestStateManager {
42
+ #private;
43
+ constructor(secretBox: SecretBox, options?: RequestStateManagerOptions);
44
+ seal(input: SealRequestStateInput): Promise<string>;
45
+ open(token: string, expectedBinding?: RequestStateBinding): Promise<SealedRequestState>;
46
+ }
47
+ /** Stable SHA-256 binding over JSON arguments with the legacy-only adapter envelope removed. */
48
+ export declare function digestMcpArguments(argumentsValue: unknown): string;
49
+ export declare function assertRequestStateBinding(state: Pick<SealedRequestState, 'binding'>, expected: RequestStateBinding): void;
50
+ //# sourceMappingURL=request-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-state.d.ts","sourceRoot":"","sources":["../src/request-state.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAExB,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAO9B,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEjF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,cAAc,CAAC;KAChD,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;CAAG;AAEpE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D;AAED,sFAAsF;AACtF,qBAAa,iBAAkB,SAAQ,KAAK;;CAK3C;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAQlE;AAED,kGAAkG;AAClG,qBAAa,mBAAmB;;gBAMlB,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,0BAA+B;IAapE,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAenD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAyB9F;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,CAQlE;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAC1C,QAAQ,EAAE,mBAAmB,GAC5B,IAAI,CAEN"}
@@ -0,0 +1,195 @@
1
+ import { createHash, hkdfSync } from 'node:crypto';
2
+ import { SecretBox, staticMasterKeyProvider, } from '@noodle-borg/runtime';
3
+ const REQUEST_STATE_KEY_LABEL = 'noodle-seed/mcp-request-state/v1';
4
+ const DEFAULT_MAX_ROUNDS = 8;
5
+ const DEFAULT_MAX_TOKEN_BYTES = 16_384;
6
+ const LEGACY_INTERACTION_ARGUMENT = '__noodleInteraction';
7
+ /** Opaque failure used for every malformed, expired, tampered, or mis-bound state. */
8
+ export class RequestStateError extends Error {
9
+ constructor() {
10
+ super('Invalid or expired requestState');
11
+ this.name = 'RequestStateError';
12
+ }
13
+ }
14
+ /** Derive a domain-separated static SecretBox from the existing 32-byte operator master key. */
15
+ export function requestStateSecretBox(masterKey) {
16
+ if (masterKey.length !== 32)
17
+ throw new Error('request-state master key must be exactly 32 bytes');
18
+ const derived = Buffer.from(hkdfSync('sha256', masterKey, Buffer.alloc(0), REQUEST_STATE_KEY_LABEL, 32));
19
+ return new SecretBox(staticMasterKeyProvider(derived.toString('base64'), 'mcp-request-state-hkdf-v1'));
20
+ }
21
+ /** Seal and verify bounded, confidential MRTR state using the runtime's AES-256-GCM primitive. */
22
+ export class RequestStateManager {
23
+ #secretBox;
24
+ #now;
25
+ #maxRounds;
26
+ #maxTokenBytes;
27
+ constructor(secretBox, options = {}) {
28
+ this.#secretBox = secretBox;
29
+ this.#now = options.now ?? Date.now;
30
+ this.#maxRounds = options.maxRounds ?? DEFAULT_MAX_ROUNDS;
31
+ this.#maxTokenBytes = options.maxTokenBytes ?? DEFAULT_MAX_TOKEN_BYTES;
32
+ if (!Number.isSafeInteger(this.#maxRounds) || this.#maxRounds < 1) {
33
+ throw new RangeError('maxRounds must be a positive safe integer');
34
+ }
35
+ if (!Number.isSafeInteger(this.#maxTokenBytes) || this.#maxTokenBytes < 256) {
36
+ throw new RangeError('maxTokenBytes must be a safe integer of at least 256');
37
+ }
38
+ }
39
+ async seal(input) {
40
+ try {
41
+ assertPayload(input, this.#maxRounds, this.#now(), false);
42
+ const plaintext = JSON.stringify({ v: 1, ...input });
43
+ if (Buffer.byteLength(plaintext) > this.#maxTokenBytes)
44
+ throw new RequestStateError();
45
+ const sealed = await this.#secretBox.seal(plaintext);
46
+ const token = Buffer.from(JSON.stringify(sealed), 'utf8').toString('base64url');
47
+ if (Buffer.byteLength(token) > this.#maxTokenBytes)
48
+ throw new RequestStateError();
49
+ return token;
50
+ }
51
+ catch (error) {
52
+ if (error instanceof RequestStateError)
53
+ throw error;
54
+ throw new RequestStateError();
55
+ }
56
+ }
57
+ async open(token, expectedBinding) {
58
+ try {
59
+ if (token.length === 0 ||
60
+ Buffer.byteLength(token) > this.#maxTokenBytes ||
61
+ !/^[A-Za-z0-9_-]+$/.test(token)) {
62
+ throw new RequestStateError();
63
+ }
64
+ const decoded = Buffer.from(token, 'base64url').toString('utf8');
65
+ const envelope = JSON.parse(decoded);
66
+ if (!isSealedSecret(envelope))
67
+ throw new RequestStateError();
68
+ const plaintext = await this.#secretBox.open(envelope);
69
+ if (Buffer.byteLength(plaintext) > this.#maxTokenBytes)
70
+ throw new RequestStateError();
71
+ const parsed = JSON.parse(plaintext);
72
+ if (!isRecord(parsed) || parsed.v !== 1)
73
+ throw new RequestStateError();
74
+ const payload = withoutVersion(parsed);
75
+ assertPayload(payload, this.#maxRounds, this.#now(), true);
76
+ if (expectedBinding !== undefined)
77
+ assertBinding(payload.binding, expectedBinding);
78
+ return payload;
79
+ }
80
+ catch (error) {
81
+ if (error instanceof RequestStateError)
82
+ throw error;
83
+ throw new RequestStateError();
84
+ }
85
+ }
86
+ }
87
+ /** Stable SHA-256 binding over JSON arguments with the legacy-only adapter envelope removed. */
88
+ export function digestMcpArguments(argumentsValue) {
89
+ const value = isRecord(argumentsValue) && Object.hasOwn(argumentsValue, LEGACY_INTERACTION_ARGUMENT)
90
+ ? Object.fromEntries(Object.entries(argumentsValue).filter(([key]) => key !== LEGACY_INTERACTION_ARGUMENT))
91
+ : argumentsValue;
92
+ return createHash('sha256').update(canonicalJson(value)).digest('base64url');
93
+ }
94
+ export function assertRequestStateBinding(state, expected) {
95
+ assertBinding(state.binding, expected);
96
+ }
97
+ function canonicalJson(value) {
98
+ if (value === null || typeof value === 'string' || typeof value === 'boolean') {
99
+ return JSON.stringify(value);
100
+ }
101
+ if (typeof value === 'number') {
102
+ if (!Number.isFinite(value))
103
+ throw new RequestStateError();
104
+ return JSON.stringify(value);
105
+ }
106
+ if (Array.isArray(value))
107
+ return `[${value.map(canonicalJson).join(',')}]`;
108
+ if (isRecord(value)) {
109
+ const entries = Object.entries(value)
110
+ .filter(([, child]) => child !== undefined)
111
+ .sort(([left], [right]) => left.localeCompare(right));
112
+ return `{${entries
113
+ .map(([key, child]) => `${JSON.stringify(key)}:${canonicalJson(child)}`)
114
+ .join(',')}}`;
115
+ }
116
+ if (value === undefined)
117
+ return 'null';
118
+ throw new RequestStateError();
119
+ }
120
+ function assertPayload(value, maxRounds, now, requireUnexpired) {
121
+ if (!isRecord(value) ||
122
+ !isResponseMap(value.responses) ||
123
+ !Number.isSafeInteger(value.round) ||
124
+ value.round < 1 ||
125
+ value.round > maxRounds ||
126
+ !Number.isSafeInteger(value.expiresAt) ||
127
+ (requireUnexpired && value.expiresAt <= now) ||
128
+ typeof value.nonce !== 'string' ||
129
+ value.nonce.length < 1 ||
130
+ value.nonce.length > 256 ||
131
+ !isBinding(value.binding) ||
132
+ !isPendingRequest(value.pendingRequest) ||
133
+ (value.confirmation !== undefined && value.confirmation !== true) ||
134
+ (value.pendingRequest.interaction === 'confirmation') !== (value.confirmation === true)) {
135
+ throw new RequestStateError();
136
+ }
137
+ }
138
+ function assertBinding(actual, expected) {
139
+ for (const key of [
140
+ 'deploymentId',
141
+ 'serverVersion',
142
+ 'method',
143
+ 'target',
144
+ 'principal',
145
+ 'argumentDigest',
146
+ ]) {
147
+ if (actual[key] !== expected[key])
148
+ throw new RequestStateError();
149
+ }
150
+ }
151
+ function isBinding(value) {
152
+ return (isRecord(value) &&
153
+ typeof value.deploymentId === 'string' &&
154
+ typeof value.serverVersion === 'string' &&
155
+ (value.method === 'tools/call' ||
156
+ value.method === 'resources/read' ||
157
+ value.method === 'prompts/get') &&
158
+ typeof value.target === 'string' &&
159
+ typeof value.principal === 'string' &&
160
+ typeof value.argumentDigest === 'string');
161
+ }
162
+ function isResponseMap(value) {
163
+ return (isRecord(value) &&
164
+ Object.values(value).every((response) => isRecord(response) &&
165
+ (response.action === 'accept' ||
166
+ response.action === 'decline' ||
167
+ response.action === 'cancel')));
168
+ }
169
+ function isPendingRequest(value) {
170
+ return (isRecord(value) &&
171
+ typeof value.id === 'string' &&
172
+ value.id.length > 0 &&
173
+ value.id.length <= 256 &&
174
+ (value.interaction === 'input' || value.interaction === 'confirmation'));
175
+ }
176
+ function isSealedSecret(value) {
177
+ if (!isRecord(value) ||
178
+ (value.v !== 1 && value.v !== 2) ||
179
+ value.algo !== 'AES-256-GCM' ||
180
+ typeof value.keyId !== 'string' ||
181
+ typeof value.iv !== 'string' ||
182
+ typeof value.tag !== 'string' ||
183
+ typeof value.ct !== 'string') {
184
+ return false;
185
+ }
186
+ return value.v === 1 || typeof value.wrappedDek === 'string';
187
+ }
188
+ function withoutVersion(value) {
189
+ const { v: _version, ...payload } = value;
190
+ return payload;
191
+ }
192
+ function isRecord(value) {
193
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
194
+ }
195
+ //# sourceMappingURL=request-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-state.js","sourceRoot":"","sources":["../src/request-state.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { type RequestId, type RequestMeta } from '@modelcontextprotocol/sdk/types.js';
3
- import { type RuntimeArtifact } from '@noodle-borg/compiler';
4
- import { type CallerIdentity, type ExecuteDeps, type InvocationContext, type ToolDispatchDecision } from '@noodle-borg/runtime';
2
+ import type { RequestId, RequestMeta } from '@modelcontextprotocol/sdk/types.js';
3
+ import type { RuntimeArtifact } from '@noodle-borg/compiler';
4
+ import type { CallerIdentity, ExecuteDeps, InvocationContext, ToolDispatchDecision } from '@noodle-borg/runtime';
5
+ import type { ProtocolObservation } from './observation.js';
6
+ import type { ConfirmationNonceLedger, RequestStateManager } from './request-state.js';
5
7
  /**
6
8
  * A resolved artifact plus the execution dependencies (connector registry + credential broker) needed
7
9
  * to serve it. This is the unit the transport routes to — the wire layer holds no state of its own; a
@@ -11,23 +13,6 @@ export interface ServedArtifact {
11
13
  readonly artifact: RuntimeArtifact;
12
14
  readonly deps: ExecuteDeps;
13
15
  }
14
- /** Two-tier request outcome (ADR 0121): recoverable tool error vs protocol/MCP error. */
15
- export type ObservedOutcome = 'ok' | 'tool_error' | 'mcp_error';
16
- /**
17
- * One analytics observation per executed tool/resource/prompt request, reported to the transport's
18
- * capture hook. The protocol layer owns the two-tier outcome split (it sees the `isError` channel and
19
- * the execution-error codes); the transport composes tenant identity and timing around it.
20
- */
21
- export interface ProtocolObservation {
22
- readonly method: string;
23
- readonly toolName?: string;
24
- readonly resourceName?: string;
25
- readonly promptName?: string;
26
- readonly outcome: ObservedOutcome;
27
- readonly errorKind?: string;
28
- /** Rough token-equivalent of the response payload (chars/4), the context-bloat gauge. */
29
- readonly outputTokensEst?: number;
30
- }
31
16
  export interface ProtocolRequestContext {
32
17
  readonly caller?: CallerIdentity;
33
18
  /** Private verified customer IdP issuer; never copied into caller-facing hooks or output. */
@@ -36,6 +21,12 @@ export interface ProtocolRequestContext {
36
21
  readonly customerRouting?: Readonly<Record<string, string>>;
37
22
  /** One request-scoped snapshot resolved by the hosting plane before protocol execution. */
38
23
  readonly invocationContext?: InvocationContext;
24
+ /** Stable hosted deployment binding for modern sealed request state. */
25
+ readonly deploymentId?: string;
26
+ /** Shared AEAD request-state manager; hosted serving injects the operator-key-derived instance. */
27
+ readonly requestState?: RequestStateManager;
28
+ /** Durable atomic single-use storage required only for confirmation rounds. */
29
+ readonly confirmationNonceLedger?: ConfirmationNonceLedger;
39
30
  /**
40
31
  * Whether this transport can carry a server request and route the client's later response back to
41
32
  * the pending call. Stateless JSON-response HTTP explicitly sets this to `unavailable`; linked or
@@ -55,6 +46,10 @@ export interface ProtocolToolDispatchContext {
55
46
  /** SDK-owned request cancellation signal; never derived from client payload fields. */
56
47
  readonly signal: AbortSignal;
57
48
  readonly sessionId?: string;
49
+ /** Verified sealed-state nonce shared by every round of one modern invocation. */
50
+ readonly invocationId?: string;
51
+ /** Verified sealed-state round, recorded as observation metadata but excluded from usage identity hashes. */
52
+ readonly invocationRound?: number;
58
53
  readonly requestMeta?: RequestMeta;
59
54
  }
60
55
  export type ProtocolToolDispatchHook = (context: ProtocolToolDispatchContext) => ToolDispatchDecision | Promise<ToolDispatchDecision>;
@@ -62,9 +57,7 @@ export type ProtocolToolDispatchHook = (context: ProtocolToolDispatchContext) =>
62
57
  * Build an official `@modelcontextprotocol/sdk` {@link Server} bound to a resolved artifact. The SDK
63
58
  * owns the wire (JSON-RPC framing, capability negotiation, protocol-version handling); this function is
64
59
  * the thin gateway that registers handlers translating each MCP method to the version-agnostic
65
- * execution plane via our {@link mapping} helpers ([ADR 0006] amended, [ADR 0021]). The execution core
66
- * never sees a JSON-RPC frame. Resource and prompt surfaces are registered (and advertised) only when
67
- * the artifact provides them.
60
+ * execution plane via our mapping helpers. The execution core never sees a JSON-RPC frame.
68
61
  */
69
62
  export declare function buildMcpServer({ artifact, deps }: ServedArtifact, context?: ProtocolRequestContext): Server;
70
63
  //# sourceMappingURL=sdk-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-server.d.ts","sourceRoot":"","sources":["../src/sdk-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAYL,KAAK,SAAS,EACd,KAAK,WAAW,EAMjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,WAAW,EAKhB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAC;AAyB9B;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,yFAAyF;AACzF,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,YAAY,GAAG,WAAW,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,6FAA6F;IAC7F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,oGAAoG;IACpG,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,2FAA2F;IAC3F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;IACpE,yGAAyG;IACzG,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC/D;AAED,qGAAqG;AACrG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,2BAA2B,KACjC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAqB1D;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAClC,OAAO,GAAE,sBAA2B,GACnC,MAAM,CAoCR"}
1
+ {"version":3,"file":"sdk-server.d.ts","sourceRoot":"","sources":["../src/sdk-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,6FAA6F;IAC7F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,oGAAoG;IACpG,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,2FAA2F;IAC3F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,wEAAwE;IACxE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,mGAAmG;IACnG,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;IACpE,yGAAyG;IACzG,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC/D;AAED,qGAAqG;AACrG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6GAA6G;IAC7G,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,2BAA2B,KACjC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAClC,OAAO,GAAE,sBAA2B,GACnC,MAAM,CA0BR"}