@vibesdotdev/mcp 0.0.0-stage → 1.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-exposure audit — the czar cycle's reusable core.
|
|
3
|
+
*
|
|
4
|
+
* ONE implementation of "is every declared tool reachable and wire-honest",
|
|
5
|
+
* consumed by both the `vibes dev audit tools` CLI command and (future) a
|
|
6
|
+
* `tools/tool` runtime capability. It does NOT re-implement the exposure funnel:
|
|
7
|
+
* it drives the real `explainMcpToolSelection` (the same mirror the serve path
|
|
8
|
+
* logs) across every MCP client preset, over the real runtime descriptor
|
|
9
|
+
* catalog.
|
|
10
|
+
*
|
|
11
|
+
* SCOPE — this is the POLICY view (world-independent): it audits what each preset
|
|
12
|
+
* *intends* to expose from the declared catalog, plus wire-shape properties of the
|
|
13
|
+
* descriptors. It deliberately does NOT assert loader-resolvability, because that
|
|
14
|
+
* depends on which plugins the *running* world composed — the ambient CLI world
|
|
15
|
+
* is not the MCP serve world, so a bare `available()` here under-reports and would
|
|
16
|
+
* cry "zombie" for tools the serve path loads fine. Serve-world reachability +
|
|
17
|
+
* served-vs-authored schema drift is the job of the live "Wire Selfie" handshake
|
|
18
|
+
* (the earned next in docs/proposals/universal-tools-czar/), which spawns a real
|
|
19
|
+
* serve per preset and diffs tools/list. Keeping v1 honest beats a plausible-wrong
|
|
20
|
+
* verdict. Distinct from the static `scripts/check-tool-coverage.ts` gate (source
|
|
21
|
+
* text scan for descriptor↔loader drift): this drives the LIVE registry policy.
|
|
22
|
+
*/
|
|
23
|
+
import { listMcpClientPresetIds, runtimePurposePresets } from '@vibesdotdev/tools/schemas/presets/registry';
|
|
24
|
+
import { explainMcpToolSelection } from "./tool-selection.js";
|
|
25
|
+
// The audit's limit MUST be the schema's limit. This was a local `const … = 160`
|
|
26
|
+
// under a comment asserting it tracked the schema — it did not, and silently
|
|
27
|
+
// drifted the moment the budget moved (2026-07-24, 160 → 1024). Import it.
|
|
28
|
+
import { MCP_DESCRIPTION_LIMIT } from '@vibesdotdev/tools/schemas/schema';
|
|
29
|
+
function isAuditedTool(descriptor) {
|
|
30
|
+
return descriptor.kind === 'tools/tool';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Run the exposure POLICY audit against the live runtime catalog. Pure of
|
|
34
|
+
* process/stdout so the CLI, a scheduled guard, a test, and a future tools/tool
|
|
35
|
+
* can all consume it.
|
|
36
|
+
*/
|
|
37
|
+
export function runToolExposureAudit(runtime, configured) {
|
|
38
|
+
const customPresets = runtimePurposePresets(runtime, configured);
|
|
39
|
+
const all = runtime.assets('tools/tool').descriptors().filter(isAuditedTool);
|
|
40
|
+
const findings = [];
|
|
41
|
+
// Base `mcp` preset (clientId undefined) plus every MCP client preset.
|
|
42
|
+
const targets = [
|
|
43
|
+
{ presetId: 'mcp', clientId: undefined },
|
|
44
|
+
...listMcpClientPresetIds(customPresets).map((presetId) => ({
|
|
45
|
+
presetId,
|
|
46
|
+
clientId: presetId.startsWith('mcp:') ? presetId.slice('mcp:'.length) : presetId
|
|
47
|
+
}))
|
|
48
|
+
];
|
|
49
|
+
const presets = [];
|
|
50
|
+
// A tool HAS A HOME if any audited preset exposes it — catch-all presets
|
|
51
|
+
// included. This used to count only curated (non-`*`) presets, on the theory
|
|
52
|
+
// that a wildcard (then only mcp:cloud) absorbs everything and would hide an
|
|
53
|
+
// accidental orphan. Under the full-catalog doctrine (2026-08-28) every
|
|
54
|
+
// harness preset inherits `mcp`'s `*` by design, so that rule reported
|
|
55
|
+
// 63/129 tools "reachable by zero MCP clients" while every one of them was on
|
|
56
|
+
// claude's wire (2026-09-01). A tool served to claude is not orphaned.
|
|
57
|
+
// Loader-reality on cloud hardware is the Wire Selfie's job, not this view's.
|
|
58
|
+
const exposedByAnyPreset = new Set();
|
|
59
|
+
// Per tool: the set of exclusion reasons observed across presets. Used to tell
|
|
60
|
+
// an ACCIDENTAL orphan (falls through enabledPatterns everywhere) apart from an
|
|
61
|
+
// INTENTIONAL disable (run-command is denylisted on purpose for safety).
|
|
62
|
+
const exclusionReasons = new Map();
|
|
63
|
+
for (const target of targets) {
|
|
64
|
+
// No availableIds: POLICY view over the declared catalog (see header).
|
|
65
|
+
const explanation = explainMcpToolSelection(all, { mcpClientId: target.clientId, customPresets });
|
|
66
|
+
for (const id of explanation.included)
|
|
67
|
+
exposedByAnyPreset.add(id);
|
|
68
|
+
for (const excluded of explanation.excluded) {
|
|
69
|
+
const reasonKind = excluded.reason.split(':')[0] ?? excluded.reason;
|
|
70
|
+
const set = exclusionReasons.get(excluded.id) ?? new Set();
|
|
71
|
+
set.add(reasonKind);
|
|
72
|
+
exclusionReasons.set(excluded.id, set);
|
|
73
|
+
}
|
|
74
|
+
// Aggregate context cost of this preset's tools/list. Uses the same
|
|
75
|
+
// resolution order the wire does: mcpDescription when present, else the
|
|
76
|
+
// long description (see resolveMcpDescription).
|
|
77
|
+
const byId = new Map(all.map((d) => [d.id, d]));
|
|
78
|
+
const descriptionBudgetChars = explanation.included.reduce((sum, id) => {
|
|
79
|
+
const d = byId.get(id);
|
|
80
|
+
return sum + (d?.mcpDescription ?? d?.description ?? '').length;
|
|
81
|
+
}, 0);
|
|
82
|
+
const exposure = {
|
|
83
|
+
presetId: target.presetId,
|
|
84
|
+
clientId: target.clientId,
|
|
85
|
+
exposedCount: explanation.included.length,
|
|
86
|
+
exposed: explanation.included,
|
|
87
|
+
descriptionBudgetChars
|
|
88
|
+
};
|
|
89
|
+
if (explanation.limitedFrom !== undefined)
|
|
90
|
+
exposure.limitedFrom = explanation.limitedFrom;
|
|
91
|
+
presets.push(exposure);
|
|
92
|
+
// NO description-budget finding here by ruling (2026-07-25,
|
|
93
|
+
// claude-context-steward-3a3e4795 → claude-tools-czar-b96b3723). There was a
|
|
94
|
+
// `preset-description-budget-exceeded` finding at 24,000 chars. It measured
|
|
95
|
+
// ~4% of the catalog and passed at 1,621/24,000 while `mcp:claude` actually
|
|
96
|
+
// served 224,730 bytes (~62K tokens) — a second, friendlier number sitting
|
|
97
|
+
// beside the real one, which is how a green signal starts lying. ONE catalog
|
|
98
|
+
// budget, taken where the catalog is serialized: WIRE_CATALOG_BUDGET_BYTES in
|
|
99
|
+
// ./tool-audit-live.ts. `descriptionBudgetChars` survives above as a labelled
|
|
100
|
+
// sub-metric; do not restore a pass/fail on it.
|
|
101
|
+
}
|
|
102
|
+
for (const descriptor of all) {
|
|
103
|
+
const purpose = descriptor.purpose ?? [];
|
|
104
|
+
if (!purpose.includes('mcp'))
|
|
105
|
+
continue;
|
|
106
|
+
const reasons = exclusionReasons.get(descriptor.id) ?? new Set();
|
|
107
|
+
// ACCIDENTAL orphan: declares purpose:mcp, exposed by no preset, and was
|
|
108
|
+
// never explicitly disabled — it simply falls through every preset's
|
|
109
|
+
// enabledPatterns. This is the diagnostics.run / search / dashboard-stats
|
|
110
|
+
// case: declared-but-never-projected (czar §R4). An intentionally
|
|
111
|
+
// denylisted tool (run-command) is NOT flagged.
|
|
112
|
+
if (isAccidentalOrphan(exposedByAnyPreset.has(descriptor.id), reasons)) {
|
|
113
|
+
findings.push({
|
|
114
|
+
severity: 'medium',
|
|
115
|
+
code: 'orphan-purpose',
|
|
116
|
+
toolId: descriptor.id,
|
|
117
|
+
detail: 'declares purpose:mcp but is enabled by no preset (falls through every ' +
|
|
118
|
+
'enabledPatterns) — reachable by zero MCP clients. Add a preset home or drop the mcp purpose.'
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Wire-safety: mcpDescription over the client-safe limit (world-independent).
|
|
123
|
+
for (const descriptor of all) {
|
|
124
|
+
const mcpDescription = descriptor.mcpDescription;
|
|
125
|
+
if (mcpDescription !== undefined && mcpDescription.length > MCP_DESCRIPTION_LIMIT) {
|
|
126
|
+
findings.push({
|
|
127
|
+
severity: 'low',
|
|
128
|
+
code: 'mcp-description-too-long',
|
|
129
|
+
toolId: descriptor.id,
|
|
130
|
+
detail: `mcpDescription is ${mcpDescription.length} chars (limit ${MCP_DESCRIPTION_LIMIT})`
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
findings.sort((a, b) => severityRank(a.severity) - severityRank(b.severity) ||
|
|
135
|
+
a.code.localeCompare(b.code) ||
|
|
136
|
+
a.toolId.localeCompare(b.toolId));
|
|
137
|
+
return {
|
|
138
|
+
view: 'policy',
|
|
139
|
+
// The strict verdict — see ToolAuditReport.ok. The policy view never emits
|
|
140
|
+
// 'high', so "no high findings" was a constant `true` that contradicted the
|
|
141
|
+
// --strict exit code. A verdict must be a function of the findings it sits
|
|
142
|
+
// beside.
|
|
143
|
+
ok: findings.length === 0,
|
|
144
|
+
generatedForPresets: targets.map((t) => t.presetId),
|
|
145
|
+
totalDescriptors: all.length,
|
|
146
|
+
presets,
|
|
147
|
+
findings
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* The orphan rule, extracted so it stays falsifiable: the registry offers no
|
|
152
|
+
* injection point for a synthetic preset set, and under a `*` base catalog no
|
|
153
|
+
* real descriptor can currently trip it end-to-end.
|
|
154
|
+
*
|
|
155
|
+
* A tool is an ACCIDENTAL orphan when no audited preset exposes it AND no
|
|
156
|
+
* preset excluded it on purpose (`disabled-pattern` / `preset-explicit-disable`).
|
|
157
|
+
* Exposure through a catch-all preset counts — a tool served to claude is not
|
|
158
|
+
* orphaned.
|
|
159
|
+
*/
|
|
160
|
+
export function isAccidentalOrphan(exposedByAnyPreset, exclusionReasons) {
|
|
161
|
+
if (exposedByAnyPreset)
|
|
162
|
+
return false;
|
|
163
|
+
return !(exclusionReasons.has('disabled-pattern') || exclusionReasons.has('preset-explicit-disable'));
|
|
164
|
+
}
|
|
165
|
+
function severityRank(severity) {
|
|
166
|
+
return severity === 'high' ? 0 : severity === 'medium' ? 1 : 2;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=tool-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-audit.js","sourceRoot":"","sources":["../../../src/adapters/mcp/tool-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAE5G,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,iFAAiF;AACjF,6EAA6E;AAC7E,2EAA2E;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,SAAS,aAAa,CAAC,UAA6B;IACnD,OAAO,UAAU,CAAC,IAAI,KAAK,YAAY,CAAC;AACzC,CAAC;AAKD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAqB,EAAE,UAA0C;IACrG,MAAM,aAAa,GAAG,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,uEAAuE;IACvE,MAAM,OAAO,GAAmD;QAC/D,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE;QACxC,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3D,QAAQ;YACR,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;SAChF,CAAC,CAAC;KACH,CAAC;IAEF,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,wEAAwE;IACxE,uEAAuE;IACvE,8EAA8E;IAC9E,uEAAuE;IACvE,8EAA8E;IAC9E,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,+EAA+E;IAC/E,gFAAgF;IAChF,yEAAyE;IACzE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAExD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,uEAAuE;QACvE,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;QAClG,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,QAAQ;YAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;YACpE,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YACnE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpB,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,oEAAoE;QACpE,wEAAwE;QACxE,gDAAgD;QAChD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,sBAAsB,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YACtE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvB,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACjE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,MAAM,QAAQ,GAAmB;YAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM;YACzC,OAAO,EAAE,WAAW,CAAC,QAAQ;YAC7B,sBAAsB;SACtB,CAAC;QACF,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS;YAAE,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvB,4DAA4D;QAC5D,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,6EAA6E;QAC7E,8EAA8E;QAC9E,8EAA8E;QAC9E,gDAAgD;IACjD,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAEvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACzE,yEAAyE;QACzE,qEAAqE;QACrE,0EAA0E;QAC1E,kEAAkE;QAClE,gDAAgD;QAChD,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;YACxE,QAAQ,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,UAAU,CAAC,EAAE;gBACrB,MAAM,EACL,wEAAwE;oBACxE,8FAA8F;aAC/F,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,8EAA8E;IAC9E,KAAK,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;QACjD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;YACnF,QAAQ,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,0BAA0B;gBAChC,MAAM,EAAE,UAAU,CAAC,EAAE;gBACrB,MAAM,EAAE,qBAAqB,cAAc,CAAC,MAAM,iBAAiB,qBAAqB,GAAG;aAC3F,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,IAAI,CACZ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACR,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CACjC,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,UAAU;QACV,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QACzB,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnD,gBAAgB,EAAE,GAAG,CAAC,MAAM;QAC5B,OAAO;QACP,QAAQ;KACR,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CACjC,kBAA2B,EAC3B,gBAAqC;IAErC,IAAI,kBAAkB;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,CAAC,CACP,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAC3F,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAsC;IAC3D,OAAO,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
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 type { VibesRuntime } from '@vibesdotdev/kernel/api/runtime';
|
|
33
|
+
import type { LoggerImplementation } from '@vibesdotdev/logging/kinds/logger';
|
|
34
|
+
import type { ToolAssetDescriptor } from '@vibesdotdev/tools/schemas/runtime/descriptors';
|
|
35
|
+
import type { McpAdapterOptions } from '@vibesdotdev/mcp';
|
|
36
|
+
import type { PurposePreset } from '@vibesdotdev/tools/schemas/presets/schema';
|
|
37
|
+
import type { SelectMcpToolsResult } from './schemas/index.ts';
|
|
38
|
+
export type McpServerCapabilities = {
|
|
39
|
+
tools: {
|
|
40
|
+
listChanged: true;
|
|
41
|
+
};
|
|
42
|
+
resources?: {
|
|
43
|
+
listChanged: true;
|
|
44
|
+
};
|
|
45
|
+
prompts?: {
|
|
46
|
+
listChanged: true;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* How a fold treats descriptors whose loader is not resolvable at fold time.
|
|
51
|
+
*
|
|
52
|
+
* `runtime.assets('tools/tool').available()` is time- and scope-sensitive:
|
|
53
|
+
* session-* loaders can arrive through the session bridge after the first
|
|
54
|
+
* build, and scope qualifiers can move. So excluding unavailable descriptors
|
|
55
|
+
* is a decision only the CALLER can make honestly — the fold cannot tell a
|
|
56
|
+
* zombie from a tool whose loader is still settling.
|
|
57
|
+
*
|
|
58
|
+
* - `'advisory'` (the default): keep every enabled descriptor and warn about
|
|
59
|
+
* `zombieCandidates`. Every caller that cannot bound registration keeps
|
|
60
|
+
* this, including the serve-startup exposure selection that also decides
|
|
61
|
+
* whether the session bridge warms at all.
|
|
62
|
+
* - `'settled'`: the caller asserts that registration is bound for the scope
|
|
63
|
+
* this fold is served under — every loader that can still arrive for these
|
|
64
|
+
* descriptors arrives through the runtime (`registerLoader`,
|
|
65
|
+
* `registerVariantLoader`, `registerDynamicAsset`, `registerPlugin`), which
|
|
66
|
+
* bumps `descriptorRevision`. Because every connection is built from a
|
|
67
|
+
* revision-keyed cache (`createMcpToolCatalogCache`), an excluded descriptor
|
|
68
|
+
* is re-evaluated on the next fold: a loader that registers later is
|
|
69
|
+
* ADMITTED, never silently dropped for the session's lifetime. 2026-06-11:
|
|
70
|
+
* a filter with no such bound silently excluded the whole session family.
|
|
71
|
+
*
|
|
72
|
+
* The settlement decision is a constructor argument of a cache, never a key
|
|
73
|
+
* input: one cache serves one policy for its whole life, and mixing policies
|
|
74
|
+
* through one cache would make the fold unreproducible from its key.
|
|
75
|
+
*/
|
|
76
|
+
export type McpLoaderSettlement = 'advisory' | 'settled';
|
|
77
|
+
/**
|
|
78
|
+
* Everything `buildServer` needs that does not depend on the `McpServer`
|
|
79
|
+
* instance. Frozen at the revision it was computed for.
|
|
80
|
+
*/
|
|
81
|
+
export type McpToolCatalog = {
|
|
82
|
+
/** `runtime.descriptorRevision` this catalog was folded from. */
|
|
83
|
+
readonly revision: number;
|
|
84
|
+
readonly purposePresets: Record<string, PurposePreset>;
|
|
85
|
+
/** Cache key: revision plus every input the revision does not cover. */
|
|
86
|
+
readonly key: string;
|
|
87
|
+
/** The caller's registration bound this fold was computed under. */
|
|
88
|
+
readonly loaderSettlement: McpLoaderSettlement;
|
|
89
|
+
/**
|
|
90
|
+
* True when `tools/tool` is not registered at all. The server is still
|
|
91
|
+
* built — an empty tools/list must not look healthy — but nothing is
|
|
92
|
+
* selected and `instructions` carries the degradation banner.
|
|
93
|
+
*/
|
|
94
|
+
readonly degradedKind: boolean;
|
|
95
|
+
readonly capabilities: McpServerCapabilities;
|
|
96
|
+
readonly instructions: string;
|
|
97
|
+
/** Selected descriptors, in registration order. */
|
|
98
|
+
readonly descriptors: readonly ToolAssetDescriptor[];
|
|
99
|
+
/** Enabled (pre-selection) descriptors — the client auto-detect upgrade re-selects from these. */
|
|
100
|
+
readonly enabledDescriptors: readonly ToolAssetDescriptor[];
|
|
101
|
+
readonly selected: SelectMcpToolsResult | null;
|
|
102
|
+
readonly localToolIds: readonly string[];
|
|
103
|
+
readonly totalDescriptors: number;
|
|
104
|
+
/** Selected descriptors that carry no input schema and cannot be advertised. */
|
|
105
|
+
readonly preScanFailedTools: readonly string[];
|
|
106
|
+
/** Selected ids that would throw "No implementation registered" if called right now (advisory). */
|
|
107
|
+
readonly zombieCandidates: readonly string[];
|
|
108
|
+
/**
|
|
109
|
+
* Whether the per-connection registration summary has already been logged at
|
|
110
|
+
* INFO for this fold. Mutable on purpose: the FIRST connection served by a
|
|
111
|
+
* catalog announces what got registered, every later connection repeats the
|
|
112
|
+
* identical work and logs it at DEBUG. Without this the registration block
|
|
113
|
+
* still floods the log once per connection even though the catalog behind it
|
|
114
|
+
* never moved — which is the symptom the memo exists to remove.
|
|
115
|
+
*/
|
|
116
|
+
announced: boolean;
|
|
117
|
+
};
|
|
118
|
+
export declare function hasMcpResources(descriptor: ToolAssetDescriptor): boolean;
|
|
119
|
+
export declare function hasMcpPrompts(descriptor: ToolAssetDescriptor, options: {
|
|
120
|
+
canResolvePromptIds: boolean;
|
|
121
|
+
}): boolean;
|
|
122
|
+
export declare function formatRegistrationFailureInstructions(failedTools: readonly string[]): string;
|
|
123
|
+
/**
|
|
124
|
+
* Every input to the fold that `descriptorRevision` does not already cover.
|
|
125
|
+
*
|
|
126
|
+
* Keep this honest: anything read by `computeMcpToolCatalog` that can change
|
|
127
|
+
* without a registry mutation MUST appear here, or the cache serves stale.
|
|
128
|
+
*/
|
|
129
|
+
export declare function catalogCacheKey(runtime: VibesRuntime, localToolIds: readonly string[], configured?: Record<string, PurposePreset>): string;
|
|
130
|
+
/**
|
|
131
|
+
* Fold the runtime registry into the catalog this surface serves.
|
|
132
|
+
*
|
|
133
|
+
* Pure with respect to the registry: no `McpServer`, no transport, no
|
|
134
|
+
* per-connection state. Logs the discovery block, so callers that memoize get
|
|
135
|
+
* one block per revision rather than one per connection.
|
|
136
|
+
*/
|
|
137
|
+
export declare function computeMcpToolCatalog(runtime: VibesRuntime, options: McpAdapterOptions, logger: LoggerImplementation,
|
|
138
|
+
/** Project-local catalog ids (CLI list source=local parity), already resolved. */
|
|
139
|
+
localToolIds: readonly string[],
|
|
140
|
+
/**
|
|
141
|
+
* The caller's registration bound for this fold. Defaults to `'advisory'`:
|
|
142
|
+
* unavailable descriptors stay selected and are warned about. Only a caller
|
|
143
|
+
* that can name the bound (see {@link McpLoaderSettlement}) passes
|
|
144
|
+
* `'settled'` to exclude them.
|
|
145
|
+
*/
|
|
146
|
+
loaderSettlement?: McpLoaderSettlement): McpToolCatalog;
|
|
147
|
+
export type McpToolCatalogCache = {
|
|
148
|
+
/** The catalog for the registry as it stands right now, folding only if it moved. */
|
|
149
|
+
get(): McpToolCatalog;
|
|
150
|
+
/** Folds performed, and connections served from an existing fold. */
|
|
151
|
+
stats(): {
|
|
152
|
+
folds: number;
|
|
153
|
+
hits: number;
|
|
154
|
+
key: string | null;
|
|
155
|
+
};
|
|
156
|
+
/** Drop the memo. Correctness never depends on this — the key does. */
|
|
157
|
+
invalidate(): void;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Memoize `computeMcpToolCatalog` against the runtime's registry revision.
|
|
161
|
+
*
|
|
162
|
+
* One cache per serving surface (the HTTP session handler builds one and every
|
|
163
|
+
* session draws from it). The `McpServer` stays per-connection; only the fold
|
|
164
|
+
* is shared.
|
|
165
|
+
*
|
|
166
|
+
* `loaderSettlement` is fixed for the cache's whole life — it is the caller's
|
|
167
|
+
* registration bound, not a per-call option. It deliberately does not enter
|
|
168
|
+
* the cache key: the key must describe the registry state this fold was
|
|
169
|
+
* computed from, and a cache that could flip policies would report one key for
|
|
170
|
+
* two different folds.
|
|
171
|
+
*/
|
|
172
|
+
export declare function createMcpToolCatalogCache(runtime: VibesRuntime, options: McpAdapterOptions, logger: LoggerImplementation,
|
|
173
|
+
/**
|
|
174
|
+
* Resolves the project-local tool ids at call time. Injected rather than
|
|
175
|
+
* imported: reading them is node-scoped, and this module is in the
|
|
176
|
+
* isomorphic root closure.
|
|
177
|
+
*/
|
|
178
|
+
resolveLocalToolIds: () => readonly string[], loaderSettlement?: McpLoaderSettlement): McpToolCatalogCache;
|
|
179
|
+
//# sourceMappingURL=tool-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/tool-catalog.ts"],"names":[],"mappings":"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"}
|