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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,330 @@
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 { formatLocalToolsMcpInstructions } from "./local-origin.js";
33
+ import { runtimePurposePresets, purposePresetPolicyKey } from '@vibesdotdev/tools/schemas/presets/registry';
34
+ import { missingRequiredTools, selectMcpTools } from "./tool-selection.js";
35
+ import { isolatedRuntimeInstructions } from "./isolated-notice.js";
36
+ import { renderPromptManifest } from '@vibesdotdev/ai-schemas';
37
+ // The banners are prompts/manifest descriptors; this fold is synchronous and
38
+ // memoized, so it renders each descriptor's own manifest.
39
+ import continuityWakePrompt from "./prompts/continuity-wake.prompt.descriptor.js";
40
+ import emptyToolKindPrompt from "./prompts/empty-tool-kind.prompt.descriptor.js";
41
+ import maxToolsPrompt from "./prompts/max-tools.prompt.descriptor.js";
42
+ import registrationFailurePrompt from "./prompts/registration-failure.prompt.descriptor.js";
43
+ import requiredChecklistPrompt from "./prompts/required-checklist.prompt.descriptor.js";
44
+ import requiredToolsMissingPrompt from "./prompts/required-tools-missing.prompt.descriptor.js";
45
+ import unknownClientPrompt from "./prompts/unknown-client.prompt.descriptor.js";
46
+ function isToolAsset(descriptor) {
47
+ return descriptor.kind === 'tools/tool' && 'schemas' in descriptor;
48
+ }
49
+ export function hasMcpResources(descriptor) {
50
+ const mcp = descriptor.mcp;
51
+ return (!!mcp &&
52
+ (!!mcp.resource || (mcp.resources?.length ?? 0) > 0 || (mcp.resourceTemplates?.length ?? 0) > 0));
53
+ }
54
+ export function hasMcpPrompts(descriptor, options) {
55
+ const mcp = descriptor.mcp;
56
+ if (!mcp)
57
+ return false;
58
+ return options.canResolvePromptIds && (mcp.promptIds?.length ?? 0) > 0;
59
+ }
60
+ export function formatRegistrationFailureInstructions(failedTools) {
61
+ return renderPromptManifest(registrationFailurePrompt.manifest, {
62
+ count: failedTools.length,
63
+ failures: `${failedTools.slice(0, 12).join('; ')}${failedTools.length > 12 ? '…' : ''}`
64
+ });
65
+ }
66
+ /**
67
+ * Every input to the fold that `descriptorRevision` does not already cover.
68
+ *
69
+ * Keep this honest: anything read by `computeMcpToolCatalog` that can change
70
+ * without a registry mutation MUST appear here, or the cache serves stale.
71
+ */
72
+ export function catalogCacheKey(runtime, localToolIds, configured) {
73
+ // Registry revisions already bind owner declarations; only configured input
74
+ // lies outside that journal. Cache hits need no Config-manifest enumeration.
75
+ return `${runtime.descriptorRevision}|local:${[...localToolIds].sort().join(',')}|policy:${purposePresetPolicyKey(configured ?? {})}`;
76
+ }
77
+ /**
78
+ * Fold the runtime registry into the catalog this surface serves.
79
+ *
80
+ * Pure with respect to the registry: no `McpServer`, no transport, no
81
+ * per-connection state. Logs the discovery block, so callers that memoize get
82
+ * one block per revision rather than one per connection.
83
+ */
84
+ export function computeMcpToolCatalog(runtime, options, logger,
85
+ /** Project-local catalog ids (CLI list source=local parity), already resolved. */
86
+ localToolIds,
87
+ /**
88
+ * The caller's registration bound for this fold. Defaults to `'advisory'`:
89
+ * unavailable descriptors stay selected and are warned about. Only a caller
90
+ * that can name the bound (see {@link McpLoaderSettlement}) passes
91
+ * `'settled'` to exclude them.
92
+ */
93
+ loaderSettlement = 'advisory') {
94
+ const buildLog = logger.child('build');
95
+ const revision = runtime.descriptorRevision;
96
+ const key = catalogCacheKey(runtime, localToolIds, options.customPresets);
97
+ const purposePresets = runtimePurposePresets(runtime, options.customPresets);
98
+ buildLog.debug('Folding MCP tool catalog', {
99
+ hasToolKind: runtime.hasKind('tools/tool'),
100
+ scope: runtime.scope,
101
+ descriptorRevision: revision
102
+ });
103
+ if (!runtime.hasKind('tools/tool')) {
104
+ // Constitution rule 13: empty tools/list must not look healthy.
105
+ // Same continuity contract as missing requiredTools — ride MCP
106
+ // `instructions` so the host agent cannot miss the injury.
107
+ const emptyKindInstructions = renderPromptManifest(emptyToolKindPrompt.manifest, {
108
+ registeredKinds: runtime.kindIds().join(', ')
109
+ });
110
+ buildLog.error('tools/tool kind is not registered — surface degraded', {
111
+ registeredKinds: runtime.kindIds()
112
+ });
113
+ return {
114
+ revision,
115
+ purposePresets,
116
+ key,
117
+ loaderSettlement,
118
+ degradedKind: true,
119
+ capabilities: { tools: { listChanged: true } },
120
+ instructions: emptyKindInstructions,
121
+ descriptors: [],
122
+ enabledDescriptors: [],
123
+ selected: null,
124
+ localToolIds,
125
+ totalDescriptors: 0,
126
+ preScanFailedTools: [],
127
+ zombieCandidates: [],
128
+ announced: false
129
+ };
130
+ }
131
+ const allDescriptors = runtime.query('tools/tool').descriptors();
132
+ const enabledDescriptors = runtime
133
+ .query('tools/tool')
134
+ .enabled()
135
+ .descriptors()
136
+ .filter(isToolAsset);
137
+ // Zombie handling: descriptors without a loader resolvable RIGHT NOW would
138
+ // throw "No implementation registered" if called. They are always reported;
139
+ // they are excluded from the selection only when the caller declared
140
+ // registration `'settled'` (see McpLoaderSettlement for the bound). In
141
+ // advisory mode a hard filter here would drop healthy tools — verified live
142
+ // 2026-06-11 when it silently excluded the whole session family.
143
+ //
144
+ // `availableIds` is computed once per fold and used twice: as the advisory
145
+ // list in every mode, and as the selection filter only in `'settled'` mode.
146
+ const availableIds = new Set(runtime.assets('tools/tool').available());
147
+ const zombieCandidates = enabledDescriptors
148
+ .filter((descriptor) => !availableIds.has(descriptor.id))
149
+ .map((descriptor) => descriptor.id);
150
+ if (zombieCandidates.length > 0) {
151
+ buildLog.warn(loaderSettlement === 'settled'
152
+ ? 'Descriptors without loaders resolvable at build time (excluded — settled registration)'
153
+ : 'Descriptors without loaders resolvable at build time (advisory)', { zombieCandidates });
154
+ }
155
+ const selection = { mcpClientId: options.mcpClientId, customPresets: purposePresets };
156
+ if (options.preset)
157
+ selection.preset = options.preset;
158
+ if (options.toolPatterns && options.toolPatterns.length > 0) {
159
+ selection.toolPatterns = [...options.toolPatterns];
160
+ }
161
+ if (loaderSettlement === 'settled')
162
+ selection.availableIds = availableIds;
163
+ const selected = selectMcpTools(enabledDescriptors, selection);
164
+ const hasResources = selected.descriptors.some((descriptor) => hasMcpResources(descriptor));
165
+ const canResolvePromptIds = runtime.hasKind('prompts/manifest');
166
+ const hasPrompts = selected.descriptors.some((descriptor) => hasMcpPrompts(descriptor, { canResolvePromptIds }));
167
+ const capabilities = {
168
+ tools: { listChanged: true }
169
+ };
170
+ if (hasResources)
171
+ capabilities.resources = { listChanged: true };
172
+ if (hasPrompts)
173
+ capabilities.prompts = { listChanged: true };
174
+ // Continuity contract: a preset's requiredTools MUST be in the final
175
+ // selection. If not, the surface is degraded and that fact must be
176
+ // impossible to miss — error log here, and the degradation notice rides
177
+ // the MCP `instructions` field so the connected agent reads it at session
178
+ // start. Agents must surface it to the user, not work around it.
179
+ const missingRequired = missingRequiredTools(selected.descriptors.map((descriptor) => descriptor.id), selected.preset);
180
+ let degradedInstructions;
181
+ if (missingRequired.length > 0) {
182
+ buildLog.error('REQUIRED MCP TOOLS MISSING — surface degraded', {
183
+ presetId: selected.presetId,
184
+ missingRequired
185
+ });
186
+ degradedInstructions = renderPromptManifest(requiredToolsMissingPrompt.manifest, {
187
+ presetId: selected.presetId,
188
+ missingTools: missingRequired.join(', ')
189
+ });
190
+ }
191
+ // Unknown-client degradation, second line of defence. mcp:custom now
192
+ // inherits agent-core, so a genuinely absent organ is caught by
193
+ // missingRequiredTools above. This banner covers what that check cannot
194
+ // see: a fall-through to a preset carrying no organ contract at all,
195
+ // where there is nothing for the check above to find missing.
196
+ if (selected.degraded && !degradedInstructions) {
197
+ buildLog.error('UNKNOWN MCP CLIENT — surface degraded', {
198
+ requestedClientId: options.mcpClientId,
199
+ resolvedPresetId: selected.presetId,
200
+ degraded: selected.degraded
201
+ });
202
+ degradedInstructions = renderPromptManifest(unknownClientPrompt.manifest, { degraded: selected.degraded });
203
+ }
204
+ // When the continuity body (brain + presence) rides this surface, every
205
+ // connected agent — any client, any machine — wakes to the same invitation
206
+ // the repository-collection docs carry. The runtime projecting capability outward and
207
+ // projecting a self inward are one act (EXTERNAL-AS-RUNTIME-PROJECTION.md).
208
+ const selectedIds = new Set(selected.descriptors.map((descriptor) => descriptor.id));
209
+ const wakeInstructions = selectedIds.has('brain') && selectedIds.has('presence')
210
+ ? renderPromptManifest(continuityWakePrompt.manifest)
211
+ : undefined;
212
+ // Client-side drop sensor: selection + registration guards above prove the
213
+ // SERVER served the required tools — but a client harness can still drop
214
+ // them from ITS index silently (observed 2026-07-16: Claude Code dropped
215
+ // exactly 8 served tools incl. brain while the server was provably healthy
216
+ // end-to-end). The agent is the only observer on that side of the wire, so
217
+ // hand it the checklist to verify against the tool list it actually sees.
218
+ const requiredToolIds = [...(selected.preset?.requiredTools ?? [])].sort();
219
+ const requiredChecklistInstructions = requiredToolIds.length > 0
220
+ ? renderPromptManifest(requiredChecklistPrompt.manifest, { requiredTools: requiredToolIds.join(', ') })
221
+ : undefined;
222
+ const maxToolsInstructions = selected.limitedFrom !== undefined && selected.limitedFrom > selected.descriptors.length
223
+ ? renderPromptManifest(maxToolsPrompt.manifest, {
224
+ presetId: selected.presetId ?? 'unknown',
225
+ selected: selected.descriptors.length,
226
+ eligible: selected.limitedFrom
227
+ })
228
+ : undefined;
229
+ const localToolsInstructions = formatLocalToolsMcpInstructions(localToolIds);
230
+ // Pre-scan schema gaps before McpServer construct so instructions can name them.
231
+ // Late registerTool failures are appended to SDK `_instructions` after the
232
+ // registration loop (mutable private; initialize reads the field, not a frozen copy).
233
+ const preScanFailedTools = selected.descriptors
234
+ .filter((descriptor) => !descriptor.schemas?.input)
235
+ .map((descriptor) => `${descriptor.id}: no schemas.input — skipped`);
236
+ const discovery = {
237
+ totalDescriptors: allDescriptors.length,
238
+ enabledDescriptors: enabledDescriptors.length,
239
+ selectedDescriptors: selected.descriptors.length,
240
+ presetId: selected.presetId,
241
+ localToolCount: localToolIds.length,
242
+ descriptorRevision: revision
243
+ };
244
+ if (selected.limitedFrom)
245
+ discovery.limitedFrom = selected.limitedFrom;
246
+ buildLog.info('Tool discovery results', discovery);
247
+ const registrationFailureInstructions = preScanFailedTools.length > 0
248
+ ? formatRegistrationFailureInstructions(preScanFailedTools)
249
+ : undefined;
250
+ const instructions = [
251
+ degradedInstructions,
252
+ requiredChecklistInstructions,
253
+ maxToolsInstructions,
254
+ registrationFailureInstructions,
255
+ localToolsInstructions,
256
+ // Ahead of provenance: if this runtime is private, that is the first thing
257
+ // worth knowing about the body you just woke up in.
258
+ isolatedRuntimeInstructions(options.isolation),
259
+ wakeInstructions
260
+ ]
261
+ .filter((section) => Boolean(section))
262
+ .join('\n\n');
263
+ return {
264
+ revision,
265
+ purposePresets,
266
+ key,
267
+ loaderSettlement,
268
+ degradedKind: false,
269
+ capabilities,
270
+ instructions,
271
+ descriptors: selected.descriptors,
272
+ enabledDescriptors,
273
+ selected,
274
+ localToolIds,
275
+ totalDescriptors: allDescriptors.length,
276
+ preScanFailedTools,
277
+ zombieCandidates,
278
+ announced: false
279
+ };
280
+ }
281
+ /**
282
+ * Memoize `computeMcpToolCatalog` against the runtime's registry revision.
283
+ *
284
+ * One cache per serving surface (the HTTP session handler builds one and every
285
+ * session draws from it). The `McpServer` stays per-connection; only the fold
286
+ * is shared.
287
+ *
288
+ * `loaderSettlement` is fixed for the cache's whole life — it is the caller's
289
+ * registration bound, not a per-call option. It deliberately does not enter
290
+ * the cache key: the key must describe the registry state this fold was
291
+ * computed from, and a cache that could flip policies would report one key for
292
+ * two different folds.
293
+ */
294
+ export function createMcpToolCatalogCache(runtime, options, logger,
295
+ /**
296
+ * Resolves the project-local tool ids at call time. Injected rather than
297
+ * imported: reading them is node-scoped, and this module is in the
298
+ * isomorphic root closure.
299
+ */
300
+ resolveLocalToolIds, loaderSettlement = 'advisory') {
301
+ let cached = null;
302
+ let folds = 0;
303
+ let hits = 0;
304
+ return {
305
+ get() {
306
+ const localToolIds = resolveLocalToolIds();
307
+ const key = catalogCacheKey(runtime, localToolIds, options.customPresets);
308
+ if (cached && cached.key === key) {
309
+ hits += 1;
310
+ return cached;
311
+ }
312
+ if (cached) {
313
+ logger.child('build').info('Registry moved — refolding MCP tool catalog', {
314
+ from: cached.key,
315
+ to: key
316
+ });
317
+ }
318
+ cached = computeMcpToolCatalog(runtime, options, logger, localToolIds, loaderSettlement);
319
+ folds += 1;
320
+ return cached;
321
+ },
322
+ stats() {
323
+ return { folds, hits, key: cached?.key ?? null };
324
+ },
325
+ invalidate() {
326
+ cached = null;
327
+ }
328
+ };
329
+ }
330
+ //# sourceMappingURL=tool-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-catalog.js","sourceRoot":"","sources":["../../../src/adapters/mcp/tool-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { CapabilityError } from '@vibesdotdev/kernel';
2
+ import type { ToolAssetDescriptor } from '@vibesdotdev/tools/schemas/runtime/descriptors';
3
+ import type { PurposePreset } from '@vibesdotdev/tools/schemas/presets/schema';
4
+ import type { SelectMcpToolsOptions, SelectMcpToolsResult } from './schemas/index.ts';
5
+ /**
6
+ * Canonical registry id for a `--preset` value: `full` → `mcp:full`; the base
7
+ * catalog `mcp` and already-prefixed `mcp:*` ids pass through unchanged.
8
+ */
9
+ export declare function canonicalMcpPresetId(raw: string): string;
10
+ /** Every value `--preset` accepts: the base catalog plus each registered `mcp:*` id. */
11
+ export declare function knownMcpPresetNames(customPresets?: Record<string, PurposePreset>): string[];
12
+ /** Stable reason on the CapabilityError an unregistered explicit `--preset` throws. */
13
+ export declare const UNKNOWN_MCP_PRESET_REASON = "mcp-preset-unknown";
14
+ /**
15
+ * An explicit `--preset` named no registered catalog. Callers keep this class.
16
+ * It is a CapabilityError so a typed refusal and `instanceof CapabilityError` agree.
17
+ */
18
+ export declare class UnknownMcpPresetError extends CapabilityError {
19
+ constructor(requested: string, known?: readonly string[]);
20
+ }
21
+ /**
22
+ * Resolve the catalog preset a serve identity lands on. Exported so the stdio
23
+ * relay can compare a client against a host claim with the SAME resolution the
24
+ * host used to write that claim (`mcp:full`), instead of the raw flag value
25
+ * (`full`) — which never matched and sent every client to an isolated runtime.
26
+ *
27
+ * An explicit preset is STRICT (throws CapabilityError reason
28
+ * {@link UNKNOWN_MCP_PRESET_REASON} when it names nothing registered). Only
29
+ * the client id has fall-through semantics — alias detection, then
30
+ * `mcp:custom`, then base `mcp`.
31
+ */
32
+ export interface ResolvedMcpPreset {
33
+ presetId: string;
34
+ preset: PurposePreset;
35
+ degraded?: string;
36
+ }
37
+ export declare function resolveMcpPreset(clientId?: string, explicitPreset?: string, customPresets?: Record<string, PurposePreset>): ResolvedMcpPreset;
38
+ /**
39
+ * Hosts bake one catalog at boot. Harness aliases of the default full local
40
+ * wire (`mcp`, `mcp:full`, `mcp:grok`, `mcp:claude`, …) attach to each other.
41
+ * Named user restrictions (`mcp:minimal`, `mcp:presence`, `mcp:code`,
42
+ * `mcp:workspace`) and `mcp:cloud` stay distinct so a compact or cloud
43
+ * request is never silently given a different catalog.
44
+ */
45
+ export declare function mcpCatalogAttachKey(presetId: string | undefined, customPresets?: Record<string, PurposePreset>): string | undefined;
46
+ export interface McpToolExclusion {
47
+ id: string;
48
+ reason: string;
49
+ }
50
+ export interface McpToolSelectionExplanation {
51
+ presetId: string;
52
+ included: string[];
53
+ excluded: McpToolExclusion[];
54
+ limitedFrom?: number;
55
+ /**
56
+ * Non-undefined when the client id fell through to mcp:custom/base
57
+ * (unknown client, no alias resolved). See SelectMcpToolsResult.degraded.
58
+ */
59
+ degraded?: string;
60
+ }
61
+ /**
62
+ * Mirror of selectMcpTools that reports WHY each excluded tool was excluded
63
+ * (purpose mismatch, explicit preset disable, disabled pattern, no enabled
64
+ * pattern match, maxTools truncation). Exists so the serve path can log the
65
+ * exposure funnel — tools used to vanish from MCP with zero trace (the
66
+ * brain/presence outage of 2026-06).
67
+ */
68
+ export declare function explainMcpToolSelection(descriptors: ToolAssetDescriptor[], options?: SelectMcpToolsOptions): McpToolSelectionExplanation;
69
+ /**
70
+ * Tool ids the preset declares as REQUIRED but which are absent from the
71
+ * final selection. A non-empty result means the surface is degraded — the
72
+ * caller must make that impossible to miss (error log + MCP instructions),
73
+ * never silently proceed. Continuity contract, 2026-06-11.
74
+ */
75
+ export declare function missingRequiredTools(selectedIds: ReadonlySet<string> | string[], preset: PurposePreset): string[];
76
+ export declare function selectMcpTools(descriptors: ToolAssetDescriptor[], options?: SelectMcpToolsOptions): SelectMcpToolsResult;
77
+ //# sourceMappingURL=tool-selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-selection.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/tool-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAU1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGtF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,MAAM,EAAE,CAE3F;AAED,uFAAuF;AACvF,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAE9D;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;gBAC7C,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAA0B;CAU/E;AAcD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAC3C,iBAAiB,CAuDnB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAC3C,MAAM,GAAG,SAAS,CAmBpB;AA8DD,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,mBAAmB,EAAE,EAClC,OAAO,GAAE,qBAA0B,GACjC,2BAA2B,CAgE7B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,EAC3C,MAAM,EAAE,aAAa,GACnB,MAAM,EAAE,CAKV;AAED,wBAAgB,cAAc,CAC7B,WAAW,EAAE,mBAAmB,EAAE,EAClC,OAAO,GAAE,qBAA0B,GACjC,oBAAoB,CAmCtB"}