@vibesdotdev/mcp 0.0.0-stage → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +96 -2
  3. package/dist/adapters/auth-middleware.d.ts +68 -0
  4. package/dist/adapters/auth-middleware.d.ts.map +1 -0
  5. package/dist/adapters/auth-middleware.js +161 -0
  6. package/dist/adapters/auth-middleware.js.map +1 -0
  7. package/dist/adapters/compatibility.d.ts +20 -0
  8. package/dist/adapters/compatibility.d.ts.map +1 -0
  9. package/dist/adapters/compatibility.js +57 -0
  10. package/dist/adapters/compatibility.js.map +1 -0
  11. package/dist/adapters/host-context.consumer.d.ts +12 -0
  12. package/dist/adapters/host-context.consumer.d.ts.map +1 -0
  13. package/dist/adapters/host-context.consumer.js +10 -0
  14. package/dist/adapters/host-context.consumer.js.map +1 -0
  15. package/dist/adapters/host-context.d.ts +32 -0
  16. package/dist/adapters/host-context.d.ts.map +1 -0
  17. package/dist/adapters/host-context.js +17 -0
  18. package/dist/adapters/host-context.js.map +1 -0
  19. package/dist/adapters/index.d.ts +12 -0
  20. package/dist/adapters/index.d.ts.map +1 -0
  21. package/dist/adapters/index.js +13 -0
  22. package/dist/adapters/index.js.map +1 -0
  23. package/dist/adapters/mcp/ambient-envelope.d.ts +26 -0
  24. package/dist/adapters/mcp/ambient-envelope.d.ts.map +1 -0
  25. package/dist/adapters/mcp/ambient-envelope.js +70 -0
  26. package/dist/adapters/mcp/ambient-envelope.js.map +1 -0
  27. package/dist/adapters/mcp/catalog.d.ts +15 -0
  28. package/dist/adapters/mcp/catalog.d.ts.map +1 -0
  29. package/dist/adapters/mcp/catalog.js +26 -0
  30. package/dist/adapters/mcp/catalog.js.map +1 -0
  31. package/dist/adapters/mcp/connection-identity.d.ts +81 -0
  32. package/dist/adapters/mcp/connection-identity.d.ts.map +1 -0
  33. package/dist/adapters/mcp/connection-identity.js +114 -0
  34. package/dist/adapters/mcp/connection-identity.js.map +1 -0
  35. package/dist/adapters/mcp/context.d.ts +137 -0
  36. package/dist/adapters/mcp/context.d.ts.map +1 -0
  37. package/dist/adapters/mcp/context.js +230 -0
  38. package/dist/adapters/mcp/context.js.map +1 -0
  39. package/dist/adapters/mcp/formatters.d.ts +41 -0
  40. package/dist/adapters/mcp/formatters.d.ts.map +1 -0
  41. package/dist/adapters/mcp/formatters.js +102 -0
  42. package/dist/adapters/mcp/formatters.js.map +1 -0
  43. package/dist/adapters/mcp/from-api-endpoint.d.ts +59 -0
  44. package/dist/adapters/mcp/from-api-endpoint.d.ts.map +1 -0
  45. package/dist/adapters/mcp/from-api-endpoint.js +206 -0
  46. package/dist/adapters/mcp/from-api-endpoint.js.map +1 -0
  47. package/dist/adapters/mcp/generation-contract.d.ts +5 -0
  48. package/dist/adapters/mcp/generation-contract.d.ts.map +1 -0
  49. package/dist/adapters/mcp/generation-contract.js +34 -0
  50. package/dist/adapters/mcp/generation-contract.js.map +1 -0
  51. package/dist/adapters/mcp/host-registry.d.ts +159 -0
  52. package/dist/adapters/mcp/host-registry.d.ts.map +1 -0
  53. package/dist/adapters/mcp/host-registry.js +237 -0
  54. package/dist/adapters/mcp/host-registry.js.map +1 -0
  55. package/dist/adapters/mcp/index.d.ts +12 -0
  56. package/dist/adapters/mcp/index.d.ts.map +1 -0
  57. package/dist/adapters/mcp/index.js +17 -0
  58. package/dist/adapters/mcp/index.js.map +1 -0
  59. package/dist/adapters/mcp/isolated-notice.d.ts +111 -0
  60. package/dist/adapters/mcp/isolated-notice.d.ts.map +1 -0
  61. package/dist/adapters/mcp/isolated-notice.js +217 -0
  62. package/dist/adapters/mcp/isolated-notice.js.map +1 -0
  63. package/dist/adapters/mcp/json-rpc.d.ts +16 -0
  64. package/dist/adapters/mcp/json-rpc.d.ts.map +1 -0
  65. package/dist/adapters/mcp/json-rpc.js +32 -0
  66. package/dist/adapters/mcp/json-rpc.js.map +1 -0
  67. package/dist/adapters/mcp/local-origin.d.ts +18 -0
  68. package/dist/adapters/mcp/local-origin.d.ts.map +1 -0
  69. package/dist/adapters/mcp/local-origin.js +37 -0
  70. package/dist/adapters/mcp/local-origin.js.map +1 -0
  71. package/dist/adapters/mcp/logging/mcp-cloud.descriptor.d.ts +11 -0
  72. package/dist/adapters/mcp/logging/mcp-cloud.descriptor.d.ts.map +1 -0
  73. package/dist/adapters/mcp/logging/mcp-cloud.descriptor.js +21 -0
  74. package/dist/adapters/mcp/logging/mcp-cloud.descriptor.js.map +1 -0
  75. package/dist/adapters/mcp/logging/mcp-http.descriptor.d.ts +10 -0
  76. package/dist/adapters/mcp/logging/mcp-http.descriptor.d.ts.map +1 -0
  77. package/dist/adapters/mcp/logging/mcp-http.descriptor.js +20 -0
  78. package/dist/adapters/mcp/logging/mcp-http.descriptor.js.map +1 -0
  79. package/dist/adapters/mcp/logging/mcp-server.descriptor.d.ts +9 -0
  80. package/dist/adapters/mcp/logging/mcp-server.descriptor.d.ts.map +1 -0
  81. package/dist/adapters/mcp/logging/mcp-server.descriptor.js +25 -0
  82. package/dist/adapters/mcp/logging/mcp-server.descriptor.js.map +1 -0
  83. package/dist/adapters/mcp/logging/mcp-stdio.descriptor.d.ts +10 -0
  84. package/dist/adapters/mcp/logging/mcp-stdio.descriptor.d.ts.map +1 -0
  85. package/dist/adapters/mcp/logging/mcp-stdio.descriptor.js +20 -0
  86. package/dist/adapters/mcp/logging/mcp-stdio.descriptor.js.map +1 -0
  87. package/dist/adapters/mcp/mcp-http-session.d.ts +140 -0
  88. package/dist/adapters/mcp/mcp-http-session.d.ts.map +1 -0
  89. package/dist/adapters/mcp/mcp-http-session.js +797 -0
  90. package/dist/adapters/mcp/mcp-http-session.js.map +1 -0
  91. package/dist/adapters/mcp/mcp-wire-name.d.ts +9 -0
  92. package/dist/adapters/mcp/mcp-wire-name.d.ts.map +1 -0
  93. package/dist/adapters/mcp/mcp-wire-name.js +52 -0
  94. package/dist/adapters/mcp/mcp-wire-name.js.map +1 -0
  95. package/dist/adapters/mcp/projection-doctor.d.ts +101 -0
  96. package/dist/adapters/mcp/projection-doctor.d.ts.map +1 -0
  97. package/dist/adapters/mcp/projection-doctor.js +285 -0
  98. package/dist/adapters/mcp/projection-doctor.js.map +1 -0
  99. package/dist/adapters/mcp/projection.d.ts +36 -0
  100. package/dist/adapters/mcp/projection.d.ts.map +1 -0
  101. package/dist/adapters/mcp/projection.js +136 -0
  102. package/dist/adapters/mcp/projection.js.map +1 -0
  103. package/dist/adapters/mcp/prompts/continuity-wake.prompt.descriptor.d.ts +113 -0
  104. package/dist/adapters/mcp/prompts/continuity-wake.prompt.descriptor.d.ts.map +1 -0
  105. package/dist/adapters/mcp/prompts/continuity-wake.prompt.descriptor.js +15 -0
  106. package/dist/adapters/mcp/prompts/continuity-wake.prompt.descriptor.js.map +1 -0
  107. package/dist/adapters/mcp/prompts/empty-tool-kind.prompt.descriptor.d.ts +113 -0
  108. package/dist/adapters/mcp/prompts/empty-tool-kind.prompt.descriptor.d.ts.map +1 -0
  109. package/dist/adapters/mcp/prompts/empty-tool-kind.prompt.descriptor.js +18 -0
  110. package/dist/adapters/mcp/prompts/empty-tool-kind.prompt.descriptor.js.map +1 -0
  111. package/dist/adapters/mcp/prompts/index.d.ts +113 -0
  112. package/dist/adapters/mcp/prompts/index.d.ts.map +1 -0
  113. package/dist/adapters/mcp/prompts/index.js +24 -0
  114. package/dist/adapters/mcp/prompts/index.js.map +1 -0
  115. package/dist/adapters/mcp/prompts/isolated-runtime.prompt.descriptor.d.ts +114 -0
  116. package/dist/adapters/mcp/prompts/isolated-runtime.prompt.descriptor.d.ts.map +1 -0
  117. package/dist/adapters/mcp/prompts/isolated-runtime.prompt.descriptor.js +37 -0
  118. package/dist/adapters/mcp/prompts/isolated-runtime.prompt.descriptor.js.map +1 -0
  119. package/dist/adapters/mcp/prompts/local-tools.prompt.descriptor.d.ts +113 -0
  120. package/dist/adapters/mcp/prompts/local-tools.prompt.descriptor.d.ts.map +1 -0
  121. package/dist/adapters/mcp/prompts/local-tools.prompt.descriptor.js +20 -0
  122. package/dist/adapters/mcp/prompts/local-tools.prompt.descriptor.js.map +1 -0
  123. package/dist/adapters/mcp/prompts/max-tools.prompt.descriptor.d.ts +113 -0
  124. package/dist/adapters/mcp/prompts/max-tools.prompt.descriptor.d.ts.map +1 -0
  125. package/dist/adapters/mcp/prompts/max-tools.prompt.descriptor.js +20 -0
  126. package/dist/adapters/mcp/prompts/max-tools.prompt.descriptor.js.map +1 -0
  127. package/dist/adapters/mcp/prompts/private-runtime.prompt.descriptor.d.ts +114 -0
  128. package/dist/adapters/mcp/prompts/private-runtime.prompt.descriptor.d.ts.map +1 -0
  129. package/dist/adapters/mcp/prompts/private-runtime.prompt.descriptor.js +21 -0
  130. package/dist/adapters/mcp/prompts/private-runtime.prompt.descriptor.js.map +1 -0
  131. package/dist/adapters/mcp/prompts/registration-failure.prompt.descriptor.d.ts +113 -0
  132. package/dist/adapters/mcp/prompts/registration-failure.prompt.descriptor.d.ts.map +1 -0
  133. package/dist/adapters/mcp/prompts/registration-failure.prompt.descriptor.js +19 -0
  134. package/dist/adapters/mcp/prompts/registration-failure.prompt.descriptor.js.map +1 -0
  135. package/dist/adapters/mcp/prompts/required-checklist.prompt.descriptor.d.ts +113 -0
  136. package/dist/adapters/mcp/prompts/required-checklist.prompt.descriptor.d.ts.map +1 -0
  137. package/dist/adapters/mcp/prompts/required-checklist.prompt.descriptor.js +18 -0
  138. package/dist/adapters/mcp/prompts/required-checklist.prompt.descriptor.js.map +1 -0
  139. package/dist/adapters/mcp/prompts/required-tools-missing.prompt.descriptor.d.ts +113 -0
  140. package/dist/adapters/mcp/prompts/required-tools-missing.prompt.descriptor.d.ts.map +1 -0
  141. package/dist/adapters/mcp/prompts/required-tools-missing.prompt.descriptor.js +19 -0
  142. package/dist/adapters/mcp/prompts/required-tools-missing.prompt.descriptor.js.map +1 -0
  143. package/dist/adapters/mcp/prompts/unknown-client.prompt.descriptor.d.ts +113 -0
  144. package/dist/adapters/mcp/prompts/unknown-client.prompt.descriptor.d.ts.map +1 -0
  145. package/dist/adapters/mcp/prompts/unknown-client.prompt.descriptor.js +18 -0
  146. package/dist/adapters/mcp/prompts/unknown-client.prompt.descriptor.js.map +1 -0
  147. package/dist/adapters/mcp/request-context.d.ts +28 -0
  148. package/dist/adapters/mcp/request-context.d.ts.map +1 -0
  149. package/dist/adapters/mcp/request-context.js +49 -0
  150. package/dist/adapters/mcp/request-context.js.map +1 -0
  151. package/dist/adapters/mcp/roster-announcer.d.ts +3 -0
  152. package/dist/adapters/mcp/roster-announcer.d.ts.map +1 -0
  153. package/dist/adapters/mcp/roster-announcer.js +22 -0
  154. package/dist/adapters/mcp/roster-announcer.js.map +1 -0
  155. package/dist/adapters/mcp/sampling-context.d.ts +12 -0
  156. package/dist/adapters/mcp/sampling-context.d.ts.map +1 -0
  157. package/dist/adapters/mcp/sampling-context.js +30 -0
  158. package/dist/adapters/mcp/sampling-context.js.map +1 -0
  159. package/dist/adapters/mcp/sampling.d.ts +17 -0
  160. package/dist/adapters/mcp/sampling.d.ts.map +1 -0
  161. package/dist/adapters/mcp/sampling.js +43 -0
  162. package/dist/adapters/mcp/sampling.js.map +1 -0
  163. package/dist/adapters/mcp/schemas/index.d.ts +37 -0
  164. package/dist/adapters/mcp/schemas/index.d.ts.map +1 -0
  165. package/dist/adapters/mcp/schemas/index.js +5 -0
  166. package/dist/adapters/mcp/schemas/index.js.map +1 -0
  167. package/dist/adapters/mcp/schemas/tool-selection.d.ts +12 -0
  168. package/dist/adapters/mcp/schemas/tool-selection.d.ts.map +1 -0
  169. package/dist/adapters/mcp/schemas/tool-selection.js +2 -0
  170. package/dist/adapters/mcp/schemas/tool-selection.js.map +1 -0
  171. package/dist/adapters/mcp/serve-identity.d.ts +64 -0
  172. package/dist/adapters/mcp/serve-identity.d.ts.map +1 -0
  173. package/dist/adapters/mcp/serve-identity.js +220 -0
  174. package/dist/adapters/mcp/serve-identity.js.map +1 -0
  175. package/dist/adapters/mcp/server.consumer.d.ts +5 -0
  176. package/dist/adapters/mcp/server.consumer.d.ts.map +1 -0
  177. package/dist/adapters/mcp/server.consumer.js +300 -0
  178. package/dist/adapters/mcp/server.consumer.js.map +1 -0
  179. package/dist/adapters/mcp/server.d.ts +56 -0
  180. package/dist/adapters/mcp/server.d.ts.map +1 -0
  181. package/dist/adapters/mcp/server.js +1423 -0
  182. package/dist/adapters/mcp/server.js.map +1 -0
  183. package/dist/adapters/mcp/stale-body.consumer.d.ts +85 -0
  184. package/dist/adapters/mcp/stale-body.consumer.d.ts.map +1 -0
  185. package/dist/adapters/mcp/stale-body.consumer.js +183 -0
  186. package/dist/adapters/mcp/stale-body.consumer.js.map +1 -0
  187. package/dist/adapters/mcp/startup-refusal.d.ts +8 -0
  188. package/dist/adapters/mcp/startup-refusal.d.ts.map +1 -0
  189. package/dist/adapters/mcp/startup-refusal.js +141 -0
  190. package/dist/adapters/mcp/startup-refusal.js.map +1 -0
  191. package/dist/adapters/mcp/stdio-relay.d.ts +232 -0
  192. package/dist/adapters/mcp/stdio-relay.d.ts.map +1 -0
  193. package/dist/adapters/mcp/stdio-relay.js +1169 -0
  194. package/dist/adapters/mcp/stdio-relay.js.map +1 -0
  195. package/dist/adapters/mcp/tool-audit-live.d.ts +109 -0
  196. package/dist/adapters/mcp/tool-audit-live.d.ts.map +1 -0
  197. package/dist/adapters/mcp/tool-audit-live.js +538 -0
  198. package/dist/adapters/mcp/tool-audit-live.js.map +1 -0
  199. package/dist/adapters/mcp/tool-audit.d.ts +44 -0
  200. package/dist/adapters/mcp/tool-audit.d.ts.map +1 -0
  201. package/dist/adapters/mcp/tool-audit.js +168 -0
  202. package/dist/adapters/mcp/tool-audit.js.map +1 -0
  203. package/dist/adapters/mcp/tool-catalog.d.ts +179 -0
  204. package/dist/adapters/mcp/tool-catalog.d.ts.map +1 -0
  205. package/dist/adapters/mcp/tool-catalog.js +330 -0
  206. package/dist/adapters/mcp/tool-catalog.js.map +1 -0
  207. package/dist/adapters/mcp/tool-selection.d.ts +77 -0
  208. package/dist/adapters/mcp/tool-selection.d.ts.map +1 -0
  209. package/dist/adapters/mcp/tool-selection.js +266 -0
  210. package/dist/adapters/mcp/tool-selection.js.map +1 -0
  211. package/dist/adapters/mcp/transport-registry.d.ts +5 -0
  212. package/dist/adapters/mcp/transport-registry.d.ts.map +1 -0
  213. package/dist/adapters/mcp/transport-registry.js +13 -0
  214. package/dist/adapters/mcp/transport-registry.js.map +1 -0
  215. package/dist/adapters/mcp/trust-tag.d.ts +69 -0
  216. package/dist/adapters/mcp/trust-tag.d.ts.map +1 -0
  217. package/dist/adapters/mcp/trust-tag.js +120 -0
  218. package/dist/adapters/mcp/trust-tag.js.map +1 -0
  219. package/dist/adapters/mcp/vibes-types.d.ts +115 -0
  220. package/dist/adapters/mcp/vibes-types.d.ts.map +1 -0
  221. package/dist/adapters/mcp/vibes-types.js +7 -0
  222. package/dist/adapters/mcp/vibes-types.js.map +1 -0
  223. package/dist/adapters/mcp/web-handler.d.ts +49 -0
  224. package/dist/adapters/mcp/web-handler.d.ts.map +1 -0
  225. package/dist/adapters/mcp/web-handler.js +129 -0
  226. package/dist/adapters/mcp/web-handler.js.map +1 -0
  227. package/dist/adapters/session-id.d.ts +3 -0
  228. package/dist/adapters/session-id.d.ts.map +1 -0
  229. package/dist/adapters/session-id.js +42 -0
  230. package/dist/adapters/session-id.js.map +1 -0
  231. package/dist/adapters/transport-bun-http.d.ts +39 -0
  232. package/dist/adapters/transport-bun-http.d.ts.map +1 -0
  233. package/dist/adapters/transport-bun-http.js +42 -0
  234. package/dist/adapters/transport-bun-http.js.map +1 -0
  235. package/dist/adapters/types.d.ts +135 -0
  236. package/dist/adapters/types.d.ts.map +1 -0
  237. package/dist/adapters/types.js +2 -0
  238. package/dist/adapters/types.js.map +1 -0
  239. package/dist/adapters/web-compatibility.d.ts +6 -0
  240. package/dist/adapters/web-compatibility.d.ts.map +1 -0
  241. package/dist/adapters/web-compatibility.js +13 -0
  242. package/dist/adapters/web-compatibility.js.map +1 -0
  243. package/dist/adapters/zod-mcp.d.ts +139 -0
  244. package/dist/adapters/zod-mcp.d.ts.map +1 -0
  245. package/dist/adapters/zod-mcp.js +617 -0
  246. package/dist/adapters/zod-mcp.js.map +1 -0
  247. package/dist/cli/mcp/audit/dev.audit.tools.descriptor.d.ts +15 -0
  248. package/dist/cli/mcp/audit/dev.audit.tools.descriptor.d.ts.map +1 -0
  249. package/dist/cli/mcp/audit/dev.audit.tools.descriptor.js +58 -0
  250. package/dist/cli/mcp/audit/dev.audit.tools.descriptor.js.map +1 -0
  251. package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.d.ts +6 -0
  252. package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.d.ts.map +1 -0
  253. package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.js +180 -0
  254. package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.js.map +1 -0
  255. package/dist/cli/mcp/lifecycle/dev.mcp.restart.descriptor.d.ts +22 -0
  256. package/dist/cli/mcp/lifecycle/dev.mcp.restart.descriptor.d.ts.map +1 -0
  257. package/dist/cli/mcp/lifecycle/dev.mcp.restart.descriptor.js +19 -0
  258. package/dist/cli/mcp/lifecycle/dev.mcp.restart.descriptor.js.map +1 -0
  259. package/dist/cli/mcp/lifecycle/dev.mcp.restart.impl.consumer.d.ts +23 -0
  260. package/dist/cli/mcp/lifecycle/dev.mcp.restart.impl.consumer.d.ts.map +1 -0
  261. package/dist/cli/mcp/lifecycle/dev.mcp.restart.impl.consumer.js +41 -0
  262. package/dist/cli/mcp/lifecycle/dev.mcp.restart.impl.consumer.js.map +1 -0
  263. package/dist/cli/mcp/lifecycle/dev.mcp.serve.descriptor.d.ts +75 -0
  264. package/dist/cli/mcp/lifecycle/dev.mcp.serve.descriptor.d.ts.map +1 -0
  265. package/dist/cli/mcp/lifecycle/dev.mcp.serve.descriptor.js +84 -0
  266. package/dist/cli/mcp/lifecycle/dev.mcp.serve.descriptor.js.map +1 -0
  267. package/dist/cli/mcp/lifecycle/dev.mcp.start.descriptor.d.ts +35 -0
  268. package/dist/cli/mcp/lifecycle/dev.mcp.start.descriptor.d.ts.map +1 -0
  269. package/dist/cli/mcp/lifecycle/dev.mcp.start.descriptor.js +28 -0
  270. package/dist/cli/mcp/lifecycle/dev.mcp.start.descriptor.js.map +1 -0
  271. package/dist/cli/mcp/lifecycle/dev.mcp.start.impl.consumer.d.ts +11 -0
  272. package/dist/cli/mcp/lifecycle/dev.mcp.start.impl.consumer.d.ts.map +1 -0
  273. package/dist/cli/mcp/lifecycle/dev.mcp.start.impl.consumer.js +47 -0
  274. package/dist/cli/mcp/lifecycle/dev.mcp.start.impl.consumer.js.map +1 -0
  275. package/dist/cli/mcp/lifecycle/dev.mcp.stop.descriptor.d.ts +18 -0
  276. package/dist/cli/mcp/lifecycle/dev.mcp.stop.descriptor.d.ts.map +1 -0
  277. package/dist/cli/mcp/lifecycle/dev.mcp.stop.descriptor.js +18 -0
  278. package/dist/cli/mcp/lifecycle/dev.mcp.stop.descriptor.js.map +1 -0
  279. package/dist/cli/mcp/lifecycle/dev.mcp.stop.impl.consumer.d.ts +12 -0
  280. package/dist/cli/mcp/lifecycle/dev.mcp.stop.impl.consumer.d.ts.map +1 -0
  281. package/dist/cli/mcp/lifecycle/dev.mcp.stop.impl.consumer.js +17 -0
  282. package/dist/cli/mcp/lifecycle/dev.mcp.stop.impl.consumer.js.map +1 -0
  283. package/dist/cli/mcp/management/dev.mcp.install.descriptor.d.ts +41 -0
  284. package/dist/cli/mcp/management/dev.mcp.install.descriptor.d.ts.map +1 -0
  285. package/dist/cli/mcp/management/dev.mcp.install.descriptor.js +49 -0
  286. package/dist/cli/mcp/management/dev.mcp.install.descriptor.js.map +1 -0
  287. package/dist/cli/mcp/management/dev.mcp.install.impl.consumer.d.ts +16 -0
  288. package/dist/cli/mcp/management/dev.mcp.install.impl.consumer.d.ts.map +1 -0
  289. package/dist/cli/mcp/management/dev.mcp.install.impl.consumer.js +244 -0
  290. package/dist/cli/mcp/management/dev.mcp.install.impl.consumer.js.map +1 -0
  291. package/dist/cli/mcp/management/dev.mcp.list.descriptor.d.ts +22 -0
  292. package/dist/cli/mcp/management/dev.mcp.list.descriptor.d.ts.map +1 -0
  293. package/dist/cli/mcp/management/dev.mcp.list.descriptor.js +24 -0
  294. package/dist/cli/mcp/management/dev.mcp.list.descriptor.js.map +1 -0
  295. package/dist/cli/mcp/management/dev.mcp.list.impl.consumer.d.ts +29 -0
  296. package/dist/cli/mcp/management/dev.mcp.list.impl.consumer.d.ts.map +1 -0
  297. package/dist/cli/mcp/management/dev.mcp.list.impl.consumer.js +127 -0
  298. package/dist/cli/mcp/management/dev.mcp.list.impl.consumer.js.map +1 -0
  299. package/dist/cli/mcp/management/dev.mcp.status.descriptor.d.ts +48 -0
  300. package/dist/cli/mcp/management/dev.mcp.status.descriptor.d.ts.map +1 -0
  301. package/dist/cli/mcp/management/dev.mcp.status.descriptor.js +56 -0
  302. package/dist/cli/mcp/management/dev.mcp.status.descriptor.js.map +1 -0
  303. package/dist/cli/mcp/management/dev.mcp.status.impl.consumer.d.ts +9 -0
  304. package/dist/cli/mcp/management/dev.mcp.status.impl.consumer.d.ts.map +1 -0
  305. package/dist/cli/mcp/management/dev.mcp.status.impl.consumer.js +253 -0
  306. package/dist/cli/mcp/management/dev.mcp.status.impl.consumer.js.map +1 -0
  307. package/dist/cli/mcp/management/install-helpers.d.ts +26 -0
  308. package/dist/cli/mcp/management/install-helpers.d.ts.map +1 -0
  309. package/dist/cli/mcp/management/install-helpers.js +95 -0
  310. package/dist/cli/mcp/management/install-helpers.js.map +1 -0
  311. package/dist/cli/mcp/management/process-audit.impl.consumer.d.ts +38 -0
  312. package/dist/cli/mcp/management/process-audit.impl.consumer.d.ts.map +1 -0
  313. package/dist/cli/mcp/management/process-audit.impl.consumer.js +145 -0
  314. package/dist/cli/mcp/management/process-audit.impl.consumer.js.map +1 -0
  315. package/dist/cli/mcp/management/rules-debt-summary.impl.consumer.d.ts +21 -0
  316. package/dist/cli/mcp/management/rules-debt-summary.impl.consumer.d.ts.map +1 -0
  317. package/dist/cli/mcp/management/rules-debt-summary.impl.consumer.js +82 -0
  318. package/dist/cli/mcp/management/rules-debt-summary.impl.consumer.js.map +1 -0
  319. package/dist/cli/mcp/management/status-doctor.d.ts +22 -0
  320. package/dist/cli/mcp/management/status-doctor.d.ts.map +1 -0
  321. package/dist/cli/mcp/management/status-doctor.js +153 -0
  322. package/dist/cli/mcp/management/status-doctor.js.map +1 -0
  323. package/dist/cli/mcp/schemas/status-doctor.d.ts +75 -0
  324. package/dist/cli/mcp/schemas/status-doctor.d.ts.map +1 -0
  325. package/dist/cli/mcp/schemas/status-doctor.js +2 -0
  326. package/dist/cli/mcp/schemas/status-doctor.js.map +1 -0
  327. package/dist/cli/mcp/support/host-port.d.ts +31 -0
  328. package/dist/cli/mcp/support/host-port.d.ts.map +1 -0
  329. package/dist/cli/mcp/support/host-port.js +31 -0
  330. package/dist/cli/mcp/support/host-port.js.map +1 -0
  331. package/dist/cli/mcp/support/server-process.impl.consumer.d.ts +24 -0
  332. package/dist/cli/mcp/support/server-process.impl.consumer.d.ts.map +1 -0
  333. package/dist/cli/mcp/support/server-process.impl.consumer.js +86 -0
  334. package/dist/cli/mcp/support/server-process.impl.consumer.js.map +1 -0
  335. package/dist/cli/mcp/support/status-doctor.d.ts +33 -0
  336. package/dist/cli/mcp/support/status-doctor.d.ts.map +1 -0
  337. package/dist/cli/mcp/support/status-doctor.js +104 -0
  338. package/dist/cli/mcp/support/status-doctor.js.map +1 -0
  339. package/dist/cli/print.d.ts +12 -0
  340. package/dist/cli/print.d.ts.map +1 -0
  341. package/dist/cli/print.js +25 -0
  342. package/dist/cli/print.js.map +1 -0
  343. package/dist/cli/surface-mcp/client-connection-identity.consumer.d.ts +19 -0
  344. package/dist/cli/surface-mcp/client-connection-identity.consumer.d.ts.map +1 -0
  345. package/dist/cli/surface-mcp/client-connection-identity.consumer.js +53 -0
  346. package/dist/cli/surface-mcp/client-connection-identity.consumer.js.map +1 -0
  347. package/dist/cli/surface-mcp/dev.mcp.serve.impl.cloud.d.ts +7 -0
  348. package/dist/cli/surface-mcp/dev.mcp.serve.impl.cloud.d.ts.map +1 -0
  349. package/dist/cli/surface-mcp/dev.mcp.serve.impl.cloud.js +345 -0
  350. package/dist/cli/surface-mcp/dev.mcp.serve.impl.cloud.js.map +1 -0
  351. package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.d.ts +12 -0
  352. package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.d.ts.map +1 -0
  353. package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.js +657 -0
  354. package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.js.map +1 -0
  355. package/dist/cli/surface-mcp/local-dev-flag.d.ts +24 -0
  356. package/dist/cli/surface-mcp/local-dev-flag.d.ts.map +1 -0
  357. package/dist/cli/surface-mcp/local-dev-flag.js +37 -0
  358. package/dist/cli/surface-mcp/local-dev-flag.js.map +1 -0
  359. package/dist/cli/surface-mcp/shared-host-startup.d.ts +14 -0
  360. package/dist/cli/surface-mcp/shared-host-startup.d.ts.map +1 -0
  361. package/dist/cli/surface-mcp/shared-host-startup.js +46 -0
  362. package/dist/cli/surface-mcp/shared-host-startup.js.map +1 -0
  363. package/dist/cli/surface-mcp/stdio-relay-transport.d.ts +2 -0
  364. package/dist/cli/surface-mcp/stdio-relay-transport.d.ts.map +1 -0
  365. package/dist/cli/surface-mcp/stdio-relay-transport.js +21 -0
  366. package/dist/cli/surface-mcp/stdio-relay-transport.js.map +1 -0
  367. package/dist/cli/surface-mcp/teardown.d.ts +17 -0
  368. package/dist/cli/surface-mcp/teardown.d.ts.map +1 -0
  369. package/dist/cli/surface-mcp/teardown.js +28 -0
  370. package/dist/cli/surface-mcp/teardown.js.map +1 -0
  371. package/dist/client.d.ts +49 -0
  372. package/dist/client.d.ts.map +1 -0
  373. package/dist/client.js +131 -0
  374. package/dist/client.js.map +1 -0
  375. package/dist/config/load.d.ts +6 -0
  376. package/dist/config/load.d.ts.map +1 -0
  377. package/dist/config/load.js +18 -0
  378. package/dist/config/load.js.map +1 -0
  379. package/dist/config/mcp.config.descriptor.d.ts +108 -0
  380. package/dist/config/mcp.config.descriptor.d.ts.map +1 -0
  381. package/dist/config/mcp.config.descriptor.js +63 -0
  382. package/dist/config/mcp.config.descriptor.js.map +1 -0
  383. package/dist/docs/mcp.docs.descriptor.d.ts +4 -0
  384. package/dist/docs/mcp.docs.descriptor.d.ts.map +1 -0
  385. package/dist/docs/mcp.docs.descriptor.js +44 -0
  386. package/dist/docs/mcp.docs.descriptor.js.map +1 -0
  387. package/dist/docs/prompts.docs.descriptor.d.ts +4 -0
  388. package/dist/docs/prompts.docs.descriptor.d.ts.map +1 -0
  389. package/dist/docs/prompts.docs.descriptor.js +130 -0
  390. package/dist/docs/prompts.docs.descriptor.js.map +1 -0
  391. package/dist/docs/resources.docs.descriptor.d.ts +4 -0
  392. package/dist/docs/resources.docs.descriptor.d.ts.map +1 -0
  393. package/dist/docs/resources.docs.descriptor.js +390 -0
  394. package/dist/docs/resources.docs.descriptor.js.map +1 -0
  395. package/dist/docs/server.docs.descriptor.d.ts +4 -0
  396. package/dist/docs/server.docs.descriptor.d.ts.map +1 -0
  397. package/dist/docs/server.docs.descriptor.js +383 -0
  398. package/dist/docs/server.docs.descriptor.js.map +1 -0
  399. package/dist/docs/tools.docs.descriptor.d.ts +4 -0
  400. package/dist/docs/tools.docs.descriptor.d.ts.map +1 -0
  401. package/dist/docs/tools.docs.descriptor.js +316 -0
  402. package/dist/docs/tools.docs.descriptor.js.map +1 -0
  403. package/dist/harness-identity.descriptors.d.ts +11 -0
  404. package/dist/harness-identity.descriptors.d.ts.map +1 -0
  405. package/dist/harness-identity.descriptors.js +41 -0
  406. package/dist/harness-identity.descriptors.js.map +1 -0
  407. package/dist/index.d.ts +36 -0
  408. package/dist/index.d.ts.map +1 -0
  409. package/dist/index.js +36 -0
  410. package/dist/index.js.map +1 -0
  411. package/dist/kinds/harness-identity.kind.d.ts +3 -0
  412. package/dist/kinds/harness-identity.kind.d.ts.map +1 -0
  413. package/dist/kinds/harness-identity.kind.js +16 -0
  414. package/dist/kinds/harness-identity.kind.js.map +1 -0
  415. package/dist/kinds/sampling.kind.d.ts +15 -0
  416. package/dist/kinds/sampling.kind.d.ts.map +1 -0
  417. package/dist/kinds/sampling.kind.js +24 -0
  418. package/dist/kinds/sampling.kind.js.map +1 -0
  419. package/dist/lifecycle-repeat.d.ts +23 -0
  420. package/dist/lifecycle-repeat.d.ts.map +1 -0
  421. package/dist/lifecycle-repeat.js +21 -0
  422. package/dist/lifecycle-repeat.js.map +1 -0
  423. package/dist/mcp/dev.mcp.descriptor.d.ts +18 -0
  424. package/dist/mcp/dev.mcp.descriptor.d.ts.map +1 -0
  425. package/dist/mcp/dev.mcp.descriptor.js +18 -0
  426. package/dist/mcp/dev.mcp.descriptor.js.map +1 -0
  427. package/dist/mcp/index.d.ts +20 -0
  428. package/dist/mcp/index.d.ts.map +1 -0
  429. package/dist/mcp/index.js +19 -0
  430. package/dist/mcp/index.js.map +1 -0
  431. package/dist/mcp/mcp.plugin.d.ts +9 -0
  432. package/dist/mcp/mcp.plugin.d.ts.map +1 -0
  433. package/dist/mcp/mcp.plugin.js +59 -0
  434. package/dist/mcp/mcp.plugin.js.map +1 -0
  435. package/dist/mcp-client.plugin.d.ts +4 -0
  436. package/dist/mcp-client.plugin.d.ts.map +1 -0
  437. package/dist/mcp-client.plugin.js +13 -0
  438. package/dist/mcp-client.plugin.js.map +1 -0
  439. package/dist/mcp.client.descriptor.d.ts +27 -0
  440. package/dist/mcp.client.descriptor.d.ts.map +1 -0
  441. package/dist/mcp.client.descriptor.js +7 -0
  442. package/dist/mcp.client.descriptor.js.map +1 -0
  443. package/dist/mcp.consumer.plugin.d.ts +4 -0
  444. package/dist/mcp.consumer.plugin.d.ts.map +1 -0
  445. package/dist/mcp.consumer.plugin.js +19 -0
  446. package/dist/mcp.consumer.plugin.js.map +1 -0
  447. package/dist/mcp.runtime.plugin.d.ts +10 -0
  448. package/dist/mcp.runtime.plugin.d.ts.map +1 -0
  449. package/dist/mcp.runtime.plugin.js +40 -0
  450. package/dist/mcp.runtime.plugin.js.map +1 -0
  451. package/dist/root-state.d.ts +3 -0
  452. package/dist/root-state.d.ts.map +1 -0
  453. package/dist/root-state.js +3 -0
  454. package/dist/root-state.js.map +1 -0
  455. package/dist/schemas/api-endpoint.d.ts +12 -0
  456. package/dist/schemas/api-endpoint.d.ts.map +1 -0
  457. package/dist/schemas/api-endpoint.js +11 -0
  458. package/dist/schemas/api-endpoint.js.map +1 -0
  459. package/dist/schemas/audit.d.ts +172 -0
  460. package/dist/schemas/audit.d.ts.map +1 -0
  461. package/dist/schemas/audit.js +82 -0
  462. package/dist/schemas/audit.js.map +1 -0
  463. package/dist/schemas/harness-identity.d.ts +41 -0
  464. package/dist/schemas/harness-identity.d.ts.map +1 -0
  465. package/dist/schemas/harness-identity.js +19 -0
  466. package/dist/schemas/harness-identity.js.map +1 -0
  467. package/dist/schemas/host-adapters.d.ts +14 -0
  468. package/dist/schemas/host-adapters.d.ts.map +1 -0
  469. package/dist/schemas/host-adapters.js +7 -0
  470. package/dist/schemas/host-adapters.js.map +1 -0
  471. package/dist/schemas/projection.d.ts +10 -0
  472. package/dist/schemas/projection.d.ts.map +1 -0
  473. package/dist/schemas/projection.js +9 -0
  474. package/dist/schemas/projection.js.map +1 -0
  475. package/dist/schemas/tool.d.ts +8 -0
  476. package/dist/schemas/tool.d.ts.map +1 -0
  477. package/dist/schemas/tool.js +8 -0
  478. package/dist/schemas/tool.js.map +1 -0
  479. package/dist/surface-mcp/build-provenance.d.ts +67 -0
  480. package/dist/surface-mcp/build-provenance.d.ts.map +1 -0
  481. package/dist/surface-mcp/build-provenance.js +287 -0
  482. package/dist/surface-mcp/build-provenance.js.map +1 -0
  483. package/dist/surface-mcp/crash-reporting.d.ts +28 -0
  484. package/dist/surface-mcp/crash-reporting.d.ts.map +1 -0
  485. package/dist/surface-mcp/crash-reporting.js +41 -0
  486. package/dist/surface-mcp/crash-reporting.js.map +1 -0
  487. package/dist/surface-mcp/executable-freshness-watch.d.ts +89 -0
  488. package/dist/surface-mcp/executable-freshness-watch.d.ts.map +1 -0
  489. package/dist/surface-mcp/executable-freshness-watch.js +225 -0
  490. package/dist/surface-mcp/executable-freshness-watch.js.map +1 -0
  491. package/dist/surface-mcp/host-provenance-banner.d.ts +49 -0
  492. package/dist/surface-mcp/host-provenance-banner.d.ts.map +1 -0
  493. package/dist/surface-mcp/host-provenance-banner.js +135 -0
  494. package/dist/surface-mcp/host-provenance-banner.js.map +1 -0
  495. package/dist/surface-mcp/index.d.ts +51 -0
  496. package/dist/surface-mcp/index.d.ts.map +1 -0
  497. package/dist/surface-mcp/index.js +92 -0
  498. package/dist/surface-mcp/index.js.map +1 -0
  499. package/dist/surface-mcp/local-tools-bootstrap.d.ts +36 -0
  500. package/dist/surface-mcp/local-tools-bootstrap.d.ts.map +1 -0
  501. package/dist/surface-mcp/local-tools-bootstrap.js +43 -0
  502. package/dist/surface-mcp/local-tools-bootstrap.js.map +1 -0
  503. package/dist/surface-mcp/mcp-serve.plugin.d.ts +9 -0
  504. package/dist/surface-mcp/mcp-serve.plugin.d.ts.map +1 -0
  505. package/dist/surface-mcp/mcp-serve.plugin.js +24 -0
  506. package/dist/surface-mcp/mcp-serve.plugin.js.map +1 -0
  507. package/dist/surface-mcp/project-config.d.ts +35 -0
  508. package/dist/surface-mcp/project-config.d.ts.map +1 -0
  509. package/dist/surface-mcp/project-config.js +74 -0
  510. package/dist/surface-mcp/project-config.js.map +1 -0
  511. package/dist/surface-mcp/serve-lifecycle.d.ts +102 -0
  512. package/dist/surface-mcp/serve-lifecycle.d.ts.map +1 -0
  513. package/dist/surface-mcp/serve-lifecycle.js +343 -0
  514. package/dist/surface-mcp/serve-lifecycle.js.map +1 -0
  515. package/dist/surface-mcp/session-bridge.d.ts +18 -0
  516. package/dist/surface-mcp/session-bridge.d.ts.map +1 -0
  517. package/dist/surface-mcp/session-bridge.js +26 -0
  518. package/dist/surface-mcp/session-bridge.js.map +1 -0
  519. package/dist/surface-mcp/subscriptions/session.bound.workspace.descriptor.d.ts +13 -0
  520. package/dist/surface-mcp/subscriptions/session.bound.workspace.descriptor.d.ts.map +1 -0
  521. package/dist/surface-mcp/subscriptions/session.bound.workspace.descriptor.js +13 -0
  522. package/dist/surface-mcp/subscriptions/session.bound.workspace.descriptor.js.map +1 -0
  523. package/dist/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.d.ts +11 -0
  524. package/dist/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.d.ts.map +1 -0
  525. package/dist/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.js +36 -0
  526. package/dist/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.js.map +1 -0
  527. package/dist/surface-mcp/workspace-warning.d.ts +16 -0
  528. package/dist/surface-mcp/workspace-warning.d.ts.map +1 -0
  529. package/dist/surface-mcp/workspace-warning.js +44 -0
  530. package/dist/surface-mcp/workspace-warning.js.map +1 -0
  531. package/dist/svelte/index.d.ts +12 -0
  532. package/dist/svelte/index.d.ts.map +1 -0
  533. package/dist/svelte/index.js +11 -0
  534. package/dist/svelte/mcp-svelte.plugin.d.ts +10 -0
  535. package/dist/svelte/mcp-svelte.plugin.d.ts.map +1 -0
  536. package/dist/svelte/mcp-svelte.plugin.js +24 -0
  537. package/dist/svelte/tool-widgets/VibesContextToolCard.svelte +91 -0
  538. package/dist/svelte/tool-widgets/VibesContextToolCard.svelte.d.ts +9 -0
  539. package/dist/svelte/tool-widgets/VibesContextToolCard.svelte.d.ts.map +1 -0
  540. package/dist/svelte/tool-widgets/index.d.ts +3 -0
  541. package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
  542. package/dist/svelte/tool-widgets/index.js +2 -0
  543. package/dist/svelte/tool-widgets/summary.d.ts +48 -0
  544. package/dist/svelte/tool-widgets/summary.d.ts.map +1 -0
  545. package/dist/svelte/tool-widgets/summary.js +117 -0
  546. package/dist/tools/vibes-context/schemas.d.ts +85 -0
  547. package/dist/tools/vibes-context/schemas.d.ts.map +1 -0
  548. package/dist/tools/vibes-context/schemas.js +76 -0
  549. package/dist/tools/vibes-context/schemas.js.map +1 -0
  550. package/dist/tools/vibes-context/vibes-context.descriptor.d.ts +4 -0
  551. package/dist/tools/vibes-context/vibes-context.descriptor.d.ts.map +1 -0
  552. package/dist/tools/vibes-context/vibes-context.descriptor.js +30 -0
  553. package/dist/tools/vibes-context/vibes-context.descriptor.js.map +1 -0
  554. package/dist/tools/vibes-context/vibes-context.impl.d.ts +34 -0
  555. package/dist/tools/vibes-context/vibes-context.impl.d.ts.map +1 -0
  556. package/dist/tools/vibes-context/vibes-context.impl.js +207 -0
  557. package/dist/tools/vibes-context/vibes-context.impl.js.map +1 -0
  558. package/dist/tui/index.d.ts +4 -0
  559. package/dist/tui/index.d.ts.map +1 -0
  560. package/dist/tui/index.js +4 -0
  561. package/dist/tui/index.js.map +1 -0
  562. package/dist/tui/mcp-health.d.ts +7 -0
  563. package/dist/tui/mcp-health.d.ts.map +1 -0
  564. package/dist/tui/mcp-health.js +16 -0
  565. package/dist/tui/mcp-health.js.map +1 -0
  566. package/dist/tui/mcp-tui.plugin.d.ts +3 -0
  567. package/dist/tui/mcp-tui.plugin.d.ts.map +1 -0
  568. package/dist/tui/mcp-tui.plugin.js +18 -0
  569. package/dist/tui/mcp-tui.plugin.js.map +1 -0
  570. package/dist/tui/mcp.tui-app.descriptor.d.ts +4 -0
  571. package/dist/tui/mcp.tui-app.descriptor.d.ts.map +1 -0
  572. package/dist/tui/mcp.tui-app.descriptor.js +19 -0
  573. package/dist/tui/mcp.tui-app.descriptor.js.map +1 -0
  574. package/dist/tui/mcp.tui-app.impl.consumer.d.ts +4 -0
  575. package/dist/tui/mcp.tui-app.impl.consumer.d.ts.map +1 -0
  576. package/dist/tui/mcp.tui-app.impl.consumer.js +48 -0
  577. package/dist/tui/mcp.tui-app.impl.consumer.js.map +1 -0
  578. package/dist/tui/mcp.tui-state.descriptor.d.ts +8 -0
  579. package/dist/tui/mcp.tui-state.descriptor.d.ts.map +1 -0
  580. package/dist/tui/mcp.tui-state.descriptor.js +37 -0
  581. package/dist/tui/mcp.tui-state.descriptor.js.map +1 -0
  582. package/dist/tui/mcp.tui-state.impl.consumer.d.ts +5 -0
  583. package/dist/tui/mcp.tui-state.impl.consumer.d.ts.map +1 -0
  584. package/dist/tui/mcp.tui-state.impl.consumer.js +97 -0
  585. package/dist/tui/mcp.tui-state.impl.consumer.js.map +1 -0
  586. package/dist/tui/mcp.tui-state.key.d.ts +45 -0
  587. package/dist/tui/mcp.tui-state.key.d.ts.map +1 -0
  588. package/dist/tui/mcp.tui-state.key.js +25 -0
  589. package/dist/tui/mcp.tui-state.key.js.map +1 -0
  590. package/dist/types.core.d.ts +25 -0
  591. package/dist/types.core.d.ts.map +1 -0
  592. package/dist/types.core.js +8 -0
  593. package/dist/types.core.js.map +1 -0
  594. package/dist/types.d.ts +71 -0
  595. package/dist/types.d.ts.map +1 -0
  596. package/dist/types.js +2 -0
  597. package/dist/types.js.map +1 -0
  598. package/dist/types.registry.d.ts +93 -0
  599. package/dist/types.registry.d.ts.map +1 -0
  600. package/dist/types.registry.js +32 -0
  601. package/dist/types.registry.js.map +1 -0
  602. package/package.json +323 -4
@@ -0,0 +1,617 @@
1
+ import { toJsonSchemaCompat } from '@modelcontextprotocol/sdk/server/zod-json-schema-compat.js';
2
+ import { CapabilityError } from '@vibesdotdev/kernel';
3
+ import * as z from 'zod/v4';
4
+ // Single source of truth (ai-schemas literal, re-exported by tools). Never re-litigate the budget here.
5
+ import { MCP_DESCRIPTION_LIMIT } from '@vibesdotdev/tools/schemas/schema';
6
+ import { omitContextBoundInputs } from '@vibesdotdev/tools/agents/native-tool-definitions';
7
+ // Wire DU flatten owned by tools — invoke gate + tools/list share one algorithm.
8
+ import { flattenDiscriminatedUnionToObject as flattenDiscriminatedUnionToObjectFromTools, flattenRootUnion as flattenRootUnionFromTools, getDiscriminator as getDiscriminatorFromTools, getDiscriminatorOptions as getDiscriminatorOptionsFromTools, isDiscriminatedUnion as isDiscriminatedUnionFromTools, isPlainUnion as isPlainUnionFromTools } from '@vibesdotdev/tools/schemas/discriminated-union-wire';
9
+ export const isPlainUnion = isPlainUnionFromTools;
10
+ function isStringValue(value) {
11
+ return typeof value === 'string';
12
+ }
13
+ function inferWrapType(schema) {
14
+ const type = schema.type;
15
+ if (type === 'object')
16
+ return 'object';
17
+ if (type === 'array')
18
+ return 'array';
19
+ if (isStringValue(type))
20
+ return 'primitive';
21
+ return 'none';
22
+ }
23
+ /**
24
+ * JSON Schema string formats whose `pattern` is fully implied by `format`.
25
+ * Zod v4 emits both `format: "uuid"` AND a 96-char regex pattern for UUIDs,
26
+ * and a 600+ char regex for date-time. Stripping the pattern when format is
27
+ * one of these standard names keeps the schema valid (servers still validate
28
+ * via Zod) while shrinking the wire payload significantly.
29
+ */
30
+ const PATTERN_REDUNDANT_FORMATS = new Set([
31
+ 'uuid',
32
+ 'date-time',
33
+ 'date',
34
+ 'time',
35
+ 'duration',
36
+ 'email',
37
+ 'idn-email',
38
+ 'uri',
39
+ 'uri-reference',
40
+ 'iri',
41
+ 'iri-reference',
42
+ 'hostname',
43
+ 'idn-hostname',
44
+ 'ipv4',
45
+ 'ipv6',
46
+ 'regex',
47
+ 'json-pointer',
48
+ 'relative-json-pointer'
49
+ ]);
50
+ /**
51
+ * Serialize a JSON-schema node with recursively sorted keys so structural
52
+ * equality can be tested via string comparison regardless of key order.
53
+ */
54
+ function canonicalJson(node) {
55
+ if (Array.isArray(node))
56
+ return `[${node.map((item) => canonicalJson(item)).join(',')}]`;
57
+ if (!isJsonObject(node))
58
+ return JSON.stringify(node) ?? 'null';
59
+ const body = Object.entries(node)
60
+ .sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)
61
+ .map(([key, value]) => `${JSON.stringify(key)}:${canonicalJson(value)}`)
62
+ .join(',');
63
+ return `{${body}}`;
64
+ }
65
+ const DEDUPED_UNION_KEYS = ['anyOf', 'oneOf'];
66
+ /**
67
+ * How many times a `$ref` into the same cyclic anchor may be expanded along one
68
+ * path before the advertisement terminates in the permissive-but-typed leaf.
69
+ */
70
+ const RECURSIVE_REF_DEPTH_LIMIT = 3;
71
+ /** Is `value` the object form of a schema node (not an array, null, or a scalar)? */
72
+ function isJsonObject(node) {
73
+ return typeof node === 'object' && node !== null && !Array.isArray(node);
74
+ }
75
+ /**
76
+ * Is `value` a non-null object of either form — plain object or array? This is
77
+ * the document check every transform entry makes: the shapes a walker descends,
78
+ * a JSON pointer walks through, and a spread copies.
79
+ */
80
+ function isJsonContainer(value) {
81
+ return typeof value === 'object' && value !== null;
82
+ }
83
+ /** A node whose `$ref` is a string — the only referencing form converters emit. */
84
+ function isLocalRefNode(node) {
85
+ return typeof node.$ref === 'string';
86
+ }
87
+ /** Is `node` the string scalar form of a schema node? */
88
+ function isStringNode(node) {
89
+ return typeof node === 'string';
90
+ }
91
+ /**
92
+ * The leaf that terminates a bounded recursion on the wire. The recursive
93
+ * original allows any JSON value at that position, so the leaf names exactly
94
+ * the six JSON types with unconstrained nesting — permissive, but typed.
95
+ */
96
+ function recursionBoundLeaf() {
97
+ return {
98
+ anyOf: [
99
+ { type: 'string' },
100
+ { type: 'number' },
101
+ { type: 'boolean' },
102
+ { type: 'null' },
103
+ { type: 'array' },
104
+ { type: 'object' }
105
+ ],
106
+ description: 'Any JSON value (deeper recursion of the same shape is accepted; the wire schema is depth-bounded).'
107
+ };
108
+ }
109
+ /**
110
+ * `array[part]` for a node array without a record cast: canonical numeric
111
+ * strings read the element, `length` reads the length (a number node), every
112
+ * other key is absent.
113
+ */
114
+ function readArrayMember(array, part) {
115
+ const index = Number(part);
116
+ if (Number.isInteger(index) && index >= 0 && `${index}` === part && index < array.length) {
117
+ return array[index];
118
+ }
119
+ if (part === 'length')
120
+ return array.length;
121
+ return undefined;
122
+ }
123
+ /**
124
+ * Read one JSON-pointer part from a container with `container[part]`
125
+ * semantics: objects read the named property, arrays read their members.
126
+ */
127
+ function readPointerPart(container, part) {
128
+ if (isJsonObject(container))
129
+ return container[part];
130
+ return readArrayMember(container, part);
131
+ }
132
+ /** Resolve a local JSON pointer (`#/$defs/Foo`, `#/definitions/Foo`, `#`) inside `root`. */
133
+ function resolveLocalRefPointer(root, ref) {
134
+ if (!ref.startsWith('#/'))
135
+ return undefined;
136
+ const parts = ref
137
+ .slice(2)
138
+ .split('/')
139
+ .map((part) => part.replace(/~1/g, '/').replace(/~0/g, '~'));
140
+ let node = root;
141
+ const walked = [];
142
+ for (const part of parts) {
143
+ const next = isJsonContainer(node)
144
+ ? readPointerPart(node, part)
145
+ : undefined;
146
+ if (next === undefined)
147
+ return undefined;
148
+ walked.push(part);
149
+ node = next;
150
+ }
151
+ return { path: '#/' + walked.join('/'), node };
152
+ }
153
+ /**
154
+ * Index every local `$ref` in the document. A cycle must traverse at least one
155
+ * `$ref` (plain object containment is a tree), so the ref graph between anchors
156
+ * fully describes recursion: graph edges from an anchor are the refs found
157
+ * anywhere in that anchor's literal subtree.
158
+ */
159
+ function indexRefGraph(root) {
160
+ const anchors = new Map();
161
+ const sites = [];
162
+ const walk = (node, path) => {
163
+ if (Array.isArray(node)) {
164
+ node.forEach((item, i) => walk(item, `${path}/${i}`));
165
+ return;
166
+ }
167
+ if (!isJsonObject(node))
168
+ return;
169
+ if (isLocalRefNode(node)) {
170
+ const target = resolveLocalRefPointer(root, node.$ref);
171
+ if (target) {
172
+ sites.push({ at: path, target: target.path });
173
+ if (!anchors.has(target.path))
174
+ anchors.set(target.path, target.node);
175
+ }
176
+ }
177
+ for (const [key, value] of Object.entries(node))
178
+ walk(value, `${path}/${key}`);
179
+ };
180
+ walk(root, '#');
181
+ const edges = new Map();
182
+ for (const anchor of anchors.keys()) {
183
+ const prefix = `${anchor}/`;
184
+ edges.set(anchor, sites
185
+ .filter((site) => site.at === anchor || site.at.startsWith(prefix))
186
+ .map((site) => site.target));
187
+ }
188
+ return { anchors, edges };
189
+ }
190
+ /** Anchor paths whose node can reach itself through `$ref` edges (self or mutual recursion). */
191
+ function computeCyclicRefTargets(root) {
192
+ const { anchors, edges } = indexRefGraph(root);
193
+ const cyclic = new Set();
194
+ for (const anchor of anchors.keys()) {
195
+ // DFS over anchor edges: can `anchor` be reached again from itself?
196
+ const frontier = [...(edges.get(anchor) ?? [])];
197
+ const seen = new Set(frontier);
198
+ while (frontier.length > 0) {
199
+ const current = frontier.pop();
200
+ if (current === anchor) {
201
+ cyclic.add(anchor);
202
+ break;
203
+ }
204
+ for (const next of edges.get(current) ?? []) {
205
+ if (!seen.has(next)) {
206
+ seen.add(next);
207
+ frontier.push(next);
208
+ }
209
+ }
210
+ }
211
+ }
212
+ return cyclic;
213
+ }
214
+ /**
215
+ * Every cyclic anchor advertised by this schema, as `path -> …` descriptions.
216
+ * Empty for an acyclic schema. Shared by tests and `validateMcpSchema`.
217
+ */
218
+ export function findJsonSchemaRefCycles(schema) {
219
+ if (!isJsonContainer(schema))
220
+ return [];
221
+ const cyclic = computeCyclicRefTargets(schema);
222
+ return [...cyclic].sort().map((path) => `${path} -> ${path}`);
223
+ }
224
+ /**
225
+ * Bound recursion in a JSON Schema document for advertisement.
226
+ *
227
+ * `$ref`s into cyclic anchors are expanded inline up to
228
+ * {@link RECURSIVE_REF_DEPTH_LIMIT} expansions per anchor per path, then
229
+ * terminate in the permissive-but-typed JSON leaf. Because NO reference to a
230
+ * cyclic anchor survives as a string, the output is acyclic for every
231
+ * recursion shape (self-referential and mutual). Non-recursive `$ref`s are
232
+ * left exactly as authored — nothing else is loosened.
233
+ */
234
+ function boundNode(root, node, stack, cyclic) {
235
+ if (Array.isArray(node)) {
236
+ return node.map((item) => boundNode(root, item, stack, cyclic));
237
+ }
238
+ if (!isJsonObject(node))
239
+ return node;
240
+ if (isLocalRefNode(node)) {
241
+ const target = resolveLocalRefPointer(root, node.$ref);
242
+ if (target && cyclic.has(target.path)) {
243
+ // Siblings are the ref node's own keywords minus `$ref`, exactly as
244
+ // spread-then-delete produced them.
245
+ const siblings = {};
246
+ for (const [key, value] of Object.entries(node)) {
247
+ if (key !== '$ref')
248
+ siblings[key] = value;
249
+ }
250
+ const depth = stack.filter((path) => path === target.path).length;
251
+ if (depth >= RECURSIVE_REF_DEPTH_LIMIT) {
252
+ return { ...recursionBoundLeaf(), ...siblings };
253
+ }
254
+ const expanded = boundNode(root, target.node, [...stack, target.path], cyclic);
255
+ if (isJsonObject(expanded))
256
+ return { ...expanded, ...siblings };
257
+ if (Array.isArray(expanded))
258
+ return { ...expanded, ...siblings };
259
+ return siblings;
260
+ }
261
+ return node;
262
+ }
263
+ const out = {};
264
+ for (const [key, value] of Object.entries(node)) {
265
+ out[key] = boundNode(root, value, stack, cyclic);
266
+ }
267
+ return out;
268
+ }
269
+ /**
270
+ * Bound recursive `$ref`s in a schema document. Fast path returns the input
271
+ * unchanged when the document has no cyclic anchors (the overwhelming case).
272
+ */
273
+ function boundRecursiveRefs(schema) {
274
+ if (!isJsonContainer(schema))
275
+ return schema;
276
+ const cyclic = computeCyclicRefTargets(schema);
277
+ if (cyclic.size === 0)
278
+ return schema;
279
+ const bounded = boundNode(schema, schema, [], cyclic);
280
+ return pruneBoundedAnchorEntries(bounded, cyclic);
281
+ }
282
+ /** Container keys under which definition entries live. */
283
+ const DEFINITION_CONTAINER_KEYS = new Set(['definitions', '$defs']);
284
+ /**
285
+ * Drop definition entries that WERE cyclic anchors and are now unreferenced:
286
+ * bounding inlines every `$ref` to a cyclic anchor, so its definition entry is
287
+ * unreachable dead weight. Only entries inside `definitions`/`$defs` are
288
+ * eligible, and only when no remaining `$ref` points at them — a referenced
289
+ * entry, or one that was never cyclic, is left exactly as is.
290
+ */
291
+ function pruneBoundedAnchorEntries(node, cyclic) {
292
+ const refs = new Set();
293
+ const collectRefs = (value) => {
294
+ if (Array.isArray(value)) {
295
+ value.forEach(collectRefs);
296
+ return;
297
+ }
298
+ if (!isJsonObject(value))
299
+ return;
300
+ if (isLocalRefNode(value))
301
+ refs.add(value.$ref);
302
+ for (const child of Object.values(value))
303
+ collectRefs(child);
304
+ };
305
+ collectRefs(node);
306
+ const prune = (value, path) => {
307
+ if (Array.isArray(value)) {
308
+ return value.map((item, i) => prune(item, `${path}/${i}`));
309
+ }
310
+ if (!isJsonObject(value))
311
+ return value;
312
+ const out = {};
313
+ for (const [key, child] of Object.entries(value)) {
314
+ const childPath = `${path}/${key}`;
315
+ if (DEFINITION_CONTAINER_KEYS.has(key) && isJsonObject(child)) {
316
+ const kept = {};
317
+ for (const [defKey, defValue] of Object.entries(child)) {
318
+ const defPath = `${childPath}/${defKey}`;
319
+ if (cyclic.has(defPath) && !refs.has(defPath))
320
+ continue;
321
+ kept[defKey] = defValue;
322
+ }
323
+ if (Object.keys(kept).length === 0)
324
+ continue;
325
+ out[key] = prune(kept, childPath);
326
+ continue;
327
+ }
328
+ out[key] = prune(child, childPath);
329
+ }
330
+ return out;
331
+ };
332
+ return prune(node, '#');
333
+ }
334
+ /**
335
+ * Drop structurally identical branches from an anyOf/oneOf array, preserving
336
+ * first-seen order. Flattening a discriminated union into one object merges
337
+ * same-named fields from every action variant into a union
338
+ * (`mergeVariantFieldSchemas`), so a field declared identically across N
339
+ * variants used to ship N identical branches on the wire (e.g. ai-generate's
340
+ * `capabilities` ×6, knowledge's `knowledgeBaseId` ×11).
341
+ */
342
+ function dedupeUnionBranches(out) {
343
+ for (const key of DEDUPED_UNION_KEYS) {
344
+ const branches = out[key];
345
+ if (!isNodeArray(branches) || branches.length < 2)
346
+ continue;
347
+ const seen = new Set();
348
+ const deduped = [];
349
+ for (const branch of branches) {
350
+ const canonical = canonicalJson(branch);
351
+ if (seen.has(canonical))
352
+ continue;
353
+ seen.add(canonical);
354
+ deduped.push(branch);
355
+ }
356
+ if (deduped.length === branches.length)
357
+ continue;
358
+ const survivor = deduped[0];
359
+ if (deduped.length === 1 && survivor !== undefined && isSchemaObject(survivor) && !isArrayValue(survivor)) {
360
+ // All branches were identical — inline the survivor into this node.
361
+ // Annotations already on the parent (description, default, …) win.
362
+ delete out[key];
363
+ for (const [k, v] of Object.entries(survivor)) {
364
+ if (!(k in out))
365
+ out[k] = v;
366
+ }
367
+ }
368
+ else {
369
+ out[key] = deduped;
370
+ }
371
+ }
372
+ }
373
+ /**
374
+ * Walk a JSON Schema tree and (a) strip `pattern` where `format` carries the
375
+ * same information, (b) dedupe structurally identical anyOf/oneOf branches,
376
+ * collapsing all-identical unions into their single member, (c) bound
377
+ * recursive `$ref`s so the advertised schema is acyclic — model APIs reject
378
+ * recursive schemas wholesale (`400 Recursive JSON schemas are not currently
379
+ * supported`, observed on the `agent` tool's `JsonValueSchema` metadata), so one
380
+ * recursive field in one tool can take down every session that loads the
381
+ * catalog. Pure transformation; no Zod runtime dependency. Server-side input
382
+ * validation never uses this projection — it parses the registered Zod object.
383
+ */
384
+ export function tightenJsonSchema(node) {
385
+ const bounded = boundRecursiveRefs(node);
386
+ // Non-container leaves (scalars, undefined) pass both stages through
387
+ // unchanged; only containers reach the recursive tightener.
388
+ return isJsonContainer(bounded) ? tightenJsonSchemaNode(bounded) : bounded;
389
+ }
390
+ function tightenJsonSchemaNode(node) {
391
+ if (Array.isArray(node)) {
392
+ return node.map((item) => tightenJsonSchemaNode(item));
393
+ }
394
+ if (!isJsonObject(node))
395
+ return node;
396
+ const out = {};
397
+ const dropPattern = node.type === 'string' &&
398
+ isStringNode(node.format) &&
399
+ PATTERN_REDUNDANT_FORMATS.has(node.format) &&
400
+ 'pattern' in node;
401
+ for (const [k, v] of Object.entries(node)) {
402
+ if (dropPattern && k === 'pattern')
403
+ continue;
404
+ out[k] = tightenJsonSchemaNode(v);
405
+ }
406
+ const additionalProperties = out.additionalProperties;
407
+ if (isJsonObject(additionalProperties) && Object.keys(additionalProperties).length === 0) {
408
+ // Empty `additionalProperties: {}` is a Record bag. Hosts stringify nested
409
+ // values against it; `true` is the same JSON Schema meaning without the map trap.
410
+ out.additionalProperties = true;
411
+ }
412
+ dedupeUnionBranches(out);
413
+ return out;
414
+ }
415
+ function isSchemaObject(value) {
416
+ return typeof value === 'object' && value !== null;
417
+ }
418
+ function isArrayValue(value) {
419
+ return Array.isArray(value);
420
+ }
421
+ function isNodeArray(value) {
422
+ return Array.isArray(value);
423
+ }
424
+ function requireSchemaObject(value) {
425
+ if (!isSchemaObject(value) || isArrayValue(value))
426
+ throw new CapabilityError('MCP schema conversion must produce an object', 'INVALID_INPUT');
427
+ return value;
428
+ }
429
+ export function zodToMcpSchema(schema, options = {}) {
430
+ const builtIn = schema.toJSONSchema?.();
431
+ const produced = builtIn !== undefined && isSchemaObject(builtIn) && !isArrayValue(builtIn)
432
+ ? builtIn
433
+ : toJsonSchemaCompat(schema, { strictUnions: true, pipeStrategy: 'input' });
434
+ if (!isSchemaObject(produced) || isArrayValue(produced)) {
435
+ throw new CapabilityError('MCP schema conversion must produce an object', 'INVALID_INPUT');
436
+ }
437
+ const tightened = requireSchemaObject(tightenJsonSchema(produced));
438
+ const withTitle = options.name ? { ...tightened, title: options.name } : tightened;
439
+ const withoutSchemaField = { ...withTitle };
440
+ if (options.removeSchemaField)
441
+ delete withoutSchemaField.schema;
442
+ const projected = omitContextBoundInputs(withoutSchemaField);
443
+ return { schema: projected, wrapType: inferWrapType(projected) };
444
+ }
445
+ /**
446
+ * Wrap a transport's `send` so any outgoing tools/list response (or
447
+ * tools/listChanged update) has its tool schemas tightened before
448
+ * serialization. The MCP SDK does its own Zod→JSON Schema conversion
449
+ * inside its tools/list handler (via `toJsonSchemaCompat`), so the
450
+ * `tightenJsonSchema` step in `zodToMcpSchema` is bypassed for those
451
+ * responses. Wrapping the transport is the lowest-friction interception
452
+ * point that doesn't require monkey-patching the SDK's private state.
453
+ */
454
+ export function wrapTransportWithSchemaTightening(transport, options) {
455
+ const original = transport.send.bind(transport);
456
+ transport.send = (...args) => {
457
+ const msg = args[0];
458
+ const result = isSchemaObject(msg) && !isArrayValue(msg) && isSchemaObject(msg.result) && !isArrayValue(msg.result) ? msg.result : undefined;
459
+ const tools = result?.tools;
460
+ if (Array.isArray(tools)) {
461
+ for (const tool of tools) {
462
+ if (!isSchemaObject(tool) || isArrayValue(tool))
463
+ throw new CapabilityError('MCP tools/list entries must be objects', 'INVALID_INPUT');
464
+ if (isSchemaObject(tool.inputSchema) && !isArrayValue(tool.inputSchema)) {
465
+ tool.inputSchema = requireSchemaObject(tightenJsonSchema(tool.inputSchema));
466
+ }
467
+ if (options?.omitOutputSchema) {
468
+ delete tool.outputSchema;
469
+ }
470
+ else if (isSchemaObject(tool.outputSchema) && !isArrayValue(tool.outputSchema)) {
471
+ tool.outputSchema = requireSchemaObject(tightenJsonSchema(tool.outputSchema));
472
+ }
473
+ }
474
+ }
475
+ return original(...args);
476
+ };
477
+ }
478
+ /**
479
+ * Keys that make a JSON Schema well-formed WITHOUT a sibling `type`. A root
480
+ * combinator or reference is a complete schema on its own (JSON Schema
481
+ * 2020-12 §10-11); requiring `type` beside one is simply wrong.
482
+ */
483
+ const TYPELESS_SCHEMA_FORMS = ['oneOf', 'anyOf', 'allOf', '$ref', 'enum', 'const'];
484
+ /**
485
+ * Structural sanity check for an outgoing MCP `inputSchema`.
486
+ *
487
+ * It USED to require `type` unconditionally, which is a false positive on every
488
+ * root-union tool we ship. Verified 2026-07-25: `awareness` — the heaviest tool on
489
+ * the wire — has a root `oneOf` and no `type`, so this reported
490
+ * "Schema missing 'type'" for a schema that is valid and serving correctly today.
491
+ * A validator that flags correct schemas is worse than none: the first person to
492
+ * wire it up would have chased a phantom.
493
+ *
494
+ * Nothing on the serve path calls this yet (it is public API from
495
+ * `@vibesdotdev/mcp`, its one home). Left exported and
496
+ * correct rather than deleted — constitution §NO DELETE WITHOUT CONSUMER PROOF, and
497
+ * a correct unused check can be wired later; an incorrect one cannot.
498
+ */
499
+ export function validateMcpSchema(schema) {
500
+ const issues = [];
501
+ if (!isSchemaObject(schema) || isArrayValue(schema))
502
+ return ['Schema is not an object'];
503
+ const hasType = isStringValue(schema.type) || isArrayValue(schema.type);
504
+ const hasTypelessForm = TYPELESS_SCHEMA_FORMS.some((key) => key in schema);
505
+ if (!hasType && !hasTypelessForm) {
506
+ issues.push("Schema missing 'type' (string or string[]) and no oneOf/anyOf/allOf/$ref/enum/const");
507
+ }
508
+ if ('properties' in schema && schema.properties && !isSchemaObject(schema.properties)) {
509
+ issues.push("Schema has invalid 'properties' (must be object)");
510
+ }
511
+ const cycles = findJsonSchemaRefCycles(schema);
512
+ if (cycles.length > 0) {
513
+ issues.push(`Schema is recursive (${cycles.join('; ')}) — model APIs reject recursive schemas`);
514
+ }
515
+ return issues;
516
+ }
517
+ export function validateMcpDescription(description) {
518
+ const trimmed = description.trim();
519
+ if (trimmed.length === 0)
520
+ return ['Description is empty'];
521
+ if (/[\r\n]/.test(trimmed))
522
+ return ['Description must be single-line'];
523
+ if (trimmed.length > MCP_DESCRIPTION_LIMIT) {
524
+ return [`Description exceeds ${MCP_DESCRIPTION_LIMIT} chars (${trimmed.length})`];
525
+ }
526
+ return [];
527
+ }
528
+ function collapseWhitespace(description) {
529
+ return description.replace(/\s+/g, ' ').trim();
530
+ }
531
+ function trimAtWordBoundary(description, limit) {
532
+ if (description.length <= limit)
533
+ return description;
534
+ // Reserve 1 char for a trailing period when we need to append one.
535
+ const bodyLimit = Math.max(1, limit - 1);
536
+ const slice = description.slice(0, bodyLimit).trim();
537
+ const lastSpace = slice.lastIndexOf(' ');
538
+ const candidate = lastSpace > Math.floor(bodyLimit * 0.6) ? slice.slice(0, lastSpace) : slice;
539
+ const cleaned = candidate.replace(/[,:;/-]+$/g, '').trim();
540
+ const withPeriod = cleaned.endsWith('.') || cleaned.endsWith('!') || cleaned.endsWith('?')
541
+ ? cleaned
542
+ : `${cleaned}.`;
543
+ // Hard cap: never return more than `limit` (period append must not overflow).
544
+ return withPeriod.length <= limit ? withPeriod : withPeriod.slice(0, limit).trimEnd();
545
+ }
546
+ export function generateMcpDescription(description) {
547
+ const normalized = collapseWhitespace(description);
548
+ if (!normalized)
549
+ return '';
550
+ const candidates = [
551
+ normalized,
552
+ normalized.split(/\bActions?\s*:/i)[0]?.trim(),
553
+ normalized.split(/\bExamples?\s*:/i)[0]?.trim(),
554
+ normalized.split(/\bUse this\b/i)[0]?.trim(),
555
+ normalized.split(/\bThe query parameter\b/i)[0]?.trim(),
556
+ normalized.split(/\bincluding\b/i)[0]?.trim(),
557
+ normalized.replace(/\([^)]*\)/g, '').replace(/\s+/g, ' ').trim(),
558
+ normalized.split(/[;:]/)[0]?.trim(),
559
+ normalized.match(/^(.+?[.!?])(?:\s|$)/)?.[1]?.trim()
560
+ ].filter((candidate) => !!candidate);
561
+ for (const candidate of candidates) {
562
+ if (candidate.length <= MCP_DESCRIPTION_LIMIT)
563
+ return candidate;
564
+ }
565
+ return trimAtWordBoundary(normalized, MCP_DESCRIPTION_LIMIT);
566
+ }
567
+ export function resolveMcpDescription(source) {
568
+ // Author-provided mcpDescription is the contract surface: prefer it intact
569
+ // (whitespace-collapsed) when it fits the wire limit so Ex: examples are not
570
+ // discarded by generateMcpDescription's candidate-split heuristics.
571
+ if (source.mcpDescription !== undefined && source.mcpDescription.trim().length > 0) {
572
+ const normalized = collapseWhitespace(source.mcpDescription);
573
+ if (normalized.length > 0 && !/[\r\n]/.test(normalized)) {
574
+ if (normalized.length <= MCP_DESCRIPTION_LIMIT)
575
+ return normalized;
576
+ return generateMcpDescription(normalized);
577
+ }
578
+ }
579
+ const raw = source.description ?? source.name ?? source.id ?? '';
580
+ return generateMcpDescription(raw);
581
+ }
582
+ export const flattenRootUnion = flattenRootUnionFromTools;
583
+ export const isDiscriminatedUnion = isDiscriminatedUnionFromTools;
584
+ export const getDiscriminator = getDiscriminatorFromTools;
585
+ export const getDiscriminatorOptions = getDiscriminatorOptionsFromTools;
586
+ export function wrapDiscriminatedUnion(schema, defaultAction, toolId) {
587
+ if (!isDiscriminatedUnion(schema))
588
+ return schema;
589
+ const discriminator = getDiscriminator(schema);
590
+ const options = getDiscriminatorOptions(schema);
591
+ return z.preprocess((input) => {
592
+ if (!isSchemaObject(input) || isArrayValue(input))
593
+ return input;
594
+ if (!(discriminator in input)) {
595
+ if (defaultAction && options.includes(defaultAction)) {
596
+ return { [discriminator]: defaultAction, ...input };
597
+ }
598
+ throw new Error(`Missing required '${discriminator}' parameter for ${toolId}. ` +
599
+ `Available options: ${options.join(', ')}`);
600
+ }
601
+ return input;
602
+ }, schema);
603
+ }
604
+ /**
605
+ * Flatten a z.discriminatedUnion into a z.object that the MCP SDK can handle.
606
+ * Implementation lives in @vibesdotdev/tools (shared with invoke validation).
607
+ */
608
+ export const flattenDiscriminatedUnionToObject = flattenDiscriminatedUnionToObjectFromTools;
609
+ export function createMcpTool(config) {
610
+ const { schema } = zodToMcpSchema(config.schema, {
611
+ name: config.name,
612
+ removeSchemaField: true,
613
+ addAliasHints: true
614
+ });
615
+ return { name: config.name, description: config.description, inputSchema: schema };
616
+ }
617
+ //# sourceMappingURL=zod-mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-mcp.js","sourceRoot":"","sources":["../../src/adapters/zod-mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `vibes dev audit tools` — the universal-tools czar cycle capability.
3
+ *
4
+ * Checks declared tool descriptors through the MCP exposure funnel for every
5
+ * client preset: exposure counts, unintended preset exclusions, and description
6
+ * length limits. Served-catalog evidence requires --live; read-safe canary and
7
+ * host-attestation checks require --doctor. Composed into the existing `dev.audit`
8
+ * group beside `dev.audit.ledger` — NOT a new top-level group and NOT a
9
+ * `tools`-group command (both were killed in docs/proposals/universal-tools-czar/
10
+ * as second-way / slop). `--json` for the scheduled daily czar routine.
11
+ */
12
+ import type { CLICommandAssetDescriptor } from '@vibesdotdev/cli/schemas/types';
13
+ declare const descriptor: CLICommandAssetDescriptor;
14
+ export default descriptor;
15
+ //# sourceMappingURL=dev.audit.tools.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.audit.tools.descriptor.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/audit/dev.audit.tools.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,QAAA,MAAM,UAAU,EAAE,yBA8CjB,CAAC;AAEF,eAAe,UAAU,CAAC"}