@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,343 @@
1
+ /**
2
+ * MCP serve lifecycle (consumer): PM/worker ensure + progressive atlas auto-index.
3
+ *
4
+ * Each step here is optional for the transport: a failure never stops the MCP
5
+ * server, and it is logged at warn level through the `mcp` logger, never
6
+ * swallowed. Only `workspace-unbound` means "no workspace".
7
+ */
8
+ import { CapabilityError, CaughtFailureSchema, settle, settleNow, valueFreeFailure } from '@vibesdotdev/kernel';
9
+ import { getLogger } from '@vibesdotdev/logging';
10
+ import { resolveProjectRefContext } from '@vibesdotdev/workspace/project-ref';
11
+ import { optionalCodeAtlas } from '@vibesdotdev/workspace/code-atlas';
12
+ import { tryResolveWorkspaceEnvironment, workspaceEnvironmentKind } from '@vibesdotdev/workspace/environment';
13
+ import { loadSurfaceSessions, tryGetSessionManager } from "./session-bridge.js";
14
+ import { requireMcpClient } from "../client.js";
15
+ import { bindRuntimeSessionScope } from '@vibesdotdev/session/events/session.bound';
16
+ /** An optional serve step failed: the transport keeps serving, and the failure is logged on the handed runtime. */
17
+ function warnOptionalStep(runtime, step, failure) {
18
+ const delivered = settleNow(() => getLogger('mcp', runtime).warn(`MCP serve: ${step} failed; the transport continues without it`, {
19
+ error: failure
20
+ }));
21
+ if (!delivered.ok)
22
+ runtime.diagnostics.error('MCP serve diagnostic failed', { scope: 'mcp:serve', plugin: 'mcp', error: delivered.cause });
23
+ }
24
+ function warnBackground(runtime, logger, message, details) {
25
+ const delivered = settleNow(() => logger.warn(message, details));
26
+ if (!delivered.ok)
27
+ runtime.diagnostics.error('MCP serve background diagnostic failed', { scope: 'mcp:serve', plugin: 'mcp', error: delivered.cause });
28
+ }
29
+ /**
30
+ * The host's bound workspace, or undefined when the failure's reason is
31
+ * `workspace-unbound`. Any other failure is rethrown.
32
+ */
33
+ async function boundWorkspacePath(runtime) {
34
+ const read = await settle(() => runtime.context('runtime/workspace-path'));
35
+ if (read.ok)
36
+ return read.value;
37
+ if (valueFreeFailure(read.cause).reason === 'workspace-unbound')
38
+ return undefined;
39
+ throw read.cause;
40
+ }
41
+ /** The bound on one root's background service start (PM daemon + worker runtime). */
42
+ const BACKGROUND_SERVICES_TIMEOUT_MS = 120_000;
43
+ /** The bound on the auto-index trigger (imports, project binding, the trigger call). */
44
+ const AUTO_INDEX_TRIGGER_TIMEOUT_MS = 300_000;
45
+ /** One background-service start per root: every serve path and generation shares it. */
46
+ /**
47
+ * Start the consumer host's background services (PM daemon, worker runtime)
48
+ * once per root. Optional steps report their failure on the handed runtime
49
+ * and never reject; a finite or non-consumer host starts nothing.
50
+ */
51
+ export function ensureConsumerBackgroundServices(runtime) {
52
+ if (runtime.scope.hardware !== 'consumer' || runtime.scope.lifecycle === 'finite')
53
+ return Promise.resolve();
54
+ const client = requireMcpClient(runtime);
55
+ return client.backgroundServiceStart ??= startBackgroundServices(runtime);
56
+ }
57
+ async function startBackgroundServices(runtime) {
58
+ const pm = await settle(() => runtime.context('pm/client'));
59
+ if (!pm.ok) {
60
+ warnOptionalStep(runtime, 'resolving the PM client', valueFreeFailure(pm.cause));
61
+ return;
62
+ }
63
+ const [daemon, workers] = await Promise.allSettled([
64
+ pm.value.ensureDaemonRunning?.(),
65
+ pm.value.ensureWorkerRuntime?.()
66
+ ]);
67
+ if (daemon.status === 'rejected') {
68
+ warnOptionalStep(runtime, 'starting the PM daemon', valueFreeFailure(CaughtFailureSchema.parse(daemon.reason)));
69
+ }
70
+ if (workers.status === 'rejected') {
71
+ warnOptionalStep(runtime, 'starting the worker runtime', valueFreeFailure(CaughtFailureSchema.parse(workers.reason)));
72
+ }
73
+ }
74
+ /**
75
+ * Run `work` as background work the runtime owns: bounded by `timeoutMs`,
76
+ * aborted when disposal begins, and joined by `dispose()` (RC07). A failure
77
+ * is reported once on `logger`; disposal's own abort is not a failure.
78
+ */
79
+ async function runOwnedBackgroundWork(runtime, logger, reason, timeoutMs, work) {
80
+ const read = await settle(() => runtime.lifecycle.wait(work, { timeoutMs, reason }));
81
+ if (read.ok)
82
+ return;
83
+ const failure = valueFreeFailure(read.cause);
84
+ if (runtime.lifecycle.phase !== 'live' && failure.code === 'CANCELLED')
85
+ return;
86
+ warnBackground(runtime, logger, `MCP serve background work failed: ${reason}`, { error: failure });
87
+ }
88
+ /**
89
+ * Start the consumer host's background services as runtime-owned work.
90
+ * Answers the owned promise (it never rejects) so a caller may join it.
91
+ */
92
+ export function startConsumerBackgroundServices(runtime, logger) {
93
+ if (runtime.scope.hardware !== 'consumer' || runtime.scope.lifecycle === 'finite')
94
+ return Promise.resolve();
95
+ return runOwnedBackgroundWork(runtime, logger, 'mcp-serve-background-services', BACKGROUND_SERVICES_TIMEOUT_MS, () => ensureConsumerBackgroundServices(runtime));
96
+ }
97
+ /**
98
+ * Trigger Atlas auto-indexing as runtime-owned background work (joined at
99
+ * disposal). Answers the owned promise, which never rejects.
100
+ */
101
+ export function triggerProgressiveIndexingInBackground(runtime, logger) {
102
+ if (runtime.scope.hardware !== 'consumer' || runtime.scope.lifecycle === 'finite')
103
+ return Promise.resolve();
104
+ return runOwnedBackgroundWork(runtime, logger, 'mcp-serve-auto-index', AUTO_INDEX_TRIGGER_TIMEOUT_MS, async () => {
105
+ await ensureConsumerBackgroundServices(runtime);
106
+ const atlas = await optionalCodeAtlas(runtime);
107
+ if (!atlas)
108
+ return;
109
+ const workspacePath = await boundWorkspacePath(runtime);
110
+ if (!workspacePath)
111
+ return;
112
+ const project = await settle(async () => {
113
+ const projectRefContext = await resolveProjectRefContext(runtime);
114
+ return projectRefContext.resolve({ cwd: workspacePath });
115
+ });
116
+ if (!project.ok) {
117
+ warnBackground(runtime, logger, 'Atlas auto-index skipped: ProjectRef unavailable', { workspacePath, error: valueFreeFailure(project.cause) });
118
+ return;
119
+ }
120
+ if (!project.value) {
121
+ warnBackground(runtime, logger, 'Atlas auto-index skipped: checkout has no ProjectRef binding', { workspacePath });
122
+ return;
123
+ }
124
+ const result = await atlas.maintain({ workspaceRoot: workspacePath, projectId: project.value.projectId });
125
+ if (result.status === 'error') {
126
+ warnBackground(runtime, logger, 'Atlas startup maintenance failed', { phase: result.phase, error: result.failure });
127
+ }
128
+ });
129
+ }
130
+ /**
131
+ * Re-bind workspace environment using the active session id when session tools
132
+ * have initialized a participant (replaces the generic `mcp-session` placeholder).
133
+ */
134
+ export async function rebindWorkspaceEnvironmentForActiveSession(runtime, projectRoot) {
135
+ if (runtime.scope.hardware !== 'consumer')
136
+ return;
137
+ const rebound = await settle(async () => {
138
+ const manager = await tryGetSessionManager(runtime);
139
+ const session = await manager?.getActiveSession();
140
+ const sessionId = session?.id;
141
+ if (!sessionId)
142
+ return;
143
+ await rebindWorkspaceEnvironmentForSession(runtime, sessionId, projectRoot);
144
+ });
145
+ if (!rebound.ok)
146
+ warnOptionalStep(runtime, 'rebinding the workspace to the active session', valueFreeFailure(rebound.cause));
147
+ }
148
+ /**
149
+ * Re-bind the MCP workspace to one exact session identity.
150
+ *
151
+ * Callers that just minted or adopted a session must pass that id through;
152
+ * re-querying a process-global "active" session here lets a concurrent bind
153
+ * steal the body between create and workspace binding.
154
+ */
155
+ export async function rebindWorkspaceEnvironmentForSession(runtime, sessionId, projectRoot) {
156
+ if (runtime.scope.hardware !== 'consumer' || !sessionId)
157
+ return;
158
+ const bound = await settle(async () => {
159
+ const workspace = await import('@vibesdotdev/workspace/environment/node');
160
+ // The session a workspace is bound for lives in the workspace package's
161
+ // runtime-local environment, never the declared scope (group D).
162
+ const previousWorkspaceSessionId = runtime.hasKind(workspaceEnvironmentKind.id)
163
+ ? (await tryResolveWorkspaceEnvironment(runtime))?.sessionId
164
+ : undefined;
165
+ if (previousWorkspaceSessionId && previousWorkspaceSessionId !== sessionId) {
166
+ // Fail closed during a session handoff: an unsuccessful new bind must
167
+ // not leave workspace tools attached to the previous session's state.
168
+ workspace.clearWorkspaceEnvironmentBinding(runtime);
169
+ // The session is identity: it goes to the session registry, which
170
+ // feeds each invocation's actor, never the declared scope (Q4).
171
+ bindRuntimeSessionScope(runtime, sessionId);
172
+ }
173
+ // The host's bound workspace (the kernel's one binding); a caller's
174
+ // explicit root answers only for a host bound to none.
175
+ const root = (await boundWorkspacePath(runtime)) ?? projectRoot;
176
+ if (!root) {
177
+ throw new CapabilityError('This MCP host is bound to no workspace.', 'NOT_FOUND', {
178
+ reason: 'workspace-unbound',
179
+ recoveryHint: 'Start the MCP server inside a workspace, or pass --workspace-root <dir>.'
180
+ });
181
+ }
182
+ const projectRefContext = await resolveProjectRefContext(runtime);
183
+ const projectRef = projectRefContext.resolve({ cwd: root });
184
+ const { default: workspaceStatePlugin } = await import('@vibesdotdev/workspace/state.plugin');
185
+ if (!runtime.hasPlugin(workspaceStatePlugin.id))
186
+ await runtime.registerPlugin(workspaceStatePlugin);
187
+ await workspace.bindWorkspaceEnvironment(runtime, {
188
+ sessionId,
189
+ target: 'local',
190
+ root,
191
+ projectId: projectRef?.projectId
192
+ });
193
+ bindRuntimeSessionScope(runtime, sessionId);
194
+ });
195
+ if (!bound.ok) {
196
+ // Workspace binding is optional for transport startup. session.bound still
197
+ // commits the canonical session binding before subscriber fanout.
198
+ warnOptionalStep(runtime, `binding the workspace for session ${sessionId}`, valueFreeFailure(bound.cause));
199
+ }
200
+ }
201
+ /**
202
+ * The session THIS process minted for its stdio connection (L-03).
203
+ *
204
+ * One stdio process = one external agent = ONE session: the guard makes
205
+ * re-entry (transport restarts, duplicated init paths) rebind instead of
206
+ * re-mint, and remembers the id so shutdown can archive it — before this
207
+ * lifecycle existed every spawn leaked a permanently-`active` session into
208
+ * the workspace store (740+ accumulated).
209
+ */
210
+ /** Return the exact session receipt owned by this runtime's stdio process, if any. */
211
+ export function getBoundStdioSessionId(runtime) {
212
+ return requireMcpClient(runtime).stdioBoundSessionId;
213
+ }
214
+ /**
215
+ * Bind a FRESH session for a stdio MCP connection.
216
+ *
217
+ * stdio = one external agent (Claude Code / opencode / codex) per server
218
+ * process. We must NOT adopt the workspace's persisted default/active session
219
+ * — that would cross-contaminate parallel instances sharing the same workspace
220
+ * (see `session/src/mcp/utils/participant.ts:676-677`). `createSession()` marks
221
+ * the new session default-active + owner-active, so the subsequent
222
+ * `rebindWorkspaceEnvironmentForActiveSession` picks it up.
223
+ *
224
+ * Per-process mint guard (L-03): repeated calls return the already-bound
225
+ * session instead of minting again.
226
+ *
227
+ * Returns the bound session id (for logging and shutdown archival), or
228
+ * `undefined` if the session bridge is unavailable.
229
+ */
230
+ export async function bindFreshStdioSession(runtime) {
231
+ if (runtime.scope.hardware !== 'consumer')
232
+ return undefined;
233
+ const existing = requireMcpClient(runtime).stdioBoundSessionId;
234
+ if (existing)
235
+ return existing;
236
+ const sessions = await loadSurfaceSessions(runtime);
237
+ if (!sessions) {
238
+ getLogger('mcp', runtime).warn('MCP serve: minting the stdio session failed; this host composes no session/manager');
239
+ return undefined;
240
+ }
241
+ const minted = await settle(async () => {
242
+ const workspacePath = await boundWorkspacePath(runtime);
243
+ return sessions.createSession({ workspacePath });
244
+ });
245
+ if (!minted.ok) {
246
+ warnOptionalStep(runtime, 'minting the stdio session', valueFreeFailure(minted.cause));
247
+ return undefined;
248
+ }
249
+ requireMcpClient(runtime).stdioBoundSessionId = minted.value;
250
+ return minted.value;
251
+ }
252
+ /**
253
+ * Close-half of {@link bindFreshStdioSession} (L-03): archive the session this
254
+ * process minted, so a clean stdio teardown leaves no permanently-`active`
255
+ * session behind. Crash leaks are covered by Session's `reapStaleSurfaceSessions`
256
+ * (kicked off at startup). Best-effort — never blocks teardown.
257
+ */
258
+ export async function archiveBoundStdioSession(runtime) {
259
+ const sessionId = requireMcpClient(runtime).stdioBoundSessionId;
260
+ if (!sessionId)
261
+ return;
262
+ requireMcpClient(runtime).stdioBoundSessionId = undefined;
263
+ const archived = await settle(async () => {
264
+ const manager = await tryGetSessionManager(runtime);
265
+ await manager?.archiveSession(sessionId);
266
+ });
267
+ if (!archived.ok) {
268
+ // The startup reaper covers what this misses.
269
+ warnOptionalStep(runtime, `archiving stdio session ${sessionId}`, valueFreeFailure(archived.cause));
270
+ }
271
+ }
272
+ /**
273
+ * Fire the runtime-native `session.bound` event for an exact supplied session,
274
+ * or the active session for compatibility callers that do not have a receipt.
275
+ *
276
+ * Call AFTER the surface's create-or-adopt + workspace rebind. A single emit
277
+ * fans out runtime-natively to the scope-publish subscription (sets
278
+ * `scope.qualifiers.sessionId` → `brain.pulse` stops returning `"ephemeral"`)
279
+ * and the awareness `turn.start` subscription — no per-harness code.
280
+ */
281
+ export async function announceSessionBound(runtime, options) {
282
+ const announced = await settle(async () => {
283
+ const manager = await tryGetSessionManager(runtime);
284
+ const session = options.sessionId
285
+ ? await manager?.getSession(options.sessionId)
286
+ : await manager?.getActiveSession();
287
+ const sessionId = options.sessionId ?? session?.id;
288
+ if (!sessionId)
289
+ return;
290
+ const { emitSessionBound } = await import('@vibesdotdev/session/events/session.bound');
291
+ const participantId = options.participantId ??
292
+ session?.ownerParticipant ??
293
+ (await loadSurfaceSessions(runtime))?.participantId;
294
+ if (!participantId) {
295
+ getLogger('mcp', runtime).warn(`MCP serve: announcing session.bound failed; no participant owns session ${sessionId} and this host composes no session/manager`);
296
+ return;
297
+ }
298
+ await emitSessionBound({
299
+ runtime,
300
+ sessionId,
301
+ participantId,
302
+ surface: options.surface
303
+ });
304
+ });
305
+ if (!announced.ok)
306
+ warnOptionalStep(runtime, 'announcing session.bound', valueFreeFailure(announced.cause));
307
+ }
308
+ /**
309
+ * Fire the runtime-native `session.unbound` event as the surface tears down.
310
+ *
311
+ * The close-half of {@link announceSessionBound}: a single emit fans out to the
312
+ * awareness `turn.end` subscription (and any future close subscribers) — no
313
+ * per-harness code. Best-effort; never blocks shutdown.
314
+ */
315
+ export async function announceSessionUnbound(runtime, options) {
316
+ const announced = await settle(async () => {
317
+ const manager = await tryGetSessionManager(runtime);
318
+ const session = options.sessionId
319
+ ? await manager?.getSession(options.sessionId)
320
+ : await manager?.getActiveSession();
321
+ const sessionId = options.sessionId ?? session?.id;
322
+ if (!sessionId)
323
+ return;
324
+ const { emitSessionUnbound } = await import('@vibesdotdev/session/events/session.unbound');
325
+ const participantId = options.participantId ??
326
+ session?.ownerParticipant ??
327
+ (await loadSurfaceSessions(runtime))?.participantId;
328
+ if (!participantId) {
329
+ getLogger('mcp', runtime).warn(`MCP serve: announcing session.unbound failed; no participant owns session ${sessionId} and this host composes no session/manager`);
330
+ return;
331
+ }
332
+ await emitSessionUnbound({
333
+ runtime,
334
+ sessionId,
335
+ participantId,
336
+ surface: options.surface,
337
+ reason: options.reason
338
+ });
339
+ });
340
+ if (!announced.ok)
341
+ warnOptionalStep(runtime, 'announcing session.unbound', valueFreeFailure(announced.cause));
342
+ }
343
+ //# sourceMappingURL=serve-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-lifecycle.js","sourceRoot":"","sources":["../../src/surface-mcp/serve-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Session bridge for the MCP surface.
3
+ *
4
+ * The SessionManager is a framework context (`session/manager`). The surface's
5
+ * own session lifecycle (the managed participant, one minted session per stdio
6
+ * process, the stale sweep) is Session's `surface-sessions`. Both lookups are
7
+ * declared-optional: an absent manager is logged with its value-free failure
8
+ * and reported as `null`.
9
+ */
10
+ import { type VibesRuntime } from '@vibesdotdev/kernel';
11
+ import type { SessionManager } from '@vibesdotdev/session/manager';
12
+ import { type SurfaceSessions } from '@vibesdotdev/session/mcp/utils/surface-sessions';
13
+ export type { SurfaceSessions } from '@vibesdotdev/session/mcp/utils/surface-sessions';
14
+ /** The runtime's SessionManager, or `null` (logged) when the host does not compose one. */
15
+ export declare function tryGetSessionManager(runtime: VibesRuntime): Promise<SessionManager | null>;
16
+ /** The surface-session lifecycle on the runtime's SessionManager, or `null` when the host composes none. */
17
+ export declare function loadSurfaceSessions(runtime: VibesRuntime): Promise<SurfaceSessions | null>;
18
+ //# sourceMappingURL=session-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-bridge.d.ts","sourceRoot":"","sources":["../../src/surface-mcp/session-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAExG,YAAY,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAEvF,2FAA2F;AAC3F,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAKhG;AAED,4GAA4G;AAC5G,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAGhG"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Session bridge for the MCP surface.
3
+ *
4
+ * The SessionManager is a framework context (`session/manager`). The surface's
5
+ * own session lifecycle (the managed participant, one minted session per stdio
6
+ * process, the stale sweep) is Session's `surface-sessions`. Both lookups are
7
+ * declared-optional: an absent manager is logged with its value-free failure
8
+ * and reported as `null`.
9
+ */
10
+ import { settle, valueFreeFailure } from '@vibesdotdev/kernel';
11
+ import { getLogger } from '@vibesdotdev/logging';
12
+ import { surfaceSessions } from '@vibesdotdev/session/mcp/utils/surface-sessions';
13
+ /** The runtime's SessionManager, or `null` (logged) when the host does not compose one. */
14
+ export async function tryGetSessionManager(runtime) {
15
+ const read = await settle(() => runtime.context('session/manager'));
16
+ if (read.ok)
17
+ return read.value;
18
+ getLogger('mcp', runtime).debug('session bridge: session/manager unavailable', { error: valueFreeFailure(read.cause) });
19
+ return null;
20
+ }
21
+ /** The surface-session lifecycle on the runtime's SessionManager, or `null` when the host composes none. */
22
+ export async function loadSurfaceSessions(runtime) {
23
+ const manager = await tryGetSessionManager(runtime);
24
+ return manager ? surfaceSessions(runtime, manager) : null;
25
+ }
26
+ //# sourceMappingURL=session-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-bridge.js","sourceRoot":"","sources":["../../src/surface-mcp/session-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAqB,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAwB,MAAM,iDAAiD,CAAC;AAIxG,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAqB;IAC/D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAiB,iBAAiB,CAAC,CAAC,CAAC;IACpF,IAAI,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,6CAA6C,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxH,OAAO,IAAI,CAAC;AACb,CAAC;AAED,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAqB;IAC9D,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** Keep the MCP workspace environment on the exact session just announced. */
2
+ declare const _default: {
3
+ kind: "runtime/subscription";
4
+ id: string;
5
+ name: string;
6
+ description: string;
7
+ event: string;
8
+ handler: string;
9
+ handlerType: string;
10
+ enabled: true;
11
+ };
12
+ export default _default;
13
+ //# sourceMappingURL=session.bound.workspace.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.bound.workspace.descriptor.d.ts","sourceRoot":"","sources":["../../../src/surface-mcp/subscriptions/session.bound.workspace.descriptor.ts"],"names":[],"mappings":"AAEA,8EAA8E;;;;;;;;;;;AAC9E,wBAUG"}
@@ -0,0 +1,13 @@
1
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
2
+ /** Keep the MCP workspace environment on the exact session just announced. */
3
+ export default createRuntimeAsset({
4
+ kind: 'runtime/subscription',
5
+ id: 'runtime-surface-mcp.subscriptions.on-session-bound-workspace',
6
+ name: 'MCP Session Bound — Rebind Workspace',
7
+ description: 'On session.bound, rebind the MCP workspace environment using the event session id rather than ambient active-session state.',
8
+ event: 'session.bound',
9
+ handler: 'inline',
10
+ handlerType: 'inline',
11
+ enabled: true
12
+ });
13
+ //# sourceMappingURL=session.bound.workspace.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.bound.workspace.descriptor.js","sourceRoot":"","sources":["../../../src/surface-mcp/subscriptions/session.bound.workspace.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,8EAA8E;AAC9E,eAAe,kBAAkB,CAAC;IACjC,IAAI,EAAE,sBAAsB;IAC5B,EAAE,EAAE,8DAA8D;IAClE,IAAI,EAAE,sCAAsC;IAC5C,WAAW,EACV,6HAA6H;IAC9H,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE,IAAI;CACb,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { rebindWorkspaceEnvironmentForSession } from '../serve-lifecycle.ts';
2
+ type RebindWorkspace = typeof rebindWorkspaceEnvironmentForSession;
3
+ export declare class SessionBoundWorkspaceHandler {
4
+ private rebindWorkspace;
5
+ /** A handler whose rebind step is `rebind` (tests replace the far boundary). */
6
+ static withRebind(rebind: RebindWorkspace): SessionBoundWorkspaceHandler;
7
+ handle(payload: unknown): Promise<void>;
8
+ }
9
+ declare const _default: import("@vibesdotdev/kernel").RuntimeImplementationWrapper<typeof SessionBoundWorkspaceHandler>;
10
+ export default _default;
11
+ //# sourceMappingURL=session.bound.workspace.impl.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.bound.workspace.impl.consumer.d.ts","sourceRoot":"","sources":["../../../src/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAC;AAE7E,KAAK,eAAe,GAAG,OAAO,oCAAoC,CAAC;AAEnE,qBAAa,4BAA4B;IAGxC,OAAO,CAAC,eAAe,CAAyD;IAEhF,gFAAgF;IAChF,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,4BAA4B;IAMlE,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAa7C;;AAED,wBAIG"}
@@ -0,0 +1,36 @@
1
+ import { createRuntimeImplementation } from '@vibesdotdev/kernel';
2
+ import { SessionBoundEventSchema } from '@vibesdotdev/session/events/session.bound';
3
+ import { tryResolveWorkspaceEnvironment, workspaceEnvironmentKind } from '@vibesdotdev/workspace/environment';
4
+ import { rebindWorkspaceEnvironmentForSession } from "../serve-lifecycle.js";
5
+ export class SessionBoundWorkspaceHandler {
6
+ // The runtime constructs implementations with its kind context as the first
7
+ // argument, so the rebind seam is not a constructor parameter.
8
+ rebindWorkspace = rebindWorkspaceEnvironmentForSession;
9
+ /** A handler whose rebind step is `rebind` (tests replace the far boundary). */
10
+ static withRebind(rebind) {
11
+ const handler = new SessionBoundWorkspaceHandler();
12
+ handler.rebindWorkspace = rebind;
13
+ return handler;
14
+ }
15
+ async handle(payload) {
16
+ const parsed = SessionBoundEventSchema.safeParse(payload);
17
+ if (!parsed.success || parsed.data.bindingScope === 'request')
18
+ return;
19
+ const event = parsed.data;
20
+ // The session a workspace is bound for lives in the workspace package's
21
+ // runtime-local environment, never the declared scope (group D).
22
+ const runtime = event.runtime;
23
+ const bound = runtime.hasKind(workspaceEnvironmentKind.id)
24
+ ? await tryResolveWorkspaceEnvironment(runtime)
25
+ : undefined;
26
+ if (bound?.sessionId === event.sessionId)
27
+ return;
28
+ await this.rebindWorkspace(runtime, event.sessionId);
29
+ }
30
+ }
31
+ export default createRuntimeImplementation({
32
+ kind: 'runtime/subscription',
33
+ id: 'runtime-surface-mcp.subscriptions.on-session-bound-workspace',
34
+ implementation: SessionBoundWorkspaceHandler
35
+ });
36
+ //# sourceMappingURL=session.bound.workspace.impl.consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.bound.workspace.impl.consumer.js","sourceRoot":"","sources":["../../../src/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAE9G,OAAO,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAC;AAI7E,MAAM,OAAO,4BAA4B;IACxC,4EAA4E;IAC5E,+DAA+D;IACvD,eAAe,GAAoB,oCAAoC,CAAC;IAEhF,gFAAgF;IAChF,MAAM,CAAC,UAAU,CAAC,MAAuB;QACxC,MAAM,OAAO,GAAG,IAAI,4BAA4B,EAAE,CAAC;QACnD,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC;QACjC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAgB;QAC5B,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACzD,CAAC,CAAC,MAAM,8BAA8B,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC;QACb,IAAI,KAAK,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS;YAAE,OAAO;QACjD,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACD;AAED,eAAe,2BAA2B,CAAC;IAC1C,IAAI,EAAE,sBAAsB;IAC5B,EAAE,EAAE,8DAA8D;IAClE,cAAc,EAAE,4BAA4B;CAC5C,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The MCP surface's workspace-health signal as a runtime context.
3
+ *
4
+ * When the MCP host cannot resolve a workspace root confidently it anchors to a
5
+ * fallback, and agent-facing tools (session init, vibes-context) surface that
6
+ * to the operator. The signal is runtime-local data published by the surface
7
+ * at boot, never a write to the ambient environment: a host environment captures its env
8
+ * once, so a later process write would be invisible to it anyway.
9
+ */
10
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
11
+ export declare const MCP_WORKSPACE_WARNING_CONTEXT_ID: "mcp/workspace-warning";
12
+ /** Publish this runtime's workspace warning (null clears it). */
13
+ export declare function publishMcpWorkspaceWarning(runtime: RuntimeRef, warning: string | null): void;
14
+ /** The warning the MCP surface published for this runtime, or null. */
15
+ export declare function readMcpWorkspaceWarning(runtime: Pick<RuntimeRef, 'hasContext' | 'context'>): Promise<string | null>;
16
+ //# sourceMappingURL=workspace-warning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-warning.d.ts","sourceRoot":"","sources":["../../src/surface-mcp/workspace-warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI/E,eAAO,MAAM,gCAAgC,EAAG,uBAAgC,CAAC;AAWjF,iEAAiE;AACjE,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAW5F;AAED,uEAAuE;AACvE,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC,GACjD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The MCP surface's workspace-health signal as a runtime context.
3
+ *
4
+ * When the MCP host cannot resolve a workspace root confidently it anchors to a
5
+ * fallback, and agent-facing tools (session init, vibes-context) surface that
6
+ * to the operator. The signal is runtime-local data published by the surface
7
+ * at boot, never a write to the ambient environment: a host environment captures its env
8
+ * once, so a later process write would be invisible to it anyway.
9
+ */
10
+ import { createContextDescriptor } from '@vibesdotdev/kernel';
11
+ import { requireMcpClient } from "../client.js";
12
+ import * as z from 'zod/v4';
13
+ export const MCP_WORKSPACE_WARNING_CONTEXT_ID = 'mcp/workspace-warning';
14
+ const McpWorkspaceWarningSchema = z.string().nullable();
15
+ const mcpWorkspaceWarningContextDescriptor = createContextDescriptor({
16
+ id: MCP_WORKSPACE_WARNING_CONTEXT_ID,
17
+ description: 'Why the MCP host anchored its workspace to a fallback root, or null when the root resolved confidently.',
18
+ valueSchema: McpWorkspaceWarningSchema
19
+ });
20
+ /** Publish this runtime's workspace warning (null clears it). */
21
+ export function publishMcpWorkspaceWarning(runtime, warning) {
22
+ const client = requireMcpClient(runtime);
23
+ client.workspaceWarning = McpWorkspaceWarningSchema.parse(warning);
24
+ if (client.workspaceWarningContextRegistered)
25
+ return;
26
+ runtime.registerDescriptor('context', mcpWorkspaceWarningContextDescriptor);
27
+ runtime.registerLoader('context', MCP_WORKSPACE_WARNING_CONTEXT_ID, async () => ({
28
+ impl: {
29
+ provide: () => client.workspaceWarning
30
+ }
31
+ }));
32
+ client.workspaceWarningContextRegistered = true;
33
+ }
34
+ /** The warning the MCP surface published for this runtime, or null. */
35
+ export async function readMcpWorkspaceWarning(runtime) {
36
+ if (!runtime.hasContext(MCP_WORKSPACE_WARNING_CONTEXT_ID))
37
+ return null;
38
+ const warning = McpWorkspaceWarningSchema.parse(await runtime.context(MCP_WORKSPACE_WARNING_CONTEXT_ID));
39
+ if (warning === null)
40
+ return null;
41
+ const trimmed = warning.trim();
42
+ return trimmed.length > 0 ? trimmed : null;
43
+ }
44
+ //# sourceMappingURL=workspace-warning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-warning.js","sourceRoot":"","sources":["../../src/surface-mcp/workspace-warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,uBAAuB,EAAmB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,gCAAgC,GAAG,uBAAgC,CAAC;AAEjF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAExD,MAAM,oCAAoC,GAAG,uBAAuB,CAAC;IACpE,EAAE,EAAE,gCAAgC;IACpC,WAAW,EACV,yGAAyG;IAC1G,WAAW,EAAE,yBAAyB;CACtC,CAAC,CAAC;AAEH,iEAAiE;AACjE,MAAM,UAAU,0BAA0B,CAAC,OAAmB,EAAE,OAAsB;IACrF,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,gBAAgB,GAAG,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,iCAAiC;QAAE,OAAO;IACrD,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;IAC5E,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,gCAAgC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,EAAE;YACL,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB;SACtC;KACD,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,iCAAiC,GAAG,IAAI,CAAC;AACjD,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,OAAmD;IAEnD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gCAAgC,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACzG,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @vibesdotdev/mcp/svelte
3
+ *
4
+ * Designed Kit ToolCard for the MCP-owned `vibes-context` orientation tool.
5
+ * Importing the root does NOT register the widget; hosts import
6
+ * `@vibesdotdev/mcp/svelte/plugin` (or `/svelte/tool-widgets`) so Chat
7
+ * discovers the card through `tools/ui`.
8
+ */
9
+ export { default as mcpSveltePlugin } from './mcp-svelte.plugin.ts';
10
+ export { default as VibesContextToolCard } from './tool-widgets/VibesContextToolCard.svelte';
11
+ export { summarizeVibesContextPayload, workspaceBasename, type VibesContextSummary, type VibesContextSummaryRow, type VibesContextSummaryTone } from './tool-widgets/summary.ts';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svelte/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EACN,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @vibesdotdev/mcp/svelte
3
+ *
4
+ * Designed Kit ToolCard for the MCP-owned `vibes-context` orientation tool.
5
+ * Importing the root does NOT register the widget; hosts import
6
+ * `@vibesdotdev/mcp/svelte/plugin` (or `/svelte/tool-widgets`) so Chat
7
+ * discovers the card through `tools/ui`.
8
+ */
9
+ export { default as mcpSveltePlugin } from "./mcp-svelte.plugin.js";
10
+ export { default as VibesContextToolCard } from './tool-widgets/VibesContextToolCard.svelte';
11
+ export { summarizeVibesContextPayload, workspaceBasename } from "./tool-widgets/summary.js";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Runtime plugin (browser/chat parity).
3
+ *
4
+ * `vibes-context` is MCP-owned. Its designed Kit ToolCard lives here so Chat
5
+ * hosts discover it through `tools/ui`, not a host-local card table. The MCP
6
+ * protocol plugin (`./plugin`) must not import this graph.
7
+ */
8
+ export declare const mcpSveltePlugin: import("@vibesdotdev/kernel").RuntimePlugin;
9
+ export default mcpSveltePlugin;
10
+ //# sourceMappingURL=mcp-svelte.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-svelte.plugin.d.ts","sourceRoot":"","sources":["../../src/svelte/mcp-svelte.plugin.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,6CAW1B,CAAC;AAEH,eAAe,eAAe,CAAC"}