@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.
- package/LICENSE +18 -0
- package/README.md +96 -2
- package/dist/adapters/auth-middleware.d.ts +68 -0
- package/dist/adapters/auth-middleware.d.ts.map +1 -0
- package/dist/adapters/auth-middleware.js +161 -0
- package/dist/adapters/auth-middleware.js.map +1 -0
- package/dist/adapters/compatibility.d.ts +20 -0
- package/dist/adapters/compatibility.d.ts.map +1 -0
- package/dist/adapters/compatibility.js +57 -0
- package/dist/adapters/compatibility.js.map +1 -0
- package/dist/adapters/host-context.consumer.d.ts +12 -0
- package/dist/adapters/host-context.consumer.d.ts.map +1 -0
- package/dist/adapters/host-context.consumer.js +10 -0
- package/dist/adapters/host-context.consumer.js.map +1 -0
- package/dist/adapters/host-context.d.ts +32 -0
- package/dist/adapters/host-context.d.ts.map +1 -0
- package/dist/adapters/host-context.js +17 -0
- package/dist/adapters/host-context.js.map +1 -0
- package/dist/adapters/index.d.ts +12 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +13 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/mcp/ambient-envelope.d.ts +26 -0
- package/dist/adapters/mcp/ambient-envelope.d.ts.map +1 -0
- package/dist/adapters/mcp/ambient-envelope.js +70 -0
- package/dist/adapters/mcp/ambient-envelope.js.map +1 -0
- package/dist/adapters/mcp/catalog.d.ts +15 -0
- package/dist/adapters/mcp/catalog.d.ts.map +1 -0
- package/dist/adapters/mcp/catalog.js +26 -0
- package/dist/adapters/mcp/catalog.js.map +1 -0
- package/dist/adapters/mcp/connection-identity.d.ts +81 -0
- package/dist/adapters/mcp/connection-identity.d.ts.map +1 -0
- package/dist/adapters/mcp/connection-identity.js +114 -0
- package/dist/adapters/mcp/connection-identity.js.map +1 -0
- package/dist/adapters/mcp/context.d.ts +137 -0
- package/dist/adapters/mcp/context.d.ts.map +1 -0
- package/dist/adapters/mcp/context.js +230 -0
- package/dist/adapters/mcp/context.js.map +1 -0
- package/dist/adapters/mcp/formatters.d.ts +41 -0
- package/dist/adapters/mcp/formatters.d.ts.map +1 -0
- package/dist/adapters/mcp/formatters.js +102 -0
- package/dist/adapters/mcp/formatters.js.map +1 -0
- package/dist/adapters/mcp/from-api-endpoint.d.ts +59 -0
- package/dist/adapters/mcp/from-api-endpoint.d.ts.map +1 -0
- package/dist/adapters/mcp/from-api-endpoint.js +206 -0
- package/dist/adapters/mcp/from-api-endpoint.js.map +1 -0
- package/dist/adapters/mcp/generation-contract.d.ts +5 -0
- package/dist/adapters/mcp/generation-contract.d.ts.map +1 -0
- package/dist/adapters/mcp/generation-contract.js +34 -0
- package/dist/adapters/mcp/generation-contract.js.map +1 -0
- package/dist/adapters/mcp/host-registry.d.ts +159 -0
- package/dist/adapters/mcp/host-registry.d.ts.map +1 -0
- package/dist/adapters/mcp/host-registry.js +237 -0
- package/dist/adapters/mcp/host-registry.js.map +1 -0
- package/dist/adapters/mcp/index.d.ts +12 -0
- package/dist/adapters/mcp/index.d.ts.map +1 -0
- package/dist/adapters/mcp/index.js +17 -0
- package/dist/adapters/mcp/index.js.map +1 -0
- package/dist/adapters/mcp/isolated-notice.d.ts +111 -0
- package/dist/adapters/mcp/isolated-notice.d.ts.map +1 -0
- package/dist/adapters/mcp/isolated-notice.js +217 -0
- package/dist/adapters/mcp/isolated-notice.js.map +1 -0
- package/dist/adapters/mcp/json-rpc.d.ts +16 -0
- package/dist/adapters/mcp/json-rpc.d.ts.map +1 -0
- package/dist/adapters/mcp/json-rpc.js +32 -0
- package/dist/adapters/mcp/json-rpc.js.map +1 -0
- package/dist/adapters/mcp/local-origin.d.ts +18 -0
- package/dist/adapters/mcp/local-origin.d.ts.map +1 -0
- package/dist/adapters/mcp/local-origin.js +37 -0
- package/dist/adapters/mcp/local-origin.js.map +1 -0
- package/dist/adapters/mcp/logging/mcp-cloud.descriptor.d.ts +11 -0
- package/dist/adapters/mcp/logging/mcp-cloud.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/logging/mcp-cloud.descriptor.js +21 -0
- package/dist/adapters/mcp/logging/mcp-cloud.descriptor.js.map +1 -0
- package/dist/adapters/mcp/logging/mcp-http.descriptor.d.ts +10 -0
- package/dist/adapters/mcp/logging/mcp-http.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/logging/mcp-http.descriptor.js +20 -0
- package/dist/adapters/mcp/logging/mcp-http.descriptor.js.map +1 -0
- package/dist/adapters/mcp/logging/mcp-server.descriptor.d.ts +9 -0
- package/dist/adapters/mcp/logging/mcp-server.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/logging/mcp-server.descriptor.js +25 -0
- package/dist/adapters/mcp/logging/mcp-server.descriptor.js.map +1 -0
- package/dist/adapters/mcp/logging/mcp-stdio.descriptor.d.ts +10 -0
- package/dist/adapters/mcp/logging/mcp-stdio.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/logging/mcp-stdio.descriptor.js +20 -0
- package/dist/adapters/mcp/logging/mcp-stdio.descriptor.js.map +1 -0
- package/dist/adapters/mcp/mcp-http-session.d.ts +140 -0
- package/dist/adapters/mcp/mcp-http-session.d.ts.map +1 -0
- package/dist/adapters/mcp/mcp-http-session.js +797 -0
- package/dist/adapters/mcp/mcp-http-session.js.map +1 -0
- package/dist/adapters/mcp/mcp-wire-name.d.ts +9 -0
- package/dist/adapters/mcp/mcp-wire-name.d.ts.map +1 -0
- package/dist/adapters/mcp/mcp-wire-name.js +52 -0
- package/dist/adapters/mcp/mcp-wire-name.js.map +1 -0
- package/dist/adapters/mcp/projection-doctor.d.ts +101 -0
- package/dist/adapters/mcp/projection-doctor.d.ts.map +1 -0
- package/dist/adapters/mcp/projection-doctor.js +285 -0
- package/dist/adapters/mcp/projection-doctor.js.map +1 -0
- package/dist/adapters/mcp/projection.d.ts +36 -0
- package/dist/adapters/mcp/projection.d.ts.map +1 -0
- package/dist/adapters/mcp/projection.js +136 -0
- package/dist/adapters/mcp/projection.js.map +1 -0
- package/dist/adapters/mcp/prompts/continuity-wake.prompt.descriptor.d.ts +113 -0
- package/dist/adapters/mcp/prompts/continuity-wake.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/continuity-wake.prompt.descriptor.js +15 -0
- package/dist/adapters/mcp/prompts/continuity-wake.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/empty-tool-kind.prompt.descriptor.d.ts +113 -0
- package/dist/adapters/mcp/prompts/empty-tool-kind.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/empty-tool-kind.prompt.descriptor.js +18 -0
- package/dist/adapters/mcp/prompts/empty-tool-kind.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/index.d.ts +113 -0
- package/dist/adapters/mcp/prompts/index.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/index.js +24 -0
- package/dist/adapters/mcp/prompts/index.js.map +1 -0
- package/dist/adapters/mcp/prompts/isolated-runtime.prompt.descriptor.d.ts +114 -0
- package/dist/adapters/mcp/prompts/isolated-runtime.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/isolated-runtime.prompt.descriptor.js +37 -0
- package/dist/adapters/mcp/prompts/isolated-runtime.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/local-tools.prompt.descriptor.d.ts +113 -0
- package/dist/adapters/mcp/prompts/local-tools.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/local-tools.prompt.descriptor.js +20 -0
- package/dist/adapters/mcp/prompts/local-tools.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/max-tools.prompt.descriptor.d.ts +113 -0
- package/dist/adapters/mcp/prompts/max-tools.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/max-tools.prompt.descriptor.js +20 -0
- package/dist/adapters/mcp/prompts/max-tools.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/private-runtime.prompt.descriptor.d.ts +114 -0
- package/dist/adapters/mcp/prompts/private-runtime.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/private-runtime.prompt.descriptor.js +21 -0
- package/dist/adapters/mcp/prompts/private-runtime.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/registration-failure.prompt.descriptor.d.ts +113 -0
- package/dist/adapters/mcp/prompts/registration-failure.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/registration-failure.prompt.descriptor.js +19 -0
- package/dist/adapters/mcp/prompts/registration-failure.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/required-checklist.prompt.descriptor.d.ts +113 -0
- package/dist/adapters/mcp/prompts/required-checklist.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/required-checklist.prompt.descriptor.js +18 -0
- package/dist/adapters/mcp/prompts/required-checklist.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/required-tools-missing.prompt.descriptor.d.ts +113 -0
- package/dist/adapters/mcp/prompts/required-tools-missing.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/required-tools-missing.prompt.descriptor.js +19 -0
- package/dist/adapters/mcp/prompts/required-tools-missing.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/prompts/unknown-client.prompt.descriptor.d.ts +113 -0
- package/dist/adapters/mcp/prompts/unknown-client.prompt.descriptor.d.ts.map +1 -0
- package/dist/adapters/mcp/prompts/unknown-client.prompt.descriptor.js +18 -0
- package/dist/adapters/mcp/prompts/unknown-client.prompt.descriptor.js.map +1 -0
- package/dist/adapters/mcp/request-context.d.ts +28 -0
- package/dist/adapters/mcp/request-context.d.ts.map +1 -0
- package/dist/adapters/mcp/request-context.js +49 -0
- package/dist/adapters/mcp/request-context.js.map +1 -0
- package/dist/adapters/mcp/roster-announcer.d.ts +3 -0
- package/dist/adapters/mcp/roster-announcer.d.ts.map +1 -0
- package/dist/adapters/mcp/roster-announcer.js +22 -0
- package/dist/adapters/mcp/roster-announcer.js.map +1 -0
- package/dist/adapters/mcp/sampling-context.d.ts +12 -0
- package/dist/adapters/mcp/sampling-context.d.ts.map +1 -0
- package/dist/adapters/mcp/sampling-context.js +30 -0
- package/dist/adapters/mcp/sampling-context.js.map +1 -0
- package/dist/adapters/mcp/sampling.d.ts +17 -0
- package/dist/adapters/mcp/sampling.d.ts.map +1 -0
- package/dist/adapters/mcp/sampling.js +43 -0
- package/dist/adapters/mcp/sampling.js.map +1 -0
- package/dist/adapters/mcp/schemas/index.d.ts +37 -0
- package/dist/adapters/mcp/schemas/index.d.ts.map +1 -0
- package/dist/adapters/mcp/schemas/index.js +5 -0
- package/dist/adapters/mcp/schemas/index.js.map +1 -0
- package/dist/adapters/mcp/schemas/tool-selection.d.ts +12 -0
- package/dist/adapters/mcp/schemas/tool-selection.d.ts.map +1 -0
- package/dist/adapters/mcp/schemas/tool-selection.js +2 -0
- package/dist/adapters/mcp/schemas/tool-selection.js.map +1 -0
- package/dist/adapters/mcp/serve-identity.d.ts +64 -0
- package/dist/adapters/mcp/serve-identity.d.ts.map +1 -0
- package/dist/adapters/mcp/serve-identity.js +220 -0
- package/dist/adapters/mcp/serve-identity.js.map +1 -0
- package/dist/adapters/mcp/server.consumer.d.ts +5 -0
- package/dist/adapters/mcp/server.consumer.d.ts.map +1 -0
- package/dist/adapters/mcp/server.consumer.js +300 -0
- package/dist/adapters/mcp/server.consumer.js.map +1 -0
- package/dist/adapters/mcp/server.d.ts +56 -0
- package/dist/adapters/mcp/server.d.ts.map +1 -0
- package/dist/adapters/mcp/server.js +1423 -0
- package/dist/adapters/mcp/server.js.map +1 -0
- package/dist/adapters/mcp/stale-body.consumer.d.ts +85 -0
- package/dist/adapters/mcp/stale-body.consumer.d.ts.map +1 -0
- package/dist/adapters/mcp/stale-body.consumer.js +183 -0
- package/dist/adapters/mcp/stale-body.consumer.js.map +1 -0
- package/dist/adapters/mcp/startup-refusal.d.ts +8 -0
- package/dist/adapters/mcp/startup-refusal.d.ts.map +1 -0
- package/dist/adapters/mcp/startup-refusal.js +141 -0
- package/dist/adapters/mcp/startup-refusal.js.map +1 -0
- package/dist/adapters/mcp/stdio-relay.d.ts +232 -0
- package/dist/adapters/mcp/stdio-relay.d.ts.map +1 -0
- package/dist/adapters/mcp/stdio-relay.js +1169 -0
- package/dist/adapters/mcp/stdio-relay.js.map +1 -0
- package/dist/adapters/mcp/tool-audit-live.d.ts +109 -0
- package/dist/adapters/mcp/tool-audit-live.d.ts.map +1 -0
- package/dist/adapters/mcp/tool-audit-live.js +538 -0
- package/dist/adapters/mcp/tool-audit-live.js.map +1 -0
- package/dist/adapters/mcp/tool-audit.d.ts +44 -0
- package/dist/adapters/mcp/tool-audit.d.ts.map +1 -0
- package/dist/adapters/mcp/tool-audit.js +168 -0
- package/dist/adapters/mcp/tool-audit.js.map +1 -0
- package/dist/adapters/mcp/tool-catalog.d.ts +179 -0
- package/dist/adapters/mcp/tool-catalog.d.ts.map +1 -0
- package/dist/adapters/mcp/tool-catalog.js +330 -0
- package/dist/adapters/mcp/tool-catalog.js.map +1 -0
- package/dist/adapters/mcp/tool-selection.d.ts +77 -0
- package/dist/adapters/mcp/tool-selection.d.ts.map +1 -0
- package/dist/adapters/mcp/tool-selection.js +266 -0
- package/dist/adapters/mcp/tool-selection.js.map +1 -0
- package/dist/adapters/mcp/transport-registry.d.ts +5 -0
- package/dist/adapters/mcp/transport-registry.d.ts.map +1 -0
- package/dist/adapters/mcp/transport-registry.js +13 -0
- package/dist/adapters/mcp/transport-registry.js.map +1 -0
- package/dist/adapters/mcp/trust-tag.d.ts +69 -0
- package/dist/adapters/mcp/trust-tag.d.ts.map +1 -0
- package/dist/adapters/mcp/trust-tag.js +120 -0
- package/dist/adapters/mcp/trust-tag.js.map +1 -0
- package/dist/adapters/mcp/vibes-types.d.ts +115 -0
- package/dist/adapters/mcp/vibes-types.d.ts.map +1 -0
- package/dist/adapters/mcp/vibes-types.js +7 -0
- package/dist/adapters/mcp/vibes-types.js.map +1 -0
- package/dist/adapters/mcp/web-handler.d.ts +49 -0
- package/dist/adapters/mcp/web-handler.d.ts.map +1 -0
- package/dist/adapters/mcp/web-handler.js +129 -0
- package/dist/adapters/mcp/web-handler.js.map +1 -0
- package/dist/adapters/session-id.d.ts +3 -0
- package/dist/adapters/session-id.d.ts.map +1 -0
- package/dist/adapters/session-id.js +42 -0
- package/dist/adapters/session-id.js.map +1 -0
- package/dist/adapters/transport-bun-http.d.ts +39 -0
- package/dist/adapters/transport-bun-http.d.ts.map +1 -0
- package/dist/adapters/transport-bun-http.js +42 -0
- package/dist/adapters/transport-bun-http.js.map +1 -0
- package/dist/adapters/types.d.ts +135 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/web-compatibility.d.ts +6 -0
- package/dist/adapters/web-compatibility.d.ts.map +1 -0
- package/dist/adapters/web-compatibility.js +13 -0
- package/dist/adapters/web-compatibility.js.map +1 -0
- package/dist/adapters/zod-mcp.d.ts +139 -0
- package/dist/adapters/zod-mcp.d.ts.map +1 -0
- package/dist/adapters/zod-mcp.js +617 -0
- package/dist/adapters/zod-mcp.js.map +1 -0
- package/dist/cli/mcp/audit/dev.audit.tools.descriptor.d.ts +15 -0
- package/dist/cli/mcp/audit/dev.audit.tools.descriptor.d.ts.map +1 -0
- package/dist/cli/mcp/audit/dev.audit.tools.descriptor.js +58 -0
- package/dist/cli/mcp/audit/dev.audit.tools.descriptor.js.map +1 -0
- package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.d.ts +6 -0
- package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.js +180 -0
- package/dist/cli/mcp/audit/dev.audit.tools.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.restart.descriptor.d.ts +22 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.restart.descriptor.d.ts.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.restart.descriptor.js +19 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.restart.descriptor.js.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.restart.impl.consumer.d.ts +23 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.restart.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.restart.impl.consumer.js +41 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.restart.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.serve.descriptor.d.ts +75 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.serve.descriptor.d.ts.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.serve.descriptor.js +84 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.serve.descriptor.js.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.start.descriptor.d.ts +35 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.start.descriptor.d.ts.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.start.descriptor.js +28 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.start.descriptor.js.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.start.impl.consumer.d.ts +11 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.start.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.start.impl.consumer.js +47 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.start.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.stop.descriptor.d.ts +18 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.stop.descriptor.d.ts.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.stop.descriptor.js +18 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.stop.descriptor.js.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.stop.impl.consumer.d.ts +12 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.stop.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.stop.impl.consumer.js +17 -0
- package/dist/cli/mcp/lifecycle/dev.mcp.stop.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.install.descriptor.d.ts +41 -0
- package/dist/cli/mcp/management/dev.mcp.install.descriptor.d.ts.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.install.descriptor.js +49 -0
- package/dist/cli/mcp/management/dev.mcp.install.descriptor.js.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.install.impl.consumer.d.ts +16 -0
- package/dist/cli/mcp/management/dev.mcp.install.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.install.impl.consumer.js +244 -0
- package/dist/cli/mcp/management/dev.mcp.install.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.list.descriptor.d.ts +22 -0
- package/dist/cli/mcp/management/dev.mcp.list.descriptor.d.ts.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.list.descriptor.js +24 -0
- package/dist/cli/mcp/management/dev.mcp.list.descriptor.js.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.list.impl.consumer.d.ts +29 -0
- package/dist/cli/mcp/management/dev.mcp.list.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.list.impl.consumer.js +127 -0
- package/dist/cli/mcp/management/dev.mcp.list.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.status.descriptor.d.ts +48 -0
- package/dist/cli/mcp/management/dev.mcp.status.descriptor.d.ts.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.status.descriptor.js +56 -0
- package/dist/cli/mcp/management/dev.mcp.status.descriptor.js.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.status.impl.consumer.d.ts +9 -0
- package/dist/cli/mcp/management/dev.mcp.status.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/management/dev.mcp.status.impl.consumer.js +253 -0
- package/dist/cli/mcp/management/dev.mcp.status.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/management/install-helpers.d.ts +26 -0
- package/dist/cli/mcp/management/install-helpers.d.ts.map +1 -0
- package/dist/cli/mcp/management/install-helpers.js +95 -0
- package/dist/cli/mcp/management/install-helpers.js.map +1 -0
- package/dist/cli/mcp/management/process-audit.impl.consumer.d.ts +38 -0
- package/dist/cli/mcp/management/process-audit.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/management/process-audit.impl.consumer.js +145 -0
- package/dist/cli/mcp/management/process-audit.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/management/rules-debt-summary.impl.consumer.d.ts +21 -0
- package/dist/cli/mcp/management/rules-debt-summary.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/management/rules-debt-summary.impl.consumer.js +82 -0
- package/dist/cli/mcp/management/rules-debt-summary.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/management/status-doctor.d.ts +22 -0
- package/dist/cli/mcp/management/status-doctor.d.ts.map +1 -0
- package/dist/cli/mcp/management/status-doctor.js +153 -0
- package/dist/cli/mcp/management/status-doctor.js.map +1 -0
- package/dist/cli/mcp/schemas/status-doctor.d.ts +75 -0
- package/dist/cli/mcp/schemas/status-doctor.d.ts.map +1 -0
- package/dist/cli/mcp/schemas/status-doctor.js +2 -0
- package/dist/cli/mcp/schemas/status-doctor.js.map +1 -0
- package/dist/cli/mcp/support/host-port.d.ts +31 -0
- package/dist/cli/mcp/support/host-port.d.ts.map +1 -0
- package/dist/cli/mcp/support/host-port.js +31 -0
- package/dist/cli/mcp/support/host-port.js.map +1 -0
- package/dist/cli/mcp/support/server-process.impl.consumer.d.ts +24 -0
- package/dist/cli/mcp/support/server-process.impl.consumer.d.ts.map +1 -0
- package/dist/cli/mcp/support/server-process.impl.consumer.js +86 -0
- package/dist/cli/mcp/support/server-process.impl.consumer.js.map +1 -0
- package/dist/cli/mcp/support/status-doctor.d.ts +33 -0
- package/dist/cli/mcp/support/status-doctor.d.ts.map +1 -0
- package/dist/cli/mcp/support/status-doctor.js +104 -0
- package/dist/cli/mcp/support/status-doctor.js.map +1 -0
- package/dist/cli/print.d.ts +12 -0
- package/dist/cli/print.d.ts.map +1 -0
- package/dist/cli/print.js +25 -0
- package/dist/cli/print.js.map +1 -0
- package/dist/cli/surface-mcp/client-connection-identity.consumer.d.ts +19 -0
- package/dist/cli/surface-mcp/client-connection-identity.consumer.d.ts.map +1 -0
- package/dist/cli/surface-mcp/client-connection-identity.consumer.js +53 -0
- package/dist/cli/surface-mcp/client-connection-identity.consumer.js.map +1 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.cloud.d.ts +7 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.cloud.d.ts.map +1 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.cloud.js +345 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.cloud.js.map +1 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.d.ts +12 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.d.ts.map +1 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.js +657 -0
- package/dist/cli/surface-mcp/dev.mcp.serve.impl.consumer.js.map +1 -0
- package/dist/cli/surface-mcp/local-dev-flag.d.ts +24 -0
- package/dist/cli/surface-mcp/local-dev-flag.d.ts.map +1 -0
- package/dist/cli/surface-mcp/local-dev-flag.js +37 -0
- package/dist/cli/surface-mcp/local-dev-flag.js.map +1 -0
- package/dist/cli/surface-mcp/shared-host-startup.d.ts +14 -0
- package/dist/cli/surface-mcp/shared-host-startup.d.ts.map +1 -0
- package/dist/cli/surface-mcp/shared-host-startup.js +46 -0
- package/dist/cli/surface-mcp/shared-host-startup.js.map +1 -0
- package/dist/cli/surface-mcp/stdio-relay-transport.d.ts +2 -0
- package/dist/cli/surface-mcp/stdio-relay-transport.d.ts.map +1 -0
- package/dist/cli/surface-mcp/stdio-relay-transport.js +21 -0
- package/dist/cli/surface-mcp/stdio-relay-transport.js.map +1 -0
- package/dist/cli/surface-mcp/teardown.d.ts +17 -0
- package/dist/cli/surface-mcp/teardown.d.ts.map +1 -0
- package/dist/cli/surface-mcp/teardown.js +28 -0
- package/dist/cli/surface-mcp/teardown.js.map +1 -0
- package/dist/client.d.ts +49 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +131 -0
- package/dist/client.js.map +1 -0
- package/dist/config/load.d.ts +6 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +18 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/mcp.config.descriptor.d.ts +108 -0
- package/dist/config/mcp.config.descriptor.d.ts.map +1 -0
- package/dist/config/mcp.config.descriptor.js +63 -0
- package/dist/config/mcp.config.descriptor.js.map +1 -0
- package/dist/docs/mcp.docs.descriptor.d.ts +4 -0
- package/dist/docs/mcp.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/mcp.docs.descriptor.js +44 -0
- package/dist/docs/mcp.docs.descriptor.js.map +1 -0
- package/dist/docs/prompts.docs.descriptor.d.ts +4 -0
- package/dist/docs/prompts.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/prompts.docs.descriptor.js +130 -0
- package/dist/docs/prompts.docs.descriptor.js.map +1 -0
- package/dist/docs/resources.docs.descriptor.d.ts +4 -0
- package/dist/docs/resources.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/resources.docs.descriptor.js +390 -0
- package/dist/docs/resources.docs.descriptor.js.map +1 -0
- package/dist/docs/server.docs.descriptor.d.ts +4 -0
- package/dist/docs/server.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/server.docs.descriptor.js +383 -0
- package/dist/docs/server.docs.descriptor.js.map +1 -0
- package/dist/docs/tools.docs.descriptor.d.ts +4 -0
- package/dist/docs/tools.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/tools.docs.descriptor.js +316 -0
- package/dist/docs/tools.docs.descriptor.js.map +1 -0
- package/dist/harness-identity.descriptors.d.ts +11 -0
- package/dist/harness-identity.descriptors.d.ts.map +1 -0
- package/dist/harness-identity.descriptors.js +41 -0
- package/dist/harness-identity.descriptors.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/kinds/harness-identity.kind.d.ts +3 -0
- package/dist/kinds/harness-identity.kind.d.ts.map +1 -0
- package/dist/kinds/harness-identity.kind.js +16 -0
- package/dist/kinds/harness-identity.kind.js.map +1 -0
- package/dist/kinds/sampling.kind.d.ts +15 -0
- package/dist/kinds/sampling.kind.d.ts.map +1 -0
- package/dist/kinds/sampling.kind.js +24 -0
- package/dist/kinds/sampling.kind.js.map +1 -0
- package/dist/lifecycle-repeat.d.ts +23 -0
- package/dist/lifecycle-repeat.d.ts.map +1 -0
- package/dist/lifecycle-repeat.js +21 -0
- package/dist/lifecycle-repeat.js.map +1 -0
- package/dist/mcp/dev.mcp.descriptor.d.ts +18 -0
- package/dist/mcp/dev.mcp.descriptor.d.ts.map +1 -0
- package/dist/mcp/dev.mcp.descriptor.js +18 -0
- package/dist/mcp/dev.mcp.descriptor.js.map +1 -0
- package/dist/mcp/index.d.ts +20 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +19 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/mcp.plugin.d.ts +9 -0
- package/dist/mcp/mcp.plugin.d.ts.map +1 -0
- package/dist/mcp/mcp.plugin.js +59 -0
- package/dist/mcp/mcp.plugin.js.map +1 -0
- package/dist/mcp-client.plugin.d.ts +4 -0
- package/dist/mcp-client.plugin.d.ts.map +1 -0
- package/dist/mcp-client.plugin.js +13 -0
- package/dist/mcp-client.plugin.js.map +1 -0
- package/dist/mcp.client.descriptor.d.ts +27 -0
- package/dist/mcp.client.descriptor.d.ts.map +1 -0
- package/dist/mcp.client.descriptor.js +7 -0
- package/dist/mcp.client.descriptor.js.map +1 -0
- package/dist/mcp.consumer.plugin.d.ts +4 -0
- package/dist/mcp.consumer.plugin.d.ts.map +1 -0
- package/dist/mcp.consumer.plugin.js +19 -0
- package/dist/mcp.consumer.plugin.js.map +1 -0
- package/dist/mcp.runtime.plugin.d.ts +10 -0
- package/dist/mcp.runtime.plugin.d.ts.map +1 -0
- package/dist/mcp.runtime.plugin.js +40 -0
- package/dist/mcp.runtime.plugin.js.map +1 -0
- package/dist/root-state.d.ts +3 -0
- package/dist/root-state.d.ts.map +1 -0
- package/dist/root-state.js +3 -0
- package/dist/root-state.js.map +1 -0
- package/dist/schemas/api-endpoint.d.ts +12 -0
- package/dist/schemas/api-endpoint.d.ts.map +1 -0
- package/dist/schemas/api-endpoint.js +11 -0
- package/dist/schemas/api-endpoint.js.map +1 -0
- package/dist/schemas/audit.d.ts +172 -0
- package/dist/schemas/audit.d.ts.map +1 -0
- package/dist/schemas/audit.js +82 -0
- package/dist/schemas/audit.js.map +1 -0
- package/dist/schemas/harness-identity.d.ts +41 -0
- package/dist/schemas/harness-identity.d.ts.map +1 -0
- package/dist/schemas/harness-identity.js +19 -0
- package/dist/schemas/harness-identity.js.map +1 -0
- package/dist/schemas/host-adapters.d.ts +14 -0
- package/dist/schemas/host-adapters.d.ts.map +1 -0
- package/dist/schemas/host-adapters.js +7 -0
- package/dist/schemas/host-adapters.js.map +1 -0
- package/dist/schemas/projection.d.ts +10 -0
- package/dist/schemas/projection.d.ts.map +1 -0
- package/dist/schemas/projection.js +9 -0
- package/dist/schemas/projection.js.map +1 -0
- package/dist/schemas/tool.d.ts +8 -0
- package/dist/schemas/tool.d.ts.map +1 -0
- package/dist/schemas/tool.js +8 -0
- package/dist/schemas/tool.js.map +1 -0
- package/dist/surface-mcp/build-provenance.d.ts +67 -0
- package/dist/surface-mcp/build-provenance.d.ts.map +1 -0
- package/dist/surface-mcp/build-provenance.js +287 -0
- package/dist/surface-mcp/build-provenance.js.map +1 -0
- package/dist/surface-mcp/crash-reporting.d.ts +28 -0
- package/dist/surface-mcp/crash-reporting.d.ts.map +1 -0
- package/dist/surface-mcp/crash-reporting.js +41 -0
- package/dist/surface-mcp/crash-reporting.js.map +1 -0
- package/dist/surface-mcp/executable-freshness-watch.d.ts +89 -0
- package/dist/surface-mcp/executable-freshness-watch.d.ts.map +1 -0
- package/dist/surface-mcp/executable-freshness-watch.js +225 -0
- package/dist/surface-mcp/executable-freshness-watch.js.map +1 -0
- package/dist/surface-mcp/host-provenance-banner.d.ts +49 -0
- package/dist/surface-mcp/host-provenance-banner.d.ts.map +1 -0
- package/dist/surface-mcp/host-provenance-banner.js +135 -0
- package/dist/surface-mcp/host-provenance-banner.js.map +1 -0
- package/dist/surface-mcp/index.d.ts +51 -0
- package/dist/surface-mcp/index.d.ts.map +1 -0
- package/dist/surface-mcp/index.js +92 -0
- package/dist/surface-mcp/index.js.map +1 -0
- package/dist/surface-mcp/local-tools-bootstrap.d.ts +36 -0
- package/dist/surface-mcp/local-tools-bootstrap.d.ts.map +1 -0
- package/dist/surface-mcp/local-tools-bootstrap.js +43 -0
- package/dist/surface-mcp/local-tools-bootstrap.js.map +1 -0
- package/dist/surface-mcp/mcp-serve.plugin.d.ts +9 -0
- package/dist/surface-mcp/mcp-serve.plugin.d.ts.map +1 -0
- package/dist/surface-mcp/mcp-serve.plugin.js +24 -0
- package/dist/surface-mcp/mcp-serve.plugin.js.map +1 -0
- package/dist/surface-mcp/project-config.d.ts +35 -0
- package/dist/surface-mcp/project-config.d.ts.map +1 -0
- package/dist/surface-mcp/project-config.js +74 -0
- package/dist/surface-mcp/project-config.js.map +1 -0
- package/dist/surface-mcp/serve-lifecycle.d.ts +102 -0
- package/dist/surface-mcp/serve-lifecycle.d.ts.map +1 -0
- package/dist/surface-mcp/serve-lifecycle.js +343 -0
- package/dist/surface-mcp/serve-lifecycle.js.map +1 -0
- package/dist/surface-mcp/session-bridge.d.ts +18 -0
- package/dist/surface-mcp/session-bridge.d.ts.map +1 -0
- package/dist/surface-mcp/session-bridge.js +26 -0
- package/dist/surface-mcp/session-bridge.js.map +1 -0
- package/dist/surface-mcp/subscriptions/session.bound.workspace.descriptor.d.ts +13 -0
- package/dist/surface-mcp/subscriptions/session.bound.workspace.descriptor.d.ts.map +1 -0
- package/dist/surface-mcp/subscriptions/session.bound.workspace.descriptor.js +13 -0
- package/dist/surface-mcp/subscriptions/session.bound.workspace.descriptor.js.map +1 -0
- package/dist/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.d.ts +11 -0
- package/dist/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.d.ts.map +1 -0
- package/dist/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.js +36 -0
- package/dist/surface-mcp/subscriptions/session.bound.workspace.impl.consumer.js.map +1 -0
- package/dist/surface-mcp/workspace-warning.d.ts +16 -0
- package/dist/surface-mcp/workspace-warning.d.ts.map +1 -0
- package/dist/surface-mcp/workspace-warning.js +44 -0
- package/dist/surface-mcp/workspace-warning.js.map +1 -0
- package/dist/svelte/index.d.ts +12 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +11 -0
- package/dist/svelte/mcp-svelte.plugin.d.ts +10 -0
- package/dist/svelte/mcp-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/mcp-svelte.plugin.js +24 -0
- package/dist/svelte/tool-widgets/VibesContextToolCard.svelte +91 -0
- package/dist/svelte/tool-widgets/VibesContextToolCard.svelte.d.ts +9 -0
- package/dist/svelte/tool-widgets/VibesContextToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.d.ts +3 -0
- package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.js +2 -0
- package/dist/svelte/tool-widgets/summary.d.ts +48 -0
- package/dist/svelte/tool-widgets/summary.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/summary.js +117 -0
- package/dist/tools/vibes-context/schemas.d.ts +85 -0
- package/dist/tools/vibes-context/schemas.d.ts.map +1 -0
- package/dist/tools/vibes-context/schemas.js +76 -0
- package/dist/tools/vibes-context/schemas.js.map +1 -0
- package/dist/tools/vibes-context/vibes-context.descriptor.d.ts +4 -0
- package/dist/tools/vibes-context/vibes-context.descriptor.d.ts.map +1 -0
- package/dist/tools/vibes-context/vibes-context.descriptor.js +30 -0
- package/dist/tools/vibes-context/vibes-context.descriptor.js.map +1 -0
- package/dist/tools/vibes-context/vibes-context.impl.d.ts +34 -0
- package/dist/tools/vibes-context/vibes-context.impl.d.ts.map +1 -0
- package/dist/tools/vibes-context/vibes-context.impl.js +207 -0
- package/dist/tools/vibes-context/vibes-context.impl.js.map +1 -0
- package/dist/tui/index.d.ts +4 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +4 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/mcp-health.d.ts +7 -0
- package/dist/tui/mcp-health.d.ts.map +1 -0
- package/dist/tui/mcp-health.js +16 -0
- package/dist/tui/mcp-health.js.map +1 -0
- package/dist/tui/mcp-tui.plugin.d.ts +3 -0
- package/dist/tui/mcp-tui.plugin.d.ts.map +1 -0
- package/dist/tui/mcp-tui.plugin.js +18 -0
- package/dist/tui/mcp-tui.plugin.js.map +1 -0
- package/dist/tui/mcp.tui-app.descriptor.d.ts +4 -0
- package/dist/tui/mcp.tui-app.descriptor.d.ts.map +1 -0
- package/dist/tui/mcp.tui-app.descriptor.js +19 -0
- package/dist/tui/mcp.tui-app.descriptor.js.map +1 -0
- package/dist/tui/mcp.tui-app.impl.consumer.d.ts +4 -0
- package/dist/tui/mcp.tui-app.impl.consumer.d.ts.map +1 -0
- package/dist/tui/mcp.tui-app.impl.consumer.js +48 -0
- package/dist/tui/mcp.tui-app.impl.consumer.js.map +1 -0
- package/dist/tui/mcp.tui-state.descriptor.d.ts +8 -0
- package/dist/tui/mcp.tui-state.descriptor.d.ts.map +1 -0
- package/dist/tui/mcp.tui-state.descriptor.js +37 -0
- package/dist/tui/mcp.tui-state.descriptor.js.map +1 -0
- package/dist/tui/mcp.tui-state.impl.consumer.d.ts +5 -0
- package/dist/tui/mcp.tui-state.impl.consumer.d.ts.map +1 -0
- package/dist/tui/mcp.tui-state.impl.consumer.js +97 -0
- package/dist/tui/mcp.tui-state.impl.consumer.js.map +1 -0
- package/dist/tui/mcp.tui-state.key.d.ts +45 -0
- package/dist/tui/mcp.tui-state.key.d.ts.map +1 -0
- package/dist/tui/mcp.tui-state.key.js +25 -0
- package/dist/tui/mcp.tui-state.key.js.map +1 -0
- package/dist/types.core.d.ts +25 -0
- package/dist/types.core.d.ts.map +1 -0
- package/dist/types.core.js +8 -0
- package/dist/types.core.js.map +1 -0
- package/dist/types.d.ts +71 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/types.registry.d.ts +93 -0
- package/dist/types.registry.d.ts.map +1 -0
- package/dist/types.registry.js +32 -0
- package/dist/types.registry.js.map +1 -0
- 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"}
|