@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,168 @@
1
+ /**
2
+ * Tool-exposure audit — the czar cycle's reusable core.
3
+ *
4
+ * ONE implementation of "is every declared tool reachable and wire-honest",
5
+ * consumed by both the `vibes dev audit tools` CLI command and (future) a
6
+ * `tools/tool` runtime capability. It does NOT re-implement the exposure funnel:
7
+ * it drives the real `explainMcpToolSelection` (the same mirror the serve path
8
+ * logs) across every MCP client preset, over the real runtime descriptor
9
+ * catalog.
10
+ *
11
+ * SCOPE — this is the POLICY view (world-independent): it audits what each preset
12
+ * *intends* to expose from the declared catalog, plus wire-shape properties of the
13
+ * descriptors. It deliberately does NOT assert loader-resolvability, because that
14
+ * depends on which plugins the *running* world composed — the ambient CLI world
15
+ * is not the MCP serve world, so a bare `available()` here under-reports and would
16
+ * cry "zombie" for tools the serve path loads fine. Serve-world reachability +
17
+ * served-vs-authored schema drift is the job of the live "Wire Selfie" handshake
18
+ * (the earned next in docs/proposals/universal-tools-czar/), which spawns a real
19
+ * serve per preset and diffs tools/list. Keeping v1 honest beats a plausible-wrong
20
+ * verdict. Distinct from the static `scripts/check-tool-coverage.ts` gate (source
21
+ * text scan for descriptor↔loader drift): this drives the LIVE registry policy.
22
+ */
23
+ import { listMcpClientPresetIds, runtimePurposePresets } from '@vibesdotdev/tools/schemas/presets/registry';
24
+ import { explainMcpToolSelection } from "./tool-selection.js";
25
+ // The audit's limit MUST be the schema's limit. This was a local `const … = 160`
26
+ // under a comment asserting it tracked the schema — it did not, and silently
27
+ // drifted the moment the budget moved (2026-07-24, 160 → 1024). Import it.
28
+ import { MCP_DESCRIPTION_LIMIT } from '@vibesdotdev/tools/schemas/schema';
29
+ function isAuditedTool(descriptor) {
30
+ return descriptor.kind === 'tools/tool';
31
+ }
32
+ /**
33
+ * Run the exposure POLICY audit against the live runtime catalog. Pure of
34
+ * process/stdout so the CLI, a scheduled guard, a test, and a future tools/tool
35
+ * can all consume it.
36
+ */
37
+ export function runToolExposureAudit(runtime, configured) {
38
+ const customPresets = runtimePurposePresets(runtime, configured);
39
+ const all = runtime.assets('tools/tool').descriptors().filter(isAuditedTool);
40
+ const findings = [];
41
+ // Base `mcp` preset (clientId undefined) plus every MCP client preset.
42
+ const targets = [
43
+ { presetId: 'mcp', clientId: undefined },
44
+ ...listMcpClientPresetIds(customPresets).map((presetId) => ({
45
+ presetId,
46
+ clientId: presetId.startsWith('mcp:') ? presetId.slice('mcp:'.length) : presetId
47
+ }))
48
+ ];
49
+ const presets = [];
50
+ // A tool HAS A HOME if any audited preset exposes it — catch-all presets
51
+ // included. This used to count only curated (non-`*`) presets, on the theory
52
+ // that a wildcard (then only mcp:cloud) absorbs everything and would hide an
53
+ // accidental orphan. Under the full-catalog doctrine (2026-08-28) every
54
+ // harness preset inherits `mcp`'s `*` by design, so that rule reported
55
+ // 63/129 tools "reachable by zero MCP clients" while every one of them was on
56
+ // claude's wire (2026-09-01). A tool served to claude is not orphaned.
57
+ // Loader-reality on cloud hardware is the Wire Selfie's job, not this view's.
58
+ const exposedByAnyPreset = new Set();
59
+ // Per tool: the set of exclusion reasons observed across presets. Used to tell
60
+ // an ACCIDENTAL orphan (falls through enabledPatterns everywhere) apart from an
61
+ // INTENTIONAL disable (run-command is denylisted on purpose for safety).
62
+ const exclusionReasons = new Map();
63
+ for (const target of targets) {
64
+ // No availableIds: POLICY view over the declared catalog (see header).
65
+ const explanation = explainMcpToolSelection(all, { mcpClientId: target.clientId, customPresets });
66
+ for (const id of explanation.included)
67
+ exposedByAnyPreset.add(id);
68
+ for (const excluded of explanation.excluded) {
69
+ const reasonKind = excluded.reason.split(':')[0] ?? excluded.reason;
70
+ const set = exclusionReasons.get(excluded.id) ?? new Set();
71
+ set.add(reasonKind);
72
+ exclusionReasons.set(excluded.id, set);
73
+ }
74
+ // Aggregate context cost of this preset's tools/list. Uses the same
75
+ // resolution order the wire does: mcpDescription when present, else the
76
+ // long description (see resolveMcpDescription).
77
+ const byId = new Map(all.map((d) => [d.id, d]));
78
+ const descriptionBudgetChars = explanation.included.reduce((sum, id) => {
79
+ const d = byId.get(id);
80
+ return sum + (d?.mcpDescription ?? d?.description ?? '').length;
81
+ }, 0);
82
+ const exposure = {
83
+ presetId: target.presetId,
84
+ clientId: target.clientId,
85
+ exposedCount: explanation.included.length,
86
+ exposed: explanation.included,
87
+ descriptionBudgetChars
88
+ };
89
+ if (explanation.limitedFrom !== undefined)
90
+ exposure.limitedFrom = explanation.limitedFrom;
91
+ presets.push(exposure);
92
+ // NO description-budget finding here by ruling (2026-07-25,
93
+ // claude-context-steward-3a3e4795 → claude-tools-czar-b96b3723). There was a
94
+ // `preset-description-budget-exceeded` finding at 24,000 chars. It measured
95
+ // ~4% of the catalog and passed at 1,621/24,000 while `mcp:claude` actually
96
+ // served 224,730 bytes (~62K tokens) — a second, friendlier number sitting
97
+ // beside the real one, which is how a green signal starts lying. ONE catalog
98
+ // budget, taken where the catalog is serialized: WIRE_CATALOG_BUDGET_BYTES in
99
+ // ./tool-audit-live.ts. `descriptionBudgetChars` survives above as a labelled
100
+ // sub-metric; do not restore a pass/fail on it.
101
+ }
102
+ for (const descriptor of all) {
103
+ const purpose = descriptor.purpose ?? [];
104
+ if (!purpose.includes('mcp'))
105
+ continue;
106
+ const reasons = exclusionReasons.get(descriptor.id) ?? new Set();
107
+ // ACCIDENTAL orphan: declares purpose:mcp, exposed by no preset, and was
108
+ // never explicitly disabled — it simply falls through every preset's
109
+ // enabledPatterns. This is the diagnostics.run / search / dashboard-stats
110
+ // case: declared-but-never-projected (czar §R4). An intentionally
111
+ // denylisted tool (run-command) is NOT flagged.
112
+ if (isAccidentalOrphan(exposedByAnyPreset.has(descriptor.id), reasons)) {
113
+ findings.push({
114
+ severity: 'medium',
115
+ code: 'orphan-purpose',
116
+ toolId: descriptor.id,
117
+ detail: 'declares purpose:mcp but is enabled by no preset (falls through every ' +
118
+ 'enabledPatterns) — reachable by zero MCP clients. Add a preset home or drop the mcp purpose.'
119
+ });
120
+ }
121
+ }
122
+ // Wire-safety: mcpDescription over the client-safe limit (world-independent).
123
+ for (const descriptor of all) {
124
+ const mcpDescription = descriptor.mcpDescription;
125
+ if (mcpDescription !== undefined && mcpDescription.length > MCP_DESCRIPTION_LIMIT) {
126
+ findings.push({
127
+ severity: 'low',
128
+ code: 'mcp-description-too-long',
129
+ toolId: descriptor.id,
130
+ detail: `mcpDescription is ${mcpDescription.length} chars (limit ${MCP_DESCRIPTION_LIMIT})`
131
+ });
132
+ }
133
+ }
134
+ findings.sort((a, b) => severityRank(a.severity) - severityRank(b.severity) ||
135
+ a.code.localeCompare(b.code) ||
136
+ a.toolId.localeCompare(b.toolId));
137
+ return {
138
+ view: 'policy',
139
+ // The strict verdict — see ToolAuditReport.ok. The policy view never emits
140
+ // 'high', so "no high findings" was a constant `true` that contradicted the
141
+ // --strict exit code. A verdict must be a function of the findings it sits
142
+ // beside.
143
+ ok: findings.length === 0,
144
+ generatedForPresets: targets.map((t) => t.presetId),
145
+ totalDescriptors: all.length,
146
+ presets,
147
+ findings
148
+ };
149
+ }
150
+ /**
151
+ * The orphan rule, extracted so it stays falsifiable: the registry offers no
152
+ * injection point for a synthetic preset set, and under a `*` base catalog no
153
+ * real descriptor can currently trip it end-to-end.
154
+ *
155
+ * A tool is an ACCIDENTAL orphan when no audited preset exposes it AND no
156
+ * preset excluded it on purpose (`disabled-pattern` / `preset-explicit-disable`).
157
+ * Exposure through a catch-all preset counts — a tool served to claude is not
158
+ * orphaned.
159
+ */
160
+ export function isAccidentalOrphan(exposedByAnyPreset, exclusionReasons) {
161
+ if (exposedByAnyPreset)
162
+ return false;
163
+ return !(exclusionReasons.has('disabled-pattern') || exclusionReasons.has('preset-explicit-disable'));
164
+ }
165
+ function severityRank(severity) {
166
+ return severity === 'high' ? 0 : severity === 'medium' ? 1 : 2;
167
+ }
168
+ //# sourceMappingURL=tool-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-audit.js","sourceRoot":"","sources":["../../../src/adapters/mcp/tool-audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * The MCP tool catalog: what this runtime serves, computed once per registry
3
+ * revision instead of once per connection.
4
+ *
5
+ * WHY THIS IS A SEPARATE MODULE. `buildServer` used to do two unrelated things
6
+ * in one pass: (1) ask the runtime registry what tools exist, filter them to
7
+ * enabled, select by preset, and compose the `instructions` banner; and (2)
8
+ * construct an `McpServer` and register that selection on it. Only (2) is
9
+ * per-connection — an `McpServer` owns transport state and cannot be shared.
10
+ * (1) is a pure fold over the registry and is byte-identical for identical
11
+ * inputs, yet the HTTP session handler called it on every `initialize`. On this
12
+ * machine that ran 7,291 times in 53 hours of uptime, logging a full discovery
13
+ * block each time. `host-registry.ts` already documents the intended contract —
14
+ * "a host resolves its tool catalog ONCE at boot … and bakes it into a single
15
+ * McpServer" — and this module is what makes the HTTP path keep it.
16
+ *
17
+ * WHY A REVISION KEY AND NOT A TTL. A memoized catalog that serves a stale
18
+ * toolset is worse than no memo: an agent quietly holding the wrong tools is
19
+ * exactly the injury class this file's warnings exist to prevent, and a TTL
20
+ * guarantees a window where that is true. `runtime.descriptorRevision` is a
21
+ * monotonic counter the runtime bumps on every registration, retraction, kind
22
+ * change, plugin install and plugin retraction — so with hot reload landed
23
+ * (`retractPlugin`/`swapPlugin`), registry mutation is *observable* and the
24
+ * cache can be exact. If the revision has not moved, no descriptor, kind,
25
+ * plugin or enablement flag has moved either, and the fold cannot differ.
26
+ *
27
+ * The project-local tool ids (the tools discovery registered from
28
+ * `.vibes/tools`, or the caller's explicit set) are part of the key too —
29
+ * supplied by the caller, because reading them is a node-scoped import and
30
+ * this fold stays isomorphic.
31
+ */
32
+ import type { VibesRuntime } from '@vibesdotdev/kernel/api/runtime';
33
+ import type { LoggerImplementation } from '@vibesdotdev/logging/kinds/logger';
34
+ import type { ToolAssetDescriptor } from '@vibesdotdev/tools/schemas/runtime/descriptors';
35
+ import type { McpAdapterOptions } from '@vibesdotdev/mcp';
36
+ import type { PurposePreset } from '@vibesdotdev/tools/schemas/presets/schema';
37
+ import type { SelectMcpToolsResult } from './schemas/index.ts';
38
+ export type McpServerCapabilities = {
39
+ tools: {
40
+ listChanged: true;
41
+ };
42
+ resources?: {
43
+ listChanged: true;
44
+ };
45
+ prompts?: {
46
+ listChanged: true;
47
+ };
48
+ };
49
+ /**
50
+ * How a fold treats descriptors whose loader is not resolvable at fold time.
51
+ *
52
+ * `runtime.assets('tools/tool').available()` is time- and scope-sensitive:
53
+ * session-* loaders can arrive through the session bridge after the first
54
+ * build, and scope qualifiers can move. So excluding unavailable descriptors
55
+ * is a decision only the CALLER can make honestly — the fold cannot tell a
56
+ * zombie from a tool whose loader is still settling.
57
+ *
58
+ * - `'advisory'` (the default): keep every enabled descriptor and warn about
59
+ * `zombieCandidates`. Every caller that cannot bound registration keeps
60
+ * this, including the serve-startup exposure selection that also decides
61
+ * whether the session bridge warms at all.
62
+ * - `'settled'`: the caller asserts that registration is bound for the scope
63
+ * this fold is served under — every loader that can still arrive for these
64
+ * descriptors arrives through the runtime (`registerLoader`,
65
+ * `registerVariantLoader`, `registerDynamicAsset`, `registerPlugin`), which
66
+ * bumps `descriptorRevision`. Because every connection is built from a
67
+ * revision-keyed cache (`createMcpToolCatalogCache`), an excluded descriptor
68
+ * is re-evaluated on the next fold: a loader that registers later is
69
+ * ADMITTED, never silently dropped for the session's lifetime. 2026-06-11:
70
+ * a filter with no such bound silently excluded the whole session family.
71
+ *
72
+ * The settlement decision is a constructor argument of a cache, never a key
73
+ * input: one cache serves one policy for its whole life, and mixing policies
74
+ * through one cache would make the fold unreproducible from its key.
75
+ */
76
+ export type McpLoaderSettlement = 'advisory' | 'settled';
77
+ /**
78
+ * Everything `buildServer` needs that does not depend on the `McpServer`
79
+ * instance. Frozen at the revision it was computed for.
80
+ */
81
+ export type McpToolCatalog = {
82
+ /** `runtime.descriptorRevision` this catalog was folded from. */
83
+ readonly revision: number;
84
+ readonly purposePresets: Record<string, PurposePreset>;
85
+ /** Cache key: revision plus every input the revision does not cover. */
86
+ readonly key: string;
87
+ /** The caller's registration bound this fold was computed under. */
88
+ readonly loaderSettlement: McpLoaderSettlement;
89
+ /**
90
+ * True when `tools/tool` is not registered at all. The server is still
91
+ * built — an empty tools/list must not look healthy — but nothing is
92
+ * selected and `instructions` carries the degradation banner.
93
+ */
94
+ readonly degradedKind: boolean;
95
+ readonly capabilities: McpServerCapabilities;
96
+ readonly instructions: string;
97
+ /** Selected descriptors, in registration order. */
98
+ readonly descriptors: readonly ToolAssetDescriptor[];
99
+ /** Enabled (pre-selection) descriptors — the client auto-detect upgrade re-selects from these. */
100
+ readonly enabledDescriptors: readonly ToolAssetDescriptor[];
101
+ readonly selected: SelectMcpToolsResult | null;
102
+ readonly localToolIds: readonly string[];
103
+ readonly totalDescriptors: number;
104
+ /** Selected descriptors that carry no input schema and cannot be advertised. */
105
+ readonly preScanFailedTools: readonly string[];
106
+ /** Selected ids that would throw "No implementation registered" if called right now (advisory). */
107
+ readonly zombieCandidates: readonly string[];
108
+ /**
109
+ * Whether the per-connection registration summary has already been logged at
110
+ * INFO for this fold. Mutable on purpose: the FIRST connection served by a
111
+ * catalog announces what got registered, every later connection repeats the
112
+ * identical work and logs it at DEBUG. Without this the registration block
113
+ * still floods the log once per connection even though the catalog behind it
114
+ * never moved — which is the symptom the memo exists to remove.
115
+ */
116
+ announced: boolean;
117
+ };
118
+ export declare function hasMcpResources(descriptor: ToolAssetDescriptor): boolean;
119
+ export declare function hasMcpPrompts(descriptor: ToolAssetDescriptor, options: {
120
+ canResolvePromptIds: boolean;
121
+ }): boolean;
122
+ export declare function formatRegistrationFailureInstructions(failedTools: readonly string[]): string;
123
+ /**
124
+ * Every input to the fold that `descriptorRevision` does not already cover.
125
+ *
126
+ * Keep this honest: anything read by `computeMcpToolCatalog` that can change
127
+ * without a registry mutation MUST appear here, or the cache serves stale.
128
+ */
129
+ export declare function catalogCacheKey(runtime: VibesRuntime, localToolIds: readonly string[], configured?: Record<string, PurposePreset>): string;
130
+ /**
131
+ * Fold the runtime registry into the catalog this surface serves.
132
+ *
133
+ * Pure with respect to the registry: no `McpServer`, no transport, no
134
+ * per-connection state. Logs the discovery block, so callers that memoize get
135
+ * one block per revision rather than one per connection.
136
+ */
137
+ export declare function computeMcpToolCatalog(runtime: VibesRuntime, options: McpAdapterOptions, logger: LoggerImplementation,
138
+ /** Project-local catalog ids (CLI list source=local parity), already resolved. */
139
+ localToolIds: readonly string[],
140
+ /**
141
+ * The caller's registration bound for this fold. Defaults to `'advisory'`:
142
+ * unavailable descriptors stay selected and are warned about. Only a caller
143
+ * that can name the bound (see {@link McpLoaderSettlement}) passes
144
+ * `'settled'` to exclude them.
145
+ */
146
+ loaderSettlement?: McpLoaderSettlement): McpToolCatalog;
147
+ export type McpToolCatalogCache = {
148
+ /** The catalog for the registry as it stands right now, folding only if it moved. */
149
+ get(): McpToolCatalog;
150
+ /** Folds performed, and connections served from an existing fold. */
151
+ stats(): {
152
+ folds: number;
153
+ hits: number;
154
+ key: string | null;
155
+ };
156
+ /** Drop the memo. Correctness never depends on this — the key does. */
157
+ invalidate(): void;
158
+ };
159
+ /**
160
+ * Memoize `computeMcpToolCatalog` against the runtime's registry revision.
161
+ *
162
+ * One cache per serving surface (the HTTP session handler builds one and every
163
+ * session draws from it). The `McpServer` stays per-connection; only the fold
164
+ * is shared.
165
+ *
166
+ * `loaderSettlement` is fixed for the cache's whole life — it is the caller's
167
+ * registration bound, not a per-call option. It deliberately does not enter
168
+ * the cache key: the key must describe the registry state this fold was
169
+ * computed from, and a cache that could flip policies would report one key for
170
+ * two different folds.
171
+ */
172
+ export declare function createMcpToolCatalogCache(runtime: VibesRuntime, options: McpAdapterOptions, logger: LoggerImplementation,
173
+ /**
174
+ * Resolves the project-local tool ids at call time. Injected rather than
175
+ * imported: reading them is node-scoped, and this module is in the
176
+ * isomorphic root closure.
177
+ */
178
+ resolveLocalToolIds: () => readonly string[], loaderSettlement?: McpLoaderSettlement): McpToolCatalogCache;
179
+ //# sourceMappingURL=tool-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/tool-catalog.ts"],"names":[],"mappings":"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"}