@cleocode/core 2026.4.31 → 2026.4.36
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/adapters/adapter-registry.js +64 -0
- package/dist/adapters/adapter-registry.js.map +1 -0
- package/dist/adapters/discovery.js +83 -0
- package/dist/adapters/discovery.js.map +1 -0
- package/dist/adapters/index.js +9 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/manager.js +260 -0
- package/dist/adapters/manager.js.map +1 -0
- package/dist/admin/export-tasks.js +171 -0
- package/dist/admin/export-tasks.js.map +1 -0
- package/dist/admin/export.js +103 -0
- package/dist/admin/export.js.map +1 -0
- package/dist/admin/help.js +106 -0
- package/dist/admin/help.js.map +1 -0
- package/dist/admin/import-tasks.js +182 -0
- package/dist/admin/import-tasks.js.map +1 -0
- package/dist/admin/import.js +129 -0
- package/dist/admin/import.js.map +1 -0
- package/dist/admin/index.js +13 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/adrs/find.js +134 -0
- package/dist/adrs/find.js.map +1 -0
- package/dist/adrs/index.js +15 -0
- package/dist/adrs/index.js.map +1 -0
- package/dist/adrs/link-pipeline.js +160 -0
- package/dist/adrs/link-pipeline.js.map +1 -0
- package/dist/adrs/list.js +43 -0
- package/dist/adrs/list.js.map +1 -0
- package/dist/adrs/parse.js +51 -0
- package/dist/adrs/parse.js.map +1 -0
- package/dist/adrs/show.js +22 -0
- package/dist/adrs/show.js.map +1 -0
- package/dist/adrs/sync.js +232 -0
- package/dist/adrs/sync.js.map +1 -0
- package/dist/adrs/types.js +9 -0
- package/dist/adrs/types.js.map +1 -0
- package/dist/adrs/validate.js +57 -0
- package/dist/adrs/validate.js.map +1 -0
- package/dist/agents/agent-registry.js +288 -0
- package/dist/agents/agent-registry.js.map +1 -0
- package/dist/agents/agent-schema.js +82 -0
- package/dist/agents/agent-schema.js.map +1 -0
- package/dist/agents/capacity.js +116 -0
- package/dist/agents/capacity.js.map +1 -0
- package/dist/agents/execution-learning.js +474 -0
- package/dist/agents/execution-learning.js.map +1 -0
- package/dist/agents/health-monitor.js +217 -0
- package/dist/agents/health-monitor.js.map +1 -0
- package/dist/agents/index.js +29 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/registry.js +314 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/retry.js +215 -0
- package/dist/agents/retry.js.map +1 -0
- package/dist/audit-prune.js +94 -0
- package/dist/audit-prune.js.map +1 -0
- package/dist/audit.js +68 -0
- package/dist/audit.js.map +1 -0
- package/dist/backfill/index.js +229 -0
- package/dist/backfill/index.js.map +1 -0
- package/dist/bootstrap.js +435 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/caamp/adapter.js +259 -0
- package/dist/caamp/adapter.js.map +1 -0
- package/dist/caamp/capability-check.js +38 -0
- package/dist/caamp/capability-check.js.map +1 -0
- package/dist/caamp/index.js +21 -0
- package/dist/caamp/index.js.map +1 -0
- package/dist/caamp-init.js +16 -0
- package/dist/caamp-init.js.map +1 -0
- package/dist/cleo.js +322 -0
- package/dist/cleo.js.map +1 -0
- package/dist/code/index.js +14 -0
- package/dist/code/index.js.map +1 -0
- package/dist/code/outline.js +165 -0
- package/dist/code/outline.js.map +1 -0
- package/dist/code/parser.js +420 -0
- package/dist/code/parser.js.map +1 -0
- package/dist/code/search.js +135 -0
- package/dist/code/search.js.map +1 -0
- package/dist/code/unfold.js +155 -0
- package/dist/code/unfold.js.map +1 -0
- package/dist/codebase-map/analyzers/architecture.js +129 -0
- package/dist/codebase-map/analyzers/architecture.js.map +1 -0
- package/dist/codebase-map/analyzers/concerns.js +122 -0
- package/dist/codebase-map/analyzers/concerns.js.map +1 -0
- package/dist/codebase-map/analyzers/conventions.js +149 -0
- package/dist/codebase-map/analyzers/conventions.js.map +1 -0
- package/dist/codebase-map/analyzers/integrations.js +108 -0
- package/dist/codebase-map/analyzers/integrations.js.map +1 -0
- package/dist/codebase-map/analyzers/stack.js +117 -0
- package/dist/codebase-map/analyzers/stack.js.map +1 -0
- package/dist/codebase-map/analyzers/structure.js +137 -0
- package/dist/codebase-map/analyzers/structure.js.map +1 -0
- package/dist/codebase-map/analyzers/testing.js +118 -0
- package/dist/codebase-map/analyzers/testing.js.map +1 -0
- package/dist/codebase-map/index.js +57 -0
- package/dist/codebase-map/index.js.map +1 -0
- package/dist/codebase-map/store.js +122 -0
- package/dist/codebase-map/store.js.map +1 -0
- package/dist/codebase-map/summary.js +152 -0
- package/dist/codebase-map/summary.js.map +1 -0
- package/dist/compliance/index.js +288 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/compliance/protocol-enforcement.js +332 -0
- package/dist/compliance/protocol-enforcement.js.map +1 -0
- package/dist/compliance/protocol-rules.js +786 -0
- package/dist/compliance/protocol-rules.js.map +1 -0
- package/dist/compliance/protocol-types.js +79 -0
- package/dist/compliance/protocol-types.js.map +1 -0
- package/dist/compliance/store.js +53 -0
- package/dist/compliance/store.js.map +1 -0
- package/dist/conduit/conduit-client.js +107 -0
- package/dist/conduit/conduit-client.js.map +1 -0
- package/dist/conduit/factory.js +52 -0
- package/dist/conduit/factory.js.map +1 -0
- package/dist/conduit/http-transport.js +155 -0
- package/dist/conduit/http-transport.js.map +1 -0
- package/dist/conduit/index.js +15 -0
- package/dist/conduit/index.js.map +1 -0
- package/dist/conduit/local-transport.js +255 -0
- package/dist/conduit/local-transport.js.map +1 -0
- package/dist/conduit/sse-transport.js +299 -0
- package/dist/conduit/sse-transport.js.map +1 -0
- package/dist/config/build-config.js +29 -0
- package/dist/config/build-config.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +407 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/context/index.js +137 -0
- package/dist/context/index.js.map +1 -0
- package/dist/crypto/credentials.js +219 -0
- package/dist/crypto/credentials.js.map +1 -0
- package/dist/discovery.js +182 -0
- package/dist/discovery.js.map +1 -0
- package/dist/engine-result.js +12 -0
- package/dist/engine-result.js.map +1 -0
- package/dist/error-catalog.js +404 -0
- package/dist/error-catalog.js.map +1 -0
- package/dist/error-registry.js +393 -0
- package/dist/error-registry.js.map +1 -0
- package/dist/errors.js +173 -0
- package/dist/errors.js.map +1 -0
- package/dist/hooks/handlers/agent-hooks.js +106 -0
- package/dist/hooks/handlers/agent-hooks.js.map +1 -0
- package/dist/hooks/handlers/conduit-hooks.d.ts +72 -0
- package/dist/hooks/handlers/conduit-hooks.d.ts.map +1 -0
- package/dist/hooks/handlers/conduit-hooks.js +229 -0
- package/dist/hooks/handlers/conduit-hooks.js.map +1 -0
- package/dist/hooks/handlers/context-hooks.js +111 -0
- package/dist/hooks/handlers/context-hooks.js.map +1 -0
- package/dist/hooks/handlers/error-hooks.js +52 -0
- package/dist/hooks/handlers/error-hooks.js.map +1 -0
- package/dist/hooks/handlers/file-hooks.js +104 -0
- package/dist/hooks/handlers/file-hooks.js.map +1 -0
- package/dist/hooks/handlers/handler-helpers.js +61 -0
- package/dist/hooks/handlers/handler-helpers.js.map +1 -0
- package/dist/hooks/handlers/index.d.ts +6 -0
- package/dist/hooks/handlers/index.d.ts.map +1 -1
- package/dist/hooks/handlers/index.js +37 -0
- package/dist/hooks/handlers/index.js.map +1 -0
- package/dist/hooks/handlers/intelligence-hooks.d.ts +26 -0
- package/dist/hooks/handlers/intelligence-hooks.d.ts.map +1 -0
- package/dist/hooks/handlers/intelligence-hooks.js +69 -0
- package/dist/hooks/handlers/intelligence-hooks.js.map +1 -0
- package/dist/hooks/handlers/memory-bridge-refresh.js +42 -0
- package/dist/hooks/handlers/memory-bridge-refresh.js.map +1 -0
- package/dist/hooks/handlers/notification-hooks.js +62 -0
- package/dist/hooks/handlers/notification-hooks.js.map +1 -0
- package/dist/hooks/handlers/session-hooks.d.ts +30 -0
- package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/session-hooks.js +190 -0
- package/dist/hooks/handlers/session-hooks.js.map +1 -0
- package/dist/hooks/handlers/task-hooks.d.ts +2 -0
- package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/task-hooks.js +79 -0
- package/dist/hooks/handlers/task-hooks.js.map +1 -0
- package/dist/hooks/handlers/watchdog-hooks.d.ts +49 -0
- package/dist/hooks/handlers/watchdog-hooks.d.ts.map +1 -0
- package/dist/hooks/handlers/watchdog-hooks.js +162 -0
- package/dist/hooks/handlers/watchdog-hooks.js.map +1 -0
- package/dist/hooks/handlers/work-capture-hooks.js +165 -0
- package/dist/hooks/handlers/work-capture-hooks.js.map +1 -0
- package/dist/hooks/index.js +13 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/payload-schemas.js +220 -0
- package/dist/hooks/payload-schemas.js.map +1 -0
- package/dist/hooks/provider-hooks.js +66 -0
- package/dist/hooks/provider-hooks.js.map +1 -0
- package/dist/hooks/registry.js +229 -0
- package/dist/hooks/registry.js.map +1 -0
- package/dist/hooks/types.js +66 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/hooks.js +136 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.js +56736 -47002
- package/dist/index.js.map +4 -4
- package/dist/init.js +920 -0
- package/dist/init.js.map +1 -0
- package/dist/inject/index.js +82 -0
- package/dist/inject/index.js.map +1 -0
- package/dist/injection.d.ts +13 -1
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +377 -0
- package/dist/injection.js.map +1 -0
- package/dist/intelligence/adaptive-validation.js +497 -0
- package/dist/intelligence/adaptive-validation.js.map +1 -0
- package/dist/intelligence/impact.js +675 -0
- package/dist/intelligence/impact.js.map +1 -0
- package/dist/intelligence/index.js +22 -0
- package/dist/intelligence/index.js.map +1 -0
- package/dist/intelligence/patterns.js +492 -0
- package/dist/intelligence/patterns.js.map +1 -0
- package/dist/intelligence/prediction.js +499 -0
- package/dist/intelligence/prediction.js.map +1 -0
- package/dist/intelligence/types.js +13 -0
- package/dist/intelligence/types.js.map +1 -0
- package/dist/internal.d.ts +10 -3
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +321 -0
- package/dist/internal.js.map +1 -0
- package/dist/issue/create.js +121 -0
- package/dist/issue/create.js.map +1 -0
- package/dist/issue/diagnostics.js +59 -0
- package/dist/issue/diagnostics.js.map +1 -0
- package/dist/issue/index.js +10 -0
- package/dist/issue/index.js.map +1 -0
- package/dist/issue/template-parser.js +267 -0
- package/dist/issue/template-parser.js.map +1 -0
- package/dist/json-schema-validator.js +76 -0
- package/dist/json-schema-validator.js.map +1 -0
- package/dist/lib/index.js +11 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/retry.js +152 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/tree-sitter-languages.js +75 -0
- package/dist/lib/tree-sitter-languages.js.map +1 -0
- package/dist/lifecycle/chain-composition.js +152 -0
- package/dist/lifecycle/chain-composition.js.map +1 -0
- package/dist/lifecycle/chain-store.js +246 -0
- package/dist/lifecycle/chain-store.js.map +1 -0
- package/dist/lifecycle/consolidate-rcasd.js +352 -0
- package/dist/lifecycle/consolidate-rcasd.js.map +1 -0
- package/dist/lifecycle/default-chain.js +176 -0
- package/dist/lifecycle/default-chain.js.map +1 -0
- package/dist/lifecycle/evidence.js +180 -0
- package/dist/lifecycle/evidence.js.map +1 -0
- package/dist/lifecycle/frontmatter.js +363 -0
- package/dist/lifecycle/frontmatter.js.map +1 -0
- package/dist/lifecycle/index.js +756 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/lifecycle/pipeline.js +656 -0
- package/dist/lifecycle/pipeline.js.map +1 -0
- package/dist/lifecycle/rcasd-index.js +326 -0
- package/dist/lifecycle/rcasd-index.js.map +1 -0
- package/dist/lifecycle/rcasd-paths.js +220 -0
- package/dist/lifecycle/rcasd-paths.js.map +1 -0
- package/dist/lifecycle/resume.js +864 -0
- package/dist/lifecycle/resume.js.map +1 -0
- package/dist/lifecycle/stage-artifacts.js +94 -0
- package/dist/lifecycle/stage-artifacts.js.map +1 -0
- package/dist/lifecycle/stage-guidance.js +234 -0
- package/dist/lifecycle/stage-guidance.js.map +1 -0
- package/dist/lifecycle/stages.js +534 -0
- package/dist/lifecycle/stages.js.map +1 -0
- package/dist/lifecycle/state-machine.js +516 -0
- package/dist/lifecycle/state-machine.js.map +1 -0
- package/dist/lifecycle/tessera-engine.js +249 -0
- package/dist/lifecycle/tessera-engine.js.map +1 -0
- package/dist/logger.js +140 -0
- package/dist/logger.js.map +1 -0
- package/dist/memory/anthropic-key-resolver.d.ts +35 -0
- package/dist/memory/anthropic-key-resolver.d.ts.map +1 -0
- package/dist/memory/anthropic-key-resolver.js +105 -0
- package/dist/memory/anthropic-key-resolver.js.map +1 -0
- package/dist/memory/auto-extract.d.ts +38 -42
- package/dist/memory/auto-extract.d.ts.map +1 -1
- package/dist/memory/auto-extract.js +77 -0
- package/dist/memory/auto-extract.js.map +1 -0
- package/dist/memory/brain-backfill.js +389 -0
- package/dist/memory/brain-backfill.js.map +1 -0
- package/dist/memory/brain-consolidator.d.ts +48 -0
- package/dist/memory/brain-consolidator.d.ts.map +1 -0
- package/dist/memory/brain-consolidator.js +294 -0
- package/dist/memory/brain-consolidator.js.map +1 -0
- package/dist/memory/brain-embedding.js +66 -0
- package/dist/memory/brain-embedding.js.map +1 -0
- package/dist/memory/brain-lifecycle.d.ts +83 -2
- package/dist/memory/brain-lifecycle.d.ts.map +1 -1
- package/dist/memory/brain-lifecycle.js +807 -0
- package/dist/memory/brain-lifecycle.js.map +1 -0
- package/dist/memory/brain-links.js +161 -0
- package/dist/memory/brain-links.js.map +1 -0
- package/dist/memory/brain-maintenance.js +114 -0
- package/dist/memory/brain-maintenance.js.map +1 -0
- package/dist/memory/brain-migration.js +149 -0
- package/dist/memory/brain-migration.js.map +1 -0
- package/dist/memory/brain-purge.js +243 -0
- package/dist/memory/brain-purge.js.map +1 -0
- package/dist/memory/brain-reasoning.js +215 -0
- package/dist/memory/brain-reasoning.js.map +1 -0
- package/dist/memory/brain-retrieval.d.ts +75 -1
- package/dist/memory/brain-retrieval.d.ts.map +1 -1
- package/dist/memory/brain-retrieval.js +1044 -0
- package/dist/memory/brain-retrieval.js.map +1 -0
- package/dist/memory/brain-row-types.js +10 -0
- package/dist/memory/brain-row-types.js.map +1 -0
- package/dist/memory/brain-search.d.ts +82 -15
- package/dist/memory/brain-search.d.ts.map +1 -1
- package/dist/memory/brain-search.js +613 -0
- package/dist/memory/brain-search.js.map +1 -0
- package/dist/memory/brain-similarity.js +145 -0
- package/dist/memory/brain-similarity.js.map +1 -0
- package/dist/memory/claude-mem-migration.js +277 -0
- package/dist/memory/claude-mem-migration.js.map +1 -0
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +218 -0
- package/dist/memory/decisions.js.map +1 -0
- package/dist/memory/embedding-local.js +102 -0
- package/dist/memory/embedding-local.js.map +1 -0
- package/dist/memory/embedding-queue.js +271 -0
- package/dist/memory/embedding-queue.js.map +1 -0
- package/dist/memory/embedding-worker.js +58 -0
- package/dist/memory/embedding-worker.js.map +1 -0
- package/dist/memory/engine-compat.d.ts +16 -1
- package/dist/memory/engine-compat.d.ts.map +1 -1
- package/dist/memory/engine-compat.js +1561 -0
- package/dist/memory/engine-compat.js.map +1 -0
- package/dist/memory/extraction-gate.d.ts +139 -0
- package/dist/memory/extraction-gate.d.ts.map +1 -0
- package/dist/memory/extraction-gate.js +459 -0
- package/dist/memory/extraction-gate.js.map +1 -0
- package/dist/memory/graph-auto-populate.js +148 -0
- package/dist/memory/graph-auto-populate.js.map +1 -0
- package/dist/memory/graph-queries.js +290 -0
- package/dist/memory/graph-queries.js.map +1 -0
- package/dist/memory/index.d.ts +2 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1144 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/learnings.d.ts +14 -0
- package/dist/memory/learnings.d.ts.map +1 -1
- package/dist/memory/learnings.js +179 -0
- package/dist/memory/learnings.js.map +1 -0
- package/dist/memory/llm-extraction.d.ts +107 -0
- package/dist/memory/llm-extraction.d.ts.map +1 -0
- package/dist/memory/llm-extraction.js +425 -0
- package/dist/memory/llm-extraction.js.map +1 -0
- package/dist/memory/memory-bridge.js +382 -0
- package/dist/memory/memory-bridge.js.map +1 -0
- package/dist/memory/mental-model-injection.js +61 -0
- package/dist/memory/mental-model-injection.js.map +1 -0
- package/dist/memory/mental-model-queue.js +211 -0
- package/dist/memory/mental-model-queue.js.map +1 -0
- package/dist/memory/observer-reflector.d.ts +157 -0
- package/dist/memory/observer-reflector.d.ts.map +1 -0
- package/dist/memory/observer-reflector.js +626 -0
- package/dist/memory/observer-reflector.js.map +1 -0
- package/dist/memory/patterns.d.ts +24 -4
- package/dist/memory/patterns.d.ts.map +1 -1
- package/dist/memory/patterns.js +174 -0
- package/dist/memory/patterns.js.map +1 -0
- package/dist/memory/pipeline-manifest-sqlite.js +975 -0
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -0
- package/dist/memory/quality-scoring.d.ts +42 -5
- package/dist/memory/quality-scoring.d.ts.map +1 -1
- package/dist/memory/quality-scoring.js +182 -0
- package/dist/memory/quality-scoring.js.map +1 -0
- package/dist/memory/session-memory.js +331 -0
- package/dist/memory/session-memory.js.map +1 -0
- package/dist/metrics/ab-test.js +260 -0
- package/dist/metrics/ab-test.js.map +1 -0
- package/dist/metrics/aggregation.js +363 -0
- package/dist/metrics/aggregation.js.map +1 -0
- package/dist/metrics/common.js +64 -0
- package/dist/metrics/common.js.map +1 -0
- package/dist/metrics/enums.js +78 -0
- package/dist/metrics/enums.js.map +1 -0
- package/dist/metrics/index.js +19 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/model-provider-registry.js +88 -0
- package/dist/metrics/model-provider-registry.js.map +1 -0
- package/dist/metrics/otel-integration.js +263 -0
- package/dist/metrics/otel-integration.js.map +1 -0
- package/dist/metrics/provider-detection.js +103 -0
- package/dist/metrics/provider-detection.js.map +1 -0
- package/dist/metrics/token-estimation.js +253 -0
- package/dist/metrics/token-estimation.js.map +1 -0
- package/dist/metrics/token-service.js +450 -0
- package/dist/metrics/token-service.js.map +1 -0
- package/dist/migration/agent-outputs.js +316 -0
- package/dist/migration/agent-outputs.js.map +1 -0
- package/dist/migration/checksum.js +92 -0
- package/dist/migration/checksum.js.map +1 -0
- package/dist/migration/index.js +282 -0
- package/dist/migration/index.js.map +1 -0
- package/dist/migration/logger.js +360 -0
- package/dist/migration/logger.js.map +1 -0
- package/dist/migration/preflight.js +9 -0
- package/dist/migration/preflight.js.map +1 -0
- package/dist/migration/state.js +421 -0
- package/dist/migration/state.js.map +1 -0
- package/dist/migration/validate.js +241 -0
- package/dist/migration/validate.js.map +1 -0
- package/dist/mvi-helpers.js +73 -0
- package/dist/mvi-helpers.js.map +1 -0
- package/dist/nexus/deps.js +375 -0
- package/dist/nexus/deps.js.map +1 -0
- package/dist/nexus/discover.js +288 -0
- package/dist/nexus/discover.js.map +1 -0
- package/dist/nexus/hash.js +10 -0
- package/dist/nexus/hash.js.map +1 -0
- package/dist/nexus/index.js +40 -0
- package/dist/nexus/index.js.map +1 -0
- package/dist/nexus/migrate-json-to-sqlite.js +115 -0
- package/dist/nexus/migrate-json-to-sqlite.js.map +1 -0
- package/dist/nexus/nexus-bridge.d.ts +51 -0
- package/dist/nexus/nexus-bridge.d.ts.map +1 -0
- package/dist/nexus/nexus-bridge.js +321 -0
- package/dist/nexus/nexus-bridge.js.map +1 -0
- package/dist/nexus/permissions.js +105 -0
- package/dist/nexus/permissions.js.map +1 -0
- package/dist/nexus/query.js +175 -0
- package/dist/nexus/query.js.map +1 -0
- package/dist/nexus/registry.js +584 -0
- package/dist/nexus/registry.js.map +1 -0
- package/dist/nexus/sharing/index.js +288 -0
- package/dist/nexus/sharing/index.js.map +1 -0
- package/dist/nexus/transfer-types.js +8 -0
- package/dist/nexus/transfer-types.js.map +1 -0
- package/dist/nexus/transfer.js +271 -0
- package/dist/nexus/transfer.js.map +1 -0
- package/dist/nexus/workspace.js +355 -0
- package/dist/nexus/workspace.js.map +1 -0
- package/dist/observability/index.js +103 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/log-filter.js +63 -0
- package/dist/observability/log-filter.js.map +1 -0
- package/dist/observability/log-parser.js +99 -0
- package/dist/observability/log-parser.js.map +1 -0
- package/dist/observability/log-reader.js +139 -0
- package/dist/observability/log-reader.js.map +1 -0
- package/dist/observability/types.js +19 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/orchestration/analyze.js +107 -0
- package/dist/orchestration/analyze.js.map +1 -0
- package/dist/orchestration/bootstrap.js +132 -0
- package/dist/orchestration/bootstrap.js.map +1 -0
- package/dist/orchestration/context.js +56 -0
- package/dist/orchestration/context.js.map +1 -0
- package/dist/orchestration/critical-path.js +100 -0
- package/dist/orchestration/critical-path.js.map +1 -0
- package/dist/orchestration/hierarchy.js +183 -0
- package/dist/orchestration/hierarchy.js.map +1 -0
- package/dist/orchestration/index.js +287 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/parallel.js +89 -0
- package/dist/orchestration/parallel.js.map +1 -0
- package/dist/orchestration/protocol-validators.js +815 -0
- package/dist/orchestration/protocol-validators.js.map +1 -0
- package/dist/orchestration/skill-ops.js +98 -0
- package/dist/orchestration/skill-ops.js.map +1 -0
- package/dist/orchestration/status.js +107 -0
- package/dist/orchestration/status.js.map +1 -0
- package/dist/orchestration/unblock.js +103 -0
- package/dist/orchestration/unblock.js.map +1 -0
- package/dist/orchestration/validate-spawn.js +67 -0
- package/dist/orchestration/validate-spawn.js.map +1 -0
- package/dist/orchestration/waves.js +86 -0
- package/dist/orchestration/waves.js.map +1 -0
- package/dist/otel/index.js +163 -0
- package/dist/otel/index.js.map +1 -0
- package/dist/output.js +164 -0
- package/dist/output.js.map +1 -0
- package/dist/pagination.js +64 -0
- package/dist/pagination.js.map +1 -0
- package/dist/paths.js +882 -0
- package/dist/paths.js.map +1 -0
- package/dist/phases/deps.js +372 -0
- package/dist/phases/deps.js.map +1 -0
- package/dist/phases/index.js +349 -0
- package/dist/phases/index.js.map +1 -0
- package/dist/pipeline/index.js +10 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/phase.js +45 -0
- package/dist/pipeline/phase.js.map +1 -0
- package/dist/platform.js +211 -0
- package/dist/platform.js.map +1 -0
- package/dist/project-info.js +84 -0
- package/dist/project-info.js.map +1 -0
- package/dist/reconciliation/index.js +10 -0
- package/dist/reconciliation/index.js.map +1 -0
- package/dist/reconciliation/link-store.js +175 -0
- package/dist/reconciliation/link-store.js.map +1 -0
- package/dist/reconciliation/reconciliation-engine.js +298 -0
- package/dist/reconciliation/reconciliation-engine.js.map +1 -0
- package/dist/release/artifacts.js +427 -0
- package/dist/release/artifacts.js.map +1 -0
- package/dist/release/changelog-writer.js +151 -0
- package/dist/release/changelog-writer.js.map +1 -0
- package/dist/release/channel.js +144 -0
- package/dist/release/channel.js.map +1 -0
- package/dist/release/ci.js +166 -0
- package/dist/release/ci.js.map +1 -0
- package/dist/release/github-pr.js +225 -0
- package/dist/release/github-pr.js.map +1 -0
- package/dist/release/guards.js +116 -0
- package/dist/release/guards.js.map +1 -0
- package/dist/release/index.js +22 -0
- package/dist/release/index.js.map +1 -0
- package/dist/release/release-config.js +158 -0
- package/dist/release/release-config.js.map +1 -0
- package/dist/release/release-manifest.js +1019 -0
- package/dist/release/release-manifest.js.map +1 -0
- package/dist/release/version-bump.js +255 -0
- package/dist/release/version-bump.js.map +1 -0
- package/dist/remote/index.js +257 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/repair.js +130 -0
- package/dist/repair.js.map +1 -0
- package/dist/research/index.js +2 -0
- package/dist/research/index.js.map +1 -0
- package/dist/roadmap/index.js +59 -0
- package/dist/roadmap/index.js.map +1 -0
- package/dist/routing/capability-matrix.js +1556 -0
- package/dist/routing/capability-matrix.js.map +1 -0
- package/dist/routing/index.js +9 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/scaffold.d.ts +18 -0
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +1798 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/schema-management.js +295 -0
- package/dist/schema-management.js.map +1 -0
- package/dist/security/index.js +9 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/input-sanitization.js +326 -0
- package/dist/security/input-sanitization.js.map +1 -0
- package/dist/sequence/index.js +295 -0
- package/dist/sequence/index.js.map +1 -0
- package/dist/sessions/assumptions.js +54 -0
- package/dist/sessions/assumptions.js.map +1 -0
- package/dist/sessions/briefing.js +377 -0
- package/dist/sessions/briefing.js.map +1 -0
- package/dist/sessions/context-alert.js +222 -0
- package/dist/sessions/context-alert.js.map +1 -0
- package/dist/sessions/context-inject.js +61 -0
- package/dist/sessions/context-inject.js.map +1 -0
- package/dist/sessions/context-monitor.js +98 -0
- package/dist/sessions/context-monitor.js.map +1 -0
- package/dist/sessions/decisions.js +65 -0
- package/dist/sessions/decisions.js.map +1 -0
- package/dist/sessions/find.js +65 -0
- package/dist/sessions/find.js.map +1 -0
- package/dist/sessions/handoff.js +328 -0
- package/dist/sessions/handoff.js.map +1 -0
- package/dist/sessions/hitl-warnings.js +254 -0
- package/dist/sessions/hitl-warnings.js.map +1 -0
- package/dist/sessions/index.js +327 -0
- package/dist/sessions/index.js.map +1 -0
- package/dist/sessions/session-archive.js +40 -0
- package/dist/sessions/session-archive.js.map +1 -0
- package/dist/sessions/session-cleanup.js +59 -0
- package/dist/sessions/session-cleanup.js.map +1 -0
- package/dist/sessions/session-drift.js +134 -0
- package/dist/sessions/session-drift.js.map +1 -0
- package/dist/sessions/session-enforcement.js +144 -0
- package/dist/sessions/session-enforcement.js.map +1 -0
- package/dist/sessions/session-grade.js +253 -0
- package/dist/sessions/session-grade.js.map +1 -0
- package/dist/sessions/session-history.js +42 -0
- package/dist/sessions/session-history.js.map +1 -0
- package/dist/sessions/session-id.js +81 -0
- package/dist/sessions/session-id.js.map +1 -0
- package/dist/sessions/session-memory-bridge.js +30 -0
- package/dist/sessions/session-memory-bridge.js.map +1 -0
- package/dist/sessions/session-show.js +24 -0
- package/dist/sessions/session-show.js.map +1 -0
- package/dist/sessions/session-stats.js +69 -0
- package/dist/sessions/session-stats.js.map +1 -0
- package/dist/sessions/session-suspend.js +39 -0
- package/dist/sessions/session-suspend.js.map +1 -0
- package/dist/sessions/session-switch.js +51 -0
- package/dist/sessions/session-switch.js.map +1 -0
- package/dist/sessions/session-view.js +76 -0
- package/dist/sessions/session-view.js.map +1 -0
- package/dist/sessions/snapshot.js +213 -0
- package/dist/sessions/snapshot.js.map +1 -0
- package/dist/sessions/statusline-setup.js +85 -0
- package/dist/sessions/statusline-setup.js.map +1 -0
- package/dist/sessions/types.js +8 -0
- package/dist/sessions/types.js.map +1 -0
- package/dist/skills/agents/config.js +94 -0
- package/dist/skills/agents/config.js.map +1 -0
- package/dist/skills/agents/install.js +116 -0
- package/dist/skills/agents/install.js.map +1 -0
- package/dist/skills/agents/registry.js +161 -0
- package/dist/skills/agents/registry.js.map +1 -0
- package/dist/skills/discovery.js +333 -0
- package/dist/skills/discovery.js.map +1 -0
- package/dist/skills/dispatch.js +347 -0
- package/dist/skills/dispatch.js.map +1 -0
- package/dist/skills/dynamic-skill-generator.js +87 -0
- package/dist/skills/dynamic-skill-generator.js.map +1 -0
- package/dist/skills/index.js +44 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/injection/subagent.js +195 -0
- package/dist/skills/injection/subagent.js.map +1 -0
- package/dist/skills/injection/token.js +260 -0
- package/dist/skills/injection/token.js.map +1 -0
- package/dist/skills/install.js +40 -0
- package/dist/skills/install.js.map +1 -0
- package/dist/skills/manifests/contribution.js +175 -0
- package/dist/skills/manifests/contribution.js.map +1 -0
- package/dist/skills/manifests/research.js +281 -0
- package/dist/skills/manifests/research.js.map +1 -0
- package/dist/skills/manifests/resolver.js +146 -0
- package/dist/skills/manifests/resolver.js.map +1 -0
- package/dist/skills/marketplace.js +90 -0
- package/dist/skills/marketplace.js.map +1 -0
- package/dist/skills/orchestrator/spawn.js +178 -0
- package/dist/skills/orchestrator/spawn.js.map +1 -0
- package/dist/skills/orchestrator/startup.js +451 -0
- package/dist/skills/orchestrator/startup.js.map +1 -0
- package/dist/skills/orchestrator/validator.js +301 -0
- package/dist/skills/orchestrator/validator.js.map +1 -0
- package/dist/skills/precedence-integration.js +73 -0
- package/dist/skills/precedence-integration.js.map +1 -0
- package/dist/skills/precedence-types.js +16 -0
- package/dist/skills/precedence-types.js.map +1 -0
- package/dist/skills/routing-table.js +63 -0
- package/dist/skills/routing-table.js.map +1 -0
- package/dist/skills/skill-paths.js +217 -0
- package/dist/skills/skill-paths.js.map +1 -0
- package/dist/skills/test-utility.js +55 -0
- package/dist/skills/test-utility.js.map +1 -0
- package/dist/skills/types.js +118 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skills/validation.js +183 -0
- package/dist/skills/validation.js.map +1 -0
- package/dist/skills/version.js +57 -0
- package/dist/skills/version.js.map +1 -0
- package/dist/snapshot/index.js +188 -0
- package/dist/snapshot/index.js.map +1 -0
- package/dist/spawn/adapter-registry.js +246 -0
- package/dist/spawn/adapter-registry.js.map +1 -0
- package/dist/spawn/index.js +10 -0
- package/dist/spawn/index.js.map +1 -0
- package/dist/stats/index.d.ts.map +1 -1
- package/dist/stats/index.js +350 -0
- package/dist/stats/index.js.map +1 -0
- package/dist/stats/workflow-telemetry.js +400 -0
- package/dist/stats/workflow-telemetry.js.map +1 -0
- package/dist/sticky/archive.js +47 -0
- package/dist/sticky/archive.js.map +1 -0
- package/dist/sticky/convert.js +235 -0
- package/dist/sticky/convert.js.map +1 -0
- package/dist/sticky/create.js +48 -0
- package/dist/sticky/create.js.map +1 -0
- package/dist/sticky/id.js +35 -0
- package/dist/sticky/id.js.map +1 -0
- package/dist/sticky/index.js +16 -0
- package/dist/sticky/index.js.map +1 -0
- package/dist/sticky/list.js +57 -0
- package/dist/sticky/list.js.map +1 -0
- package/dist/sticky/purge.js +45 -0
- package/dist/sticky/purge.js.map +1 -0
- package/dist/sticky/show.js +42 -0
- package/dist/sticky/show.js.map +1 -0
- package/dist/sticky/types.js +10 -0
- package/dist/sticky/types.js.map +1 -0
- package/dist/store/agent-registry-accessor.js +886 -0
- package/dist/store/agent-registry-accessor.js.map +1 -0
- package/dist/store/api-key-kdf.js +84 -0
- package/dist/store/api-key-kdf.js.map +1 -0
- package/dist/store/atomic.js +167 -0
- package/dist/store/atomic.js.map +1 -0
- package/dist/store/backup-crypto.js +184 -0
- package/dist/store/backup-crypto.js.map +1 -0
- package/dist/store/backup-pack.js +581 -0
- package/dist/store/backup-pack.js.map +1 -0
- package/dist/store/backup-unpack.js +449 -0
- package/dist/store/backup-unpack.js.map +1 -0
- package/dist/store/backup.js +94 -0
- package/dist/store/backup.js.map +1 -0
- package/dist/store/brain-accessor.js +429 -0
- package/dist/store/brain-accessor.js.map +1 -0
- package/dist/store/brain-schema.d.ts +663 -39
- package/dist/store/brain-schema.d.ts.map +1 -1
- package/dist/store/brain-schema.js +579 -0
- package/dist/store/brain-schema.js.map +1 -0
- package/dist/store/brain-sqlite.d.ts.map +1 -1
- package/dist/store/brain-sqlite.js +297 -0
- package/dist/store/brain-sqlite.js.map +1 -0
- package/dist/store/cache.js +168 -0
- package/dist/store/cache.js.map +1 -0
- package/dist/store/chain-schema.js +51 -0
- package/dist/store/chain-schema.js.map +1 -0
- package/dist/store/cleanup-legacy.js +171 -0
- package/dist/store/cleanup-legacy.js.map +1 -0
- package/dist/store/conduit-sqlite.js +570 -0
- package/dist/store/conduit-sqlite.js.map +1 -0
- package/dist/store/converters.js +124 -0
- package/dist/store/converters.js.map +1 -0
- package/dist/store/cross-db-cleanup.js +319 -0
- package/dist/store/cross-db-cleanup.js.map +1 -0
- package/dist/store/data-accessor.js +26 -0
- package/dist/store/data-accessor.js.map +1 -0
- package/dist/store/data-safety-central.js +269 -0
- package/dist/store/data-safety-central.js.map +1 -0
- package/dist/store/data-safety.js +274 -0
- package/dist/store/data-safety.js.map +1 -0
- package/dist/store/db-helpers.js +224 -0
- package/dist/store/db-helpers.js.map +1 -0
- package/dist/store/export.js +155 -0
- package/dist/store/export.js.map +1 -0
- package/dist/store/file-utils.js +270 -0
- package/dist/store/file-utils.js.map +1 -0
- package/dist/store/git-checkpoint.js +365 -0
- package/dist/store/git-checkpoint.js.map +1 -0
- package/dist/store/global-salt.js +147 -0
- package/dist/store/global-salt.js.map +1 -0
- package/dist/store/import-logging.js +139 -0
- package/dist/store/import-logging.js.map +1 -0
- package/dist/store/import-remap.js +145 -0
- package/dist/store/import-remap.js.map +1 -0
- package/dist/store/import-sort.js +121 -0
- package/dist/store/import-sort.js.map +1 -0
- package/dist/store/index.js +29 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/json.js +208 -0
- package/dist/store/json.js.map +1 -0
- package/dist/store/lifecycle-store.js +249 -0
- package/dist/store/lifecycle-store.js.map +1 -0
- package/dist/store/lock.js +70 -0
- package/dist/store/lock.js.map +1 -0
- package/dist/store/migrate-signaldock-to-conduit.js +562 -0
- package/dist/store/migrate-signaldock-to-conduit.js.map +1 -0
- package/dist/store/migration-manager.d.ts +5 -1
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +288 -0
- package/dist/store/migration-manager.js.map +1 -0
- package/dist/store/migration-sqlite.js +676 -0
- package/dist/store/migration-sqlite.js.map +1 -0
- package/dist/store/nexus-schema.js +268 -0
- package/dist/store/nexus-schema.js.map +1 -0
- package/dist/store/nexus-sqlite.js +242 -0
- package/dist/store/nexus-sqlite.js.map +1 -0
- package/dist/store/nexus-validation-schemas.js +40 -0
- package/dist/store/nexus-validation-schemas.js.map +1 -0
- package/dist/store/parsers.js +37 -0
- package/dist/store/parsers.js.map +1 -0
- package/dist/store/project-detect.js +457 -0
- package/dist/store/project-detect.js.map +1 -0
- package/dist/store/provider.js +101 -0
- package/dist/store/provider.js.map +1 -0
- package/dist/store/regenerators.js +207 -0
- package/dist/store/regenerators.js.map +1 -0
- package/dist/store/restore-conflict-report.js +206 -0
- package/dist/store/restore-conflict-report.js.map +1 -0
- package/dist/store/restore-json-merge.js +454 -0
- package/dist/store/restore-json-merge.js.map +1 -0
- package/dist/store/safety-data-accessor.js +257 -0
- package/dist/store/safety-data-accessor.js.map +1 -0
- package/dist/store/schema.js +7 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/session-store.js +219 -0
- package/dist/store/session-store.js.map +1 -0
- package/dist/store/signaldock-sqlite.js +550 -0
- package/dist/store/signaldock-sqlite.js.map +1 -0
- package/dist/store/sqlite-backup.js +498 -0
- package/dist/store/sqlite-backup.js.map +1 -0
- package/dist/store/sqlite-data-accessor.js +787 -0
- package/dist/store/sqlite-data-accessor.js.map +1 -0
- package/dist/store/sqlite.js +483 -0
- package/dist/store/sqlite.js.map +1 -0
- package/dist/store/status-registry.js +8 -0
- package/dist/store/status-registry.js.map +1 -0
- package/dist/store/t310-readiness.js +115 -0
- package/dist/store/t310-readiness.js.map +1 -0
- package/dist/store/task-store.js +358 -0
- package/dist/store/task-store.js.map +1 -0
- package/dist/store/tasks-schema.d.ts +1 -1
- package/dist/store/tasks-schema.js +610 -0
- package/dist/store/tasks-schema.js.map +1 -0
- package/dist/store/typed-query.js +15 -0
- package/dist/store/typed-query.js.map +1 -0
- package/dist/store/validation-schemas.d.ts +6 -6
- package/dist/store/validation-schemas.js +278 -0
- package/dist/store/validation-schemas.js.map +1 -0
- package/dist/system/archive-analytics.js +277 -0
- package/dist/system/archive-analytics.js.map +1 -0
- package/dist/system/archive-stats.js +64 -0
- package/dist/system/archive-stats.js.map +1 -0
- package/dist/system/audit.js +145 -0
- package/dist/system/audit.js.map +1 -0
- package/dist/system/backup.js +280 -0
- package/dist/system/backup.js.map +1 -0
- package/dist/system/cleanup.js +134 -0
- package/dist/system/cleanup.js.map +1 -0
- package/dist/system/dependencies.js +466 -0
- package/dist/system/dependencies.js.map +1 -0
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +1206 -0
- package/dist/system/health.js.map +1 -0
- package/dist/system/index.js +18 -0
- package/dist/system/index.js.map +1 -0
- package/dist/system/inject-generate.js +122 -0
- package/dist/system/inject-generate.js.map +1 -0
- package/dist/system/labels.js +38 -0
- package/dist/system/labels.js.map +1 -0
- package/dist/system/metrics.js +61 -0
- package/dist/system/metrics.js.map +1 -0
- package/dist/system/migrate.js +43 -0
- package/dist/system/migrate.js.map +1 -0
- package/dist/system/platform-paths.js +80 -0
- package/dist/system/platform-paths.js.map +1 -0
- package/dist/system/runtime.js +161 -0
- package/dist/system/runtime.js.map +1 -0
- package/dist/system/safestop.js +89 -0
- package/dist/system/safestop.js.map +1 -0
- package/dist/system/storage-preflight.js +123 -0
- package/dist/system/storage-preflight.js.map +1 -0
- package/dist/task-work/index.js +159 -0
- package/dist/task-work/index.js.map +1 -0
- package/dist/tasks/add.js +837 -0
- package/dist/tasks/add.js.map +1 -0
- package/dist/tasks/analyze.js +85 -0
- package/dist/tasks/analyze.js.map +1 -0
- package/dist/tasks/archive.js +90 -0
- package/dist/tasks/archive.js.map +1 -0
- package/dist/tasks/atomicity.js +83 -0
- package/dist/tasks/atomicity.js.map +1 -0
- package/dist/tasks/cancel-ops.js +83 -0
- package/dist/tasks/cancel-ops.js.map +1 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +228 -0
- package/dist/tasks/complete.js.map +1 -0
- package/dist/tasks/crossref-extract.js +73 -0
- package/dist/tasks/crossref-extract.js.map +1 -0
- package/dist/tasks/delete-preview.js +192 -0
- package/dist/tasks/delete-preview.js.map +1 -0
- package/dist/tasks/delete.js +120 -0
- package/dist/tasks/delete.js.map +1 -0
- package/dist/tasks/deletion-strategy.js +200 -0
- package/dist/tasks/deletion-strategy.js.map +1 -0
- package/dist/tasks/dependency-check.js +278 -0
- package/dist/tasks/dependency-check.js.map +1 -0
- package/dist/tasks/deps-ready.js +32 -0
- package/dist/tasks/deps-ready.js.map +1 -0
- package/dist/tasks/enforcement.js +86 -0
- package/dist/tasks/enforcement.js.map +1 -0
- package/dist/tasks/epic-enforcement.js +294 -0
- package/dist/tasks/epic-enforcement.js.map +1 -0
- package/dist/tasks/find.js +163 -0
- package/dist/tasks/find.js.map +1 -0
- package/dist/tasks/graph-cache.js +127 -0
- package/dist/tasks/graph-cache.js.map +1 -0
- package/dist/tasks/graph-ops.d.ts.map +1 -1
- package/dist/tasks/graph-ops.js +173 -0
- package/dist/tasks/graph-ops.js.map +1 -0
- package/dist/tasks/graph-rag.js +328 -0
- package/dist/tasks/graph-rag.js.map +1 -0
- package/dist/tasks/hierarchy-policy.js +149 -0
- package/dist/tasks/hierarchy-policy.js.map +1 -0
- package/dist/tasks/hierarchy.js +185 -0
- package/dist/tasks/hierarchy.js.map +1 -0
- package/dist/tasks/id-generator.js +65 -0
- package/dist/tasks/id-generator.js.map +1 -0
- package/dist/tasks/index.js +14 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/labels.js +55 -0
- package/dist/tasks/labels.js.map +1 -0
- package/dist/tasks/list.js +75 -0
- package/dist/tasks/list.js.map +1 -0
- package/dist/tasks/phase-tracking.js +133 -0
- package/dist/tasks/phase-tracking.js.map +1 -0
- package/dist/tasks/pipeline-stage.js +248 -0
- package/dist/tasks/pipeline-stage.js.map +1 -0
- package/dist/tasks/plan.js +268 -0
- package/dist/tasks/plan.js.map +1 -0
- package/dist/tasks/relates.js +101 -0
- package/dist/tasks/relates.js.map +1 -0
- package/dist/tasks/show.js +83 -0
- package/dist/tasks/show.js.map +1 -0
- package/dist/tasks/size-weighting.js +86 -0
- package/dist/tasks/size-weighting.js.map +1 -0
- package/dist/tasks/staleness.js +86 -0
- package/dist/tasks/staleness.js.map +1 -0
- package/dist/tasks/task-ops.js +1741 -0
- package/dist/tasks/task-ops.js.map +1 -0
- package/dist/tasks/update.js +303 -0
- package/dist/tasks/update.js.map +1 -0
- package/dist/templates/index.js +10 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/parser.js +254 -0
- package/dist/templates/parser.js.map +1 -0
- package/dist/ui/aliases.js +153 -0
- package/dist/ui/aliases.js.map +1 -0
- package/dist/ui/changelog.js +184 -0
- package/dist/ui/changelog.js.map +1 -0
- package/dist/ui/command-registry.js +168 -0
- package/dist/ui/command-registry.js.map +1 -0
- package/dist/ui/flags.js +94 -0
- package/dist/ui/flags.js.map +1 -0
- package/dist/ui/index.js +24 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/upgrade.js +1148 -0
- package/dist/upgrade.js.map +1 -0
- package/dist/validation/chain-validation.js +146 -0
- package/dist/validation/chain-validation.js.map +1 -0
- package/dist/validation/compliance.js +155 -0
- package/dist/validation/compliance.js.map +1 -0
- package/dist/validation/docs-sync.js +212 -0
- package/dist/validation/docs-sync.js.map +1 -0
- package/dist/validation/doctor/checks.js +1069 -0
- package/dist/validation/doctor/checks.js.map +1 -0
- package/dist/validation/doctor/index.js +9 -0
- package/dist/validation/doctor/index.js.map +1 -0
- package/dist/validation/doctor/project-cache.js +160 -0
- package/dist/validation/doctor/project-cache.js.map +1 -0
- package/dist/validation/doctor/utils.js +155 -0
- package/dist/validation/doctor/utils.js.map +1 -0
- package/dist/validation/engine.js +914 -0
- package/dist/validation/engine.js.map +1 -0
- package/dist/validation/gap-check.js +175 -0
- package/dist/validation/gap-check.js.map +1 -0
- package/dist/validation/index.js +40 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/manifest.js +237 -0
- package/dist/validation/manifest.js.map +1 -0
- package/dist/validation/operation-gate-validators.js +724 -0
- package/dist/validation/operation-gate-validators.js.map +1 -0
- package/dist/validation/operation-verification-gates.js +532 -0
- package/dist/validation/operation-verification-gates.js.map +1 -0
- package/dist/validation/param-utils.js +141 -0
- package/dist/validation/param-utils.js.map +1 -0
- package/dist/validation/protocol-common.js +300 -0
- package/dist/validation/protocol-common.js.map +1 -0
- package/dist/validation/protocols/_shared.js +82 -0
- package/dist/validation/protocols/_shared.js.map +1 -0
- package/dist/validation/protocols/architecture-decision.js +31 -0
- package/dist/validation/protocols/architecture-decision.js.map +1 -0
- package/dist/validation/protocols/artifact-publish.js +28 -0
- package/dist/validation/protocols/artifact-publish.js.map +1 -0
- package/dist/validation/protocols/consensus.js +41 -0
- package/dist/validation/protocols/consensus.js.map +1 -0
- package/dist/validation/protocols/contribution.js +27 -0
- package/dist/validation/protocols/contribution.js.map +1 -0
- package/dist/validation/protocols/decomposition.js +28 -0
- package/dist/validation/protocols/decomposition.js.map +1 -0
- package/dist/validation/protocols/implementation.js +24 -0
- package/dist/validation/protocols/implementation.js.map +1 -0
- package/dist/validation/protocols/provenance.js +29 -0
- package/dist/validation/protocols/provenance.js.map +1 -0
- package/dist/validation/protocols/release.js +29 -0
- package/dist/validation/protocols/release.js.map +1 -0
- package/dist/validation/protocols/research.js +24 -0
- package/dist/validation/protocols/research.js.map +1 -0
- package/dist/validation/protocols/specification.js +27 -0
- package/dist/validation/protocols/specification.js.map +1 -0
- package/dist/validation/protocols/testing.js +30 -0
- package/dist/validation/protocols/testing.js.map +1 -0
- package/dist/validation/protocols/validation.js +30 -0
- package/dist/validation/protocols/validation.js.map +1 -0
- package/dist/validation/schema-integrity.js +170 -0
- package/dist/validation/schema-integrity.js.map +1 -0
- package/dist/validation/schema-validator.js +176 -0
- package/dist/validation/schema-validator.js.map +1 -0
- package/dist/validation/validate-ops.js +937 -0
- package/dist/validation/validate-ops.js.map +1 -0
- package/dist/validation/validation-rules.js +226 -0
- package/dist/validation/validation-rules.js.map +1 -0
- package/dist/validation/verification.js +321 -0
- package/dist/validation/verification.js.map +1 -0
- package/migrations/drizzle-brain/20260411000001_t528-graph-schema-expansion/migration.sql +47 -0
- package/migrations/drizzle-brain/20260412000001_t531-quality-score-typed-tables/migration.sql +23 -0
- package/migrations/drizzle-brain/20260413000001_t549-tiered-typed-memory/migration.sql +195 -0
- package/migrations/drizzle-nexus/20260412000001_t529-nexus-graph-tables/migration.sql +49 -0
- package/package.json +13 -12
- package/src/config.ts +7 -0
- package/src/hooks/handlers/__tests__/conduit-hooks.test.ts +356 -0
- package/src/hooks/handlers/conduit-hooks.ts +258 -0
- package/src/hooks/handlers/index.ts +13 -0
- package/src/hooks/handlers/intelligence-hooks.ts +80 -0
- package/src/hooks/handlers/session-hooks.ts +78 -0
- package/src/hooks/handlers/task-hooks.ts +14 -0
- package/src/hooks/handlers/watchdog-hooks.ts +187 -0
- package/src/injection.ts +41 -2
- package/src/internal.ts +39 -2
- package/src/memory/__tests__/auto-extract.test.ts +43 -114
- package/src/memory/__tests__/brain-automation.test.ts +16 -39
- package/src/memory/__tests__/brain-rrf.test.ts +431 -0
- package/src/memory/__tests__/llm-extraction.test.ts +342 -0
- package/src/memory/__tests__/observer-reflector.test.ts +475 -0
- package/src/memory/anthropic-key-resolver.ts +113 -0
- package/src/memory/auto-extract.ts +40 -72
- package/src/memory/brain-consolidator.ts +344 -0
- package/src/memory/brain-lifecycle.ts +636 -2
- package/src/memory/brain-retrieval.ts +630 -18
- package/src/memory/brain-search.ts +234 -132
- package/src/memory/decisions.ts +21 -1
- package/src/memory/engine-compat.ts +25 -15
- package/src/memory/extraction-gate.ts +574 -0
- package/src/memory/index.ts +6 -2
- package/src/memory/learnings.ts +34 -1
- package/src/memory/llm-extraction.ts +524 -0
- package/src/memory/memory-bridge.ts +29 -12
- package/src/memory/observer-reflector.ts +829 -0
- package/src/memory/patterns.ts +30 -1
- package/src/memory/quality-scoring.ts +93 -9
- package/src/nexus/nexus-bridge.ts +444 -0
- package/src/scaffold.ts +42 -0
- package/src/stats/index.ts +11 -3
- package/src/store/brain-schema.ts +282 -0
- package/src/store/brain-sqlite.ts +55 -0
- package/src/store/migration-manager.ts +83 -12
- package/src/system/health.ts +17 -0
- package/src/tasks/complete.ts +7 -10
- package/src/tasks/graph-ops.ts +1 -0
- package/src/tasks/task-ops.ts +1 -1
- package/templates/CLEO-INJECTION.md +15 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intelligence Hook Handlers — Wave 5-D/E of T549
|
|
3
|
+
*
|
|
4
|
+
* Best-effort intelligence side-effects wired into task lifecycle events.
|
|
5
|
+
*
|
|
6
|
+
* On task start → calculate risk; if riskScore exceeds the HIGH threshold
|
|
7
|
+
* (≥ 0.8), store a warning observation so future agents see it.
|
|
8
|
+
*
|
|
9
|
+
* All handlers are fire-and-forget: failures MUST NOT propagate or block the
|
|
10
|
+
* operation that triggered them.
|
|
11
|
+
*
|
|
12
|
+
* @task T549
|
|
13
|
+
* @epic T549
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { hooks } from '../registry.js';
|
|
17
|
+
import type { PreToolUsePayload } from '../types.js';
|
|
18
|
+
|
|
19
|
+
// Risk thresholds — mirror RISK_THRESHOLDS in intelligence/prediction.ts
|
|
20
|
+
const RISK_HIGH = 0.8;
|
|
21
|
+
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// Task Start — Risk Detection
|
|
24
|
+
// ============================================================================
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Handle task start: calculate risk and store a warning observation if the
|
|
28
|
+
* riskScore is at or above the HIGH threshold (≥ 0.8).
|
|
29
|
+
*
|
|
30
|
+
* Uses deferred imports so this module can be imported in environments where
|
|
31
|
+
* not all transitive dependencies (brain.db, tasks.db) are present.
|
|
32
|
+
*
|
|
33
|
+
* Best-effort: any error is silently swallowed.
|
|
34
|
+
*/
|
|
35
|
+
export async function handleTaskStartIntelligence(
|
|
36
|
+
projectRoot: string,
|
|
37
|
+
payload: PreToolUsePayload,
|
|
38
|
+
): Promise<void> {
|
|
39
|
+
try {
|
|
40
|
+
// Deferred relative imports — avoids circular dependency issues and keeps
|
|
41
|
+
// this module loadable in environments where brain.db is not initialised.
|
|
42
|
+
const { getAccessor } = await import('../../store/data-accessor.js');
|
|
43
|
+
const { getBrainAccessor } = await import('../../store/brain-accessor.js');
|
|
44
|
+
const { calculateTaskRisk } = await import('../../intelligence/prediction.js');
|
|
45
|
+
const { observeBrain } = await import('../../memory/brain-retrieval.js');
|
|
46
|
+
|
|
47
|
+
const [accessor, brain] = await Promise.all([
|
|
48
|
+
getAccessor(projectRoot),
|
|
49
|
+
getBrainAccessor(projectRoot),
|
|
50
|
+
]);
|
|
51
|
+
|
|
52
|
+
const risk = await calculateTaskRisk(payload.taskId, accessor, brain);
|
|
53
|
+
|
|
54
|
+
if (risk.riskScore >= RISK_HIGH) {
|
|
55
|
+
const level = risk.riskScore >= 0.95 ? 'critical' : 'high';
|
|
56
|
+
const factorNames = risk.factors.map((f) => f.name).join(', ');
|
|
57
|
+
await observeBrain(projectRoot, {
|
|
58
|
+
text: `Risk alert for ${payload.taskId} (score ${risk.riskScore.toFixed(2)}): ${factorNames}. ${risk.recommendation}`,
|
|
59
|
+
title: `Task risk: ${level} — ${payload.taskId}`,
|
|
60
|
+
type: 'discovery',
|
|
61
|
+
sourceType: 'agent',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
} catch {
|
|
65
|
+
// Best-effort — never block task start
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// ============================================================================
|
|
70
|
+
// Registration
|
|
71
|
+
// ============================================================================
|
|
72
|
+
|
|
73
|
+
hooks.register({
|
|
74
|
+
id: 'intelligence-task-start',
|
|
75
|
+
event: 'PreToolUse',
|
|
76
|
+
handler: handleTaskStartIntelligence,
|
|
77
|
+
// Priority 50: runs after brain-tool-start (100) so the task observation is
|
|
78
|
+
// already persisted before we assess risk.
|
|
79
|
+
priority: 50,
|
|
80
|
+
});
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
* T527: Removed duplicate session observeBrain writes — session data already
|
|
14
14
|
* lives in the sessions table; writing it again to brain_observations
|
|
15
15
|
* was pure noise.
|
|
16
|
+
* T549 Wave 3-E: Fire-and-forget sleep-time consolidation on session end.
|
|
17
|
+
* Runs after backup (priority 5) so brain.db snapshot is captured first.
|
|
18
|
+
* T554: Fire-and-forget LLM reflector on session end. Runs at priority 4
|
|
19
|
+
* (after consolidation at priority 5) to synthesize final session knowledge.
|
|
16
20
|
*/
|
|
17
21
|
|
|
18
22
|
import { hooks } from '../registry.js';
|
|
@@ -109,6 +113,61 @@ export async function handleSessionEndBackup(
|
|
|
109
113
|
}
|
|
110
114
|
}
|
|
111
115
|
|
|
116
|
+
/**
|
|
117
|
+
* Handle SessionEnd — fire-and-forget sleep-time memory consolidation.
|
|
118
|
+
*
|
|
119
|
+
* T549 Wave 3-E: Runs the full consolidation pipeline (dedup, quality recompute,
|
|
120
|
+
* tier promotion, contradiction detection, soft eviction, graph strengthening,
|
|
121
|
+
* summary generation) in the background after the session backup has completed.
|
|
122
|
+
*
|
|
123
|
+
* Uses setImmediate to yield control so the session end flow completes before
|
|
124
|
+
* consolidation begins. Consolidation errors are caught and logged to console.warn
|
|
125
|
+
* — they MUST NOT block session end or throw to callers.
|
|
126
|
+
*
|
|
127
|
+
* Priority 5 ensures this runs last (after backup at priority 10).
|
|
128
|
+
*/
|
|
129
|
+
export async function handleSessionEndConsolidation(
|
|
130
|
+
projectRoot: string,
|
|
131
|
+
_payload: SessionEndPayload,
|
|
132
|
+
): Promise<void> {
|
|
133
|
+
// Schedule consolidation to run after the current event loop turn.
|
|
134
|
+
// This ensures the session end response reaches the caller before
|
|
135
|
+
// consolidation begins, matching the "sleep-time compute" pattern.
|
|
136
|
+
setImmediate(async () => {
|
|
137
|
+
try {
|
|
138
|
+
const { runConsolidation } = await import('../../memory/brain-lifecycle.js');
|
|
139
|
+
await runConsolidation(projectRoot);
|
|
140
|
+
} catch (err) {
|
|
141
|
+
console.warn('[consolidation] Session-end consolidation failed:', err);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Handle SessionEnd — fire-and-forget LLM reflector synthesis.
|
|
148
|
+
*
|
|
149
|
+
* T554: Runs the Reflector after the consolidation pass (priority 5) to
|
|
150
|
+
* synthesize session observations into durable patterns and learnings.
|
|
151
|
+
*
|
|
152
|
+
* Uses setImmediate to yield control before the LLM call. Errors are caught
|
|
153
|
+
* and logged — they MUST NOT block session end or throw to callers.
|
|
154
|
+
*
|
|
155
|
+
* Priority 4 ensures this runs after consolidation (priority 5).
|
|
156
|
+
*/
|
|
157
|
+
export async function handleSessionEndReflector(
|
|
158
|
+
projectRoot: string,
|
|
159
|
+
payload: SessionEndPayload,
|
|
160
|
+
): Promise<void> {
|
|
161
|
+
setImmediate(async () => {
|
|
162
|
+
try {
|
|
163
|
+
const { runReflector } = await import('../../memory/observer-reflector.js');
|
|
164
|
+
await runReflector(projectRoot, payload.sessionId);
|
|
165
|
+
} catch (err) {
|
|
166
|
+
console.warn('[reflector] Session-end reflector failed:', err);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
|
|
112
171
|
// Register handlers on module load
|
|
113
172
|
hooks.register({
|
|
114
173
|
id: 'brain-session-start',
|
|
@@ -133,3 +192,22 @@ hooks.register({
|
|
|
133
192
|
handler: handleSessionEndBackup,
|
|
134
193
|
priority: 10,
|
|
135
194
|
});
|
|
195
|
+
|
|
196
|
+
// Priority 5 runs AFTER backup (priority 10) — consolidation is purely
|
|
197
|
+
// additive and should not delay the backup point-in-time snapshot.
|
|
198
|
+
hooks.register({
|
|
199
|
+
id: 'consolidation-session-end',
|
|
200
|
+
event: 'SessionEnd',
|
|
201
|
+
handler: handleSessionEndConsolidation,
|
|
202
|
+
priority: 5,
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
// Priority 4 runs AFTER consolidation (priority 5) — reflector synthesizes
|
|
206
|
+
// the final session knowledge using observations that consolidation may have
|
|
207
|
+
// updated (tier promotions, dedup).
|
|
208
|
+
hooks.register({
|
|
209
|
+
id: 'reflector-session-end',
|
|
210
|
+
event: 'SessionEnd',
|
|
211
|
+
handler: handleSessionEndReflector,
|
|
212
|
+
priority: 4,
|
|
213
|
+
});
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Auto-registers on module load.
|
|
6
6
|
*
|
|
7
7
|
* T138: Triggers memory bridge refresh after task completion.
|
|
8
|
+
* T554: Triggers LLM observer after task completion when observation count ≥ threshold.
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
11
|
import { hooks } from '../registry.js';
|
|
@@ -37,6 +38,7 @@ export async function handleToolStart(
|
|
|
37
38
|
* Handle PostToolUse (maps to task.complete in CLEO, canonical: was onToolComplete)
|
|
38
39
|
*
|
|
39
40
|
* T138: Refresh memory bridge after task completion.
|
|
41
|
+
* T554: Fire-and-forget LLM observer when observation count ≥ threshold.
|
|
40
42
|
*/
|
|
41
43
|
export async function handleToolComplete(
|
|
42
44
|
projectRoot: string,
|
|
@@ -55,6 +57,18 @@ export async function handleToolComplete(
|
|
|
55
57
|
if (!isMissingBrainSchemaError(err)) throw err;
|
|
56
58
|
}
|
|
57
59
|
|
|
60
|
+
// T554: Fire-and-forget observer — runs after observation is stored so the
|
|
61
|
+
// new observation is included in the count. setImmediate ensures the task
|
|
62
|
+
// complete response reaches the caller before the LLM call begins.
|
|
63
|
+
setImmediate(async () => {
|
|
64
|
+
try {
|
|
65
|
+
const { runObserver } = await import('../../memory/observer-reflector.js');
|
|
66
|
+
await runObserver(projectRoot);
|
|
67
|
+
} catch {
|
|
68
|
+
// Observer errors must never surface to the task complete flow
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
58
72
|
// T138: Refresh memory bridge after task completes (best-effort)
|
|
59
73
|
await maybeRefreshMemoryBridge(projectRoot);
|
|
60
74
|
}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Watchdog Scheduler Hook Handlers
|
|
3
|
+
*
|
|
4
|
+
* Starts a periodic health-check timer when a session begins and stops it when
|
|
5
|
+
* the session ends. One watchdog per project root, enforced by a module-level
|
|
6
|
+
* Map keyed on the resolved project root.
|
|
7
|
+
*
|
|
8
|
+
* Each 60-second tick:
|
|
9
|
+
* 1. Detects agents with a stale heartbeat (> STALE_THRESHOLD_MS)
|
|
10
|
+
* 2. Records each crash as a learning event in brain.db
|
|
11
|
+
* 3. Attempts recovery (status reset to 'starting') for all crashed agents
|
|
12
|
+
* 4. Fires the `onPatrol` hook for observability
|
|
13
|
+
*
|
|
14
|
+
* Best-effort contract: the watchdog NEVER crashes or throws. Any tick failure
|
|
15
|
+
* is swallowed so the timer continues. Any error in the start/stop handlers is
|
|
16
|
+
* also swallowed so it never blocks session operations.
|
|
17
|
+
*
|
|
18
|
+
* Gated behind `brain.autoCapture` config — the watchdog does NOT start unless
|
|
19
|
+
* auto-capture is enabled.
|
|
20
|
+
*
|
|
21
|
+
* Auto-registers on module load.
|
|
22
|
+
*
|
|
23
|
+
* @task T549
|
|
24
|
+
* @epic T5149
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import { hooks } from '../registry.js';
|
|
28
|
+
import type { OnPatrolPayload, SessionEndPayload, SessionStartPayload } from '../types.js';
|
|
29
|
+
import { isAutoCaptureEnabled, isMissingBrainSchemaError } from './handler-helpers.js';
|
|
30
|
+
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Module-level watchdog state
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
|
|
35
|
+
/** One active timer per project root (resolved path). */
|
|
36
|
+
const activeWatchdogs = new Map<string, ReturnType<typeof setInterval>>();
|
|
37
|
+
|
|
38
|
+
/** Interval between watchdog ticks in milliseconds. */
|
|
39
|
+
const WATCHDOG_INTERVAL_MS = 60_000;
|
|
40
|
+
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
// Watchdog tick
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Execute one watchdog patrol tick.
|
|
47
|
+
*
|
|
48
|
+
* Steps:
|
|
49
|
+
* 1. detectCrashedAgents — find and mark stale agents as 'crashed'
|
|
50
|
+
* 2. processAgentLifecycleEvent — write failure events to brain.db for each
|
|
51
|
+
* 3. recoverCrashedAgents — reset crashed agents to 'starting'
|
|
52
|
+
* 4. hooks.dispatch('onPatrol') — emit observability event
|
|
53
|
+
*
|
|
54
|
+
* Any thrown error is caught and logged as a warning; the timer continues.
|
|
55
|
+
*
|
|
56
|
+
* @param projectRoot - Absolute path to the project root directory.
|
|
57
|
+
*/
|
|
58
|
+
async function runWatchdogTick(projectRoot: string): Promise<void> {
|
|
59
|
+
try {
|
|
60
|
+
const { detectCrashedAgents, STALE_THRESHOLD_MS } = await import(
|
|
61
|
+
'../../agents/health-monitor.js'
|
|
62
|
+
);
|
|
63
|
+
const { recoverCrashedAgents } = await import('../../agents/retry.js');
|
|
64
|
+
const { processAgentLifecycleEvent } = await import('../../agents/execution-learning.js');
|
|
65
|
+
|
|
66
|
+
// Step 1: Detect and mark crashed agents
|
|
67
|
+
const crashed = await detectCrashedAgents(STALE_THRESHOLD_MS, projectRoot);
|
|
68
|
+
|
|
69
|
+
// Step 2: Record each crash as a brain learning event
|
|
70
|
+
for (const agent of crashed) {
|
|
71
|
+
try {
|
|
72
|
+
await processAgentLifecycleEvent(
|
|
73
|
+
{
|
|
74
|
+
agentId: agent.id,
|
|
75
|
+
agentType:
|
|
76
|
+
(agent.agentType as import('../../agents/agent-schema.js').AgentType) ?? 'custom',
|
|
77
|
+
taskId: agent.taskId ?? 'unknown',
|
|
78
|
+
taskType: 'unknown',
|
|
79
|
+
outcome: 'failure',
|
|
80
|
+
errorMessage: 'Heartbeat timeout — agent presumed crashed',
|
|
81
|
+
errorType: 'retriable',
|
|
82
|
+
sessionId: agent.sessionId ?? undefined,
|
|
83
|
+
},
|
|
84
|
+
projectRoot,
|
|
85
|
+
);
|
|
86
|
+
} catch (err) {
|
|
87
|
+
if (!isMissingBrainSchemaError(err)) {
|
|
88
|
+
console.warn('[watchdog] Failed to record agent crash event:', err);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Step 3: Attempt recovery for all crashed agents
|
|
94
|
+
if (crashed.length > 0) {
|
|
95
|
+
await recoverCrashedAgents(STALE_THRESHOLD_MS, projectRoot);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Step 4: Fire onPatrol for observability
|
|
99
|
+
const patrolPayload: OnPatrolPayload = {
|
|
100
|
+
timestamp: new Date().toISOString(),
|
|
101
|
+
watcherId: 'health-watchdog',
|
|
102
|
+
patrolType: 'health',
|
|
103
|
+
scope: `crashed=${crashed.length}`,
|
|
104
|
+
};
|
|
105
|
+
await hooks.dispatch('onPatrol', projectRoot, patrolPayload);
|
|
106
|
+
} catch (err) {
|
|
107
|
+
// Best-effort — never crash the watchdog timer
|
|
108
|
+
console.warn('[watchdog] Tick failed:', err);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
// Lifecycle handlers
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Handle SessionStart — start the watchdog timer for this project root.
|
|
118
|
+
*
|
|
119
|
+
* Idempotent: if a watchdog is already running for this root (e.g. a second
|
|
120
|
+
* session in the same process), the existing timer is reused.
|
|
121
|
+
*
|
|
122
|
+
* Gated behind `brain.autoCapture` — watchdog does not start unless auto-capture
|
|
123
|
+
* is enabled. This aligns with all other brain-capture hooks.
|
|
124
|
+
*
|
|
125
|
+
* @param projectRoot - Absolute path to the project root directory.
|
|
126
|
+
* @param _payload - SessionStart payload (unused).
|
|
127
|
+
*/
|
|
128
|
+
export async function handleWatchdogStart(
|
|
129
|
+
projectRoot: string,
|
|
130
|
+
_payload: SessionStartPayload,
|
|
131
|
+
): Promise<void> {
|
|
132
|
+
try {
|
|
133
|
+
if (!(await isAutoCaptureEnabled(projectRoot))) return;
|
|
134
|
+
|
|
135
|
+
// Idempotency guard — one watchdog per project root
|
|
136
|
+
if (activeWatchdogs.has(projectRoot)) return;
|
|
137
|
+
|
|
138
|
+
const timer = setInterval(() => {
|
|
139
|
+
void runWatchdogTick(projectRoot);
|
|
140
|
+
}, WATCHDOG_INTERVAL_MS);
|
|
141
|
+
|
|
142
|
+
activeWatchdogs.set(projectRoot, timer);
|
|
143
|
+
} catch {
|
|
144
|
+
// Never block session start on watchdog errors
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Handle SessionEnd — stop the watchdog timer for this project root.
|
|
150
|
+
*
|
|
151
|
+
* Safe to call when no watchdog is running (no-op).
|
|
152
|
+
*
|
|
153
|
+
* @param projectRoot - Absolute path to the project root directory.
|
|
154
|
+
* @param _payload - SessionEnd payload (unused).
|
|
155
|
+
*/
|
|
156
|
+
export async function handleWatchdogStop(
|
|
157
|
+
projectRoot: string,
|
|
158
|
+
_payload: SessionEndPayload,
|
|
159
|
+
): Promise<void> {
|
|
160
|
+
try {
|
|
161
|
+
const timer = activeWatchdogs.get(projectRoot);
|
|
162
|
+
if (timer) {
|
|
163
|
+
clearInterval(timer);
|
|
164
|
+
activeWatchdogs.delete(projectRoot);
|
|
165
|
+
}
|
|
166
|
+
} catch {
|
|
167
|
+
// Never block session end on watchdog errors
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// ---------------------------------------------------------------------------
|
|
172
|
+
// Auto-registration
|
|
173
|
+
// ---------------------------------------------------------------------------
|
|
174
|
+
|
|
175
|
+
hooks.register({
|
|
176
|
+
id: 'watchdog-session-start',
|
|
177
|
+
event: 'SessionStart',
|
|
178
|
+
handler: handleWatchdogStart,
|
|
179
|
+
priority: 50,
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
hooks.register({
|
|
183
|
+
id: 'watchdog-session-end',
|
|
184
|
+
event: 'SessionEnd',
|
|
185
|
+
handler: handleWatchdogStop,
|
|
186
|
+
priority: 50,
|
|
187
|
+
});
|
package/src/injection.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { execFileSync } from 'node:child_process';
|
|
18
18
|
import { existsSync, readFileSync } from 'node:fs';
|
|
19
|
-
import { mkdir, rm, writeFile } from 'node:fs/promises';
|
|
19
|
+
import { mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
20
20
|
import { homedir } from 'node:os';
|
|
21
21
|
import { basename, join } from 'node:path';
|
|
22
22
|
import { getAgentsHome, getCleoHome, getCleoTemplatesTildePath } from './paths.js';
|
|
@@ -68,6 +68,32 @@ async function removeStaleAgentInjection(projectRoot: string): Promise<boolean>
|
|
|
68
68
|
return true;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* Strip hardcoded `<!-- gitnexus:start -->...<!-- gitnexus:end -->` blocks
|
|
73
|
+
* from AGENTS.md. These blocks are replaced by the `@.cleo/nexus-bridge.md`
|
|
74
|
+
* reference which contains auto-generated code intelligence content (T552).
|
|
75
|
+
*
|
|
76
|
+
* Also strips any other known vendor marker blocks using the same pattern
|
|
77
|
+
* (e.g. `<!-- gitnexus:start -->...<!-- gitnexus:end -->`).
|
|
78
|
+
*
|
|
79
|
+
* @param filePath - Absolute path to the file to strip
|
|
80
|
+
* @returns True if the file was modified, false otherwise
|
|
81
|
+
*/
|
|
82
|
+
export async function stripGitNexusBlocks(filePath: string): Promise<boolean> {
|
|
83
|
+
if (!existsSync(filePath)) return false;
|
|
84
|
+
const content = await readFile(filePath, 'utf8');
|
|
85
|
+
// Strip <!-- gitnexus:start --> ... <!-- gitnexus:end --> blocks (case-insensitive markers)
|
|
86
|
+
const stripped = content.replace(
|
|
87
|
+
/\n?<!--\s*gitnexus:start\s*-->[\s\S]*?<!--\s*gitnexus:end\s*-->\n?/gi,
|
|
88
|
+
'',
|
|
89
|
+
);
|
|
90
|
+
if (stripped !== content) {
|
|
91
|
+
await writeFile(filePath, stripped, 'utf8');
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
|
|
71
97
|
// ── Ensure injection ─────────────────────────────────────────────────
|
|
72
98
|
|
|
73
99
|
/**
|
|
@@ -78,7 +104,7 @@ async function removeStaleAgentInjection(projectRoot: string): Promise<boolean>
|
|
|
78
104
|
*
|
|
79
105
|
* Target architecture:
|
|
80
106
|
* CLAUDE.md/GEMINI.md -> @AGENTS.md (via injectAll)
|
|
81
|
-
* AGENTS.md -> @~/.agents/AGENTS.md + @.cleo/project-context.json + @.cleo/memory-bridge.md
|
|
107
|
+
* AGENTS.md -> @~/.agents/AGENTS.md + @.cleo/project-context.json + @.cleo/memory-bridge.md + @.cleo/nexus-bridge.md
|
|
82
108
|
*
|
|
83
109
|
* @task T4682
|
|
84
110
|
*/
|
|
@@ -114,6 +140,13 @@ export async function ensureInjection(projectRoot: string): Promise<ScaffoldResu
|
|
|
114
140
|
actions.push('removed deprecated AGENT-INJECTION.md');
|
|
115
141
|
}
|
|
116
142
|
|
|
143
|
+
// Step 0b: Strip hardcoded gitnexus blocks from AGENTS.md (T552)
|
|
144
|
+
// These are replaced by the @.cleo/nexus-bridge.md reference.
|
|
145
|
+
const removedGitNexus = await stripGitNexusBlocks(join(projectRoot, 'AGENTS.md'));
|
|
146
|
+
if (removedGitNexus) {
|
|
147
|
+
actions.push('removed hardcoded gitnexus block from AGENTS.md');
|
|
148
|
+
}
|
|
149
|
+
|
|
117
150
|
// Step 1: Inject @AGENTS.md into all provider instruction files
|
|
118
151
|
const injectionContent = buildInjectionContent({ references: ['@AGENTS.md'] });
|
|
119
152
|
const results = await injectAll(providers, projectRoot, 'project', injectionContent);
|
|
@@ -140,6 +173,12 @@ export async function ensureInjection(projectRoot: string): Promise<ScaffoldResu
|
|
|
140
173
|
agentsMdLines.push('@.cleo/memory-bridge.md');
|
|
141
174
|
}
|
|
142
175
|
|
|
176
|
+
// Nexus bridge: auto-generated code intelligence summary (T552)
|
|
177
|
+
const nexusBridgePath = join(projectRoot, '.cleo', 'nexus-bridge.md');
|
|
178
|
+
if (existsSync(nexusBridgePath)) {
|
|
179
|
+
agentsMdLines.push('@.cleo/nexus-bridge.md');
|
|
180
|
+
}
|
|
181
|
+
|
|
143
182
|
// Contributor project warning (ADR-029): inject dev-channel guidance when
|
|
144
183
|
// this project IS the CLEO source repo, so agents use cleo-dev not @latest.
|
|
145
184
|
const contributorBlock = buildContributorInjectionBlock(projectRoot);
|
package/src/internal.ts
CHANGED
|
@@ -75,6 +75,19 @@ export type { HookEvent, ProviderHookEvent } from './hooks/provider-hooks.js';
|
|
|
75
75
|
export { isProviderHookEvent } from './hooks/types.js';
|
|
76
76
|
// Init (additional)
|
|
77
77
|
export { isAutoInitEnabled } from './init.js';
|
|
78
|
+
export type {
|
|
79
|
+
AdaptiveValidationSuggestion,
|
|
80
|
+
GateFocusRecommendation,
|
|
81
|
+
StorePredictionOptions,
|
|
82
|
+
VerificationConfidenceScore,
|
|
83
|
+
} from './intelligence/adaptive-validation.js';
|
|
84
|
+
// Intelligence — adaptive validation (suggestGateFocus, scoreVerificationConfidence)
|
|
85
|
+
export {
|
|
86
|
+
predictAndStore,
|
|
87
|
+
scoreVerificationConfidence,
|
|
88
|
+
storePrediction,
|
|
89
|
+
suggestGateFocus,
|
|
90
|
+
} from './intelligence/adaptive-validation.js';
|
|
78
91
|
export {
|
|
79
92
|
analyzeChangeImpact,
|
|
80
93
|
analyzeTaskImpact,
|
|
@@ -173,10 +186,13 @@ export { runBrainMaintenance } from './memory/brain-maintenance.js';
|
|
|
173
186
|
export type { PurgeResult } from './memory/brain-purge.js';
|
|
174
187
|
export { purgeBrainNoise } from './memory/brain-purge.js';
|
|
175
188
|
export type {
|
|
189
|
+
BudgetedEntry,
|
|
190
|
+
BudgetedResult,
|
|
191
|
+
BudgetedRetrievalOptions,
|
|
176
192
|
PopulateEmbeddingsOptions,
|
|
177
193
|
PopulateEmbeddingsResult,
|
|
178
194
|
} from './memory/brain-retrieval.js';
|
|
179
|
-
export { populateEmbeddings } from './memory/brain-retrieval.js';
|
|
195
|
+
export { populateEmbeddings, retrieveWithBudget } from './memory/brain-retrieval.js';
|
|
180
196
|
export { migrateClaudeMem } from './memory/claude-mem-migration.js';
|
|
181
197
|
// Memory — engine-compat
|
|
182
198
|
export {
|
|
@@ -437,6 +453,9 @@ export { createBackup, listBackups, restoreFromBackup } from './store/backup.js'
|
|
|
437
453
|
// Backup portability — bundle packer (T311 / T347)
|
|
438
454
|
export type { PackBundleInput, PackBundleResult } from './store/backup-pack.js';
|
|
439
455
|
export { packBundle } from './store/backup-pack.js';
|
|
456
|
+
export type { BrainDataAccessor } from './store/brain-accessor.js';
|
|
457
|
+
// Brain accessor — for intelligence domain handler construction
|
|
458
|
+
export { getBrainAccessor } from './store/brain-accessor.js';
|
|
440
459
|
export { getBrainDb, getBrainNativeDb } from './store/brain-sqlite.js';
|
|
441
460
|
export type { LegacyCleanupResult, StrayNexusCleanupResult } from './store/cleanup-legacy.js';
|
|
442
461
|
export {
|
|
@@ -866,8 +885,20 @@ export type {
|
|
|
866
885
|
BrainSearchHit,
|
|
867
886
|
BrainTimelineNeighborRow,
|
|
868
887
|
} from './memory/brain-row-types.js';
|
|
888
|
+
// Memory — LLM extraction gate (additional)
|
|
889
|
+
export type {
|
|
890
|
+
ExtractedMemory,
|
|
891
|
+
ExtractFromTranscriptOptions,
|
|
892
|
+
ExtractionReport,
|
|
893
|
+
ExtractionType,
|
|
894
|
+
} from './memory/llm-extraction.js';
|
|
895
|
+
export { extractFromTranscript as llmExtractFromTranscript } from './memory/llm-extraction.js';
|
|
869
896
|
// Memory (additional)
|
|
870
|
-
export {
|
|
897
|
+
export {
|
|
898
|
+
generateContextAwareContent,
|
|
899
|
+
refreshMemoryBridge,
|
|
900
|
+
writeMemoryBridge,
|
|
901
|
+
} from './memory/memory-bridge.js';
|
|
871
902
|
export type { SessionMemoryContext } from './memory/session-memory.js';
|
|
872
903
|
export {
|
|
873
904
|
buildSummarizationPrompt,
|
|
@@ -881,6 +912,12 @@ export {
|
|
|
881
912
|
discoverRelated as nexusDiscoverRelated,
|
|
882
913
|
searchAcrossProjects as nexusSearchAcrossProjects,
|
|
883
914
|
} from './nexus/discover.js';
|
|
915
|
+
// Nexus — bridge (code intelligence summary for agents)
|
|
916
|
+
export {
|
|
917
|
+
generateNexusBridgeContent,
|
|
918
|
+
refreshNexusBridge,
|
|
919
|
+
writeNexusBridge,
|
|
920
|
+
} from './nexus/nexus-bridge.js';
|
|
884
921
|
// Nexus — readRegistry (exported as nexusReadRegistry to avoid name clash with skills readRegistry)
|
|
885
922
|
export { readRegistry as nexusReadRegistry } from './nexus/registry.js';
|
|
886
923
|
// Nexus — transfer
|