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