@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
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus Bridge Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates .cleo/nexus-bridge.md from nexus.db content. This file is
|
|
5
|
+
* the code intelligence equivalent of memory-bridge.md — it summarizes
|
|
6
|
+
* the codebase graph for agent consumption.
|
|
7
|
+
*
|
|
8
|
+
* Content assembly:
|
|
9
|
+
* - Index status (file count, node count, relation count, last indexed)
|
|
10
|
+
* - Symbol counts by kind (functions, classes, methods, etc.)
|
|
11
|
+
* - Relation counts by type (calls, imports, extends, etc.)
|
|
12
|
+
* - Top entry points (most outgoing CALLS edges, exported)
|
|
13
|
+
* - Functional clusters (communities by symbol count)
|
|
14
|
+
* - Code intelligence command reference
|
|
15
|
+
*
|
|
16
|
+
* Regeneration triggers:
|
|
17
|
+
* - cleo nexus analyze (called after pipeline flush)
|
|
18
|
+
* - Manual: cleo nexus refresh-bridge
|
|
19
|
+
*
|
|
20
|
+
* @task T551
|
|
21
|
+
* @epic T549
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
25
|
+
import { join } from 'node:path';
|
|
26
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
27
|
+
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// Types
|
|
30
|
+
// ============================================================================
|
|
31
|
+
|
|
32
|
+
/** Raw row for node kind counts. */
|
|
33
|
+
interface NodeKindCountRow {
|
|
34
|
+
kind: string;
|
|
35
|
+
count: number;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Raw row for relation type counts. */
|
|
39
|
+
interface RelationTypeCountRow {
|
|
40
|
+
type: string;
|
|
41
|
+
count: number;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** Raw row for top entry points. */
|
|
45
|
+
interface EntryPointRow {
|
|
46
|
+
name: string | null;
|
|
47
|
+
file_path: string | null;
|
|
48
|
+
callees: number;
|
|
49
|
+
is_exported: number;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Raw row for community/cluster nodes. */
|
|
53
|
+
interface CommunityRow {
|
|
54
|
+
id: string;
|
|
55
|
+
label: string;
|
|
56
|
+
meta_json: string | null;
|
|
57
|
+
indexed_at: string;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Raw row for index metadata. */
|
|
61
|
+
interface IndexMetaRow {
|
|
62
|
+
total_nodes: number;
|
|
63
|
+
total_relations: number;
|
|
64
|
+
file_count: number;
|
|
65
|
+
last_indexed_at: string | null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// ============================================================================
|
|
69
|
+
// DB helpers
|
|
70
|
+
// ============================================================================
|
|
71
|
+
|
|
72
|
+
/** Type-safe wrapper for DatabaseSync.prepare().all(). */
|
|
73
|
+
function typedAll<T>(db: DatabaseSync, sql: string, ...params: (string | number | null)[]): T[] {
|
|
74
|
+
return db.prepare(sql).all(...params) as T[];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** Type-safe wrapper for DatabaseSync.prepare().get(). */
|
|
78
|
+
function typedGet<T>(
|
|
79
|
+
db: DatabaseSync,
|
|
80
|
+
sql: string,
|
|
81
|
+
...params: (string | number | null)[]
|
|
82
|
+
): T | undefined {
|
|
83
|
+
return db.prepare(sql).get(...params) as T | undefined;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// ============================================================================
|
|
87
|
+
// Query helpers
|
|
88
|
+
// ============================================================================
|
|
89
|
+
|
|
90
|
+
/** Query total node/relation counts and last indexed timestamp. */
|
|
91
|
+
function queryIndexMeta(db: DatabaseSync, projectId: string): IndexMetaRow {
|
|
92
|
+
try {
|
|
93
|
+
const nodeMeta = typedGet<{
|
|
94
|
+
total_nodes: number;
|
|
95
|
+
file_count: number;
|
|
96
|
+
last_indexed_at: string | null;
|
|
97
|
+
}>(
|
|
98
|
+
db,
|
|
99
|
+
`SELECT COUNT(*) as total_nodes,
|
|
100
|
+
COUNT(CASE WHEN kind = 'file' THEN 1 END) as file_count,
|
|
101
|
+
MAX(indexed_at) as last_indexed_at
|
|
102
|
+
FROM nexus_nodes
|
|
103
|
+
WHERE project_id = ?`,
|
|
104
|
+
projectId,
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
const relMeta = typedGet<{ total_relations: number }>(
|
|
108
|
+
db,
|
|
109
|
+
`SELECT COUNT(*) as total_relations
|
|
110
|
+
FROM nexus_relations
|
|
111
|
+
WHERE project_id = ?`,
|
|
112
|
+
projectId,
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
total_nodes: nodeMeta?.total_nodes ?? 0,
|
|
117
|
+
total_relations: relMeta?.total_relations ?? 0,
|
|
118
|
+
file_count: nodeMeta?.file_count ?? 0,
|
|
119
|
+
last_indexed_at: nodeMeta?.last_indexed_at ?? null,
|
|
120
|
+
};
|
|
121
|
+
} catch {
|
|
122
|
+
return {
|
|
123
|
+
total_nodes: 0,
|
|
124
|
+
total_relations: 0,
|
|
125
|
+
file_count: 0,
|
|
126
|
+
last_indexed_at: null,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** Query node counts grouped by kind. */
|
|
132
|
+
function queryNodeKindCounts(db: DatabaseSync, projectId: string): NodeKindCountRow[] {
|
|
133
|
+
try {
|
|
134
|
+
return typedAll<NodeKindCountRow>(
|
|
135
|
+
db,
|
|
136
|
+
`SELECT kind, COUNT(*) as count
|
|
137
|
+
FROM nexus_nodes
|
|
138
|
+
WHERE project_id = ?
|
|
139
|
+
AND kind NOT IN ('file', 'folder', 'community', 'process')
|
|
140
|
+
GROUP BY kind
|
|
141
|
+
ORDER BY count DESC
|
|
142
|
+
LIMIT 10`,
|
|
143
|
+
projectId,
|
|
144
|
+
);
|
|
145
|
+
} catch {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/** Query relation counts grouped by type. */
|
|
151
|
+
function queryRelationTypeCounts(db: DatabaseSync, projectId: string): RelationTypeCountRow[] {
|
|
152
|
+
try {
|
|
153
|
+
return typedAll<RelationTypeCountRow>(
|
|
154
|
+
db,
|
|
155
|
+
`SELECT type, COUNT(*) as count
|
|
156
|
+
FROM nexus_relations
|
|
157
|
+
WHERE project_id = ?
|
|
158
|
+
AND type NOT IN ('member_of', 'step_in_process', 'entry_point_of')
|
|
159
|
+
GROUP BY type
|
|
160
|
+
ORDER BY count DESC
|
|
161
|
+
LIMIT 8`,
|
|
162
|
+
projectId,
|
|
163
|
+
);
|
|
164
|
+
} catch {
|
|
165
|
+
return [];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/** Query top entry points by outgoing CALLS edge count. */
|
|
170
|
+
function queryTopEntryPoints(db: DatabaseSync, projectId: string, limit = 5): EntryPointRow[] {
|
|
171
|
+
try {
|
|
172
|
+
return typedAll<EntryPointRow>(
|
|
173
|
+
db,
|
|
174
|
+
`SELECT n.name, n.file_path, COUNT(*) as callees, n.is_exported
|
|
175
|
+
FROM nexus_relations r
|
|
176
|
+
JOIN nexus_nodes n ON r.source_id = n.id
|
|
177
|
+
WHERE r.type = 'calls'
|
|
178
|
+
AND r.project_id = ?
|
|
179
|
+
AND n.kind IN ('function', 'method', 'constructor')
|
|
180
|
+
GROUP BY r.source_id
|
|
181
|
+
ORDER BY callees DESC
|
|
182
|
+
LIMIT ?`,
|
|
183
|
+
projectId,
|
|
184
|
+
limit,
|
|
185
|
+
);
|
|
186
|
+
} catch {
|
|
187
|
+
return [];
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/** Query community nodes ordered by member count. */
|
|
192
|
+
function queryCommunities(db: DatabaseSync, projectId: string, limit = 6): CommunityRow[] {
|
|
193
|
+
try {
|
|
194
|
+
return typedAll<CommunityRow>(
|
|
195
|
+
db,
|
|
196
|
+
`SELECT id, label, meta_json, indexed_at
|
|
197
|
+
FROM nexus_nodes
|
|
198
|
+
WHERE project_id = ?
|
|
199
|
+
AND kind = 'community'
|
|
200
|
+
ORDER BY indexed_at DESC
|
|
201
|
+
LIMIT ?`,
|
|
202
|
+
projectId,
|
|
203
|
+
limit,
|
|
204
|
+
);
|
|
205
|
+
} catch {
|
|
206
|
+
return [];
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/** Query count of execution flow (process) nodes. */
|
|
211
|
+
function queryProcessCount(db: DatabaseSync, projectId: string): number {
|
|
212
|
+
try {
|
|
213
|
+
const row = typedGet<{ count: number }>(
|
|
214
|
+
db,
|
|
215
|
+
`SELECT COUNT(*) as count
|
|
216
|
+
FROM nexus_nodes
|
|
217
|
+
WHERE project_id = ?
|
|
218
|
+
AND kind = 'process'`,
|
|
219
|
+
projectId,
|
|
220
|
+
);
|
|
221
|
+
return row?.count ?? 0;
|
|
222
|
+
} catch {
|
|
223
|
+
return 0;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// ============================================================================
|
|
228
|
+
// Content generation
|
|
229
|
+
// ============================================================================
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Generate nexus bridge markdown content from nexus.db.
|
|
233
|
+
* Returns the full markdown string (does not write to disk).
|
|
234
|
+
*
|
|
235
|
+
* @param projectId - Project registry ID used to scope nexus.db queries
|
|
236
|
+
* @param repoPath - Absolute path to the repository root (used for display)
|
|
237
|
+
* @returns Markdown string summarizing the code intelligence index
|
|
238
|
+
*/
|
|
239
|
+
export async function generateNexusBridgeContent(
|
|
240
|
+
projectId: string,
|
|
241
|
+
repoPath: string,
|
|
242
|
+
): Promise<string> {
|
|
243
|
+
const { getNexusDb, getNexusNativeDb } = await import('../store/nexus-sqlite.js');
|
|
244
|
+
|
|
245
|
+
// Ensure DB is initialized
|
|
246
|
+
await getNexusDb();
|
|
247
|
+
const nativeDb = getNexusNativeDb();
|
|
248
|
+
|
|
249
|
+
if (!nativeDb) {
|
|
250
|
+
return buildEmptyBridge(repoPath);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// Check whether this project has been indexed at all
|
|
254
|
+
const meta = queryIndexMeta(nativeDb, projectId);
|
|
255
|
+
if (meta.total_nodes === 0) {
|
|
256
|
+
return buildEmptyBridge(repoPath);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const lines: string[] = [
|
|
260
|
+
'# CLEO Nexus Bridge — Code Intelligence',
|
|
261
|
+
'',
|
|
262
|
+
`> Auto-generated from nexus index. Regenerate with \`cleo nexus analyze\`.`,
|
|
263
|
+
`> Project: ${repoPath}`,
|
|
264
|
+
'',
|
|
265
|
+
];
|
|
266
|
+
|
|
267
|
+
// --- Index Status ---
|
|
268
|
+
const kindCounts = queryNodeKindCounts(nativeDb, projectId);
|
|
269
|
+
const relCounts = queryRelationTypeCounts(nativeDb, projectId);
|
|
270
|
+
const processCount = queryProcessCount(nativeDb, projectId);
|
|
271
|
+
const communities = queryCommunities(nativeDb, projectId);
|
|
272
|
+
|
|
273
|
+
const symbolBreakdown = kindCounts.map((r) => `${r.kind}s: ${r.count}`).join(', ');
|
|
274
|
+
|
|
275
|
+
const callsCount = relCounts.find((r) => r.type === 'calls')?.count ?? 0;
|
|
276
|
+
const importsCount = relCounts.find((r) => r.type === 'imports')?.count ?? 0;
|
|
277
|
+
const extendsCount = relCounts.find((r) => r.type === 'extends')?.count ?? 0;
|
|
278
|
+
|
|
279
|
+
const freshnessLabel = meta.last_indexed_at ? meta.last_indexed_at.slice(0, 10) : 'unknown';
|
|
280
|
+
|
|
281
|
+
lines.push('## Index Status');
|
|
282
|
+
lines.push('');
|
|
283
|
+
lines.push(`- **Files**: ${meta.file_count.toLocaleString()} indexed`);
|
|
284
|
+
lines.push(
|
|
285
|
+
`- **Symbols**: ${meta.total_nodes.toLocaleString()} total${symbolBreakdown ? ` (${symbolBreakdown})` : ''}`,
|
|
286
|
+
);
|
|
287
|
+
lines.push(
|
|
288
|
+
`- **Relations**: ${meta.total_relations.toLocaleString()} total (calls: ${callsCount.toLocaleString()}, imports: ${importsCount.toLocaleString()}, extends: ${extendsCount.toLocaleString()})`,
|
|
289
|
+
);
|
|
290
|
+
lines.push(`- **Communities**: ${communities.length} functional clusters`);
|
|
291
|
+
lines.push(`- **Execution Flows**: ${processCount} traced processes`);
|
|
292
|
+
lines.push(`- **Last Indexed**: ${meta.last_indexed_at ?? 'never'}`);
|
|
293
|
+
lines.push(`- **Date**: ${freshnessLabel}`);
|
|
294
|
+
lines.push('');
|
|
295
|
+
|
|
296
|
+
// --- Top Entry Points ---
|
|
297
|
+
const entryPoints = queryTopEntryPoints(nativeDb, projectId);
|
|
298
|
+
if (entryPoints.length > 0) {
|
|
299
|
+
lines.push('## Top Entry Points');
|
|
300
|
+
lines.push('');
|
|
301
|
+
entryPoints.forEach((ep, i) => {
|
|
302
|
+
const name = ep.name ?? '(unknown)';
|
|
303
|
+
const filePath = ep.file_path ?? '';
|
|
304
|
+
const displayPath = filePath.length > 60 ? `...${filePath.slice(-57)}` : filePath;
|
|
305
|
+
lines.push(`${i + 1}. \`${name}\` — ${displayPath} (${ep.callees} callees)`);
|
|
306
|
+
});
|
|
307
|
+
lines.push('');
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// --- Functional Clusters ---
|
|
311
|
+
if (communities.length > 0) {
|
|
312
|
+
lines.push('## Functional Clusters');
|
|
313
|
+
lines.push('');
|
|
314
|
+
communities.forEach((c, i) => {
|
|
315
|
+
let symbolCount = 0;
|
|
316
|
+
let topFolder = '';
|
|
317
|
+
try {
|
|
318
|
+
if (c.meta_json) {
|
|
319
|
+
const meta = JSON.parse(c.meta_json) as Record<string, unknown>;
|
|
320
|
+
symbolCount = typeof meta['symbolCount'] === 'number' ? meta['symbolCount'] : 0;
|
|
321
|
+
const folders = meta['topFolders'];
|
|
322
|
+
if (Array.isArray(folders) && folders.length > 0) {
|
|
323
|
+
topFolder = String(folders[0]);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
} catch {
|
|
327
|
+
// ignore parse errors
|
|
328
|
+
}
|
|
329
|
+
const symbolsLabel = symbolCount > 0 ? ` (${symbolCount} symbols)` : '';
|
|
330
|
+
const folderLabel = topFolder ? ` — ${topFolder}` : '';
|
|
331
|
+
lines.push(`${i + 1}. **${c.label}**${symbolsLabel}${folderLabel}`);
|
|
332
|
+
});
|
|
333
|
+
lines.push('');
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// --- Code Intelligence Commands ---
|
|
337
|
+
lines.push('## Code Intelligence Commands');
|
|
338
|
+
lines.push('');
|
|
339
|
+
lines.push('| Need | Command |');
|
|
340
|
+
lines.push('|------|---------|');
|
|
341
|
+
lines.push('| What calls this function? | `cleo nexus context <symbol>` |');
|
|
342
|
+
lines.push('| What breaks if I change this? | `cleo nexus impact <symbol>` |');
|
|
343
|
+
lines.push('| What functional areas exist? | `cleo nexus clusters` |');
|
|
344
|
+
lines.push('| What execution flows exist? | `cleo nexus flows` |');
|
|
345
|
+
lines.push('| Re-index after code changes | `cleo nexus analyze` |');
|
|
346
|
+
lines.push('| Index freshness check | `cleo nexus status` |');
|
|
347
|
+
lines.push('');
|
|
348
|
+
|
|
349
|
+
return lines.join('\n');
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Write nexus bridge content to .cleo/nexus-bridge.md.
|
|
354
|
+
*
|
|
355
|
+
* @param projectRoot - Absolute path to the project root
|
|
356
|
+
* @param projectId - Project registry ID (used to scope nexus.db queries)
|
|
357
|
+
* @returns Result with path and whether the file was written
|
|
358
|
+
*/
|
|
359
|
+
export async function writeNexusBridge(
|
|
360
|
+
projectRoot: string,
|
|
361
|
+
projectId?: string,
|
|
362
|
+
): Promise<{ path: string; written: boolean }> {
|
|
363
|
+
const cleoDir = join(projectRoot, '.cleo');
|
|
364
|
+
const bridgePath = join(cleoDir, 'nexus-bridge.md');
|
|
365
|
+
|
|
366
|
+
// Derive project ID from path if not provided (matches nexus analyze convention)
|
|
367
|
+
const resolvedProjectId =
|
|
368
|
+
projectId ?? Buffer.from(projectRoot).toString('base64url').slice(0, 32);
|
|
369
|
+
|
|
370
|
+
try {
|
|
371
|
+
const content = await generateNexusBridgeContent(resolvedProjectId, projectRoot);
|
|
372
|
+
|
|
373
|
+
if (!existsSync(cleoDir)) {
|
|
374
|
+
mkdirSync(cleoDir, { recursive: true });
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// Only write if content changed (avoid unnecessary git noise)
|
|
378
|
+
if (existsSync(bridgePath)) {
|
|
379
|
+
const existing = readFileSync(bridgePath, 'utf-8');
|
|
380
|
+
// Compare without the date line since it changes daily
|
|
381
|
+
const stripDate = (s: string) => s.replace(/^> Date: .*/m, '');
|
|
382
|
+
if (stripDate(existing) === stripDate(content)) {
|
|
383
|
+
return { path: bridgePath, written: false };
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
writeFileSync(bridgePath, content, 'utf-8');
|
|
388
|
+
return { path: bridgePath, written: true };
|
|
389
|
+
} catch (err) {
|
|
390
|
+
console.error(
|
|
391
|
+
'[CLEO] Failed to write nexus bridge:',
|
|
392
|
+
err instanceof Error ? err.message : String(err),
|
|
393
|
+
);
|
|
394
|
+
return { path: bridgePath, written: false };
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Best-effort nexus bridge refresh. Never throws.
|
|
400
|
+
* Called after cleo nexus analyze completes.
|
|
401
|
+
*
|
|
402
|
+
* @param projectRoot - Absolute path to the project root
|
|
403
|
+
* @param projectId - Project registry ID (used to scope nexus.db queries)
|
|
404
|
+
*/
|
|
405
|
+
export async function refreshNexusBridge(projectRoot: string, projectId?: string): Promise<void> {
|
|
406
|
+
try {
|
|
407
|
+
await writeNexusBridge(projectRoot, projectId);
|
|
408
|
+
} catch (err) {
|
|
409
|
+
console.error(
|
|
410
|
+
'[CLEO] Nexus bridge refresh failed:',
|
|
411
|
+
err instanceof Error ? err.message : String(err),
|
|
412
|
+
);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
// ============================================================================
|
|
417
|
+
// Helpers
|
|
418
|
+
// ============================================================================
|
|
419
|
+
|
|
420
|
+
/** Build placeholder content when no index data exists. */
|
|
421
|
+
function buildEmptyBridge(repoPath: string): string {
|
|
422
|
+
return [
|
|
423
|
+
'# CLEO Nexus Bridge — Code Intelligence',
|
|
424
|
+
'',
|
|
425
|
+
`> Auto-generated from nexus index. Regenerate with \`cleo nexus analyze\`.`,
|
|
426
|
+
`> Project: ${repoPath}`,
|
|
427
|
+
'',
|
|
428
|
+
'## Index Status',
|
|
429
|
+
'',
|
|
430
|
+
'Not indexed. Run `cleo nexus analyze` to build the code intelligence index.',
|
|
431
|
+
'',
|
|
432
|
+
'## Code Intelligence Commands',
|
|
433
|
+
'',
|
|
434
|
+
'| Need | Command |',
|
|
435
|
+
'|------|---------|',
|
|
436
|
+
'| Build the index | `cleo nexus analyze` |',
|
|
437
|
+
'| Check index status | `cleo nexus status` |',
|
|
438
|
+
'| What calls this function? | `cleo nexus context <symbol>` |',
|
|
439
|
+
'| What breaks if I change this? | `cleo nexus impact <symbol>` |',
|
|
440
|
+
'| What functional areas exist? | `cleo nexus clusters` |',
|
|
441
|
+
'| What execution flows exist? | `cleo nexus flows` |',
|
|
442
|
+
'',
|
|
443
|
+
].join('\n');
|
|
444
|
+
}
|
package/src/scaffold.ts
CHANGED
|
@@ -1348,6 +1348,48 @@ export function checkMemoryBridge(projectRoot: string): CheckResult {
|
|
|
1348
1348
|
};
|
|
1349
1349
|
}
|
|
1350
1350
|
|
|
1351
|
+
/**
|
|
1352
|
+
* Verify .cleo/nexus-bridge.md exists.
|
|
1353
|
+
* Warning level if missing (not failure) — it is auto-generated after `cleo nexus analyze`.
|
|
1354
|
+
*
|
|
1355
|
+
* @param projectRoot - Absolute path to the project root directory
|
|
1356
|
+
* @returns Check result indicating presence of the nexus bridge file
|
|
1357
|
+
*
|
|
1358
|
+
* @remarks
|
|
1359
|
+
* Read-only diagnostic. The nexus bridge is auto-generated from nexus.db
|
|
1360
|
+
* content after `cleo nexus analyze` runs, so its absence is only a warning.
|
|
1361
|
+
*
|
|
1362
|
+
* @example
|
|
1363
|
+
* ```typescript
|
|
1364
|
+
* const check = checkNexusBridge('/my/project');
|
|
1365
|
+
* if (check.status === 'warning') console.log('Run: cleo nexus analyze');
|
|
1366
|
+
* ```
|
|
1367
|
+
*/
|
|
1368
|
+
export function checkNexusBridge(projectRoot: string): CheckResult {
|
|
1369
|
+
const cleoDir = getCleoDirAbsolute(projectRoot);
|
|
1370
|
+
const bridgePath = join(cleoDir, 'nexus-bridge.md');
|
|
1371
|
+
|
|
1372
|
+
if (!existsSync(bridgePath)) {
|
|
1373
|
+
return {
|
|
1374
|
+
id: 'nexus_bridge',
|
|
1375
|
+
category: 'scaffold',
|
|
1376
|
+
status: 'warning',
|
|
1377
|
+
message: 'nexus-bridge.md not found',
|
|
1378
|
+
details: { path: bridgePath, exists: false },
|
|
1379
|
+
fix: 'cleo nexus analyze',
|
|
1380
|
+
};
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
return {
|
|
1384
|
+
id: 'nexus_bridge',
|
|
1385
|
+
category: 'scaffold',
|
|
1386
|
+
status: 'passed',
|
|
1387
|
+
message: 'nexus-bridge.md exists',
|
|
1388
|
+
details: { path: bridgePath, exists: true },
|
|
1389
|
+
fix: null,
|
|
1390
|
+
};
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1351
1393
|
// ── Global (~/.cleo) scaffold functions ──────────────────────────────
|
|
1352
1394
|
|
|
1353
1395
|
/**
|
|
@@ -1,61 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
const mocks = vi.hoisted(() => ({
|
|
4
|
-
observeBrain: vi.fn(),
|
|
5
|
-
}));
|
|
6
|
-
|
|
7
|
-
vi.mock('../../memory/brain-retrieval.js', () => ({
|
|
8
|
-
observeBrain: mocks.observeBrain,
|
|
9
|
-
}));
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
10
2
|
|
|
11
3
|
import { bridgeSessionToMemory } from '../session-memory-bridge.js';
|
|
12
4
|
|
|
5
|
+
/**
|
|
6
|
+
* T527: bridgeSessionToMemory is now a no-op. Session data already lives in
|
|
7
|
+
* the sessions table; the duplicate observeBrain write and extractSessionEndMemory
|
|
8
|
+
* call were removed to reduce brain.db noise.
|
|
9
|
+
*
|
|
10
|
+
* These tests verify the function remains safe to call from sessions/index.ts
|
|
11
|
+
* without throwing.
|
|
12
|
+
*/
|
|
13
13
|
describe('bridgeSessionToMemory', () => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
scope: 'epic:T5417',
|
|
24
|
-
tasksCompleted: ['T5464', 'T5466'],
|
|
25
|
-
duration: 125,
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
expect(mocks.observeBrain).toHaveBeenCalledTimes(1);
|
|
29
|
-
expect(mocks.observeBrain).toHaveBeenCalledWith('/tmp/project', {
|
|
30
|
-
text: 'Session session-100 ended. Scope: epic:T5417. Duration: 2 min. Tasks completed: T5464, T5466.',
|
|
31
|
-
title: 'Session summary: session-100',
|
|
32
|
-
type: 'change',
|
|
33
|
-
sourceSessionId: 'session-100',
|
|
34
|
-
sourceType: 'agent',
|
|
35
|
-
});
|
|
14
|
+
it('resolves without throwing for a normal session', async () => {
|
|
15
|
+
await expect(
|
|
16
|
+
bridgeSessionToMemory('/tmp/project', {
|
|
17
|
+
sessionId: 'session-100',
|
|
18
|
+
scope: 'epic:T5417',
|
|
19
|
+
tasksCompleted: ['T5464', 'T5466'],
|
|
20
|
+
duration: 125,
|
|
21
|
+
}),
|
|
22
|
+
).resolves.toBeUndefined();
|
|
36
23
|
});
|
|
37
24
|
|
|
38
|
-
it('
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
duration: 59,
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
expect(mocks.observeBrain).toHaveBeenCalledWith(
|
|
49
|
-
'/tmp/project',
|
|
50
|
-
expect.objectContaining({
|
|
51
|
-
text: 'Session session-101 ended. Scope: global. Duration: 1 min. Tasks completed: none.',
|
|
25
|
+
it('resolves without throwing for empty task completion list', async () => {
|
|
26
|
+
await expect(
|
|
27
|
+
bridgeSessionToMemory('/tmp/project', {
|
|
28
|
+
sessionId: 'session-101',
|
|
29
|
+
scope: 'global',
|
|
30
|
+
tasksCompleted: [],
|
|
31
|
+
duration: 59,
|
|
52
32
|
}),
|
|
53
|
-
);
|
|
33
|
+
).resolves.toBeUndefined();
|
|
54
34
|
});
|
|
55
35
|
|
|
56
|
-
it('
|
|
57
|
-
mocks.observeBrain.mockRejectedValue(new Error('database is locked'));
|
|
58
|
-
|
|
36
|
+
it('resolves without throwing even when called with minimal data', async () => {
|
|
59
37
|
await expect(
|
|
60
38
|
bridgeSessionToMemory('/tmp/project', {
|
|
61
39
|
sessionId: 'session-102',
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Memory-session bridge —
|
|
2
|
+
* Memory-session bridge — no-op placeholder retained for call-site compatibility.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Previously this function wrote a session summary observation to brain.db and
|
|
5
|
+
* triggered auto-extraction of structured memory. Both were removed in T527
|
|
6
|
+
* because session data already lives in the sessions table; duplicating it to
|
|
7
|
+
* brain_observations was pure noise.
|
|
8
|
+
*
|
|
9
|
+
* The function is kept (as a no-op) so callers in sessions/index.ts do not need
|
|
10
|
+
* to be updated in this task.
|
|
7
11
|
*
|
|
8
12
|
* @task T5392
|
|
9
13
|
* @epic T5149
|
|
14
|
+
* @see T527 — removal of duplicate session observation writes
|
|
10
15
|
*/
|
|
11
16
|
|
|
12
|
-
import { observeBrain } from '../memory/brain-retrieval.js';
|
|
13
|
-
|
|
14
17
|
/** Session data needed to create a memory bridge observation. */
|
|
15
18
|
export interface SessionBridgeData {
|
|
16
19
|
sessionId: string;
|
|
@@ -20,50 +23,19 @@ export interface SessionBridgeData {
|
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
/**
|
|
23
|
-
* Bridge session end data
|
|
26
|
+
* Bridge session end data — currently a no-op.
|
|
24
27
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
28
|
+
* Retained for call-site compatibility. Previously wrote a duplicate summary
|
|
29
|
+
* observation to brain.db and triggered extractSessionEndMemory; both were
|
|
30
|
+
* removed in T527 to reduce brain.db noise.
|
|
27
31
|
*
|
|
28
|
-
* @param
|
|
29
|
-
* @param
|
|
32
|
+
* @param _projectRoot - Project root directory (unused)
|
|
33
|
+
* @param _sessionData - Session metadata (unused)
|
|
30
34
|
*/
|
|
31
35
|
export async function bridgeSessionToMemory(
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
_projectRoot: string,
|
|
37
|
+
_sessionData: SessionBridgeData,
|
|
34
38
|
): Promise<void> {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
sessionData.tasksCompleted.length > 0 ? sessionData.tasksCompleted.join(', ') : 'none';
|
|
38
|
-
|
|
39
|
-
const durationMinutes = Math.round(sessionData.duration / 60);
|
|
40
|
-
|
|
41
|
-
const summary = [
|
|
42
|
-
`Session ${sessionData.sessionId} ended.`,
|
|
43
|
-
`Scope: ${sessionData.scope}.`,
|
|
44
|
-
`Duration: ${durationMinutes} min.`,
|
|
45
|
-
`Tasks completed: ${taskList}.`,
|
|
46
|
-
].join(' ');
|
|
47
|
-
|
|
48
|
-
await observeBrain(projectRoot, {
|
|
49
|
-
text: summary,
|
|
50
|
-
title: `Session summary: ${sessionData.sessionId}`,
|
|
51
|
-
type: 'change',
|
|
52
|
-
sourceSessionId: sessionData.sessionId,
|
|
53
|
-
sourceType: 'agent',
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
// Auto-extract structured memory from session end (best-effort)
|
|
57
|
-
try {
|
|
58
|
-
const { extractSessionEndMemory, resolveTaskDetails } = await import(
|
|
59
|
-
'../memory/auto-extract.js'
|
|
60
|
-
);
|
|
61
|
-
const taskDetails = await resolveTaskDetails(projectRoot, sessionData.tasksCompleted);
|
|
62
|
-
await extractSessionEndMemory(projectRoot, sessionData, taskDetails);
|
|
63
|
-
} catch {
|
|
64
|
-
/* Session memory extraction is best-effort */
|
|
65
|
-
}
|
|
66
|
-
} catch {
|
|
67
|
-
// Best-effort: session bridge must never fail the session end flow
|
|
68
|
-
}
|
|
39
|
+
// T527: Intentional no-op. Session data is already in the sessions table.
|
|
40
|
+
// Removed: observeBrain duplicate write and extractSessionEndMemory call.
|
|
69
41
|
}
|