mcp-use 2.0.0-beta.18 → 2.0.0-beta.2

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 (1058) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/bin/args.d.ts +0 -2
  3. package/dist/bin/args.d.ts.map +1 -1
  4. package/dist/bin/main.d.ts +0 -2
  5. package/dist/bin/main.d.ts.map +1 -1
  6. package/dist/bin.js +4 -9
  7. package/dist/bin.js.map +1 -1
  8. package/dist/{chunk-IG2BCCMU.js → chunk-Q4PUTBMV.js} +1 -5
  9. package/dist/chunk-Q4PUTBMV.js.map +1 -0
  10. package/dist/{chunk-RHITI5QM.js → chunk-RQRT27Q3.js} +16 -190
  11. package/dist/chunk-RQRT27Q3.js.map +1 -0
  12. package/dist/{chunk-QUUANIE4.js → chunk-SFI2T6TE.js} +80 -34
  13. package/dist/chunk-SFI2T6TE.js.map +1 -0
  14. package/dist/{chunk-O3CUL5VH.js → chunk-UDLRVMML.js} +18 -68
  15. package/dist/chunk-UDLRVMML.js.map +1 -0
  16. package/dist/cli/build.d.ts +2 -7
  17. package/dist/cli/build.d.ts.map +1 -1
  18. package/dist/cli/dev.d.ts.map +1 -1
  19. package/dist/cli/port.d.ts.map +1 -1
  20. package/dist/cli/tunnel.d.ts.map +1 -1
  21. package/dist/cli/views-bindings.d.ts +0 -9
  22. package/dist/cli/views-bindings.d.ts.map +1 -1
  23. package/dist/cli/views-plugin.d.ts.map +1 -1
  24. package/dist/cli/views.d.ts +5 -7
  25. package/dist/cli/views.d.ts.map +1 -1
  26. package/dist/cli/workspace.d.ts +10 -2
  27. package/dist/cli/workspace.d.ts.map +1 -1
  28. package/dist/commands/build.js +25 -136
  29. package/dist/commands/build.js.map +1 -1
  30. package/dist/commands/client.d.ts.map +1 -1
  31. package/dist/commands/client.js +1 -1
  32. package/dist/commands/dev.js +15 -110
  33. package/dist/commands/dev.js.map +1 -1
  34. package/dist/commands/load-client.d.ts +2 -9
  35. package/dist/commands/load-client.d.ts.map +1 -1
  36. package/dist/commands/screenshot.js +1 -1
  37. package/dist/commands/start.js +1 -1
  38. package/dist/completable.d.ts +0 -9
  39. package/dist/completable.d.ts.map +1 -1
  40. package/dist/config.d.ts +4 -125
  41. package/dist/config.d.ts.map +1 -1
  42. package/dist/fetch-app.d.ts +0 -43
  43. package/dist/fetch-app.d.ts.map +1 -1
  44. package/dist/index.d.ts +5 -20
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +248 -1312
  47. package/dist/index.js.map +1 -1
  48. package/dist/inspector-shell.d.ts +6 -19
  49. package/dist/inspector-shell.d.ts.map +1 -1
  50. package/dist/mount-mcp.d.ts +4 -0
  51. package/dist/mount-mcp.d.ts.map +1 -1
  52. package/dist/oauth/index.js +1 -2
  53. package/dist/{chunk-SMN75YED.js → public-route-7IK5D7V7.js} +10 -16
  54. package/dist/public-route-7IK5D7V7.js.map +1 -0
  55. package/dist/react/components/theme-provider.d.ts +0 -3
  56. package/dist/react/components/theme-provider.d.ts.map +1 -1
  57. package/dist/react/hooks/use-host-context.d.ts +0 -5
  58. package/dist/react/hooks/use-host-context.d.ts.map +1 -1
  59. package/dist/react/index.d.ts +0 -2
  60. package/dist/react/index.d.ts.map +1 -1
  61. package/dist/react/index.js +3 -124
  62. package/dist/react/index.js.map +1 -1
  63. package/dist/react/runtime/view-runtime.d.ts +0 -23
  64. package/dist/react/runtime/view-runtime.d.ts.map +1 -1
  65. package/dist/react/types/register.d.ts +1 -1
  66. package/dist/react/types/register.d.ts.map +1 -1
  67. package/dist/resources.d.ts +4 -59
  68. package/dist/resources.d.ts.map +1 -1
  69. package/dist/server.d.ts +5 -118
  70. package/dist/server.d.ts.map +1 -1
  71. package/dist/tools.d.ts +1 -12
  72. package/dist/tools.d.ts.map +1 -1
  73. package/dist/views/document.d.ts +7 -25
  74. package/dist/views/document.d.ts.map +1 -1
  75. package/dist/views/index.d.ts +3 -4
  76. package/dist/views/index.d.ts.map +1 -1
  77. package/dist/views/origin.d.ts +9 -37
  78. package/dist/views/origin.d.ts.map +1 -1
  79. package/dist/views/public-route.d.ts +3 -9
  80. package/dist/views/public-route.d.ts.map +1 -1
  81. package/dist/views/routes.d.ts +1 -20
  82. package/dist/views/routes.d.ts.map +1 -1
  83. package/dist/views/types.d.ts +4 -7
  84. package/dist/views/types.d.ts.map +1 -1
  85. package/dist/views/wire.d.ts +30 -19
  86. package/dist/views/wire.d.ts.map +1 -1
  87. package/package.json +10 -21
  88. package/dist/branding.d.ts +0 -82
  89. package/dist/branding.d.ts.map +0 -1
  90. package/dist/chunk-FC2Z2VFO.js +0 -99
  91. package/dist/chunk-FC2Z2VFO.js.map +0 -1
  92. package/dist/chunk-IG2BCCMU.js.map +0 -1
  93. package/dist/chunk-KIZ72TIK.js +0 -38
  94. package/dist/chunk-KIZ72TIK.js.map +0 -1
  95. package/dist/chunk-O3CUL5VH.js.map +0 -1
  96. package/dist/chunk-QUUANIE4.js.map +0 -1
  97. package/dist/chunk-RHITI5QM.js.map +0 -1
  98. package/dist/chunk-SMN75YED.js.map +0 -1
  99. package/dist/chunk-XUI7QE2D.js +0 -98
  100. package/dist/chunk-XUI7QE2D.js.map +0 -1
  101. package/dist/chunk-Z326HADF.js +0 -82
  102. package/dist/chunk-Z326HADF.js.map +0 -1
  103. package/dist/chunk-ZJJD33SF.js +0 -741
  104. package/dist/chunk-ZJJD33SF.js.map +0 -1
  105. package/dist/cli/mcp-env-declaration.d.ts +0 -20
  106. package/dist/cli/mcp-env-declaration.d.ts.map +0 -1
  107. package/dist/internal/resource-completion.js +0 -7
  108. package/dist/internal/resource-completion.js.map +0 -1
  109. package/dist/landing-handler-WE66NIGB.js +0 -37
  110. package/dist/landing-handler-WE66NIGB.js.map +0 -1
  111. package/dist/landing-handler.d.ts +0 -24
  112. package/dist/landing-handler.d.ts.map +0 -1
  113. package/dist/landing.d.ts +0 -67
  114. package/dist/landing.d.ts.map +0 -1
  115. package/dist/landing.js +0 -7
  116. package/dist/landing.js.map +0 -1
  117. package/dist/middleware/cors.d.ts +0 -11
  118. package/dist/middleware/cors.d.ts.map +0 -1
  119. package/dist/middleware/mcp-middleware.d.ts +0 -175
  120. package/dist/middleware/mcp-middleware.d.ts.map +0 -1
  121. package/dist/oauth/better-auth.d.ts +0 -29
  122. package/dist/oauth/better-auth.d.ts.map +0 -1
  123. package/dist/oauth/better-auth.js +0 -76
  124. package/dist/oauth/better-auth.js.map +0 -1
  125. package/dist/proxy-DJYWGTGX.js +0 -282
  126. package/dist/proxy-DJYWGTGX.js.map +0 -1
  127. package/dist/proxy.d.ts +0 -153
  128. package/dist/proxy.d.ts.map +0 -1
  129. package/dist/public-route-5JEGFEIN.js +0 -9
  130. package/dist/public-route-5JEGFEIN.js.map +0 -1
  131. package/dist/react/hooks/use-files.d.ts +0 -25
  132. package/dist/react/hooks/use-files.d.ts.map +0 -1
  133. package/dist/react/types/file-types.d.ts +0 -16
  134. package/dist/react/types/file-types.d.ts.map +0 -1
  135. package/dist/resource-completion.d.ts +0 -12
  136. package/dist/resource-completion.d.ts.map +0 -1
  137. package/dist/views/csp-env.d.ts +0 -37
  138. package/dist/views/csp-env.d.ts.map +0 -1
  139. package/node_modules/@modelcontextprotocol/client/LICENSE +0 -216
  140. package/node_modules/@modelcontextprotocol/client/README.md +0 -26
  141. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-Asx17_Co.mjs +0 -7069
  142. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-Asx17_Co.mjs.map +0 -1
  143. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-B7GnTXYx.d.mts +0 -1054
  144. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-B7GnTXYx.d.mts.map +0 -1
  145. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-B_4czhCS.d.cts +0 -1054
  146. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-B_4czhCS.d.cts.map +0 -1
  147. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-DNzBrkxq.cjs +0 -7086
  148. package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-DNzBrkxq.cjs.map +0 -1
  149. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-D9GAttn8.d.cts +0 -59
  150. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-D9GAttn8.d.cts.map +0 -1
  151. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-DbU8BxXO.mjs +0 -970
  152. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-DbU8BxXO.mjs.map +0 -1
  153. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-Djgwc46-.cjs +0 -976
  154. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-Djgwc46-.cjs.map +0 -1
  155. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-Xtj52JOa.d.mts +0 -59
  156. package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-Xtj52JOa.d.mts.map +0 -1
  157. package/node_modules/@modelcontextprotocol/client/dist/chunk-Bnu9O96Y.cjs +0 -60
  158. package/node_modules/@modelcontextprotocol/client/dist/chunk-Br0eD_fh.mjs +0 -42
  159. package/node_modules/@modelcontextprotocol/client/dist/index-ZagFkUbt.d.mts +0 -2675
  160. package/node_modules/@modelcontextprotocol/client/dist/index-ZagFkUbt.d.mts.map +0 -1
  161. package/node_modules/@modelcontextprotocol/client/dist/index-gN3EXmil.d.cts +0 -2678
  162. package/node_modules/@modelcontextprotocol/client/dist/index-gN3EXmil.d.cts.map +0 -1
  163. package/node_modules/@modelcontextprotocol/client/dist/index.cjs +0 -5427
  164. package/node_modules/@modelcontextprotocol/client/dist/index.cjs.map +0 -1
  165. package/node_modules/@modelcontextprotocol/client/dist/index.d.cts +0 -3196
  166. package/node_modules/@modelcontextprotocol/client/dist/index.d.cts.map +0 -1
  167. package/node_modules/@modelcontextprotocol/client/dist/index.d.mts +0 -3196
  168. package/node_modules/@modelcontextprotocol/client/dist/index.d.mts.map +0 -1
  169. package/node_modules/@modelcontextprotocol/client/dist/index.mjs +0 -5224
  170. package/node_modules/@modelcontextprotocol/client/dist/index.mjs.map +0 -1
  171. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.cjs +0 -14
  172. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.cjs.map +0 -1
  173. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.cts +0 -13
  174. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.cts.map +0 -1
  175. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.mts +0 -13
  176. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.mts.map +0 -1
  177. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.mjs +0 -13
  178. package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.mjs.map +0 -1
  179. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.cjs +0 -14
  180. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.cjs.map +0 -1
  181. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.cts +0 -13
  182. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.cts.map +0 -1
  183. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.mts +0 -13
  184. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.mts.map +0 -1
  185. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.mjs +0 -13
  186. package/node_modules/@modelcontextprotocol/client/dist/shimsNode.mjs.map +0 -1
  187. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.cjs +0 -21
  188. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.cjs.map +0 -1
  189. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.cts +0 -13
  190. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.cts.map +0 -1
  191. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.mts +0 -13
  192. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.mts.map +0 -1
  193. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.mjs +0 -20
  194. package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.mjs.map +0 -1
  195. package/node_modules/@modelcontextprotocol/client/dist/src-BzzZSQyL.cjs +0 -7331
  196. package/node_modules/@modelcontextprotocol/client/dist/src-BzzZSQyL.cjs.map +0 -1
  197. package/node_modules/@modelcontextprotocol/client/dist/src-DGeA9On3.mjs +0 -6963
  198. package/node_modules/@modelcontextprotocol/client/dist/src-DGeA9On3.mjs.map +0 -1
  199. package/node_modules/@modelcontextprotocol/client/dist/stdio.cjs +0 -181
  200. package/node_modules/@modelcontextprotocol/client/dist/stdio.cjs.map +0 -1
  201. package/node_modules/@modelcontextprotocol/client/dist/stdio.d.cts +0 -87
  202. package/node_modules/@modelcontextprotocol/client/dist/stdio.d.cts.map +0 -1
  203. package/node_modules/@modelcontextprotocol/client/dist/stdio.d.mts +0 -87
  204. package/node_modules/@modelcontextprotocol/client/dist/stdio.d.mts.map +0 -1
  205. package/node_modules/@modelcontextprotocol/client/dist/stdio.mjs +0 -176
  206. package/node_modules/@modelcontextprotocol/client/dist/stdio.mjs.map +0 -1
  207. package/node_modules/@modelcontextprotocol/client/dist/types-BDNQEPSs.d.mts +0 -1099
  208. package/node_modules/@modelcontextprotocol/client/dist/types-BDNQEPSs.d.mts.map +0 -1
  209. package/node_modules/@modelcontextprotocol/client/dist/types-DsbMXNFL.d.cts +0 -1099
  210. package/node_modules/@modelcontextprotocol/client/dist/types-DsbMXNFL.d.cts.map +0 -1
  211. package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.cjs +0 -5
  212. package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.d.cts +0 -2
  213. package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.d.mts +0 -2
  214. package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.mjs +0 -3
  215. package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.cjs +0 -3
  216. package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.d.cts +0 -2
  217. package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.d.mts +0 -2
  218. package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.mjs +0 -3
  219. package/node_modules/@modelcontextprotocol/client/package.json +0 -166
  220. package/node_modules/@modelcontextprotocol/core/LICENSE +0 -216
  221. package/node_modules/@modelcontextprotocol/core/README.md +0 -40
  222. package/node_modules/@modelcontextprotocol/core/dist/auth-BUWfrB3C.d.cts +0 -8198
  223. package/node_modules/@modelcontextprotocol/core/dist/auth-BUWfrB3C.d.cts.map +0 -1
  224. package/node_modules/@modelcontextprotocol/core/dist/auth-CEFpHq32.cjs +0 -2862
  225. package/node_modules/@modelcontextprotocol/core/dist/auth-CEFpHq32.cjs.map +0 -1
  226. package/node_modules/@modelcontextprotocol/core/dist/auth-CNbu4K4a.d.mts +0 -8198
  227. package/node_modules/@modelcontextprotocol/core/dist/auth-CNbu4K4a.d.mts.map +0 -1
  228. package/node_modules/@modelcontextprotocol/core/dist/auth-DFgbUATV.mjs +0 -1653
  229. package/node_modules/@modelcontextprotocol/core/dist/auth-DFgbUATV.mjs.map +0 -1
  230. package/node_modules/@modelcontextprotocol/core/dist/index.cjs +0 -174
  231. package/node_modules/@modelcontextprotocol/core/dist/index.d.cts +0 -2
  232. package/node_modules/@modelcontextprotocol/core/dist/index.d.mts +0 -2
  233. package/node_modules/@modelcontextprotocol/core/dist/index.mjs +0 -3
  234. package/node_modules/@modelcontextprotocol/core/dist/internal.cjs +0 -199
  235. package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +0 -87
  236. package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts.map +0 -1
  237. package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +0 -87
  238. package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts.map +0 -1
  239. package/node_modules/@modelcontextprotocol/core/dist/internal.mjs +0 -3
  240. package/node_modules/@modelcontextprotocol/core/package.json +0 -85
  241. package/node_modules/jose/LICENSE.md +0 -21
  242. package/node_modules/jose/README.md +0 -153
  243. package/node_modules/jose/dist/types/index.d.ts +0 -55
  244. package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +0 -31
  245. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +0 -65
  246. package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +0 -31
  247. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +0 -83
  248. package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +0 -31
  249. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +0 -74
  250. package/node_modules/jose/dist/types/jwk/embedded.d.ts +0 -17
  251. package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +0 -32
  252. package/node_modules/jose/dist/types/jwks/local.d.ts +0 -29
  253. package/node_modules/jose/dist/types/jwks/remote.d.ts +0 -237
  254. package/node_modules/jose/dist/types/jws/compact/sign.d.ts +0 -36
  255. package/node_modules/jose/dist/types/jws/compact/verify.d.ts +0 -33
  256. package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +0 -42
  257. package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +0 -33
  258. package/node_modules/jose/dist/types/jws/general/sign.d.ts +0 -53
  259. package/node_modules/jose/dist/types/jws/general/verify.d.ts +0 -33
  260. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +0 -35
  261. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +0 -91
  262. package/node_modules/jose/dist/types/jwt/sign.d.ts +0 -43
  263. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +0 -43
  264. package/node_modules/jose/dist/types/jwt/verify.d.ts +0 -37
  265. package/node_modules/jose/dist/types/key/export.d.ts +0 -33
  266. package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +0 -47
  267. package/node_modules/jose/dist/types/key/generate_secret.d.ts +0 -35
  268. package/node_modules/jose/dist/types/key/import.d.ts +0 -83
  269. package/node_modules/jose/dist/types/types.d.ts +0 -841
  270. package/node_modules/jose/dist/types/util/base64url.d.ts +0 -9
  271. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +0 -18
  272. package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +0 -17
  273. package/node_modules/jose/dist/types/util/errors.d.ts +0 -213
  274. package/node_modules/jose/dist/webapi/index.js +0 -32
  275. package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +0 -27
  276. package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +0 -27
  277. package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +0 -165
  278. package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +0 -169
  279. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +0 -31
  280. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +0 -187
  281. package/node_modules/jose/dist/webapi/jwk/embedded.js +0 -17
  282. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +0 -68
  283. package/node_modules/jose/dist/webapi/jwks/local.js +0 -119
  284. package/node_modules/jose/dist/webapi/jwks/remote.js +0 -179
  285. package/node_modules/jose/dist/webapi/jws/compact/sign.js +0 -18
  286. package/node_modules/jose/dist/webapi/jws/compact/verify.js +0 -21
  287. package/node_modules/jose/dist/webapi/jws/flattened/sign.js +0 -92
  288. package/node_modules/jose/dist/webapi/jws/flattened/verify.js +0 -120
  289. package/node_modules/jose/dist/webapi/jws/general/sign.js +0 -73
  290. package/node_modules/jose/dist/webapi/jws/general/verify.js +0 -24
  291. package/node_modules/jose/dist/webapi/jwt/decrypt.js +0 -23
  292. package/node_modules/jose/dist/webapi/jwt/encrypt.js +0 -108
  293. package/node_modules/jose/dist/webapi/jwt/sign.js +0 -52
  294. package/node_modules/jose/dist/webapi/jwt/unsecured.js +0 -63
  295. package/node_modules/jose/dist/webapi/jwt/verify.js +0 -15
  296. package/node_modules/jose/dist/webapi/key/export.js +0 -11
  297. package/node_modules/jose/dist/webapi/key/generate_key_pair.js +0 -97
  298. package/node_modules/jose/dist/webapi/key/generate_secret.js +0 -40
  299. package/node_modules/jose/dist/webapi/key/import.js +0 -57
  300. package/node_modules/jose/dist/webapi/lib/aesgcmkw.js +0 -16
  301. package/node_modules/jose/dist/webapi/lib/aeskw.js +0 -25
  302. package/node_modules/jose/dist/webapi/lib/asn1.js +0 -243
  303. package/node_modules/jose/dist/webapi/lib/base64.js +0 -22
  304. package/node_modules/jose/dist/webapi/lib/buffer_utils.js +0 -43
  305. package/node_modules/jose/dist/webapi/lib/cek.js +0 -19
  306. package/node_modules/jose/dist/webapi/lib/check_cek_length.js +0 -7
  307. package/node_modules/jose/dist/webapi/lib/check_iv_length.js +0 -7
  308. package/node_modules/jose/dist/webapi/lib/check_key_length.js +0 -8
  309. package/node_modules/jose/dist/webapi/lib/check_key_type.js +0 -122
  310. package/node_modules/jose/dist/webapi/lib/crypto_key.js +0 -143
  311. package/node_modules/jose/dist/webapi/lib/decrypt.js +0 -106
  312. package/node_modules/jose/dist/webapi/lib/decrypt_key_management.js +0 -127
  313. package/node_modules/jose/dist/webapi/lib/digest.js +0 -4
  314. package/node_modules/jose/dist/webapi/lib/ecdhes.js +0 -52
  315. package/node_modules/jose/dist/webapi/lib/encrypt.js +0 -74
  316. package/node_modules/jose/dist/webapi/lib/encrypt_key_management.js +0 -92
  317. package/node_modules/jose/dist/webapi/lib/get_sign_verify_key.js +0 -12
  318. package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +0 -27
  319. package/node_modules/jose/dist/webapi/lib/is_disjoint.js +0 -21
  320. package/node_modules/jose/dist/webapi/lib/is_jwk.js +0 -6
  321. package/node_modules/jose/dist/webapi/lib/is_key_like.js +0 -17
  322. package/node_modules/jose/dist/webapi/lib/is_object.js +0 -14
  323. package/node_modules/jose/dist/webapi/lib/iv.js +0 -19
  324. package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +0 -109
  325. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +0 -238
  326. package/node_modules/jose/dist/webapi/lib/key_to_jwk.js +0 -31
  327. package/node_modules/jose/dist/webapi/lib/normalize_key.js +0 -176
  328. package/node_modules/jose/dist/webapi/lib/pbes2kw.js +0 -39
  329. package/node_modules/jose/dist/webapi/lib/private_symbols.js +0 -1
  330. package/node_modules/jose/dist/webapi/lib/rsaes.js +0 -24
  331. package/node_modules/jose/dist/webapi/lib/sign.js +0 -9
  332. package/node_modules/jose/dist/webapi/lib/subtle_dsa.js +0 -31
  333. package/node_modules/jose/dist/webapi/lib/validate_algorithms.js +0 -10
  334. package/node_modules/jose/dist/webapi/lib/validate_crit.js +0 -33
  335. package/node_modules/jose/dist/webapi/lib/verify.js +0 -14
  336. package/node_modules/jose/dist/webapi/util/base64url.js +0 -30
  337. package/node_modules/jose/dist/webapi/util/decode_jwt.js +0 -32
  338. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +0 -34
  339. package/node_modules/jose/dist/webapi/util/errors.js +0 -99
  340. package/node_modules/jose/package.json +0 -200
  341. package/node_modules/zod/LICENSE +0 -21
  342. package/node_modules/zod/README.md +0 -191
  343. package/node_modules/zod/index.cjs +0 -33
  344. package/node_modules/zod/index.d.cts +0 -4
  345. package/node_modules/zod/index.d.ts +0 -4
  346. package/node_modules/zod/index.js +0 -4
  347. package/node_modules/zod/locales/index.cjs +0 -17
  348. package/node_modules/zod/locales/index.d.cts +0 -1
  349. package/node_modules/zod/locales/index.d.ts +0 -1
  350. package/node_modules/zod/locales/index.js +0 -1
  351. package/node_modules/zod/locales/package.json +0 -7
  352. package/node_modules/zod/mini/index.cjs +0 -32
  353. package/node_modules/zod/mini/index.d.cts +0 -3
  354. package/node_modules/zod/mini/index.d.ts +0 -3
  355. package/node_modules/zod/mini/index.js +0 -3
  356. package/node_modules/zod/mini/package.json +0 -7
  357. package/node_modules/zod/package.json +0 -135
  358. package/node_modules/zod/src/index.ts +0 -4
  359. package/node_modules/zod/src/locales/index.ts +0 -1
  360. package/node_modules/zod/src/mini/index.ts +0 -3
  361. package/node_modules/zod/src/v3/ZodError.ts +0 -330
  362. package/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
  363. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  364. package/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
  365. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
  366. package/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
  367. package/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
  368. package/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
  369. package/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
  370. package/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
  371. package/node_modules/zod/src/v3/errors.ts +0 -13
  372. package/node_modules/zod/src/v3/external.ts +0 -6
  373. package/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
  374. package/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
  375. package/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
  376. package/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
  377. package/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
  378. package/node_modules/zod/src/v3/helpers/util.ts +0 -224
  379. package/node_modules/zod/src/v3/index.ts +0 -4
  380. package/node_modules/zod/src/v3/locales/en.ts +0 -124
  381. package/node_modules/zod/src/v3/standard-schema.ts +0 -113
  382. package/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
  383. package/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
  384. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
  385. package/node_modules/zod/src/v3/tests/array.test.ts +0 -71
  386. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
  387. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
  388. package/node_modules/zod/src/v3/tests/base.test.ts +0 -29
  389. package/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
  390. package/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
  391. package/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
  392. package/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
  393. package/node_modules/zod/src/v3/tests/complex.test.ts +0 -70
  394. package/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
  395. package/node_modules/zod/src/v3/tests/date.test.ts +0 -32
  396. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
  397. package/node_modules/zod/src/v3/tests/default.test.ts +0 -112
  398. package/node_modules/zod/src/v3/tests/description.test.ts +0 -33
  399. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
  400. package/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
  401. package/node_modules/zod/src/v3/tests/error.test.ts +0 -551
  402. package/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
  403. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  404. package/node_modules/zod/src/v3/tests/function.test.ts +0 -261
  405. package/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
  406. package/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
  407. package/node_modules/zod/src/v3/tests/intersection.test.ts +0 -110
  408. package/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
  409. package/node_modules/zod/src/v3/tests/language-server.test.ts +0 -207
  410. package/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
  411. package/node_modules/zod/src/v3/tests/map.test.ts +0 -110
  412. package/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
  413. package/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
  414. package/node_modules/zod/src/v3/tests/nan.test.ts +0 -24
  415. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
  416. package/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
  417. package/node_modules/zod/src/v3/tests/number.test.ts +0 -176
  418. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
  419. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
  420. package/node_modules/zod/src/v3/tests/object.test.ts +0 -434
  421. package/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
  422. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
  423. package/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
  424. package/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
  425. package/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
  426. package/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
  427. package/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
  428. package/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
  429. package/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
  430. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -194
  431. package/node_modules/zod/src/v3/tests/record.test.ts +0 -171
  432. package/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
  433. package/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
  434. package/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
  435. package/node_modules/zod/src/v3/tests/set.test.ts +0 -142
  436. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
  437. package/node_modules/zod/src/v3/tests/string.test.ts +0 -916
  438. package/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
  439. package/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
  440. package/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
  441. package/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
  442. package/node_modules/zod/src/v3/tests/void.test.ts +0 -15
  443. package/node_modules/zod/src/v3/types.ts +0 -5138
  444. package/node_modules/zod/src/v4/classic/checks.ts +0 -32
  445. package/node_modules/zod/src/v4/classic/coerce.ts +0 -27
  446. package/node_modules/zod/src/v4/classic/compat.ts +0 -70
  447. package/node_modules/zod/src/v4/classic/errors.ts +0 -82
  448. package/node_modules/zod/src/v4/classic/external.ts +0 -52
  449. package/node_modules/zod/src/v4/classic/from-json-schema.ts +0 -659
  450. package/node_modules/zod/src/v4/classic/index.ts +0 -5
  451. package/node_modules/zod/src/v4/classic/iso.ts +0 -90
  452. package/node_modules/zod/src/v4/classic/parse.ts +0 -82
  453. package/node_modules/zod/src/v4/classic/schemas.ts +0 -2672
  454. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
  455. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +0 -59
  456. package/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -264
  457. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -216
  458. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
  459. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
  460. package/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
  461. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -54
  462. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -106
  463. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -326
  464. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
  465. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -573
  466. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -703
  467. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
  468. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -374
  469. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
  470. package/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -62
  471. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -302
  472. package/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -409
  473. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +0 -27
  474. package/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
  475. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +0 -197
  476. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -694
  477. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -285
  478. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -807
  479. package/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -711
  480. package/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -96
  481. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -179
  482. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +0 -26
  483. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +0 -895
  484. package/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -360
  485. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
  486. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +0 -39
  487. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -68
  488. package/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -939
  489. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -60
  490. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -198
  491. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +0 -46
  492. package/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -109
  493. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -227
  494. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -117
  495. package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +0 -29
  496. package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +0 -24
  497. package/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -330
  498. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
  499. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
  500. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -101
  501. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
  502. package/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -325
  503. package/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -717
  504. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -333
  505. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -450
  506. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -211
  507. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -101
  508. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -74
  509. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +0 -26
  510. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -351
  511. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
  512. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
  513. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
  514. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -252
  515. package/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -717
  516. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -631
  517. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -633
  518. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -243
  519. package/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -181
  520. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -134
  521. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -125
  522. package/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -1224
  523. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -106
  524. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -771
  525. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +0 -438
  526. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -3125
  527. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -378
  528. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -496
  529. package/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -273
  530. package/node_modules/zod/src/v4/classic/tests/url.test.ts +0 -13
  531. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
  532. package/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
  533. package/node_modules/zod/src/v4/core/api.ts +0 -1823
  534. package/node_modules/zod/src/v4/core/checks.ts +0 -1293
  535. package/node_modules/zod/src/v4/core/config.ts +0 -15
  536. package/node_modules/zod/src/v4/core/core.ts +0 -153
  537. package/node_modules/zod/src/v4/core/doc.ts +0 -44
  538. package/node_modules/zod/src/v4/core/errors.ts +0 -455
  539. package/node_modules/zod/src/v4/core/index.ts +0 -16
  540. package/node_modules/zod/src/v4/core/json-schema-generator.ts +0 -126
  541. package/node_modules/zod/src/v4/core/json-schema-processors.ts +0 -666
  542. package/node_modules/zod/src/v4/core/json-schema.ts +0 -147
  543. package/node_modules/zod/src/v4/core/parse.ts +0 -195
  544. package/node_modules/zod/src/v4/core/regexes.ts +0 -190
  545. package/node_modules/zod/src/v4/core/registries.ts +0 -105
  546. package/node_modules/zod/src/v4/core/schemas.ts +0 -4730
  547. package/node_modules/zod/src/v4/core/standard-schema.ts +0 -159
  548. package/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -59
  549. package/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
  550. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
  551. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +0 -215
  552. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
  553. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -181
  554. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +0 -72
  555. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +0 -379
  556. package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +0 -163
  557. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +0 -46
  558. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
  559. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
  560. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +0 -105
  561. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +0 -125
  562. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +0 -45
  563. package/node_modules/zod/src/v4/core/to-json-schema.ts +0 -622
  564. package/node_modules/zod/src/v4/core/util.ts +0 -983
  565. package/node_modules/zod/src/v4/core/versions.ts +0 -5
  566. package/node_modules/zod/src/v4/core/zsf.ts +0 -323
  567. package/node_modules/zod/src/v4/index.ts +0 -4
  568. package/node_modules/zod/src/v4/locales/ar.ts +0 -115
  569. package/node_modules/zod/src/v4/locales/az.ts +0 -111
  570. package/node_modules/zod/src/v4/locales/be.ts +0 -176
  571. package/node_modules/zod/src/v4/locales/bg.ts +0 -128
  572. package/node_modules/zod/src/v4/locales/ca.ts +0 -116
  573. package/node_modules/zod/src/v4/locales/cs.ts +0 -118
  574. package/node_modules/zod/src/v4/locales/da.ts +0 -123
  575. package/node_modules/zod/src/v4/locales/de.ts +0 -116
  576. package/node_modules/zod/src/v4/locales/el.ts +0 -121
  577. package/node_modules/zod/src/v4/locales/en.ts +0 -123
  578. package/node_modules/zod/src/v4/locales/eo.ts +0 -118
  579. package/node_modules/zod/src/v4/locales/es.ts +0 -141
  580. package/node_modules/zod/src/v4/locales/fa.ts +0 -126
  581. package/node_modules/zod/src/v4/locales/fi.ts +0 -121
  582. package/node_modules/zod/src/v4/locales/fr-CA.ts +0 -116
  583. package/node_modules/zod/src/v4/locales/fr.ts +0 -132
  584. package/node_modules/zod/src/v4/locales/he.ts +0 -246
  585. package/node_modules/zod/src/v4/locales/hr.ts +0 -131
  586. package/node_modules/zod/src/v4/locales/hu.ts +0 -117
  587. package/node_modules/zod/src/v4/locales/hy.ts +0 -164
  588. package/node_modules/zod/src/v4/locales/id.ts +0 -115
  589. package/node_modules/zod/src/v4/locales/index.ts +0 -52
  590. package/node_modules/zod/src/v4/locales/is.ts +0 -119
  591. package/node_modules/zod/src/v4/locales/it.ts +0 -116
  592. package/node_modules/zod/src/v4/locales/ja.ts +0 -114
  593. package/node_modules/zod/src/v4/locales/ka.ts +0 -123
  594. package/node_modules/zod/src/v4/locales/kh.ts +0 -7
  595. package/node_modules/zod/src/v4/locales/km.ts +0 -119
  596. package/node_modules/zod/src/v4/locales/ko.ts +0 -121
  597. package/node_modules/zod/src/v4/locales/lt.ts +0 -239
  598. package/node_modules/zod/src/v4/locales/mk.ts +0 -118
  599. package/node_modules/zod/src/v4/locales/ms.ts +0 -115
  600. package/node_modules/zod/src/v4/locales/nl.ts +0 -121
  601. package/node_modules/zod/src/v4/locales/no.ts +0 -116
  602. package/node_modules/zod/src/v4/locales/ota.ts +0 -117
  603. package/node_modules/zod/src/v4/locales/pl.ts +0 -118
  604. package/node_modules/zod/src/v4/locales/ps.ts +0 -126
  605. package/node_modules/zod/src/v4/locales/pt.ts +0 -116
  606. package/node_modules/zod/src/v4/locales/ro.ts +0 -129
  607. package/node_modules/zod/src/v4/locales/ru.ts +0 -176
  608. package/node_modules/zod/src/v4/locales/sl.ts +0 -118
  609. package/node_modules/zod/src/v4/locales/sv.ts +0 -119
  610. package/node_modules/zod/src/v4/locales/ta.ts +0 -118
  611. package/node_modules/zod/src/v4/locales/th.ts +0 -119
  612. package/node_modules/zod/src/v4/locales/tr.ts +0 -111
  613. package/node_modules/zod/src/v4/locales/ua.ts +0 -7
  614. package/node_modules/zod/src/v4/locales/uk.ts +0 -117
  615. package/node_modules/zod/src/v4/locales/ur.ts +0 -119
  616. package/node_modules/zod/src/v4/locales/uz.ts +0 -117
  617. package/node_modules/zod/src/v4/locales/vi.ts +0 -117
  618. package/node_modules/zod/src/v4/locales/yo.ts +0 -124
  619. package/node_modules/zod/src/v4/locales/zh-CN.ts +0 -116
  620. package/node_modules/zod/src/v4/locales/zh-TW.ts +0 -115
  621. package/node_modules/zod/src/v4/mini/checks.ts +0 -32
  622. package/node_modules/zod/src/v4/mini/coerce.ts +0 -27
  623. package/node_modules/zod/src/v4/mini/external.ts +0 -41
  624. package/node_modules/zod/src/v4/mini/index.ts +0 -3
  625. package/node_modules/zod/src/v4/mini/iso.ts +0 -66
  626. package/node_modules/zod/src/v4/mini/parse.ts +0 -14
  627. package/node_modules/zod/src/v4/mini/schemas.ts +0 -1947
  628. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +0 -24
  629. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -129
  630. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -94
  631. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -144
  632. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -548
  633. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -36
  634. package/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -22
  635. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -5
  636. package/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -993
  637. package/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -95
  638. package/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -227
  639. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
  640. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -325
  641. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +0 -50
  642. package/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -352
  643. package/node_modules/zod/src/v4-mini/index.ts +0 -3
  644. package/node_modules/zod/v3/ZodError.cjs +0 -138
  645. package/node_modules/zod/v3/ZodError.d.cts +0 -164
  646. package/node_modules/zod/v3/ZodError.d.ts +0 -164
  647. package/node_modules/zod/v3/ZodError.js +0 -133
  648. package/node_modules/zod/v3/errors.cjs +0 -17
  649. package/node_modules/zod/v3/errors.d.cts +0 -5
  650. package/node_modules/zod/v3/errors.d.ts +0 -5
  651. package/node_modules/zod/v3/errors.js +0 -9
  652. package/node_modules/zod/v3/external.cjs +0 -22
  653. package/node_modules/zod/v3/external.d.cts +0 -6
  654. package/node_modules/zod/v3/external.d.ts +0 -6
  655. package/node_modules/zod/v3/external.js +0 -6
  656. package/node_modules/zod/v3/helpers/enumUtil.cjs +0 -2
  657. package/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -8
  658. package/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -8
  659. package/node_modules/zod/v3/helpers/enumUtil.js +0 -1
  660. package/node_modules/zod/v3/helpers/errorUtil.cjs +0 -9
  661. package/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -9
  662. package/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -9
  663. package/node_modules/zod/v3/helpers/errorUtil.js +0 -6
  664. package/node_modules/zod/v3/helpers/parseUtil.cjs +0 -124
  665. package/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -78
  666. package/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -78
  667. package/node_modules/zod/v3/helpers/parseUtil.js +0 -109
  668. package/node_modules/zod/v3/helpers/partialUtil.cjs +0 -2
  669. package/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -8
  670. package/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -8
  671. package/node_modules/zod/v3/helpers/partialUtil.js +0 -1
  672. package/node_modules/zod/v3/helpers/typeAliases.cjs +0 -2
  673. package/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -2
  674. package/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -2
  675. package/node_modules/zod/v3/helpers/typeAliases.js +0 -1
  676. package/node_modules/zod/v3/helpers/util.cjs +0 -137
  677. package/node_modules/zod/v3/helpers/util.d.cts +0 -85
  678. package/node_modules/zod/v3/helpers/util.d.ts +0 -85
  679. package/node_modules/zod/v3/helpers/util.js +0 -133
  680. package/node_modules/zod/v3/index.cjs +0 -33
  681. package/node_modules/zod/v3/index.d.cts +0 -4
  682. package/node_modules/zod/v3/index.d.ts +0 -4
  683. package/node_modules/zod/v3/index.js +0 -4
  684. package/node_modules/zod/v3/locales/en.cjs +0 -112
  685. package/node_modules/zod/v3/locales/en.d.cts +0 -3
  686. package/node_modules/zod/v3/locales/en.d.ts +0 -3
  687. package/node_modules/zod/v3/locales/en.js +0 -109
  688. package/node_modules/zod/v3/package.json +0 -7
  689. package/node_modules/zod/v3/standard-schema.cjs +0 -2
  690. package/node_modules/zod/v3/standard-schema.d.cts +0 -102
  691. package/node_modules/zod/v3/standard-schema.d.ts +0 -102
  692. package/node_modules/zod/v3/standard-schema.js +0 -1
  693. package/node_modules/zod/v3/types.cjs +0 -3777
  694. package/node_modules/zod/v3/types.d.cts +0 -1034
  695. package/node_modules/zod/v3/types.d.ts +0 -1034
  696. package/node_modules/zod/v3/types.js +0 -3695
  697. package/node_modules/zod/v4/classic/checks.cjs +0 -33
  698. package/node_modules/zod/v4/classic/checks.d.cts +0 -1
  699. package/node_modules/zod/v4/classic/checks.d.ts +0 -1
  700. package/node_modules/zod/v4/classic/checks.js +0 -1
  701. package/node_modules/zod/v4/classic/coerce.cjs +0 -47
  702. package/node_modules/zod/v4/classic/coerce.d.cts +0 -17
  703. package/node_modules/zod/v4/classic/coerce.d.ts +0 -17
  704. package/node_modules/zod/v4/classic/coerce.js +0 -17
  705. package/node_modules/zod/v4/classic/compat.cjs +0 -61
  706. package/node_modules/zod/v4/classic/compat.d.cts +0 -50
  707. package/node_modules/zod/v4/classic/compat.d.ts +0 -50
  708. package/node_modules/zod/v4/classic/compat.js +0 -31
  709. package/node_modules/zod/v4/classic/errors.cjs +0 -74
  710. package/node_modules/zod/v4/classic/errors.d.cts +0 -30
  711. package/node_modules/zod/v4/classic/errors.d.ts +0 -30
  712. package/node_modules/zod/v4/classic/errors.js +0 -48
  713. package/node_modules/zod/v4/classic/external.cjs +0 -73
  714. package/node_modules/zod/v4/classic/external.d.cts +0 -16
  715. package/node_modules/zod/v4/classic/external.d.ts +0 -16
  716. package/node_modules/zod/v4/classic/external.js +0 -20
  717. package/node_modules/zod/v4/classic/from-json-schema.cjs +0 -625
  718. package/node_modules/zod/v4/classic/from-json-schema.d.cts +0 -12
  719. package/node_modules/zod/v4/classic/from-json-schema.d.ts +0 -12
  720. package/node_modules/zod/v4/classic/from-json-schema.js +0 -599
  721. package/node_modules/zod/v4/classic/index.cjs +0 -33
  722. package/node_modules/zod/v4/classic/index.d.cts +0 -4
  723. package/node_modules/zod/v4/classic/index.d.ts +0 -4
  724. package/node_modules/zod/v4/classic/index.js +0 -4
  725. package/node_modules/zod/v4/classic/iso.cjs +0 -60
  726. package/node_modules/zod/v4/classic/iso.d.cts +0 -22
  727. package/node_modules/zod/v4/classic/iso.d.ts +0 -22
  728. package/node_modules/zod/v4/classic/iso.js +0 -30
  729. package/node_modules/zod/v4/classic/package.json +0 -7
  730. package/node_modules/zod/v4/classic/parse.cjs +0 -41
  731. package/node_modules/zod/v4/classic/parse.d.cts +0 -31
  732. package/node_modules/zod/v4/classic/parse.d.ts +0 -31
  733. package/node_modules/zod/v4/classic/parse.js +0 -15
  734. package/node_modules/zod/v4/classic/schemas.cjs +0 -1511
  735. package/node_modules/zod/v4/classic/schemas.d.cts +0 -767
  736. package/node_modules/zod/v4/classic/schemas.d.ts +0 -767
  737. package/node_modules/zod/v4/classic/schemas.js +0 -1395
  738. package/node_modules/zod/v4/core/api.cjs +0 -1227
  739. package/node_modules/zod/v4/core/api.d.cts +0 -325
  740. package/node_modules/zod/v4/core/api.d.ts +0 -325
  741. package/node_modules/zod/v4/core/api.js +0 -1087
  742. package/node_modules/zod/v4/core/checks.cjs +0 -601
  743. package/node_modules/zod/v4/core/checks.d.cts +0 -278
  744. package/node_modules/zod/v4/core/checks.d.ts +0 -278
  745. package/node_modules/zod/v4/core/checks.js +0 -575
  746. package/node_modules/zod/v4/core/core.cjs +0 -85
  747. package/node_modules/zod/v4/core/core.d.cts +0 -70
  748. package/node_modules/zod/v4/core/core.d.ts +0 -70
  749. package/node_modules/zod/v4/core/core.js +0 -78
  750. package/node_modules/zod/v4/core/doc.cjs +0 -39
  751. package/node_modules/zod/v4/core/doc.d.cts +0 -14
  752. package/node_modules/zod/v4/core/doc.d.ts +0 -14
  753. package/node_modules/zod/v4/core/doc.js +0 -35
  754. package/node_modules/zod/v4/core/errors.cjs +0 -216
  755. package/node_modules/zod/v4/core/errors.d.cts +0 -221
  756. package/node_modules/zod/v4/core/errors.d.ts +0 -221
  757. package/node_modules/zod/v4/core/errors.js +0 -185
  758. package/node_modules/zod/v4/core/index.cjs +0 -47
  759. package/node_modules/zod/v4/core/index.d.cts +0 -16
  760. package/node_modules/zod/v4/core/index.d.ts +0 -16
  761. package/node_modules/zod/v4/core/index.js +0 -16
  762. package/node_modules/zod/v4/core/json-schema-generator.cjs +0 -99
  763. package/node_modules/zod/v4/core/json-schema-generator.d.cts +0 -65
  764. package/node_modules/zod/v4/core/json-schema-generator.d.ts +0 -65
  765. package/node_modules/zod/v4/core/json-schema-generator.js +0 -95
  766. package/node_modules/zod/v4/core/json-schema-processors.cjs +0 -644
  767. package/node_modules/zod/v4/core/json-schema-processors.d.cts +0 -49
  768. package/node_modules/zod/v4/core/json-schema-processors.d.ts +0 -49
  769. package/node_modules/zod/v4/core/json-schema-processors.js +0 -601
  770. package/node_modules/zod/v4/core/json-schema.cjs +0 -2
  771. package/node_modules/zod/v4/core/json-schema.d.cts +0 -88
  772. package/node_modules/zod/v4/core/json-schema.d.ts +0 -88
  773. package/node_modules/zod/v4/core/json-schema.js +0 -1
  774. package/node_modules/zod/v4/core/package.json +0 -7
  775. package/node_modules/zod/v4/core/parse.cjs +0 -131
  776. package/node_modules/zod/v4/core/parse.d.cts +0 -49
  777. package/node_modules/zod/v4/core/parse.d.ts +0 -49
  778. package/node_modules/zod/v4/core/parse.js +0 -93
  779. package/node_modules/zod/v4/core/regexes.cjs +0 -172
  780. package/node_modules/zod/v4/core/regexes.d.cts +0 -85
  781. package/node_modules/zod/v4/core/regexes.d.ts +0 -85
  782. package/node_modules/zod/v4/core/regexes.js +0 -139
  783. package/node_modules/zod/v4/core/registries.cjs +0 -56
  784. package/node_modules/zod/v4/core/registries.d.cts +0 -35
  785. package/node_modules/zod/v4/core/registries.d.ts +0 -35
  786. package/node_modules/zod/v4/core/registries.js +0 -51
  787. package/node_modules/zod/v4/core/schemas.cjs +0 -2270
  788. package/node_modules/zod/v4/core/schemas.d.cts +0 -1184
  789. package/node_modules/zod/v4/core/schemas.d.ts +0 -1184
  790. package/node_modules/zod/v4/core/schemas.js +0 -2239
  791. package/node_modules/zod/v4/core/standard-schema.cjs +0 -2
  792. package/node_modules/zod/v4/core/standard-schema.d.cts +0 -126
  793. package/node_modules/zod/v4/core/standard-schema.d.ts +0 -126
  794. package/node_modules/zod/v4/core/standard-schema.js +0 -1
  795. package/node_modules/zod/v4/core/to-json-schema.cjs +0 -457
  796. package/node_modules/zod/v4/core/to-json-schema.d.cts +0 -114
  797. package/node_modules/zod/v4/core/to-json-schema.d.ts +0 -114
  798. package/node_modules/zod/v4/core/to-json-schema.js +0 -448
  799. package/node_modules/zod/v4/core/util.cjs +0 -734
  800. package/node_modules/zod/v4/core/util.d.cts +0 -200
  801. package/node_modules/zod/v4/core/util.d.ts +0 -200
  802. package/node_modules/zod/v4/core/util.js +0 -674
  803. package/node_modules/zod/v4/core/versions.cjs +0 -8
  804. package/node_modules/zod/v4/core/versions.d.cts +0 -5
  805. package/node_modules/zod/v4/core/versions.d.ts +0 -5
  806. package/node_modules/zod/v4/core/versions.js +0 -5
  807. package/node_modules/zod/v4/index.cjs +0 -22
  808. package/node_modules/zod/v4/index.d.cts +0 -3
  809. package/node_modules/zod/v4/index.d.ts +0 -3
  810. package/node_modules/zod/v4/index.js +0 -3
  811. package/node_modules/zod/v4/locales/ar.cjs +0 -133
  812. package/node_modules/zod/v4/locales/ar.d.cts +0 -5
  813. package/node_modules/zod/v4/locales/ar.d.ts +0 -4
  814. package/node_modules/zod/v4/locales/ar.js +0 -106
  815. package/node_modules/zod/v4/locales/az.cjs +0 -132
  816. package/node_modules/zod/v4/locales/az.d.cts +0 -5
  817. package/node_modules/zod/v4/locales/az.d.ts +0 -4
  818. package/node_modules/zod/v4/locales/az.js +0 -105
  819. package/node_modules/zod/v4/locales/be.cjs +0 -183
  820. package/node_modules/zod/v4/locales/be.d.cts +0 -5
  821. package/node_modules/zod/v4/locales/be.d.ts +0 -4
  822. package/node_modules/zod/v4/locales/be.js +0 -156
  823. package/node_modules/zod/v4/locales/bg.cjs +0 -147
  824. package/node_modules/zod/v4/locales/bg.d.cts +0 -5
  825. package/node_modules/zod/v4/locales/bg.d.ts +0 -4
  826. package/node_modules/zod/v4/locales/bg.js +0 -120
  827. package/node_modules/zod/v4/locales/ca.cjs +0 -134
  828. package/node_modules/zod/v4/locales/ca.d.cts +0 -5
  829. package/node_modules/zod/v4/locales/ca.d.ts +0 -4
  830. package/node_modules/zod/v4/locales/ca.js +0 -107
  831. package/node_modules/zod/v4/locales/cs.cjs +0 -138
  832. package/node_modules/zod/v4/locales/cs.d.cts +0 -5
  833. package/node_modules/zod/v4/locales/cs.d.ts +0 -4
  834. package/node_modules/zod/v4/locales/cs.js +0 -111
  835. package/node_modules/zod/v4/locales/da.cjs +0 -142
  836. package/node_modules/zod/v4/locales/da.d.cts +0 -5
  837. package/node_modules/zod/v4/locales/da.d.ts +0 -4
  838. package/node_modules/zod/v4/locales/da.js +0 -115
  839. package/node_modules/zod/v4/locales/de.cjs +0 -135
  840. package/node_modules/zod/v4/locales/de.d.cts +0 -5
  841. package/node_modules/zod/v4/locales/de.d.ts +0 -4
  842. package/node_modules/zod/v4/locales/de.js +0 -108
  843. package/node_modules/zod/v4/locales/el.cjs +0 -136
  844. package/node_modules/zod/v4/locales/el.d.cts +0 -5
  845. package/node_modules/zod/v4/locales/el.d.ts +0 -4
  846. package/node_modules/zod/v4/locales/el.js +0 -109
  847. package/node_modules/zod/v4/locales/en.cjs +0 -140
  848. package/node_modules/zod/v4/locales/en.d.cts +0 -5
  849. package/node_modules/zod/v4/locales/en.d.ts +0 -4
  850. package/node_modules/zod/v4/locales/en.js +0 -113
  851. package/node_modules/zod/v4/locales/eo.cjs +0 -136
  852. package/node_modules/zod/v4/locales/eo.d.cts +0 -5
  853. package/node_modules/zod/v4/locales/eo.d.ts +0 -4
  854. package/node_modules/zod/v4/locales/eo.js +0 -109
  855. package/node_modules/zod/v4/locales/es.cjs +0 -159
  856. package/node_modules/zod/v4/locales/es.d.cts +0 -5
  857. package/node_modules/zod/v4/locales/es.d.ts +0 -4
  858. package/node_modules/zod/v4/locales/es.js +0 -132
  859. package/node_modules/zod/v4/locales/fa.cjs +0 -141
  860. package/node_modules/zod/v4/locales/fa.d.cts +0 -5
  861. package/node_modules/zod/v4/locales/fa.d.ts +0 -4
  862. package/node_modules/zod/v4/locales/fa.js +0 -114
  863. package/node_modules/zod/v4/locales/fi.cjs +0 -139
  864. package/node_modules/zod/v4/locales/fi.d.cts +0 -5
  865. package/node_modules/zod/v4/locales/fi.d.ts +0 -4
  866. package/node_modules/zod/v4/locales/fi.js +0 -112
  867. package/node_modules/zod/v4/locales/fr-CA.cjs +0 -134
  868. package/node_modules/zod/v4/locales/fr-CA.d.cts +0 -5
  869. package/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
  870. package/node_modules/zod/v4/locales/fr-CA.js +0 -107
  871. package/node_modules/zod/v4/locales/fr.cjs +0 -152
  872. package/node_modules/zod/v4/locales/fr.d.cts +0 -5
  873. package/node_modules/zod/v4/locales/fr.d.ts +0 -4
  874. package/node_modules/zod/v4/locales/fr.js +0 -125
  875. package/node_modules/zod/v4/locales/he.cjs +0 -241
  876. package/node_modules/zod/v4/locales/he.d.cts +0 -5
  877. package/node_modules/zod/v4/locales/he.d.ts +0 -4
  878. package/node_modules/zod/v4/locales/he.js +0 -214
  879. package/node_modules/zod/v4/locales/hr.cjs +0 -149
  880. package/node_modules/zod/v4/locales/hr.d.cts +0 -5
  881. package/node_modules/zod/v4/locales/hr.d.ts +0 -4
  882. package/node_modules/zod/v4/locales/hr.js +0 -122
  883. package/node_modules/zod/v4/locales/hu.cjs +0 -135
  884. package/node_modules/zod/v4/locales/hu.d.cts +0 -5
  885. package/node_modules/zod/v4/locales/hu.d.ts +0 -4
  886. package/node_modules/zod/v4/locales/hu.js +0 -108
  887. package/node_modules/zod/v4/locales/hy.cjs +0 -174
  888. package/node_modules/zod/v4/locales/hy.d.cts +0 -5
  889. package/node_modules/zod/v4/locales/hy.d.ts +0 -4
  890. package/node_modules/zod/v4/locales/hy.js +0 -147
  891. package/node_modules/zod/v4/locales/id.cjs +0 -133
  892. package/node_modules/zod/v4/locales/id.d.cts +0 -5
  893. package/node_modules/zod/v4/locales/id.d.ts +0 -4
  894. package/node_modules/zod/v4/locales/id.js +0 -106
  895. package/node_modules/zod/v4/locales/index.cjs +0 -111
  896. package/node_modules/zod/v4/locales/index.d.cts +0 -52
  897. package/node_modules/zod/v4/locales/index.d.ts +0 -52
  898. package/node_modules/zod/v4/locales/index.js +0 -52
  899. package/node_modules/zod/v4/locales/is.cjs +0 -136
  900. package/node_modules/zod/v4/locales/is.d.cts +0 -5
  901. package/node_modules/zod/v4/locales/is.d.ts +0 -4
  902. package/node_modules/zod/v4/locales/is.js +0 -109
  903. package/node_modules/zod/v4/locales/it.cjs +0 -135
  904. package/node_modules/zod/v4/locales/it.d.cts +0 -5
  905. package/node_modules/zod/v4/locales/it.d.ts +0 -4
  906. package/node_modules/zod/v4/locales/it.js +0 -108
  907. package/node_modules/zod/v4/locales/ja.cjs +0 -134
  908. package/node_modules/zod/v4/locales/ja.d.cts +0 -5
  909. package/node_modules/zod/v4/locales/ja.d.ts +0 -4
  910. package/node_modules/zod/v4/locales/ja.js +0 -107
  911. package/node_modules/zod/v4/locales/ka.cjs +0 -139
  912. package/node_modules/zod/v4/locales/ka.d.cts +0 -5
  913. package/node_modules/zod/v4/locales/ka.d.ts +0 -4
  914. package/node_modules/zod/v4/locales/ka.js +0 -112
  915. package/node_modules/zod/v4/locales/kh.cjs +0 -12
  916. package/node_modules/zod/v4/locales/kh.d.cts +0 -5
  917. package/node_modules/zod/v4/locales/kh.d.ts +0 -5
  918. package/node_modules/zod/v4/locales/kh.js +0 -5
  919. package/node_modules/zod/v4/locales/km.cjs +0 -137
  920. package/node_modules/zod/v4/locales/km.d.cts +0 -5
  921. package/node_modules/zod/v4/locales/km.d.ts +0 -4
  922. package/node_modules/zod/v4/locales/km.js +0 -110
  923. package/node_modules/zod/v4/locales/ko.cjs +0 -138
  924. package/node_modules/zod/v4/locales/ko.d.cts +0 -5
  925. package/node_modules/zod/v4/locales/ko.d.ts +0 -4
  926. package/node_modules/zod/v4/locales/ko.js +0 -111
  927. package/node_modules/zod/v4/locales/lt.cjs +0 -230
  928. package/node_modules/zod/v4/locales/lt.d.cts +0 -5
  929. package/node_modules/zod/v4/locales/lt.d.ts +0 -4
  930. package/node_modules/zod/v4/locales/lt.js +0 -203
  931. package/node_modules/zod/v4/locales/mk.cjs +0 -136
  932. package/node_modules/zod/v4/locales/mk.d.cts +0 -5
  933. package/node_modules/zod/v4/locales/mk.d.ts +0 -4
  934. package/node_modules/zod/v4/locales/mk.js +0 -109
  935. package/node_modules/zod/v4/locales/ms.cjs +0 -134
  936. package/node_modules/zod/v4/locales/ms.d.cts +0 -5
  937. package/node_modules/zod/v4/locales/ms.d.ts +0 -4
  938. package/node_modules/zod/v4/locales/ms.js +0 -107
  939. package/node_modules/zod/v4/locales/nl.cjs +0 -137
  940. package/node_modules/zod/v4/locales/nl.d.cts +0 -5
  941. package/node_modules/zod/v4/locales/nl.d.ts +0 -4
  942. package/node_modules/zod/v4/locales/nl.js +0 -110
  943. package/node_modules/zod/v4/locales/no.cjs +0 -135
  944. package/node_modules/zod/v4/locales/no.d.cts +0 -5
  945. package/node_modules/zod/v4/locales/no.d.ts +0 -4
  946. package/node_modules/zod/v4/locales/no.js +0 -108
  947. package/node_modules/zod/v4/locales/ota.cjs +0 -136
  948. package/node_modules/zod/v4/locales/ota.d.cts +0 -5
  949. package/node_modules/zod/v4/locales/ota.d.ts +0 -4
  950. package/node_modules/zod/v4/locales/ota.js +0 -109
  951. package/node_modules/zod/v4/locales/package.json +0 -7
  952. package/node_modules/zod/v4/locales/pl.cjs +0 -136
  953. package/node_modules/zod/v4/locales/pl.d.cts +0 -5
  954. package/node_modules/zod/v4/locales/pl.d.ts +0 -4
  955. package/node_modules/zod/v4/locales/pl.js +0 -109
  956. package/node_modules/zod/v4/locales/ps.cjs +0 -141
  957. package/node_modules/zod/v4/locales/ps.d.cts +0 -5
  958. package/node_modules/zod/v4/locales/ps.d.ts +0 -4
  959. package/node_modules/zod/v4/locales/ps.js +0 -114
  960. package/node_modules/zod/v4/locales/pt.cjs +0 -135
  961. package/node_modules/zod/v4/locales/pt.d.cts +0 -5
  962. package/node_modules/zod/v4/locales/pt.d.ts +0 -4
  963. package/node_modules/zod/v4/locales/pt.js +0 -108
  964. package/node_modules/zod/v4/locales/ro.cjs +0 -146
  965. package/node_modules/zod/v4/locales/ro.d.cts +0 -5
  966. package/node_modules/zod/v4/locales/ro.d.ts +0 -4
  967. package/node_modules/zod/v4/locales/ro.js +0 -119
  968. package/node_modules/zod/v4/locales/ru.cjs +0 -183
  969. package/node_modules/zod/v4/locales/ru.d.cts +0 -5
  970. package/node_modules/zod/v4/locales/ru.d.ts +0 -4
  971. package/node_modules/zod/v4/locales/ru.js +0 -156
  972. package/node_modules/zod/v4/locales/sl.cjs +0 -136
  973. package/node_modules/zod/v4/locales/sl.d.cts +0 -5
  974. package/node_modules/zod/v4/locales/sl.d.ts +0 -4
  975. package/node_modules/zod/v4/locales/sl.js +0 -109
  976. package/node_modules/zod/v4/locales/sv.cjs +0 -137
  977. package/node_modules/zod/v4/locales/sv.d.cts +0 -5
  978. package/node_modules/zod/v4/locales/sv.d.ts +0 -4
  979. package/node_modules/zod/v4/locales/sv.js +0 -110
  980. package/node_modules/zod/v4/locales/ta.cjs +0 -137
  981. package/node_modules/zod/v4/locales/ta.d.cts +0 -5
  982. package/node_modules/zod/v4/locales/ta.d.ts +0 -4
  983. package/node_modules/zod/v4/locales/ta.js +0 -110
  984. package/node_modules/zod/v4/locales/th.cjs +0 -137
  985. package/node_modules/zod/v4/locales/th.d.cts +0 -5
  986. package/node_modules/zod/v4/locales/th.d.ts +0 -4
  987. package/node_modules/zod/v4/locales/th.js +0 -110
  988. package/node_modules/zod/v4/locales/tr.cjs +0 -132
  989. package/node_modules/zod/v4/locales/tr.d.cts +0 -5
  990. package/node_modules/zod/v4/locales/tr.d.ts +0 -4
  991. package/node_modules/zod/v4/locales/tr.js +0 -105
  992. package/node_modules/zod/v4/locales/ua.cjs +0 -12
  993. package/node_modules/zod/v4/locales/ua.d.cts +0 -5
  994. package/node_modules/zod/v4/locales/ua.d.ts +0 -5
  995. package/node_modules/zod/v4/locales/ua.js +0 -5
  996. package/node_modules/zod/v4/locales/uk.cjs +0 -135
  997. package/node_modules/zod/v4/locales/uk.d.cts +0 -5
  998. package/node_modules/zod/v4/locales/uk.d.ts +0 -4
  999. package/node_modules/zod/v4/locales/uk.js +0 -108
  1000. package/node_modules/zod/v4/locales/ur.cjs +0 -137
  1001. package/node_modules/zod/v4/locales/ur.d.cts +0 -5
  1002. package/node_modules/zod/v4/locales/ur.d.ts +0 -4
  1003. package/node_modules/zod/v4/locales/ur.js +0 -110
  1004. package/node_modules/zod/v4/locales/uz.cjs +0 -137
  1005. package/node_modules/zod/v4/locales/uz.d.cts +0 -5
  1006. package/node_modules/zod/v4/locales/uz.d.ts +0 -4
  1007. package/node_modules/zod/v4/locales/uz.js +0 -110
  1008. package/node_modules/zod/v4/locales/vi.cjs +0 -135
  1009. package/node_modules/zod/v4/locales/vi.d.cts +0 -5
  1010. package/node_modules/zod/v4/locales/vi.d.ts +0 -4
  1011. package/node_modules/zod/v4/locales/vi.js +0 -108
  1012. package/node_modules/zod/v4/locales/yo.cjs +0 -134
  1013. package/node_modules/zod/v4/locales/yo.d.cts +0 -5
  1014. package/node_modules/zod/v4/locales/yo.d.ts +0 -4
  1015. package/node_modules/zod/v4/locales/yo.js +0 -107
  1016. package/node_modules/zod/v4/locales/zh-CN.cjs +0 -136
  1017. package/node_modules/zod/v4/locales/zh-CN.d.cts +0 -5
  1018. package/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
  1019. package/node_modules/zod/v4/locales/zh-CN.js +0 -109
  1020. package/node_modules/zod/v4/locales/zh-TW.cjs +0 -134
  1021. package/node_modules/zod/v4/locales/zh-TW.d.cts +0 -5
  1022. package/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
  1023. package/node_modules/zod/v4/locales/zh-TW.js +0 -107
  1024. package/node_modules/zod/v4/mini/checks.cjs +0 -34
  1025. package/node_modules/zod/v4/mini/checks.d.cts +0 -1
  1026. package/node_modules/zod/v4/mini/checks.d.ts +0 -1
  1027. package/node_modules/zod/v4/mini/checks.js +0 -1
  1028. package/node_modules/zod/v4/mini/coerce.cjs +0 -52
  1029. package/node_modules/zod/v4/mini/coerce.d.cts +0 -7
  1030. package/node_modules/zod/v4/mini/coerce.d.ts +0 -7
  1031. package/node_modules/zod/v4/mini/coerce.js +0 -22
  1032. package/node_modules/zod/v4/mini/external.cjs +0 -63
  1033. package/node_modules/zod/v4/mini/external.d.cts +0 -13
  1034. package/node_modules/zod/v4/mini/external.d.ts +0 -13
  1035. package/node_modules/zod/v4/mini/external.js +0 -14
  1036. package/node_modules/zod/v4/mini/index.cjs +0 -32
  1037. package/node_modules/zod/v4/mini/index.d.cts +0 -3
  1038. package/node_modules/zod/v4/mini/index.d.ts +0 -3
  1039. package/node_modules/zod/v4/mini/index.js +0 -3
  1040. package/node_modules/zod/v4/mini/iso.cjs +0 -64
  1041. package/node_modules/zod/v4/mini/iso.d.cts +0 -22
  1042. package/node_modules/zod/v4/mini/iso.d.ts +0 -22
  1043. package/node_modules/zod/v4/mini/iso.js +0 -34
  1044. package/node_modules/zod/v4/mini/package.json +0 -7
  1045. package/node_modules/zod/v4/mini/parse.cjs +0 -16
  1046. package/node_modules/zod/v4/mini/parse.d.cts +0 -1
  1047. package/node_modules/zod/v4/mini/parse.d.ts +0 -1
  1048. package/node_modules/zod/v4/mini/parse.js +0 -1
  1049. package/node_modules/zod/v4/mini/schemas.cjs +0 -1083
  1050. package/node_modules/zod/v4/mini/schemas.d.cts +0 -445
  1051. package/node_modules/zod/v4/mini/schemas.d.ts +0 -445
  1052. package/node_modules/zod/v4/mini/schemas.js +0 -961
  1053. package/node_modules/zod/v4/package.json +0 -7
  1054. package/node_modules/zod/v4-mini/index.cjs +0 -32
  1055. package/node_modules/zod/v4-mini/index.d.cts +0 -3
  1056. package/node_modules/zod/v4-mini/index.d.ts +0 -3
  1057. package/node_modules/zod/v4-mini/index.js +0 -3
  1058. package/node_modules/zod/v4-mini/package.json +0 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/dev.ts","../../src/cli/port.ts","../../src/cli/dev-api.ts","../../src/cli/tunnel.ts"],"sourcesContent":["/**\n * `mcp-use dev` — a single long-lived dev process (CLI_SPEC.md § Commands →\n * dev): a Vite dev server (Environment API, node/SSR environment only) loads\n * the entry through the module runner; one HTTP listener delegates every\n * request to an atomically swappable handler reference.\n *\n * When views exist, the same Vite server gains a client environment with real\n * HMR for view files; the CLI primes views on each entry reload via the\n * internal {@link registerViews} API (VIEWS_SPEC.md § Dev).\n *\n * Reload, not HMR: on file change the entry is re-imported and the handler\n * reference swapped — no registration diffing or running-registry mutation.\n * All handler generations share one event bus, so a successful swap invalidates\n * the tool, prompt, and resource lists for subscribed development clients.\n *\n * This module is reached only through the bin's dedicated dynamic dev import,\n * so library consumers and production startup never evaluate Vite.\n */\n\nimport { spawn } from \"node:child_process\";\nimport { createServer as createNodeServer } from \"node:http\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport { existsSync } from \"node:fs\";\nimport { networkInterfaces } from \"node:os\";\nimport { join } from \"node:path\";\nimport tailwindcss from \"@tailwindcss/vite\";\nimport react from \"@vitejs/plugin-react\";\nimport { createServer, createServerModuleRunner } from \"vite\";\nimport {\n InMemoryServerEventBus,\n localhostAllowedHostnames,\n localhostAllowedOrigins,\n type ServerEventBus,\n validateHostHeader,\n validateOriginHeader,\n} from \"@modelcontextprotocol/server\";\n\nimport { resolvePort as resolvePreferredPort } from \"../bin/args.js\";\nimport { discoverEntry } from \"./entry.js\";\nimport { resolvePort } from \"./port.js\";\nimport { resolveTailwindCss, resolveUserViteConfig } from \"./vite-config.js\";\nimport { createDevApiHandler } from \"./dev-api.js\";\nimport { createTunnelManager } from \"./tunnel.js\";\nimport { ensureMcpEnvDeclaration } from \"./mcp-env-declaration.js\";\nimport { resolveWorkspacePaths } from \"./workspace.js\";\nimport { mcpUseViewsPlugin } from \"./views-plugin.js\";\nimport {\n buildDevViewsManifest,\n discoverViews,\n isViewPath,\n type DiscoveredView,\n} from \"./views.js\";\nimport type { ViewsManifest } from \"../views/types.js\";\n\n/** Universal web handler returned by `MCPServer.getHandler()`. */\ntype FrameworkHandler = (\n input: Request | { req: { raw: Request } }\n) => Promise<Response>;\n\n/**\n * The duck-typed shape the entry's default export must satisfy: an\n * `MCPServer` instance (checked structurally so the runner may load its own\n * copy of `mcp-use`).\n */\ninterface ServerLike {\n getHandler(options?: { bus?: ServerEventBus }): FrameworkHandler;\n /** URL path prefix the MCP endpoint is mounted at (default `\"/mcp\"`). */\n readonly basePath?: string;\n __primeViews(\n views: ViewsManifest,\n options?: { dev?: boolean; projectRoot?: string }\n ): void;\n}\n\n/**\n * Options for {@link runDev}.\n *\n * @internal\n */\nexport interface DevOptions {\n /** Absolute path to the project root. */\n cwd: string;\n /**\n * Explicit entry path (the `--entry` flag), absolute or relative to `cwd`.\n *\n * @defaultValue Conventional discovery: `src/index.ts`, `src/server.ts`,\n * `index.ts`, `server.ts` — first hit wins.\n */\n entry?: string;\n /**\n * Preferred port. When taken, the next free port upward is used (and the\n * substitution logged).\n *\n * @defaultValue The `PORT` environment variable, else `3000`.\n */\n port?: number;\n /**\n * Interface address to bind — `\"0.0.0.0\"` exposes the dev server to the\n * local network (phones, containers, teammates); the default keeps it\n * machine-local. Printed and auto-opened URLs use `localhost` for\n * loopback/wildcard binds and the given host verbatim otherwise.\n *\n * Localhost-class binds get DNS-rebinding protection: every request's\n * `Host` is validated (plus the active tunnel hostname); `Origin` only on\n * non-GET/HEAD. Non-localhost binds skip validation — the legitimate\n * hostnames are unknowable here — and log a warning instead.\n *\n * @defaultValue `\"127.0.0.1\"` (matching the server's localhost-first posture).\n */\n host?: string;\n /**\n * Abort signal for embedding and tests: aborting shuts the dev process\n * down gracefully (same path as SIGINT/SIGTERM). The CLI itself does not\n * pass this.\n */\n signal?: AbortSignal;\n /**\n * When `true`, start a public tunnel as soon as the HTTP listener is bound\n * (same as the inspector \"Start Tunnel\" control, but at startup).\n *\n * @defaultValue `false`\n */\n tunnel?: boolean;\n /**\n * Auto-open the inspector in the default browser once the listener is\n * bound (`--no-open` sets this to `false`). Opening is additionally\n * skipped when stdout is not a TTY — agents and CI never get a spurious\n * browser launch or a \"failed to open\" error.\n *\n * @defaultValue `true`\n */\n open?: boolean;\n}\n\n/**\n * Best-effort open of `url` in the platform's default browser.\n *\n * Dependency-free (`open`/`start`/`xdg-open` via spawn), detached, and\n * error-swallowing: a missing opener (headless Linux, containers) must never\n * crash or log noise into the dev process.\n */\nfunction openInBrowser(url: string): void {\n const [command, args]: [string, string[]] =\n process.platform === \"darwin\"\n ? [\"open\", [url]]\n : process.platform === \"win32\"\n ? // `start` is a cmd built-in; the empty string is the window title.\n [\"cmd\", [\"/c\", \"start\", \"\", url]]\n : [\"xdg-open\", [url]];\n try {\n const child = spawn(command, args, { stdio: \"ignore\", detached: true });\n child.on(\"error\", () => {\n // Swallow: auto-open is a convenience, never a failure.\n });\n child.unref();\n } catch {\n // Synchronous spawn failures are equally non-fatal.\n }\n}\n\n/**\n * First non-internal IPv4 address of this machine, for the \"Network:\" line\n * printed on wildcard binds — `undefined` when offline.\n */\nfunction lanAddress(): string | undefined {\n for (const addresses of Object.values(networkInterfaces())) {\n for (const address of addresses ?? []) {\n if (!address.internal && address.family === \"IPv4\") {\n return address.address;\n }\n }\n }\n return undefined;\n}\n\n/**\n * Merge `Origin` into an existing `Vary` header without duplicating it.\n *\n * @param res - Node response whose `Vary` may already list other tokens.\n */\nfunction appendVaryOrigin(res: ServerResponse): void {\n const existing = res.getHeader(\"Vary\");\n const current =\n typeof existing === \"string\"\n ? existing\n : Array.isArray(existing)\n ? existing.join(\", \")\n : existing !== undefined\n ? String(existing)\n : \"\";\n if (\n current\n .split(\",\")\n .map((token) => token.trim().toLowerCase())\n .includes(\"origin\")\n ) {\n return;\n }\n res.setHeader(\"Vary\", current === \"\" ? \"Origin\" : `${current}, Origin`);\n}\n\n/**\n * CORS for Vite-served module-graph URLs on the dev listener.\n *\n * Tunnel active → `Access-Control-Allow-Origin: *` (foreign / opaque hosts).\n * No tunnel on a localhost bind → reflect a validated loopback `Origin`\n * (exact value) and set `Vary: Origin`; reflect `null` for opaque sandbox\n * iframes; foreign or missing Origin get no ACAO.\n *\n * @param req - Incoming request (reads `Origin`).\n * @param res - Response to receive CORS headers.\n * @param options - `tunnelActive` when a public tunnel URL is set;\n * `localhostBind` when the listener is on a loopback host.\n */\nfunction applyViteModuleCors(\n req: IncomingMessage,\n res: ServerResponse,\n options: { tunnelActive: boolean; localhostBind: boolean }\n): void {\n if (options.tunnelActive) {\n res.setHeader(\"Access-Control-Allow-Origin\", \"*\");\n return;\n }\n if (!options.localhostBind) {\n return;\n }\n const originHeader = req.headers.origin;\n // Sandboxed MCP App iframes (opaque origin) send `Origin: null` on module GETs.\n if (originHeader === \"null\") {\n res.setHeader(\"Access-Control-Allow-Origin\", \"null\");\n return;\n }\n // validateOriginHeader treats a missing Origin as ok (no header to check);\n // CORS reflection requires a concrete loopback origin string.\n if (typeof originHeader !== \"string\" || originHeader === \"\") {\n return;\n }\n const result = validateOriginHeader(originHeader, localhostAllowedOrigins());\n if (!result.ok || result.origin === undefined) {\n return;\n }\n res.setHeader(\"Access-Control-Allow-Origin\", result.origin);\n appendVaryOrigin(res);\n}\n\n/**\n * Validate the entry module's default export and return it as a\n * {@link ServerLike}.\n */\nfunction serverFrom(moduleExports: Record<string, unknown>): ServerLike {\n const server = moduleExports[\"default\"];\n if (server === null || typeof server !== \"object\") {\n throw new Error(\n \"The server entry must default-export the MCPServer instance \" +\n \"(`export default server`) and never call listen() itself — \" +\n \"`mcp-use dev` owns the socket.\"\n );\n }\n const candidate = server as Partial<ServerLike>;\n if (typeof candidate.getHandler !== \"function\") {\n throw new Error(\n \"The entry's default export has no getHandler() — it must be the \" +\n \"MCPServer instance (`export default server`).\"\n );\n }\n return candidate as ServerLike;\n}\n\n/**\n * Run the dev server: import the entry through Vite's module runner (full\n * TS/alias support), serve `server.getHandler()` on one long-lived HTTP\n * listener, and swap the handler on file change.\n *\n * A throwing re-import keeps the previous handler alive and prints the error\n * — the dev process never crashes on a bad save. `.env` (if present) is\n * loaded from `cwd` via `process.loadEnvFile()` before the entry is first\n * imported.\n *\n * The returned promise resolves after a graceful shutdown (SIGINT/SIGTERM or\n * `options.signal` aborting).\n *\n * @param options - Project root, optional entry override, port and host.\n * @throws If no entry is found, if the initial import fails, if the entry's\n * default export is not an `MCPServer` (see the entry contract in\n * CLI_SPEC.md), or if `vite` is not installed (`mcp-use dev` requires it as a\n * devDependency).\n *\n * @internal Reached only via the bin's dedicated dev command chunk — not\n * re-exported from the package's \".\" entry.\n */\nexport async function runDev(options: DevOptions): Promise<void> {\n process.env.MCP_USE_DEV_CLI = \"1\";\n const host = options.host ?? \"127.0.0.1\";\n const paths = resolveWorkspacePaths(options.cwd);\n const eventBus = new InMemoryServerEventBus((error) => {\n console.error(\"[mcp-use] notification delivery failed:\", error);\n });\n\n const envPath = join(options.cwd, \".env\");\n if (existsSync(envPath)) {\n process.loadEnvFile(envPath);\n }\n\n // Resolve the listener before importing the entry so module-scope OAuth\n // configuration observes the canonical port that this CLI will own.\n // The HTTP listener is a raw node:http server with the vendored\n // toNodeHandler bridge — same role as the old @hono/node-server\n // getRequestListener, without a hono dependency.\n // Connect-style ((req, res, next)) with no fetch-shaped equivalent, so\n // splicing it in front of the swappable fetch handler needs the raw Node\n // request boundary. Creating the (not-yet-listening) server up front also\n // lets Vite attach its HMR websocket to this same socket (`hmr.server`\n // below) — one port total, so several `mcp-use dev` processes coexist\n // without websocket port collisions.\n const httpServer = createNodeServer();\n\n const { port, requested } = await resolvePort(\n resolvePreferredPort(options.port),\n host\n );\n if (port !== requested) {\n console.log(`[mcp-use] port ${requested} is taken, using ${port}`);\n }\n process.env[\"PORT\"] = String(port);\n\n const localFallbackMcpUrl =\n process.env[\"MCP_URL\"] === undefined &&\n (host === \"127.0.0.1\" || host === \"localhost\" || host === \"::1\")\n ? `http://localhost:${port}`\n : undefined;\n\n const entry = discoverEntry(options.cwd, options.entry);\n if (await ensureMcpEnvDeclaration(options.cwd, entry)) {\n console.log(\"[mcp-use] created mcp-env.d.ts\");\n }\n let currentViews: DiscoveredView[] = discoverViews(options.cwd);\n // The Vite client environment (views plugin, Fast Refresh, HMR socket,\n // asset origin) is configured once, from this snapshot. `currentViews`\n // stays live for request routing and re-priming, but a project that starts\n // with zero views needs a dev-server restart to pick up its first view.\n const viewsAtStartup = currentViews.length > 0;\n const userViteConfig = resolveUserViteConfig(options.cwd);\n\n // The bind address is not always a browsable address: `0.0.0.0`/`::`\n // accept connections on every interface but are not valid request hosts\n // in every browser, and `127.0.0.1` reads worse than `localhost` in logs.\n // Anything else (a LAN IP, a hostname) is browsable as itself; bare IPv6\n // addresses need brackets in URLs.\n const loopbackOrWildcard = [\"127.0.0.1\", \"localhost\", \"0.0.0.0\", \"::\", \"::1\"];\n const browsableHost = loopbackOrWildcard.includes(host) ? \"localhost\" : host;\n const devOrigin = `http://${\n browsableHost.includes(\":\") ? `[${browsableHost}]` : browsableHost\n }:${port}`;\n\n const vite = await createServer({\n root: options.cwd,\n configFile: viewsAtStartup ? userViteConfig : false,\n envDir: false,\n logLevel: \"warn\",\n cacheDir: paths.cache,\n resolve: { alias: { tailwindcss: resolveTailwindCss() } },\n plugins: viewsAtStartup\n ? [\n tailwindcss(),\n mcpUseViewsPlugin({\n getViews: () => currentViews,\n dev: { reactRefresh: true },\n }),\n react(),\n ]\n : [],\n server: {\n middlewareMode: true,\n // Absolute asset URLs in dev: without `origin`, Vite emits root-relative\n // paths that resolve against the host page inside srcdoc iframes.\n ...(viewsAtStartup && { origin: devOrigin }),\n // CORS on module URLs is owned by onRequest below (permissive ACAO\n // only while the tunnel is active), not by Vite's own middleware —\n // whose default localhost-only policy would block tunnel-rendering\n // hosts, and whose headers would fight the tunnel-gated ones.\n cors: false,\n // View HMR rides the one HTTP listener: Vite attaches its websocket\n // upgrade handler to our server, so no dedicated HMR port exists to\n // collide when several dev processes run side by side.\n hmr: viewsAtStartup ? { server: httpServer } : false,\n },\n ssr: {\n external: true,\n },\n });\n\n const ssrEnvironment = vite.environments.ssr;\n const runner = createServerModuleRunner(ssrEnvironment, {\n hmr: false,\n sourcemapInterceptor: \"node\",\n });\n\n const importServer = async (): Promise<ServerLike> => {\n const load = async (): Promise<ServerLike> => {\n const moduleExports = (await runner.import(entry)) as Record<\n string,\n unknown\n >;\n const server = serverFrom(moduleExports);\n\n if (currentViews.length > 0) {\n const viewsManifest = buildDevViewsManifest(currentViews);\n if (typeof server.__primeViews !== \"function\") {\n throw new Error(\n \"Loaded MCPServer instance does not support __primeViews.\"\n );\n }\n server.__primeViews(viewsManifest, {\n dev: true,\n projectRoot: options.cwd,\n });\n }\n\n return server;\n };\n\n if (localFallbackMcpUrl === undefined) {\n return load();\n }\n\n // This is safe only because this CLI selected and will bind this local\n // listener. Never derive OAuth identity from an untrusted request Host.\n // Scope it to entry evaluation: MCPServer freezes the trusted canonical\n // resource during construction, while later runtime code must not inherit\n // this CLI-owned synthetic environment value.\n const previousMcpUrl = process.env[\"MCP_URL\"];\n try {\n process.env[\"MCP_URL\"] = localFallbackMcpUrl;\n return await load();\n } finally {\n if (previousMcpUrl === undefined) {\n delete process.env[\"MCP_URL\"];\n } else {\n process.env[\"MCP_URL\"] = previousMcpUrl;\n }\n }\n };\n\n let currentHandler: FrameworkHandler;\n let basePath: string;\n try {\n const server = await importServer();\n currentHandler = server.getHandler({ bus: eventBus });\n basePath = server.basePath ?? \"/mcp\";\n } catch (error) {\n await runner.close();\n await vite.close();\n throw error;\n }\n\n let reloading = false;\n let dirty = false;\n const reload = (): void => {\n if (reloading) {\n dirty = true;\n return;\n }\n reloading = true;\n void (async () => {\n do {\n dirty = false;\n try {\n runner.evaluatedModules.clear();\n const server = await importServer();\n const nextHandler = server.getHandler({ bus: eventBus });\n currentHandler = nextHandler;\n basePath = server.basePath ?? \"/mcp\";\n eventBus.publish({ kind: \"tools_list_changed\" });\n eventBus.publish({ kind: \"prompts_list_changed\" });\n eventBus.publish({ kind: \"resources_list_changed\" });\n console.log(\"[mcp-use] reloaded server entry\");\n } catch (error) {\n console.error(\n \"[mcp-use] reload failed — keeping the previous server:\\n\",\n error\n );\n }\n } while (dirty);\n reloading = false;\n })();\n };\n\n const onSsrFileEvent = (file: string): void => {\n if (isViewPath(file, options.cwd)) {\n return;\n }\n const modules = ssrEnvironment.moduleGraph.getModulesByFile(file);\n if (modules === undefined || modules.size === 0) {\n return;\n }\n for (const mod of modules) {\n ssrEnvironment.moduleGraph.invalidateModule(mod);\n }\n reload();\n };\n\n const onViewFilesystemEvent = (file: string): void => {\n if (!isViewPath(file, options.cwd)) {\n return;\n }\n\n const previousViews = currentViews;\n currentViews = discoverViews(options.cwd);\n\n const viewsChanged =\n previousViews.length !== currentViews.length ||\n previousViews.some(\n (v, i) =>\n v.name !== currentViews[i]?.name ||\n v.entryPath !== currentViews[i]?.entryPath\n );\n\n if (viewsChanged) {\n reload();\n }\n };\n\n const onFileAddOrUnlink = (file: string): void => {\n onViewFilesystemEvent(file);\n onSsrFileEvent(file);\n };\n\n // A `change` event cannot add or remove a view directory, so only\n // `add`/`unlink` rescan `views/` — content edits never pay for the\n // synchronous filesystem walk in discoverViews().\n vite.watcher.on(\"change\", onSsrFileEvent);\n vite.watcher.on(\"add\", onFileAddOrUnlink);\n vite.watcher.on(\"unlink\", onFileAddOrUnlink);\n\n // --- One long-lived HTTP listener delegating to the current handler. -----\n const tunnelManager = createTunnelManager(paths.tunnel);\n\n // Vite owns the upgrade listener and validates Host before our HTTP request\n // guard runs. The public tunnel has already been validated by the proxy and\n // tunnel manager, so present only that active host as the local listener.\n httpServer.prependListener(\"upgrade\", (req) => {\n const tunnelUrl = tunnelManager.status().url;\n if (tunnelUrl === null) return;\n const tunnelHost = new URL(tunnelUrl).hostname;\n const requestHost = req.headers.host?.split(\":\")[0];\n if (requestHost === tunnelHost) {\n req.headers.host = `localhost:${port}`;\n }\n });\n\n // --- DNS-rebinding protection. --------------------------------------------\n // getHandler() applies no Host/Origin validation (its contract assumes a\n // platform edge in front); in dev this process *is* the edge, so\n // localhost-class binds get the same localhost-allowlist checks listen()\n // applies — extended with the active tunnel hostname, since tunnel traffic\n // arrives with the tunnel's public Host. The check runs before any routing,\n // covering the MCP endpoint, the dev API (tunnel control), and Vite-served\n // module URLs alike. Non-localhost binds get no validation (the legitimate\n // hostnames are unknowable here) — a startup warning below says so.\n //\n // Host is validated on every request: rebinding works by making the\n // attacker's page same-origin with this server, and the Host header is\n // where that shows up. Origin is not validated here (SDK-aligned default);\n // set `allowedOrigins` on the MCPServer to opt in — the handler middleware\n // enforces it. Sandboxed view iframes have an opaque origin, so their\n // module/asset GETs legitimately carry `Origin: null` — and external hosts\n // rendering views through the tunnel fetch assets with their own origins.\n // Those cross-origin loads also need CORS: the MCP server's view asset/public\n // routes always emit `Access-Control-Allow-Origin: *`. Vite-served module\n // URLs (onRequest below) emit `*` while a tunnel is active; without a tunnel,\n // localhost binds reflect a validated loopback Origin (exact value +\n // `Vary: Origin`) so a local MCP host can load the module graph, while\n // foreign / opaque / missing Origin get no ACAO.\n const localhostBind = [\"127.0.0.1\", \"localhost\", \"::1\"].includes(host);\n const rejectDisallowedRequest = (\n req: IncomingMessage,\n res: ServerResponse\n ): boolean => {\n const tunnelUrl = tunnelManager.status().url;\n const tunnelHost = tunnelUrl !== null ? new URL(tunnelUrl).hostname : null;\n const extra = tunnelHost !== null ? [tunnelHost] : [];\n const result = validateHostHeader(req.headers.host, [\n ...localhostAllowedHostnames(),\n ...extra,\n ]);\n if (result.ok) {\n return false;\n }\n // Same JSON-RPC 403 shape the SDK's own validation responses use.\n res.writeHead(403, { \"content-type\": \"application/json\" });\n res.end(\n JSON.stringify({\n jsonrpc: \"2.0\",\n error: { code: -32000, message: result.message },\n id: null,\n })\n );\n return true;\n };\n\n /**\n * Tear down everything the running dev process owns, in dependency order:\n * watcher subscriptions, tunnel, HTTP listener, module runner, Vite.\n */\n const teardown = async (): Promise<void> => {\n vite.watcher.off(\"change\", onSsrFileEvent);\n vite.watcher.off(\"add\", onFileAddOrUnlink);\n vite.watcher.off(\"unlink\", onFileAddOrUnlink);\n await tunnelManager.stop();\n await new Promise<void>((done) => httpServer.close(() => done()));\n await runner.close();\n await vite.close();\n };\n\n const devFetch = createDevApiHandler(\n {\n getBasePath: () => basePath,\n port,\n tunnel: tunnelManager,\n },\n (request) => currentHandler(request)\n );\n\n // Vendored Node bridge — same adapter serve() used internally.\n const { toNodeHandler } = await import(\"../node-bridge.js\");\n const nodeListener = toNodeHandler({ fetch: devFetch });\n\n const onRequest = (req: IncomingMessage, res: ServerResponse): void => {\n if (localhostBind && rejectDisallowedRequest(req, res)) {\n return;\n }\n const url = req.url ?? \"/\";\n const pathname = new URL(url, \"http://127.0.0.1\").pathname;\n // Routing to Vite requires both the client environment (configured only\n // when views existed at startup) and a currently non-empty registry.\n const viewsEnabled = viewsAtStartup && currentViews.length > 0;\n // Vite sees module-graph URLs (/@vite/client, /@id/virtual:…,\n // /.mcp-use/cache/deps/…, view files under /views/…) plus standard\n // node_modules pre-bundles; everything else — the MCP endpoint included —\n // goes straight to the fetch handler.\n const isViteRequest =\n req.method === \"GET\" &&\n (pathname.startsWith(\"/@\") ||\n pathname.startsWith(\"/node_modules/\") ||\n pathname.startsWith(\"/.mcp-use/\") ||\n (viewsEnabled && pathname.startsWith(\"/views/\")));\n\n if (viewsEnabled && isViteRequest) {\n // CORS for Vite module URLs: tunnel → `*`; else localhost bind with a\n // validated loopback Origin → reflect that origin (+ Vary). Foreign /\n // opaque / missing Origin stay without ACAO so the source module graph\n // is not readable to arbitrary websites.\n applyViteModuleCors(req, res, {\n tunnelActive: tunnelManager.status().url !== null,\n localhostBind,\n });\n vite.middlewares(req, res, () => {\n void nodeListener(req, res);\n });\n } else {\n void nodeListener(req, res);\n }\n };\n httpServer.on(\"request\", onRequest);\n\n await new Promise<void>((resolve, reject) => {\n httpServer.once(\"error\", reject);\n httpServer.listen(port, host, () => resolve());\n });\n\n console.log(`[mcp-use] dev server ready`);\n if (currentViews.length > 0) {\n console.log(\n ` ➜ Views: ${currentViews.map((v) => v.name).join(\", \")}`\n );\n }\n console.log(` ➜ MCP endpoint: ${devOrigin}${basePath}`);\n console.log(` ➜ Inspector: ${devOrigin}${basePath}/inspector`);\n if (host === \"0.0.0.0\" || host === \"::\") {\n const lan = lanAddress();\n if (lan !== undefined) {\n console.log(` ➜ Network: http://${lan}:${port}${basePath}`);\n }\n }\n if (!localhostBind) {\n console.warn(\n `[mcp-use] --host ${host} serves beyond this machine without Host ` +\n `validation or authentication — anyone with network access can call ` +\n `the MCP endpoint and dev routes.`\n );\n }\n\n if (options.tunnel === true) {\n try {\n const { url } = await tunnelManager.start(port);\n console.log(` ➜ Tunnel: ${url}${basePath}`);\n } catch (error) {\n await teardown();\n throw error;\n }\n }\n\n // Auto-open the inspector — unless disabled (`--no-open`) or stdout is not\n // a TTY (agents/CI: no browser to open, and no error to fail on).\n if (options.open !== false && process.stdout.isTTY === true) {\n openInBrowser(`${devOrigin}${basePath}/inspector`);\n }\n\n // --- Graceful shutdown (SIGINT/SIGTERM or options.signal). ---------------\n await new Promise<void>((resolve) => {\n let closing = false;\n const shutdown = (): void => {\n if (closing) return;\n closing = true;\n process.off(\"SIGINT\", shutdown);\n process.off(\"SIGTERM\", shutdown);\n void (async () => {\n await teardown();\n resolve();\n })();\n };\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n if (options.signal !== undefined) {\n if (options.signal.aborted) {\n shutdown();\n } else {\n options.signal.addEventListener(\"abort\", shutdown, { once: true });\n }\n }\n });\n}\n","/**\n * Port resolution for `mcp-use dev`: `--port`, else `PORT` env, else 3000 — probing\n * upward when the requested port is taken.\n */\n\nimport { connect, createServer } from \"node:net\";\n\n/** How many consecutive ports to probe before giving up. */\nconst MAX_PROBES = 100;\n\n/** Short timeout for loopback connect probes (ms). */\nconst CONNECT_PROBE_MS = 300;\n\n/**\n * Outcome of {@link resolvePort}.\n *\n * @internal\n */\nexport interface ResolvedPort {\n /** The free port to bind. */\n port: number;\n /** The port that was originally requested (differs when probing moved on). */\n requested: number;\n}\n\nconst LOOPBACK_HOSTS = new Set([\"127.0.0.1\", \"localhost\", \"::1\"]);\n\n/** Check whether `port` is free to bind on `host`. */\nfunction isPortFree(port: number, host: string): Promise<boolean> {\n return new Promise((resolve) => {\n const probe = createServer();\n probe.unref();\n probe.once(\"error\", () => resolve(false));\n probe.listen({ port, host }, () => {\n probe.close(() => resolve(true));\n });\n });\n}\n\n/** Whether a TCP connect to `host:port` succeeds within {@link CONNECT_PROBE_MS}. */\nfunction canConnect(port: number, host: string): Promise<boolean> {\n return new Promise((resolve) => {\n const socket = connect({ port, host });\n socket.setTimeout(CONNECT_PROBE_MS);\n socket.once(\"connect\", () => {\n socket.destroy();\n resolve(true);\n });\n socket.once(\"timeout\", () => {\n socket.destroy();\n resolve(false);\n });\n socket.once(\"error\", () => {\n socket.destroy();\n resolve(false);\n });\n });\n}\n\n/**\n * On loopback binds, a wildcard listener on `*:port` (IPv6) can still accept\n * `localhost` traffic while `127.0.0.1:port` bind-probes succeed — macOS dual-stack.\n * Treat the port as taken when either loopback address already accepts connections.\n */\nasync function loopbackPortInUse(port: number): Promise<boolean> {\n return (\n (await canConnect(port, \"127.0.0.1\")) || (await canConnect(port, \"::1\"))\n );\n}\n\n/**\n * Resolve the port to bind: take `requested` (already reduced from\n * `--port` / `PORT` / the default by the caller) and probe upward until a\n * free port is found.\n *\n * @param requested - The preferred port.\n * @param host - The host the server will bind (probing binds the same host).\n * @returns The first free port at or above `requested`, plus the original\n * request so callers can log the substitution.\n * @throws If no free port is found within {@link MAX_PROBES} attempts.\n *\n * @internal\n */\nexport async function resolvePort(\n requested: number,\n host: string\n): Promise<ResolvedPort> {\n for (let port = requested; port < requested + MAX_PROBES; port++) {\n if (!(await isPortFree(port, host))) continue;\n if (LOOPBACK_HOSTS.has(host) && (await loopbackPortInUse(port))) continue;\n return { port, requested };\n }\n throw new Error(\n `No free port found between ${requested} and ${requested + MAX_PROBES - 1} on ${host}.`\n );\n}\n","/**\n * Dev-only inspector API routes intercepted by `mcp-use dev` before the MCP\n * handler — tunnel controls and session metadata for the inspector UI.\n */\n\nimport type { TunnelManager } from \"./tunnel.js\";\n\n/** Web-standard request handler, as returned by `MCPServer.getHandler()`. */\ntype FetchHandler = (request: Request) => Promise<Response>;\n\n/**\n * Dependencies for {@link createDevApiHandler}.\n *\n * @internal\n */\nexport interface DevApiHandlerOptions {\n /** Returns the current MCP mount path (may change after a dev reload). */\n getBasePath: () => string;\n /** Port the dev HTTP listener is bound to. */\n port: number;\n /** Tunnel lifecycle manager owned by the dev process. */\n tunnel: TunnelManager;\n}\n\n/** JSON body for `GET …/inspector/api/dev/info`. */\nexport interface DevInfoResponse {\n /** Full MCP endpoint URL when a tunnel is active; otherwise `null`. */\n mcpUrl: string | null;\n /** Port the dev server listens on. */\n port: number;\n /** Whether the request is served by `mcp-use dev` (always `true` here). */\n fromCli: true;\n /** Public tunnel origin URL, or `null` when no tunnel is running. */\n tunnelUrl: string | null;\n}\n\n/**\n * Wrap an MCP {@link FetchHandler} so dev-only inspector API routes are\n * answered in-process before delegating everything else.\n *\n * @param options - Base path, bound port, and tunnel manager.\n * @param fallback - Handler to invoke when the request is not a dev API route.\n *\n * @example\n * ```ts\n * const handler = createDevApiHandler(\n * { getBasePath: () => \"/mcp\", port: 3000, tunnel },\n * server.getHandler()\n * );\n * ```\n */\nexport function createDevApiHandler(\n options: DevApiHandlerOptions,\n fallback: FetchHandler\n): FetchHandler {\n const devInfo = (): DevInfoResponse => {\n const basePath = options.getBasePath();\n const { url: tunnelUrl } = options.tunnel.status();\n return {\n mcpUrl:\n tunnelUrl !== null\n ? `${tunnelUrl.replace(/\\/+$/, \"\")}${basePath}`\n : null,\n port: options.port,\n fromCli: true,\n tunnelUrl,\n };\n };\n\n return async (request: Request): Promise<Response> => {\n const basePath = options.getBasePath();\n const infoPath = `${basePath}/inspector/api/dev/info`;\n const startPath = `${basePath}/inspector/api/dev/start-tunnel`;\n const stopPath = `${basePath}/inspector/api/dev/stop-tunnel`;\n const pathname = new URL(request.url).pathname;\n\n if (request.method === \"GET\" && pathname === infoPath) {\n return Response.json(devInfo());\n }\n\n if (request.method === \"POST\" && pathname === startPath) {\n try {\n await options.tunnel.start(options.port);\n return Response.json({ ok: true, restarting: false });\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Failed to start tunnel\";\n return Response.json({ error: message }, { status: 500 });\n }\n }\n\n if (request.method === \"POST\" && pathname === stopPath) {\n await options.tunnel.stop();\n return Response.json({ ok: true });\n }\n\n return fallback(request);\n };\n}\n","/**\n * Tunnel lifecycle for `mcp-use dev` — spawns `@mcp-use/tunnel`,\n * parses the public URL from stdout, persists the subdomain under\n * `.mcp-use/state/tunnel.json`, and releases it through the tunnel API before\n * reuse.\n */\n\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { spawn, type ChildProcess } from \"node:child_process\";\nimport { dirname } from \"node:path\";\n\n/** Default base URL for the tunnel reservation/release API. */\nconst DEFAULT_TUNNEL_API = \"https://local.mcp-use.run\";\n\n/**\n * Base URL of the tunnel API (subdomain reservation/release). Overridable via\n * the `MCP_USE_TUNNEL_API` environment variable.\n */\nexport function tunnelApiBase(): string {\n return process.env[\"MCP_USE_TUNNEL_API\"] ?? DEFAULT_TUNNEL_API;\n}\n\n/** On-disk shape of `.mcp-use/state/tunnel.json`. */\ninterface TunnelStateFile {\n /** Last successfully assigned tunnel subdomain. */\n subdomain: string;\n}\n\n/**\n * Minimal tunnel manager surface used by {@link createDevApiHandler} and\n * {@link runDev}.\n */\nexport interface TunnelManager {\n /**\n * Start (or attach) a tunnel targeting `port` and return the public origin\n * URL and assigned subdomain.\n */\n start(port: number): Promise<{ url: string; subdomain: string }>;\n /** Stop the tunnel child process and release the subdomain. */\n stop(): Promise<void>;\n /** Current tunnel public origin URL, or `null` when no tunnel is active. */\n status(): { url: string | null };\n}\n\nconst RESPAWN_BACKOFF_INITIAL_MS = 1_000;\nconst RESPAWN_BACKOFF_MAX_MS = 30_000;\n\n/**\n * Create a tunnel manager that reads and writes subdomain state at\n * `stateFilePath` (typically `.mcp-use/state/tunnel.json`).\n *\n * @param stateFilePath - Absolute path to the tunnel state JSON file.\n *\n * @example\n * ```ts\n * const tunnel = createTunnelManager(paths.tunnel);\n * const { url } = await tunnel.start(3000);\n * console.log(url); // https://happy-cat.local.mcp-use.run\n * ```\n */\nexport function createTunnelManager(stateFilePath: string): TunnelManager {\n let proc: ChildProcess | undefined;\n let currentUrl: string | null = null;\n let currentSubdomain: string | undefined;\n let activePort: number | undefined;\n let intentionalStop = false;\n let respawnInFlight: Promise<void> | undefined;\n let respawnBackoffMs = RESPAWN_BACKOFF_INITIAL_MS;\n\n const sleep = (ms: number): Promise<void> =>\n new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n\n const markShutdown = (): void => {\n if (\n proc !== undefined &&\n \"markShutdown\" in proc &&\n typeof (proc as { markShutdown?: () => void }).markShutdown === \"function\"\n ) {\n (proc as { markShutdown: () => void }).markShutdown();\n }\n };\n\n const releaseSubdomain = async (subdomain: string): Promise<void> => {\n try {\n await fetch(`${tunnelApiBase()}/api/tunnels/${subdomain}`, {\n method: \"DELETE\",\n signal: AbortSignal.timeout(2_000),\n });\n } catch {\n // Best-effort cleanup; ignore DELETE failures.\n }\n };\n\n const loadSavedSubdomain = async (): Promise<string | undefined> => {\n try {\n const content = await readFile(stateFilePath, \"utf8\");\n const state = JSON.parse(content) as Partial<TunnelStateFile>;\n return typeof state.subdomain === \"string\" ? state.subdomain : undefined;\n } catch {\n return undefined;\n }\n };\n\n const persistSubdomain = async (subdomain: string): Promise<void> => {\n try {\n await mkdir(dirname(stateFilePath), { recursive: true });\n await writeFile(\n stateFilePath,\n JSON.stringify({ subdomain } satisfies TunnelStateFile, null, 2),\n \"utf8\"\n );\n } catch (error) {\n console.warn(\n `[mcp-use] failed to save tunnel subdomain: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n };\n\n let scheduleRespawn: () => void = () => {};\n\n const spawnTunnel = (\n port: number,\n subdomain?: string\n ): Promise<{ url: string; subdomain: string; process: ChildProcess }> =>\n new Promise((resolve, reject) => {\n console.log(`[mcp-use] starting tunnel for port ${port}…`);\n\n const userAgent = process.env[\"npm_config_user_agent\"] ?? \"\";\n const [tunnelCommand, tunnelArgs] = userAgent.startsWith(\"pnpm/\")\n ? [\"pnpm\", [\"--silent\", \"dlx\", \"@mcp-use/tunnel\", String(port)]]\n : userAgent.startsWith(\"bun/\")\n ? [\"bunx\", [\"@mcp-use/tunnel\", String(port)]]\n : [\n \"npx\",\n [\"--yes\", \"--prefer-offline\", \"@mcp-use/tunnel\", String(port)],\n ];\n if (subdomain !== undefined) {\n tunnelArgs.push(\"--subdomain\", subdomain);\n }\n\n const child = spawn(tunnelCommand, tunnelArgs, {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n shell: process.platform === \"win32\",\n });\n\n let resolved = false;\n let shuttingDown = false;\n\n const markChildShutdown = (): void => {\n shuttingDown = true;\n };\n (child as unknown as { markShutdown: () => void }).markShutdown =\n markChildShutdown;\n\n child.stdout.on(\"data\", (data: Buffer) => {\n const text = data.toString();\n const isShutdownMessage =\n text.includes(\"Shutting down\") || text.includes(\"🛑\");\n const isErrorMessage = text.includes(\"✖\") || text.includes(\"Error:\");\n\n if (!shuttingDown && !isShutdownMessage && !isErrorMessage) {\n process.stdout.write(text);\n }\n\n const urlMatch = text.match(/https?:\\/\\/([a-z0-9-]+\\.[a-z0-9.-]+)/i);\n if (urlMatch !== null && !resolved) {\n const url = urlMatch[0];\n const fullDomain = urlMatch[1] ?? \"\";\n const subdomainMatch = fullDomain.match(/^([a-z0-9-]+)\\./i);\n let extractedSubdomain =\n subdomainMatch?.[1] ?? fullDomain.split(\".\")[0] ?? \"\";\n if (!/^[a-z0-9-]+$/i.test(extractedSubdomain)) {\n console.warn(\n `[mcp-use] warning: extracted subdomain \"${extractedSubdomain}\" does not match expected format`\n );\n extractedSubdomain = \"\";\n }\n resolved = true;\n clearTimeout(setupTimeout);\n // No log here — the tunnel child's own stdout (passed through\n // above) already announces the public URL.\n resolve({ url, subdomain: extractedSubdomain, process: child });\n }\n });\n\n child.stderr.on(\"data\", (data: Buffer) => {\n const text = data.toString();\n if (\n !shuttingDown &&\n !text.includes(\"INFO\") &&\n !text.includes(\"bore_cli\") &&\n !text.includes(\"Shutting down\") &&\n // npx inherits pnpm-only npm_config_* env vars (e.g.\n // minimum-release-age, verify-deps-before-run) and warns about\n // every key it doesn't recognize — pure noise for the user.\n !/npm warn Unknown (?:env|project|user|builtin) config/.test(text)\n ) {\n process.stderr.write(data);\n }\n });\n\n child.on(\"error\", (error) => {\n if (!resolved) {\n clearTimeout(setupTimeout);\n reject(new Error(`Failed to start tunnel: ${error.message}`));\n }\n });\n\n child.on(\"exit\", (code) => {\n if (code !== 0 && code !== null && !resolved) {\n clearTimeout(setupTimeout);\n reject(new Error(`Tunnel process exited with code ${code}`));\n }\n // The tunnel CLI can exit after setup when its bore connection or\n // server-side registration disappears. Do not keep reporting a dead\n // public URL through dev/info; respawn while dev is still running.\n if (proc === child) {\n proc = undefined;\n currentUrl = null;\n if (intentionalStop) {\n currentSubdomain = undefined;\n } else {\n scheduleRespawn();\n }\n }\n });\n\n const setupTimeout = setTimeout(() => {\n if (!resolved) {\n child.kill();\n reject(new Error(\"Tunnel setup timed out\"));\n }\n }, 30_000);\n });\n\n scheduleRespawn = (): void => {\n if (intentionalStop || activePort === undefined || currentUrl !== null) {\n return;\n }\n if (respawnInFlight !== undefined) {\n return;\n }\n\n respawnInFlight = (async (): Promise<void> => {\n while (\n !intentionalStop &&\n activePort !== undefined &&\n currentUrl === null\n ) {\n console.log(\"[mcp-use] tunnel disconnected, restarting…\");\n const subdomain = currentSubdomain ?? (await loadSavedSubdomain());\n try {\n if (subdomain !== undefined) {\n await releaseSubdomain(subdomain);\n }\n\n let tunnelInfo: Awaited<ReturnType<typeof spawnTunnel>>;\n try {\n tunnelInfo = await spawnTunnel(activePort, subdomain);\n } catch (error) {\n if (subdomain !== undefined) {\n console.log(\n `[mcp-use] subdomain \"${subdomain}\" unavailable, requesting a new one…`\n );\n tunnelInfo = await spawnTunnel(activePort, undefined);\n } else {\n throw error;\n }\n }\n\n proc = tunnelInfo.process;\n currentUrl = tunnelInfo.url;\n currentSubdomain = tunnelInfo.subdomain;\n await persistSubdomain(tunnelInfo.subdomain);\n respawnBackoffMs = RESPAWN_BACKOFF_INITIAL_MS;\n return;\n } catch (error) {\n console.warn(\n `[mcp-use] tunnel restart failed: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n await sleep(respawnBackoffMs);\n respawnBackoffMs = Math.min(\n respawnBackoffMs * 2,\n RESPAWN_BACKOFF_MAX_MS\n );\n }\n }\n })().finally(() => {\n respawnInFlight = undefined;\n });\n };\n\n return {\n status(): { url: string | null } {\n return { url: currentUrl };\n },\n\n async start(port: number): Promise<{ url: string; subdomain: string }> {\n intentionalStop = false;\n activePort = port;\n\n if (currentUrl !== null) {\n return {\n url: currentUrl,\n subdomain: currentSubdomain ?? \"\",\n };\n }\n\n const existingSubdomain = await loadSavedSubdomain();\n if (existingSubdomain !== undefined) {\n console.log(`[mcp-use] found existing subdomain: ${existingSubdomain}`);\n await releaseSubdomain(existingSubdomain);\n }\n\n let tunnelInfo: Awaited<ReturnType<typeof spawnTunnel>>;\n try {\n tunnelInfo = await spawnTunnel(port, existingSubdomain);\n } catch (error) {\n if (existingSubdomain !== undefined) {\n console.log(\n `[mcp-use] subdomain \"${existingSubdomain}\" unavailable, requesting a new one…`\n );\n tunnelInfo = await spawnTunnel(port, undefined);\n } else {\n throw error;\n }\n }\n\n proc = tunnelInfo.process;\n currentUrl = tunnelInfo.url;\n currentSubdomain = tunnelInfo.subdomain;\n await persistSubdomain(tunnelInfo.subdomain);\n\n return { url: tunnelInfo.url, subdomain: tunnelInfo.subdomain };\n },\n\n async stop(): Promise<void> {\n intentionalStop = true;\n markShutdown();\n\n if (respawnInFlight !== undefined) {\n await respawnInFlight;\n }\n\n if (currentSubdomain !== undefined) {\n await releaseSubdomain(currentSubdomain);\n }\n\n if (proc !== undefined) {\n proc.kill(\"SIGINT\");\n proc = undefined;\n }\n\n activePort = undefined;\n currentUrl = null;\n currentSubdomain = undefined;\n respawnBackoffMs = RESPAWN_BACKOFF_INITIAL_MS;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAmBA,SAAS,SAAAA,cAAa;AACtB,SAAS,gBAAgB,wBAAwB;AAEjD,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAClC,SAAS,YAAY;AACrB,OAAO,iBAAiB;AACxB,OAAO,WAAW;AAClB,SAAS,gBAAAC,eAAc,gCAAgC;AACvD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;;;AC9BP,SAAS,SAAS,oBAAoB;AAGtC,IAAM,aAAa;AAGnB,IAAM,mBAAmB;AAczB,IAAM,iBAAiB,oBAAI,IAAI,CAAC,aAAa,aAAa,KAAK,CAAC;AAGhE,SAAS,WAAW,MAAc,MAAgC;AAChE,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,QAAQ,aAAa;AAC3B,UAAM,MAAM;AACZ,UAAM,KAAK,SAAS,MAAM,QAAQ,KAAK,CAAC;AACxC,UAAM,OAAO,EAAE,MAAM,KAAK,GAAG,MAAM;AACjC,YAAM,MAAM,MAAM,QAAQ,IAAI,CAAC;AAAA,IACjC,CAAC;AAAA,EACH,CAAC;AACH;AAGA,SAAS,WAAW,MAAc,MAAgC;AAChE,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,SAAS,QAAQ,EAAE,MAAM,KAAK,CAAC;AACrC,WAAO,WAAW,gBAAgB;AAClC,WAAO,KAAK,WAAW,MAAM;AAC3B,aAAO,QAAQ;AACf,cAAQ,IAAI;AAAA,IACd,CAAC;AACD,WAAO,KAAK,WAAW,MAAM;AAC3B,aAAO,QAAQ;AACf,cAAQ,KAAK;AAAA,IACf,CAAC;AACD,WAAO,KAAK,SAAS,MAAM;AACzB,aAAO,QAAQ;AACf,cAAQ,KAAK;AAAA,IACf,CAAC;AAAA,EACH,CAAC;AACH;AAOA,eAAe,kBAAkB,MAAgC;AAC/D,SACG,MAAM,WAAW,MAAM,WAAW,KAAO,MAAM,WAAW,MAAM,KAAK;AAE1E;AAeA,eAAsBC,aACpB,WACA,MACuB;AACvB,WAAS,OAAO,WAAW,OAAO,YAAY,YAAY,QAAQ;AAChE,QAAI,CAAE,MAAM,WAAW,MAAM,IAAI,EAAI;AACrC,QAAI,eAAe,IAAI,IAAI,KAAM,MAAM,kBAAkB,IAAI,EAAI;AACjE,WAAO,EAAE,MAAM,UAAU;AAAA,EAC3B;AACA,QAAM,IAAI;AAAA,IACR,8BAA8B,SAAS,QAAQ,YAAY,aAAa,CAAC,OAAO,IAAI;AAAA,EACtF;AACF;;;AC5CO,SAAS,oBACd,SACA,UACc;AACd,QAAM,UAAU,MAAuB;AACrC,UAAM,WAAW,QAAQ,YAAY;AACrC,UAAM,EAAE,KAAK,UAAU,IAAI,QAAQ,OAAO,OAAO;AACjD,WAAO;AAAA,MACL,QACE,cAAc,OACV,GAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,GAAG,QAAQ,KAC3C;AAAA,MACN,MAAM,QAAQ;AAAA,MACd,SAAS;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,SAAO,OAAO,YAAwC;AACpD,UAAM,WAAW,QAAQ,YAAY;AACrC,UAAM,WAAW,GAAG,QAAQ;AAC5B,UAAM,YAAY,GAAG,QAAQ;AAC7B,UAAM,WAAW,GAAG,QAAQ;AAC5B,UAAM,WAAW,IAAI,IAAI,QAAQ,GAAG,EAAE;AAEtC,QAAI,QAAQ,WAAW,SAAS,aAAa,UAAU;AACrD,aAAO,SAAS,KAAK,QAAQ,CAAC;AAAA,IAChC;AAEA,QAAI,QAAQ,WAAW,UAAU,aAAa,WAAW;AACvD,UAAI;AACF,cAAM,QAAQ,OAAO,MAAM,QAAQ,IAAI;AACvC,eAAO,SAAS,KAAK,EAAE,IAAI,MAAM,YAAY,MAAM,CAAC;AAAA,MACtD,SAAS,OAAO;AACd,cAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,eAAO,SAAS,KAAK,EAAE,OAAO,QAAQ,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,MAC1D;AAAA,IACF;AAEA,QAAI,QAAQ,WAAW,UAAU,aAAa,UAAU;AACtD,YAAM,QAAQ,OAAO,KAAK;AAC1B,aAAO,SAAS,KAAK,EAAE,IAAI,KAAK,CAAC;AAAA,IACnC;AAEA,WAAO,SAAS,OAAO;AAAA,EACzB;AACF;;;AC3FA,SAAS,OAAO,UAAU,iBAAiB;AAC3C,SAAS,aAAgC;AACzC,SAAS,eAAe;AAGxB,IAAM,qBAAqB;AAMpB,SAAS,gBAAwB;AACtC,SAAO,QAAQ,IAAI,oBAAoB,KAAK;AAC9C;AAwBA,IAAM,6BAA6B;AACnC,IAAM,yBAAyB;AAexB,SAAS,oBAAoB,eAAsC;AACxE,MAAI;AACJ,MAAI,aAA4B;AAChC,MAAI;AACJ,MAAI;AACJ,MAAI,kBAAkB;AACtB,MAAI;AACJ,MAAI,mBAAmB;AAEvB,QAAM,QAAQ,CAAC,OACb,IAAI,QAAQ,CAAC,YAAY;AACvB,eAAW,SAAS,EAAE;AAAA,EACxB,CAAC;AAEH,QAAM,eAAe,MAAY;AAC/B,QACE,SAAS,UACT,kBAAkB,QAClB,OAAQ,KAAuC,iBAAiB,YAChE;AACA,MAAC,KAAsC,aAAa;AAAA,IACtD;AAAA,EACF;AAEA,QAAM,mBAAmB,OAAO,cAAqC;AACnE,QAAI;AACF,YAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,SAAS,IAAI;AAAA,QACzD,QAAQ;AAAA,QACR,QAAQ,YAAY,QAAQ,GAAK;AAAA,MACnC,CAAC;AAAA,IACH,QAAQ;AAAA,IAER;AAAA,EACF;AAEA,QAAM,qBAAqB,YAAyC;AAClE,QAAI;AACF,YAAM,UAAU,MAAM,SAAS,eAAe,MAAM;AACpD,YAAM,QAAQ,KAAK,MAAM,OAAO;AAChC,aAAO,OAAO,MAAM,cAAc,WAAW,MAAM,YAAY;AAAA,IACjE,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,mBAAmB,OAAO,cAAqC;AACnE,QAAI;AACF,YAAM,MAAM,QAAQ,aAAa,GAAG,EAAE,WAAW,KAAK,CAAC;AACvD,YAAM;AAAA,QACJ;AAAA,QACA,KAAK,UAAU,EAAE,UAAU,GAA6B,MAAM,CAAC;AAAA,QAC/D;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,cAAQ;AAAA,QACN,8CACE,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CACvD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,kBAA8B,MAAM;AAAA,EAAC;AAEzC,QAAM,cAAc,CAClB,MACA,cAEA,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC/B,YAAQ,IAAI,sCAAsC,IAAI,QAAG;AAEzD,UAAM,YAAY,QAAQ,IAAI,uBAAuB,KAAK;AAC1D,UAAM,CAAC,eAAe,UAAU,IAAI,UAAU,WAAW,OAAO,IAC5D,CAAC,QAAQ,CAAC,YAAY,OAAO,mBAAmB,OAAO,IAAI,CAAC,CAAC,IAC7D,UAAU,WAAW,MAAM,IACzB,CAAC,QAAQ,CAAC,mBAAmB,OAAO,IAAI,CAAC,CAAC,IAC1C;AAAA,MACE;AAAA,MACA,CAAC,SAAS,oBAAoB,mBAAmB,OAAO,IAAI,CAAC;AAAA,IAC/D;AACN,QAAI,cAAc,QAAW;AAC3B,iBAAW,KAAK,eAAe,SAAS;AAAA,IAC1C;AAEA,UAAM,QAAQ,MAAM,eAAe,YAAY;AAAA,MAC7C,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,MAChC,OAAO,QAAQ,aAAa;AAAA,IAC9B,CAAC;AAED,QAAI,WAAW;AACf,QAAI,eAAe;AAEnB,UAAM,oBAAoB,MAAY;AACpC,qBAAe;AAAA,IACjB;AACA,IAAC,MAAkD,eACjD;AAEF,UAAM,OAAO,GAAG,QAAQ,CAAC,SAAiB;AACxC,YAAM,OAAO,KAAK,SAAS;AAC3B,YAAM,oBACJ,KAAK,SAAS,eAAe,KAAK,KAAK,SAAS,WAAI;AACtD,YAAM,iBAAiB,KAAK,SAAS,QAAG,KAAK,KAAK,SAAS,QAAQ;AAEnE,UAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,gBAAgB;AAC1D,gBAAQ,OAAO,MAAM,IAAI;AAAA,MAC3B;AAEA,YAAM,WAAW,KAAK,MAAM,uCAAuC;AACnE,UAAI,aAAa,QAAQ,CAAC,UAAU;AAClC,cAAM,MAAM,SAAS,CAAC;AACtB,cAAM,aAAa,SAAS,CAAC,KAAK;AAClC,cAAM,iBAAiB,WAAW,MAAM,kBAAkB;AAC1D,YAAI,qBACF,iBAAiB,CAAC,KAAK,WAAW,MAAM,GAAG,EAAE,CAAC,KAAK;AACrD,YAAI,CAAC,gBAAgB,KAAK,kBAAkB,GAAG;AAC7C,kBAAQ;AAAA,YACN,2CAA2C,kBAAkB;AAAA,UAC/D;AACA,+BAAqB;AAAA,QACvB;AACA,mBAAW;AACX,qBAAa,YAAY;AAGzB,gBAAQ,EAAE,KAAK,WAAW,oBAAoB,SAAS,MAAM,CAAC;AAAA,MAChE;AAAA,IACF,CAAC;AAED,UAAM,OAAO,GAAG,QAAQ,CAAC,SAAiB;AACxC,YAAM,OAAO,KAAK,SAAS;AAC3B,UACE,CAAC,gBACD,CAAC,KAAK,SAAS,MAAM,KACrB,CAAC,KAAK,SAAS,UAAU,KACzB,CAAC,KAAK,SAAS,eAAe;AAAA;AAAA;AAAA,MAI9B,CAAC,uDAAuD,KAAK,IAAI,GACjE;AACA,gBAAQ,OAAO,MAAM,IAAI;AAAA,MAC3B;AAAA,IACF,CAAC;AAED,UAAM,GAAG,SAAS,CAAC,UAAU;AAC3B,UAAI,CAAC,UAAU;AACb,qBAAa,YAAY;AACzB,eAAO,IAAI,MAAM,2BAA2B,MAAM,OAAO,EAAE,CAAC;AAAA,MAC9D;AAAA,IACF,CAAC;AAED,UAAM,GAAG,QAAQ,CAAC,SAAS;AACzB,UAAI,SAAS,KAAK,SAAS,QAAQ,CAAC,UAAU;AAC5C,qBAAa,YAAY;AACzB,eAAO,IAAI,MAAM,mCAAmC,IAAI,EAAE,CAAC;AAAA,MAC7D;AAIA,UAAI,SAAS,OAAO;AAClB,eAAO;AACP,qBAAa;AACb,YAAI,iBAAiB;AACnB,6BAAmB;AAAA,QACrB,OAAO;AACL,0BAAgB;AAAA,QAClB;AAAA,MACF;AAAA,IACF,CAAC;AAED,UAAM,eAAe,WAAW,MAAM;AACpC,UAAI,CAAC,UAAU;AACb,cAAM,KAAK;AACX,eAAO,IAAI,MAAM,wBAAwB,CAAC;AAAA,MAC5C;AAAA,IACF,GAAG,GAAM;AAAA,EACX,CAAC;AAEH,oBAAkB,MAAY;AAC5B,QAAI,mBAAmB,eAAe,UAAa,eAAe,MAAM;AACtE;AAAA,IACF;AACA,QAAI,oBAAoB,QAAW;AACjC;AAAA,IACF;AAEA,uBAAmB,YAA2B;AAC5C,aACE,CAAC,mBACD,eAAe,UACf,eAAe,MACf;AACA,gBAAQ,IAAI,iDAA4C;AACxD,cAAM,YAAY,oBAAqB,MAAM,mBAAmB;AAChE,YAAI;AACF,cAAI,cAAc,QAAW;AAC3B,kBAAM,iBAAiB,SAAS;AAAA,UAClC;AAEA,cAAI;AACJ,cAAI;AACF,yBAAa,MAAM,YAAY,YAAY,SAAS;AAAA,UACtD,SAAS,OAAO;AACd,gBAAI,cAAc,QAAW;AAC3B,sBAAQ;AAAA,gBACN,wBAAwB,SAAS;AAAA,cACnC;AACA,2BAAa,MAAM,YAAY,YAAY,MAAS;AAAA,YACtD,OAAO;AACL,oBAAM;AAAA,YACR;AAAA,UACF;AAEA,iBAAO,WAAW;AAClB,uBAAa,WAAW;AACxB,6BAAmB,WAAW;AAC9B,gBAAM,iBAAiB,WAAW,SAAS;AAC3C,6BAAmB;AACnB;AAAA,QACF,SAAS,OAAO;AACd,kBAAQ;AAAA,YACN,oCACE,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CACvD;AAAA,UACF;AACA,gBAAM,MAAM,gBAAgB;AAC5B,6BAAmB,KAAK;AAAA,YACtB,mBAAmB;AAAA,YACnB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,GAAG,EAAE,QAAQ,MAAM;AACjB,wBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,SAAiC;AAC/B,aAAO,EAAE,KAAK,WAAW;AAAA,IAC3B;AAAA,IAEA,MAAM,MAAM,MAA2D;AACrE,wBAAkB;AAClB,mBAAa;AAEb,UAAI,eAAe,MAAM;AACvB,eAAO;AAAA,UACL,KAAK;AAAA,UACL,WAAW,oBAAoB;AAAA,QACjC;AAAA,MACF;AAEA,YAAM,oBAAoB,MAAM,mBAAmB;AACnD,UAAI,sBAAsB,QAAW;AACnC,gBAAQ,IAAI,uCAAuC,iBAAiB,EAAE;AACtE,cAAM,iBAAiB,iBAAiB;AAAA,MAC1C;AAEA,UAAI;AACJ,UAAI;AACF,qBAAa,MAAM,YAAY,MAAM,iBAAiB;AAAA,MACxD,SAAS,OAAO;AACd,YAAI,sBAAsB,QAAW;AACnC,kBAAQ;AAAA,YACN,wBAAwB,iBAAiB;AAAA,UAC3C;AACA,uBAAa,MAAM,YAAY,MAAM,MAAS;AAAA,QAChD,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF;AAEA,aAAO,WAAW;AAClB,mBAAa,WAAW;AACxB,yBAAmB,WAAW;AAC9B,YAAM,iBAAiB,WAAW,SAAS;AAE3C,aAAO,EAAE,KAAK,WAAW,KAAK,WAAW,WAAW,UAAU;AAAA,IAChE;AAAA,IAEA,MAAM,OAAsB;AAC1B,wBAAkB;AAClB,mBAAa;AAEb,UAAI,oBAAoB,QAAW;AACjC,cAAM;AAAA,MACR;AAEA,UAAI,qBAAqB,QAAW;AAClC,cAAM,iBAAiB,gBAAgB;AAAA,MACzC;AAEA,UAAI,SAAS,QAAW;AACtB,aAAK,KAAK,QAAQ;AAClB,eAAO;AAAA,MACT;AAEA,mBAAa;AACb,mBAAa;AACb,yBAAmB;AACnB,yBAAmB;AAAA,IACrB;AAAA,EACF;AACF;;;AHhOA,SAAS,cAAc,KAAmB;AACxC,QAAM,CAAC,SAAS,IAAI,IAClB,QAAQ,aAAa,WACjB,CAAC,QAAQ,CAAC,GAAG,CAAC,IACd,QAAQ,aAAa;AAAA;AAAA,IAEnB,CAAC,OAAO,CAAC,MAAM,SAAS,IAAI,GAAG,CAAC;AAAA,MAChC,CAAC,YAAY,CAAC,GAAG,CAAC;AAC1B,MAAI;AACF,UAAM,QAAQC,OAAM,SAAS,MAAM,EAAE,OAAO,UAAU,UAAU,KAAK,CAAC;AACtE,UAAM,GAAG,SAAS,MAAM;AAAA,IAExB,CAAC;AACD,UAAM,MAAM;AAAA,EACd,QAAQ;AAAA,EAER;AACF;AAMA,SAAS,aAAiC;AACxC,aAAW,aAAa,OAAO,OAAO,kBAAkB,CAAC,GAAG;AAC1D,eAAW,WAAW,aAAa,CAAC,GAAG;AACrC,UAAI,CAAC,QAAQ,YAAY,QAAQ,WAAW,QAAQ;AAClD,eAAO,QAAQ;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAOA,SAAS,iBAAiB,KAA2B;AACnD,QAAM,WAAW,IAAI,UAAU,MAAM;AACrC,QAAM,UACJ,OAAO,aAAa,WAChB,WACA,MAAM,QAAQ,QAAQ,IACpB,SAAS,KAAK,IAAI,IAClB,aAAa,SACX,OAAO,QAAQ,IACf;AACV,MACE,QACG,MAAM,GAAG,EACT,IAAI,CAAC,UAAU,MAAM,KAAK,EAAE,YAAY,CAAC,EACzC,SAAS,QAAQ,GACpB;AACA;AAAA,EACF;AACA,MAAI,UAAU,QAAQ,YAAY,KAAK,WAAW,GAAG,OAAO,UAAU;AACxE;AAeA,SAAS,oBACP,KACA,KACA,SACM;AACN,MAAI,QAAQ,cAAc;AACxB,QAAI,UAAU,+BAA+B,GAAG;AAChD;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,eAAe;AAC1B;AAAA,EACF;AACA,QAAM,eAAe,IAAI,QAAQ;AAEjC,MAAI,iBAAiB,QAAQ;AAC3B,QAAI,UAAU,+BAA+B,MAAM;AACnD;AAAA,EACF;AAGA,MAAI,OAAO,iBAAiB,YAAY,iBAAiB,IAAI;AAC3D;AAAA,EACF;AACA,QAAM,SAAS,qBAAqB,cAAc,wBAAwB,CAAC;AAC3E,MAAI,CAAC,OAAO,MAAM,OAAO,WAAW,QAAW;AAC7C;AAAA,EACF;AACA,MAAI,UAAU,+BAA+B,OAAO,MAAM;AAC1D,mBAAiB,GAAG;AACtB;AAMA,SAAS,WAAW,eAAoD;AACtE,QAAM,SAAS,cAAc,SAAS;AACtC,MAAI,WAAW,QAAQ,OAAO,WAAW,UAAU;AACjD,UAAM,IAAI;AAAA,MACR;AAAA,IAGF;AAAA,EACF;AACA,QAAM,YAAY;AAClB,MAAI,OAAO,UAAU,eAAe,YAAY;AAC9C,UAAM,IAAI;AAAA,MACR;AAAA,IAEF;AAAA,EACF;AACA,SAAO;AACT;AAwBA,eAAsB,OAAO,SAAoC;AAC/D,UAAQ,IAAI,kBAAkB;AAC9B,QAAM,OAAO,QAAQ,QAAQ;AAC7B,QAAM,QAAQ,sBAAsB,QAAQ,GAAG;AAC/C,QAAM,WAAW,IAAI,uBAAuB,CAAC,UAAU;AACrD,YAAQ,MAAM,2CAA2C,KAAK;AAAA,EAChE,CAAC;AAED,QAAM,UAAU,KAAK,QAAQ,KAAK,MAAM;AACxC,MAAI,WAAW,OAAO,GAAG;AACvB,YAAQ,YAAY,OAAO;AAAA,EAC7B;AAaA,QAAM,aAAa,iBAAiB;AAEpC,QAAM,EAAE,MAAM,UAAU,IAAI,MAAMC;AAAA,IAChC,YAAqB,QAAQ,IAAI;AAAA,IACjC;AAAA,EACF;AACA,MAAI,SAAS,WAAW;AACtB,YAAQ,IAAI,kBAAkB,SAAS,oBAAoB,IAAI,EAAE;AAAA,EACnE;AACA,UAAQ,IAAI,MAAM,IAAI,OAAO,IAAI;AAEjC,QAAM,sBACJ,QAAQ,IAAI,SAAS,MAAM,WAC1B,SAAS,eAAe,SAAS,eAAe,SAAS,SACtD,oBAAoB,IAAI,KACxB;AAEN,QAAM,QAAQ,cAAc,QAAQ,KAAK,QAAQ,KAAK;AACtD,MAAI,MAAM,wBAAwB,QAAQ,KAAK,KAAK,GAAG;AACrD,YAAQ,IAAI,gCAAgC;AAAA,EAC9C;AACA,MAAI,eAAiC,cAAc,QAAQ,GAAG;AAK9D,QAAM,iBAAiB,aAAa,SAAS;AAC7C,QAAM,iBAAiB,sBAAsB,QAAQ,GAAG;AAOxD,QAAM,qBAAqB,CAAC,aAAa,aAAa,WAAW,MAAM,KAAK;AAC5E,QAAM,gBAAgB,mBAAmB,SAAS,IAAI,IAAI,cAAc;AACxE,QAAM,YAAY,UAChB,cAAc,SAAS,GAAG,IAAI,IAAI,aAAa,MAAM,aACvD,IAAI,IAAI;AAER,QAAM,OAAO,MAAMC,cAAa;AAAA,IAC9B,MAAM,QAAQ;AAAA,IACd,YAAY,iBAAiB,iBAAiB;AAAA,IAC9C,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU,MAAM;AAAA,IAChB,SAAS,EAAE,OAAO,EAAE,aAAa,mBAAmB,EAAE,EAAE;AAAA,IACxD,SAAS,iBACL;AAAA,MACE,YAAY;AAAA,MACZ,kBAAkB;AAAA,QAChB,UAAU,MAAM;AAAA,QAChB,KAAK,EAAE,cAAc,KAAK;AAAA,MAC5B,CAAC;AAAA,MACD,MAAM;AAAA,IACR,IACA,CAAC;AAAA,IACL,QAAQ;AAAA,MACN,gBAAgB;AAAA;AAAA;AAAA,MAGhB,GAAI,kBAAkB,EAAE,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1C,MAAM;AAAA;AAAA;AAAA;AAAA,MAIN,KAAK,iBAAiB,EAAE,QAAQ,WAAW,IAAI;AAAA,IACjD;AAAA,IACA,KAAK;AAAA,MACH,UAAU;AAAA,IACZ;AAAA,EACF,CAAC;AAED,QAAM,iBAAiB,KAAK,aAAa;AACzC,QAAM,SAAS,yBAAyB,gBAAgB;AAAA,IACtD,KAAK;AAAA,IACL,sBAAsB;AAAA,EACxB,CAAC;AAED,QAAM,eAAe,YAAiC;AACpD,UAAM,OAAO,YAAiC;AAC5C,YAAM,gBAAiB,MAAM,OAAO,OAAO,KAAK;AAIhD,YAAM,SAAS,WAAW,aAAa;AAEvC,UAAI,aAAa,SAAS,GAAG;AAC3B,cAAM,gBAAgB,sBAAsB,YAAY;AACxD,YAAI,OAAO,OAAO,iBAAiB,YAAY;AAC7C,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AAAA,QACF;AACA,eAAO,aAAa,eAAe;AAAA,UACjC,KAAK;AAAA,UACL,aAAa,QAAQ;AAAA,QACvB,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAEA,QAAI,wBAAwB,QAAW;AACrC,aAAO,KAAK;AAAA,IACd;AAOA,UAAM,iBAAiB,QAAQ,IAAI,SAAS;AAC5C,QAAI;AACF,cAAQ,IAAI,SAAS,IAAI;AACzB,aAAO,MAAM,KAAK;AAAA,IACpB,UAAE;AACA,UAAI,mBAAmB,QAAW;AAChC,eAAO,QAAQ,IAAI,SAAS;AAAA,MAC9B,OAAO;AACL,gBAAQ,IAAI,SAAS,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAEA,MAAI;AACJ,MAAI;AACJ,MAAI;AACF,UAAM,SAAS,MAAM,aAAa;AAClC,qBAAiB,OAAO,WAAW,EAAE,KAAK,SAAS,CAAC;AACpD,eAAW,OAAO,YAAY;AAAA,EAChC,SAAS,OAAO;AACd,UAAM,OAAO,MAAM;AACnB,UAAM,KAAK,MAAM;AACjB,UAAM;AAAA,EACR;AAEA,MAAI,YAAY;AAChB,MAAI,QAAQ;AACZ,QAAM,SAAS,MAAY;AACzB,QAAI,WAAW;AACb,cAAQ;AACR;AAAA,IACF;AACA,gBAAY;AACZ,UAAM,YAAY;AAChB,SAAG;AACD,gBAAQ;AACR,YAAI;AACF,iBAAO,iBAAiB,MAAM;AAC9B,gBAAM,SAAS,MAAM,aAAa;AAClC,gBAAM,cAAc,OAAO,WAAW,EAAE,KAAK,SAAS,CAAC;AACvD,2BAAiB;AACjB,qBAAW,OAAO,YAAY;AAC9B,mBAAS,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,mBAAS,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,mBAAS,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,kBAAQ,IAAI,iCAAiC;AAAA,QAC/C,SAAS,OAAO;AACd,kBAAQ;AAAA,YACN;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS;AACT,kBAAY;AAAA,IACd,GAAG;AAAA,EACL;AAEA,QAAM,iBAAiB,CAAC,SAAuB;AAC7C,QAAI,WAAW,MAAM,QAAQ,GAAG,GAAG;AACjC;AAAA,IACF;AACA,UAAM,UAAU,eAAe,YAAY,iBAAiB,IAAI;AAChE,QAAI,YAAY,UAAa,QAAQ,SAAS,GAAG;AAC/C;AAAA,IACF;AACA,eAAW,OAAO,SAAS;AACzB,qBAAe,YAAY,iBAAiB,GAAG;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAEA,QAAM,wBAAwB,CAAC,SAAuB;AACpD,QAAI,CAAC,WAAW,MAAM,QAAQ,GAAG,GAAG;AAClC;AAAA,IACF;AAEA,UAAM,gBAAgB;AACtB,mBAAe,cAAc,QAAQ,GAAG;AAExC,UAAM,eACJ,cAAc,WAAW,aAAa,UACtC,cAAc;AAAA,MACZ,CAAC,GAAG,MACF,EAAE,SAAS,aAAa,CAAC,GAAG,QAC5B,EAAE,cAAc,aAAa,CAAC,GAAG;AAAA,IACrC;AAEF,QAAI,cAAc;AAChB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,oBAAoB,CAAC,SAAuB;AAChD,0BAAsB,IAAI;AAC1B,mBAAe,IAAI;AAAA,EACrB;AAKA,OAAK,QAAQ,GAAG,UAAU,cAAc;AACxC,OAAK,QAAQ,GAAG,OAAO,iBAAiB;AACxC,OAAK,QAAQ,GAAG,UAAU,iBAAiB;AAG3C,QAAM,gBAAgB,oBAAoB,MAAM,MAAM;AAKtD,aAAW,gBAAgB,WAAW,CAAC,QAAQ;AAC7C,UAAM,YAAY,cAAc,OAAO,EAAE;AACzC,QAAI,cAAc,KAAM;AACxB,UAAM,aAAa,IAAI,IAAI,SAAS,EAAE;AACtC,UAAM,cAAc,IAAI,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;AAClD,QAAI,gBAAgB,YAAY;AAC9B,UAAI,QAAQ,OAAO,aAAa,IAAI;AAAA,IACtC;AAAA,EACF,CAAC;AAyBD,QAAM,gBAAgB,CAAC,aAAa,aAAa,KAAK,EAAE,SAAS,IAAI;AACrE,QAAM,0BAA0B,CAC9B,KACA,QACY;AACZ,UAAM,YAAY,cAAc,OAAO,EAAE;AACzC,UAAM,aAAa,cAAc,OAAO,IAAI,IAAI,SAAS,EAAE,WAAW;AACtE,UAAM,QAAQ,eAAe,OAAO,CAAC,UAAU,IAAI,CAAC;AACpD,UAAM,SAAS,mBAAmB,IAAI,QAAQ,MAAM;AAAA,MAClD,GAAG,0BAA0B;AAAA,MAC7B,GAAG;AAAA,IACL,CAAC;AACD,QAAI,OAAO,IAAI;AACb,aAAO;AAAA,IACT;AAEA,QAAI,UAAU,KAAK,EAAE,gBAAgB,mBAAmB,CAAC;AACzD,QAAI;AAAA,MACF,KAAK,UAAU;AAAA,QACb,SAAS;AAAA,QACT,OAAO,EAAE,MAAM,OAAQ,SAAS,OAAO,QAAQ;AAAA,QAC/C,IAAI;AAAA,MACN,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAMA,QAAM,WAAW,YAA2B;AAC1C,SAAK,QAAQ,IAAI,UAAU,cAAc;AACzC,SAAK,QAAQ,IAAI,OAAO,iBAAiB;AACzC,SAAK,QAAQ,IAAI,UAAU,iBAAiB;AAC5C,UAAM,cAAc,KAAK;AACzB,UAAM,IAAI,QAAc,CAAC,SAAS,WAAW,MAAM,MAAM,KAAK,CAAC,CAAC;AAChE,UAAM,OAAO,MAAM;AACnB,UAAM,KAAK,MAAM;AAAA,EACnB;AAEA,QAAM,WAAW;AAAA,IACf;AAAA,MACE,aAAa,MAAM;AAAA,MACnB;AAAA,MACA,QAAQ;AAAA,IACV;AAAA,IACA,CAAC,YAAY,eAAe,OAAO;AAAA,EACrC;AAGA,QAAM,EAAE,cAAc,IAAI,MAAM,OAAO,mBAAmB;AAC1D,QAAM,eAAe,cAAc,EAAE,OAAO,SAAS,CAAC;AAEtD,QAAM,YAAY,CAAC,KAAsB,QAA8B;AACrE,QAAI,iBAAiB,wBAAwB,KAAK,GAAG,GAAG;AACtD;AAAA,IACF;AACA,UAAM,MAAM,IAAI,OAAO;AACvB,UAAM,WAAW,IAAI,IAAI,KAAK,kBAAkB,EAAE;AAGlD,UAAM,eAAe,kBAAkB,aAAa,SAAS;AAK7D,UAAM,gBACJ,IAAI,WAAW,UACd,SAAS,WAAW,IAAI,KACvB,SAAS,WAAW,gBAAgB,KACpC,SAAS,WAAW,YAAY,KAC/B,gBAAgB,SAAS,WAAW,SAAS;AAElD,QAAI,gBAAgB,eAAe;AAKjC,0BAAoB,KAAK,KAAK;AAAA,QAC5B,cAAc,cAAc,OAAO,EAAE,QAAQ;AAAA,QAC7C;AAAA,MACF,CAAC;AACD,WAAK,YAAY,KAAK,KAAK,MAAM;AAC/B,aAAK,aAAa,KAAK,GAAG;AAAA,MAC5B,CAAC;AAAA,IACH,OAAO;AACL,WAAK,aAAa,KAAK,GAAG;AAAA,IAC5B;AAAA,EACF;AACA,aAAW,GAAG,WAAW,SAAS;AAElC,QAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,eAAW,KAAK,SAAS,MAAM;AAC/B,eAAW,OAAO,MAAM,MAAM,MAAM,QAAQ,CAAC;AAAA,EAC/C,CAAC;AAED,UAAQ,IAAI,4BAA4B;AACxC,MAAI,aAAa,SAAS,GAAG;AAC3B,YAAQ;AAAA,MACN,2BAAsB,aAAa,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;AAAA,IAClE;AAAA,EACF;AACA,UAAQ,IAAI,2BAAsB,SAAS,GAAG,QAAQ,EAAE;AACxD,UAAQ,IAAI,2BAAsB,SAAS,GAAG,QAAQ,YAAY;AAClE,MAAI,SAAS,aAAa,SAAS,MAAM;AACvC,UAAM,MAAM,WAAW;AACvB,QAAI,QAAQ,QAAW;AACrB,cAAQ,IAAI,kCAA6B,GAAG,IAAI,IAAI,GAAG,QAAQ,EAAE;AAAA,IACnE;AAAA,EACF;AACA,MAAI,CAAC,eAAe;AAClB,YAAQ;AAAA,MACN,oBAAoB,IAAI;AAAA,IAG1B;AAAA,EACF;AAEA,MAAI,QAAQ,WAAW,MAAM;AAC3B,QAAI;AACF,YAAM,EAAE,IAAI,IAAI,MAAM,cAAc,MAAM,IAAI;AAC9C,cAAQ,IAAI,2BAAsB,GAAG,GAAG,QAAQ,EAAE;AAAA,IACpD,SAAS,OAAO;AACd,YAAM,SAAS;AACf,YAAM;AAAA,IACR;AAAA,EACF;AAIA,MAAI,QAAQ,SAAS,SAAS,QAAQ,OAAO,UAAU,MAAM;AAC3D,kBAAc,GAAG,SAAS,GAAG,QAAQ,YAAY;AAAA,EACnD;AAGA,QAAM,IAAI,QAAc,CAAC,YAAY;AACnC,QAAI,UAAU;AACd,UAAM,WAAW,MAAY;AAC3B,UAAI,QAAS;AACb,gBAAU;AACV,cAAQ,IAAI,UAAU,QAAQ;AAC9B,cAAQ,IAAI,WAAW,QAAQ;AAC/B,YAAM,YAAY;AAChB,cAAM,SAAS;AACf,gBAAQ;AAAA,MACV,GAAG;AAAA,IACL;AACA,YAAQ,GAAG,UAAU,QAAQ;AAC7B,YAAQ,GAAG,WAAW,QAAQ;AAC9B,QAAI,QAAQ,WAAW,QAAW;AAChC,UAAI,QAAQ,OAAO,SAAS;AAC1B,iBAAS;AAAA,MACX,OAAO;AACL,gBAAQ,OAAO,iBAAiB,SAAS,UAAU,EAAE,MAAM,KAAK,CAAC;AAAA,MACnE;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":["spawn","createServer","resolvePort","spawn","resolvePort","createServer"]}
1
+ {"version":3,"sources":["../../src/cli/dev.ts","../../src/cli/port.ts","../../src/cli/dev-api.ts","../../src/cli/tunnel.ts"],"sourcesContent":["/**\n * `mcp-use dev` — a single long-lived dev process (CLI_SPEC.md § Commands →\n * dev): a Vite dev server (Environment API, node/SSR environment only) loads\n * the entry through the module runner; one HTTP listener delegates every\n * request to an atomically swappable handler reference.\n *\n * When views exist, the same Vite server gains a client environment with real\n * HMR for view files; the CLI primes views on each entry reload via the\n * internal {@link registerViews} API (VIEWS_SPEC.md § Dev).\n *\n * Reload, not HMR: on file change the entry is re-imported and the handler\n * reference swapped — no registration diffing or running-registry mutation.\n * All handler generations share one event bus, so a successful swap invalidates\n * the tool, prompt, and resource lists for subscribed development clients.\n *\n * This module is reached only through the bin's dedicated dynamic dev import,\n * so library consumers and production startup never evaluate Vite.\n */\n\nimport { spawn } from \"node:child_process\";\nimport { createServer as createNodeServer } from \"node:http\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport { existsSync } from \"node:fs\";\nimport { networkInterfaces } from \"node:os\";\nimport { join } from \"node:path\";\nimport tailwindcss from \"@tailwindcss/vite\";\nimport react from \"@vitejs/plugin-react\";\nimport { createServer, createServerModuleRunner } from \"vite\";\nimport {\n InMemoryServerEventBus,\n localhostAllowedHostnames,\n localhostAllowedOrigins,\n type ServerEventBus,\n validateHostHeader,\n validateOriginHeader,\n} from \"@modelcontextprotocol/server\";\n\nimport { resolvePort as resolvePreferredPort } from \"../bin/args.js\";\nimport { discoverEntry } from \"./entry.js\";\nimport { resolvePort } from \"./port.js\";\nimport { resolveTailwindCss, resolveUserViteConfig } from \"./vite-config.js\";\nimport { createDevApiHandler } from \"./dev-api.js\";\nimport { createTunnelManager } from \"./tunnel.js\";\nimport { resolveWorkspacePaths } from \"./workspace.js\";\nimport { mcpUseViewsPlugin } from \"./views-plugin.js\";\nimport {\n buildDevViewsManifest,\n discoverViews,\n isViewPath,\n type DiscoveredView,\n} from \"./views.js\";\nimport type { ViewsManifest } from \"../views/types.js\";\n\n/** Web-standard request handler, as returned by `MCPServer.getHandler()`. */\ntype FetchHandler = (request: Request) => Promise<Response>;\n\n/**\n * The duck-typed shape the entry's default export must satisfy: an\n * `MCPServer` instance (checked structurally so the runner may load its own\n * copy of `mcp-use`).\n */\ninterface ServerLike {\n getHandler(options?: { bus?: ServerEventBus }): FetchHandler;\n /** URL path prefix the MCP endpoint is mounted at (default `\"/mcp\"`). */\n readonly basePath?: string;\n __primeViews(\n views: ViewsManifest,\n options?: { dev?: boolean; projectRoot?: string }\n ): void;\n}\n\n/**\n * Options for {@link runDev}.\n *\n * @internal\n */\nexport interface DevOptions {\n /** Absolute path to the project root. */\n cwd: string;\n /**\n * Explicit entry path (the `--entry` flag), absolute or relative to `cwd`.\n *\n * @defaultValue Conventional discovery: `src/index.ts`, `src/server.ts`,\n * `index.ts`, `server.ts` — first hit wins.\n */\n entry?: string;\n /**\n * Preferred port. When taken, the next free port upward is used (and the\n * substitution logged).\n *\n * @defaultValue The `PORT` environment variable, else `3000`.\n */\n port?: number;\n /**\n * Interface address to bind — `\"0.0.0.0\"` exposes the dev server to the\n * local network (phones, containers, teammates); the default keeps it\n * machine-local. Printed and auto-opened URLs use `localhost` for\n * loopback/wildcard binds and the given host verbatim otherwise.\n *\n * Localhost-class binds get DNS-rebinding protection: every request's\n * `Host` is validated (plus the active tunnel hostname); `Origin` only on\n * non-GET/HEAD. Non-localhost binds skip validation — the legitimate\n * hostnames are unknowable here — and log a warning instead.\n *\n * @defaultValue `\"127.0.0.1\"` (matching the server's localhost-first posture).\n */\n host?: string;\n /**\n * Abort signal for embedding and tests: aborting shuts the dev process\n * down gracefully (same path as SIGINT/SIGTERM). The CLI itself does not\n * pass this.\n */\n signal?: AbortSignal;\n /**\n * When `true`, start a public tunnel as soon as the HTTP listener is bound\n * (same as the inspector \"Start Tunnel\" control, but at startup).\n *\n * @defaultValue `false`\n */\n tunnel?: boolean;\n /**\n * Auto-open the inspector in the default browser once the listener is\n * bound (`--no-open` sets this to `false`). Opening is additionally\n * skipped when stdout is not a TTY — agents and CI never get a spurious\n * browser launch or a \"failed to open\" error.\n *\n * @defaultValue `true`\n */\n open?: boolean;\n}\n\n/**\n * Best-effort open of `url` in the platform's default browser.\n *\n * Dependency-free (`open`/`start`/`xdg-open` via spawn), detached, and\n * error-swallowing: a missing opener (headless Linux, containers) must never\n * crash or log noise into the dev process.\n */\nfunction openInBrowser(url: string): void {\n const [command, args]: [string, string[]] =\n process.platform === \"darwin\"\n ? [\"open\", [url]]\n : process.platform === \"win32\"\n ? // `start` is a cmd built-in; the empty string is the window title.\n [\"cmd\", [\"/c\", \"start\", \"\", url]]\n : [\"xdg-open\", [url]];\n try {\n const child = spawn(command, args, { stdio: \"ignore\", detached: true });\n child.on(\"error\", () => {\n // Swallow: auto-open is a convenience, never a failure.\n });\n child.unref();\n } catch {\n // Synchronous spawn failures are equally non-fatal.\n }\n}\n\n/**\n * First non-internal IPv4 address of this machine, for the \"Network:\" line\n * printed on wildcard binds — `undefined` when offline.\n */\nfunction lanAddress(): string | undefined {\n for (const addresses of Object.values(networkInterfaces())) {\n for (const address of addresses ?? []) {\n if (!address.internal && address.family === \"IPv4\") {\n return address.address;\n }\n }\n }\n return undefined;\n}\n\n/**\n * Merge `Origin` into an existing `Vary` header without duplicating it.\n *\n * @param res - Node response whose `Vary` may already list other tokens.\n */\nfunction appendVaryOrigin(res: ServerResponse): void {\n const existing = res.getHeader(\"Vary\");\n const current =\n typeof existing === \"string\"\n ? existing\n : Array.isArray(existing)\n ? existing.join(\", \")\n : existing !== undefined\n ? String(existing)\n : \"\";\n if (\n current\n .split(\",\")\n .map((token) => token.trim().toLowerCase())\n .includes(\"origin\")\n ) {\n return;\n }\n res.setHeader(\"Vary\", current === \"\" ? \"Origin\" : `${current}, Origin`);\n}\n\n/**\n * CORS for Vite-served module-graph URLs on the dev listener.\n *\n * Tunnel active → `Access-Control-Allow-Origin: *` (foreign / opaque hosts).\n * No tunnel on a localhost bind → reflect a validated loopback `Origin`\n * (exact value) and set `Vary: Origin`; reflect `null` for opaque sandbox\n * iframes; foreign or missing Origin get no ACAO.\n *\n * @param req - Incoming request (reads `Origin`).\n * @param res - Response to receive CORS headers.\n * @param options - `tunnelActive` when a public tunnel URL is set;\n * `localhostBind` when the listener is on a loopback host.\n */\nfunction applyViteModuleCors(\n req: IncomingMessage,\n res: ServerResponse,\n options: { tunnelActive: boolean; localhostBind: boolean }\n): void {\n if (options.tunnelActive) {\n res.setHeader(\"Access-Control-Allow-Origin\", \"*\");\n return;\n }\n if (!options.localhostBind) {\n return;\n }\n const originHeader = req.headers.origin;\n // Sandboxed MCP App iframes (opaque origin) send `Origin: null` on module GETs.\n if (originHeader === \"null\") {\n res.setHeader(\"Access-Control-Allow-Origin\", \"null\");\n return;\n }\n // validateOriginHeader treats a missing Origin as ok (no header to check);\n // CORS reflection requires a concrete loopback origin string.\n if (typeof originHeader !== \"string\" || originHeader === \"\") {\n return;\n }\n const result = validateOriginHeader(originHeader, localhostAllowedOrigins());\n if (!result.ok || result.origin === undefined) {\n return;\n }\n res.setHeader(\"Access-Control-Allow-Origin\", result.origin);\n appendVaryOrigin(res);\n}\n\n/**\n * Validate the entry module's default export and return it as a\n * {@link ServerLike}.\n */\nfunction serverFrom(moduleExports: Record<string, unknown>): ServerLike {\n const server = moduleExports[\"default\"];\n if (server === null || typeof server !== \"object\") {\n throw new Error(\n \"The server entry must default-export the MCPServer instance \" +\n \"(`export default server`) and never call listen() itself — \" +\n \"`mcp-use dev` owns the socket.\"\n );\n }\n const candidate = server as Partial<ServerLike>;\n if (typeof candidate.getHandler !== \"function\") {\n throw new Error(\n \"The entry's default export has no getHandler() — it must be the \" +\n \"MCPServer instance (`export default server`).\"\n );\n }\n return candidate as ServerLike;\n}\n\n/**\n * Run the dev server: import the entry through Vite's module runner (full\n * TS/alias support), serve `server.getHandler()` on one long-lived HTTP\n * listener, and swap the handler on file change.\n *\n * A throwing re-import keeps the previous handler alive and prints the error\n * — the dev process never crashes on a bad save. `.env` (if present) is\n * loaded from `cwd` via `process.loadEnvFile()` before the entry is first\n * imported.\n *\n * The returned promise resolves after a graceful shutdown (SIGINT/SIGTERM or\n * `options.signal` aborting).\n *\n * @param options - Project root, optional entry override, port and host.\n * @throws If no entry is found, if the initial import fails, if the entry's\n * default export is not an `MCPServer` (see the entry contract in\n * CLI_SPEC.md), or if `vite` is not installed (`mcp-use dev` requires it as a\n * devDependency).\n *\n * @internal Reached only via the bin's dedicated dev command chunk — not\n * re-exported from the package's \".\" entry.\n */\nexport async function runDev(options: DevOptions): Promise<void> {\n const host = options.host ?? \"127.0.0.1\";\n const paths = resolveWorkspacePaths(options.cwd);\n const eventBus = new InMemoryServerEventBus((error) => {\n console.error(\"[mcp-use] notification delivery failed:\", error);\n });\n\n const envPath = join(options.cwd, \".env\");\n if (existsSync(envPath)) {\n process.loadEnvFile(envPath);\n }\n\n // Resolve the listener before importing the entry so module-scope OAuth\n // configuration observes the canonical port that this CLI will own.\n // The HTTP listener is a raw node:http server with the vendored\n // toNodeHandler bridge — same role as the old @hono/node-server\n // getRequestListener, without a hono dependency.\n // Connect-style ((req, res, next)) with no fetch-shaped equivalent, so\n // splicing it in front of the swappable fetch handler needs the raw Node\n // request boundary. Creating the (not-yet-listening) server up front also\n // lets Vite attach its HMR websocket to this same socket (`hmr.server`\n // below) — one port total, so several `mcp-use dev` processes coexist\n // without websocket port collisions.\n const httpServer = createNodeServer();\n\n const { port, requested } = await resolvePort(\n resolvePreferredPort(options.port),\n host\n );\n if (port !== requested) {\n console.log(`[mcp-use] port ${requested} is taken, using ${port}`);\n }\n process.env[\"PORT\"] = String(port);\n\n const localFallbackMcpUrl =\n process.env[\"MCP_URL\"] === undefined &&\n (host === \"127.0.0.1\" || host === \"localhost\" || host === \"::1\")\n ? `http://localhost:${port}`\n : undefined;\n\n const entry = discoverEntry(options.cwd, options.entry);\n let currentViews: DiscoveredView[] = discoverViews(options.cwd);\n // The Vite client environment (views plugin, Fast Refresh, HMR socket,\n // asset origin) is configured once, from this snapshot. `currentViews`\n // stays live for request routing and re-priming, but a project that starts\n // with zero views needs a dev-server restart to pick up its first view.\n const viewsAtStartup = currentViews.length > 0;\n const userViteConfig = resolveUserViteConfig(options.cwd);\n\n // The bind address is not always a browsable address: `0.0.0.0`/`::`\n // accept connections on every interface but are not valid request hosts\n // in every browser, and `127.0.0.1` reads worse than `localhost` in logs.\n // Anything else (a LAN IP, a hostname) is browsable as itself; bare IPv6\n // addresses need brackets in URLs.\n const loopbackOrWildcard = [\"127.0.0.1\", \"localhost\", \"0.0.0.0\", \"::\", \"::1\"];\n const browsableHost = loopbackOrWildcard.includes(host) ? \"localhost\" : host;\n const devOrigin = `http://${\n browsableHost.includes(\":\") ? `[${browsableHost}]` : browsableHost\n }:${port}`;\n\n const vite = await createServer({\n root: options.cwd,\n configFile: viewsAtStartup ? userViteConfig : false,\n envFile: false,\n logLevel: \"warn\",\n cacheDir: paths.cache,\n resolve: { alias: { tailwindcss: resolveTailwindCss() } },\n plugins: viewsAtStartup\n ? [\n tailwindcss(),\n mcpUseViewsPlugin({\n getViews: () => currentViews,\n dev: { reactRefresh: true },\n }),\n react(),\n ]\n : [],\n server: {\n middlewareMode: true,\n // Absolute asset URLs in dev: without `origin`, Vite emits root-relative\n // paths that resolve against the host page inside srcdoc iframes.\n ...(viewsAtStartup && { origin: devOrigin }),\n // CORS on module URLs is owned by onRequest below (permissive ACAO\n // only while the tunnel is active), not by Vite's own middleware —\n // whose default localhost-only policy would block tunnel-rendering\n // hosts, and whose headers would fight the tunnel-gated ones.\n cors: false,\n // View HMR rides the one HTTP listener: Vite attaches its websocket\n // upgrade handler to our server, so no dedicated HMR port exists to\n // collide when several dev processes run side by side.\n hmr: viewsAtStartup ? { server: httpServer } : false,\n },\n ssr: {\n external: true,\n },\n });\n\n const ssrEnvironment = vite.environments.ssr;\n const runner = createServerModuleRunner(ssrEnvironment, {\n hmr: false,\n sourcemapInterceptor: \"node\",\n });\n\n const importServer = async (): Promise<ServerLike> => {\n const load = async (): Promise<ServerLike> => {\n const moduleExports = (await runner.import(entry)) as Record<\n string,\n unknown\n >;\n const server = serverFrom(moduleExports);\n\n if (currentViews.length > 0) {\n const viewsManifest = buildDevViewsManifest(currentViews);\n if (typeof server.__primeViews !== \"function\") {\n throw new Error(\n \"Loaded MCPServer instance does not support __primeViews.\"\n );\n }\n server.__primeViews(viewsManifest, {\n dev: true,\n projectRoot: options.cwd,\n });\n }\n\n return server;\n };\n\n if (localFallbackMcpUrl === undefined) {\n return load();\n }\n\n // This is safe only because this CLI selected and will bind this local\n // listener. Never derive OAuth identity from an untrusted request Host.\n // Scope it to entry evaluation: MCPServer freezes the trusted canonical\n // resource during construction, while later runtime code must not inherit\n // this CLI-owned synthetic environment value.\n const previousMcpUrl = process.env[\"MCP_URL\"];\n try {\n process.env[\"MCP_URL\"] = localFallbackMcpUrl;\n return await load();\n } finally {\n if (previousMcpUrl === undefined) {\n delete process.env[\"MCP_URL\"];\n } else {\n process.env[\"MCP_URL\"] = previousMcpUrl;\n }\n }\n };\n\n let currentHandler: FetchHandler;\n let basePath: string;\n try {\n const server = await importServer();\n currentHandler = server.getHandler({ bus: eventBus });\n basePath = server.basePath ?? \"/mcp\";\n } catch (error) {\n await runner.close();\n await vite.close();\n throw error;\n }\n\n let reloading = false;\n let dirty = false;\n const reload = (): void => {\n if (reloading) {\n dirty = true;\n return;\n }\n reloading = true;\n void (async () => {\n do {\n dirty = false;\n try {\n runner.evaluatedModules.clear();\n const server = await importServer();\n const nextHandler = server.getHandler({ bus: eventBus });\n currentHandler = nextHandler;\n basePath = server.basePath ?? \"/mcp\";\n eventBus.publish({ kind: \"tools_list_changed\" });\n eventBus.publish({ kind: \"prompts_list_changed\" });\n eventBus.publish({ kind: \"resources_list_changed\" });\n console.log(\"[mcp-use] reloaded server entry\");\n } catch (error) {\n console.error(\n \"[mcp-use] reload failed — keeping the previous server:\\n\",\n error\n );\n }\n } while (dirty);\n reloading = false;\n })();\n };\n\n const onSsrFileEvent = (file: string): void => {\n if (isViewPath(file, options.cwd)) {\n return;\n }\n const modules = ssrEnvironment.moduleGraph.getModulesByFile(file);\n if (modules === undefined || modules.size === 0) {\n return;\n }\n for (const mod of modules) {\n ssrEnvironment.moduleGraph.invalidateModule(mod);\n }\n reload();\n };\n\n const onViewFilesystemEvent = (file: string): void => {\n if (!isViewPath(file, options.cwd)) {\n return;\n }\n\n const previousViews = currentViews;\n currentViews = discoverViews(options.cwd);\n\n const viewsChanged =\n previousViews.length !== currentViews.length ||\n previousViews.some(\n (v, i) =>\n v.name !== currentViews[i]?.name ||\n v.entryPath !== currentViews[i]?.entryPath\n );\n\n if (viewsChanged) {\n reload();\n }\n };\n\n const onFileAddOrUnlink = (file: string): void => {\n onViewFilesystemEvent(file);\n onSsrFileEvent(file);\n };\n\n // A `change` event cannot add or remove a view directory, so only\n // `add`/`unlink` rescan `resources/` — content edits never pay for the\n // synchronous filesystem walk in discoverViews().\n vite.watcher.on(\"change\", onSsrFileEvent);\n vite.watcher.on(\"add\", onFileAddOrUnlink);\n vite.watcher.on(\"unlink\", onFileAddOrUnlink);\n\n // --- One long-lived HTTP listener delegating to the current handler. -----\n const tunnelManager = createTunnelManager(paths.tunnel);\n\n // Vite owns the upgrade listener and validates Host before our HTTP request\n // guard runs. The public tunnel has already been validated by the proxy and\n // tunnel manager, so present only that active host as the local listener.\n httpServer.prependListener(\"upgrade\", (req) => {\n const tunnelUrl = tunnelManager.status().url;\n if (tunnelUrl === null) return;\n const tunnelHost = new URL(tunnelUrl).hostname;\n const requestHost = req.headers.host?.split(\":\")[0];\n if (requestHost === tunnelHost) {\n req.headers.host = `localhost:${port}`;\n }\n });\n\n // --- DNS-rebinding protection. --------------------------------------------\n // getHandler() applies no Host/Origin validation (its contract assumes a\n // platform edge in front); in dev this process *is* the edge, so\n // localhost-class binds get the same localhost-allowlist checks listen()\n // applies — extended with the active tunnel hostname, since tunnel traffic\n // arrives with the tunnel's public Host. The check runs before any routing,\n // covering the MCP endpoint, the dev API (tunnel control), and Vite-served\n // module URLs alike. Non-localhost binds get no validation (the legitimate\n // hostnames are unknowable here) — a startup warning below says so.\n //\n // Host is validated on every request: rebinding works by making the\n // attacker's page same-origin with this server, and the Host header is\n // where that shows up. Origin is validated only on side-effect-bearing\n // methods (the MCP wire and the dev API are all POST): sandboxed view\n // iframes have an opaque origin, so their module/asset GETs legitimately\n // carry `Origin: null` — and external hosts rendering views through the\n // tunnel fetch assets with their own origins. Those cross-origin loads also\n // need CORS: the MCP server's view asset/public routes always emit\n // `Access-Control-Allow-Origin: *`. Vite-served module URLs (onRequest\n // below) emit `*` while a tunnel is active; without a tunnel, localhost\n // binds reflect a validated loopback Origin (exact value + `Vary: Origin`)\n // so a local MCP host can load the module graph, while foreign / opaque /\n // missing Origin get no ACAO.\n const localhostBind = [\"127.0.0.1\", \"localhost\", \"::1\"].includes(host);\n const rejectDisallowedRequest = (\n req: IncomingMessage,\n res: ServerResponse\n ): boolean => {\n const tunnelUrl = tunnelManager.status().url;\n const tunnelHost = tunnelUrl !== null ? new URL(tunnelUrl).hostname : null;\n const extra = tunnelHost !== null ? [tunnelHost] : [];\n const readOnly = req.method === \"GET\" || req.method === \"HEAD\";\n const hostResult = validateHostHeader(req.headers.host, [\n ...localhostAllowedHostnames(),\n ...extra,\n ]);\n const result =\n hostResult.ok && !readOnly\n ? validateOriginHeader(req.headers.origin, [\n ...localhostAllowedOrigins(),\n ...extra,\n ])\n : hostResult;\n if (result.ok) {\n return false;\n }\n // Same JSON-RPC 403 shape the SDK's own validation responses use.\n res.writeHead(403, { \"content-type\": \"application/json\" });\n res.end(\n JSON.stringify({\n jsonrpc: \"2.0\",\n error: { code: -32000, message: result.message },\n id: null,\n })\n );\n return true;\n };\n\n /**\n * Tear down everything the running dev process owns, in dependency order:\n * watcher subscriptions, tunnel, HTTP listener, module runner, Vite.\n */\n const teardown = async (): Promise<void> => {\n vite.watcher.off(\"change\", onSsrFileEvent);\n vite.watcher.off(\"add\", onFileAddOrUnlink);\n vite.watcher.off(\"unlink\", onFileAddOrUnlink);\n await tunnelManager.stop();\n await new Promise<void>((done) => httpServer.close(() => done()));\n await runner.close();\n await vite.close();\n };\n\n const devFetch = createDevApiHandler(\n {\n getBasePath: () => basePath,\n port,\n tunnel: tunnelManager,\n },\n (request) => currentHandler(request)\n );\n\n // Vendored Node bridge — same adapter serve() used internally.\n const { toNodeHandler } = await import(\"../node-bridge.js\");\n const nodeListener = toNodeHandler({ fetch: devFetch });\n\n const onRequest = (req: IncomingMessage, res: ServerResponse): void => {\n if (localhostBind && rejectDisallowedRequest(req, res)) {\n return;\n }\n const url = req.url ?? \"/\";\n const pathname = new URL(url, \"http://127.0.0.1\").pathname;\n // Routing to Vite requires both the client environment (configured only\n // when views existed at startup) and a currently non-empty registry.\n const viewsEnabled = viewsAtStartup && currentViews.length > 0;\n // Vite sees module-graph URLs (/@vite/client, /@id/virtual:…,\n // /.mcp-use/cache/deps/…, view files under /resources/…) plus standard\n // node_modules pre-bundles; everything else — the MCP endpoint included —\n // goes straight to the Hono handler.\n const isViteRequest =\n req.method === \"GET\" &&\n (pathname.startsWith(\"/@\") ||\n pathname.startsWith(\"/node_modules/\") ||\n pathname.startsWith(\"/.mcp-use/\") ||\n (viewsEnabled && pathname.startsWith(\"/resources/\")));\n\n if (viewsEnabled && isViteRequest) {\n // CORS for Vite module URLs: tunnel → `*`; else localhost bind with a\n // validated loopback Origin → reflect that origin (+ Vary). Foreign /\n // opaque / missing Origin stay without ACAO so the source module graph\n // is not readable to arbitrary websites.\n applyViteModuleCors(req, res, {\n tunnelActive: tunnelManager.status().url !== null,\n localhostBind,\n });\n vite.middlewares(req, res, () => {\n void nodeListener(req, res);\n });\n } else {\n void nodeListener(req, res);\n }\n };\n httpServer.on(\"request\", onRequest);\n\n await new Promise<void>((resolve, reject) => {\n httpServer.once(\"error\", reject);\n httpServer.listen(port, host, () => resolve());\n });\n\n console.log(`[mcp-use] dev server ready`);\n if (currentViews.length > 0) {\n console.log(\n ` ➜ Views: ${currentViews.map((v) => v.name).join(\", \")}`\n );\n }\n console.log(` ➜ MCP endpoint: ${devOrigin}${basePath}`);\n console.log(` ➜ Inspector: ${devOrigin}${basePath}/inspector`);\n if (host === \"0.0.0.0\" || host === \"::\") {\n const lan = lanAddress();\n if (lan !== undefined) {\n console.log(` ➜ Network: http://${lan}:${port}${basePath}`);\n }\n }\n if (!localhostBind) {\n console.warn(\n `[mcp-use] --host ${host} serves beyond this machine without Host ` +\n `validation or authentication — anyone with network access can call ` +\n `the MCP endpoint and dev routes.`\n );\n }\n\n if (options.tunnel === true) {\n try {\n const { url } = await tunnelManager.start(port);\n console.log(` ➜ Tunnel: ${url}${basePath}`);\n } catch (error) {\n await teardown();\n throw error;\n }\n }\n\n // Auto-open the inspector — unless disabled (`--no-open`) or stdout is not\n // a TTY (agents/CI: no browser to open, and no error to fail on).\n if (options.open !== false && process.stdout.isTTY === true) {\n openInBrowser(`${devOrigin}${basePath}/inspector`);\n }\n\n // --- Graceful shutdown (SIGINT/SIGTERM or options.signal). ---------------\n await new Promise<void>((resolve) => {\n let closing = false;\n const shutdown = (): void => {\n if (closing) return;\n closing = true;\n process.off(\"SIGINT\", shutdown);\n process.off(\"SIGTERM\", shutdown);\n void (async () => {\n await teardown();\n resolve();\n })();\n };\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n if (options.signal !== undefined) {\n if (options.signal.aborted) {\n shutdown();\n } else {\n options.signal.addEventListener(\"abort\", shutdown, { once: true });\n }\n }\n });\n}\n","/**\n * Port resolution for `mcp-use dev`: `--port`, else `PORT` env, else 3000 — probing\n * upward when the requested port is taken.\n */\n\nimport { createServer } from \"node:net\";\n\n/** How many consecutive ports to probe before giving up. */\nconst MAX_PROBES = 100;\n\n/**\n * Outcome of {@link resolvePort}.\n *\n * @internal\n */\nexport interface ResolvedPort {\n /** The free port to bind. */\n port: number;\n /** The port that was originally requested (differs when probing moved on). */\n requested: number;\n}\n\n/** Check whether `port` is free to bind on `host`. */\nfunction isPortFree(port: number, host: string): Promise<boolean> {\n return new Promise((resolve) => {\n const probe = createServer();\n probe.unref();\n probe.once(\"error\", () => resolve(false));\n probe.listen({ port, host }, () => {\n probe.close(() => resolve(true));\n });\n });\n}\n\n/**\n * Resolve the port to bind: take `requested` (already reduced from\n * `--port` / `PORT` / the default by the caller) and probe upward until a\n * free port is found.\n *\n * @param requested - The preferred port.\n * @param host - The host the server will bind (probing binds the same host).\n * @returns The first free port at or above `requested`, plus the original\n * request so callers can log the substitution.\n * @throws If no free port is found within {@link MAX_PROBES} attempts.\n *\n * @internal\n */\nexport async function resolvePort(\n requested: number,\n host: string\n): Promise<ResolvedPort> {\n for (let port = requested; port < requested + MAX_PROBES; port++) {\n if (await isPortFree(port, host)) {\n return { port, requested };\n }\n }\n throw new Error(\n `No free port found between ${requested} and ${requested + MAX_PROBES - 1} on ${host}.`\n );\n}\n","/**\n * Dev-only inspector API routes intercepted by `mcp-use dev` before the MCP\n * handler — tunnel controls and session metadata for the inspector UI.\n */\n\nimport type { TunnelManager } from \"./tunnel.js\";\n\n/** Web-standard request handler, as returned by `MCPServer.getHandler()`. */\ntype FetchHandler = (request: Request) => Promise<Response>;\n\n/**\n * Dependencies for {@link createDevApiHandler}.\n *\n * @internal\n */\nexport interface DevApiHandlerOptions {\n /** Returns the current MCP mount path (may change after a dev reload). */\n getBasePath: () => string;\n /** Port the dev HTTP listener is bound to. */\n port: number;\n /** Tunnel lifecycle manager owned by the dev process. */\n tunnel: TunnelManager;\n}\n\n/** JSON body for `GET …/inspector/api/dev/info`. */\nexport interface DevInfoResponse {\n /** Full MCP endpoint URL when a tunnel is active; otherwise `null`. */\n mcpUrl: string | null;\n /** Port the dev server listens on. */\n port: number;\n /** Whether the request is served by `mcp-use dev` (always `true` here). */\n fromCli: true;\n /** Public tunnel origin URL, or `null` when no tunnel is running. */\n tunnelUrl: string | null;\n}\n\n/**\n * Wrap an MCP {@link FetchHandler} so dev-only inspector API routes are\n * answered in-process before delegating everything else.\n *\n * @param options - Base path, bound port, and tunnel manager.\n * @param fallback - Handler to invoke when the request is not a dev API route.\n *\n * @example\n * ```ts\n * const handler = createDevApiHandler(\n * { getBasePath: () => \"/mcp\", port: 3000, tunnel },\n * server.getHandler()\n * );\n * ```\n */\nexport function createDevApiHandler(\n options: DevApiHandlerOptions,\n fallback: FetchHandler\n): FetchHandler {\n const devInfo = (): DevInfoResponse => {\n const basePath = options.getBasePath();\n const { url: tunnelUrl } = options.tunnel.status();\n return {\n mcpUrl:\n tunnelUrl !== null\n ? `${tunnelUrl.replace(/\\/+$/, \"\")}${basePath}`\n : null,\n port: options.port,\n fromCli: true,\n tunnelUrl,\n };\n };\n\n return async (request: Request): Promise<Response> => {\n const basePath = options.getBasePath();\n const infoPath = `${basePath}/inspector/api/dev/info`;\n const startPath = `${basePath}/inspector/api/dev/start-tunnel`;\n const stopPath = `${basePath}/inspector/api/dev/stop-tunnel`;\n const pathname = new URL(request.url).pathname;\n\n if (request.method === \"GET\" && pathname === infoPath) {\n return Response.json(devInfo());\n }\n\n if (request.method === \"POST\" && pathname === startPath) {\n try {\n await options.tunnel.start(options.port);\n return Response.json({ ok: true, restarting: false });\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Failed to start tunnel\";\n return Response.json({ error: message }, { status: 500 });\n }\n }\n\n if (request.method === \"POST\" && pathname === stopPath) {\n await options.tunnel.stop();\n return Response.json({ ok: true });\n }\n\n return fallback(request);\n };\n}\n","/**\n * Tunnel lifecycle for `mcp-use dev` — spawns `@mcp-use/tunnel`,\n * parses the public URL from stdout, persists the subdomain under\n * `.mcp-use/state/tunnel.json`, and releases it through the tunnel API before\n * reuse.\n */\n\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { spawn, type ChildProcess } from \"node:child_process\";\nimport { dirname } from \"node:path\";\n\n/** Default base URL for the tunnel reservation/release API. */\nconst DEFAULT_TUNNEL_API = \"https://local.mcp-use.run\";\n\n/**\n * Base URL of the tunnel API (subdomain reservation/release). Overridable via\n * the `MCP_USE_TUNNEL_API` environment variable.\n */\nexport function tunnelApiBase(): string {\n return process.env[\"MCP_USE_TUNNEL_API\"] ?? DEFAULT_TUNNEL_API;\n}\n\n/** On-disk shape of `.mcp-use/state/tunnel.json`. */\ninterface TunnelStateFile {\n /** Last successfully assigned tunnel subdomain. */\n subdomain: string;\n}\n\n/**\n * Minimal tunnel manager surface used by {@link createDevApiHandler} and\n * {@link runDev}.\n */\nexport interface TunnelManager {\n /**\n * Start (or attach) a tunnel targeting `port` and return the public origin\n * URL and assigned subdomain.\n */\n start(port: number): Promise<{ url: string; subdomain: string }>;\n /** Stop the tunnel child process and release the subdomain. */\n stop(): Promise<void>;\n /** Current tunnel public origin URL, or `null` when no tunnel is active. */\n status(): { url: string | null };\n}\n\n/**\n * Create a tunnel manager that reads and writes subdomain state at\n * `stateFilePath` (typically `.mcp-use/state/tunnel.json`).\n *\n * @param stateFilePath - Absolute path to the tunnel state JSON file.\n *\n * @example\n * ```ts\n * const tunnel = createTunnelManager(paths.tunnel);\n * const { url } = await tunnel.start(3000);\n * console.log(url); // https://happy-cat.local.mcp-use.run\n * ```\n */\nexport function createTunnelManager(stateFilePath: string): TunnelManager {\n let proc: ChildProcess | undefined;\n let currentUrl: string | null = null;\n let currentSubdomain: string | undefined;\n\n const markShutdown = (): void => {\n if (\n proc !== undefined &&\n \"markShutdown\" in proc &&\n typeof (proc as { markShutdown?: () => void }).markShutdown === \"function\"\n ) {\n (proc as { markShutdown: () => void }).markShutdown();\n }\n };\n\n const releaseSubdomain = async (subdomain: string): Promise<void> => {\n try {\n await fetch(`${tunnelApiBase()}/api/tunnels/${subdomain}`, {\n method: \"DELETE\",\n signal: AbortSignal.timeout(2_000),\n });\n } catch {\n // Best-effort cleanup; ignore DELETE failures.\n }\n };\n\n const loadSavedSubdomain = async (): Promise<string | undefined> => {\n try {\n const content = await readFile(stateFilePath, \"utf8\");\n const state = JSON.parse(content) as Partial<TunnelStateFile>;\n return typeof state.subdomain === \"string\" ? state.subdomain : undefined;\n } catch {\n return undefined;\n }\n };\n\n const persistSubdomain = async (subdomain: string): Promise<void> => {\n try {\n await mkdir(dirname(stateFilePath), { recursive: true });\n await writeFile(\n stateFilePath,\n JSON.stringify({ subdomain } satisfies TunnelStateFile, null, 2),\n \"utf8\"\n );\n } catch (error) {\n console.warn(\n `[mcp-use] failed to save tunnel subdomain: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n };\n\n const spawnTunnel = (\n port: number,\n subdomain?: string\n ): Promise<{ url: string; subdomain: string; process: ChildProcess }> =>\n new Promise((resolve, reject) => {\n console.log(`[mcp-use] starting tunnel for port ${port}…`);\n\n const userAgent = process.env[\"npm_config_user_agent\"] ?? \"\";\n const [tunnelCommand, tunnelArgs] = userAgent.startsWith(\"pnpm/\")\n ? [\"pnpm\", [\"--silent\", \"dlx\", \"@mcp-use/tunnel\", String(port)]]\n : userAgent.startsWith(\"bun/\")\n ? [\"bunx\", [\"@mcp-use/tunnel\", String(port)]]\n : [\n \"npx\",\n [\"--yes\", \"--prefer-offline\", \"@mcp-use/tunnel\", String(port)],\n ];\n if (subdomain !== undefined) {\n tunnelArgs.push(\"--subdomain\", subdomain);\n }\n\n const child = spawn(tunnelCommand, tunnelArgs, {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n shell: process.platform === \"win32\",\n });\n\n let resolved = false;\n let shuttingDown = false;\n\n const markChildShutdown = (): void => {\n shuttingDown = true;\n };\n (child as unknown as { markShutdown: () => void }).markShutdown =\n markChildShutdown;\n\n child.stdout.on(\"data\", (data: Buffer) => {\n const text = data.toString();\n const isShutdownMessage =\n text.includes(\"Shutting down\") || text.includes(\"🛑\");\n const isErrorMessage = text.includes(\"✖\") || text.includes(\"Error:\");\n\n if (!shuttingDown && !isShutdownMessage && !isErrorMessage) {\n process.stdout.write(text);\n }\n\n const urlMatch = text.match(/https?:\\/\\/([a-z0-9-]+\\.[a-z0-9.-]+)/i);\n if (urlMatch !== null && !resolved) {\n const url = urlMatch[0];\n const fullDomain = urlMatch[1] ?? \"\";\n const subdomainMatch = fullDomain.match(/^([a-z0-9-]+)\\./i);\n let extractedSubdomain =\n subdomainMatch?.[1] ?? fullDomain.split(\".\")[0] ?? \"\";\n if (!/^[a-z0-9-]+$/i.test(extractedSubdomain)) {\n console.warn(\n `[mcp-use] warning: extracted subdomain \"${extractedSubdomain}\" does not match expected format`\n );\n extractedSubdomain = \"\";\n }\n resolved = true;\n clearTimeout(setupTimeout);\n // No log here — the tunnel child's own stdout (passed through\n // above) already announces the public URL.\n resolve({ url, subdomain: extractedSubdomain, process: child });\n }\n });\n\n child.stderr.on(\"data\", (data: Buffer) => {\n const text = data.toString();\n if (\n !shuttingDown &&\n !text.includes(\"INFO\") &&\n !text.includes(\"bore_cli\") &&\n !text.includes(\"Shutting down\") &&\n // npx inherits pnpm-only npm_config_* env vars (e.g.\n // minimum-release-age, verify-deps-before-run) and warns about\n // every key it doesn't recognize — pure noise for the user.\n !/npm warn Unknown (?:env|project|user|builtin) config/.test(text)\n ) {\n process.stderr.write(data);\n }\n });\n\n child.on(\"error\", (error) => {\n if (!resolved) {\n clearTimeout(setupTimeout);\n reject(new Error(`Failed to start tunnel: ${error.message}`));\n }\n });\n\n child.on(\"exit\", (code) => {\n if (code !== 0 && code !== null && !resolved) {\n clearTimeout(setupTimeout);\n reject(new Error(`Tunnel process exited with code ${code}`));\n }\n // The tunnel CLI can exit after setup when its bore connection or\n // server-side registration disappears. Do not keep reporting a dead\n // public URL through dev/info.\n if (proc === child) {\n proc = undefined;\n currentUrl = null;\n currentSubdomain = undefined;\n }\n });\n\n const setupTimeout = setTimeout(() => {\n if (!resolved) {\n child.kill();\n reject(new Error(\"Tunnel setup timed out\"));\n }\n }, 30_000);\n });\n\n return {\n status(): { url: string | null } {\n return { url: currentUrl };\n },\n\n async start(port: number): Promise<{ url: string; subdomain: string }> {\n if (currentUrl !== null) {\n return {\n url: currentUrl,\n subdomain: currentSubdomain ?? \"\",\n };\n }\n\n const existingSubdomain = await loadSavedSubdomain();\n if (existingSubdomain !== undefined) {\n console.log(`[mcp-use] found existing subdomain: ${existingSubdomain}`);\n await releaseSubdomain(existingSubdomain);\n }\n\n let tunnelInfo: Awaited<ReturnType<typeof spawnTunnel>>;\n try {\n tunnelInfo = await spawnTunnel(port, existingSubdomain);\n } catch (error) {\n if (existingSubdomain !== undefined) {\n console.log(\n `[mcp-use] subdomain \"${existingSubdomain}\" unavailable, requesting a new one…`\n );\n tunnelInfo = await spawnTunnel(port, undefined);\n } else {\n throw error;\n }\n }\n\n proc = tunnelInfo.process;\n currentUrl = tunnelInfo.url;\n currentSubdomain = tunnelInfo.subdomain;\n await persistSubdomain(tunnelInfo.subdomain);\n\n return { url: tunnelInfo.url, subdomain: tunnelInfo.subdomain };\n },\n\n async stop(): Promise<void> {\n markShutdown();\n\n if (currentSubdomain !== undefined) {\n await releaseSubdomain(currentSubdomain);\n }\n\n if (proc !== undefined) {\n proc.kill(\"SIGINT\");\n proc = undefined;\n }\n\n currentUrl = null;\n currentSubdomain = undefined;\n },\n };\n}\n"],"mappings":"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","names":["spawn","createServer","resolvePort","spawn","resolvePort","createServer"]}
@@ -1,18 +1,11 @@
1
1
  /** Runtime surface loaded from the independently published client SDK. */
2
2
  export type ClientPackage = typeof import("@mcp-use/client");
3
- /**
4
- * Walk upward from `startDir` for the nearest directory containing
5
- * `package.json`.
6
- */
7
- export declare function findProjectRoot(startDir: string): Promise<string | undefined>;
8
3
  /**
9
4
  * Load `@mcp-use/client` on demand so the framework library entry does not
10
5
  * pull the client SDK (or legacy v1 transitive deps) into every install.
11
6
  *
12
- * @throws {@link UsageError} When the package is not installed and auto-install
13
- * fails or the retry import still cannot resolve it.
7
+ * @throws {@link UsageError} When the package is not installed, with install
8
+ * instructions for npm, pnpm, and bun.
14
9
  */
15
10
  export declare function loadClientPackage(): Promise<ClientPackage>;
16
- /** @internal Imported from project `node_modules` after auto-install. */
17
- export declare function importProjectClientModule(projectRoot: string): Promise<ClientPackage>;
18
11
  //# sourceMappingURL=load-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-client.d.ts","sourceRoot":"","sources":["../../src/commands/load-client.ts"],"names":[],"mappings":"AAcA,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,cAAc,iBAAiB,CAAC,CAAC;AAkB7D;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAQD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CAkBhE;AA+ED,yEAAyE;AACzE,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAIxB"}
1
+ {"version":3,"file":"load-client.d.ts","sourceRoot":"","sources":["../../src/commands/load-client.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,cAAc,iBAAiB,CAAC,CAAC;AAc7D;;;;;;GAMG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CAShE"}
@@ -2,7 +2,7 @@ import {
2
2
  openDirectConnection,
3
3
  openSavedConnection,
4
4
  parseMcpArguments
5
- } from "../chunk-RHITI5QM.js";
5
+ } from "../chunk-RQRT27Q3.js";
6
6
  import {
7
7
  CommandError,
8
8
  UsageError,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolvePort
3
- } from "../chunk-IG2BCCMU.js";
3
+ } from "../chunk-Q4PUTBMV.js";
4
4
 
5
5
  // src/bin/start.ts
6
6
  import { readFile } from "fs/promises";
@@ -6,15 +6,6 @@ export interface CompletionContext {
6
6
  }
7
7
  /** Callback form: return suggestions for the current (partial) value. */
8
8
  export type CompletionCallback = (value: string, context?: CompletionContext) => string[] | Promise<string[]>;
9
- /**
10
- * Build the shared case-insensitive prefix completer used by static values.
11
- *
12
- * @param values - Values retained in declaration order and stringified once.
13
- * @returns A callback that filters the values against an untrimmed prefix.
14
- *
15
- * @internal
16
- */
17
- export declare function createPrefixCompletion(values: ReadonlyArray<string | number | boolean>): (value: unknown) => string[];
18
9
  /**
19
10
  * Make a schema field completable so clients can request autocomplete
20
11
  * suggestions via `completion/complete`.
@@ -1 +1 @@
1
- {"version":3,"file":"completable.d.ts","sourceRoot":"","sources":["../src/completable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,cAAc,EAC7B,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAEtC,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,KACxB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAElC;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAC/C,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,EAAE,CAQ9B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,gBAAgB,EACpD,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,kBAAkB,GACtE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAOtC"}
1
+ {"version":3,"file":"completable.d.ts","sourceRoot":"","sources":["../src/completable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,cAAc,EAC7B,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAEtC,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,KACxB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,gBAAgB,EACpD,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,kBAAkB,GACtE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAWtC"}
package/dist/config.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Icon, ServerOptions } from "@modelcontextprotocol/server";
1
+ import type { ServerOptions } from "@modelcontextprotocol/server";
2
2
  import type { LoggingOptions } from "./logging.js";
3
3
  import type { OAuthProvider } from "./oauth/index.js";
4
4
  /**
@@ -47,74 +47,6 @@ interface BaseServerConfig {
47
47
  * implementation metadata during negotiation.
48
48
  */
49
49
  description?: string;
50
- /**
51
- * Browser favicon source.
52
- *
53
- * Accepts a safe path relative to the project `public/` directory, an
54
- * absolute HTTP(S) URL, or an image data URL. The selected image is served
55
- * at the root-level `/favicon.ico` route. When omitted, the first entry in
56
- * `icons` selects the favicon. An explicit value always wins; an empty
57
- * string is invalid.
58
- *
59
- * @defaultValue Inferred from `icons`, or no favicon when `icons` is absent
60
- * or empty.
61
- * @throws TypeError When the value is empty, uses an unsupported URL scheme,
62
- * or is an unsafe local path.
63
- *
64
- * @example
65
- * ```ts
66
- * new MCPServer({
67
- * name: "my-server",
68
- * version: "1.0.0",
69
- * favicon: "brand/favicon.svg",
70
- * });
71
- * ```
72
- */
73
- favicon?: string;
74
- /**
75
- * Server icons reported to clients in MCP implementation metadata.
76
- *
77
- * Uses the official SDK {@link Icon} shape. Each `src` accepts a safe path
78
- * relative to `public/`, an absolute HTTP(S) URL, or an image data URL.
79
- * Local paths become request-scoped absolute URLs under
80
- * `${basePath}/_mcp-use/public/`; author order is preserved on the wire.
81
- * When `favicon` is omitted, the first icon in this array also selects
82
- * `/favicon.ico`. An empty array is valid and selects no favicon.
83
- *
84
- * @defaultValue `undefined`
85
- * @throws TypeError When an icon has an invalid source, MIME type, sizes,
86
- * or theme.
87
- *
88
- * @example
89
- * ```ts
90
- * new MCPServer({
91
- * name: "my-server",
92
- * version: "1.0.0",
93
- * icons: [
94
- * { src: "brand/icon.svg", mimeType: "image/svg+xml" },
95
- * { src: "brand/icon-32.png", mimeType: "image/png", sizes: ["32x32"] },
96
- * ],
97
- * });
98
- * ```
99
- */
100
- icons?: Icon[];
101
- /**
102
- * Absolute HTTP(S) URL for the server's website or documentation, reported
103
- * to clients in MCP implementation metadata.
104
- *
105
- * @defaultValue `undefined`
106
- * @throws TypeError When the value is empty, relative, or not HTTP(S).
107
- *
108
- * @example
109
- * ```ts
110
- * new MCPServer({
111
- * name: "my-server",
112
- * version: "1.0.0",
113
- * websiteUrl: "https://example.com/my-server",
114
- * });
115
- * ```
116
- */
117
- websiteUrl?: string;
118
50
  /** Usage instructions surfaced to the model by clients. */
119
51
  instructions?: string;
120
52
  /**
@@ -149,9 +81,9 @@ interface BaseServerConfig {
149
81
  /**
150
82
  * Extra allowed origin hostnames for Origin-header validation
151
83
  * (port-agnostic, additive to the localhost-class origins). When unset,
152
- * Origin validation is off (SDK-aligned). When set, Origin is validated
153
- * only on non-GET/HEAD requests (sandboxed view iframes send `Origin: null`
154
- * on asset GETs; the MCP wire is POST). Requests without an `Origin` header
84
+ * mirrors the effective Host allowlist. Origin is validated only on
85
+ * non-GET/HEAD requests (sandboxed view iframes send `Origin: null` on
86
+ * asset GETs; the MCP wire is POST). Requests without an `Origin` header
155
87
  * always pass (non-browser MCP clients don't send one).
156
88
  */
157
89
  allowedOrigins?: string[];
@@ -167,18 +99,6 @@ interface BaseServerConfig {
167
99
  * @defaultValue `"stateless"`
168
100
  */
169
101
  legacy?: "stateless" | "reject";
170
- /**
171
- * Expose the HTML landing page without bearer authentication when OAuth is
172
- * configured.
173
- *
174
- * The landing page itself is always mounted at `basePath` for browser GET
175
- * and HEAD requests that explicitly accept `text/html`. Without OAuth it is
176
- * public. With OAuth, it requires a valid bearer token unless this option is
177
- * `true`. MCP protocol requests remain protected in either case.
178
- *
179
- * @defaultValue `false`
180
- */
181
- publicLandingPage?: boolean;
182
102
  /**
183
103
  * Inspector shell route at `${basePath}/inspector` — a browser UI for
184
104
  * exploring and calling the server's tools, resources, and prompts.
@@ -245,47 +165,6 @@ interface BaseServerConfig {
245
165
  * @defaultValue `undefined`
246
166
  */
247
167
  requestState?: ServerOptions["requestState"];
248
- /**
249
- * Optional CORS headers on every route served by `getHandler()` / `listen()`
250
- * (MCP endpoint, view assets, inspector, OAuth metadata). Off when omitted.
251
- *
252
- * Pair with {@link BaseServerConfig.allowedOrigins | allowedOrigins} for
253
- * browser clients: CORS tells the browser it may read the response; Origin
254
- * validation decides whether the server accepts the request.
255
- *
256
- * @example
257
- * ```ts
258
- * new MCPServer({
259
- * name: "api",
260
- * version: "1.0.0",
261
- * allowedOrigins: ["app.example.com"],
262
- * cors: {
263
- * origin: "https://app.example.com",
264
- * credentials: true,
265
- * },
266
- * });
267
- * ```
268
- */
269
- cors?: CorsOptions;
270
- }
271
- /**
272
- * CORS configuration for routes owned by mcp-use (`getHandler()` / `listen()`).
273
- *
274
- * Omit `cors` entirely for the current no-CORS behavior. Pass `cors: {}` to
275
- * enable with defaults (reflects the request `Origin` when present; wildcard
276
- * `origin: "*"` requires an explicit opt-in).
277
- */
278
- export interface CorsOptions {
279
- /** @defaultValue `true` when `cors` is set; ignored when `cors` is omitted */
280
- enabled?: boolean;
281
- /** Allowed Origin(s). Reflect matching `Origin` header, or `"*"` when set. */
282
- origin?: string | string[] | ((origin: string | null) => string | null);
283
- /** @defaultValue `["GET", "HEAD", "POST", "OPTIONS"]` */
284
- methods?: string[];
285
- /** @defaultValue common MCP + JSON headers */
286
- allowedHeaders?: string[];
287
- /** @defaultValue `false` */
288
- credentials?: boolean;
289
168
  }
290
169
  /**
291
170
  * Runtime checks for optional {@link ServerConfig} fields that TypeScript
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,UAAU,gBAAgB;IACxB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAqBvE;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,KAAK,GAAG,KAAK,IAAI,gBAAgB,GACxD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GACpB;IACE,wEAAwE;IACxE,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GACD;IACE;;;OAGG;IACH,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CAC7B,CAAC,CAAC"}
@@ -1,23 +1,6 @@
1
1
  import { type AuthInfo } from "@modelcontextprotocol/server";
2
2
  /** Web-standard request handler. */
3
3
  export type FetchHandler = (request: Request) => Promise<Response>;
4
- /** Request shapes accepted by {@link toFrameworkHandler}. */
5
- export type FrameworkRequestLike = Request | {
6
- req: {
7
- raw: Request;
8
- };
9
- };
10
- /**
11
- * Universal web handler mountable in Vercel, Hono, TanStack, and other
12
- * fetch-native frameworks without `c.req.raw` boilerplate.
13
- */
14
- export type FrameworkHandler = (input: FrameworkRequestLike) => Promise<Response>;
15
- /**
16
- * Wrap a {@link FetchHandler} for framework duck-typing (Hono `Context`, etc.).
17
- *
18
- * @param fetch - Inner fetch handler produced by {@link MCPServer.getHandler}.
19
- */
20
- export declare function toFrameworkHandler(fetch: FetchHandler): FrameworkHandler;
21
4
  /** Onion middleware over a {@link FetchHandler} terminal. */
22
5
  export type FetchMiddleware = (request: Request, next: () => Promise<Response>) => Promise<Response>;
23
6
  /** Per-request values stashed before the MCP handler runs. */
@@ -60,32 +43,6 @@ export declare function matchesPath(request: Request, path: string): boolean;
60
43
  * @param prefix - Path prefix without a trailing wildcard.
61
44
  */
62
45
  export declare function matchesPathPrefix(request: Request, prefix: string): boolean;
63
- /**
64
- * Append a framework-owned child path beneath an MCP base path.
65
- *
66
- * Unlike string interpolation, this keeps the root base path from producing
67
- * a double slash: `pathUnderBase("/", "inspector")` is `"/inspector"`.
68
- *
69
- * @param basePath - Valid MCP base path, including the root path `/`.
70
- * @param childPath - Relative child path, with or without a leading slash.
71
- * @returns Absolute pathname beneath `basePath`.
72
- *
73
- * @internal
74
- */
75
- export declare function pathUnderBase(basePath: string, childPath: string): string;
76
- /**
77
- * Classify a request as explicit browser HTML navigation.
78
- *
79
- * Only GET and HEAD requests whose Accept header names `text/html` with a
80
- * non-zero quality value qualify. Wildcard-only and missing Accept headers
81
- * remain available to protocol and health probes.
82
- *
83
- * @param request - Incoming request to classify.
84
- * @returns Whether the request explicitly accepts HTML.
85
- *
86
- * @internal
87
- */
88
- export declare function isHtmlNavigationRequest(request: Request): boolean;
89
46
  /**
90
47
  * Dispatch to the first matching route handler.
91
48
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-app.d.ts","sourceRoot":"","sources":["../src/fetch-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,8BAA8B,CAAC;AAEtC,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEnE,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,oBAAoB,KACxB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB,CAKxE;AAED,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,KAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAO1D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,YAAY,EACtB,GAAG,WAAW,EAAE,eAAe,EAAE,GAChC,YAAY,CAad;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAkBjE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,OAAO,EAAE,YAAY,CAAC;CACvB,CAAC,EACF,QAAQ,GAAE,YACkC,GAC3C,YAAY,CASd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAkBpD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAKzE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EAAE,EACjB,eAAe,UAAO,GACrB,eAAe,CAWjB"}
1
+ {"version":3,"file":"fetch-app.d.ts","sourceRoot":"","sources":["../src/fetch-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,8BAA8B,CAAC;AAEtC,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEnE,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,KAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAO1D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,YAAY,EACtB,GAAG,WAAW,EAAE,eAAe,EAAE,GAChC,YAAY,CAad;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG3E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,OAAO,EAAE,YAAY,CAAC;CACvB,CAAC,EACF,QAAQ,GAAE,YACkC,GAC3C,YAAY,CASd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAkBpD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAKzE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EAAE,EACjB,eAAe,UAAO,GACrB,eAAe,CAWjB"}