@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
package/dist/admin/ops.d.ts
CHANGED
|
@@ -31,6 +31,9 @@ export declare const adminCoreOps: {
|
|
|
31
31
|
readonly health: AdminCoreOperation<'admin.health'>;
|
|
32
32
|
readonly 'config.show': AdminCoreOperation<'admin.config.show'>;
|
|
33
33
|
readonly 'config.presets': AdminCoreOperation<'admin.config.presets'>;
|
|
34
|
+
readonly 'config.get': AdminCoreOperation<'admin.config.get'>;
|
|
35
|
+
readonly 'config.list': AdminCoreOperation<'admin.config.list'>;
|
|
36
|
+
readonly 'config.validate': AdminCoreOperation<'admin.config.validate'>;
|
|
34
37
|
readonly stats: AdminCoreOperation<'admin.stats'>;
|
|
35
38
|
readonly context: AdminCoreOperation<'admin.context'>;
|
|
36
39
|
readonly 'context.pull': AdminCoreOperation<'admin.context.pull'>;
|
|
@@ -56,6 +59,7 @@ export declare const adminCoreOps: {
|
|
|
56
59
|
readonly 'health.mutate': AdminCoreOperation<'admin.health.mutate'>;
|
|
57
60
|
readonly 'config.set': AdminCoreOperation<'admin.config.set'>;
|
|
58
61
|
readonly 'config.set-preset': AdminCoreOperation<'admin.config.set-preset'>;
|
|
62
|
+
readonly 'config.unset': AdminCoreOperation<'admin.config.unset'>;
|
|
59
63
|
readonly 'backup.mutate': AdminCoreOperation<'admin.backup.mutate'>;
|
|
60
64
|
readonly migrate: AdminCoreOperation<'admin.migrate'>;
|
|
61
65
|
readonly cleanup: AdminCoreOperation<'admin.cleanup'>;
|
package/dist/admin/ops.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/admin/ops.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/admin/ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@cleocode/core` check module — local CI-gate runners.
|
|
3
|
+
*
|
|
4
|
+
* Currently exposes the unified pre-PR gate (`cleo check pr`, T11956). The
|
|
5
|
+
* gate registry + runner live here so the CLI handler stays a thin dispatch
|
|
6
|
+
* (AGENTS.md Package-Boundary Check).
|
|
7
|
+
*
|
|
8
|
+
* @task T11956
|
|
9
|
+
* @epic T11679
|
|
10
|
+
*/
|
|
11
|
+
export { buildGateArgv, formatPrGateSummary, PR_GATES, type PrGateDef, type PrGateRunResult, type PrGateSummary, type RunPrGateOptions, resolveWorkingTree, runPrGate, selectPrGates, } from './pr-gate.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,SAAS,EACT,aAAa,GACd,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@cleocode/core` check module — local CI-gate runners.
|
|
3
|
+
*
|
|
4
|
+
* Currently exposes the unified pre-PR gate (`cleo check pr`, T11956). The
|
|
5
|
+
* gate registry + runner live here so the CLI handler stays a thin dispatch
|
|
6
|
+
* (AGENTS.md Package-Boundary Check).
|
|
7
|
+
*
|
|
8
|
+
* @task T11956
|
|
9
|
+
* @epic T11679
|
|
10
|
+
*/
|
|
11
|
+
export { buildGateArgv, formatPrGateSummary, PR_GATES, resolveWorkingTree, runPrGate, selectPrGates, } from './pr-gate.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,QAAQ,EAKR,kBAAkB,EAClB,SAAS,EACT,aAAa,GACd,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cleo check pr` — unified local pre-PR gate (T11956 · DHQ-073 · Epic T11679).
|
|
3
|
+
*
|
|
4
|
+
* Runs the SAME high-signal gates that CI runs, locally, in one command, and
|
|
5
|
+
* returns a single pass/fail summary so an agent can self-verify BEFORE
|
|
6
|
+
* opening a PR. This closes the DHQ-073 gap: there was no single "run exactly
|
|
7
|
+
* the CI required-gates locally" command, so agents repeatedly hit
|
|
8
|
+
* Type-Check / Canon-Drift / Install-Test failures only after CI ran.
|
|
9
|
+
*
|
|
10
|
+
* Design (CORE-first, per AGENTS.md Package-Boundary Check)
|
|
11
|
+
* --------------------------------------------------------
|
|
12
|
+
* The gate REGISTRY and the RUNNER live here in `@cleocode/core`. The CLI
|
|
13
|
+
* handler in `packages/cleo` is a thin dispatch that calls {@link runPrGate}
|
|
14
|
+
* and renders the result. No business logic lives in the CLI layer.
|
|
15
|
+
*
|
|
16
|
+
* Memory safety
|
|
17
|
+
* -------------
|
|
18
|
+
* Heavy gates (build, typecheck, test) are cgroup-capped on Linux via
|
|
19
|
+
* `systemd-run --user --scope -p MemoryMax=… -p MemorySwapMax=0` when the
|
|
20
|
+
* binary is available — mirroring the project's OOM-safety discipline. The cap
|
|
21
|
+
* is best-effort: if `systemd-run` is absent (macOS / minimal CI) the gate
|
|
22
|
+
* runs uncapped.
|
|
23
|
+
*
|
|
24
|
+
* @task T11956
|
|
25
|
+
* @epic T11679 (DHQ burn-down)
|
|
26
|
+
* @see docs/release/branch-protection-setup.md § "Required Status Checks"
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* A single runnable pre-PR gate. The `command` + `args` are executed verbatim
|
|
30
|
+
* (no shell) from the repository root.
|
|
31
|
+
*/
|
|
32
|
+
export interface PrGateDef {
|
|
33
|
+
/** Stable machine id (kebab-case) used in results and `--only` filters. */
|
|
34
|
+
readonly id: string;
|
|
35
|
+
/** Human-readable label shown in the summary. */
|
|
36
|
+
readonly label: string;
|
|
37
|
+
/** The executable to run (e.g. `pnpm`, `node`, `cleo`). */
|
|
38
|
+
readonly command: string;
|
|
39
|
+
/** Arguments passed to the executable. */
|
|
40
|
+
readonly args: readonly string[];
|
|
41
|
+
/**
|
|
42
|
+
* Whether this gate is memory-heavy and should be cgroup-capped on Linux.
|
|
43
|
+
* Lint gates are cheap; build/typecheck/test are heavy.
|
|
44
|
+
*/
|
|
45
|
+
readonly heavy: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* `core` gates run by default. `full` gates run only with `full: true` —
|
|
48
|
+
* the complete CI lint surface, which is slower and rarely needed for a
|
|
49
|
+
* focused change.
|
|
50
|
+
*/
|
|
51
|
+
readonly tier: 'core' | 'full';
|
|
52
|
+
/** One-line rationale shown in `--list`. */
|
|
53
|
+
readonly description: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The canonical pre-PR gate registry. The `core` tier mirrors the gates that
|
|
57
|
+
* actually gate `main` and that agents most commonly trip; the `full` tier
|
|
58
|
+
* adds the complete standalone-lint surface for an exhaustive local sweep.
|
|
59
|
+
*
|
|
60
|
+
* Ordered cheapest-first so a fast lint failure surfaces before the slow
|
|
61
|
+
* build/test gates run.
|
|
62
|
+
*/
|
|
63
|
+
export declare const PR_GATES: readonly PrGateDef[];
|
|
64
|
+
/** Outcome of a single gate. */
|
|
65
|
+
export interface PrGateRunResult {
|
|
66
|
+
/** Gate id (matches {@link PrGateDef.id}). */
|
|
67
|
+
readonly id: string;
|
|
68
|
+
/** Gate label. */
|
|
69
|
+
readonly label: string;
|
|
70
|
+
/** Final status. `skipped` means the gate was filtered out by `--only`. */
|
|
71
|
+
readonly status: 'pass' | 'fail' | 'skipped';
|
|
72
|
+
/** Process exit code (null if the process could not be spawned or skipped). */
|
|
73
|
+
readonly exitCode: number | null;
|
|
74
|
+
/** Wall-clock duration in milliseconds. */
|
|
75
|
+
readonly durationMs: number;
|
|
76
|
+
/** Whether the gate was cgroup-capped on this run. */
|
|
77
|
+
readonly capped: boolean;
|
|
78
|
+
/** Last lines of combined stdout/stderr (trimmed) for failure triage. */
|
|
79
|
+
readonly outputTail: string;
|
|
80
|
+
}
|
|
81
|
+
/** Aggregate result of a `cleo check pr` run. */
|
|
82
|
+
export interface PrGateSummary {
|
|
83
|
+
/** Repository root the gates ran against. */
|
|
84
|
+
readonly repoRoot: string;
|
|
85
|
+
/** True iff every non-skipped gate passed. */
|
|
86
|
+
readonly passed: boolean;
|
|
87
|
+
/** Per-gate results in execution order. */
|
|
88
|
+
readonly gates: readonly PrGateRunResult[];
|
|
89
|
+
/** Roll-up counts. */
|
|
90
|
+
readonly summary: {
|
|
91
|
+
readonly pass: number;
|
|
92
|
+
readonly fail: number;
|
|
93
|
+
readonly skipped: number;
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/** Options controlling a {@link runPrGate} run. */
|
|
97
|
+
export interface RunPrGateOptions {
|
|
98
|
+
/** Run the full standalone-lint surface in addition to the core tier. */
|
|
99
|
+
readonly full?: boolean;
|
|
100
|
+
/** Restrict the run to these gate ids (others reported as `skipped`). */
|
|
101
|
+
readonly only?: readonly string[];
|
|
102
|
+
/** Continue running remaining gates after the first failure (default true). */
|
|
103
|
+
readonly keepGoing?: boolean;
|
|
104
|
+
/** MemoryMax for heavy gates on Linux (default `16G`). */
|
|
105
|
+
readonly memoryMax?: string;
|
|
106
|
+
/**
|
|
107
|
+
* Override the working tree the gates run in. Defaults to the git toplevel
|
|
108
|
+
* of `process.cwd()` (so an agent inside a worktree validates THAT worktree,
|
|
109
|
+
* incl. uncommitted changes — not whatever `CLEO_ROOT` points at).
|
|
110
|
+
*/
|
|
111
|
+
readonly cwd?: string;
|
|
112
|
+
/**
|
|
113
|
+
* Streaming sink for human progress. Receives one line per lifecycle event.
|
|
114
|
+
* Defaults to a no-op so the function is pure-by-default for tests.
|
|
115
|
+
*/
|
|
116
|
+
readonly onProgress?: (line: string) => void;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Resolve the gate set for a run: the `core` tier always, plus the `full`
|
|
120
|
+
* tier when requested, then narrowed by `only` (which marks the rest skipped).
|
|
121
|
+
*
|
|
122
|
+
* @param opts run options
|
|
123
|
+
* @returns the gates to execute (in registry order) plus the skipped set
|
|
124
|
+
* @internal exported for unit testing
|
|
125
|
+
*/
|
|
126
|
+
export declare function selectPrGates(opts: Pick<RunPrGateOptions, 'full' | 'only'>): {
|
|
127
|
+
toRun: PrGateDef[];
|
|
128
|
+
skipped: PrGateDef[];
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Build the argv for a gate, wrapping heavy gates in a cgroup-capped
|
|
132
|
+
* `systemd-run --user --scope` when available on Linux.
|
|
133
|
+
*
|
|
134
|
+
* @param gate the gate definition
|
|
135
|
+
* @param memoryMax MemoryMax value (e.g. `16G`)
|
|
136
|
+
* @returns `{ command, args, capped }`
|
|
137
|
+
* @internal exported for unit testing
|
|
138
|
+
*/
|
|
139
|
+
export declare function buildGateArgv(gate: PrGateDef, memoryMax: string): {
|
|
140
|
+
command: string;
|
|
141
|
+
args: string[];
|
|
142
|
+
capped: boolean;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Resolve the working tree the gates run in: the git toplevel of
|
|
146
|
+
* `process.cwd()` (so the gates validate the agent's actual checkout/worktree
|
|
147
|
+
* incl. uncommitted changes). Falls back to {@link getProjectRoot} when not in
|
|
148
|
+
* a git work tree.
|
|
149
|
+
*
|
|
150
|
+
* @returns absolute path to the working-tree root
|
|
151
|
+
* @internal exported for unit testing
|
|
152
|
+
*/
|
|
153
|
+
export declare function resolveWorkingTree(): string;
|
|
154
|
+
/**
|
|
155
|
+
* Run the unified pre-PR gate suite and return a structured summary.
|
|
156
|
+
*
|
|
157
|
+
* Each gate runs as a child process from the repository root. Heavy gates are
|
|
158
|
+
* cgroup-capped on Linux when `systemd-run` is available. By default the run
|
|
159
|
+
* continues after a failure (so the agent sees every problem at once); pass
|
|
160
|
+
* `keepGoing: false` to stop at the first failure.
|
|
161
|
+
*
|
|
162
|
+
* This function performs no process I/O of its own beyond `onProgress`
|
|
163
|
+
* callbacks — the CLI layer owns stdout/stderr rendering.
|
|
164
|
+
*
|
|
165
|
+
* @param opts run options
|
|
166
|
+
* @returns the aggregate {@link PrGateSummary}
|
|
167
|
+
*/
|
|
168
|
+
export declare function runPrGate(opts?: RunPrGateOptions): PrGateSummary;
|
|
169
|
+
/**
|
|
170
|
+
* Render a {@link PrGateSummary} as a human-readable, multi-line report
|
|
171
|
+
* (no trailing newline). The CLI writes this to stderr while the LAFS envelope
|
|
172
|
+
* goes to stdout — keeping presentation logic in core so the CLI stays a thin
|
|
173
|
+
* dispatch (AGENTS.md Package-Boundary Check).
|
|
174
|
+
*
|
|
175
|
+
* @param summary the aggregate result of a `cleo check pr` run
|
|
176
|
+
* @returns the formatted human report
|
|
177
|
+
*/
|
|
178
|
+
export declare function formatPrGateSummary(summary: PrGateSummary): string;
|
|
179
|
+
//# sourceMappingURL=pr-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-gate.d.ts","sourceRoot":"","sources":["../../src/check/pr-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cleo check pr` — unified local pre-PR gate (T11956 · DHQ-073 · Epic T11679).
|
|
3
|
+
*
|
|
4
|
+
* Runs the SAME high-signal gates that CI runs, locally, in one command, and
|
|
5
|
+
* returns a single pass/fail summary so an agent can self-verify BEFORE
|
|
6
|
+
* opening a PR. This closes the DHQ-073 gap: there was no single "run exactly
|
|
7
|
+
* the CI required-gates locally" command, so agents repeatedly hit
|
|
8
|
+
* Type-Check / Canon-Drift / Install-Test failures only after CI ran.
|
|
9
|
+
*
|
|
10
|
+
* Design (CORE-first, per AGENTS.md Package-Boundary Check)
|
|
11
|
+
* --------------------------------------------------------
|
|
12
|
+
* The gate REGISTRY and the RUNNER live here in `@cleocode/core`. The CLI
|
|
13
|
+
* handler in `packages/cleo` is a thin dispatch that calls {@link runPrGate}
|
|
14
|
+
* and renders the result. No business logic lives in the CLI layer.
|
|
15
|
+
*
|
|
16
|
+
* Memory safety
|
|
17
|
+
* -------------
|
|
18
|
+
* Heavy gates (build, typecheck, test) are cgroup-capped on Linux via
|
|
19
|
+
* `systemd-run --user --scope -p MemoryMax=… -p MemorySwapMax=0` when the
|
|
20
|
+
* binary is available — mirroring the project's OOM-safety discipline. The cap
|
|
21
|
+
* is best-effort: if `systemd-run` is absent (macOS / minimal CI) the gate
|
|
22
|
+
* runs uncapped.
|
|
23
|
+
*
|
|
24
|
+
* @task T11956
|
|
25
|
+
* @epic T11679 (DHQ burn-down)
|
|
26
|
+
* @see docs/release/branch-protection-setup.md § "Required Status Checks"
|
|
27
|
+
*/
|
|
28
|
+
import { spawnSync } from 'node:child_process';
|
|
29
|
+
import { getProjectRoot } from '../paths.js';
|
|
30
|
+
/**
|
|
31
|
+
* The default MemoryMax applied to heavy gates on Linux. Matches the project's
|
|
32
|
+
* standard cgroup cap for local build/test runs.
|
|
33
|
+
*/
|
|
34
|
+
const DEFAULT_MEMORY_MAX = '16G';
|
|
35
|
+
/**
|
|
36
|
+
* The canonical pre-PR gate registry. The `core` tier mirrors the gates that
|
|
37
|
+
* actually gate `main` and that agents most commonly trip; the `full` tier
|
|
38
|
+
* adds the complete standalone-lint surface for an exhaustive local sweep.
|
|
39
|
+
*
|
|
40
|
+
* Ordered cheapest-first so a fast lint failure surfaces before the slow
|
|
41
|
+
* build/test gates run.
|
|
42
|
+
*/
|
|
43
|
+
export const PR_GATES = [
|
|
44
|
+
{
|
|
45
|
+
id: 'biome',
|
|
46
|
+
label: 'Biome (lint + format)',
|
|
47
|
+
command: 'pnpm',
|
|
48
|
+
args: ['biome', 'check', '.'],
|
|
49
|
+
heavy: false,
|
|
50
|
+
tier: 'core',
|
|
51
|
+
description: 'Format + lint check (CI: Lint & Format)',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 'lockfile',
|
|
55
|
+
label: 'Lockfile Check',
|
|
56
|
+
command: 'pnpm',
|
|
57
|
+
args: ['install', '--frozen-lockfile'],
|
|
58
|
+
heavy: false,
|
|
59
|
+
tier: 'core',
|
|
60
|
+
description: 'pnpm-lock.yaml is consistent (CI: Lockfile Check)',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'arch',
|
|
64
|
+
label: 'Architectural Boundary Check (cleo check arch)',
|
|
65
|
+
command: 'cleo',
|
|
66
|
+
args: ['check', 'arch'],
|
|
67
|
+
heavy: false,
|
|
68
|
+
tier: 'core',
|
|
69
|
+
description: 'SG-ARCH-SOLID gates (CI: Arch Boundary Check)',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: 'canon-docs',
|
|
73
|
+
label: 'Canon Drift Check (docs SSoT)',
|
|
74
|
+
command: 'cleo',
|
|
75
|
+
args: ['check', 'canon', 'docs'],
|
|
76
|
+
heavy: false,
|
|
77
|
+
tier: 'core',
|
|
78
|
+
description: 'No raw *.md bypassing the docs SSoT (CI: Canon Drift Check)',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: 'merge-bar-aggregate',
|
|
82
|
+
label: 'Merge-Bar Aggregate Gate Lint',
|
|
83
|
+
command: 'node',
|
|
84
|
+
args: ['scripts/lint-merge-bar-aggregate.mjs'],
|
|
85
|
+
heavy: false,
|
|
86
|
+
tier: 'core',
|
|
87
|
+
description: 'Every PR-gating workflow keeps a complete aggregate gate (T11955)',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: 'typecheck',
|
|
91
|
+
label: 'Type Check (full tsc -b)',
|
|
92
|
+
command: 'pnpm',
|
|
93
|
+
args: ['run', 'typecheck'],
|
|
94
|
+
heavy: true,
|
|
95
|
+
tier: 'core',
|
|
96
|
+
description: 'Full-tree TypeScript build (CI: Type Check)',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
id: 'build',
|
|
100
|
+
label: 'Build',
|
|
101
|
+
command: 'pnpm',
|
|
102
|
+
args: ['run', 'build'],
|
|
103
|
+
heavy: true,
|
|
104
|
+
tier: 'core',
|
|
105
|
+
description: 'Full dependency-graph build (CI: Build & Verify)',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: 'test',
|
|
109
|
+
label: 'Unit Tests',
|
|
110
|
+
command: 'pnpm',
|
|
111
|
+
args: ['run', 'test'],
|
|
112
|
+
heavy: true,
|
|
113
|
+
tier: 'core',
|
|
114
|
+
description: 'Vitest suite (CI: Unit Tests shards)',
|
|
115
|
+
},
|
|
116
|
+
// --- full tier: the complete standalone-lint surface ---------------------
|
|
117
|
+
{
|
|
118
|
+
id: 'lint-llm-chokepoint',
|
|
119
|
+
label: 'LLM Chokepoint Guard',
|
|
120
|
+
command: 'node',
|
|
121
|
+
args: ['scripts/lint-llm-chokepoint.mjs'],
|
|
122
|
+
heavy: false,
|
|
123
|
+
tier: 'full',
|
|
124
|
+
description: 'No-hardcoded-models / out-of-chokepoint LLM construction (CI: Arch Boundary Check)',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: 'lint-contracts-dep',
|
|
128
|
+
label: 'Contracts Dep Lint',
|
|
129
|
+
command: 'node',
|
|
130
|
+
args: ['scripts/lint-contracts-dep.mjs'],
|
|
131
|
+
heavy: false,
|
|
132
|
+
tier: 'full',
|
|
133
|
+
description: 'Package boundary dependency lint (CI: Contracts Dep Lint)',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: 'lint-deployed-template-parity',
|
|
137
|
+
label: 'Deployed Template Parity',
|
|
138
|
+
command: 'node',
|
|
139
|
+
args: ['scripts/lint-deployed-template-parity.mjs'],
|
|
140
|
+
heavy: false,
|
|
141
|
+
tier: 'full',
|
|
142
|
+
description: 'Rendered workflow templates match deployed (CI: Deployed Template Parity)',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
id: 'lint-publish-surface',
|
|
146
|
+
label: 'Publish Surface Lint',
|
|
147
|
+
command: 'node',
|
|
148
|
+
args: ['scripts/lint-publish-surface.mjs'],
|
|
149
|
+
heavy: false,
|
|
150
|
+
tier: 'full',
|
|
151
|
+
description: 'npm publish surface SSoT (CI: Publish Surface Lint)',
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
id: 'lint-no-crate-publish',
|
|
155
|
+
label: 'Crate Publish Guard',
|
|
156
|
+
command: 'node',
|
|
157
|
+
args: ['scripts/lint-no-crate-publish.mjs'],
|
|
158
|
+
heavy: false,
|
|
159
|
+
tier: 'full',
|
|
160
|
+
description: 'Zero crates.io publishes (CI: Crate Publish Guard)',
|
|
161
|
+
},
|
|
162
|
+
];
|
|
163
|
+
/**
|
|
164
|
+
* Resolve the gate set for a run: the `core` tier always, plus the `full`
|
|
165
|
+
* tier when requested, then narrowed by `only` (which marks the rest skipped).
|
|
166
|
+
*
|
|
167
|
+
* @param opts run options
|
|
168
|
+
* @returns the gates to execute (in registry order) plus the skipped set
|
|
169
|
+
* @internal exported for unit testing
|
|
170
|
+
*/
|
|
171
|
+
export function selectPrGates(opts) {
|
|
172
|
+
const tierFiltered = PR_GATES.filter((g) => g.tier === 'core' || (opts.full && g.tier === 'full'));
|
|
173
|
+
if (!opts.only || opts.only.length === 0) {
|
|
174
|
+
return { toRun: [...tierFiltered], skipped: [] };
|
|
175
|
+
}
|
|
176
|
+
const wanted = new Set(opts.only);
|
|
177
|
+
const toRun = tierFiltered.filter((g) => wanted.has(g.id));
|
|
178
|
+
const skipped = tierFiltered.filter((g) => !wanted.has(g.id));
|
|
179
|
+
return { toRun, skipped };
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Is `systemd-run` available on this host? Probed once and cached for the
|
|
183
|
+
* process lifetime.
|
|
184
|
+
*/
|
|
185
|
+
let systemdRunAvailable;
|
|
186
|
+
function hasSystemdRun() {
|
|
187
|
+
if (systemdRunAvailable !== undefined)
|
|
188
|
+
return systemdRunAvailable;
|
|
189
|
+
if (process.platform !== 'linux') {
|
|
190
|
+
systemdRunAvailable = false;
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
const probe = spawnSync('systemd-run', ['--version'], { stdio: 'ignore' });
|
|
194
|
+
systemdRunAvailable = probe.status === 0;
|
|
195
|
+
return systemdRunAvailable;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Build the argv for a gate, wrapping heavy gates in a cgroup-capped
|
|
199
|
+
* `systemd-run --user --scope` when available on Linux.
|
|
200
|
+
*
|
|
201
|
+
* @param gate the gate definition
|
|
202
|
+
* @param memoryMax MemoryMax value (e.g. `16G`)
|
|
203
|
+
* @returns `{ command, args, capped }`
|
|
204
|
+
* @internal exported for unit testing
|
|
205
|
+
*/
|
|
206
|
+
export function buildGateArgv(gate, memoryMax) {
|
|
207
|
+
if (gate.heavy && hasSystemdRun()) {
|
|
208
|
+
return {
|
|
209
|
+
command: 'systemd-run',
|
|
210
|
+
args: [
|
|
211
|
+
'--user',
|
|
212
|
+
'--scope',
|
|
213
|
+
'--quiet',
|
|
214
|
+
'-p',
|
|
215
|
+
`MemoryMax=${memoryMax}`,
|
|
216
|
+
'-p',
|
|
217
|
+
'MemorySwapMax=0',
|
|
218
|
+
'--',
|
|
219
|
+
gate.command,
|
|
220
|
+
...gate.args,
|
|
221
|
+
],
|
|
222
|
+
capped: true,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
return { command: gate.command, args: [...gate.args], capped: false };
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Resolve the working tree the gates run in: the git toplevel of
|
|
229
|
+
* `process.cwd()` (so the gates validate the agent's actual checkout/worktree
|
|
230
|
+
* incl. uncommitted changes). Falls back to {@link getProjectRoot} when not in
|
|
231
|
+
* a git work tree.
|
|
232
|
+
*
|
|
233
|
+
* @returns absolute path to the working-tree root
|
|
234
|
+
* @internal exported for unit testing
|
|
235
|
+
*/
|
|
236
|
+
export function resolveWorkingTree() {
|
|
237
|
+
const top = spawnSync('git', ['rev-parse', '--show-toplevel'], {
|
|
238
|
+
encoding: 'utf8',
|
|
239
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
240
|
+
});
|
|
241
|
+
if (top.status === 0 && typeof top.stdout === 'string' && top.stdout.trim().length > 0) {
|
|
242
|
+
return top.stdout.trim();
|
|
243
|
+
}
|
|
244
|
+
return getProjectRoot();
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Keep only the last `n` non-empty lines of a captured output blob, trimmed.
|
|
248
|
+
*
|
|
249
|
+
* @param output raw combined output
|
|
250
|
+
* @param n max lines to retain
|
|
251
|
+
*/
|
|
252
|
+
function tailLines(output, n) {
|
|
253
|
+
return output
|
|
254
|
+
.split('\n')
|
|
255
|
+
.map((l) => l.trimEnd())
|
|
256
|
+
.filter((l) => l.length > 0)
|
|
257
|
+
.slice(-n)
|
|
258
|
+
.join('\n');
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Run the unified pre-PR gate suite and return a structured summary.
|
|
262
|
+
*
|
|
263
|
+
* Each gate runs as a child process from the repository root. Heavy gates are
|
|
264
|
+
* cgroup-capped on Linux when `systemd-run` is available. By default the run
|
|
265
|
+
* continues after a failure (so the agent sees every problem at once); pass
|
|
266
|
+
* `keepGoing: false` to stop at the first failure.
|
|
267
|
+
*
|
|
268
|
+
* This function performs no process I/O of its own beyond `onProgress`
|
|
269
|
+
* callbacks — the CLI layer owns stdout/stderr rendering.
|
|
270
|
+
*
|
|
271
|
+
* @param opts run options
|
|
272
|
+
* @returns the aggregate {@link PrGateSummary}
|
|
273
|
+
*/
|
|
274
|
+
export function runPrGate(opts = {}) {
|
|
275
|
+
const repoRoot = opts.cwd ?? resolveWorkingTree();
|
|
276
|
+
const memoryMax = opts.memoryMax ?? DEFAULT_MEMORY_MAX;
|
|
277
|
+
const keepGoing = opts.keepGoing ?? true;
|
|
278
|
+
const emit = opts.onProgress ?? (() => { });
|
|
279
|
+
const { toRun, skipped } = selectPrGates(opts);
|
|
280
|
+
const results = [];
|
|
281
|
+
let aborted = false;
|
|
282
|
+
for (const gate of toRun) {
|
|
283
|
+
if (aborted) {
|
|
284
|
+
results.push({
|
|
285
|
+
id: gate.id,
|
|
286
|
+
label: gate.label,
|
|
287
|
+
status: 'skipped',
|
|
288
|
+
exitCode: null,
|
|
289
|
+
durationMs: 0,
|
|
290
|
+
capped: false,
|
|
291
|
+
outputTail: 'skipped — earlier gate failed and --keep-going is off',
|
|
292
|
+
});
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
295
|
+
const { command, args, capped } = buildGateArgv(gate, memoryMax);
|
|
296
|
+
emit(`▶ ${gate.label}${capped ? ` (capped ${memoryMax})` : ''}`);
|
|
297
|
+
const start = Date.now();
|
|
298
|
+
const proc = spawnSync(command, args, {
|
|
299
|
+
cwd: repoRoot,
|
|
300
|
+
encoding: 'utf8',
|
|
301
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
302
|
+
env: process.env,
|
|
303
|
+
});
|
|
304
|
+
const durationMs = Date.now() - start;
|
|
305
|
+
const combined = `${proc.stdout ?? ''}\n${proc.stderr ?? ''}`;
|
|
306
|
+
const passed = proc.status === 0;
|
|
307
|
+
results.push({
|
|
308
|
+
id: gate.id,
|
|
309
|
+
label: gate.label,
|
|
310
|
+
status: passed ? 'pass' : 'fail',
|
|
311
|
+
exitCode: proc.status,
|
|
312
|
+
durationMs,
|
|
313
|
+
capped,
|
|
314
|
+
outputTail: passed ? '' : tailLines(combined, 20),
|
|
315
|
+
});
|
|
316
|
+
emit(`${passed ? '✓' : '✗'} ${gate.label} (${(durationMs / 1000).toFixed(1)}s)`);
|
|
317
|
+
if (!passed && !keepGoing)
|
|
318
|
+
aborted = true;
|
|
319
|
+
}
|
|
320
|
+
for (const gate of skipped) {
|
|
321
|
+
results.push({
|
|
322
|
+
id: gate.id,
|
|
323
|
+
label: gate.label,
|
|
324
|
+
status: 'skipped',
|
|
325
|
+
exitCode: null,
|
|
326
|
+
durationMs: 0,
|
|
327
|
+
capped: false,
|
|
328
|
+
outputTail: 'skipped — not selected by --only',
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
const pass = results.filter((r) => r.status === 'pass').length;
|
|
332
|
+
const fail = results.filter((r) => r.status === 'fail').length;
|
|
333
|
+
const skip = results.filter((r) => r.status === 'skipped').length;
|
|
334
|
+
return {
|
|
335
|
+
repoRoot,
|
|
336
|
+
passed: fail === 0,
|
|
337
|
+
gates: results,
|
|
338
|
+
summary: { pass, fail, skipped: skip },
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Render a {@link PrGateSummary} as a human-readable, multi-line report
|
|
343
|
+
* (no trailing newline). The CLI writes this to stderr while the LAFS envelope
|
|
344
|
+
* goes to stdout — keeping presentation logic in core so the CLI stays a thin
|
|
345
|
+
* dispatch (AGENTS.md Package-Boundary Check).
|
|
346
|
+
*
|
|
347
|
+
* @param summary the aggregate result of a `cleo check pr` run
|
|
348
|
+
* @returns the formatted human report
|
|
349
|
+
*/
|
|
350
|
+
export function formatPrGateSummary(summary) {
|
|
351
|
+
const rule = '─'.repeat(52);
|
|
352
|
+
const lines = ['', 'Pre-PR Gate (cleo check pr) — T11956', rule];
|
|
353
|
+
for (const g of summary.gates) {
|
|
354
|
+
const icon = g.status === 'pass' ? 'PASS' : g.status === 'fail' ? 'FAIL' : 'SKIP';
|
|
355
|
+
const dur = g.status === 'skipped' ? '' : ` (${(g.durationMs / 1000).toFixed(1)}s)`;
|
|
356
|
+
lines.push(` [${icon}] ${g.label}${dur}`);
|
|
357
|
+
if (g.status === 'fail' && g.outputTail) {
|
|
358
|
+
for (const tail of g.outputTail.split('\n').slice(-6))
|
|
359
|
+
lines.push(` ${tail}`);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
const { pass, fail, skipped } = summary.summary;
|
|
363
|
+
lines.push(rule, ` Result: ${pass} passed, ${fail} failed, ${skipped} skipped`, '');
|
|
364
|
+
return lines.join('\n');
|
|
365
|
+
}
|
|
366
|
+
//# sourceMappingURL=pr-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-gate.js","sourceRoot":"","sources":["../../src/check/pr-gate.ts"],"names":[],"mappings":"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"}
|