@cleocode/core 2026.4.30 → 2026.4.35
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.d.ts +35 -0
- package/dist/bootstrap.d.ts.map +1 -1
- 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.d.ts +8 -4
- package/dist/code/index.d.ts.map +1 -1
- 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.d.ts +22 -9
- package/dist/code/parser.d.ts.map +1 -1
- 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.js +400 -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/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 +4 -0
- package/dist/hooks/handlers/index.d.ts.map +1 -1
- package/dist/hooks/handlers/index.js +34 -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 +27 -4
- package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/session-hooks.js +157 -0
- package/dist/hooks/handlers/session-hooks.js.map +1 -0
- package/dist/hooks/handlers/task-hooks.js +65 -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.d.ts +6 -6
- 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.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8765 -6253
- 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 +18 -10
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +320 -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.d.ts +11 -7
- package/dist/lib/tree-sitter-languages.d.ts.map +1 -1
- 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/auto-extract.d.ts +27 -15
- package/dist/memory/auto-extract.d.ts.map +1 -1
- package/dist/memory/auto-extract.js +96 -0
- package/dist/memory/auto-extract.js.map +1 -0
- package/dist/memory/brain-backfill.d.ts +59 -0
- package/dist/memory/brain-backfill.d.ts.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.d.ts +51 -0
- package/dist/memory/brain-purge.d.ts.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 +69 -1
- package/dist/memory/brain-retrieval.d.ts.map +1 -1
- package/dist/memory/brain-retrieval.js +912 -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.map +1 -1
- package/dist/memory/brain-search.js +528 -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 +71 -0
- package/dist/memory/engine-compat.d.ts.map +1 -1
- package/dist/memory/engine-compat.js +1564 -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.d.ts +65 -0
- package/dist/memory/graph-auto-populate.d.ts.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.d.ts +127 -0
- package/dist/memory/graph-queries.d.ts.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 +16 -0
- package/dist/memory/learnings.d.ts.map +1 -1
- package/dist/memory/learnings.js +178 -0
- package/dist/memory/learnings.js.map +1 -0
- package/dist/memory/memory-bridge.js +370 -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/patterns.d.ts +26 -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 +127 -0
- package/dist/memory/quality-scoring.d.ts.map +1 -0
- 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.d.ts +16 -10
- package/dist/sessions/session-memory-bridge.d.ts.map +1 -1
- 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.d.ts +7 -0
- package/dist/store/brain-accessor.d.ts.map +1 -1
- package/dist/store/brain-accessor.js +429 -0
- package/dist/store/brain-accessor.js.map +1 -0
- package/dist/store/brain-schema.d.ts +712 -45
- package/dist/store/brain-schema.d.ts.map +1 -1
- package/dist/store/brain-schema.js +549 -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 +257 -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.d.ts +480 -2
- package/dist/store/nexus-schema.d.ts.map +1 -1
- 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 +10 -10
- 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 +50 -34
- package/dist/store/validation-schemas.d.ts.map +1 -1
- 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.d.ts +43 -0
- package/dist/system/dependencies.d.ts.map +1 -0
- package/dist/system/dependencies.js +466 -0
- package/dist/system/dependencies.js.map +1 -0
- package/dist/system/health.d.ts +3 -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 +229 -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 +19 -19
- package/src/bootstrap.ts +124 -0
- package/src/code/index.ts +20 -4
- package/src/code/parser.ts +310 -110
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.ts +19 -45
- package/src/hooks/handlers/__tests__/session-hooks.test.ts +42 -54
- package/src/hooks/handlers/index.ts +6 -0
- package/src/hooks/handlers/intelligence-hooks.ts +80 -0
- package/src/hooks/handlers/session-hooks.ts +52 -33
- package/src/hooks/handlers/watchdog-hooks.ts +187 -0
- package/src/index.ts +14 -0
- package/src/injection.ts +41 -2
- package/src/internal.ts +68 -9
- package/src/lib/tree-sitter-languages.ts +11 -7
- package/src/memory/__tests__/auto-extract.test.ts +20 -82
- package/src/memory/__tests__/embedding-pipeline.test.ts +389 -0
- package/src/memory/auto-extract.ts +34 -120
- package/src/memory/brain-backfill.ts +471 -0
- package/src/memory/brain-consolidator.ts +344 -0
- package/src/memory/brain-lifecycle.ts +636 -2
- package/src/memory/brain-purge.ts +315 -0
- package/src/memory/brain-retrieval.ts +486 -2
- package/src/memory/brain-search.ts +61 -10
- package/src/memory/decisions.ts +96 -3
- package/src/memory/engine-compat.ts +177 -11
- package/src/memory/extraction-gate.ts +574 -0
- package/src/memory/graph-auto-populate.ts +173 -0
- package/src/memory/graph-queries.ts +424 -0
- package/src/memory/index.ts +6 -2
- package/src/memory/learnings.ts +87 -7
- package/src/memory/patterns.ts +95 -13
- package/src/memory/quality-scoring.ts +257 -0
- package/src/nexus/nexus-bridge.ts +444 -0
- package/src/scaffold.ts +42 -0
- package/src/sessions/__tests__/session-memory-bridge.test.ts +27 -49
- package/src/sessions/session-memory-bridge.ts +19 -47
- package/src/stats/index.ts +11 -3
- package/src/store/__tests__/brain-accessor-pageindex.test.ts +93 -22
- package/src/store/brain-accessor.ts +48 -2
- package/src/store/brain-schema.ts +403 -13
- package/src/store/brain-sqlite.ts +90 -0
- package/src/store/migration-manager.ts +83 -12
- package/src/store/nexus-schema.ts +257 -3
- package/src/system/dependencies.ts +534 -0
- package/src/system/health.ts +143 -22
- package/src/tasks/complete.ts +40 -0
- package/src/tasks/graph-ops.ts +1 -0
- package/src/tasks/task-ops.ts +1 -1
- package/templates/CLEO-INJECTION.md +15 -0
|
@@ -20,6 +20,7 @@ import { typedAll } from '../store/typed-query.js';
|
|
|
20
20
|
import type { BrainSearchHit } from './brain-row-types.js';
|
|
21
21
|
import type { SimilarityResult } from './brain-similarity.js';
|
|
22
22
|
import { searchSimilar } from './brain-similarity.js';
|
|
23
|
+
import { QUALITY_SCORE_THRESHOLD } from './quality-scoring.js';
|
|
23
24
|
|
|
24
25
|
/** Search result with BM25 rank. */
|
|
25
26
|
export interface BrainSearchResult {
|
|
@@ -281,7 +282,7 @@ export async function searchBrain(
|
|
|
281
282
|
query: string,
|
|
282
283
|
options?: BrainSearchOptions,
|
|
283
284
|
): Promise<BrainSearchResult> {
|
|
284
|
-
if (!query
|
|
285
|
+
if (!query?.trim()) {
|
|
285
286
|
return { decisions: [], patterns: [], learnings: [], observations: [] };
|
|
286
287
|
}
|
|
287
288
|
|
|
@@ -339,10 +340,12 @@ function searchWithFts5(
|
|
|
339
340
|
FROM brain_decisions_fts fts
|
|
340
341
|
JOIN brain_decisions d ON d.rowid = fts.rowid
|
|
341
342
|
WHERE brain_decisions_fts MATCH ?
|
|
343
|
+
AND (d.quality_score IS NULL OR d.quality_score >= ?)
|
|
342
344
|
ORDER BY bm25(brain_decisions_fts)
|
|
343
345
|
LIMIT ?
|
|
344
346
|
`),
|
|
345
347
|
safeQuery,
|
|
348
|
+
QUALITY_SCORE_THRESHOLD,
|
|
346
349
|
limit,
|
|
347
350
|
);
|
|
348
351
|
result.decisions = rows;
|
|
@@ -360,10 +363,12 @@ function searchWithFts5(
|
|
|
360
363
|
FROM brain_patterns_fts fts
|
|
361
364
|
JOIN brain_patterns p ON p.rowid = fts.rowid
|
|
362
365
|
WHERE brain_patterns_fts MATCH ?
|
|
366
|
+
AND (p.quality_score IS NULL OR p.quality_score >= ?)
|
|
363
367
|
ORDER BY bm25(brain_patterns_fts)
|
|
364
368
|
LIMIT ?
|
|
365
369
|
`),
|
|
366
370
|
safeQuery,
|
|
371
|
+
QUALITY_SCORE_THRESHOLD,
|
|
367
372
|
limit,
|
|
368
373
|
);
|
|
369
374
|
result.patterns = rows;
|
|
@@ -380,10 +385,12 @@ function searchWithFts5(
|
|
|
380
385
|
FROM brain_learnings_fts fts
|
|
381
386
|
JOIN brain_learnings l ON l.rowid = fts.rowid
|
|
382
387
|
WHERE brain_learnings_fts MATCH ?
|
|
388
|
+
AND (l.quality_score IS NULL OR l.quality_score >= ?)
|
|
383
389
|
ORDER BY bm25(brain_learnings_fts)
|
|
384
390
|
LIMIT ?
|
|
385
391
|
`),
|
|
386
392
|
safeQuery,
|
|
393
|
+
QUALITY_SCORE_THRESHOLD,
|
|
387
394
|
limit,
|
|
388
395
|
);
|
|
389
396
|
result.learnings = rows;
|
|
@@ -400,10 +407,12 @@ function searchWithFts5(
|
|
|
400
407
|
FROM brain_observations_fts fts
|
|
401
408
|
JOIN brain_observations o ON o.rowid = fts.rowid
|
|
402
409
|
WHERE brain_observations_fts MATCH ?
|
|
410
|
+
AND (o.quality_score IS NULL OR o.quality_score >= ?)
|
|
403
411
|
ORDER BY bm25(brain_observations_fts)
|
|
404
412
|
LIMIT ?
|
|
405
413
|
`),
|
|
406
414
|
safeQuery,
|
|
415
|
+
QUALITY_SCORE_THRESHOLD,
|
|
407
416
|
limit,
|
|
408
417
|
);
|
|
409
418
|
result.observations = rows;
|
|
@@ -459,12 +468,14 @@ function likeSearchDecisions(
|
|
|
459
468
|
return typedAll<BrainDecisionRow>(
|
|
460
469
|
nativeDb.prepare(`
|
|
461
470
|
SELECT * FROM brain_decisions
|
|
462
|
-
WHERE decision LIKE ? OR rationale LIKE ?
|
|
471
|
+
WHERE (decision LIKE ? OR rationale LIKE ?)
|
|
472
|
+
AND (quality_score IS NULL OR quality_score >= ?)
|
|
463
473
|
ORDER BY created_at DESC
|
|
464
474
|
LIMIT ?
|
|
465
475
|
`),
|
|
466
476
|
likePattern,
|
|
467
477
|
likePattern,
|
|
478
|
+
QUALITY_SCORE_THRESHOLD,
|
|
468
479
|
limit,
|
|
469
480
|
);
|
|
470
481
|
}
|
|
@@ -478,12 +489,14 @@ function likeSearchPatterns(
|
|
|
478
489
|
return typedAll<BrainPatternRow>(
|
|
479
490
|
nativeDb.prepare(`
|
|
480
491
|
SELECT * FROM brain_patterns
|
|
481
|
-
WHERE pattern LIKE ? OR context LIKE ?
|
|
492
|
+
WHERE (pattern LIKE ? OR context LIKE ?)
|
|
493
|
+
AND (quality_score IS NULL OR quality_score >= ?)
|
|
482
494
|
ORDER BY frequency DESC
|
|
483
495
|
LIMIT ?
|
|
484
496
|
`),
|
|
485
497
|
likePattern,
|
|
486
498
|
likePattern,
|
|
499
|
+
QUALITY_SCORE_THRESHOLD,
|
|
487
500
|
limit,
|
|
488
501
|
);
|
|
489
502
|
}
|
|
@@ -497,12 +510,14 @@ function likeSearchLearnings(
|
|
|
497
510
|
return typedAll<BrainLearningRow>(
|
|
498
511
|
nativeDb.prepare(`
|
|
499
512
|
SELECT * FROM brain_learnings
|
|
500
|
-
WHERE insight LIKE ? OR source LIKE ?
|
|
513
|
+
WHERE (insight LIKE ? OR source LIKE ?)
|
|
514
|
+
AND (quality_score IS NULL OR quality_score >= ?)
|
|
501
515
|
ORDER BY confidence DESC
|
|
502
516
|
LIMIT ?
|
|
503
517
|
`),
|
|
504
518
|
likePattern,
|
|
505
519
|
likePattern,
|
|
520
|
+
QUALITY_SCORE_THRESHOLD,
|
|
506
521
|
limit,
|
|
507
522
|
);
|
|
508
523
|
}
|
|
@@ -516,25 +531,61 @@ function likeSearchObservations(
|
|
|
516
531
|
return typedAll<BrainObservationRow>(
|
|
517
532
|
nativeDb.prepare(`
|
|
518
533
|
SELECT * FROM brain_observations
|
|
519
|
-
WHERE title LIKE ? OR narrative LIKE ?
|
|
534
|
+
WHERE (title LIKE ? OR narrative LIKE ?)
|
|
535
|
+
AND (quality_score IS NULL OR quality_score >= ?)
|
|
520
536
|
ORDER BY created_at DESC
|
|
521
537
|
LIMIT ?
|
|
522
538
|
`),
|
|
523
539
|
likePattern,
|
|
524
540
|
likePattern,
|
|
541
|
+
QUALITY_SCORE_THRESHOLD,
|
|
525
542
|
limit,
|
|
526
543
|
);
|
|
527
544
|
}
|
|
528
545
|
|
|
529
546
|
/**
|
|
530
547
|
* Escape special FTS5 characters in query string.
|
|
531
|
-
*
|
|
548
|
+
*
|
|
549
|
+
* Wraps each meaningful token in double quotes and joins with OR so that
|
|
550
|
+
* partial matches are returned even when some tokens are not indexable
|
|
551
|
+
* (e.g. task prefixes like "EPIC:", em-dashes "—", or short stop-words).
|
|
552
|
+
*
|
|
553
|
+
* Strategy:
|
|
554
|
+
* 1. Split on whitespace.
|
|
555
|
+
* 2. Keep only tokens that contain at least one word character (\w), which
|
|
556
|
+
* ensures punctuation-only tokens (em dashes, colons standalone, etc.)
|
|
557
|
+
* are dropped before they zero-out the entire result set.
|
|
558
|
+
* 3. Deduplicate case-insensitively.
|
|
559
|
+
* 4. Join with OR so the query broadens rather than requiring ALL tokens.
|
|
560
|
+
*
|
|
561
|
+
* Using AND (implicit FTS5 join) caused empty results whenever a task title
|
|
562
|
+
* contained non-word tokens such as em dashes ("—") or trailing colons
|
|
563
|
+
* ("EPIC:"), because FTS5's default tokenizer cannot index them and the
|
|
564
|
+
* AND semantics then guaranteed zero matches for the whole query. (T553 bug fix)
|
|
532
565
|
*/
|
|
533
566
|
function escapeFts5Query(query: string): string {
|
|
534
|
-
|
|
535
|
-
|
|
567
|
+
const rawTokens = query.trim().split(/\s+/).filter(Boolean);
|
|
568
|
+
if (rawTokens.length === 0) return '""';
|
|
569
|
+
|
|
570
|
+
// Keep tokens that have at least one alphanumeric character and are not
|
|
571
|
+
// pure stop-words (length ≥ 2 after stripping leading/trailing punctuation).
|
|
572
|
+
const seen = new Set<string>();
|
|
573
|
+
const tokens: string[] = [];
|
|
574
|
+
for (const t of rawTokens) {
|
|
575
|
+
// Strip leading/trailing non-word characters (e.g. "EPIC:" → "EPIC", "—" → "")
|
|
576
|
+
const stripped = t.replace(/^\W+|\W+$/g, '');
|
|
577
|
+
if (stripped.length < 2) continue; // skip very short or empty tokens
|
|
578
|
+
if (!/\w/.test(stripped)) continue; // skip tokens with no word chars
|
|
579
|
+
const lower = stripped.toLowerCase();
|
|
580
|
+
if (seen.has(lower)) continue; // deduplicate
|
|
581
|
+
seen.add(lower);
|
|
582
|
+
tokens.push(`"${stripped.replace(/"/g, '""')}"`);
|
|
583
|
+
}
|
|
584
|
+
|
|
536
585
|
if (tokens.length === 0) return '""';
|
|
537
|
-
|
|
586
|
+
|
|
587
|
+
// OR semantics: any matching token returns the row, ranked by BM25 relevance.
|
|
588
|
+
return tokens.join(' OR ');
|
|
538
589
|
}
|
|
539
590
|
|
|
540
591
|
/**
|
|
@@ -591,7 +642,7 @@ export async function hybridSearch(
|
|
|
591
642
|
projectRoot: string,
|
|
592
643
|
options?: HybridSearchOptions,
|
|
593
644
|
): Promise<HybridResult[]> {
|
|
594
|
-
if (!query
|
|
645
|
+
if (!query?.trim()) return [];
|
|
595
646
|
|
|
596
647
|
const maxResults = options?.limit ?? 10;
|
|
597
648
|
let ftsWeight = options?.ftsWeight ?? 0.5;
|
package/src/memory/decisions.ts
CHANGED
|
@@ -13,6 +13,8 @@ import { getBrainAccessor } from '../store/brain-accessor.js';
|
|
|
13
13
|
import type { BrainDecisionRow, NewBrainDecisionRow } from '../store/brain-schema.js';
|
|
14
14
|
import { taskExistsInTasksDb } from '../store/cross-db-cleanup.js';
|
|
15
15
|
import { getDb } from '../store/sqlite.js';
|
|
16
|
+
import { addGraphEdge, upsertGraphNode } from './graph-auto-populate.js';
|
|
17
|
+
import { computeDecisionQuality } from './quality-scoring.js';
|
|
16
18
|
|
|
17
19
|
/** Parameters for storing a new decision. */
|
|
18
20
|
export interface StoreDecisionParams {
|
|
@@ -79,10 +81,10 @@ export async function storeDecision(
|
|
|
79
81
|
projectRoot: string,
|
|
80
82
|
params: StoreDecisionParams,
|
|
81
83
|
): Promise<BrainDecisionRow> {
|
|
82
|
-
if (!params.decision
|
|
84
|
+
if (!params.decision?.trim()) {
|
|
83
85
|
throw new Error('Decision text is required');
|
|
84
86
|
}
|
|
85
|
-
if (!params.rationale
|
|
87
|
+
if (!params.rationale?.trim()) {
|
|
86
88
|
throw new Error('Rationale is required');
|
|
87
89
|
}
|
|
88
90
|
|
|
@@ -107,6 +109,25 @@ export async function storeDecision(
|
|
|
107
109
|
updatedAt: now,
|
|
108
110
|
});
|
|
109
111
|
const updated = await accessor.getDecision(duplicate.id);
|
|
112
|
+
|
|
113
|
+
// Refresh the graph node for the updated decision (best-effort).
|
|
114
|
+
const updatedQuality = computeDecisionQuality({
|
|
115
|
+
confidence: params.confidence,
|
|
116
|
+
rationale: params.rationale.trim(),
|
|
117
|
+
contextTaskId: params.contextTaskId ?? null,
|
|
118
|
+
});
|
|
119
|
+
upsertGraphNode(
|
|
120
|
+
projectRoot,
|
|
121
|
+
`decision:${duplicate.id}`,
|
|
122
|
+
'decision',
|
|
123
|
+
params.decision.trim().substring(0, 200),
|
|
124
|
+
updatedQuality,
|
|
125
|
+
params.decision.trim() + params.rationale.trim(),
|
|
126
|
+
{ type: params.type, confidence: params.confidence },
|
|
127
|
+
).catch(() => {
|
|
128
|
+
/* best-effort */
|
|
129
|
+
});
|
|
130
|
+
|
|
110
131
|
return updated!;
|
|
111
132
|
}
|
|
112
133
|
|
|
@@ -126,6 +147,28 @@ export async function storeDecision(
|
|
|
126
147
|
}
|
|
127
148
|
}
|
|
128
149
|
|
|
150
|
+
// T549 Wave 1-A: Tier routing for decisions.
|
|
151
|
+
// Decisions are always medium-term semantic entries — they are intentional acts,
|
|
152
|
+
// always manually entered via cleo memory decision-store or the CLI.
|
|
153
|
+
// sourceConfidence = 'owner' (decisions are owner-stated facts by definition)
|
|
154
|
+
// verified = true (the act of deciding IS verification)
|
|
155
|
+
// memoryTier = 'medium' (decisions skip short-term; may promote to long after 7d+outcome:success)
|
|
156
|
+
// memoryType = 'semantic' (decisions are declarative architectural facts)
|
|
157
|
+
const memoryTier = 'medium' as const;
|
|
158
|
+
const memoryType = 'semantic' as const;
|
|
159
|
+
const sourceConfidence = 'owner' as const;
|
|
160
|
+
const verified = true;
|
|
161
|
+
|
|
162
|
+
// Compute quality score from confidence level, rationale richness, task linkage,
|
|
163
|
+
// and T549 source multiplier (owner = 1.0, medium tier = +0.05).
|
|
164
|
+
const qualityScore = computeDecisionQuality({
|
|
165
|
+
confidence: params.confidence,
|
|
166
|
+
rationale: params.rationale.trim(),
|
|
167
|
+
contextTaskId: validTaskId ?? null,
|
|
168
|
+
sourceConfidence,
|
|
169
|
+
memoryTier,
|
|
170
|
+
});
|
|
171
|
+
|
|
129
172
|
const row: NewBrainDecisionRow = {
|
|
130
173
|
id,
|
|
131
174
|
type: params.type,
|
|
@@ -137,9 +180,59 @@ export async function storeDecision(
|
|
|
137
180
|
contextEpicId: validEpicId,
|
|
138
181
|
contextTaskId: validTaskId,
|
|
139
182
|
contextPhase: params.contextPhase,
|
|
183
|
+
qualityScore,
|
|
184
|
+
// T549 Wave 1-A: tier/type/confidence assigned at write time
|
|
185
|
+
memoryTier,
|
|
186
|
+
memoryType,
|
|
187
|
+
sourceConfidence,
|
|
188
|
+
verified,
|
|
140
189
|
};
|
|
141
190
|
|
|
142
|
-
|
|
191
|
+
const saved = await accessor.addDecision(row);
|
|
192
|
+
|
|
193
|
+
// Auto-populate graph node + edges for the new decision (best-effort, T537).
|
|
194
|
+
// All graph writes run fire-and-forget so they never block the return.
|
|
195
|
+
try {
|
|
196
|
+
await upsertGraphNode(
|
|
197
|
+
projectRoot,
|
|
198
|
+
`decision:${saved.id}`,
|
|
199
|
+
'decision',
|
|
200
|
+
saved.decision.substring(0, 200),
|
|
201
|
+
qualityScore,
|
|
202
|
+
saved.decision + saved.rationale,
|
|
203
|
+
{ type: saved.type, confidence: saved.confidence },
|
|
204
|
+
);
|
|
205
|
+
|
|
206
|
+
// Link decision → task when a task context is present.
|
|
207
|
+
if (validTaskId) {
|
|
208
|
+
await upsertGraphNode(projectRoot, `task:${validTaskId}`, 'task', validTaskId, 1.0, '');
|
|
209
|
+
await addGraphEdge(
|
|
210
|
+
projectRoot,
|
|
211
|
+
`decision:${saved.id}`,
|
|
212
|
+
`task:${validTaskId}`,
|
|
213
|
+
'applies_to',
|
|
214
|
+
1.0,
|
|
215
|
+
'auto:store-decision',
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Link decision → epic when an epic context is present.
|
|
220
|
+
if (validEpicId) {
|
|
221
|
+
await upsertGraphNode(projectRoot, `epic:${validEpicId}`, 'epic', validEpicId, 1.0, '');
|
|
222
|
+
await addGraphEdge(
|
|
223
|
+
projectRoot,
|
|
224
|
+
`decision:${saved.id}`,
|
|
225
|
+
`epic:${validEpicId}`,
|
|
226
|
+
'applies_to',
|
|
227
|
+
1.0,
|
|
228
|
+
'auto:store-decision',
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
} catch {
|
|
232
|
+
/* Graph population is best-effort — never block the primary return */
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
return saved;
|
|
143
236
|
}
|
|
144
237
|
|
|
145
238
|
/**
|
|
@@ -28,6 +28,8 @@ import {
|
|
|
28
28
|
searchBrainCompact,
|
|
29
29
|
timelineBrain,
|
|
30
30
|
} from './brain-retrieval.js';
|
|
31
|
+
// T545: Decision store with quality scoring and graph auto-population
|
|
32
|
+
import { storeDecision } from './decisions.js';
|
|
31
33
|
import {
|
|
32
34
|
learningStats,
|
|
33
35
|
type SearchLearningParams,
|
|
@@ -349,22 +351,18 @@ export async function memoryDecisionStore(
|
|
|
349
351
|
|
|
350
352
|
try {
|
|
351
353
|
const root = resolveRoot(projectRoot);
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
const row = await
|
|
357
|
-
id,
|
|
354
|
+
// Route through storeDecision() so quality scoring and graph auto-population
|
|
355
|
+
// (upsertGraphNode) run on every insert — fixes T545 regression where
|
|
356
|
+
// engine-compat bypassed decisions.ts and wrote directly to the accessor,
|
|
357
|
+
// leaving quality_score NULL and no graph node created.
|
|
358
|
+
const row = await storeDecision(root, {
|
|
358
359
|
type: 'technical',
|
|
359
360
|
decision: params.decision,
|
|
360
361
|
rationale: params.rationale,
|
|
361
362
|
confidence: 'medium',
|
|
362
363
|
outcome: 'pending',
|
|
363
|
-
|
|
364
|
-
contextTaskId: params.taskId
|
|
365
|
-
contextEpicId: null,
|
|
366
|
-
contextPhase: null,
|
|
367
|
-
createdAt: now,
|
|
364
|
+
alternatives: params.alternatives,
|
|
365
|
+
contextTaskId: params.taskId,
|
|
368
366
|
});
|
|
369
367
|
|
|
370
368
|
return {
|
|
@@ -1603,6 +1601,174 @@ export async function memorySearchHybrid(
|
|
|
1603
1601
|
}
|
|
1604
1602
|
}
|
|
1605
1603
|
|
|
1604
|
+
// ============================================================================
|
|
1605
|
+
// Brain Graph Traversal Operations (T535)
|
|
1606
|
+
// ============================================================================
|
|
1607
|
+
|
|
1608
|
+
/**
|
|
1609
|
+
* BFS traversal of the brain knowledge graph from a seed node.
|
|
1610
|
+
*
|
|
1611
|
+
* @param params - Traversal parameters: nodeId and optional maxDepth (default 3)
|
|
1612
|
+
* @param projectRoot - Optional project root path; defaults to resolved root
|
|
1613
|
+
* @returns EngineResult with traversal nodes annotated with depth
|
|
1614
|
+
*
|
|
1615
|
+
* @remarks
|
|
1616
|
+
* Uses a recursive CTE against brain_page_nodes / brain_page_edges.
|
|
1617
|
+
* Follows edges bidirectionally. Returns the seed node at depth 0.
|
|
1618
|
+
*
|
|
1619
|
+
* @example
|
|
1620
|
+
* ```typescript
|
|
1621
|
+
* const result = await memoryGraphTrace({ nodeId: 'decision:D-abc123', maxDepth: 2 }, '/project');
|
|
1622
|
+
* ```
|
|
1623
|
+
*/
|
|
1624
|
+
export async function memoryGraphTrace(
|
|
1625
|
+
params: { nodeId: string; maxDepth?: number },
|
|
1626
|
+
projectRoot?: string,
|
|
1627
|
+
): Promise<EngineResult> {
|
|
1628
|
+
if (!params.nodeId) {
|
|
1629
|
+
return { success: false, error: { code: 'E_INVALID_INPUT', message: 'nodeId is required' } };
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
try {
|
|
1633
|
+
const root = resolveRoot(projectRoot);
|
|
1634
|
+
const { traceBrainGraph } = await import('./graph-queries.js');
|
|
1635
|
+
const nodes = await traceBrainGraph(root, params.nodeId, params.maxDepth ?? 3);
|
|
1636
|
+
|
|
1637
|
+
if (nodes.length === 0) {
|
|
1638
|
+
return {
|
|
1639
|
+
success: false,
|
|
1640
|
+
error: { code: 'E_NOT_FOUND', message: `Node '${params.nodeId}' not found in brain graph` },
|
|
1641
|
+
};
|
|
1642
|
+
}
|
|
1643
|
+
|
|
1644
|
+
return { success: true, data: { nodes, total: nodes.length, seed: params.nodeId } };
|
|
1645
|
+
} catch (error) {
|
|
1646
|
+
return {
|
|
1647
|
+
success: false,
|
|
1648
|
+
error: {
|
|
1649
|
+
code: 'E_GRAPH_TRACE',
|
|
1650
|
+
message: error instanceof Error ? error.message : String(error),
|
|
1651
|
+
},
|
|
1652
|
+
};
|
|
1653
|
+
}
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
/**
|
|
1657
|
+
* Return the immediate (1-hop) neighbours of a brain graph node.
|
|
1658
|
+
*
|
|
1659
|
+
* @param params - Parameters: nodeId, optional edgeType filter
|
|
1660
|
+
* @param projectRoot - Optional project root path; defaults to resolved root
|
|
1661
|
+
* @returns EngineResult with neighbour nodes and edge metadata
|
|
1662
|
+
*
|
|
1663
|
+
* @remarks
|
|
1664
|
+
* Follows edges in both directions. Results include direction ('in'/'out'),
|
|
1665
|
+
* edge type, and weight.
|
|
1666
|
+
*
|
|
1667
|
+
* @example
|
|
1668
|
+
* ```typescript
|
|
1669
|
+
* const result = await memoryGraphRelated({ nodeId: 'decision:D-abc123', edgeType: 'applies_to' }, '/project');
|
|
1670
|
+
* ```
|
|
1671
|
+
*/
|
|
1672
|
+
export async function memoryGraphRelated(
|
|
1673
|
+
params: { nodeId: string; edgeType?: string },
|
|
1674
|
+
projectRoot?: string,
|
|
1675
|
+
): Promise<EngineResult> {
|
|
1676
|
+
if (!params.nodeId) {
|
|
1677
|
+
return { success: false, error: { code: 'E_INVALID_INPUT', message: 'nodeId is required' } };
|
|
1678
|
+
}
|
|
1679
|
+
|
|
1680
|
+
try {
|
|
1681
|
+
const root = resolveRoot(projectRoot);
|
|
1682
|
+
const { relatedBrainNodes } = await import('./graph-queries.js');
|
|
1683
|
+
const related = await relatedBrainNodes(root, params.nodeId, params.edgeType);
|
|
1684
|
+
return { success: true, data: { related, total: related.length, seed: params.nodeId } };
|
|
1685
|
+
} catch (error) {
|
|
1686
|
+
return {
|
|
1687
|
+
success: false,
|
|
1688
|
+
error: {
|
|
1689
|
+
code: 'E_GRAPH_RELATED',
|
|
1690
|
+
message: error instanceof Error ? error.message : String(error),
|
|
1691
|
+
},
|
|
1692
|
+
};
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
/**
|
|
1697
|
+
* Return a 360-degree context view of a single brain graph node.
|
|
1698
|
+
*
|
|
1699
|
+
* @param params - Parameters: nodeId
|
|
1700
|
+
* @param projectRoot - Optional project root path; defaults to resolved root
|
|
1701
|
+
* @returns EngineResult with the node, all edges, and neighbouring nodes
|
|
1702
|
+
*
|
|
1703
|
+
* @remarks
|
|
1704
|
+
* Includes the node itself, in-edges, out-edges, and all immediately
|
|
1705
|
+
* reachable neighbour nodes with their edge relationships.
|
|
1706
|
+
*
|
|
1707
|
+
* @example
|
|
1708
|
+
* ```typescript
|
|
1709
|
+
* const result = await memoryGraphContext({ nodeId: 'decision:D-abc123' }, '/project');
|
|
1710
|
+
* ```
|
|
1711
|
+
*/
|
|
1712
|
+
export async function memoryGraphContext(
|
|
1713
|
+
params: { nodeId: string },
|
|
1714
|
+
projectRoot?: string,
|
|
1715
|
+
): Promise<EngineResult> {
|
|
1716
|
+
if (!params.nodeId) {
|
|
1717
|
+
return { success: false, error: { code: 'E_INVALID_INPUT', message: 'nodeId is required' } };
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
try {
|
|
1721
|
+
const root = resolveRoot(projectRoot);
|
|
1722
|
+
const { contextBrainNode } = await import('./graph-queries.js');
|
|
1723
|
+
const context = await contextBrainNode(root, params.nodeId);
|
|
1724
|
+
|
|
1725
|
+
if (!context) {
|
|
1726
|
+
return {
|
|
1727
|
+
success: false,
|
|
1728
|
+
error: { code: 'E_NOT_FOUND', message: `Node '${params.nodeId}' not found in brain graph` },
|
|
1729
|
+
};
|
|
1730
|
+
}
|
|
1731
|
+
|
|
1732
|
+
return { success: true, data: context };
|
|
1733
|
+
} catch (error) {
|
|
1734
|
+
return {
|
|
1735
|
+
success: false,
|
|
1736
|
+
error: {
|
|
1737
|
+
code: 'E_GRAPH_CONTEXT',
|
|
1738
|
+
message: error instanceof Error ? error.message : String(error),
|
|
1739
|
+
},
|
|
1740
|
+
};
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
|
|
1744
|
+
/**
|
|
1745
|
+
* Return aggregate statistics for the brain knowledge graph.
|
|
1746
|
+
*
|
|
1747
|
+
* @param projectRoot - Optional project root path; defaults to resolved root
|
|
1748
|
+
* @returns EngineResult with node counts by type, edge counts by type, and totals
|
|
1749
|
+
*
|
|
1750
|
+
* @example
|
|
1751
|
+
* ```typescript
|
|
1752
|
+
* const result = await memoryGraphStatsFull('/project');
|
|
1753
|
+
* ```
|
|
1754
|
+
*/
|
|
1755
|
+
export async function memoryGraphStatsFull(projectRoot?: string): Promise<EngineResult> {
|
|
1756
|
+
try {
|
|
1757
|
+
const root = resolveRoot(projectRoot);
|
|
1758
|
+
const { graphStats } = await import('./graph-queries.js');
|
|
1759
|
+
const stats = await graphStats(root);
|
|
1760
|
+
return { success: true, data: stats };
|
|
1761
|
+
} catch (error) {
|
|
1762
|
+
return {
|
|
1763
|
+
success: false,
|
|
1764
|
+
error: {
|
|
1765
|
+
code: 'E_GRAPH_STATS',
|
|
1766
|
+
message: error instanceof Error ? error.message : String(error),
|
|
1767
|
+
},
|
|
1768
|
+
};
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1606
1772
|
/**
|
|
1607
1773
|
* Remove a node or edge from the PageIndex graph.
|
|
1608
1774
|
*
|