@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
@@ -0,0 +1,217 @@
1
+ const require_chunk = require('./chunk-Bnu9O96Y.cjs');
2
+ const require_src = require('./src-NAgB4Mp8.cjs');
3
+ let node_process = require("node:process");
4
+ node_process = require_chunk.__toESM(node_process);
5
+ let node_stream = require("node:stream");
6
+ let cross_spawn = require("cross-spawn");
7
+ cross_spawn = require_chunk.__toESM(cross_spawn);
8
+
9
+ //#region src/client/stdio.ts
10
+ /**
11
+ * Environment variables to inherit by default, if an environment is not explicitly given.
12
+ */
13
+ const DEFAULT_INHERITED_ENV_VARS = node_process.default.platform === "win32" ? [
14
+ "APPDATA",
15
+ "HOMEDRIVE",
16
+ "HOMEPATH",
17
+ "LOCALAPPDATA",
18
+ "PATH",
19
+ "PROCESSOR_ARCHITECTURE",
20
+ "SYSTEMDRIVE",
21
+ "SYSTEMROOT",
22
+ "TEMP",
23
+ "USERNAME",
24
+ "USERPROFILE",
25
+ "PROGRAMFILES"
26
+ ] : [
27
+ "HOME",
28
+ "LOGNAME",
29
+ "PATH",
30
+ "SHELL",
31
+ "TERM",
32
+ "USER"
33
+ ];
34
+ /**
35
+ * Returns a default environment object including only environment variables deemed safe to inherit.
36
+ */
37
+ function getDefaultEnvironment() {
38
+ const env = {};
39
+ for (const key of DEFAULT_INHERITED_ENV_VARS) {
40
+ const value = node_process.default.env[key];
41
+ if (value === void 0) continue;
42
+ if (value.startsWith("()")) continue;
43
+ env[key] = value;
44
+ }
45
+ return env;
46
+ }
47
+ /**
48
+ * Client transport for stdio: this will connect to a server by spawning a process and communicating with it over stdin/stdout.
49
+ *
50
+ * This transport is only available in Node.js environments.
51
+ */
52
+ var StdioClientTransport = class {
53
+ _process;
54
+ _readBuffer;
55
+ _serverParams;
56
+ _stderrStream = null;
57
+ onclose;
58
+ onerror;
59
+ onmessage;
60
+ constructor(server) {
61
+ this._serverParams = server;
62
+ this._readBuffer = new require_src.ReadBuffer({ maxBufferSize: server.maxBufferSize });
63
+ if (server.stderr === "pipe" || server.stderr === "overlapped") this._stderrStream = new node_stream.PassThrough();
64
+ }
65
+ /**
66
+ * Starts the server process and prepares to communicate with it.
67
+ */
68
+ async start() {
69
+ if (this._process) throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");
70
+ return new Promise((resolve, reject) => {
71
+ this._process = (0, cross_spawn.default)(this._serverParams.command, this._serverParams.args ?? [], {
72
+ env: {
73
+ ...getDefaultEnvironment(),
74
+ ...this._serverParams.env
75
+ },
76
+ stdio: [
77
+ "pipe",
78
+ "pipe",
79
+ this._serverParams.stderr ?? "inherit"
80
+ ],
81
+ shell: false,
82
+ windowsHide: node_process.default.platform === "win32",
83
+ cwd: this._serverParams.cwd
84
+ });
85
+ this._process.on("error", (error) => {
86
+ reject(error);
87
+ this.onerror?.(error);
88
+ });
89
+ this._process.on("spawn", () => {
90
+ resolve();
91
+ });
92
+ this._process.on("close", (_code) => {
93
+ this._process = void 0;
94
+ this.onclose?.();
95
+ });
96
+ this._process.stdin?.on("error", (error) => {
97
+ this.onerror?.(error);
98
+ });
99
+ this._process.stdout?.on("data", (chunk) => {
100
+ try {
101
+ this._readBuffer.append(chunk);
102
+ this.processReadBuffer();
103
+ } catch (error) {
104
+ this.onerror?.(error);
105
+ this.close().catch(() => {});
106
+ }
107
+ });
108
+ this._process.stdout?.on("error", (error) => {
109
+ this.onerror?.(error);
110
+ });
111
+ if (this._stderrStream && this._process.stderr) this._process.stderr.pipe(this._stderrStream);
112
+ });
113
+ }
114
+ /**
115
+ * The `stderr` stream of the child process, if {@linkcode StdioServerParameters.stderr} was set to `"pipe"` or `"overlapped"`.
116
+ *
117
+ * If `stderr` piping was requested, a `PassThrough` stream is returned _immediately_, allowing callers to
118
+ * attach listeners before the `start` method is invoked. This prevents loss of any early
119
+ * error output emitted by the child process.
120
+ */
121
+ get stderr() {
122
+ if (this._stderrStream) return this._stderrStream;
123
+ return this._process?.stderr ?? null;
124
+ }
125
+ /**
126
+ * The child process pid spawned by this transport.
127
+ *
128
+ * This is only available after the transport has been started.
129
+ */
130
+ get pid() {
131
+ return this._process?.pid ?? null;
132
+ }
133
+ processReadBuffer() {
134
+ while (true) try {
135
+ const message = this._readBuffer.readMessage();
136
+ if (message === null) break;
137
+ this.onmessage?.(message);
138
+ } catch (error) {
139
+ this.onerror?.(error);
140
+ }
141
+ }
142
+ /**
143
+ * Reap a disposable probe sibling (see the version-negotiation sibling
144
+ * flow): signal-first teardown awaiting process `exit` — never the `close`
145
+ * event, so a helper process holding the child's stdio pipes can never
146
+ * block disposal. Not part of the public transport lifecycle.
147
+ *
148
+ * @internal
149
+ */
150
+ async _dispose() {
151
+ const proc = this._process;
152
+ this._process = void 0;
153
+ if (proc && proc.exitCode === null && proc.signalCode === null) {
154
+ const exited = new Promise((resolve) => proc.once("exit", () => resolve()));
155
+ try {
156
+ proc.stdin?.end();
157
+ } catch {}
158
+ try {
159
+ proc.kill("SIGTERM");
160
+ } catch {}
161
+ await Promise.race([exited, new Promise((resolve) => setTimeout(resolve, 1e3).unref())]);
162
+ if (proc.exitCode === null && proc.signalCode === null) try {
163
+ proc.kill("SIGKILL");
164
+ } catch {}
165
+ await exited;
166
+ }
167
+ try {
168
+ proc?.stdout?.destroy();
169
+ } catch {}
170
+ try {
171
+ proc?.stdin?.destroy();
172
+ } catch {}
173
+ try {
174
+ proc?.stderr?.destroy();
175
+ } catch {}
176
+ this._readBuffer.clear();
177
+ }
178
+ async close() {
179
+ if (this._process) {
180
+ const processToClose = this._process;
181
+ this._process = void 0;
182
+ const closePromise = new Promise((resolve) => {
183
+ processToClose.once("close", () => {
184
+ resolve();
185
+ });
186
+ });
187
+ try {
188
+ processToClose.stdin?.end();
189
+ } catch {}
190
+ await Promise.race([closePromise, new Promise((resolve) => setTimeout(resolve, 2e3).unref())]);
191
+ if (processToClose.exitCode === null) {
192
+ try {
193
+ processToClose.kill("SIGTERM");
194
+ } catch {}
195
+ await Promise.race([closePromise, new Promise((resolve) => setTimeout(resolve, 2e3).unref())]);
196
+ }
197
+ if (processToClose.exitCode === null) try {
198
+ processToClose.kill("SIGKILL");
199
+ } catch {}
200
+ }
201
+ this._readBuffer.clear();
202
+ }
203
+ send(message) {
204
+ return new Promise((resolve) => {
205
+ if (!this._process?.stdin) throw new require_src.SdkError(require_src.SdkErrorCode.NotConnected, "Not connected");
206
+ const json = require_src.serializeMessage(message);
207
+ if (this._process.stdin.write(json)) resolve();
208
+ else this._process.stdin.once("drain", resolve);
209
+ });
210
+ }
211
+ };
212
+
213
+ //#endregion
214
+ exports.DEFAULT_INHERITED_ENV_VARS = DEFAULT_INHERITED_ENV_VARS;
215
+ exports.StdioClientTransport = StdioClientTransport;
216
+ exports.getDefaultEnvironment = getDefaultEnvironment;
217
+ //# sourceMappingURL=stdio.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.cjs","names":["process","env: Record<string, string>","ReadBuffer","PassThrough","SdkError","SdkErrorCode","serializeMessage"],"sources":["../src/client/stdio.ts"],"sourcesContent":["import type { ChildProcess, IOType } from 'node:child_process';\nimport process from 'node:process';\nimport type { Stream } from 'node:stream';\nimport { PassThrough } from 'node:stream';\n\nimport type { JSONRPCMessage, Transport } from '@modelcontextprotocol/core-internal';\nimport { ReadBuffer, SdkError, SdkErrorCode, serializeMessage } from '@modelcontextprotocol/core-internal';\nimport spawn from 'cross-spawn';\n\nexport type StdioServerParameters = {\n /**\n * The executable to run to start the server.\n */\n command: string;\n\n /**\n * Command line arguments to pass to the executable.\n */\n args?: string[];\n\n /**\n * The environment to use when spawning the process.\n *\n * If not specified, the result of {@linkcode getDefaultEnvironment} will be used.\n */\n env?: Record<string, string>;\n\n /**\n * How to handle stderr of the child process. This matches the semantics of Node's `child_process.spawn`.\n *\n * The default is `\"inherit\"`, meaning messages to stderr will be printed to the parent process's stderr.\n */\n stderr?: IOType | Stream | number;\n\n /**\n * The working directory to use when spawning the process.\n *\n * If not specified, the current working directory will be inherited.\n */\n cwd?: string;\n\n /**\n * Maximum size of the read buffer in bytes. If a single message exceeds\n * this size the transport will emit an error and close.\n *\n * Defaults to 10 MB.\n */\n maxBufferSize?: number;\n};\n\n/**\n * Environment variables to inherit by default, if an environment is not explicitly given.\n */\nexport const DEFAULT_INHERITED_ENV_VARS =\n process.platform === 'win32'\n ? [\n 'APPDATA',\n 'HOMEDRIVE',\n 'HOMEPATH',\n 'LOCALAPPDATA',\n 'PATH',\n 'PROCESSOR_ARCHITECTURE',\n 'SYSTEMDRIVE',\n 'SYSTEMROOT',\n 'TEMP',\n 'USERNAME',\n 'USERPROFILE',\n 'PROGRAMFILES'\n ]\n : /* list inspired by the default env inheritance of sudo */\n ['HOME', 'LOGNAME', 'PATH', 'SHELL', 'TERM', 'USER'];\n\n/**\n * Returns a default environment object including only environment variables deemed safe to inherit.\n */\nexport function getDefaultEnvironment(): Record<string, string> {\n const env: Record<string, string> = {};\n\n for (const key of DEFAULT_INHERITED_ENV_VARS) {\n const value = process.env[key];\n if (value === undefined) {\n continue;\n }\n\n if (value.startsWith('()')) {\n // Skip functions, which are a security risk.\n continue;\n }\n\n env[key] = value;\n }\n\n return env;\n}\n\n/**\n * Client transport for stdio: this will connect to a server by spawning a process and communicating with it over stdin/stdout.\n *\n * This transport is only available in Node.js environments.\n */\nexport class StdioClientTransport implements Transport {\n private _process?: ChildProcess;\n private _readBuffer: ReadBuffer;\n private _serverParams: StdioServerParameters;\n private _stderrStream: PassThrough | null = null;\n\n onclose?: () => void;\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(server: StdioServerParameters) {\n this._serverParams = server;\n this._readBuffer = new ReadBuffer({ maxBufferSize: server.maxBufferSize });\n if (server.stderr === 'pipe' || server.stderr === 'overlapped') {\n this._stderrStream = new PassThrough();\n }\n }\n\n /**\n * Starts the server process and prepares to communicate with it.\n */\n async start(): Promise<void> {\n if (this._process) {\n throw new Error(\n 'StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.'\n );\n }\n\n return new Promise((resolve, reject) => {\n this._process = spawn(this._serverParams.command, this._serverParams.args ?? [], {\n // merge default env with server env because mcp server needs some env vars\n env: {\n ...getDefaultEnvironment(),\n ...this._serverParams.env\n },\n stdio: ['pipe', 'pipe', this._serverParams.stderr ?? 'inherit'],\n shell: false,\n windowsHide: process.platform === 'win32',\n cwd: this._serverParams.cwd\n });\n\n this._process.on('error', error => {\n reject(error);\n this.onerror?.(error);\n });\n\n this._process.on('spawn', () => {\n resolve();\n });\n\n this._process.on('close', _code => {\n this._process = undefined;\n this.onclose?.();\n });\n\n this._process.stdin?.on('error', error => {\n this.onerror?.(error);\n });\n\n this._process.stdout?.on('data', chunk => {\n try {\n this._readBuffer.append(chunk);\n this.processReadBuffer();\n } catch (error) {\n this.onerror?.(error as Error);\n this.close().catch(() => {});\n }\n });\n\n this._process.stdout?.on('error', error => {\n this.onerror?.(error);\n });\n\n if (this._stderrStream && this._process.stderr) {\n this._process.stderr.pipe(this._stderrStream);\n }\n });\n }\n\n /**\n * The `stderr` stream of the child process, if {@linkcode StdioServerParameters.stderr} was set to `\"pipe\"` or `\"overlapped\"`.\n *\n * If `stderr` piping was requested, a `PassThrough` stream is returned _immediately_, allowing callers to\n * attach listeners before the `start` method is invoked. This prevents loss of any early\n * error output emitted by the child process.\n */\n get stderr(): Stream | null {\n if (this._stderrStream) {\n return this._stderrStream;\n }\n\n return this._process?.stderr ?? null;\n }\n\n /**\n * The child process pid spawned by this transport.\n *\n * This is only available after the transport has been started.\n */\n get pid(): number | null {\n return this._process?.pid ?? null;\n }\n\n private processReadBuffer() {\n while (true) {\n try {\n const message = this._readBuffer.readMessage();\n if (message === null) {\n break;\n }\n\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(error as Error);\n }\n }\n }\n\n /**\n * Reap a disposable probe sibling (see the version-negotiation sibling\n * flow): signal-first teardown awaiting process `exit` — never the `close`\n * event, so a helper process holding the child's stdio pipes can never\n * block disposal. Not part of the public transport lifecycle.\n *\n * @internal\n */\n private async _dispose(): Promise<void> {\n const proc = this._process;\n this._process = undefined;\n if (proc && proc.exitCode === null && proc.signalCode === null) {\n const exited = new Promise<void>(resolve => proc.once('exit', () => resolve()));\n try {\n proc.stdin?.end();\n } catch {\n // ignore\n }\n try {\n proc.kill('SIGTERM');\n } catch {\n // ignore\n }\n await Promise.race([exited, new Promise(resolve => setTimeout(resolve, 1000).unref())]);\n if (proc.exitCode === null && proc.signalCode === null) {\n try {\n proc.kill('SIGKILL');\n } catch {\n // ignore\n }\n }\n await exited;\n }\n // The child is gone — release the PARENT-side pipe handles too. A helper\n // process holding the inherited write ends would otherwise keep them (and\n // with them the host's event loop: stdout carries a flowing 'data'\n // listener from start()) alive until the helper exits.\n try {\n proc?.stdout?.destroy();\n } catch {\n // ignore\n }\n try {\n proc?.stdin?.destroy();\n } catch {\n // ignore\n }\n try {\n proc?.stderr?.destroy();\n } catch {\n // ignore\n }\n this._readBuffer.clear();\n }\n\n async close(): Promise<void> {\n if (this._process) {\n const processToClose = this._process;\n this._process = undefined;\n\n const closePromise = new Promise<void>(resolve => {\n processToClose.once('close', () => {\n resolve();\n });\n });\n\n try {\n processToClose.stdin?.end();\n } catch {\n // ignore\n }\n\n await Promise.race([closePromise, new Promise(resolve => setTimeout(resolve, 2000).unref())]);\n\n if (processToClose.exitCode === null) {\n try {\n processToClose.kill('SIGTERM');\n } catch {\n // ignore\n }\n\n await Promise.race([closePromise, new Promise(resolve => setTimeout(resolve, 2000).unref())]);\n }\n\n if (processToClose.exitCode === null) {\n try {\n processToClose.kill('SIGKILL');\n } catch {\n // ignore\n }\n }\n }\n\n this._readBuffer.clear();\n }\n\n send(message: JSONRPCMessage): Promise<void> {\n return new Promise(resolve => {\n if (!this._process?.stdin) {\n throw new SdkError(SdkErrorCode.NotConnected, 'Not connected');\n }\n\n const json = serializeMessage(message);\n if (this._process.stdin.write(json)) {\n resolve();\n } else {\n this._process.stdin.once('drain', resolve);\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { E as Transport, bn as JSONRPCMessage } from "./index-CHhhk6PQ.cjs";
2
+ import { IOType } from "node:child_process";
3
+ import { Stream } from "node:stream";
4
+
5
+ //#region src/client/stdio.d.ts
6
+ type StdioServerParameters = {
7
+ /**
8
+ * The executable to run to start the server.
9
+ */
10
+ command: string;
11
+ /**
12
+ * Command line arguments to pass to the executable.
13
+ */
14
+ args?: string[];
15
+ /**
16
+ * The environment to use when spawning the process.
17
+ *
18
+ * If not specified, the result of {@linkcode getDefaultEnvironment} will be used.
19
+ */
20
+ env?: Record<string, string>;
21
+ /**
22
+ * How to handle stderr of the child process. This matches the semantics of Node's `child_process.spawn`.
23
+ *
24
+ * The default is `"inherit"`, meaning messages to stderr will be printed to the parent process's stderr.
25
+ */
26
+ stderr?: IOType | Stream | number;
27
+ /**
28
+ * The working directory to use when spawning the process.
29
+ *
30
+ * If not specified, the current working directory will be inherited.
31
+ */
32
+ cwd?: string;
33
+ /**
34
+ * Maximum size of the read buffer in bytes. If a single message exceeds
35
+ * this size the transport will emit an error and close.
36
+ *
37
+ * Defaults to 10 MB.
38
+ */
39
+ maxBufferSize?: number;
40
+ };
41
+ /**
42
+ * Environment variables to inherit by default, if an environment is not explicitly given.
43
+ */
44
+ declare const DEFAULT_INHERITED_ENV_VARS: string[];
45
+ /**
46
+ * Returns a default environment object including only environment variables deemed safe to inherit.
47
+ */
48
+ declare function getDefaultEnvironment(): Record<string, string>;
49
+ /**
50
+ * Client transport for stdio: this will connect to a server by spawning a process and communicating with it over stdin/stdout.
51
+ *
52
+ * This transport is only available in Node.js environments.
53
+ */
54
+ declare class StdioClientTransport implements Transport {
55
+ private _process?;
56
+ private _readBuffer;
57
+ private _serverParams;
58
+ private _stderrStream;
59
+ onclose?: () => void;
60
+ onerror?: (error: Error) => void;
61
+ onmessage?: (message: JSONRPCMessage) => void;
62
+ constructor(server: StdioServerParameters);
63
+ /**
64
+ * Starts the server process and prepares to communicate with it.
65
+ */
66
+ start(): Promise<void>;
67
+ /**
68
+ * The `stderr` stream of the child process, if {@linkcode StdioServerParameters.stderr} was set to `"pipe"` or `"overlapped"`.
69
+ *
70
+ * If `stderr` piping was requested, a `PassThrough` stream is returned _immediately_, allowing callers to
71
+ * attach listeners before the `start` method is invoked. This prevents loss of any early
72
+ * error output emitted by the child process.
73
+ */
74
+ get stderr(): Stream | null;
75
+ /**
76
+ * The child process pid spawned by this transport.
77
+ *
78
+ * This is only available after the transport has been started.
79
+ */
80
+ get pid(): number | null;
81
+ private processReadBuffer;
82
+ /**
83
+ * Reap a disposable probe sibling (see the version-negotiation sibling
84
+ * flow): signal-first teardown awaiting process `exit` — never the `close`
85
+ * event, so a helper process holding the child's stdio pipes can never
86
+ * block disposal. Not part of the public transport lifecycle.
87
+ *
88
+ * @internal
89
+ */
90
+ private _dispose;
91
+ close(): Promise<void>;
92
+ send(message: JSONRPCMessage): Promise<void>;
93
+ }
94
+ //#endregion
95
+ export { DEFAULT_INHERITED_ENV_VARS, StdioClientTransport, type StdioServerParameters, getDefaultEnvironment };
96
+ //# sourceMappingURL=stdio.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.cts","names":[],"sources":["../src/client/stdio.ts"],"sourcesContent":[],"mappings":";;;;;KASY,qBAAA;;AAAZ;;EAuBa,OAAA,EAAA,MAAA;EAAS;;AAqBtB;EAsBgB,IAAA,CAAA,EAAA,MAAA,EAAA;EAyBH;;;;;EAsFK,GAAA,CAAA,EAjKR,MAiKQ,CAAA,MAAA,EAAA,MAAA,CAAA;EAuFC;;;;;WAjPN,SAAS;;;;;;;;;;;;;;;;;;cAqBT;;;;iBAsBG,qBAAA,CAAA,GAAyB;;;;;;cAyB5B,oBAAA,YAAgC;;;;;;oBAOvB;wBACI;sBAEF;;;;WAWL;;;;;;;;gBAiED;;;;;;;;;;;;;;;;;WAuFC;gBAyCD,iBAAiB"}
@@ -0,0 +1,96 @@
1
+ import { E as Transport, bn as JSONRPCMessage } from "./index-D4xIIEF6.mjs";
2
+ import { Stream } from "node:stream";
3
+ import { IOType } from "node:child_process";
4
+
5
+ //#region src/client/stdio.d.ts
6
+ type StdioServerParameters = {
7
+ /**
8
+ * The executable to run to start the server.
9
+ */
10
+ command: string;
11
+ /**
12
+ * Command line arguments to pass to the executable.
13
+ */
14
+ args?: string[];
15
+ /**
16
+ * The environment to use when spawning the process.
17
+ *
18
+ * If not specified, the result of {@linkcode getDefaultEnvironment} will be used.
19
+ */
20
+ env?: Record<string, string>;
21
+ /**
22
+ * How to handle stderr of the child process. This matches the semantics of Node's `child_process.spawn`.
23
+ *
24
+ * The default is `"inherit"`, meaning messages to stderr will be printed to the parent process's stderr.
25
+ */
26
+ stderr?: IOType | Stream | number;
27
+ /**
28
+ * The working directory to use when spawning the process.
29
+ *
30
+ * If not specified, the current working directory will be inherited.
31
+ */
32
+ cwd?: string;
33
+ /**
34
+ * Maximum size of the read buffer in bytes. If a single message exceeds
35
+ * this size the transport will emit an error and close.
36
+ *
37
+ * Defaults to 10 MB.
38
+ */
39
+ maxBufferSize?: number;
40
+ };
41
+ /**
42
+ * Environment variables to inherit by default, if an environment is not explicitly given.
43
+ */
44
+ declare const DEFAULT_INHERITED_ENV_VARS: string[];
45
+ /**
46
+ * Returns a default environment object including only environment variables deemed safe to inherit.
47
+ */
48
+ declare function getDefaultEnvironment(): Record<string, string>;
49
+ /**
50
+ * Client transport for stdio: this will connect to a server by spawning a process and communicating with it over stdin/stdout.
51
+ *
52
+ * This transport is only available in Node.js environments.
53
+ */
54
+ declare class StdioClientTransport implements Transport {
55
+ private _process?;
56
+ private _readBuffer;
57
+ private _serverParams;
58
+ private _stderrStream;
59
+ onclose?: () => void;
60
+ onerror?: (error: Error) => void;
61
+ onmessage?: (message: JSONRPCMessage) => void;
62
+ constructor(server: StdioServerParameters);
63
+ /**
64
+ * Starts the server process and prepares to communicate with it.
65
+ */
66
+ start(): Promise<void>;
67
+ /**
68
+ * The `stderr` stream of the child process, if {@linkcode StdioServerParameters.stderr} was set to `"pipe"` or `"overlapped"`.
69
+ *
70
+ * If `stderr` piping was requested, a `PassThrough` stream is returned _immediately_, allowing callers to
71
+ * attach listeners before the `start` method is invoked. This prevents loss of any early
72
+ * error output emitted by the child process.
73
+ */
74
+ get stderr(): Stream | null;
75
+ /**
76
+ * The child process pid spawned by this transport.
77
+ *
78
+ * This is only available after the transport has been started.
79
+ */
80
+ get pid(): number | null;
81
+ private processReadBuffer;
82
+ /**
83
+ * Reap a disposable probe sibling (see the version-negotiation sibling
84
+ * flow): signal-first teardown awaiting process `exit` — never the `close`
85
+ * event, so a helper process holding the child's stdio pipes can never
86
+ * block disposal. Not part of the public transport lifecycle.
87
+ *
88
+ * @internal
89
+ */
90
+ private _dispose;
91
+ close(): Promise<void>;
92
+ send(message: JSONRPCMessage): Promise<void>;
93
+ }
94
+ //#endregion
95
+ export { DEFAULT_INHERITED_ENV_VARS, StdioClientTransport, type StdioServerParameters, getDefaultEnvironment };
96
+ //# sourceMappingURL=stdio.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.mts","names":[],"sources":["../src/client/stdio.ts"],"sourcesContent":[],"mappings":";;;;;KASY,qBAAA;;AAAZ;;EAuBa,OAAA,EAAA,MAAA;EAAS;;AAqBtB;EAsBgB,IAAA,CAAA,EAAA,MAAA,EAAA;EAyBH;;;;;EAsFK,GAAA,CAAA,EAjKR,MAiKQ,CAAA,MAAA,EAAA,MAAA,CAAA;EAuFC;;;;;WAjPN,SAAS;;;;;;;;;;;;;;;;;;cAqBT;;;;iBAsBG,qBAAA,CAAA,GAAyB;;;;;;cAyB5B,oBAAA,YAAgC;;;;;;oBAOvB;wBACI;sBAEF;;;;WAWL;;;;;;;;gBAiED;;;;;;;;;;;;;;;;;WAuFC;gBAyCD,iBAAiB"}
@@ -0,0 +1,212 @@
1
+ import { At as SdkErrorCode, kt as SdkError, s as ReadBuffer, u as serializeMessage } from "./src-D_zzAWoS.mjs";
2
+ import process from "node:process";
3
+ import { PassThrough } from "node:stream";
4
+ import spawn from "cross-spawn";
5
+
6
+ //#region src/client/stdio.ts
7
+ /**
8
+ * Environment variables to inherit by default, if an environment is not explicitly given.
9
+ */
10
+ const DEFAULT_INHERITED_ENV_VARS = process.platform === "win32" ? [
11
+ "APPDATA",
12
+ "HOMEDRIVE",
13
+ "HOMEPATH",
14
+ "LOCALAPPDATA",
15
+ "PATH",
16
+ "PROCESSOR_ARCHITECTURE",
17
+ "SYSTEMDRIVE",
18
+ "SYSTEMROOT",
19
+ "TEMP",
20
+ "USERNAME",
21
+ "USERPROFILE",
22
+ "PROGRAMFILES"
23
+ ] : [
24
+ "HOME",
25
+ "LOGNAME",
26
+ "PATH",
27
+ "SHELL",
28
+ "TERM",
29
+ "USER"
30
+ ];
31
+ /**
32
+ * Returns a default environment object including only environment variables deemed safe to inherit.
33
+ */
34
+ function getDefaultEnvironment() {
35
+ const env = {};
36
+ for (const key of DEFAULT_INHERITED_ENV_VARS) {
37
+ const value = process.env[key];
38
+ if (value === void 0) continue;
39
+ if (value.startsWith("()")) continue;
40
+ env[key] = value;
41
+ }
42
+ return env;
43
+ }
44
+ /**
45
+ * Client transport for stdio: this will connect to a server by spawning a process and communicating with it over stdin/stdout.
46
+ *
47
+ * This transport is only available in Node.js environments.
48
+ */
49
+ var StdioClientTransport = class {
50
+ _process;
51
+ _readBuffer;
52
+ _serverParams;
53
+ _stderrStream = null;
54
+ onclose;
55
+ onerror;
56
+ onmessage;
57
+ constructor(server) {
58
+ this._serverParams = server;
59
+ this._readBuffer = new ReadBuffer({ maxBufferSize: server.maxBufferSize });
60
+ if (server.stderr === "pipe" || server.stderr === "overlapped") this._stderrStream = new PassThrough();
61
+ }
62
+ /**
63
+ * Starts the server process and prepares to communicate with it.
64
+ */
65
+ async start() {
66
+ if (this._process) throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");
67
+ return new Promise((resolve, reject) => {
68
+ this._process = spawn(this._serverParams.command, this._serverParams.args ?? [], {
69
+ env: {
70
+ ...getDefaultEnvironment(),
71
+ ...this._serverParams.env
72
+ },
73
+ stdio: [
74
+ "pipe",
75
+ "pipe",
76
+ this._serverParams.stderr ?? "inherit"
77
+ ],
78
+ shell: false,
79
+ windowsHide: process.platform === "win32",
80
+ cwd: this._serverParams.cwd
81
+ });
82
+ this._process.on("error", (error) => {
83
+ reject(error);
84
+ this.onerror?.(error);
85
+ });
86
+ this._process.on("spawn", () => {
87
+ resolve();
88
+ });
89
+ this._process.on("close", (_code) => {
90
+ this._process = void 0;
91
+ this.onclose?.();
92
+ });
93
+ this._process.stdin?.on("error", (error) => {
94
+ this.onerror?.(error);
95
+ });
96
+ this._process.stdout?.on("data", (chunk) => {
97
+ try {
98
+ this._readBuffer.append(chunk);
99
+ this.processReadBuffer();
100
+ } catch (error) {
101
+ this.onerror?.(error);
102
+ this.close().catch(() => {});
103
+ }
104
+ });
105
+ this._process.stdout?.on("error", (error) => {
106
+ this.onerror?.(error);
107
+ });
108
+ if (this._stderrStream && this._process.stderr) this._process.stderr.pipe(this._stderrStream);
109
+ });
110
+ }
111
+ /**
112
+ * The `stderr` stream of the child process, if {@linkcode StdioServerParameters.stderr} was set to `"pipe"` or `"overlapped"`.
113
+ *
114
+ * If `stderr` piping was requested, a `PassThrough` stream is returned _immediately_, allowing callers to
115
+ * attach listeners before the `start` method is invoked. This prevents loss of any early
116
+ * error output emitted by the child process.
117
+ */
118
+ get stderr() {
119
+ if (this._stderrStream) return this._stderrStream;
120
+ return this._process?.stderr ?? null;
121
+ }
122
+ /**
123
+ * The child process pid spawned by this transport.
124
+ *
125
+ * This is only available after the transport has been started.
126
+ */
127
+ get pid() {
128
+ return this._process?.pid ?? null;
129
+ }
130
+ processReadBuffer() {
131
+ while (true) try {
132
+ const message = this._readBuffer.readMessage();
133
+ if (message === null) break;
134
+ this.onmessage?.(message);
135
+ } catch (error) {
136
+ this.onerror?.(error);
137
+ }
138
+ }
139
+ /**
140
+ * Reap a disposable probe sibling (see the version-negotiation sibling
141
+ * flow): signal-first teardown awaiting process `exit` — never the `close`
142
+ * event, so a helper process holding the child's stdio pipes can never
143
+ * block disposal. Not part of the public transport lifecycle.
144
+ *
145
+ * @internal
146
+ */
147
+ async _dispose() {
148
+ const proc = this._process;
149
+ this._process = void 0;
150
+ if (proc && proc.exitCode === null && proc.signalCode === null) {
151
+ const exited = new Promise((resolve) => proc.once("exit", () => resolve()));
152
+ try {
153
+ proc.stdin?.end();
154
+ } catch {}
155
+ try {
156
+ proc.kill("SIGTERM");
157
+ } catch {}
158
+ await Promise.race([exited, new Promise((resolve) => setTimeout(resolve, 1e3).unref())]);
159
+ if (proc.exitCode === null && proc.signalCode === null) try {
160
+ proc.kill("SIGKILL");
161
+ } catch {}
162
+ await exited;
163
+ }
164
+ try {
165
+ proc?.stdout?.destroy();
166
+ } catch {}
167
+ try {
168
+ proc?.stdin?.destroy();
169
+ } catch {}
170
+ try {
171
+ proc?.stderr?.destroy();
172
+ } catch {}
173
+ this._readBuffer.clear();
174
+ }
175
+ async close() {
176
+ if (this._process) {
177
+ const processToClose = this._process;
178
+ this._process = void 0;
179
+ const closePromise = new Promise((resolve) => {
180
+ processToClose.once("close", () => {
181
+ resolve();
182
+ });
183
+ });
184
+ try {
185
+ processToClose.stdin?.end();
186
+ } catch {}
187
+ await Promise.race([closePromise, new Promise((resolve) => setTimeout(resolve, 2e3).unref())]);
188
+ if (processToClose.exitCode === null) {
189
+ try {
190
+ processToClose.kill("SIGTERM");
191
+ } catch {}
192
+ await Promise.race([closePromise, new Promise((resolve) => setTimeout(resolve, 2e3).unref())]);
193
+ }
194
+ if (processToClose.exitCode === null) try {
195
+ processToClose.kill("SIGKILL");
196
+ } catch {}
197
+ }
198
+ this._readBuffer.clear();
199
+ }
200
+ send(message) {
201
+ return new Promise((resolve) => {
202
+ if (!this._process?.stdin) throw new SdkError(SdkErrorCode.NotConnected, "Not connected");
203
+ const json = serializeMessage(message);
204
+ if (this._process.stdin.write(json)) resolve();
205
+ else this._process.stdin.once("drain", resolve);
206
+ });
207
+ }
208
+ };
209
+
210
+ //#endregion
211
+ export { DEFAULT_INHERITED_ENV_VARS, StdioClientTransport, getDefaultEnvironment };
212
+ //# sourceMappingURL=stdio.mjs.map