@cleocode/core 2026.6.13 → 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-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/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/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/docs/export-document.js +3704 -680
- 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/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -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 +10 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +18 -1
- package/dist/internal.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.js +5 -5
- 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/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/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 +15 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +8 -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/pi-gondolin-env.d.ts +23 -0
- package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -1
- package/dist/llm/pi/pi-gondolin-env.js +2 -2
- package/dist/llm/pi/pi-gondolin-env.js.map +1 -1
- package/dist/llm/plugin-facade.js +3853 -814
- 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 +36 -0
- package/dist/llm/role-executor.js.map +1 -1
- package/dist/llm/role-resolver.d.ts.map +1 -1
- package/dist/llm/role-resolver.js +9 -2
- package/dist/llm/role-resolver.js.map +1 -1
- package/dist/llm/system-resolver.d.ts.map +1 -1
- package/dist/llm/system-resolver.js +73 -22
- package/dist/llm/system-resolver.js.map +1 -1
- package/dist/memory/learnings.d.ts +4 -0
- package/dist/memory/learnings.d.ts.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/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/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/scenarios/dhq-replay-find/golden.json +32 -0
- package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +18 -0
- 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/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/index.d.ts +3 -0
- package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/index.js +5 -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-project/docs.d.ts +1 -1
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +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/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/validation-schemas.d.ts +4 -4
- 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/complete.d.ts +17 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +53 -10
- 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/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/tools/builtin-agent-tools.d.ts.map +1 -1
- package/dist/tools/builtin-agent-tools.js +41 -0
- package/dist/tools/builtin-agent-tools.js.map +1 -1
- 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/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -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/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/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/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/migrations/drizzle-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -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/20260610000000_t11962-schedules/migration.sql +48 -0
- package/package.json +23 -13
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global-scope `cleo.db` — **models.dev catalog SSoT** (`models_catalog`, 1 table).
|
|
3
|
+
*
|
|
4
|
+
* E8-CATALOG-CURATION (epic T11694 · task T11733). This table is the queryable,
|
|
5
|
+
* `cleo health`-visible home for the **provider+model capability catalog** that
|
|
6
|
+
* today lives only as a disk JSON cache (`llm-catalog/`) and a tiny bundled
|
|
7
|
+
* `curated-models.json`. Each row is ONE model — its full models.dev wire
|
|
8
|
+
* capability set (modalities, cost, limits, reasoning/tool-call flags, status,
|
|
9
|
+
* release date) — so the catalog becomes the SSoT (DB table) with the disk cache
|
|
10
|
+
* demoted to an offline/degraded fallback MIRROR (T11737).
|
|
11
|
+
*
|
|
12
|
+
* It is the catalog half of the "catalog-driven models, NO hardcoded" North Star
|
|
13
|
+
* spine: the resolver default model derives from this table sorted by
|
|
14
|
+
* `release_date` DESC (T11944), killing the hardcoded `claude-haiku-4-5` literal —
|
|
15
|
+
* the static literal survives ONLY as the offline-only last-resort floor when this
|
|
16
|
+
* table is empty/unseeded.
|
|
17
|
+
*
|
|
18
|
+
* ## NOT the `accounts` credential pool — do not confuse the two
|
|
19
|
+
*
|
|
20
|
+
* `accounts` (T11709) holds machine-wide LLM CREDENTIALS (the pool the runner picks
|
|
21
|
+
* from). THIS table holds CATALOG DATA (model capabilities) — no secrets, no
|
|
22
|
+
* encryption. They share the cleo-global scope and the E10 typing conventions, but
|
|
23
|
+
* carry orthogonal data. The catalog is freely readable; credentials are sealed.
|
|
24
|
+
*
|
|
25
|
+
* ## E10 typing (mirrors sibling `accounts.ts` / `services.ts`)
|
|
26
|
+
*
|
|
27
|
+
* - Booleans (`attachment`/`reasoning`/`temperature`/`interleaved`/`tool_call`) use
|
|
28
|
+
* `integer({mode:'boolean'})` (CHECK `(0, 1)` in the migration).
|
|
29
|
+
* - `modalities` / `cost` are JSON blobs serialized to TEXT (documented json pattern).
|
|
30
|
+
* - `release_date` is TEXT `YYYY-MM-DD` with a GLOB date check; `seeded_at` is a TEXT
|
|
31
|
+
* ISO-8601 timestamp.
|
|
32
|
+
* - `status` is a named enum ({@link CATALOG_MODEL_STATUSES}, minted in contracts).
|
|
33
|
+
*
|
|
34
|
+
* ## Active selection — `release_date`-sorted, latest wins
|
|
35
|
+
*
|
|
36
|
+
* The resolver default and any "newest model for provider X" query reads this table
|
|
37
|
+
* ordered by `(provider_id, release_date DESC)` — the `idx_models_catalog_provider_release`
|
|
38
|
+
* index backs that scan. No raw partial unique index is required (unlike `accounts`'
|
|
39
|
+
* active-pointer); `id` is the natural PK and `(provider_id, models_dev_id)` is a
|
|
40
|
+
* natural unique key for the upsert.
|
|
41
|
+
*
|
|
42
|
+
* @task T11733
|
|
43
|
+
* @epic T11694
|
|
44
|
+
* @see ../../../../migrations/drizzle-cleo-global — the forward migration
|
|
45
|
+
* @see ../../../llm/catalog-seeder.ts — the seeder that populates this table (T11734)
|
|
46
|
+
* @see ../../../llm/catalog-resolver.ts — the table-first read chokepoint (T11737)
|
|
47
|
+
* @see ./accounts.ts — the sibling credential-pool table this directory mirrors
|
|
48
|
+
*/
|
|
49
|
+
/**
|
|
50
|
+
* `models_catalog` — the machine-wide provider+model capability catalog table.
|
|
51
|
+
*
|
|
52
|
+
* One row per model. The catalog SSoT: seeded from the shipped offline
|
|
53
|
+
* `curated-catalog.json` (T11734), read table-first via `resolveCatalogEntry()`
|
|
54
|
+
* (T11737), and consulted by the resolver default (latest `release_date` wins —
|
|
55
|
+
* T11944). `id` is the model id (PK); `(provider_id, models_dev_id)` is the natural
|
|
56
|
+
* upsert key.
|
|
57
|
+
*
|
|
58
|
+
* @task T11733
|
|
59
|
+
*/
|
|
60
|
+
export declare const modelsCatalog: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
61
|
+
name: "models_catalog";
|
|
62
|
+
schema: undefined;
|
|
63
|
+
columns: {
|
|
64
|
+
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
65
|
+
name: string;
|
|
66
|
+
tableName: "models_catalog";
|
|
67
|
+
dataType: "string";
|
|
68
|
+
data: string;
|
|
69
|
+
driverParam: string;
|
|
70
|
+
notNull: true;
|
|
71
|
+
hasDefault: false;
|
|
72
|
+
isPrimaryKey: true;
|
|
73
|
+
isAutoincrement: false;
|
|
74
|
+
hasRuntimeDefault: false;
|
|
75
|
+
enumValues: [string, ...string[]];
|
|
76
|
+
baseColumn: never;
|
|
77
|
+
identity: undefined;
|
|
78
|
+
generated: undefined;
|
|
79
|
+
}, {}>;
|
|
80
|
+
providerId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
81
|
+
name: string;
|
|
82
|
+
tableName: "models_catalog";
|
|
83
|
+
dataType: "string";
|
|
84
|
+
data: string;
|
|
85
|
+
driverParam: string;
|
|
86
|
+
notNull: true;
|
|
87
|
+
hasDefault: false;
|
|
88
|
+
isPrimaryKey: false;
|
|
89
|
+
isAutoincrement: false;
|
|
90
|
+
hasRuntimeDefault: false;
|
|
91
|
+
enumValues: [string, ...string[]];
|
|
92
|
+
baseColumn: never;
|
|
93
|
+
identity: undefined;
|
|
94
|
+
generated: undefined;
|
|
95
|
+
}, {}>;
|
|
96
|
+
name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
97
|
+
name: string;
|
|
98
|
+
tableName: "models_catalog";
|
|
99
|
+
dataType: "string";
|
|
100
|
+
data: string;
|
|
101
|
+
driverParam: string;
|
|
102
|
+
notNull: true;
|
|
103
|
+
hasDefault: false;
|
|
104
|
+
isPrimaryKey: false;
|
|
105
|
+
isAutoincrement: false;
|
|
106
|
+
hasRuntimeDefault: false;
|
|
107
|
+
enumValues: [string, ...string[]];
|
|
108
|
+
baseColumn: never;
|
|
109
|
+
identity: undefined;
|
|
110
|
+
generated: undefined;
|
|
111
|
+
}, {}>;
|
|
112
|
+
family: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
113
|
+
name: string;
|
|
114
|
+
tableName: "models_catalog";
|
|
115
|
+
dataType: "string";
|
|
116
|
+
data: string;
|
|
117
|
+
driverParam: string;
|
|
118
|
+
notNull: true;
|
|
119
|
+
hasDefault: false;
|
|
120
|
+
isPrimaryKey: false;
|
|
121
|
+
isAutoincrement: false;
|
|
122
|
+
hasRuntimeDefault: false;
|
|
123
|
+
enumValues: [string, ...string[]];
|
|
124
|
+
baseColumn: never;
|
|
125
|
+
identity: undefined;
|
|
126
|
+
generated: undefined;
|
|
127
|
+
}, {}>;
|
|
128
|
+
attachment: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
129
|
+
name: string;
|
|
130
|
+
tableName: "models_catalog";
|
|
131
|
+
dataType: "boolean";
|
|
132
|
+
data: boolean;
|
|
133
|
+
driverParam: number;
|
|
134
|
+
notNull: true;
|
|
135
|
+
hasDefault: true;
|
|
136
|
+
isPrimaryKey: false;
|
|
137
|
+
isAutoincrement: false;
|
|
138
|
+
hasRuntimeDefault: false;
|
|
139
|
+
enumValues: undefined;
|
|
140
|
+
baseColumn: never;
|
|
141
|
+
identity: undefined;
|
|
142
|
+
generated: undefined;
|
|
143
|
+
}, {}>;
|
|
144
|
+
reasoning: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
145
|
+
name: string;
|
|
146
|
+
tableName: "models_catalog";
|
|
147
|
+
dataType: "boolean";
|
|
148
|
+
data: boolean;
|
|
149
|
+
driverParam: number;
|
|
150
|
+
notNull: true;
|
|
151
|
+
hasDefault: true;
|
|
152
|
+
isPrimaryKey: false;
|
|
153
|
+
isAutoincrement: false;
|
|
154
|
+
hasRuntimeDefault: false;
|
|
155
|
+
enumValues: undefined;
|
|
156
|
+
baseColumn: never;
|
|
157
|
+
identity: undefined;
|
|
158
|
+
generated: undefined;
|
|
159
|
+
}, {}>;
|
|
160
|
+
temperature: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
161
|
+
name: string;
|
|
162
|
+
tableName: "models_catalog";
|
|
163
|
+
dataType: "boolean";
|
|
164
|
+
data: boolean;
|
|
165
|
+
driverParam: number;
|
|
166
|
+
notNull: true;
|
|
167
|
+
hasDefault: true;
|
|
168
|
+
isPrimaryKey: false;
|
|
169
|
+
isAutoincrement: false;
|
|
170
|
+
hasRuntimeDefault: false;
|
|
171
|
+
enumValues: undefined;
|
|
172
|
+
baseColumn: never;
|
|
173
|
+
identity: undefined;
|
|
174
|
+
generated: undefined;
|
|
175
|
+
}, {}>;
|
|
176
|
+
interleaved: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
177
|
+
name: string;
|
|
178
|
+
tableName: "models_catalog";
|
|
179
|
+
dataType: "boolean";
|
|
180
|
+
data: boolean;
|
|
181
|
+
driverParam: number;
|
|
182
|
+
notNull: true;
|
|
183
|
+
hasDefault: true;
|
|
184
|
+
isPrimaryKey: false;
|
|
185
|
+
isAutoincrement: false;
|
|
186
|
+
hasRuntimeDefault: false;
|
|
187
|
+
enumValues: undefined;
|
|
188
|
+
baseColumn: never;
|
|
189
|
+
identity: undefined;
|
|
190
|
+
generated: undefined;
|
|
191
|
+
}, {}>;
|
|
192
|
+
toolCall: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
193
|
+
name: string;
|
|
194
|
+
tableName: "models_catalog";
|
|
195
|
+
dataType: "boolean";
|
|
196
|
+
data: boolean;
|
|
197
|
+
driverParam: number;
|
|
198
|
+
notNull: true;
|
|
199
|
+
hasDefault: true;
|
|
200
|
+
isPrimaryKey: false;
|
|
201
|
+
isAutoincrement: false;
|
|
202
|
+
hasRuntimeDefault: false;
|
|
203
|
+
enumValues: undefined;
|
|
204
|
+
baseColumn: never;
|
|
205
|
+
identity: undefined;
|
|
206
|
+
generated: undefined;
|
|
207
|
+
}, {}>;
|
|
208
|
+
modalities: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
209
|
+
name: string;
|
|
210
|
+
tableName: "models_catalog";
|
|
211
|
+
dataType: "string";
|
|
212
|
+
data: string;
|
|
213
|
+
driverParam: string;
|
|
214
|
+
notNull: true;
|
|
215
|
+
hasDefault: true;
|
|
216
|
+
isPrimaryKey: false;
|
|
217
|
+
isAutoincrement: false;
|
|
218
|
+
hasRuntimeDefault: false;
|
|
219
|
+
enumValues: [string, ...string[]];
|
|
220
|
+
baseColumn: never;
|
|
221
|
+
identity: undefined;
|
|
222
|
+
generated: undefined;
|
|
223
|
+
}, {}>;
|
|
224
|
+
cost: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
225
|
+
name: string;
|
|
226
|
+
tableName: "models_catalog";
|
|
227
|
+
dataType: "string";
|
|
228
|
+
data: string;
|
|
229
|
+
driverParam: string;
|
|
230
|
+
notNull: true;
|
|
231
|
+
hasDefault: true;
|
|
232
|
+
isPrimaryKey: false;
|
|
233
|
+
isAutoincrement: false;
|
|
234
|
+
hasRuntimeDefault: false;
|
|
235
|
+
enumValues: [string, ...string[]];
|
|
236
|
+
baseColumn: never;
|
|
237
|
+
identity: undefined;
|
|
238
|
+
generated: undefined;
|
|
239
|
+
}, {}>;
|
|
240
|
+
contextLimit: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
241
|
+
name: string;
|
|
242
|
+
tableName: "models_catalog";
|
|
243
|
+
dataType: "number int53";
|
|
244
|
+
data: number;
|
|
245
|
+
driverParam: number;
|
|
246
|
+
notNull: false;
|
|
247
|
+
hasDefault: false;
|
|
248
|
+
isPrimaryKey: false;
|
|
249
|
+
isAutoincrement: false;
|
|
250
|
+
hasRuntimeDefault: false;
|
|
251
|
+
enumValues: undefined;
|
|
252
|
+
baseColumn: never;
|
|
253
|
+
identity: undefined;
|
|
254
|
+
generated: undefined;
|
|
255
|
+
}, {}>;
|
|
256
|
+
outputLimit: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
257
|
+
name: string;
|
|
258
|
+
tableName: "models_catalog";
|
|
259
|
+
dataType: "number int53";
|
|
260
|
+
data: number;
|
|
261
|
+
driverParam: number;
|
|
262
|
+
notNull: false;
|
|
263
|
+
hasDefault: false;
|
|
264
|
+
isPrimaryKey: false;
|
|
265
|
+
isAutoincrement: false;
|
|
266
|
+
hasRuntimeDefault: false;
|
|
267
|
+
enumValues: undefined;
|
|
268
|
+
baseColumn: never;
|
|
269
|
+
identity: undefined;
|
|
270
|
+
generated: undefined;
|
|
271
|
+
}, {}>;
|
|
272
|
+
status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
273
|
+
name: string;
|
|
274
|
+
tableName: "models_catalog";
|
|
275
|
+
dataType: "string enum";
|
|
276
|
+
data: "stable" | "beta" | "preview" | "deprecated" | "retired";
|
|
277
|
+
driverParam: string;
|
|
278
|
+
notNull: true;
|
|
279
|
+
hasDefault: true;
|
|
280
|
+
isPrimaryKey: false;
|
|
281
|
+
isAutoincrement: false;
|
|
282
|
+
hasRuntimeDefault: false;
|
|
283
|
+
enumValues: ["stable", "beta", "preview", "deprecated", "retired"];
|
|
284
|
+
baseColumn: never;
|
|
285
|
+
identity: undefined;
|
|
286
|
+
generated: undefined;
|
|
287
|
+
}, {}>;
|
|
288
|
+
releaseDate: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
289
|
+
name: string;
|
|
290
|
+
tableName: "models_catalog";
|
|
291
|
+
dataType: "string";
|
|
292
|
+
data: string;
|
|
293
|
+
driverParam: string;
|
|
294
|
+
notNull: true;
|
|
295
|
+
hasDefault: false;
|
|
296
|
+
isPrimaryKey: false;
|
|
297
|
+
isAutoincrement: false;
|
|
298
|
+
hasRuntimeDefault: false;
|
|
299
|
+
enumValues: [string, ...string[]];
|
|
300
|
+
baseColumn: never;
|
|
301
|
+
identity: undefined;
|
|
302
|
+
generated: undefined;
|
|
303
|
+
}, {}>;
|
|
304
|
+
modelsDevId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
305
|
+
name: string;
|
|
306
|
+
tableName: "models_catalog";
|
|
307
|
+
dataType: "string";
|
|
308
|
+
data: string;
|
|
309
|
+
driverParam: string;
|
|
310
|
+
notNull: true;
|
|
311
|
+
hasDefault: false;
|
|
312
|
+
isPrimaryKey: false;
|
|
313
|
+
isAutoincrement: false;
|
|
314
|
+
hasRuntimeDefault: false;
|
|
315
|
+
enumValues: [string, ...string[]];
|
|
316
|
+
baseColumn: never;
|
|
317
|
+
identity: undefined;
|
|
318
|
+
generated: undefined;
|
|
319
|
+
}, {}>;
|
|
320
|
+
source: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
321
|
+
name: string;
|
|
322
|
+
tableName: "models_catalog";
|
|
323
|
+
dataType: "string";
|
|
324
|
+
data: string;
|
|
325
|
+
driverParam: string;
|
|
326
|
+
notNull: true;
|
|
327
|
+
hasDefault: true;
|
|
328
|
+
isPrimaryKey: false;
|
|
329
|
+
isAutoincrement: false;
|
|
330
|
+
hasRuntimeDefault: false;
|
|
331
|
+
enumValues: [string, ...string[]];
|
|
332
|
+
baseColumn: never;
|
|
333
|
+
identity: undefined;
|
|
334
|
+
generated: undefined;
|
|
335
|
+
}, {}>;
|
|
336
|
+
seededAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
337
|
+
name: string;
|
|
338
|
+
tableName: "models_catalog";
|
|
339
|
+
dataType: "string";
|
|
340
|
+
data: string;
|
|
341
|
+
driverParam: string;
|
|
342
|
+
notNull: true;
|
|
343
|
+
hasDefault: true;
|
|
344
|
+
isPrimaryKey: false;
|
|
345
|
+
isAutoincrement: false;
|
|
346
|
+
hasRuntimeDefault: false;
|
|
347
|
+
enumValues: [string, ...string[]];
|
|
348
|
+
baseColumn: never;
|
|
349
|
+
identity: undefined;
|
|
350
|
+
generated: undefined;
|
|
351
|
+
}, {}>;
|
|
352
|
+
};
|
|
353
|
+
dialect: "sqlite";
|
|
354
|
+
}>;
|
|
355
|
+
/** Row type for `models_catalog` SELECT queries. */
|
|
356
|
+
export type ModelsCatalogRow = typeof modelsCatalog.$inferSelect;
|
|
357
|
+
/** Row type for `models_catalog` INSERT/UPSERT operations. */
|
|
358
|
+
export type NewModelsCatalogRow = typeof modelsCatalog.$inferInsert;
|
|
359
|
+
//# sourceMappingURL=models-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models-catalog.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/models-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAMH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDzB,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,gBAAgB,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AACjE,8DAA8D;AAC9D,MAAM,MAAM,mBAAmB,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global-scope `cleo.db` — **models.dev catalog SSoT** (`models_catalog`, 1 table).
|
|
3
|
+
*
|
|
4
|
+
* E8-CATALOG-CURATION (epic T11694 · task T11733). This table is the queryable,
|
|
5
|
+
* `cleo health`-visible home for the **provider+model capability catalog** that
|
|
6
|
+
* today lives only as a disk JSON cache (`llm-catalog/`) and a tiny bundled
|
|
7
|
+
* `curated-models.json`. Each row is ONE model — its full models.dev wire
|
|
8
|
+
* capability set (modalities, cost, limits, reasoning/tool-call flags, status,
|
|
9
|
+
* release date) — so the catalog becomes the SSoT (DB table) with the disk cache
|
|
10
|
+
* demoted to an offline/degraded fallback MIRROR (T11737).
|
|
11
|
+
*
|
|
12
|
+
* It is the catalog half of the "catalog-driven models, NO hardcoded" North Star
|
|
13
|
+
* spine: the resolver default model derives from this table sorted by
|
|
14
|
+
* `release_date` DESC (T11944), killing the hardcoded `claude-haiku-4-5` literal —
|
|
15
|
+
* the static literal survives ONLY as the offline-only last-resort floor when this
|
|
16
|
+
* table is empty/unseeded.
|
|
17
|
+
*
|
|
18
|
+
* ## NOT the `accounts` credential pool — do not confuse the two
|
|
19
|
+
*
|
|
20
|
+
* `accounts` (T11709) holds machine-wide LLM CREDENTIALS (the pool the runner picks
|
|
21
|
+
* from). THIS table holds CATALOG DATA (model capabilities) — no secrets, no
|
|
22
|
+
* encryption. They share the cleo-global scope and the E10 typing conventions, but
|
|
23
|
+
* carry orthogonal data. The catalog is freely readable; credentials are sealed.
|
|
24
|
+
*
|
|
25
|
+
* ## E10 typing (mirrors sibling `accounts.ts` / `services.ts`)
|
|
26
|
+
*
|
|
27
|
+
* - Booleans (`attachment`/`reasoning`/`temperature`/`interleaved`/`tool_call`) use
|
|
28
|
+
* `integer({mode:'boolean'})` (CHECK `(0, 1)` in the migration).
|
|
29
|
+
* - `modalities` / `cost` are JSON blobs serialized to TEXT (documented json pattern).
|
|
30
|
+
* - `release_date` is TEXT `YYYY-MM-DD` with a GLOB date check; `seeded_at` is a TEXT
|
|
31
|
+
* ISO-8601 timestamp.
|
|
32
|
+
* - `status` is a named enum ({@link CATALOG_MODEL_STATUSES}, minted in contracts).
|
|
33
|
+
*
|
|
34
|
+
* ## Active selection — `release_date`-sorted, latest wins
|
|
35
|
+
*
|
|
36
|
+
* The resolver default and any "newest model for provider X" query reads this table
|
|
37
|
+
* ordered by `(provider_id, release_date DESC)` — the `idx_models_catalog_provider_release`
|
|
38
|
+
* index backs that scan. No raw partial unique index is required (unlike `accounts`'
|
|
39
|
+
* active-pointer); `id` is the natural PK and `(provider_id, models_dev_id)` is a
|
|
40
|
+
* natural unique key for the upsert.
|
|
41
|
+
*
|
|
42
|
+
* @task T11733
|
|
43
|
+
* @epic T11694
|
|
44
|
+
* @see ../../../../migrations/drizzle-cleo-global — the forward migration
|
|
45
|
+
* @see ../../../llm/catalog-seeder.ts — the seeder that populates this table (T11734)
|
|
46
|
+
* @see ../../../llm/catalog-resolver.ts — the table-first read chokepoint (T11737)
|
|
47
|
+
* @see ./accounts.ts — the sibling credential-pool table this directory mirrors
|
|
48
|
+
*/
|
|
49
|
+
import { CATALOG_MODEL_STATUSES } from '@cleocode/contracts';
|
|
50
|
+
import { sql } from 'drizzle-orm';
|
|
51
|
+
import { index, integer, sqliteTable, text, unique } from 'drizzle-orm/sqlite-core';
|
|
52
|
+
/**
|
|
53
|
+
* `models_catalog` — the machine-wide provider+model capability catalog table.
|
|
54
|
+
*
|
|
55
|
+
* One row per model. The catalog SSoT: seeded from the shipped offline
|
|
56
|
+
* `curated-catalog.json` (T11734), read table-first via `resolveCatalogEntry()`
|
|
57
|
+
* (T11737), and consulted by the resolver default (latest `release_date` wins —
|
|
58
|
+
* T11944). `id` is the model id (PK); `(provider_id, models_dev_id)` is the natural
|
|
59
|
+
* upsert key.
|
|
60
|
+
*
|
|
61
|
+
* @task T11733
|
|
62
|
+
*/
|
|
63
|
+
export const modelsCatalog = sqliteTable('models_catalog', {
|
|
64
|
+
/** Model id — the catalog key (a models.dev id, e.g. `openai/gpt-5.5`). Natural PK. */
|
|
65
|
+
id: text('id').primaryKey(),
|
|
66
|
+
/** Provider key (models.dev id, e.g. `anthropic` | `openai` | `google`). */
|
|
67
|
+
providerId: text('provider_id').notNull(),
|
|
68
|
+
/** Human-readable display name (e.g. `Claude Haiku 4.5`). */
|
|
69
|
+
name: text('name').notNull(),
|
|
70
|
+
/** Model family (e.g. `claude` | `gpt` | `gemini`). */
|
|
71
|
+
family: text('family').notNull(),
|
|
72
|
+
/** Supports file/image attachments. */
|
|
73
|
+
attachment: integer('attachment', { mode: 'boolean' }).notNull().default(false),
|
|
74
|
+
/** Supports extended reasoning / thinking. */
|
|
75
|
+
reasoning: integer('reasoning', { mode: 'boolean' }).notNull().default(false),
|
|
76
|
+
/** Honours a temperature parameter. */
|
|
77
|
+
temperature: integer('temperature', { mode: 'boolean' }).notNull().default(true),
|
|
78
|
+
/** Supports interleaved thinking blocks. */
|
|
79
|
+
interleaved: integer('interleaved', { mode: 'boolean' }).notNull().default(false),
|
|
80
|
+
/** Supports tool / function calling. */
|
|
81
|
+
toolCall: integer('tool_call', { mode: 'boolean' }).notNull().default(false),
|
|
82
|
+
/** JSON blob: `{ input: string[]; output: string[] }` modalities (serialized TEXT). */
|
|
83
|
+
modalities: text('modalities').notNull().default('{"input":["text"],"output":["text"]}'),
|
|
84
|
+
/** JSON blob: per-1M-token cost facets `{ input?, output?, cache_read?, … }` (serialized TEXT). */
|
|
85
|
+
cost: text('cost').notNull().default('{}'),
|
|
86
|
+
/** Max context window (tokens); NULL when the catalog entry omits a limit. */
|
|
87
|
+
contextLimit: integer('context_limit'),
|
|
88
|
+
/** Max output tokens; NULL when the catalog entry omits a limit. */
|
|
89
|
+
outputLimit: integer('output_limit'),
|
|
90
|
+
/**
|
|
91
|
+
* Availability lifecycle — `stable` | `beta` | `preview` | `deprecated` | `retired`
|
|
92
|
+
* ({@link CATALOG_MODEL_STATUSES}, minted in contracts).
|
|
93
|
+
*/
|
|
94
|
+
status: text('status', { enum: CATALOG_MODEL_STATUSES }).notNull().default('stable'),
|
|
95
|
+
/**
|
|
96
|
+
* ISO release date `YYYY-MM-DD` (GLOB-checked in the migration). The SSoT sort key —
|
|
97
|
+
* the resolver default picks the row with the LATEST `release_date` for a provider.
|
|
98
|
+
*/
|
|
99
|
+
releaseDate: text('release_date').notNull(),
|
|
100
|
+
/** The models.dev entry id (mirrors `id`; kept distinct for the natural upsert key). */
|
|
101
|
+
modelsDevId: text('models_dev_id').notNull(),
|
|
102
|
+
/** Provenance — where this row came from (e.g. `seed` | `refresh` | `import`). */
|
|
103
|
+
source: text('source').notNull().default('seed'),
|
|
104
|
+
/** ISO-8601 UTC instant this row was seeded/last upserted. Defaults to write time. */
|
|
105
|
+
seededAt: text('seeded_at').notNull().default(sql `(datetime('now'))`),
|
|
106
|
+
}, (table) => [
|
|
107
|
+
// The natural upsert key — a models.dev id is unique within a provider.
|
|
108
|
+
unique('ux_models_catalog_provider_modeldev').on(table.providerId, table.modelsDevId),
|
|
109
|
+
// The default-resolution scan — newest model per provider (release_date DESC).
|
|
110
|
+
index('idx_models_catalog_provider_release').on(table.providerId, table.releaseDate),
|
|
111
|
+
// Lifecycle scans (e.g. exclude retired) per provider.
|
|
112
|
+
index('idx_models_catalog_provider_status').on(table.providerId, table.status),
|
|
113
|
+
]);
|
|
114
|
+
//# sourceMappingURL=models-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models-catalog.js","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/models-catalog.ts"],"names":[],"mappings":"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"}
|