@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 @@
1
+ {"version":3,"file":"from-api-endpoint.js","sourceRoot":"","sources":["../../../src/adapters/mcp/from-api-endpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,eAAe,EAAkB,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAA4B,MAAM,qBAAqB,CAAC;AAC3I,OAAO,EAAE,gBAAgB,EAAmC,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACtH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAA4C,MAAM,6BAA6B,CAAC;AAM7I,SAAS,iBAAiB,CAAC,KAAc;IACxC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;AAC/D,CAAC;AAED,qDAAqD;AACrD,SAAS,uBAAuB,CAAC,MAAc;IAC9C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,eAAe,CAAC;IAC7D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,eAAe,CAAC;IAC3C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,mBAAmB,CAAC;IAC/C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,UAAU,CAAC;IACtC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAC1C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACvD,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,aAAa,CAAC;IACxC,OAAO,UAAU,CAAC;AACnB,CAAC;AA+CD,SAAS,UAAU,CAAC,KAAiB;IACpC,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,0BAA0B,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB;IACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,4BAA4B,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAChH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CACtB,KAA+C;IAE/C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CACtB,IAAqE;IAErE,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,IAAa;IAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,+BAA+B,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAqD;IAC9E,MAAM,QAAQ,GAA+B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,OAAO;YAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,KAAiC;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;IACvE,CAAC;IACD,MAAM,MAAM,GAAc;QACzB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;KACtE,CAAC;IACF,IAAI,KAAK,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACrD,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS;QAAE,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC;IACvG,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC9B,MAAwC;IAExC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAElF,OAAO;QACN,UAAU,EAAE;YACX,IAAI;YACJ,WAAW;YACX,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;SACjE;QACD,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAA0B,EAAE;YACxD,IAAI,SAAiC,CAAC;YACtC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7C,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;oBACtB,MAAM,IAAI,YAAY,CAAC,+BAA+B,EAAE,IAAI,EAAE;wBAC7D,IAAI,EAAE,eAAe;wBACrB,MAAM,EAAE,sBAAsB;wBAC9B,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;qBACpD,CAAC,CAAC;gBACJ,CAAC;gBACD,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;YAChC,CAAC;YACD,uBAAuB;YACvB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,YAAY,CAAC,SAAS,IAAI,2BAA2B,CAAC,CAAC;YAClE,CAAC;YAED,gCAAgC;YAChC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAClB,MAAM,IAAI,YAAY,CACrB,6EAA6E,EAC7E,IAAI,CACJ,CAAC;YACH,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YAExB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzC,IAAI,aAAa,GAAc,IAAI,CAAC;gBACpC,IAAI,SAAS,EAAE,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;wBAClB,MAAM,IAAI,YAAY,CAAC,iCAAiC,EAAE,IAAI,EAAE;4BAC/D,IAAI,EAAE,eAAe;4BACrB,MAAM,EAAE,sBAAsB;4BAC9B,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;yBAChD,CAAC,CAAC;oBACJ,CAAC;oBACD,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAChC,CAAC;gBAED,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAEhF,MAAM,cAAc,GAA+D;oBAClF,MAAM;oBACN,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,EAAE;iBACX,CAAC;gBAEF,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;oBACxB,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBAE9D,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,cAAc,CAAa,WAAW,CAAC,KAAK,CAAC;4BAC1D,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;4BAClC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;wBACrB,cAAc,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC1C,CAAC;oBAED,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;wBACxB,MAAM,MAAM,GAAG,cAAc,CAAa,WAAW,CAAC,MAAM,CAAC;4BAC5D,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC;4BACnC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;wBACtB,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;oBAED,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBACpC,MAAM,IAAI,GAAG,cAAc,CAAc,WAAW,CAAC,IAAI,CAAC;4BACzD,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;4BACjC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;wBACpB,cAAc,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBACnD,CAAC;oBAED,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;wBACzB,cAAc,CAAC,OAAO,GAAG,cAAc,CAAyB,WAAW,CAAC,OAAO,CAAC;4BACnF,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;4BACpC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;oBACxB,CAAC;gBACF,CAAC;qBAAM,IAAI,SAAS,EAAE,CAAC;oBACtB,cAAc,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACP,cAAc,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBACnD,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAY,YAAY,EAAE,cAAc,CAAC,CAAC;gBAC5E,MAAM,SAAS,GAAG,SAAS,EAAE,QAAQ,IAAI,gBAAgB,CAAC;gBAC1D,OAAO,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,IAAI,SAAS,CAAC,EAAE;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC;YAEzC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;YAChC,IAAI,OAAO,YAAY,YAAY,IAAI,OAAO,YAAY,YAAY;gBAAE,MAAM,OAAO,CAAC;YACtF,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,qBAAqB,EAAE,CAAC;gBAC1E,MAAM,IAAI,YAAY,CAAC,iCAAiC,EAAE,IAAI,EAAE;oBAC/D,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM;iBACpE,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,uBAAuB,IAAI,MAAM,CAAC,MAAM,KAAK,wBAAwB,IAAI,MAAM,CAAC,MAAM,KAAK,sBAAsB,CAAC,EAAE,CAAC;gBACxK,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,IAAI,EAAE;oBAC1D,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM;iBAC3D,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClG,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,YAAY,CAAC,uCAAuC,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE;oBACnF,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC1C,MAAM,EAAE,iBAAiB;oBACzB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;oBAChC,KAAK,EAAE,OAAO;iBACd,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,YAAY,CAAC,wBAAwB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACtG,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { VibesRuntime } from '@vibesdotdev/kernel/api/runtime';
2
+ /** Clients can revalidate old results against their newest cached schemas.
3
+ * Compatible catalogs refresh live; incompatible existing contracts need maintenance. */
4
+ export declare function validateMcpGeneration(candidate: VibesRuntime, previous: VibesRuntime): void;
5
+ //# sourceMappingURL=generation-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-contract.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/generation-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AASpE;yFACyF;AACzF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAqB3F"}
@@ -0,0 +1,34 @@
1
+ import { RuntimeJsonSchemaSourceSchema, toRuntimeJsonSchema } from '@vibesdotdev/kernel/schemas/json-schema';
2
+ function isToolAsset(descriptor) {
3
+ return descriptor.kind === 'tools/tool' && 'schemas' in descriptor;
4
+ }
5
+ /** Clients can revalidate old results against their newest cached schemas.
6
+ * Compatible catalogs refresh live; incompatible existing contracts need maintenance. */
7
+ export function validateMcpGeneration(candidate, previous) {
8
+ // Resources/prompts have distinct capability negotiation. Tool catalogs and
9
+ // schemas refresh in place; a change to these other surfaces needs their
10
+ // transport contract to be prepared too.
11
+ const definitions = (runtime) => JSON.stringify(runtime.hasKind('tools/tool')
12
+ ? runtime.query('tools/tool').enabled().descriptors().filter(isToolAsset)
13
+ .filter((descriptor) => descriptor.mcp).map((descriptor) => ({ id: descriptor.id, mcp: descriptor.mcp })).sort((a, b) => a.id.localeCompare(b.id)) : []);
14
+ if (definitions(candidate) !== definitions(previous))
15
+ throw new Error('MCP resource/prompt contract changed; maintenance required');
16
+ const schemaContract = (descriptor) => JSON.stringify({
17
+ input: descriptor.schemas?.input ? toRuntimeJsonSchema(RuntimeJsonSchemaSourceSchema.parse(descriptor.schemas.input), { unrepresentable: 'any' }) : null,
18
+ output: descriptor.schemas?.output ? toRuntimeJsonSchema(RuntimeJsonSchemaSourceSchema.parse(descriptor.schemas.output), { unrepresentable: 'any' }) : null
19
+ });
20
+ if (!candidate.hasKind('tools/tool'))
21
+ return;
22
+ for (const descriptor of candidate.query('tools/tool').enabled().descriptors().filter(isToolAsset)) {
23
+ const previousDescriptor = previous.hasKind('tools/tool') ? previous.assets('tools/tool').descriptor(descriptor.id) : undefined;
24
+ const before = previousDescriptor !== undefined && isToolAsset(previousDescriptor) ? previousDescriptor : undefined;
25
+ if (before && schemaContract(before) !== schemaContract(descriptor))
26
+ throw new Error(`MCP wire schema changed for '${descriptor.id}'; maintenance required`);
27
+ if (!descriptor.schemas?.input)
28
+ throw new Error(`MCP tool '${descriptor.id}' has no input schema`);
29
+ toRuntimeJsonSchema(RuntimeJsonSchemaSourceSchema.parse(descriptor.schemas.input), { unrepresentable: 'any' });
30
+ if (descriptor.schemas.output)
31
+ toRuntimeJsonSchema(RuntimeJsonSchemaSourceSchema.parse(descriptor.schemas.output), { unrepresentable: 'any' });
32
+ }
33
+ }
34
+ //# sourceMappingURL=generation-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-contract.js","sourceRoot":"","sources":["../../../src/adapters/mcp/generation-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Where the shared MCP host for a workspace advertises itself.
3
+ *
4
+ * WHY A REGISTRY AND NOT A PORT PROBE. The relay has to answer "is there a host
5
+ * I may attach to?" and the honest form of that question includes "…serving THIS
6
+ * workspace?". Probing a well-known port answers neither: port 3000 is the most
7
+ * contended port on a developer machine, and something answering there is not
8
+ * evidence it is a vibes MCP host, let alone one rooted at the same workspace.
9
+ * Attaching to the wrong host would hand an agent another workspace's tools and
10
+ * another workspace's session state, and the symptom would surface far from the
11
+ * cause.
12
+ *
13
+ * So the host writes a claim, and the relay verifies every part of it before
14
+ * trusting it: the process is alive AND is the process that wrote the claim, it
15
+ * is rooted at the same workspace, and it answers. A stale claim (host killed,
16
+ * machine rebooted, pid recycled) fails verification and is treated as "no
17
+ * host" — never as a reason to fail.
18
+ *
19
+ * ONE HOST PER WORKSPACE, not per machine. The runtime daemons are already
20
+ * per-workspace and that is correct: a workspace is the unit that owns a
21
+ * `.vibes` state directory, so two workspaces cannot share one runtime without
22
+ * sharing their sessions. Keying this registry by workspace root keeps the
23
+ * relay consistent with that.
24
+ *
25
+ * SUPERSEDED 2026-10-26 by ADR-0020 (developer root
26
+ * `docs/decisions/ADR-0020-one-global-daemon-set-session-threads.md`): one MCP
27
+ * host per machine forwards every call to the one runtime daemon, where each
28
+ * session is its own thread. Two workspaces share the process, not a runtime.
29
+ * This per-workspace registry stays until the plan's Phase 5 replaces it; do
30
+ * not extend it.
31
+ */
32
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
33
+ import type { LoggerImplementation } from '@vibesdotdev/logging';
34
+ import { workspaceKey } from '@vibesdotdev/paths/workspace-mcp-host';
35
+ import type { PathRoots } from '@vibesdotdev/paths';
36
+ /** The roots a host claim lives under: the caller's runtime `vibesHome`. */
37
+ export type HostClaimRoots = Pick<PathRoots, 'vibesHome'>;
38
+ /** The runtime a claim is read or written through: its selected filesystem adapter. */
39
+ export type HostClaimRuntime = RuntimeRef;
40
+ export interface McpHostClaim {
41
+ /** Process id of the host, used for liveness. */
42
+ pid: number;
43
+ /** Port the host's HTTP transport listens on. */
44
+ port: number;
45
+ /** Absolute workspace root the host is serving. */
46
+ workspaceRoot: string;
47
+ /** ISO timestamp, for diagnostics and staleness reporting. */
48
+ startedAt: string;
49
+ /**
50
+ * The catalog this host is actually serving.
51
+ *
52
+ * A host resolves its tool catalog ONCE at boot (`selectMcpTools`, called
53
+ * from `buildServer`) and bakes it into a single McpServer. So a client that
54
+ * wanted a different catalog cannot be served correctly by this host — it
55
+ * would silently receive whatever the host booted with. Not a crash: an agent
56
+ * quietly holding the wrong tools, which is harder to notice and worse.
57
+ *
58
+ * Advertising it lets the relay refuse a mismatch instead of papering over
59
+ * it. Undefined means the host did not say, which is treated as "cannot
60
+ * prove a match" — refuse rather than guess.
61
+ */
62
+ presetId?: string;
63
+ /** Exact Tools-owned policy the host used when baking its catalog. */
64
+ presetPolicyKey?: string;
65
+ /** Existing preset attach identity, computed from this host's actual selected policy. */
66
+ catalogAttachKey?: string;
67
+ /** Harness/client id the host resolved its catalog for. */
68
+ clientId?: string;
69
+ }
70
+ /**
71
+ * Stable, filesystem-safe key for a workspace root.
72
+ *
73
+ * Re-exported, not defined here. Pure identity and portable hashing live in
74
+ * `@vibesdotdev/paths`, because
75
+ * `@vibesdotdev/tools` must compute the same key to find this claim, and `mcp`
76
+ * already depends on `tools` (so `tools` can never depend on `mcp`). One hash,
77
+ * one notion of "which workspace is this", so the claim file, the derived port,
78
+ * and every reader of both can never disagree.
79
+ */
80
+ export { workspaceKey };
81
+ /**
82
+ * The claim path for `workspaceRoot` under the selected `vibesHome` of the
83
+ * runtime the caller was handed (`getPathRoots(runtime)`, D40); never the
84
+ * process's home and never a literal `.vibes`.
85
+ */
86
+ export declare function hostRegistryPath(workspaceRoot: string, roots: HostClaimRoots): string;
87
+ /**
88
+ * The relay attestation claim for `workspaceRoot` under the runtime's roots, beside its host
89
+ * claim (RC08 U7). The host writes a fresh secret there each start through
90
+ * runtime-rpc's local-attestation primitive; a same-user relay reads it and
91
+ * presents it as its bearer. The host claim itself carries no secret.
92
+ */
93
+ export declare function mcpRelayAttestationPath(workspaceRoot: string, roots: HostClaimRoots): string;
94
+ /**
95
+ * Advertise this process as the shared host for `workspaceRoot`, through the
96
+ * runtime's filesystem: an owner-private write the adapter renames into place,
97
+ * so a reader never sees half a claim and no other user can read it.
98
+ */
99
+ export declare function writeHostClaim(runtime: HostClaimRuntime, claim: McpHostClaim, roots: HostClaimRoots): Promise<void>;
100
+ /**
101
+ * Remove this workspace's claim. Safe to call when none exists.
102
+ *
103
+ * With `owner`, only the process that wrote the claim may withdraw it.
104
+ * Measured 2026-09-06: an orphaned http body from a retired worktree shared
105
+ * the developer root with the live managed host; on SIGTERM its shutdown
106
+ * cleared the root's claim unconditionally, and every relay started after
107
+ * that got "no shared host has advertised a claim" while the real host kept
108
+ * serving. Returns true when a file was removed.
109
+ */
110
+ export declare function clearHostClaim(runtime: HostClaimRuntime, workspaceRoot: string, roots: HostClaimRoots,
111
+ /** The withdrawing owner, and its logger from its handed runtime for a torn claim file. */
112
+ owner?: {
113
+ pid: number;
114
+ logger: Pick<LoggerImplementation, 'debug'>;
115
+ }): Promise<boolean>;
116
+ /**
117
+ * How a claim's pid is checked against the host's process table: through the
118
+ * runtime's process service (liveness) and host identity (start time).
119
+ */
120
+ export interface HostProcessProbe {
121
+ /** Whether `pid` is a running process. */
122
+ isRunning: (pid: number) => Promise<boolean>;
123
+ /**
124
+ * Wall-clock start of `pid` in epoch ms, or null when the process table no
125
+ * longer lists it. Throws typed when the table cannot be read: an
126
+ * unanswered probe is not a liveness verdict.
127
+ */
128
+ processStartMs: (pid: number) => number | null | Promise<number | null>;
129
+ }
130
+ /**
131
+ * The production probe on `runtime`: its `runtime/process` service and its
132
+ * declared host identity. A host offering neither refuses typed; liveness is
133
+ * never guessed.
134
+ */
135
+ export declare function hostProcessProbe(runtime: Pick<RuntimeRef, 'hasKind' | 'query'>): Promise<HostProcessProbe>;
136
+ export type HostLookup = {
137
+ status: 'live';
138
+ claim: McpHostClaim;
139
+ url: string;
140
+ } | {
141
+ status: 'none';
142
+ } | {
143
+ status: 'stale';
144
+ claim: McpHostClaim;
145
+ reason: 'dead-process' | 'workspace-mismatch';
146
+ };
147
+ /**
148
+ * Read and VERIFY the claim for a workspace, through `runtime`'s filesystem.
149
+ *
150
+ * Verification is the point of this function. A claim file proves someone once
151
+ * intended to host; it does not prove anyone is hosting now. Returning `stale`
152
+ * rather than `none` for a failed check keeps the difference visible to callers
153
+ * that want to report it — "the host died" and "there was never a host" call for
154
+ * different messages.
155
+ */
156
+ export declare function readHostClaim(runtime: HostClaimRuntime, workspaceRoot: string, roots: HostClaimRoots, probe: HostProcessProbe,
157
+ /** The reader's logger from its handed runtime: a torn claim file is reported here. */
158
+ logger: Pick<LoggerImplementation, 'debug'>): Promise<HostLookup>;
159
+ //# sourceMappingURL=host-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-registry.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/host-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAmG,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIvJ,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAoB,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAS1D,uFAAuF;AACvF,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC5B,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAErF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAE5F;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzH;AAyBD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CACnC,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,cAAc;AACrB,2FAA2F;AAC3F,KAAK,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;CAAE,GAClE,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC,0CAA0C;IAC1C,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C;;;;OAIG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACxE;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAMhH;AA6DD,MAAM,MAAM,UAAU,GACnB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAAA;CAAE,CAAC;AAE3F;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,gBAAgB;AACvB,uFAAuF;AACvF,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,UAAU,CAAC,CAiBrB"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Where the shared MCP host for a workspace advertises itself.
3
+ *
4
+ * WHY A REGISTRY AND NOT A PORT PROBE. The relay has to answer "is there a host
5
+ * I may attach to?" and the honest form of that question includes "…serving THIS
6
+ * workspace?". Probing a well-known port answers neither: port 3000 is the most
7
+ * contended port on a developer machine, and something answering there is not
8
+ * evidence it is a vibes MCP host, let alone one rooted at the same workspace.
9
+ * Attaching to the wrong host would hand an agent another workspace's tools and
10
+ * another workspace's session state, and the symptom would surface far from the
11
+ * cause.
12
+ *
13
+ * So the host writes a claim, and the relay verifies every part of it before
14
+ * trusting it: the process is alive AND is the process that wrote the claim, it
15
+ * is rooted at the same workspace, and it answers. A stale claim (host killed,
16
+ * machine rebooted, pid recycled) fails verification and is treated as "no
17
+ * host" — never as a reason to fail.
18
+ *
19
+ * ONE HOST PER WORKSPACE, not per machine. The runtime daemons are already
20
+ * per-workspace and that is correct: a workspace is the unit that owns a
21
+ * `.vibes` state directory, so two workspaces cannot share one runtime without
22
+ * sharing their sessions. Keying this registry by workspace root keeps the
23
+ * relay consistent with that.
24
+ *
25
+ * SUPERSEDED 2026-10-26 by ADR-0020 (developer root
26
+ * `docs/decisions/ADR-0020-one-global-daemon-set-session-threads.md`): one MCP
27
+ * host per machine forwards every call to the one runtime daemon, where each
28
+ * session is its own thread. Two workspaces share the process, not a runtime.
29
+ * This per-workspace registry stays until the plan's Phase 5 replaces it; do
30
+ * not extend it.
31
+ */
32
+ import * as z from 'zod/v4';
33
+ import { CapabilityError, getRuntimeHostIdentity, isCapabilityError, settle, settleNow, valueFreeFailure } from '@vibesdotdev/kernel';
34
+ import { getRuntimeProcessService } from '@vibesdotdev/kernel/process';
35
+ import { resolveFileSystemAdapter } from '@vibesdotdev/filesystem/client/resolve-adapter';
36
+ import { writeFilePrivate } from '@vibesdotdev/filesystem';
37
+ import { mcpHostClaimPath, workspaceKey } from '@vibesdotdev/paths/workspace-mcp-host';
38
+ /**
39
+ * Host claims are home state (`vibesHome`), not workspace files: they are read
40
+ * and written through the host's unbound filesystem adapter, never the
41
+ * workspace-rooted binding (which refuses paths outside the workspace).
42
+ */
43
+ const HOME_STATE_FILESYSTEM = { binding: false };
44
+ /**
45
+ * Stable, filesystem-safe key for a workspace root.
46
+ *
47
+ * Re-exported, not defined here. Pure identity and portable hashing live in
48
+ * `@vibesdotdev/paths`, because
49
+ * `@vibesdotdev/tools` must compute the same key to find this claim, and `mcp`
50
+ * already depends on `tools` (so `tools` can never depend on `mcp`). One hash,
51
+ * one notion of "which workspace is this", so the claim file, the derived port,
52
+ * and every reader of both can never disagree.
53
+ */
54
+ export { workspaceKey };
55
+ /**
56
+ * The claim path for `workspaceRoot` under the selected `vibesHome` of the
57
+ * runtime the caller was handed (`getPathRoots(runtime)`, D40); never the
58
+ * process's home and never a literal `.vibes`.
59
+ */
60
+ export function hostRegistryPath(workspaceRoot, roots) {
61
+ return mcpHostClaimPath(workspaceRoot, roots);
62
+ }
63
+ /**
64
+ * The relay attestation claim for `workspaceRoot` under the runtime's roots, beside its host
65
+ * claim (RC08 U7). The host writes a fresh secret there each start through
66
+ * runtime-rpc's local-attestation primitive; a same-user relay reads it and
67
+ * presents it as its bearer. The host claim itself carries no secret.
68
+ */
69
+ export function mcpRelayAttestationPath(workspaceRoot, roots) {
70
+ return hostRegistryPath(workspaceRoot, roots).replace(/\.json$/, '.attestation');
71
+ }
72
+ /**
73
+ * Advertise this process as the shared host for `workspaceRoot`, through the
74
+ * runtime's filesystem: an owner-private write the adapter renames into place,
75
+ * so a reader never sees half a claim and no other user can read it.
76
+ */
77
+ export async function writeHostClaim(runtime, claim, roots) {
78
+ const filesystem = await resolveFileSystemAdapter(runtime, HOME_STATE_FILESYSTEM);
79
+ const path = hostRegistryPath(claim.workspaceRoot, roots);
80
+ await filesystem.mkdir(filesystem.dirname(path), { recursive: true, mode: 0o700 });
81
+ await writeFilePrivate(filesystem, path, `${JSON.stringify(claim, null, 2)}\n`, 'utf8');
82
+ }
83
+ /** The claim file's text, or null when there is none; any other failure propagates typed. */
84
+ async function readClaimText(runtime, path) {
85
+ const filesystem = await resolveFileSystemAdapter(runtime, HOME_STATE_FILESYSTEM);
86
+ if (!(await filesystem.exists(path)))
87
+ return null;
88
+ const read = await settle(() => filesystem.readFile(path, 'utf8'));
89
+ if (!read.ok) {
90
+ // Withdrawn between the existence check and the read: no claim.
91
+ if (isCapabilityError(read.cause) && read.cause.code === 'NOT_FOUND')
92
+ return null;
93
+ throw new CapabilityError('The MCP host claim cannot be read.', 'UNAVAILABLE', {
94
+ reason: 'mcp-host-claim-unreadable',
95
+ retryable: false,
96
+ details: { failure: valueFreeFailure(read.cause).name },
97
+ cause: read.cause
98
+ });
99
+ }
100
+ if (isUtf8Text(read.value))
101
+ return read.value;
102
+ return new TextDecoder().decode(read.value);
103
+ }
104
+ function isUtf8Text(value) {
105
+ return typeof value === 'string';
106
+ }
107
+ /**
108
+ * Remove this workspace's claim. Safe to call when none exists.
109
+ *
110
+ * With `owner`, only the process that wrote the claim may withdraw it.
111
+ * Measured 2026-09-06: an orphaned http body from a retired worktree shared
112
+ * the developer root with the live managed host; on SIGTERM its shutdown
113
+ * cleared the root's claim unconditionally, and every relay started after
114
+ * that got "no shared host has advertised a claim" while the real host kept
115
+ * serving. Returns true when a file was removed.
116
+ */
117
+ export async function clearHostClaim(runtime, workspaceRoot, roots,
118
+ /** The withdrawing owner, and its logger from its handed runtime for a torn claim file. */
119
+ owner) {
120
+ const path = hostRegistryPath(workspaceRoot, roots);
121
+ const raw = await readClaimText(runtime, path);
122
+ if (raw === null)
123
+ return false; // nothing to withdraw
124
+ if (owner) {
125
+ const claim = parseClaim(raw, owner.logger);
126
+ if (claim && claim.pid !== owner.pid)
127
+ return false; // someone else's live claim
128
+ }
129
+ const filesystem = await resolveFileSystemAdapter(runtime, HOME_STATE_FILESYSTEM);
130
+ await filesystem.remove(path);
131
+ return true;
132
+ }
133
+ /**
134
+ * The production probe on `runtime`: its `runtime/process` service and its
135
+ * declared host identity. A host offering neither refuses typed; liveness is
136
+ * never guessed.
137
+ */
138
+ export async function hostProcessProbe(runtime) {
139
+ const [processes, identity] = await Promise.all([getRuntimeProcessService(runtime), getRuntimeHostIdentity(runtime)]);
140
+ return {
141
+ isRunning: (pid) => processes.isRunning(pid),
142
+ processStartMs: (pid) => identity.readProcessStartMs(pid)
143
+ };
144
+ }
145
+ /**
146
+ * `ps` reports elapsed time in whole seconds, and the claim and the probe are
147
+ * not read on the same clock tick. A genuine host is always EARLIER than its
148
+ * claim by however long the runtime took to boot, so the window only has to
149
+ * absorb rounding — 5 s is generous without letting a recycled pid through.
150
+ */
151
+ const CLAIM_START_TOLERANCE_MS = 5_000;
152
+ /**
153
+ * Is the process at `claim.pid` the one that wrote the claim?
154
+ *
155
+ * Liveness proves a pid exists; it does not prove it is OUR process. The host
156
+ * writes its claim AFTER it boots, so the host that wrote it started before
157
+ * `startedAt`. A pid that started after the claim inherited the number from a
158
+ * host that has since died — the recycled-pid case. A pid the process table no
159
+ * longer lists exited after the liveness check saw it. A table that cannot be
160
+ * read fails typed; liveness is never guessed.
161
+ */
162
+ async function claimedProcessIsRunning(claim, probe) {
163
+ if (!Number.isSafeInteger(claim.pid) || claim.pid <= 0)
164
+ return false;
165
+ if (!(await probe.isRunning(claim.pid)))
166
+ return false;
167
+ const claimedStartMs = Date.parse(claim.startedAt);
168
+ if (!Number.isFinite(claimedStartMs))
169
+ return true;
170
+ const actualStartMs = await probe.processStartMs(claim.pid);
171
+ if (actualStartMs === null)
172
+ return false;
173
+ return actualStartMs <= claimedStartMs + CLAIM_START_TOLERANCE_MS;
174
+ }
175
+ /** A claim file's shape; the optional catalog fields are read independently of the required ones. */
176
+ const ClaimSchema = z.object({
177
+ pid: z.number(),
178
+ port: z.number(),
179
+ workspaceRoot: z.string(),
180
+ startedAt: z.string(),
181
+ presetId: z.string().optional().catch(undefined),
182
+ presetPolicyKey: z.string().optional().catch(undefined),
183
+ catalogAttachKey: z.string().optional().catch(undefined),
184
+ clientId: z.string().optional().catch(undefined)
185
+ });
186
+ function parseClaim(raw, logger) {
187
+ const parsedJson = settleNow(() => JSON.parse(raw));
188
+ if (!parsedJson.ok) {
189
+ // A torn or hand-edited file is no claim: the relay reports "no host".
190
+ logger.debug('mcp host claim is not valid JSON; treating as no claim', {
191
+ failure: valueFreeFailure(parsedJson.cause)
192
+ });
193
+ return null;
194
+ }
195
+ const parsed = ClaimSchema.safeParse(parsedJson.value);
196
+ if (!parsed.success)
197
+ return null;
198
+ const claim = { pid: parsed.data.pid, port: parsed.data.port, workspaceRoot: parsed.data.workspaceRoot, startedAt: parsed.data.startedAt };
199
+ if (parsed.data.presetId !== undefined)
200
+ claim.presetId = parsed.data.presetId;
201
+ if (parsed.data.presetPolicyKey !== undefined)
202
+ claim.presetPolicyKey = parsed.data.presetPolicyKey;
203
+ if (parsed.data.catalogAttachKey !== undefined)
204
+ claim.catalogAttachKey = parsed.data.catalogAttachKey;
205
+ if (parsed.data.clientId !== undefined)
206
+ claim.clientId = parsed.data.clientId;
207
+ return claim;
208
+ }
209
+ /**
210
+ * Read and VERIFY the claim for a workspace, through `runtime`'s filesystem.
211
+ *
212
+ * Verification is the point of this function. A claim file proves someone once
213
+ * intended to host; it does not prove anyone is hosting now. Returning `stale`
214
+ * rather than `none` for a failed check keeps the difference visible to callers
215
+ * that want to report it — "the host died" and "there was never a host" call for
216
+ * different messages.
217
+ */
218
+ export async function readHostClaim(runtime, workspaceRoot, roots, probe,
219
+ /** The reader's logger from its handed runtime: a torn claim file is reported here. */
220
+ logger) {
221
+ const raw = await readClaimText(runtime, hostRegistryPath(workspaceRoot, roots));
222
+ if (raw === null)
223
+ return { status: 'none' };
224
+ const claim = parseClaim(raw, logger);
225
+ if (!claim)
226
+ return { status: 'none' };
227
+ // A claim for a different root in this workspace's slot means the hash
228
+ // collided or the file was hand-edited. Never attach across workspaces.
229
+ if (claim.workspaceRoot !== workspaceRoot) {
230
+ return { status: 'stale', claim, reason: 'workspace-mismatch' };
231
+ }
232
+ if (!(await claimedProcessIsRunning(claim, probe))) {
233
+ return { status: 'stale', claim, reason: 'dead-process' };
234
+ }
235
+ return { status: 'live', claim, url: `http://127.0.0.1:${claim.port}/mcp` };
236
+ }
237
+ //# sourceMappingURL=host-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-registry.js","sourceRoot":"","sources":["../../../src/adapters/mcp/host-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AACvJ,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAMvF;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,EAAE,OAAO,EAAE,KAAK,EAAW,CAAC;AAoC1D;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAAqB,EAAE,KAAqB;IAC5E,OAAO,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,aAAqB,EAAE,KAAqB;IACnF,OAAO,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAyB,EAAE,KAAmB,EAAE,KAAqB;IACzG,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,MAAM,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzF,CAAC;AAED,6FAA6F;AAC7F,KAAK,UAAU,aAAa,CAAC,OAAyB,EAAE,IAAY;IACnE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAClF,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACd,gEAAgE;QAChE,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAClF,MAAM,IAAI,eAAe,CAAC,oCAAoC,EAAE,aAAa,EAAE;YAC9E,MAAM,EAAE,2BAA2B;YACnC,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;YACvD,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IAC9C,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,OAAyB,EACzB,aAAqB,EACrB,KAAqB;AACrB,2FAA2F;AAC3F,KAAoE;IAEpE,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,CAAC,sBAAsB;IACtD,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC,CAAC,4BAA4B;IACjF,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAClF,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACb,CAAC;AAiBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA8C;IACpF,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtH,OAAO;QACN,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC;QAC5C,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC;KACzD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAEvC;;;;;;;;;GASG;AACH,KAAK,UAAU,uBAAuB,CAAC,KAAmB,EAAE,KAAuB;IAClF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,IAAI,aAAa,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,aAAa,IAAI,cAAc,GAAG,wBAAwB,CAAC;AACnE,CAAC;AAED,qGAAqG;AACrG,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAChD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACvD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;CAChD,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,GAAW,EAAE,MAA2C;IAC3E,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACpB,uEAAuE;QACvE,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE;YACtE,OAAO,EAAE,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC;SAC3C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,KAAK,GAAiB,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzJ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9E,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS;QAAE,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IACnG,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS;QAAE,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACtG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9E,OAAO,KAAK,CAAC;AACd,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,OAAyB,EACzB,aAAqB,EACrB,KAAqB,EACrB,KAAuB;AACvB,uFAAuF;AACvF,MAA2C;IAE3C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IACjF,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE5C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEtC,uEAAuE;IACvE,wEAAwE;IACxE,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,12 @@
1
+ export { createMcpAdapter } from './server.consumer.ts';
2
+ export type { McpAdapter, McpAdapterOptions, SamplingRequest, SamplingResult } from '../types.ts';
3
+ export type { McpUser, McpToolResult } from '../../types.ts';
4
+ export { type McpToolContext, type McpHttpRequest, type WorkspaceSource, type WorkspaceContext, type McpServerRuntimeConfig, type McpToolExecutionInfo, type McpRuntimeContext, prepareMcpToolExecution, prepareMcpToolExecutionAsync } from './context.ts';
5
+ export { type McpInputSchema, type McpResponseFormatter, defaultFormatter, tableFormatter, listFormatter } from './formatters.ts';
6
+ export { type McpResourceContent, type VibesResource, type VibesResourceTemplate, type VibesPrompt, type ApiToolConfig, type McpServerConfig, type McpToolMetadata, type McpToolHandler, type McpTool } from './vibes-types.ts';
7
+ export { fromApiEndpoint, type FromApiEndpointConfig, type ApiRequestTransform } from './from-api-endpoint.ts';
8
+ export { ensureSamplingAvailable, buildSamplingMessages } from './sampling.ts';
9
+ export { buildProjectionDoctorReport, runProjectionDoctor } from './projection-doctor.ts';
10
+ export type { ProjectionDoctorChallenge, ProjectionDoctorFinding, ProjectionDoctorReport, ProjectionFailureKind, ProjectionHostAttestation } from './projection-doctor.ts';
11
+ export { wrapToolOutputText, deriveTrustTier, shouldDropFromModelContext, TIER_3_DROP_PLACEHOLDER, TOOL_OUTPUT_TRUST_INSTRUCTION, type TrustTier, type TrustTaggedText } from './trust-tag.ts';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlG,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,YAAY,EACX,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export { createMcpAdapter } from "./server.consumer.js";
2
+ // Tool context and types
3
+ export { prepareMcpToolExecution, prepareMcpToolExecutionAsync } from "./context.js";
4
+ // Formatters
5
+ export { defaultFormatter, tableFormatter, listFormatter } from "./formatters.js";
6
+ // Vibes-domain MCP types
7
+ export {} from "./vibes-types.js";
8
+ // Tool helpers
9
+ export { fromApiEndpoint } from "./from-api-endpoint.js";
10
+ export { ensureSamplingAvailable, buildSamplingMessages } from "./sampling.js";
11
+ export { buildProjectionDoctorReport, runProjectionDoctor } from "./projection-doctor.js";
12
+ // Trust-tag wrapper (F4 / VIBA-34). Callers that build the system prompt
13
+ // must include TOOL_OUTPUT_TRUST_INSTRUCTION before any tool-result turns.
14
+ export { wrapToolOutputText, deriveTrustTier, shouldDropFromModelContext, TIER_3_DROP_PLACEHOLDER, TOOL_OUTPUT_TRUST_INSTRUCTION } from "./trust-tag.js";
15
+ // Note: Low-level transport primitives are available from @vibesdotdev/mcp
16
+ // This adapter provides tool-specific MCP server building
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMxD,yBAAyB;AACzB,OAAO,EAQN,uBAAuB,EACvB,4BAA4B,EAC5B,MAAM,cAAc,CAAC;AAEtB,aAAa;AACb,OAAO,EAGN,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,MAAM,iBAAiB,CAAC;AAEzB,yBAAyB;AACzB,OAAO,EAUN,MAAM,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EACN,eAAe,EAGf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAS1F,yEAAyE;AACzE,2EAA2E;AAC3E,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAG7B,MAAM,gBAAgB,CAAC;AAExB,2EAA2E;AAC3E,0DAA0D"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * What an agent is told when it is running on a private runtime.
3
+ *
4
+ * `--isolated` is a legitimate mode — it is the only way to debug the runtime
5
+ * itself, or to run a build that is not the one the host is serving. It is also
6
+ * expensive in a way that is completely invisible from inside: a process cannot
7
+ * see the other nine like it. That asymmetry is the whole reason this notice
8
+ * exists. The agent holding this runtime is the only party in a position to
9
+ * release it, and the only one with no way to know it should.
10
+ *
11
+ * It goes in the MCP `instructions` field, NOT a stderr line. Instructions are
12
+ * read into the agent's context at session start; stderr is written where no
13
+ * agent will ever look. A warning nobody reads is indistinguishable from no
14
+ * warning at all — and it is worse, because it lets the author believe the
15
+ * problem was handled.
16
+ *
17
+ * The same diagnosis also has to reach the client that could NOT attach.
18
+ * Standard stdio never falls back to a private runtime — `startStdioMcp`
19
+ * throws — so the thrown message is the only place a failed attach is ever
20
+ * explained. `attachFailureMessage` builds it from the same cause text as the
21
+ * notice (`attachCause`), so the two surfaces cannot drift into telling
22
+ * different stories about one claim.
23
+ */
24
+ /**
25
+ * A host url as a notice may print it: scheme, host and path only. Userinfo,
26
+ * query and fragment can carry credentials (VIBES_MCP_HOST_URL is operator
27
+ * input) and are dropped; the rest still passes the shared credential redactor.
28
+ * An unparseable value is removed whole.
29
+ */
30
+ export declare function renderHostUrl(url: string): string;
31
+ /** The commands a failed attach points at. Both exist on the installed CLI. */
32
+ export declare const HOST_STATUS_COMMAND = "vibes dev mcp status";
33
+ export declare const HOST_RESTART_COMMAND = "vibes dev mcp restart";
34
+ /** The part of a host claim a message needs in order to name the process it judged. */
35
+ export interface AttachClaimSummary {
36
+ pid: number;
37
+ port: number;
38
+ workspaceRoot: string;
39
+ startedAt: string;
40
+ presetId?: string;
41
+ }
42
+ export interface IsolatedNoticeInput {
43
+ /** Why this process ended up isolated. */
44
+ reason: 'requested' | 'no-host' | 'stale-host' | 'unreachable' | 'identity-mismatch' | 'transport-unavailable';
45
+ /** For 'identity-mismatch': what the host serves vs what was asked for. */
46
+ mismatch?: {
47
+ hostPreset?: string;
48
+ wantedPreset?: string;
49
+ };
50
+ /** Present when a host was found but could not be used. */
51
+ staleReason?: 'dead-process' | 'workspace-mismatch';
52
+ workspaceRoot?: string;
53
+ /** The claim the relay judged, when it read one, so a message can name the pid it refused. */
54
+ claim?: AttachClaimSummary;
55
+ /** The host url that was tried, when discovery or VIBES_MCP_HOST_URL produced one. */
56
+ url?: string;
57
+ /** True when `url` came from VIBES_MCP_HOST_URL rather than a claim. */
58
+ explicitUrl?: boolean;
59
+ }
60
+ /**
61
+ * What the relay found when it could not attach: everything the notice knows
62
+ * except `requested`, which is a decision, not a finding.
63
+ */
64
+ export type AttachFinding = Omit<IsolatedNoticeInput, 'reason'> & {
65
+ reason: Exclude<IsolatedNoticeInput['reason'], 'requested'>;
66
+ };
67
+ /**
68
+ * The cause, as a clause that follows "because" — the ONE description of what
69
+ * the relay found. `reasonLine` frames it for an agent that is now isolated;
70
+ * `attachFailureMessage` frames it for a client that got nothing at all. Two
71
+ * framings, one diagnosis, so they cannot disagree about the same claim.
72
+ */
73
+ export declare function attachCause(input: IsolatedNoticeInput): string;
74
+ /** One concrete thing to do about the finding. */
75
+ export declare function attachNextStep(finding: AttachFinding): string;
76
+ /** The relay's receipt, as much of it as a message can use. `RelayResult` is assignable. */
77
+ export interface AttachFailureReceipt {
78
+ relayed?: boolean;
79
+ reason?: AttachFinding['reason'] | 'disabled';
80
+ mismatch?: IsolatedNoticeInput['mismatch'];
81
+ staleReason?: IsolatedNoticeInput['staleReason'];
82
+ url?: string;
83
+ claim?: AttachClaimSummary;
84
+ }
85
+ export interface AttachFailureContext {
86
+ workspaceRoot: string;
87
+ /** VIBES_MCP_HOST_URL, when the client set it. */
88
+ hostUrl?: string;
89
+ /** True when PM was asked to start the host before the final attempt. */
90
+ hostStarted?: boolean;
91
+ }
92
+ /**
93
+ * The error a standard-stdio client sees when it cannot attach.
94
+ *
95
+ * Specific on purpose. The previous text ("check status; --isolated is explicit
96
+ * debugging only") was identical for a dead pid, a foreign workspace, a wrong
97
+ * catalog and a dead socket, while the relay had already worked out which one
98
+ * it was. It still says the load-bearing thing — no private runtime was started
99
+ * — because a silent ~6GB fallback is the failure this path exists to prevent.
100
+ */
101
+ export declare function attachFailureMessage(receipt: AttachFailureReceipt, context: AttachFailureContext): string;
102
+ /**
103
+ * Build the instructions section. Returns undefined for the shared path, so the
104
+ * normal case adds nothing to the agent's context.
105
+ *
106
+ * The text is THE prompts kind's: `mcp.instructions.private-runtime` when
107
+ * isolation is simply correct, `mcp.instructions.isolated-runtime` otherwise.
108
+ * The cause clause stays `attachCause`, shared with `attachFailureMessage`.
109
+ */
110
+ export declare function isolatedRuntimeInstructions(input: IsolatedNoticeInput | undefined): string | undefined;
111
+ //# sourceMappingURL=isolated-notice.d.ts.map