@cleocode/core 2026.6.12 → 2026.6.14
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/dist/admin/ops.d.ts +4 -0
- package/dist/admin/ops.d.ts.map +1 -1
- package/dist/check/index.d.ts +12 -0
- package/dist/check/index.d.ts.map +1 -0
- package/dist/check/index.js +12 -0
- package/dist/check/index.js.map +1 -0
- package/dist/check/pr-gate.d.ts +179 -0
- package/dist/check/pr-gate.d.ts.map +1 -0
- package/dist/check/pr-gate.js +366 -0
- package/dist/check/pr-gate.js.map +1 -0
- package/dist/conduit/delivery-router.d.ts +134 -0
- package/dist/conduit/delivery-router.d.ts.map +1 -0
- package/dist/conduit/delivery-router.js +0 -0
- package/dist/conduit/delivery-router.js.map +1 -0
- package/dist/conduit/index.d.ts +5 -2
- package/dist/conduit/index.d.ts.map +1 -1
- package/dist/conduit/index.js +5 -2
- package/dist/conduit/index.js.map +1 -1
- package/dist/conduit/local-transport.d.ts +12 -0
- package/dist/conduit/local-transport.d.ts.map +1 -1
- package/dist/conduit/local-transport.js +53 -23
- package/dist/conduit/local-transport.js.map +1 -1
- package/dist/conduit/local-tui-adapter.d.ts +89 -0
- package/dist/conduit/local-tui-adapter.d.ts.map +1 -0
- package/dist/conduit/local-tui-adapter.js +225 -0
- package/dist/conduit/local-tui-adapter.js.map +1 -0
- package/dist/config/registry.d.ts +54 -0
- package/dist/config/registry.d.ts.map +1 -1
- package/dist/config/registry.js +94 -2
- package/dist/config/registry.js.map +1 -1
- package/dist/crypto/credentials.d.ts +37 -0
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +110 -0
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/deriver/queue-manager.d.ts +30 -2
- package/dist/deriver/queue-manager.d.ts.map +1 -1
- package/dist/deriver/queue-manager.js +54 -9
- package/dist/deriver/queue-manager.js.map +1 -1
- package/dist/dispatch/config-domain-handler.d.ts +125 -0
- package/dist/dispatch/config-domain-handler.d.ts.map +1 -0
- package/dist/dispatch/config-domain-handler.js +160 -0
- package/dist/dispatch/config-domain-handler.js.map +1 -0
- package/dist/dispatch/contracts/derive-output-contract.d.ts +86 -0
- package/dist/dispatch/contracts/derive-output-contract.d.ts.map +1 -0
- package/dist/dispatch/contracts/derive-output-contract.js +347 -0
- package/dist/dispatch/contracts/derive-output-contract.js.map +1 -0
- package/dist/dispatch/contracts/ensures-schema.d.ts +77 -0
- package/dist/dispatch/contracts/ensures-schema.d.ts.map +1 -0
- package/dist/dispatch/contracts/ensures-schema.js +91 -0
- package/dist/dispatch/contracts/ensures-schema.js.map +1 -0
- package/dist/dispatch/contracts/input-contracts.d.ts.map +1 -1
- package/dist/dispatch/contracts/input-contracts.js +19 -1
- package/dist/dispatch/contracts/input-contracts.js.map +1 -1
- package/dist/dispatch/contracts/output-contracts.d.ts +27 -5
- package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -1
- package/dist/dispatch/contracts/output-contracts.js +29 -6
- package/dist/dispatch/contracts/output-contracts.js.map +1 -1
- package/dist/docs/export-document.js +5413 -1345
- package/dist/docs/export-document.js.map +3 -3
- package/dist/gateway-client/client.d.ts +123 -0
- package/dist/gateway-client/client.d.ts.map +1 -0
- package/dist/gateway-client/client.js +93 -0
- package/dist/gateway-client/client.js.map +1 -0
- package/dist/gateway-client/generated/client/client.gen.d.ts +3 -0
- package/dist/gateway-client/generated/client/client.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/client.gen.js +217 -0
- package/dist/gateway-client/generated/client/client.gen.js.map +1 -0
- package/dist/gateway-client/generated/client/index.d.ts +11 -0
- package/dist/gateway-client/generated/client/index.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/index.js +7 -0
- package/dist/gateway-client/generated/client/index.js.map +1 -0
- package/dist/gateway-client/generated/client/types.gen.d.ts +121 -0
- package/dist/gateway-client/generated/client/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/types.gen.js +3 -0
- package/dist/gateway-client/generated/client/types.gen.js.map +1 -0
- package/dist/gateway-client/generated/client/utils.gen.d.ts +38 -0
- package/dist/gateway-client/generated/client/utils.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client/utils.gen.js +229 -0
- package/dist/gateway-client/generated/client/utils.gen.js.map +1 -0
- package/dist/gateway-client/generated/client.gen.d.ts +13 -0
- package/dist/gateway-client/generated/client.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/client.gen.js +4 -0
- package/dist/gateway-client/generated/client.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/auth.gen.d.ts +26 -0
- package/dist/gateway-client/generated/core/auth.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/auth.gen.js +15 -0
- package/dist/gateway-client/generated/core/auth.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts +26 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.js +58 -0
- package/dist/gateway-client/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/params.gen.d.ts +44 -0
- package/dist/gateway-client/generated/core/params.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/params.gen.js +101 -0
- package/dist/gateway-client/generated/core/params.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts +34 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.js +107 -0
- package/dist/gateway-client/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.js +93 -0
- package/dist/gateway-client/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.js +133 -0
- package/dist/gateway-client/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/types.gen.d.ts +84 -0
- package/dist/gateway-client/generated/core/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/types.gen.js +3 -0
- package/dist/gateway-client/generated/core/types.gen.js.map +1 -0
- package/dist/gateway-client/generated/core/utils.gen.d.ts +20 -0
- package/dist/gateway-client/generated/core/utils.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/core/utils.gen.js +88 -0
- package/dist/gateway-client/generated/core/utils.gen.js.map +1 -0
- package/dist/gateway-client/generated/index.d.ts +3 -0
- package/dist/gateway-client/generated/index.d.ts.map +1 -0
- package/dist/gateway-client/generated/index.js +3 -0
- package/dist/gateway-client/generated/index.js.map +1 -0
- package/dist/gateway-client/generated/namespaces.gen.d.ts +512 -0
- package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/namespaces.gen.js +521 -0
- package/dist/gateway-client/generated/namespaces.gen.js.map +1 -0
- package/dist/gateway-client/generated/sdk.gen.d.ts +1780 -0
- package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/sdk.gen.js +3811 -0
- package/dist/gateway-client/generated/sdk.gen.js.map +1 -0
- package/dist/gateway-client/generated/types.gen.d.ts +14681 -0
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -0
- package/dist/gateway-client/generated/types.gen.js +3 -0
- package/dist/gateway-client/generated/types.gen.js.map +1 -0
- package/dist/gateway-client/index.d.ts +27 -0
- package/dist/gateway-client/index.d.ts.map +1 -0
- package/dist/gateway-client/index.js +25 -0
- package/dist/gateway-client/index.js.map +1 -0
- package/dist/go/driver.d.ts +132 -7
- package/dist/go/driver.d.ts.map +1 -1
- package/dist/go/driver.js +135 -10
- package/dist/go/driver.js.map +1 -1
- package/dist/go/index.d.ts +1 -1
- package/dist/go/index.d.ts.map +1 -1
- package/dist/go/index.js +1 -1
- package/dist/go/index.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +28 -0
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +23 -11
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +29 -12
- package/dist/internal.js.map +1 -1
- package/dist/lifecycle/engine-ops.d.ts.map +1 -1
- package/dist/lifecycle/engine-ops.js +7 -4
- package/dist/lifecycle/engine-ops.js.map +1 -1
- package/dist/lifecycle/ivtr-loop.d.ts +108 -183
- package/dist/lifecycle/ivtr-loop.d.ts.map +1 -1
- package/dist/lifecycle/ivtr-loop.js +207 -522
- package/dist/lifecycle/ivtr-loop.js.map +1 -1
- package/dist/llm/auxiliary-fallback.js +1 -1
- package/dist/llm/auxiliary-fallback.js.map +1 -1
- package/dist/llm/catalog-model-resolver.d.ts +19 -0
- package/dist/llm/catalog-model-resolver.d.ts.map +1 -1
- package/dist/llm/catalog-model-resolver.js +36 -0
- package/dist/llm/catalog-model-resolver.js.map +1 -1
- package/dist/llm/catalog-resolver.d.ts +112 -0
- package/dist/llm/catalog-resolver.d.ts.map +1 -0
- package/dist/llm/catalog-resolver.js +207 -0
- package/dist/llm/catalog-resolver.js.map +1 -0
- package/dist/llm/catalog-seeder.d.ts +96 -0
- package/dist/llm/catalog-seeder.d.ts.map +1 -0
- package/dist/llm/catalog-seeder.js +189 -0
- package/dist/llm/catalog-seeder.js.map +1 -0
- package/dist/llm/cli-ops.d.ts +14 -1
- package/dist/llm/cli-ops.d.ts.map +1 -1
- package/dist/llm/cli-ops.js +46 -17
- package/dist/llm/cli-ops.js.map +1 -1
- package/dist/llm/complexity-classifier.d.ts +208 -0
- package/dist/llm/complexity-classifier.d.ts.map +1 -0
- package/dist/llm/complexity-classifier.js +359 -0
- package/dist/llm/complexity-classifier.js.map +1 -0
- package/dist/llm/concrete-session.d.ts.map +1 -1
- package/dist/llm/concrete-session.js +4 -0
- package/dist/llm/concrete-session.js.map +1 -1
- package/dist/llm/credential-pool.d.ts +2 -0
- package/dist/llm/credential-pool.d.ts.map +1 -1
- package/dist/llm/credential-pool.js +5 -2
- package/dist/llm/credential-pool.js.map +1 -1
- package/dist/llm/credentials-store.d.ts +10 -14
- package/dist/llm/credentials-store.d.ts.map +1 -1
- package/dist/llm/credentials-store.js.map +1 -1
- package/dist/llm/credentials.d.ts +35 -0
- package/dist/llm/credentials.d.ts.map +1 -1
- package/dist/llm/credentials.js +49 -0
- package/dist/llm/credentials.js.map +1 -1
- package/dist/llm/entity-ops.d.ts +299 -0
- package/dist/llm/entity-ops.d.ts.map +1 -0
- package/dist/llm/entity-ops.js +441 -0
- package/dist/llm/entity-ops.js.map +1 -0
- package/dist/llm/index.d.ts +19 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +12 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm-queue-admit.d.ts +118 -0
- package/dist/llm/llm-queue-admit.d.ts.map +1 -0
- package/dist/llm/llm-queue-admit.js +275 -0
- package/dist/llm/llm-queue-admit.js.map +1 -0
- package/dist/llm/oauth/device-code.d.ts.map +1 -1
- package/dist/llm/oauth/device-code.js +2 -8
- package/dist/llm/oauth/device-code.js.map +1 -1
- package/dist/llm/oauth/google-pkce.d.ts.map +1 -1
- package/dist/llm/oauth/google-pkce.js +2 -18
- package/dist/llm/oauth/google-pkce.js.map +1 -1
- package/dist/llm/oauth/pkce.d.ts +70 -0
- package/dist/llm/oauth/pkce.d.ts.map +1 -1
- package/dist/llm/oauth/pkce.js +106 -29
- package/dist/llm/oauth/pkce.js.map +1 -1
- package/dist/llm/onboarding/front-door.d.ts +146 -0
- package/dist/llm/onboarding/front-door.d.ts.map +1 -0
- package/dist/llm/onboarding/front-door.js +153 -0
- package/dist/llm/onboarding/front-door.js.map +1 -0
- package/dist/llm/onboarding/login-engine.d.ts +175 -0
- package/dist/llm/onboarding/login-engine.d.ts.map +1 -0
- package/dist/llm/onboarding/login-engine.js +286 -0
- package/dist/llm/onboarding/login-engine.js.map +1 -0
- package/dist/llm/pi/gondolin-loader.d.ts +241 -0
- package/dist/llm/pi/gondolin-loader.d.ts.map +1 -0
- package/dist/llm/pi/gondolin-loader.js +195 -0
- package/dist/llm/pi/gondolin-loader.js.map +1 -0
- package/dist/llm/pi/index.d.ts +28 -0
- package/dist/llm/pi/index.d.ts.map +1 -0
- package/dist/llm/pi/index.js +27 -0
- package/dist/llm/pi/index.js.map +1 -0
- package/dist/llm/pi/pi-agent-adapter.d.ts +135 -0
- package/dist/llm/pi/pi-agent-adapter.d.ts.map +1 -0
- package/dist/llm/pi/pi-agent-adapter.js +329 -0
- package/dist/llm/pi/pi-agent-adapter.js.map +1 -0
- package/dist/llm/pi/pi-errors.d.ts +161 -0
- package/dist/llm/pi/pi-errors.d.ts.map +1 -0
- package/dist/llm/pi/pi-errors.js +296 -0
- package/dist/llm/pi/pi-errors.js.map +1 -0
- package/dist/llm/pi/pi-execution-env.d.ts +286 -0
- package/dist/llm/pi/pi-execution-env.d.ts.map +1 -0
- package/dist/llm/pi/pi-execution-env.js +406 -0
- package/dist/llm/pi/pi-execution-env.js.map +1 -0
- package/dist/llm/pi/pi-gondolin-env.d.ts +250 -0
- package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -0
- package/dist/llm/pi/pi-gondolin-env.js +541 -0
- package/dist/llm/pi/pi-gondolin-env.js.map +1 -0
- package/dist/llm/pi/pi-session-storage.d.ts +154 -0
- package/dist/llm/pi/pi-session-storage.d.ts.map +1 -0
- package/dist/llm/pi/pi-session-storage.js +314 -0
- package/dist/llm/pi/pi-session-storage.js.map +1 -0
- package/dist/llm/pi/pi-stream-fn.d.ts +124 -0
- package/dist/llm/pi/pi-stream-fn.d.ts.map +1 -0
- package/dist/llm/pi/pi-stream-fn.js +504 -0
- package/dist/llm/pi/pi-stream-fn.js.map +1 -0
- package/dist/llm/pi/pi-tool-bridge.d.ts +99 -0
- package/dist/llm/pi/pi-tool-bridge.d.ts.map +1 -0
- package/dist/llm/pi/pi-tool-bridge.js +117 -0
- package/dist/llm/pi/pi-tool-bridge.js.map +1 -0
- package/dist/llm/pi/pi-types.d.ts +56 -0
- package/dist/llm/pi/pi-types.d.ts.map +1 -0
- package/dist/llm/pi/pi-types.js +16 -0
- package/dist/llm/pi/pi-types.js.map +1 -0
- package/dist/llm/pi/resolve-execution-env.d.ts +194 -0
- package/dist/llm/pi/resolve-execution-env.d.ts.map +1 -0
- package/dist/llm/pi/resolve-execution-env.js +132 -0
- package/dist/llm/pi/resolve-execution-env.js.map +1 -0
- package/dist/llm/plugin-facade.js +5472 -1331
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
- package/dist/llm/provider-registry/builtin/anthropic.js +23 -10
- package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
- package/dist/llm/provider-registry/provider-alias.d.ts +62 -0
- package/dist/llm/provider-registry/provider-alias.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-alias.js +85 -0
- package/dist/llm/provider-registry/provider-alias.js.map +1 -0
- package/dist/llm/provider-registry/provider-defs.d.ts +45 -0
- package/dist/llm/provider-registry/provider-defs.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-defs.js +145 -0
- package/dist/llm/provider-registry/provider-defs.js.map +1 -0
- package/dist/llm/provider-registry/provider-seed.d.ts +78 -0
- package/dist/llm/provider-registry/provider-seed.d.ts.map +1 -0
- package/dist/llm/provider-registry/provider-seed.js +113 -0
- package/dist/llm/provider-registry/provider-seed.js.map +1 -0
- package/dist/llm/role-executor.d.ts.map +1 -1
- package/dist/llm/role-executor.js +44 -5
- package/dist/llm/role-executor.js.map +1 -1
- package/dist/llm/role-resolver.d.ts +46 -14
- package/dist/llm/role-resolver.d.ts.map +1 -1
- package/dist/llm/role-resolver.js +185 -20
- package/dist/llm/role-resolver.js.map +1 -1
- package/dist/llm/sealed-credential.d.ts +125 -0
- package/dist/llm/sealed-credential.d.ts.map +1 -0
- package/dist/llm/sealed-credential.js +133 -0
- package/dist/llm/sealed-credential.js.map +1 -0
- package/dist/llm/session-factory.d.ts.map +1 -1
- package/dist/llm/session-factory.js +6 -2
- package/dist/llm/session-factory.js.map +1 -1
- package/dist/llm/system-key.d.ts +67 -0
- package/dist/llm/system-key.d.ts.map +1 -0
- package/dist/llm/system-key.js +87 -0
- package/dist/llm/system-key.js.map +1 -0
- package/dist/llm/system-of-use-registry.d.ts +119 -0
- package/dist/llm/system-of-use-registry.d.ts.map +1 -0
- package/dist/llm/system-of-use-registry.js +200 -0
- package/dist/llm/system-of-use-registry.js.map +1 -0
- package/dist/llm/system-resolver.d.ts +32 -10
- package/dist/llm/system-resolver.d.ts.map +1 -1
- package/dist/llm/system-resolver.js +138 -35
- package/dist/llm/system-resolver.js.map +1 -1
- package/dist/memory/brain-writer-thread.d.ts.map +1 -1
- package/dist/memory/brain-writer-thread.js +116 -11
- package/dist/memory/brain-writer-thread.js.map +1 -1
- package/dist/memory/claude-mem-migration.d.ts.map +1 -1
- package/dist/memory/claude-mem-migration.js +21 -0
- package/dist/memory/claude-mem-migration.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +32 -25
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/learnings.d.ts +4 -0
- package/dist/memory/learnings.d.ts.map +1 -1
- package/dist/memory/llm-backend-resolver.js +23 -5
- package/dist/memory/llm-backend-resolver.js.map +1 -1
- package/dist/memory/patterns.d.ts +4 -0
- package/dist/memory/patterns.d.ts.map +1 -1
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +1 -0
- package/dist/metrics/index.js.map +1 -1
- package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
- package/dist/nexus/migrations/M-split-graph.js +60 -53
- package/dist/nexus/migrations/M-split-graph.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +20 -2
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/orchestration/spawn.d.ts +89 -0
- package/dist/orchestration/spawn.d.ts.map +1 -1
- package/dist/orchestration/spawn.js +68 -0
- package/dist/orchestration/spawn.js.map +1 -1
- package/dist/playbooks/cantbook-profile.d.ts +96 -0
- package/dist/playbooks/cantbook-profile.d.ts.map +1 -0
- package/dist/playbooks/cantbook-profile.js +97 -0
- package/dist/playbooks/cantbook-profile.js.map +1 -0
- package/dist/playbooks/guarded-deterministic-runner.d.ts +153 -0
- package/dist/playbooks/guarded-deterministic-runner.d.ts.map +1 -0
- package/dist/playbooks/guarded-deterministic-runner.js +155 -0
- package/dist/playbooks/guarded-deterministic-runner.js.map +1 -0
- package/dist/playbooks/index.d.ts +2 -0
- package/dist/playbooks/index.d.ts.map +1 -1
- package/dist/playbooks/index.js +10 -0
- package/dist/playbooks/index.js.map +1 -1
- package/dist/playbooks/pi-runner-wiring.d.ts +75 -0
- package/dist/playbooks/pi-runner-wiring.d.ts.map +1 -0
- package/dist/playbooks/pi-runner-wiring.js +82 -0
- package/dist/playbooks/pi-runner-wiring.js.map +1 -0
- package/dist/release/engine-ops.js +2 -2
- package/dist/release/engine-ops.js.map +1 -1
- package/dist/routing/capability-matrix.d.ts.map +1 -1
- package/dist/routing/capability-matrix.js +0 -57
- package/dist/routing/capability-matrix.js.map +1 -1
- package/dist/runtime/openapi/generate-openapi.d.ts +211 -0
- package/dist/runtime/openapi/generate-openapi.d.ts.map +1 -0
- package/dist/runtime/openapi/generate-openapi.js +300 -0
- package/dist/runtime/openapi/generate-openapi.js.map +1 -0
- package/dist/runtime/openapi/index.d.ts +16 -0
- package/dist/runtime/openapi/index.d.ts.map +1 -0
- package/dist/runtime/openapi/index.js +16 -0
- package/dist/runtime/openapi/index.js.map +1 -0
- package/dist/selfimprove/budget.d.ts +206 -0
- package/dist/selfimprove/budget.d.ts.map +1 -0
- package/dist/selfimprove/budget.js +203 -0
- package/dist/selfimprove/budget.js.map +1 -0
- package/dist/selfimprove/dhq-adapter.d.ts +105 -0
- package/dist/selfimprove/dhq-adapter.d.ts.map +1 -0
- package/dist/selfimprove/dhq-adapter.js +95 -0
- package/dist/selfimprove/dhq-adapter.js.map +1 -0
- package/dist/selfimprove/draft-pr.d.ts +129 -0
- package/dist/selfimprove/draft-pr.d.ts.map +1 -0
- package/dist/selfimprove/draft-pr.js +158 -0
- package/dist/selfimprove/draft-pr.js.map +1 -0
- package/dist/selfimprove/envelope-diff.d.ts +162 -0
- package/dist/selfimprove/envelope-diff.d.ts.map +1 -0
- package/dist/selfimprove/envelope-diff.js +321 -0
- package/dist/selfimprove/envelope-diff.js.map +1 -0
- package/dist/selfimprove/replay.d.ts +121 -0
- package/dist/selfimprove/replay.d.ts.map +1 -0
- package/dist/selfimprove/replay.js +109 -0
- package/dist/selfimprove/replay.js.map +1 -0
- package/dist/selfimprove/run-loop.d.ts +148 -0
- package/dist/selfimprove/run-loop.d.ts.map +1 -0
- package/dist/selfimprove/run-loop.js +240 -0
- package/dist/selfimprove/run-loop.js.map +1 -0
- package/dist/selfimprove/scenario.d.ts +145 -0
- package/dist/selfimprove/scenario.d.ts.map +1 -0
- package/dist/selfimprove/scenario.js +243 -0
- package/dist/selfimprove/scenario.js.map +1 -0
- package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +32 -0
- package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +18 -0
- package/dist/sentient/daemon-entry.js +5 -0
- package/dist/sentient/daemon-entry.js.map +1 -1
- package/dist/sentient/daemon.d.ts.map +1 -1
- package/dist/sentient/daemon.js +19 -0
- package/dist/sentient/daemon.js.map +1 -1
- package/dist/sentient/hygiene-scan.d.ts.map +1 -1
- package/dist/sentient/hygiene-scan.js +14 -6
- package/dist/sentient/hygiene-scan.js.map +1 -1
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +13 -9
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/connection-session-handle.d.ts +161 -0
- package/dist/sessions/connection-session-handle.d.ts.map +1 -0
- package/dist/sessions/connection-session-handle.js +168 -0
- package/dist/sessions/connection-session-handle.js.map +1 -0
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +9 -0
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/sessions/index.d.ts +4 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +31 -1
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-id.d.ts +34 -0
- package/dist/sessions/session-id.d.ts.map +1 -1
- package/dist/sessions/session-id.js +37 -0
- package/dist/sessions/session-id.js.map +1 -1
- package/dist/sessions/session-manifest-mirror.d.ts +115 -0
- package/dist/sessions/session-manifest-mirror.d.ts.map +1 -0
- package/dist/sessions/session-manifest-mirror.js +250 -0
- package/dist/sessions/session-manifest-mirror.js.map +1 -0
- package/dist/sessions/session-switch.d.ts.map +1 -1
- package/dist/sessions/session-switch.js +5 -2
- package/dist/sessions/session-switch.js.map +1 -1
- package/dist/setup/config-json-merge.d.ts.map +1 -1
- package/dist/setup/config-json-merge.js +14 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +23 -11
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +25 -12
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/sections/llm.d.ts +28 -1
- package/dist/setup/sections/llm.d.ts.map +1 -1
- package/dist/setup/sections/llm.js +27 -6
- package/dist/setup/sections/llm.js.map +1 -1
- package/dist/setup/sections/models-roles.d.ts +40 -0
- package/dist/setup/sections/models-roles.d.ts.map +1 -0
- package/dist/setup/sections/models-roles.js +219 -0
- package/dist/setup/sections/models-roles.js.map +1 -0
- package/dist/setup/wizard.d.ts +19 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +2 -0
- package/dist/store/converters.js.map +1 -1
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +2 -0
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +87 -47
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/pi-session-store.d.ts +151 -0
- package/dist/store/pi-session-store.d.ts.map +1 -0
- package/dist/store/pi-session-store.js +166 -0
- package/dist/store/pi-session-store.js.map +1 -0
- package/dist/store/safety-data-accessor.d.ts +1 -0
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +5 -0
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schedule-schema.d.ts +195 -0
- package/dist/store/schedule-schema.d.ts.map +1 -0
- package/dist/store/schedule-schema.js +84 -0
- package/dist/store/schedule-schema.js.map +1 -0
- package/dist/store/schedule-store.d.ts +144 -0
- package/dist/store/schedule-store.d.ts.map +1 -0
- package/dist/store/schedule-store.js +162 -0
- package/dist/store/schedule-store.js.map +1 -0
- package/dist/store/schema/attachments.d.ts +1 -1
- package/dist/store/schema/cleo-global/accounts.d.ts +357 -0
- package/dist/store/schema/cleo-global/accounts.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/accounts.js +136 -0
- package/dist/store/schema/cleo-global/accounts.js.map +1 -0
- package/dist/store/schema/cleo-global/index.d.ts +5 -0
- package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/index.js +7 -0
- package/dist/store/schema/cleo-global/index.js.map +1 -1
- package/dist/store/schema/cleo-global/models-catalog.d.ts +359 -0
- package/dist/store/schema/cleo-global/models-catalog.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/models-catalog.js +114 -0
- package/dist/store/schema/cleo-global/models-catalog.js.map +1 -0
- package/dist/store/schema/cleo-global/providers.d.ts +279 -0
- package/dist/store/schema/cleo-global/providers.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/providers.js +94 -0
- package/dist/store/schema/cleo-global/providers.js.map +1 -0
- package/dist/store/schema/cleo-global/services.d.ts +493 -0
- package/dist/store/schema/cleo-global/services.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/services.js +200 -0
- package/dist/store/schema/cleo-global/services.js.map +1 -0
- package/dist/store/schema/cleo-global/session-manifest.d.ts +217 -0
- package/dist/store/schema/cleo-global/session-manifest.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/session-manifest.js +99 -0
- package/dist/store/schema/cleo-global/session-manifest.js.map +1 -0
- package/dist/store/schema/cleo-project/docs.d.ts +1 -1
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +16 -0
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +14 -0
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
- package/dist/store/schema/memory-schema.d.ts +182 -2
- package/dist/store/schema/memory-schema.d.ts.map +1 -1
- package/dist/store/schema/memory-schema.js +111 -2
- package/dist/store/schema/memory-schema.js.map +1 -1
- package/dist/store/schema/provenance/releases.d.ts +1 -1
- package/dist/store/schema/tasks.d.ts +16 -0
- package/dist/store/schema/tasks.d.ts.map +1 -1
- package/dist/store/schema/tasks.js +10 -0
- package/dist/store/schema/tasks.js.map +1 -1
- package/dist/store/selfimprove-dhq-schema.d.ts +284 -0
- package/dist/store/selfimprove-dhq-schema.d.ts.map +1 -0
- package/dist/store/selfimprove-dhq-schema.js +128 -0
- package/dist/store/selfimprove-dhq-schema.js.map +1 -0
- package/dist/store/selfimprove-dhq-store.d.ts +175 -0
- package/dist/store/selfimprove-dhq-store.d.ts.map +1 -0
- package/dist/store/selfimprove-dhq-store.js +182 -0
- package/dist/store/selfimprove-dhq-store.js.map +1 -0
- package/dist/store/service-connections-accessor.d.ts +313 -0
- package/dist/store/service-connections-accessor.d.ts.map +1 -0
- package/dist/store/service-connections-accessor.js +464 -0
- package/dist/store/service-connections-accessor.js.map +1 -0
- package/dist/store/service-host-matcher.d.ts +70 -0
- package/dist/store/service-host-matcher.d.ts.map +1 -0
- package/dist/store/service-host-matcher.js +127 -0
- package/dist/store/service-host-matcher.js.map +1 -0
- package/dist/store/service-injection.d.ts +152 -0
- package/dist/store/service-injection.d.ts.map +1 -0
- package/dist/store/service-injection.js +225 -0
- package/dist/store/service-injection.js.map +1 -0
- package/dist/store/service-oauth.d.ts +287 -0
- package/dist/store/service-oauth.d.ts.map +1 -0
- package/dist/store/service-oauth.js +524 -0
- package/dist/store/service-oauth.js.map +1 -0
- package/dist/store/service-trust-gate.d.ts +164 -0
- package/dist/store/service-trust-gate.d.ts.map +1 -0
- package/dist/store/service-trust-gate.js +122 -0
- package/dist/store/service-trust-gate.js.map +1 -0
- package/dist/store/session-store.d.ts +52 -13
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +71 -13
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +7 -0
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +1 -0
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +5 -0
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +36 -4
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/writer-lease-schema.d.ts +392 -0
- package/dist/store/writer-lease-schema.d.ts.map +1 -0
- package/dist/store/writer-lease-schema.js +142 -0
- package/dist/store/writer-lease-schema.js.map +1 -0
- package/dist/store/writer-lease.d.ts +368 -0
- package/dist/store/writer-lease.d.ts.map +1 -0
- package/dist/store/writer-lease.js +1002 -0
- package/dist/store/writer-lease.js.map +1 -0
- package/dist/tasks/agent-lifecycle-lane.d.ts +175 -0
- package/dist/tasks/agent-lifecycle-lane.d.ts.map +1 -0
- package/dist/tasks/agent-lifecycle-lane.js +176 -0
- package/dist/tasks/agent-lifecycle-lane.js.map +1 -0
- package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
- package/dist/tasks/backfill-child-projections.js +14 -9
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/complete.d.ts +17 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +60 -20
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/depends-waiver-audit.d.ts +52 -0
- package/dist/tasks/depends-waiver-audit.d.ts.map +1 -0
- package/dist/tasks/depends-waiver-audit.js +36 -0
- package/dist/tasks/depends-waiver-audit.js.map +1 -0
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +14 -7
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/engine-wrap.d.ts +36 -2
- package/dist/tasks/engine-wrap.d.ts.map +1 -1
- package/dist/tasks/engine-wrap.js +44 -2
- package/dist/tasks/engine-wrap.js.map +1 -1
- package/dist/tasks/index.d.ts +1 -0
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +1 -0
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/ops.d.ts +3 -0
- package/dist/tasks/ops.d.ts.map +1 -1
- package/dist/tasks/task-ops.d.ts +1 -1
- package/dist/tasks/task-ops.d.ts.map +1 -1
- package/dist/tasks/task-ops.js +3 -1
- package/dist/tasks/task-ops.js.map +1 -1
- package/dist/tasks/task-reparent.d.ts +90 -0
- package/dist/tasks/task-reparent.d.ts.map +1 -1
- package/dist/tasks/task-reparent.js +171 -0
- package/dist/tasks/task-reparent.js.map +1 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +10 -4
- package/dist/telemetry/index.js.map +1 -1
- package/dist/tools/agent-registry.d.ts +250 -0
- package/dist/tools/agent-registry.d.ts.map +1 -0
- package/dist/tools/agent-registry.js +292 -0
- package/dist/tools/agent-registry.js.map +1 -0
- package/dist/tools/agent-tool-families.d.ts +107 -0
- package/dist/tools/agent-tool-families.d.ts.map +1 -0
- package/dist/tools/agent-tool-families.js +527 -0
- package/dist/tools/agent-tool-families.js.map +1 -0
- package/dist/tools/browser-driver.d.ts +183 -0
- package/dist/tools/browser-driver.d.ts.map +1 -0
- package/dist/tools/browser-driver.js +242 -0
- package/dist/tools/browser-driver.js.map +1 -0
- package/dist/tools/builtin-agent-tools.d.ts +36 -0
- package/dist/tools/builtin-agent-tools.d.ts.map +1 -0
- package/dist/tools/builtin-agent-tools.js +191 -0
- package/dist/tools/builtin-agent-tools.js.map +1 -0
- package/dist/tools/dispatch.d.ts +370 -0
- package/dist/tools/dispatch.d.ts.map +1 -0
- package/dist/tools/dispatch.js +505 -0
- package/dist/tools/dispatch.js.map +1 -0
- package/dist/tools/env-scrub.d.ts +93 -0
- package/dist/tools/env-scrub.d.ts.map +1 -0
- package/dist/tools/env-scrub.js +176 -0
- package/dist/tools/env-scrub.js.map +1 -0
- package/dist/tools/exec-code-agent-tool.d.ts +179 -0
- package/dist/tools/exec-code-agent-tool.d.ts.map +1 -0
- package/dist/tools/exec-code-agent-tool.js +239 -0
- package/dist/tools/exec-code-agent-tool.js.map +1 -0
- package/dist/tools/fs.d.ts +30 -0
- package/dist/tools/fs.d.ts.map +1 -1
- package/dist/tools/fs.js +55 -2
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/guard.d.ts +15 -0
- package/dist/tools/guard.d.ts.map +1 -1
- package/dist/tools/guard.js +49 -12
- package/dist/tools/guard.js.map +1 -1
- package/dist/tools/index.d.ts +16 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-agent-tool.d.ts +189 -0
- package/dist/tools/mcp-agent-tool.d.ts.map +1 -0
- package/dist/tools/mcp-agent-tool.js +243 -0
- package/dist/tools/mcp-agent-tool.js.map +1 -0
- package/dist/tools/media-agent-tools.d.ts +105 -0
- package/dist/tools/media-agent-tools.d.ts.map +1 -0
- package/dist/tools/media-agent-tools.js +255 -0
- package/dist/tools/media-agent-tools.js.map +1 -0
- package/dist/tools/memory-agent-tools.d.ts +99 -0
- package/dist/tools/memory-agent-tools.d.ts.map +1 -0
- package/dist/tools/memory-agent-tools.js +190 -0
- package/dist/tools/memory-agent-tools.js.map +1 -0
- package/dist/tools/pty.d.ts +45 -0
- package/dist/tools/pty.d.ts.map +1 -0
- package/dist/tools/pty.js +166 -0
- package/dist/tools/pty.js.map +1 -0
- package/dist/tools/schedule-agent-tools.d.ts +151 -0
- package/dist/tools/schedule-agent-tools.d.ts.map +1 -0
- package/dist/tools/schedule-agent-tools.js +238 -0
- package/dist/tools/schedule-agent-tools.js.map +1 -0
- package/dist/tools/schema-gen.d.ts +57 -0
- package/dist/tools/schema-gen.d.ts.map +1 -0
- package/dist/tools/schema-gen.js +52 -0
- package/dist/tools/schema-gen.js.map +1 -0
- package/dist/tools/shell.d.ts +12 -0
- package/dist/tools/shell.d.ts.map +1 -1
- package/dist/tools/shell.js +14 -1
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/skill-agent-tool.d.ts +108 -0
- package/dist/tools/skill-agent-tool.d.ts.map +1 -0
- package/dist/tools/skill-agent-tool.js +135 -0
- package/dist/tools/skill-agent-tool.js.map +1 -0
- package/dist/tools/web-agent-tools.d.ts +72 -0
- package/dist/tools/web-agent-tools.d.ts.map +1 -0
- package/dist/tools/web-agent-tools.js +393 -0
- package/dist/tools/web-agent-tools.js.map +1 -0
- package/dist/tools/web-search-backends.d.ts +156 -0
- package/dist/tools/web-search-backends.d.ts.map +1 -0
- package/dist/tools/web-search-backends.js +290 -0
- package/dist/tools/web-search-backends.js.map +1 -0
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +17 -1
- package/dist/validation/engine-ops.js.map +1 -1
- package/dist/validation/ops.d.ts +1 -15
- package/dist/validation/ops.d.ts.map +1 -1
- package/dist/validation/ops.js +0 -20
- package/dist/validation/ops.js.map +1 -1
- package/migrations/drizzle-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -0
- package/migrations/drizzle-cleo-global/20260607000000_t11891-writer-leases/migration.sql +55 -0
- package/migrations/drizzle-cleo-global/20260607010000_t11639-session-manifest/migration.sql +43 -0
- package/migrations/drizzle-cleo-global/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
- package/migrations/drizzle-cleo-global/20260608010000_t11709-accounts-credential-pool/migration.sql +72 -0
- package/migrations/drizzle-cleo-global/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
- package/migrations/drizzle-cleo-global/20260609000000_t11937-service-vault/migration.sql +93 -0
- package/migrations/drizzle-cleo-global/20260609010000_t11733-models-catalog/migration.sql +65 -0
- package/migrations/drizzle-cleo-global/20260609020000_t11703-providers/migration.sql +52 -0
- package/migrations/drizzle-cleo-global/20260610000000_t11962-schedules/migration.sql +48 -0
- package/migrations/drizzle-cleo-project/20260607000000_t11891-writer-leases/migration.sql +55 -0
- package/migrations/drizzle-cleo-project/20260607010000_t11639-session-parent/migration.sql +22 -0
- package/migrations/drizzle-cleo-project/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
- package/migrations/drizzle-cleo-project/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
- package/migrations/drizzle-cleo-project/20260610000000_t11962-schedules/migration.sql +48 -0
- package/package.json +26 -14
- package/dist/lifecycle/chain-composition.d.ts +0 -30
- package/dist/lifecycle/chain-composition.d.ts.map +0 -1
- package/dist/lifecycle/chain-composition.js +0 -152
- package/dist/lifecycle/chain-composition.js.map +0 -1
- package/dist/lifecycle/chain-store.d.ts +0 -70
- package/dist/lifecycle/chain-store.d.ts.map +0 -1
- package/dist/lifecycle/chain-store.js +0 -246
- package/dist/lifecycle/chain-store.js.map +0 -1
- package/dist/lifecycle/default-chain.d.ts +0 -39
- package/dist/lifecycle/default-chain.d.ts.map +0 -1
- package/dist/lifecycle/default-chain.js +0 -176
- package/dist/lifecycle/default-chain.js.map +0 -1
- package/dist/lifecycle/tessera-engine.d.ts +0 -48
- package/dist/lifecycle/tessera-engine.d.ts.map +0 -1
- package/dist/lifecycle/tessera-engine.js +0 -249
- package/dist/lifecycle/tessera-engine.js.map +0 -1
- package/dist/validation/chain-validation.d.ts +0 -43
- package/dist/validation/chain-validation.d.ts.map +0 -1
- package/dist/validation/chain-validation.js +0 -146
- package/dist/validation/chain-validation.js.map +0 -1
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native MCP client (fan-IN) agent tool — connect-time `listTools` → register each
|
|
3
|
+
* remote tool into the {@link ./agent-registry.js | AgentToolRegistry}
|
|
4
|
+
* (T11948 · M7 · epic T11456 · SG-TOOLS · satisfies T11593 EP-MCP-HOST-FANIN + T1746).
|
|
5
|
+
*
|
|
6
|
+
* Where the runtime gateway is the MCP *server* (fan-OUT: it EXPOSES cleo ops as
|
|
7
|
+
* MCP tools), this is the MCP *client* (fan-IN: it CONNECTS to an external MCP
|
|
8
|
+
* server and PULLS its tools into cleo's own agent loop). On connect the client
|
|
9
|
+
* performs the MCP handshake (`initialize` → `tools/list`) and registers EACH
|
|
10
|
+
* remote tool as a proxy {@link AgentToolDescriptor} BEFORE the registry is frozen
|
|
11
|
+
* (init-time fan-in). Each proxy tool's `execute` issues a `tools/call` over the
|
|
12
|
+
* SAME transport and formats the result for the loop; a transport failure becomes a
|
|
13
|
+
* typed result (the executable NEVER throws — the frozen ToolDispatchEngine is
|
|
14
|
+
* unchanged).
|
|
15
|
+
*
|
|
16
|
+
* This REPLACES the external mcp-tool dependency for the host-loop path. It is a
|
|
17
|
+
* deliberately-minimal native client — NO external MCP SDK dependency: the wire is
|
|
18
|
+
* the standard MCP JSON-RPC ({@link McpTransport}), with stdio / SSE / HTTP
|
|
19
|
+
* transports as concrete {@link McpTransport} implementations. Placed in `core` per
|
|
20
|
+
* the package boundary (consumed by the harness, never redefined there — Gate-11).
|
|
21
|
+
*
|
|
22
|
+
* ## Availability (AC — live-connection only)
|
|
23
|
+
*
|
|
24
|
+
* A fan-in tool is available ONLY while its MCP server connection is live. The
|
|
25
|
+
* client exposes an {@link McpConnection.isLive} cell that each proxy tool's
|
|
26
|
+
* {@link AvailabilityCheck} reads; once the connection closes (or its transport
|
|
27
|
+
* errors fatally), the proxy tools report unavailable rather than dispatching into
|
|
28
|
+
* a dead transport.
|
|
29
|
+
*
|
|
30
|
+
* ## Gate-13
|
|
31
|
+
*
|
|
32
|
+
* No model/transport/provider LLM client is constructed here — the MCP transport
|
|
33
|
+
* speaks the tool protocol, not an LLM wire. There is no chokepoint concern.
|
|
34
|
+
*
|
|
35
|
+
* @epic T11456
|
|
36
|
+
* @task T11948
|
|
37
|
+
* @see ../../runtime/src/gateway/mcp/types.ts — the MCP server (fan-out) wire types this mirrors
|
|
38
|
+
* @see ./exec-code-agent-tool.js — the injectable-seam + self-registering-marker pattern mirrored here
|
|
39
|
+
*/
|
|
40
|
+
import { z } from 'zod';
|
|
41
|
+
import { getLogger } from '../logger.js';
|
|
42
|
+
const log = getLogger('tool-mcp-client');
|
|
43
|
+
/** Transport kinds a native MCP client connection can speak over. */
|
|
44
|
+
export const MCP_TRANSPORT_KINDS = ['stdio', 'sse', 'http'];
|
|
45
|
+
/**
|
|
46
|
+
* Perform the MCP handshake over `transport` and discover its tools: send
|
|
47
|
+
* `initialize`, then `tools/list`. Returns a live {@link McpConnection} whose
|
|
48
|
+
* liveness cell is `true` until {@link McpConnection.disconnect}. The transport is
|
|
49
|
+
* supplied by the caller (so stdio / SSE / HTTP — or an in-memory fake — all flow
|
|
50
|
+
* through the same path).
|
|
51
|
+
*
|
|
52
|
+
* @param serverName - Stable name to namespace this server's fan-in tools.
|
|
53
|
+
* @param transport - The MCP transport to handshake over.
|
|
54
|
+
* @returns The connected {@link McpConnection}.
|
|
55
|
+
* @throws When `initialize` or `tools/list` fails (the connection is not live).
|
|
56
|
+
*/
|
|
57
|
+
export async function connectMcpServer(serverName, transport) {
|
|
58
|
+
await transport.request('initialize', {
|
|
59
|
+
protocolVersion: '2025-06-18',
|
|
60
|
+
capabilities: {},
|
|
61
|
+
clientInfo: { name: 'cleo', version: '0' },
|
|
62
|
+
});
|
|
63
|
+
const listed = await transport.request('tools/list', {});
|
|
64
|
+
const tools = extractRemoteTools(listed);
|
|
65
|
+
let live = true;
|
|
66
|
+
return {
|
|
67
|
+
serverName,
|
|
68
|
+
transport,
|
|
69
|
+
tools,
|
|
70
|
+
isLive: () => live,
|
|
71
|
+
disconnect: async () => {
|
|
72
|
+
live = false;
|
|
73
|
+
try {
|
|
74
|
+
await transport.close();
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
log.debug({ err, serverName }, 'mcp: transport close failed (ignored)');
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** Narrow a `tools/list` result into an {@link McpRemoteTool}[] defensively. */
|
|
83
|
+
function extractRemoteTools(listed) {
|
|
84
|
+
if (typeof listed === 'object' &&
|
|
85
|
+
listed !== null &&
|
|
86
|
+
'tools' in listed &&
|
|
87
|
+
Array.isArray(listed.tools)) {
|
|
88
|
+
return listed.tools.filter((t) => typeof t?.name === 'string');
|
|
89
|
+
}
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The namespaced agent-tool name for a remote MCP tool: `mcp_<server>_<tool>`. So
|
|
94
|
+
* two servers exposing a same-named tool never collide in the registry.
|
|
95
|
+
*
|
|
96
|
+
* @param serverName - The MCP server's stable name.
|
|
97
|
+
* @param toolName - The remote tool's name.
|
|
98
|
+
* @returns The namespaced, registry-unique tool name.
|
|
99
|
+
*/
|
|
100
|
+
export function mcpToolName(serverName, toolName) {
|
|
101
|
+
const safe = (s) => s.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
102
|
+
return `mcp_${safe(serverName)}_${safe(toolName)}`;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Build a Zod parameter schema from a remote tool's JSON Schema. The fan-in proxy
|
|
106
|
+
* accepts an open object (the remote server is the source of truth for its own
|
|
107
|
+
* validation); we surface declared properties as a permissive record so the model
|
|
108
|
+
* sees the shape while the remote performs authoritative validation.
|
|
109
|
+
*
|
|
110
|
+
* @param tool - The remote tool definition.
|
|
111
|
+
* @returns A Zod schema for the proxy's parameters.
|
|
112
|
+
*/
|
|
113
|
+
function remoteToolSchema(tool) {
|
|
114
|
+
const props = tool.inputSchema?.properties ?? {};
|
|
115
|
+
const shape = {};
|
|
116
|
+
const required = new Set(tool.inputSchema?.required ?? []);
|
|
117
|
+
for (const [key, prop] of Object.entries(props)) {
|
|
118
|
+
let field;
|
|
119
|
+
switch (prop.type) {
|
|
120
|
+
case 'number':
|
|
121
|
+
case 'integer':
|
|
122
|
+
field = z.number();
|
|
123
|
+
break;
|
|
124
|
+
case 'boolean':
|
|
125
|
+
field = z.boolean();
|
|
126
|
+
break;
|
|
127
|
+
case 'array':
|
|
128
|
+
field = z.array(z.unknown());
|
|
129
|
+
break;
|
|
130
|
+
case 'object':
|
|
131
|
+
field = z.record(z.string(), z.unknown());
|
|
132
|
+
break;
|
|
133
|
+
default:
|
|
134
|
+
field = z.string();
|
|
135
|
+
}
|
|
136
|
+
if (prop.description)
|
|
137
|
+
field = field.describe(prop.description);
|
|
138
|
+
shape[key] = required.has(key) ? field : field.optional();
|
|
139
|
+
}
|
|
140
|
+
return z.object(shape).passthrough();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Build the proxy {@link AgentToolDescriptor} for ONE remote tool over a live
|
|
144
|
+
* connection. Its `execute` issues `tools/call` over the connection's transport
|
|
145
|
+
* and formats the result; a transport / server error becomes a typed result (never
|
|
146
|
+
* throws). Its availability returns `true` only while the connection is live.
|
|
147
|
+
*
|
|
148
|
+
* @param conn - The live MCP connection.
|
|
149
|
+
* @param tool - The remote tool to proxy.
|
|
150
|
+
* @returns The proxy descriptor to register.
|
|
151
|
+
*/
|
|
152
|
+
export function buildMcpProxyTool(conn, tool) {
|
|
153
|
+
const liveOnly = () => conn.isLive();
|
|
154
|
+
return {
|
|
155
|
+
name: mcpToolName(conn.serverName, tool.name),
|
|
156
|
+
// 'net' — the proxy reaches an external MCP server over its transport.
|
|
157
|
+
class: 'net',
|
|
158
|
+
description: tool.description ??
|
|
159
|
+
`Proxy for remote MCP tool "${tool.name}" on server "${conn.serverName}".`,
|
|
160
|
+
toolset: 'agent',
|
|
161
|
+
stateless: false,
|
|
162
|
+
available: liveOnly,
|
|
163
|
+
parameters: remoteToolSchema(tool),
|
|
164
|
+
execute: async (rawArgs) => {
|
|
165
|
+
if (!conn.isLive()) {
|
|
166
|
+
return {
|
|
167
|
+
ok: false,
|
|
168
|
+
error: {
|
|
169
|
+
code: 'E_MCP_CONNECTION_DEAD',
|
|
170
|
+
message: `MCP server "${conn.serverName}" connection is no longer live`,
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
try {
|
|
175
|
+
const result = (await conn.transport.request('tools/call', {
|
|
176
|
+
name: tool.name,
|
|
177
|
+
arguments: rawArgs,
|
|
178
|
+
}));
|
|
179
|
+
const text = (result.content ?? [])
|
|
180
|
+
.map((c) => c.text ?? '')
|
|
181
|
+
.filter((t) => t.length > 0)
|
|
182
|
+
.join('\n');
|
|
183
|
+
return { ok: result.isError !== true, isError: result.isError === true, content: text };
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
// A transport / server error is a typed dispatch failure, never a throw.
|
|
187
|
+
return {
|
|
188
|
+
ok: false,
|
|
189
|
+
error: {
|
|
190
|
+
code: 'E_MCP_CALL_FAILED',
|
|
191
|
+
message: err instanceof Error ? err.message : String(err),
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Register every fan-in proxy tool for a live MCP connection into `registry`. Pure
|
|
200
|
+
* registration over an ALREADY-connected {@link McpConnection} — the connect /
|
|
201
|
+
* `tools/list` happened in {@link connectMcpServer} (which the host calls at
|
|
202
|
+
* init-time, before the registry is frozen). Each remote tool becomes one proxy
|
|
203
|
+
* descriptor (AC1); each is hidden once the connection drops (AC — live-only).
|
|
204
|
+
*
|
|
205
|
+
* @param registry - The registry to populate (must not yet be frozen).
|
|
206
|
+
* @param conn - The live MCP connection whose tools to fan in.
|
|
207
|
+
* @returns The registered proxy tool names.
|
|
208
|
+
*/
|
|
209
|
+
export function registerMcpConnectionTools(registry, conn) {
|
|
210
|
+
const names = [];
|
|
211
|
+
for (const tool of conn.tools) {
|
|
212
|
+
const descriptor = buildMcpProxyTool(conn, tool);
|
|
213
|
+
registry.register(descriptor);
|
|
214
|
+
names.push(descriptor.name);
|
|
215
|
+
}
|
|
216
|
+
return names;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Register the fan-in proxy tools for every supplied MCP connection. Pure
|
|
220
|
+
* registration — no network handshake here (the connections are already live);
|
|
221
|
+
* the connect happens earlier in {@link connectMcpServer}. With no connections
|
|
222
|
+
* this is a no-op (the common no-MCP-configured case).
|
|
223
|
+
*
|
|
224
|
+
* @param registry - The registry to populate.
|
|
225
|
+
* @param options - The live connections to fan in.
|
|
226
|
+
*/
|
|
227
|
+
export function registerMcpAgentTools(registry, options = {}) {
|
|
228
|
+
for (const conn of options.connections ?? []) {
|
|
229
|
+
registerMcpConnectionTools(registry, conn);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Self-registration marker (AC1) — the identifier the
|
|
234
|
+
* {@link AgentToolRegistry.discover} bounded source scan greps for. With no live
|
|
235
|
+
* connections supplied this registers nothing (a host wires connections via
|
|
236
|
+
* {@link registerMcpAgentTools} directly with its connected servers).
|
|
237
|
+
*
|
|
238
|
+
* @param registry - The registry to populate.
|
|
239
|
+
*/
|
|
240
|
+
export function registerAgentTools(registry) {
|
|
241
|
+
registerMcpAgentTools(registry);
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=mcp-agent-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-agent-tool.js","sourceRoot":"","sources":["../../src/tools/mcp-agent-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vision / media agent-tool family — `vision_analyze` / `image_generate` /
|
|
3
|
+
* `text_to_speech` (T11951 · M7 · epic T11456 · SG-TOOLS).
|
|
4
|
+
*
|
|
5
|
+
* The FIRST occupants of the previously-empty `media` toolset. Every model /
|
|
6
|
+
* multimodal call routes THROUGH the single E9 chokepoint
|
|
7
|
+
* ({@link import('../llm/system-resolver.js')}'s `resolveLLMForSystem` →
|
|
8
|
+
* {@link import('../llm/model-runner.js')}'s `ModelRunner`), EXACTLY like
|
|
9
|
+
* `browser_vision` ({@link ./web-agent-tools.js}). There is NO raw provider client,
|
|
10
|
+
* NO new transport, NO API-key read at this call-site — the plaintext credential is
|
|
11
|
+
* materialized from the sealed handle ONLY at the wire inside `ModelRunner.build`
|
|
12
|
+
* (Gate-13 stays green).
|
|
13
|
+
*
|
|
14
|
+
* - **`vision_analyze`** — read a local image + a prompt, send them as a single
|
|
15
|
+
* multimodal user turn through the chokepoint, return the model's analysis.
|
|
16
|
+
* - **`image_generate`** — send an image prompt through the chokepoint; returns
|
|
17
|
+
* the model's response (text/asset-ref it emits). When the resolved model
|
|
18
|
+
* cannot generate an image the chokepoint degrades — the tool surfaces an
|
|
19
|
+
* `unsupported` flag rather than constructing a bespoke image client.
|
|
20
|
+
* - **`text_to_speech`** — send text through the chokepoint for narration intent;
|
|
21
|
+
* same degradation contract when the modality is unsupported.
|
|
22
|
+
*
|
|
23
|
+
* ## Availability (AC3 — mirrors `browser_vision`)
|
|
24
|
+
*
|
|
25
|
+
* Hidden unless outbound egress is permitted AND the host advertises a multimodal
|
|
26
|
+
* model (`networkEgressAllowed !== false && capabilities.multimodal === true`).
|
|
27
|
+
* Registered-but-hidden so core runs credential-OFF / egress-OFF and the catalog
|
|
28
|
+
* stays stable. (The capability flag is the host's "a multimodal model is
|
|
29
|
+
* resolvable" promise — availability is a SYNC predicate, so the actual resolution
|
|
30
|
+
* happens at `execute` time with graceful degradation when no credential resolves.)
|
|
31
|
+
*
|
|
32
|
+
* @epic T11456
|
|
33
|
+
* @task T11951
|
|
34
|
+
* @see ./web-agent-tools.js — `browser_vision`, the E9-routed multimodal pattern mirrored here
|
|
35
|
+
* @see ../llm/system-resolver.js — `resolveLLMForSystem` (the E9 chokepoint)
|
|
36
|
+
* @see ../llm/model-runner.js — `ModelRunner` (the single SSoT wire builder)
|
|
37
|
+
*/
|
|
38
|
+
import type { AgentToolRegistry, AvailabilityCheck } from './agent-registry.js';
|
|
39
|
+
/**
|
|
40
|
+
* Available only when outbound egress is permitted AND the host advertises a
|
|
41
|
+
* multimodal model. Mirrors `browser_vision`'s availability: registered-but-hidden
|
|
42
|
+
* (so the `media` catalog is stable) until a context advertises both
|
|
43
|
+
* `networkEgressAllowed !== false` and `capabilities.multimodal === true`.
|
|
44
|
+
*/
|
|
45
|
+
export declare const multimodalAvailable: AvailabilityCheck;
|
|
46
|
+
/**
|
|
47
|
+
* Read a local image file as base64 + sniff its MIME type from the extension.
|
|
48
|
+
* Injectable so the unit test supplies image bytes without a real file on disk.
|
|
49
|
+
*/
|
|
50
|
+
export type ImageReader = (path: string) => Promise<{
|
|
51
|
+
base64: string;
|
|
52
|
+
mediaType: string;
|
|
53
|
+
}>;
|
|
54
|
+
/** The outcome of a chokepoint-routed media call. */
|
|
55
|
+
export interface MediaModelResult {
|
|
56
|
+
/** Whether a model produced a response. */
|
|
57
|
+
readonly ok: boolean;
|
|
58
|
+
/** The model's textual response (analysis / description / refusal). */
|
|
59
|
+
readonly content?: string;
|
|
60
|
+
/** The model that answered (present once a credential resolves). */
|
|
61
|
+
readonly model?: string;
|
|
62
|
+
/**
|
|
63
|
+
* `true` when no credential resolved through the E9 chokepoint — the call
|
|
64
|
+
* degraded gracefully rather than throwing (mirrors `browser_vision`).
|
|
65
|
+
*/
|
|
66
|
+
readonly aiUnavailable?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* `true` when the resolved model cannot serve the requested modality
|
|
69
|
+
* (e.g. true image synthesis / TTS audio). The tool does NOT construct a
|
|
70
|
+
* bespoke client for an unsupported modality (Gate-13) — it reports this.
|
|
71
|
+
*/
|
|
72
|
+
readonly unsupported?: boolean;
|
|
73
|
+
/** A stable code + message when the call failed for another reason. */
|
|
74
|
+
readonly error?: {
|
|
75
|
+
readonly code: string;
|
|
76
|
+
readonly message: string;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/** Options for {@link registerMediaAgentTools} — all injectable for testing. */
|
|
80
|
+
export interface MediaAgentToolOptions {
|
|
81
|
+
/** The local-image reader. Defaults to a real `fs` read + MIME sniff. */
|
|
82
|
+
readonly readImage?: ImageReader;
|
|
83
|
+
/** Project root threaded into the E9 resolver (defaults to the resolver's own fallback). */
|
|
84
|
+
readonly projectRoot?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Register the vision / media agent-tool family into `registry`. Pure
|
|
88
|
+
* registration — no model is resolved, no credential is read, no file is opened
|
|
89
|
+
* here; all of that happens later inside each tool's `execute` through the E9
|
|
90
|
+
* chokepoint (and the injected image reader). Import-time side-effect-free.
|
|
91
|
+
*
|
|
92
|
+
* @param registry - The registry to populate.
|
|
93
|
+
* @param options - Injectable image reader / project root (for testing).
|
|
94
|
+
*/
|
|
95
|
+
export declare function registerMediaAgentTools(registry: AgentToolRegistry, options?: MediaAgentToolOptions): void;
|
|
96
|
+
/**
|
|
97
|
+
* Self-registration marker (AC1) — the identifier the
|
|
98
|
+
* {@link AgentToolRegistry.discover} bounded source scan greps for. Aliases
|
|
99
|
+
* {@link registerMediaAgentTools} so a future scan-dir discovery (or the built-in
|
|
100
|
+
* aggregator) can call it uniformly with the other agent-tool modules.
|
|
101
|
+
*
|
|
102
|
+
* @param registry - The registry to populate.
|
|
103
|
+
*/
|
|
104
|
+
export declare function registerAgentTools(registry: AgentToolRegistry): void;
|
|
105
|
+
//# sourceMappingURL=media-agent-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-agent-tools.d.ts","sourceRoot":"","sources":["../../src/tools/media-agent-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAOH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAI7B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAC2C,CAAC;AAE9E;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAuB3F,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;IACjC,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AA4DD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAsHN;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAEpE"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vision / media agent-tool family — `vision_analyze` / `image_generate` /
|
|
3
|
+
* `text_to_speech` (T11951 · M7 · epic T11456 · SG-TOOLS).
|
|
4
|
+
*
|
|
5
|
+
* The FIRST occupants of the previously-empty `media` toolset. Every model /
|
|
6
|
+
* multimodal call routes THROUGH the single E9 chokepoint
|
|
7
|
+
* ({@link import('../llm/system-resolver.js')}'s `resolveLLMForSystem` →
|
|
8
|
+
* {@link import('../llm/model-runner.js')}'s `ModelRunner`), EXACTLY like
|
|
9
|
+
* `browser_vision` ({@link ./web-agent-tools.js}). There is NO raw provider client,
|
|
10
|
+
* NO new transport, NO API-key read at this call-site — the plaintext credential is
|
|
11
|
+
* materialized from the sealed handle ONLY at the wire inside `ModelRunner.build`
|
|
12
|
+
* (Gate-13 stays green).
|
|
13
|
+
*
|
|
14
|
+
* - **`vision_analyze`** — read a local image + a prompt, send them as a single
|
|
15
|
+
* multimodal user turn through the chokepoint, return the model's analysis.
|
|
16
|
+
* - **`image_generate`** — send an image prompt through the chokepoint; returns
|
|
17
|
+
* the model's response (text/asset-ref it emits). When the resolved model
|
|
18
|
+
* cannot generate an image the chokepoint degrades — the tool surfaces an
|
|
19
|
+
* `unsupported` flag rather than constructing a bespoke image client.
|
|
20
|
+
* - **`text_to_speech`** — send text through the chokepoint for narration intent;
|
|
21
|
+
* same degradation contract when the modality is unsupported.
|
|
22
|
+
*
|
|
23
|
+
* ## Availability (AC3 — mirrors `browser_vision`)
|
|
24
|
+
*
|
|
25
|
+
* Hidden unless outbound egress is permitted AND the host advertises a multimodal
|
|
26
|
+
* model (`networkEgressAllowed !== false && capabilities.multimodal === true`).
|
|
27
|
+
* Registered-but-hidden so core runs credential-OFF / egress-OFF and the catalog
|
|
28
|
+
* stays stable. (The capability flag is the host's "a multimodal model is
|
|
29
|
+
* resolvable" promise — availability is a SYNC predicate, so the actual resolution
|
|
30
|
+
* happens at `execute` time with graceful degradation when no credential resolves.)
|
|
31
|
+
*
|
|
32
|
+
* @epic T11456
|
|
33
|
+
* @task T11951
|
|
34
|
+
* @see ./web-agent-tools.js — `browser_vision`, the E9-routed multimodal pattern mirrored here
|
|
35
|
+
* @see ../llm/system-resolver.js — `resolveLLMForSystem` (the E9 chokepoint)
|
|
36
|
+
* @see ../llm/model-runner.js — `ModelRunner` (the single SSoT wire builder)
|
|
37
|
+
*/
|
|
38
|
+
import { readFile } from 'node:fs/promises';
|
|
39
|
+
import { extname } from 'node:path';
|
|
40
|
+
import { z } from 'zod';
|
|
41
|
+
import { getLogger } from '../logger.js';
|
|
42
|
+
const log = getLogger('tool-media-agent');
|
|
43
|
+
/**
|
|
44
|
+
* Available only when outbound egress is permitted AND the host advertises a
|
|
45
|
+
* multimodal model. Mirrors `browser_vision`'s availability: registered-but-hidden
|
|
46
|
+
* (so the `media` catalog is stable) until a context advertises both
|
|
47
|
+
* `networkEgressAllowed !== false` and `capabilities.multimodal === true`.
|
|
48
|
+
*/
|
|
49
|
+
export const multimodalAvailable = (ctx) => ctx.networkEgressAllowed !== false && ctx.capabilities?.multimodal === true;
|
|
50
|
+
/** Default {@link ImageReader} — a local `fs` read + extension-based MIME sniff. */
|
|
51
|
+
const defaultImageReader = async (path) => {
|
|
52
|
+
const bytes = await readFile(path);
|
|
53
|
+
return { base64: bytes.toString('base64'), mediaType: mediaTypeForPath(path) };
|
|
54
|
+
};
|
|
55
|
+
/** Map a file extension to its image MIME type (defaults to `image/png`). */
|
|
56
|
+
function mediaTypeForPath(path) {
|
|
57
|
+
switch (extname(path).toLowerCase()) {
|
|
58
|
+
case '.jpg':
|
|
59
|
+
case '.jpeg':
|
|
60
|
+
return 'image/jpeg';
|
|
61
|
+
case '.webp':
|
|
62
|
+
return 'image/webp';
|
|
63
|
+
case '.gif':
|
|
64
|
+
return 'image/gif';
|
|
65
|
+
default:
|
|
66
|
+
return 'image/png';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolve an LLM through the SINGLE E9 chokepoint and send `messages` as one turn
|
|
71
|
+
* via the SSoT {@link ModelRunner}. The sealed credential is materialized ONLY at
|
|
72
|
+
* the wire (inside `ModelRunner.build`); there is NO raw provider/transport
|
|
73
|
+
* construction here (Gate-13). Returns `aiUnavailable: true` when no credential
|
|
74
|
+
* resolves — graceful degradation, not an error (mirrors `runBrowserVision`).
|
|
75
|
+
*
|
|
76
|
+
* @param messages - The provider-neutral turn (text and/or image blocks).
|
|
77
|
+
* @param projectRoot - Project root for the resolver.
|
|
78
|
+
* @returns The {@link MediaModelResult}.
|
|
79
|
+
*/
|
|
80
|
+
async function runChokepointModel(messages, projectRoot) {
|
|
81
|
+
// E9 resolution chokepoint — the ONLY route to an LLM credential. Never throws.
|
|
82
|
+
const { resolveLLMForSystem } = await import('../llm/system-resolver.js');
|
|
83
|
+
const resolved = await resolveLLMForSystem('task-executor', {
|
|
84
|
+
...(projectRoot !== undefined ? { projectRoot } : {}),
|
|
85
|
+
});
|
|
86
|
+
if (!resolved.sealedCredential) {
|
|
87
|
+
return { ok: false, aiUnavailable: true };
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
// Build the wire surfaces via the single SSoT ModelRunner (Gate-13: no raw
|
|
91
|
+
// transport / provider construction here). The token is materialized from the
|
|
92
|
+
// sealed handle inside ModelRunner only.
|
|
93
|
+
const { ModelRunner } = await import('../llm/model-runner.js');
|
|
94
|
+
const apiKey = (await resolved.sealedCredential.fetch()).value;
|
|
95
|
+
const built = await ModelRunner.build({
|
|
96
|
+
provider: resolved.provider,
|
|
97
|
+
model: resolved.model,
|
|
98
|
+
credential: resolved.credential
|
|
99
|
+
? {
|
|
100
|
+
provider: resolved.credential.provider,
|
|
101
|
+
apiKey,
|
|
102
|
+
source: resolved.credential.source,
|
|
103
|
+
authType: resolved.credential.authType,
|
|
104
|
+
}
|
|
105
|
+
: null,
|
|
106
|
+
source: resolved.source,
|
|
107
|
+
...(resolved.credentialLabel !== undefined
|
|
108
|
+
? { credentialLabel: resolved.credentialLabel }
|
|
109
|
+
: {}),
|
|
110
|
+
apiMode: resolved.apiMode,
|
|
111
|
+
baseUrl: resolved.baseUrl,
|
|
112
|
+
authType: resolved.authType,
|
|
113
|
+
...(resolved.capabilities !== undefined ? { capabilities: resolved.capabilities } : {}),
|
|
114
|
+
});
|
|
115
|
+
const response = await built.session.send(messages);
|
|
116
|
+
return { ok: true, content: response.content ?? undefined, model: resolved.model };
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
log.warn({ err }, 'media tool: chokepoint model call failed — returning unavailable');
|
|
120
|
+
return { ok: false, model: resolved.model, aiUnavailable: true };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Register the vision / media agent-tool family into `registry`. Pure
|
|
125
|
+
* registration — no model is resolved, no credential is read, no file is opened
|
|
126
|
+
* here; all of that happens later inside each tool's `execute` through the E9
|
|
127
|
+
* chokepoint (and the injected image reader). Import-time side-effect-free.
|
|
128
|
+
*
|
|
129
|
+
* @param registry - The registry to populate.
|
|
130
|
+
* @param options - Injectable image reader / project root (for testing).
|
|
131
|
+
*/
|
|
132
|
+
export function registerMediaAgentTools(registry, options = {}) {
|
|
133
|
+
const readImage = options.readImage ?? defaultImageReader;
|
|
134
|
+
const projectRoot = options.projectRoot;
|
|
135
|
+
// --- vision_analyze (image + prompt → analysis, via the E9 chokepoint) ----
|
|
136
|
+
registry.register({
|
|
137
|
+
name: 'vision_analyze',
|
|
138
|
+
// 'shell' — the call captures an external model response (its strongest surface).
|
|
139
|
+
class: 'shell',
|
|
140
|
+
description: 'Analyse a local image with a vision model: reads the image and sends it plus a ' +
|
|
141
|
+
'prompt as a multimodal turn through the resolveLLMForSystem chokepoint. Returns ' +
|
|
142
|
+
'the model analysis, or aiUnavailable when no credential resolves.',
|
|
143
|
+
toolset: 'media',
|
|
144
|
+
stateless: true,
|
|
145
|
+
available: multimodalAvailable,
|
|
146
|
+
parameters: z.object({
|
|
147
|
+
imagePath: z.string().describe('Absolute path to the image file to analyse.'),
|
|
148
|
+
prompt: z.string().describe('Question / instruction for the vision model about the image.'),
|
|
149
|
+
}),
|
|
150
|
+
execute: async (rawArgs) => {
|
|
151
|
+
const imagePath = String(rawArgs.imagePath);
|
|
152
|
+
const prompt = String(rawArgs.prompt);
|
|
153
|
+
let image;
|
|
154
|
+
try {
|
|
155
|
+
image = await readImage(imagePath);
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
return {
|
|
159
|
+
ok: false,
|
|
160
|
+
error: {
|
|
161
|
+
code: 'E_IMAGE_READ_FAILED',
|
|
162
|
+
message: `could not read image at "${imagePath}": ${err instanceof Error ? err.message : String(err)}`,
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
const messages = [
|
|
167
|
+
{
|
|
168
|
+
role: 'user',
|
|
169
|
+
content: [
|
|
170
|
+
{ type: 'text', text: prompt },
|
|
171
|
+
{
|
|
172
|
+
type: 'image',
|
|
173
|
+
source: { type: 'base64', data: image.base64, mediaType: image.mediaType },
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
},
|
|
177
|
+
];
|
|
178
|
+
return runChokepointModel(messages, projectRoot);
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
// --- image_generate (prompt → image, via the E9 chokepoint) --------------
|
|
182
|
+
registry.register({
|
|
183
|
+
name: 'image_generate',
|
|
184
|
+
class: 'shell',
|
|
185
|
+
description: 'Generate an image from a text prompt by routing the request through the ' +
|
|
186
|
+
'resolveLLMForSystem chokepoint. When the resolved model cannot synthesize an image, ' +
|
|
187
|
+
'reports unsupported rather than constructing a bespoke image client.',
|
|
188
|
+
toolset: 'media',
|
|
189
|
+
stateless: true,
|
|
190
|
+
available: multimodalAvailable,
|
|
191
|
+
parameters: z.object({
|
|
192
|
+
prompt: z.string().describe('A text description of the image to generate.'),
|
|
193
|
+
}),
|
|
194
|
+
execute: async (rawArgs) => {
|
|
195
|
+
const prompt = String(rawArgs.prompt);
|
|
196
|
+
const messages = [
|
|
197
|
+
{
|
|
198
|
+
role: 'user',
|
|
199
|
+
content: [
|
|
200
|
+
{
|
|
201
|
+
type: 'text',
|
|
202
|
+
text: `Generate an image for the following description. If you cannot produce an image, say so explicitly.\n\n${prompt}`,
|
|
203
|
+
},
|
|
204
|
+
],
|
|
205
|
+
},
|
|
206
|
+
];
|
|
207
|
+
const result = await runChokepointModel(messages, projectRoot);
|
|
208
|
+
// The chat chokepoint does not emit raw image bytes; surface the model's
|
|
209
|
+
// response and flag that true synthesis is not served by this path.
|
|
210
|
+
return { ...result, unsupported: result.ok ? true : result.unsupported };
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
// --- text_to_speech (text → narration intent, via the E9 chokepoint) -----
|
|
214
|
+
registry.register({
|
|
215
|
+
name: 'text_to_speech',
|
|
216
|
+
class: 'shell',
|
|
217
|
+
description: 'Convert text to speech by routing the request through the resolveLLMForSystem ' +
|
|
218
|
+
'chokepoint. When the resolved model cannot synthesize audio, reports unsupported ' +
|
|
219
|
+
'rather than constructing a bespoke TTS client.',
|
|
220
|
+
toolset: 'media',
|
|
221
|
+
stateless: true,
|
|
222
|
+
available: multimodalAvailable,
|
|
223
|
+
parameters: z.object({
|
|
224
|
+
text: z.string().describe('The text to narrate as speech.'),
|
|
225
|
+
}),
|
|
226
|
+
execute: async (rawArgs) => {
|
|
227
|
+
const text = String(rawArgs.text);
|
|
228
|
+
const messages = [
|
|
229
|
+
{
|
|
230
|
+
role: 'user',
|
|
231
|
+
content: [
|
|
232
|
+
{
|
|
233
|
+
type: 'text',
|
|
234
|
+
text: `Produce speech audio for the following text. If you cannot produce audio, say so explicitly.\n\n${text}`,
|
|
235
|
+
},
|
|
236
|
+
],
|
|
237
|
+
},
|
|
238
|
+
];
|
|
239
|
+
const result = await runChokepointModel(messages, projectRoot);
|
|
240
|
+
return { ...result, unsupported: result.ok ? true : result.unsupported };
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Self-registration marker (AC1) — the identifier the
|
|
246
|
+
* {@link AgentToolRegistry.discover} bounded source scan greps for. Aliases
|
|
247
|
+
* {@link registerMediaAgentTools} so a future scan-dir discovery (or the built-in
|
|
248
|
+
* aggregator) can call it uniformly with the other agent-tool modules.
|
|
249
|
+
*
|
|
250
|
+
* @param registry - The registry to populate.
|
|
251
|
+
*/
|
|
252
|
+
export function registerAgentTools(registry) {
|
|
253
|
+
registerMediaAgentTools(registry);
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=media-agent-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-agent-tools.js","sourceRoot":"","sources":["../../src/tools/media-agent-tools.ts"],"names":[],"mappings":"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"}
|