@cleocode/core 2026.4.13 → 2026.4.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +69233 -175
- package/dist/index.js.map +7 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/internal.d.ts +16 -5
- package/dist/internal.d.ts.map +1 -1
- package/dist/memory/brain-embedding.d.ts +1 -1
- package/dist/memory/embedding-local.d.ts +8 -3
- package/dist/memory/embedding-local.d.ts.map +1 -1
- package/dist/memory/embedding-worker.d.ts +1 -1
- package/dist/memory/learnings.d.ts +2 -2
- package/dist/memory/patterns.d.ts +6 -6
- package/dist/store/agent-registry-accessor.d.ts +54 -1
- package/dist/store/agent-registry-accessor.d.ts.map +1 -1
- package/dist/store/backup-crypto.d.ts +89 -0
- package/dist/store/backup-crypto.d.ts.map +1 -0
- package/dist/store/backup-pack.d.ts +91 -0
- package/dist/store/backup-pack.d.ts.map +1 -0
- package/dist/store/backup-unpack.d.ts +140 -0
- package/dist/store/backup-unpack.d.ts.map +1 -0
- package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
- package/dist/store/regenerators.d.ts +126 -0
- package/dist/store/regenerators.d.ts.map +1 -0
- package/dist/store/restore-conflict-report.d.ts +118 -0
- package/dist/store/restore-conflict-report.d.ts.map +1 -0
- package/dist/store/restore-json-merge.d.ts +187 -0
- package/dist/store/restore-json-merge.d.ts.map +1 -0
- package/dist/store/sqlite-backup.d.ts +60 -5
- package/dist/store/sqlite-backup.d.ts.map +1 -1
- package/dist/store/t310-readiness.d.ts +83 -0
- package/dist/store/t310-readiness.d.ts.map +1 -0
- package/package.json +9 -9
- package/src/__tests__/cli-parity.test.ts +19 -14
- package/src/__tests__/human-output.test.ts +13 -11
- package/src/init.ts +18 -8
- package/src/internal.ts +4 -1
- package/src/memory/__tests__/brain-automation.test.ts +2 -2
- package/src/memory/brain-embedding.ts +1 -1
- package/src/memory/embedding-local.ts +10 -5
- package/src/memory/embedding-worker.ts +1 -1
- package/src/skills/__tests__/discovery.test.ts +22 -7
- package/src/store/__tests__/performance-safety.test.ts +11 -5
- package/src/store/migrate-signaldock-to-conduit.ts +14 -7
- package/src/validation/protocols/_shared.ts +1 -1
- package/dist/adapters/adapter-registry.js +0 -64
- package/dist/adapters/adapter-registry.js.map +0 -1
- package/dist/adapters/discovery.js +0 -83
- package/dist/adapters/discovery.js.map +0 -1
- package/dist/adapters/index.js +0 -9
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/manager.js +0 -260
- package/dist/adapters/manager.js.map +0 -1
- package/dist/admin/export-tasks.js +0 -171
- package/dist/admin/export-tasks.js.map +0 -1
- package/dist/admin/export.js +0 -103
- package/dist/admin/export.js.map +0 -1
- package/dist/admin/help.js +0 -106
- package/dist/admin/help.js.map +0 -1
- package/dist/admin/import-tasks.js +0 -182
- package/dist/admin/import-tasks.js.map +0 -1
- package/dist/admin/import.js +0 -129
- package/dist/admin/import.js.map +0 -1
- package/dist/admin/index.js +0 -13
- package/dist/admin/index.js.map +0 -1
- package/dist/adrs/find.js +0 -134
- package/dist/adrs/find.js.map +0 -1
- package/dist/adrs/index.js +0 -15
- package/dist/adrs/index.js.map +0 -1
- package/dist/adrs/link-pipeline.js +0 -160
- package/dist/adrs/link-pipeline.js.map +0 -1
- package/dist/adrs/list.js +0 -43
- package/dist/adrs/list.js.map +0 -1
- package/dist/adrs/parse.js +0 -51
- package/dist/adrs/parse.js.map +0 -1
- package/dist/adrs/show.js +0 -22
- package/dist/adrs/show.js.map +0 -1
- package/dist/adrs/sync.js +0 -188
- package/dist/adrs/sync.js.map +0 -1
- package/dist/adrs/types.js +0 -9
- package/dist/adrs/types.js.map +0 -1
- package/dist/adrs/validate.js +0 -57
- package/dist/adrs/validate.js.map +0 -1
- package/dist/agents/agent-registry.js +0 -288
- package/dist/agents/agent-registry.js.map +0 -1
- package/dist/agents/agent-schema.js +0 -82
- package/dist/agents/agent-schema.js.map +0 -1
- package/dist/agents/capacity.js +0 -116
- package/dist/agents/capacity.js.map +0 -1
- package/dist/agents/execution-learning.js +0 -474
- package/dist/agents/execution-learning.js.map +0 -1
- package/dist/agents/health-monitor.js +0 -217
- package/dist/agents/health-monitor.js.map +0 -1
- package/dist/agents/index.js +0 -29
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/registry.js +0 -314
- package/dist/agents/registry.js.map +0 -1
- package/dist/agents/retry.js +0 -215
- package/dist/agents/retry.js.map +0 -1
- package/dist/audit-prune.js +0 -94
- package/dist/audit-prune.js.map +0 -1
- package/dist/audit.js +0 -68
- package/dist/audit.js.map +0 -1
- package/dist/backfill/index.js +0 -229
- package/dist/backfill/index.js.map +0 -1
- package/dist/bootstrap.js +0 -344
- package/dist/bootstrap.js.map +0 -1
- package/dist/caamp/adapter.js +0 -259
- package/dist/caamp/adapter.js.map +0 -1
- package/dist/caamp/capability-check.js +0 -38
- package/dist/caamp/capability-check.js.map +0 -1
- package/dist/caamp/index.js +0 -21
- package/dist/caamp/index.js.map +0 -1
- package/dist/caamp-init.js +0 -16
- package/dist/caamp-init.js.map +0 -1
- package/dist/cleo.js +0 -322
- package/dist/cleo.js.map +0 -1
- package/dist/code/index.js +0 -10
- package/dist/code/index.js.map +0 -1
- package/dist/code/outline.js +0 -165
- package/dist/code/outline.js.map +0 -1
- package/dist/code/parser.js +0 -295
- package/dist/code/parser.js.map +0 -1
- package/dist/code/search.js +0 -135
- package/dist/code/search.js.map +0 -1
- package/dist/code/unfold.js +0 -155
- package/dist/code/unfold.js.map +0 -1
- package/dist/codebase-map/analyzers/architecture.js +0 -129
- package/dist/codebase-map/analyzers/architecture.js.map +0 -1
- package/dist/codebase-map/analyzers/concerns.js +0 -122
- package/dist/codebase-map/analyzers/concerns.js.map +0 -1
- package/dist/codebase-map/analyzers/conventions.js +0 -149
- package/dist/codebase-map/analyzers/conventions.js.map +0 -1
- package/dist/codebase-map/analyzers/integrations.js +0 -108
- package/dist/codebase-map/analyzers/integrations.js.map +0 -1
- package/dist/codebase-map/analyzers/stack.js +0 -117
- package/dist/codebase-map/analyzers/stack.js.map +0 -1
- package/dist/codebase-map/analyzers/structure.js +0 -137
- package/dist/codebase-map/analyzers/structure.js.map +0 -1
- package/dist/codebase-map/analyzers/testing.js +0 -118
- package/dist/codebase-map/analyzers/testing.js.map +0 -1
- package/dist/codebase-map/index.js +0 -57
- package/dist/codebase-map/index.js.map +0 -1
- package/dist/codebase-map/store.js +0 -122
- package/dist/codebase-map/store.js.map +0 -1
- package/dist/codebase-map/summary.js +0 -152
- package/dist/codebase-map/summary.js.map +0 -1
- package/dist/compliance/index.js +0 -288
- package/dist/compliance/index.js.map +0 -1
- package/dist/compliance/protocol-enforcement.js +0 -332
- package/dist/compliance/protocol-enforcement.js.map +0 -1
- package/dist/compliance/protocol-rules.js +0 -786
- package/dist/compliance/protocol-rules.js.map +0 -1
- package/dist/compliance/protocol-types.js +0 -79
- package/dist/compliance/protocol-types.js.map +0 -1
- package/dist/compliance/store.js +0 -53
- package/dist/compliance/store.js.map +0 -1
- package/dist/conduit/conduit-client.js +0 -107
- package/dist/conduit/conduit-client.js.map +0 -1
- package/dist/conduit/factory.js +0 -52
- package/dist/conduit/factory.js.map +0 -1
- package/dist/conduit/http-transport.js +0 -155
- package/dist/conduit/http-transport.js.map +0 -1
- package/dist/conduit/index.js +0 -15
- package/dist/conduit/index.js.map +0 -1
- package/dist/conduit/local-transport.js +0 -255
- package/dist/conduit/local-transport.js.map +0 -1
- package/dist/conduit/sse-transport.js +0 -299
- package/dist/conduit/sse-transport.js.map +0 -1
- package/dist/config/build-config.js +0 -29
- package/dist/config/build-config.js.map +0 -1
- package/dist/config.js +0 -400
- package/dist/config.js.map +0 -1
- package/dist/constants.js +0 -18
- package/dist/constants.js.map +0 -1
- package/dist/context/index.js +0 -137
- package/dist/context/index.js.map +0 -1
- package/dist/crypto/credentials.js +0 -191
- package/dist/crypto/credentials.js.map +0 -1
- package/dist/discovery.js +0 -182
- package/dist/discovery.js.map +0 -1
- package/dist/engine-result.js +0 -12
- package/dist/engine-result.js.map +0 -1
- package/dist/error-catalog.js +0 -404
- package/dist/error-catalog.js.map +0 -1
- package/dist/error-registry.js +0 -393
- package/dist/error-registry.js.map +0 -1
- package/dist/errors.js +0 -173
- package/dist/errors.js.map +0 -1
- package/dist/hooks/handlers/agent-hooks.js +0 -106
- package/dist/hooks/handlers/agent-hooks.js.map +0 -1
- package/dist/hooks/handlers/context-hooks.js +0 -111
- package/dist/hooks/handlers/context-hooks.js.map +0 -1
- package/dist/hooks/handlers/error-hooks.js +0 -52
- package/dist/hooks/handlers/error-hooks.js.map +0 -1
- package/dist/hooks/handlers/file-hooks.js +0 -104
- package/dist/hooks/handlers/file-hooks.js.map +0 -1
- package/dist/hooks/handlers/handler-helpers.js +0 -61
- package/dist/hooks/handlers/handler-helpers.js.map +0 -1
- package/dist/hooks/handlers/index.js +0 -28
- package/dist/hooks/handlers/index.js.map +0 -1
- package/dist/hooks/handlers/memory-bridge-refresh.js +0 -42
- package/dist/hooks/handlers/memory-bridge-refresh.js.map +0 -1
- package/dist/hooks/handlers/notification-hooks.js +0 -62
- package/dist/hooks/handlers/notification-hooks.js.map +0 -1
- package/dist/hooks/handlers/session-hooks.js +0 -142
- package/dist/hooks/handlers/session-hooks.js.map +0 -1
- package/dist/hooks/handlers/task-hooks.js +0 -65
- package/dist/hooks/handlers/task-hooks.js.map +0 -1
- package/dist/hooks/handlers/work-capture-hooks.js +0 -165
- package/dist/hooks/handlers/work-capture-hooks.js.map +0 -1
- package/dist/hooks/index.js +0 -13
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/payload-schemas.js +0 -220
- package/dist/hooks/payload-schemas.js.map +0 -1
- package/dist/hooks/provider-hooks.js +0 -66
- package/dist/hooks/provider-hooks.js.map +0 -1
- package/dist/hooks/registry.js +0 -229
- package/dist/hooks/registry.js.map +0 -1
- package/dist/hooks/types.js +0 -66
- package/dist/hooks/types.js.map +0 -1
- package/dist/hooks.js +0 -136
- package/dist/hooks.js.map +0 -1
- package/dist/init.js +0 -851
- package/dist/init.js.map +0 -1
- package/dist/inject/index.js +0 -82
- package/dist/inject/index.js.map +0 -1
- package/dist/injection.js +0 -343
- package/dist/injection.js.map +0 -1
- package/dist/intelligence/adaptive-validation.js +0 -497
- package/dist/intelligence/adaptive-validation.js.map +0 -1
- package/dist/intelligence/impact.js +0 -675
- package/dist/intelligence/impact.js.map +0 -1
- package/dist/intelligence/index.js +0 -22
- package/dist/intelligence/index.js.map +0 -1
- package/dist/intelligence/patterns.js +0 -492
- package/dist/intelligence/patterns.js.map +0 -1
- package/dist/intelligence/prediction.js +0 -499
- package/dist/intelligence/prediction.js.map +0 -1
- package/dist/intelligence/types.js +0 -13
- package/dist/intelligence/types.js.map +0 -1
- package/dist/internal.js +0 -306
- package/dist/internal.js.map +0 -1
- package/dist/issue/create.js +0 -121
- package/dist/issue/create.js.map +0 -1
- package/dist/issue/diagnostics.js +0 -59
- package/dist/issue/diagnostics.js.map +0 -1
- package/dist/issue/index.js +0 -10
- package/dist/issue/index.js.map +0 -1
- package/dist/issue/template-parser.js +0 -267
- package/dist/issue/template-parser.js.map +0 -1
- package/dist/json-schema-validator.js +0 -76
- package/dist/json-schema-validator.js.map +0 -1
- package/dist/lib/index.js +0 -11
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/retry.js +0 -152
- package/dist/lib/retry.js.map +0 -1
- package/dist/lib/tree-sitter-languages.js +0 -71
- package/dist/lib/tree-sitter-languages.js.map +0 -1
- package/dist/lifecycle/chain-composition.js +0 -152
- package/dist/lifecycle/chain-composition.js.map +0 -1
- package/dist/lifecycle/chain-store.js +0 -246
- package/dist/lifecycle/chain-store.js.map +0 -1
- package/dist/lifecycle/consolidate-rcasd.js +0 -352
- package/dist/lifecycle/consolidate-rcasd.js.map +0 -1
- package/dist/lifecycle/default-chain.js +0 -176
- package/dist/lifecycle/default-chain.js.map +0 -1
- package/dist/lifecycle/evidence.js +0 -180
- package/dist/lifecycle/evidence.js.map +0 -1
- package/dist/lifecycle/frontmatter.js +0 -363
- package/dist/lifecycle/frontmatter.js.map +0 -1
- package/dist/lifecycle/index.js +0 -756
- package/dist/lifecycle/index.js.map +0 -1
- package/dist/lifecycle/pipeline.js +0 -656
- package/dist/lifecycle/pipeline.js.map +0 -1
- package/dist/lifecycle/rcasd-index.js +0 -326
- package/dist/lifecycle/rcasd-index.js.map +0 -1
- package/dist/lifecycle/rcasd-paths.js +0 -220
- package/dist/lifecycle/rcasd-paths.js.map +0 -1
- package/dist/lifecycle/resume.js +0 -864
- package/dist/lifecycle/resume.js.map +0 -1
- package/dist/lifecycle/stage-artifacts.js +0 -94
- package/dist/lifecycle/stage-artifacts.js.map +0 -1
- package/dist/lifecycle/stage-guidance.js +0 -234
- package/dist/lifecycle/stage-guidance.js.map +0 -1
- package/dist/lifecycle/stages.js +0 -534
- package/dist/lifecycle/stages.js.map +0 -1
- package/dist/lifecycle/state-machine.js +0 -516
- package/dist/lifecycle/state-machine.js.map +0 -1
- package/dist/lifecycle/tessera-engine.js +0 -249
- package/dist/lifecycle/tessera-engine.js.map +0 -1
- package/dist/logger.js +0 -140
- package/dist/logger.js.map +0 -1
- package/dist/memory/auto-extract.js +0 -177
- package/dist/memory/auto-extract.js.map +0 -1
- package/dist/memory/brain-embedding.js +0 -66
- package/dist/memory/brain-embedding.js.map +0 -1
- package/dist/memory/brain-lifecycle.js +0 -298
- package/dist/memory/brain-lifecycle.js.map +0 -1
- package/dist/memory/brain-links.js +0 -161
- package/dist/memory/brain-links.js.map +0 -1
- package/dist/memory/brain-maintenance.js +0 -114
- package/dist/memory/brain-maintenance.js.map +0 -1
- package/dist/memory/brain-migration.js +0 -149
- package/dist/memory/brain-migration.js.map +0 -1
- package/dist/memory/brain-reasoning.js +0 -215
- package/dist/memory/brain-reasoning.js.map +0 -1
- package/dist/memory/brain-retrieval.js +0 -542
- package/dist/memory/brain-retrieval.js.map +0 -1
- package/dist/memory/brain-row-types.js +0 -10
- package/dist/memory/brain-row-types.js.map +0 -1
- package/dist/memory/brain-search.js +0 -519
- package/dist/memory/brain-search.js.map +0 -1
- package/dist/memory/brain-similarity.js +0 -145
- package/dist/memory/brain-similarity.js.map +0 -1
- package/dist/memory/claude-mem-migration.js +0 -277
- package/dist/memory/claude-mem-migration.js.map +0 -1
- package/dist/memory/decisions.js +0 -162
- package/dist/memory/decisions.js.map +0 -1
- package/dist/memory/embedding-local.js +0 -97
- package/dist/memory/embedding-local.js.map +0 -1
- package/dist/memory/embedding-queue.js +0 -271
- package/dist/memory/embedding-queue.js.map +0 -1
- package/dist/memory/embedding-worker.js +0 -58
- package/dist/memory/embedding-worker.js.map +0 -1
- package/dist/memory/engine-compat.js +0 -1397
- package/dist/memory/engine-compat.js.map +0 -1
- package/dist/memory/index.js +0 -1140
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/learnings.js +0 -121
- package/dist/memory/learnings.js.map +0 -1
- package/dist/memory/memory-bridge.js +0 -370
- package/dist/memory/memory-bridge.js.map +0 -1
- package/dist/memory/patterns.js +0 -122
- package/dist/memory/patterns.js.map +0 -1
- package/dist/memory/pipeline-manifest-sqlite.js +0 -975
- package/dist/memory/pipeline-manifest-sqlite.js.map +0 -1
- package/dist/memory/session-memory.js +0 -331
- package/dist/memory/session-memory.js.map +0 -1
- package/dist/metrics/ab-test.js +0 -260
- package/dist/metrics/ab-test.js.map +0 -1
- package/dist/metrics/aggregation.js +0 -363
- package/dist/metrics/aggregation.js.map +0 -1
- package/dist/metrics/common.js +0 -64
- package/dist/metrics/common.js.map +0 -1
- package/dist/metrics/enums.js +0 -78
- package/dist/metrics/enums.js.map +0 -1
- package/dist/metrics/index.js +0 -19
- package/dist/metrics/index.js.map +0 -1
- package/dist/metrics/model-provider-registry.js +0 -88
- package/dist/metrics/model-provider-registry.js.map +0 -1
- package/dist/metrics/otel-integration.js +0 -263
- package/dist/metrics/otel-integration.js.map +0 -1
- package/dist/metrics/provider-detection.js +0 -103
- package/dist/metrics/provider-detection.js.map +0 -1
- package/dist/metrics/token-estimation.js +0 -253
- package/dist/metrics/token-estimation.js.map +0 -1
- package/dist/metrics/token-service.js +0 -450
- package/dist/metrics/token-service.js.map +0 -1
- package/dist/migration/agent-outputs.js +0 -316
- package/dist/migration/agent-outputs.js.map +0 -1
- package/dist/migration/checksum.js +0 -92
- package/dist/migration/checksum.js.map +0 -1
- package/dist/migration/index.js +0 -282
- package/dist/migration/index.js.map +0 -1
- package/dist/migration/logger.js +0 -360
- package/dist/migration/logger.js.map +0 -1
- package/dist/migration/preflight.js +0 -9
- package/dist/migration/preflight.js.map +0 -1
- package/dist/migration/state.js +0 -421
- package/dist/migration/state.js.map +0 -1
- package/dist/migration/validate.js +0 -241
- package/dist/migration/validate.js.map +0 -1
- package/dist/mvi-helpers.js +0 -74
- package/dist/mvi-helpers.js.map +0 -1
- package/dist/nexus/deps.js +0 -375
- package/dist/nexus/deps.js.map +0 -1
- package/dist/nexus/discover.js +0 -288
- package/dist/nexus/discover.js.map +0 -1
- package/dist/nexus/hash.js +0 -10
- package/dist/nexus/hash.js.map +0 -1
- package/dist/nexus/index.js +0 -40
- package/dist/nexus/index.js.map +0 -1
- package/dist/nexus/migrate-json-to-sqlite.js +0 -115
- package/dist/nexus/migrate-json-to-sqlite.js.map +0 -1
- package/dist/nexus/permissions.js +0 -105
- package/dist/nexus/permissions.js.map +0 -1
- package/dist/nexus/query.js +0 -175
- package/dist/nexus/query.js.map +0 -1
- package/dist/nexus/registry.js +0 -584
- package/dist/nexus/registry.js.map +0 -1
- package/dist/nexus/sharing/index.js +0 -288
- package/dist/nexus/sharing/index.js.map +0 -1
- package/dist/nexus/transfer-types.js +0 -8
- package/dist/nexus/transfer-types.js.map +0 -1
- package/dist/nexus/transfer.js +0 -263
- package/dist/nexus/transfer.js.map +0 -1
- package/dist/nexus/workspace.js +0 -355
- package/dist/nexus/workspace.js.map +0 -1
- package/dist/observability/index.js +0 -103
- package/dist/observability/index.js.map +0 -1
- package/dist/observability/log-filter.js +0 -63
- package/dist/observability/log-filter.js.map +0 -1
- package/dist/observability/log-parser.js +0 -99
- package/dist/observability/log-parser.js.map +0 -1
- package/dist/observability/log-reader.js +0 -139
- package/dist/observability/log-reader.js.map +0 -1
- package/dist/observability/types.js +0 -19
- package/dist/observability/types.js.map +0 -1
- package/dist/orchestration/analyze.js +0 -107
- package/dist/orchestration/analyze.js.map +0 -1
- package/dist/orchestration/bootstrap.js +0 -132
- package/dist/orchestration/bootstrap.js.map +0 -1
- package/dist/orchestration/context.js +0 -56
- package/dist/orchestration/context.js.map +0 -1
- package/dist/orchestration/critical-path.js +0 -100
- package/dist/orchestration/critical-path.js.map +0 -1
- package/dist/orchestration/hierarchy.js +0 -183
- package/dist/orchestration/hierarchy.js.map +0 -1
- package/dist/orchestration/index.js +0 -287
- package/dist/orchestration/index.js.map +0 -1
- package/dist/orchestration/parallel.js +0 -89
- package/dist/orchestration/parallel.js.map +0 -1
- package/dist/orchestration/protocol-validators.js +0 -815
- package/dist/orchestration/protocol-validators.js.map +0 -1
- package/dist/orchestration/skill-ops.js +0 -98
- package/dist/orchestration/skill-ops.js.map +0 -1
- package/dist/orchestration/status.js +0 -107
- package/dist/orchestration/status.js.map +0 -1
- package/dist/orchestration/unblock.js +0 -103
- package/dist/orchestration/unblock.js.map +0 -1
- package/dist/orchestration/validate-spawn.js +0 -67
- package/dist/orchestration/validate-spawn.js.map +0 -1
- package/dist/orchestration/waves.js +0 -86
- package/dist/orchestration/waves.js.map +0 -1
- package/dist/otel/index.js +0 -163
- package/dist/otel/index.js.map +0 -1
- package/dist/output.js +0 -164
- package/dist/output.js.map +0 -1
- package/dist/pagination.js +0 -64
- package/dist/pagination.js.map +0 -1
- package/dist/paths.js +0 -842
- package/dist/paths.js.map +0 -1
- package/dist/phases/deps.js +0 -372
- package/dist/phases/deps.js.map +0 -1
- package/dist/phases/index.js +0 -349
- package/dist/phases/index.js.map +0 -1
- package/dist/pipeline/index.js +0 -10
- package/dist/pipeline/index.js.map +0 -1
- package/dist/pipeline/phase.js +0 -45
- package/dist/pipeline/phase.js.map +0 -1
- package/dist/platform.js +0 -211
- package/dist/platform.js.map +0 -1
- package/dist/project-info.js +0 -84
- package/dist/project-info.js.map +0 -1
- package/dist/reconciliation/index.js +0 -10
- package/dist/reconciliation/index.js.map +0 -1
- package/dist/reconciliation/link-store.js +0 -129
- package/dist/reconciliation/link-store.js.map +0 -1
- package/dist/reconciliation/reconciliation-engine.js +0 -298
- package/dist/reconciliation/reconciliation-engine.js.map +0 -1
- package/dist/release/artifacts.js +0 -427
- package/dist/release/artifacts.js.map +0 -1
- package/dist/release/changelog-writer.js +0 -151
- package/dist/release/changelog-writer.js.map +0 -1
- package/dist/release/channel.js +0 -144
- package/dist/release/channel.js.map +0 -1
- package/dist/release/ci.js +0 -166
- package/dist/release/ci.js.map +0 -1
- package/dist/release/github-pr.js +0 -225
- package/dist/release/github-pr.js.map +0 -1
- package/dist/release/guards.js +0 -116
- package/dist/release/guards.js.map +0 -1
- package/dist/release/index.js +0 -22
- package/dist/release/index.js.map +0 -1
- package/dist/release/release-config.js +0 -158
- package/dist/release/release-config.js.map +0 -1
- package/dist/release/release-manifest.js +0 -1019
- package/dist/release/release-manifest.js.map +0 -1
- package/dist/release/version-bump.js +0 -255
- package/dist/release/version-bump.js.map +0 -1
- package/dist/remote/index.js +0 -257
- package/dist/remote/index.js.map +0 -1
- package/dist/repair.js +0 -130
- package/dist/repair.js.map +0 -1
- package/dist/research/index.js +0 -2
- package/dist/research/index.js.map +0 -1
- package/dist/roadmap/index.js +0 -59
- package/dist/roadmap/index.js.map +0 -1
- package/dist/routing/capability-matrix.js +0 -1556
- package/dist/routing/capability-matrix.js.map +0 -1
- package/dist/routing/index.js +0 -9
- package/dist/routing/index.js.map +0 -1
- package/dist/scaffold.js +0 -1759
- package/dist/scaffold.js.map +0 -1
- package/dist/schema-management.js +0 -295
- package/dist/schema-management.js.map +0 -1
- package/dist/security/index.js +0 -9
- package/dist/security/index.js.map +0 -1
- package/dist/security/input-sanitization.js +0 -321
- package/dist/security/input-sanitization.js.map +0 -1
- package/dist/sequence/index.js +0 -295
- package/dist/sequence/index.js.map +0 -1
- package/dist/sessions/assumptions.js +0 -54
- package/dist/sessions/assumptions.js.map +0 -1
- package/dist/sessions/briefing.js +0 -377
- package/dist/sessions/briefing.js.map +0 -1
- package/dist/sessions/context-alert.js +0 -222
- package/dist/sessions/context-alert.js.map +0 -1
- package/dist/sessions/context-inject.js +0 -61
- package/dist/sessions/context-inject.js.map +0 -1
- package/dist/sessions/context-monitor.js +0 -98
- package/dist/sessions/context-monitor.js.map +0 -1
- package/dist/sessions/decisions.js +0 -65
- package/dist/sessions/decisions.js.map +0 -1
- package/dist/sessions/find.js +0 -65
- package/dist/sessions/find.js.map +0 -1
- package/dist/sessions/handoff.js +0 -328
- package/dist/sessions/handoff.js.map +0 -1
- package/dist/sessions/hitl-warnings.js +0 -254
- package/dist/sessions/hitl-warnings.js.map +0 -1
- package/dist/sessions/index.js +0 -327
- package/dist/sessions/index.js.map +0 -1
- package/dist/sessions/session-archive.js +0 -40
- package/dist/sessions/session-archive.js.map +0 -1
- package/dist/sessions/session-cleanup.js +0 -59
- package/dist/sessions/session-cleanup.js.map +0 -1
- package/dist/sessions/session-drift.js +0 -134
- package/dist/sessions/session-drift.js.map +0 -1
- package/dist/sessions/session-enforcement.js +0 -144
- package/dist/sessions/session-enforcement.js.map +0 -1
- package/dist/sessions/session-grade.js +0 -253
- package/dist/sessions/session-grade.js.map +0 -1
- package/dist/sessions/session-history.js +0 -42
- package/dist/sessions/session-history.js.map +0 -1
- package/dist/sessions/session-id.js +0 -81
- package/dist/sessions/session-id.js.map +0 -1
- package/dist/sessions/session-memory-bridge.js +0 -52
- package/dist/sessions/session-memory-bridge.js.map +0 -1
- package/dist/sessions/session-show.js +0 -24
- package/dist/sessions/session-show.js.map +0 -1
- package/dist/sessions/session-stats.js +0 -69
- package/dist/sessions/session-stats.js.map +0 -1
- package/dist/sessions/session-suspend.js +0 -39
- package/dist/sessions/session-suspend.js.map +0 -1
- package/dist/sessions/session-switch.js +0 -51
- package/dist/sessions/session-switch.js.map +0 -1
- package/dist/sessions/session-view.js +0 -76
- package/dist/sessions/session-view.js.map +0 -1
- package/dist/sessions/snapshot.js +0 -213
- package/dist/sessions/snapshot.js.map +0 -1
- package/dist/sessions/statusline-setup.js +0 -85
- package/dist/sessions/statusline-setup.js.map +0 -1
- package/dist/sessions/types.js +0 -8
- package/dist/sessions/types.js.map +0 -1
- package/dist/skills/agents/config.js +0 -94
- package/dist/skills/agents/config.js.map +0 -1
- package/dist/skills/agents/install.js +0 -116
- package/dist/skills/agents/install.js.map +0 -1
- package/dist/skills/agents/registry.js +0 -161
- package/dist/skills/agents/registry.js.map +0 -1
- package/dist/skills/discovery.js +0 -333
- package/dist/skills/discovery.js.map +0 -1
- package/dist/skills/dispatch.js +0 -347
- package/dist/skills/dispatch.js.map +0 -1
- package/dist/skills/dynamic-skill-generator.js +0 -87
- package/dist/skills/dynamic-skill-generator.js.map +0 -1
- package/dist/skills/index.js +0 -44
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/injection/subagent.js +0 -195
- package/dist/skills/injection/subagent.js.map +0 -1
- package/dist/skills/injection/token.js +0 -260
- package/dist/skills/injection/token.js.map +0 -1
- package/dist/skills/install.js +0 -40
- package/dist/skills/install.js.map +0 -1
- package/dist/skills/manifests/contribution.js +0 -175
- package/dist/skills/manifests/contribution.js.map +0 -1
- package/dist/skills/manifests/research.js +0 -281
- package/dist/skills/manifests/research.js.map +0 -1
- package/dist/skills/manifests/resolver.js +0 -146
- package/dist/skills/manifests/resolver.js.map +0 -1
- package/dist/skills/marketplace.js +0 -90
- package/dist/skills/marketplace.js.map +0 -1
- package/dist/skills/orchestrator/spawn.js +0 -178
- package/dist/skills/orchestrator/spawn.js.map +0 -1
- package/dist/skills/orchestrator/startup.js +0 -451
- package/dist/skills/orchestrator/startup.js.map +0 -1
- package/dist/skills/orchestrator/validator.js +0 -301
- package/dist/skills/orchestrator/validator.js.map +0 -1
- package/dist/skills/precedence-integration.js +0 -73
- package/dist/skills/precedence-integration.js.map +0 -1
- package/dist/skills/precedence-types.js +0 -16
- package/dist/skills/precedence-types.js.map +0 -1
- package/dist/skills/routing-table.js +0 -63
- package/dist/skills/routing-table.js.map +0 -1
- package/dist/skills/skill-paths.js +0 -217
- package/dist/skills/skill-paths.js.map +0 -1
- package/dist/skills/test-utility.js +0 -55
- package/dist/skills/test-utility.js.map +0 -1
- package/dist/skills/types.js +0 -118
- package/dist/skills/types.js.map +0 -1
- package/dist/skills/validation.js +0 -183
- package/dist/skills/validation.js.map +0 -1
- package/dist/skills/version.js +0 -57
- package/dist/skills/version.js.map +0 -1
- package/dist/snapshot/index.js +0 -188
- package/dist/snapshot/index.js.map +0 -1
- package/dist/spawn/adapter-registry.js +0 -246
- package/dist/spawn/adapter-registry.js.map +0 -1
- package/dist/spawn/index.js +0 -10
- package/dist/spawn/index.js.map +0 -1
- package/dist/stats/index.js +0 -343
- package/dist/stats/index.js.map +0 -1
- package/dist/stats/workflow-telemetry.js +0 -400
- package/dist/stats/workflow-telemetry.js.map +0 -1
- package/dist/sticky/archive.js +0 -47
- package/dist/sticky/archive.js.map +0 -1
- package/dist/sticky/convert.js +0 -235
- package/dist/sticky/convert.js.map +0 -1
- package/dist/sticky/create.js +0 -48
- package/dist/sticky/create.js.map +0 -1
- package/dist/sticky/id.js +0 -35
- package/dist/sticky/id.js.map +0 -1
- package/dist/sticky/index.js +0 -16
- package/dist/sticky/index.js.map +0 -1
- package/dist/sticky/list.js +0 -44
- package/dist/sticky/list.js.map +0 -1
- package/dist/sticky/purge.js +0 -45
- package/dist/sticky/purge.js.map +0 -1
- package/dist/sticky/show.js +0 -42
- package/dist/sticky/show.js.map +0 -1
- package/dist/sticky/types.js +0 -10
- package/dist/sticky/types.js.map +0 -1
- package/dist/store/agent-registry-accessor.js +0 -783
- package/dist/store/agent-registry-accessor.js.map +0 -1
- package/dist/store/api-key-kdf.js +0 -84
- package/dist/store/api-key-kdf.js.map +0 -1
- package/dist/store/atomic.js +0 -167
- package/dist/store/atomic.js.map +0 -1
- package/dist/store/backup.js +0 -94
- package/dist/store/backup.js.map +0 -1
- package/dist/store/brain-accessor.js +0 -397
- package/dist/store/brain-accessor.js.map +0 -1
- package/dist/store/brain-schema.js +0 -215
- package/dist/store/brain-schema.js.map +0 -1
- package/dist/store/brain-sqlite.js +0 -222
- package/dist/store/brain-sqlite.js.map +0 -1
- package/dist/store/cache.js +0 -168
- package/dist/store/cache.js.map +0 -1
- package/dist/store/chain-schema.js +0 -51
- package/dist/store/chain-schema.js.map +0 -1
- package/dist/store/cleanup-legacy.js +0 -171
- package/dist/store/cleanup-legacy.js.map +0 -1
- package/dist/store/conduit-sqlite.js +0 -570
- package/dist/store/conduit-sqlite.js.map +0 -1
- package/dist/store/converters.js +0 -124
- package/dist/store/converters.js.map +0 -1
- package/dist/store/cross-db-cleanup.js +0 -319
- package/dist/store/cross-db-cleanup.js.map +0 -1
- package/dist/store/data-accessor.js +0 -26
- package/dist/store/data-accessor.js.map +0 -1
- package/dist/store/data-safety-central.js +0 -269
- package/dist/store/data-safety-central.js.map +0 -1
- package/dist/store/data-safety.js +0 -274
- package/dist/store/data-safety.js.map +0 -1
- package/dist/store/db-helpers.js +0 -224
- package/dist/store/db-helpers.js.map +0 -1
- package/dist/store/export.js +0 -155
- package/dist/store/export.js.map +0 -1
- package/dist/store/file-utils.js +0 -270
- package/dist/store/file-utils.js.map +0 -1
- package/dist/store/git-checkpoint.js +0 -365
- package/dist/store/git-checkpoint.js.map +0 -1
- package/dist/store/global-salt.js +0 -147
- package/dist/store/global-salt.js.map +0 -1
- package/dist/store/import-logging.js +0 -139
- package/dist/store/import-logging.js.map +0 -1
- package/dist/store/import-remap.js +0 -145
- package/dist/store/import-remap.js.map +0 -1
- package/dist/store/import-sort.js +0 -121
- package/dist/store/import-sort.js.map +0 -1
- package/dist/store/index.js +0 -29
- package/dist/store/index.js.map +0 -1
- package/dist/store/json.js +0 -208
- package/dist/store/json.js.map +0 -1
- package/dist/store/lifecycle-store.js +0 -249
- package/dist/store/lifecycle-store.js.map +0 -1
- package/dist/store/lock.js +0 -70
- package/dist/store/lock.js.map +0 -1
- package/dist/store/migrate-signaldock-to-conduit.js +0 -555
- package/dist/store/migrate-signaldock-to-conduit.js.map +0 -1
- package/dist/store/migration-manager.js +0 -151
- package/dist/store/migration-manager.js.map +0 -1
- package/dist/store/migration-sqlite.js +0 -676
- package/dist/store/migration-sqlite.js.map +0 -1
- package/dist/store/nexus-schema.js +0 -62
- package/dist/store/nexus-schema.js.map +0 -1
- package/dist/store/nexus-sqlite.js +0 -242
- package/dist/store/nexus-sqlite.js.map +0 -1
- package/dist/store/nexus-validation-schemas.js +0 -40
- package/dist/store/nexus-validation-schemas.js.map +0 -1
- package/dist/store/parsers.js +0 -37
- package/dist/store/parsers.js.map +0 -1
- package/dist/store/project-detect.js +0 -457
- package/dist/store/project-detect.js.map +0 -1
- package/dist/store/provider.js +0 -101
- package/dist/store/provider.js.map +0 -1
- package/dist/store/safety-data-accessor.js +0 -257
- package/dist/store/safety-data-accessor.js.map +0 -1
- package/dist/store/schema.js +0 -7
- package/dist/store/schema.js.map +0 -1
- package/dist/store/session-store.js +0 -219
- package/dist/store/session-store.js.map +0 -1
- package/dist/store/signaldock-sqlite.js +0 -550
- package/dist/store/signaldock-sqlite.js.map +0 -1
- package/dist/store/sqlite-backup.js +0 -359
- package/dist/store/sqlite-backup.js.map +0 -1
- package/dist/store/sqlite-data-accessor.js +0 -787
- package/dist/store/sqlite-data-accessor.js.map +0 -1
- package/dist/store/sqlite.js +0 -481
- package/dist/store/sqlite.js.map +0 -1
- package/dist/store/status-registry.js +0 -8
- package/dist/store/status-registry.js.map +0 -1
- package/dist/store/task-store.js +0 -358
- package/dist/store/task-store.js.map +0 -1
- package/dist/store/tasks-schema.js +0 -610
- package/dist/store/tasks-schema.js.map +0 -1
- package/dist/store/typed-query.js +0 -15
- package/dist/store/typed-query.js.map +0 -1
- package/dist/store/validation-schemas.js +0 -278
- package/dist/store/validation-schemas.js.map +0 -1
- package/dist/system/archive-analytics.js +0 -277
- package/dist/system/archive-analytics.js.map +0 -1
- package/dist/system/archive-stats.js +0 -64
- package/dist/system/archive-stats.js.map +0 -1
- package/dist/system/audit.js +0 -145
- package/dist/system/audit.js.map +0 -1
- package/dist/system/backup.js +0 -280
- package/dist/system/backup.js.map +0 -1
- package/dist/system/cleanup.js +0 -134
- package/dist/system/cleanup.js.map +0 -1
- package/dist/system/health.js +0 -1100
- package/dist/system/health.js.map +0 -1
- package/dist/system/index.js +0 -18
- package/dist/system/index.js.map +0 -1
- package/dist/system/inject-generate.js +0 -122
- package/dist/system/inject-generate.js.map +0 -1
- package/dist/system/labels.js +0 -38
- package/dist/system/labels.js.map +0 -1
- package/dist/system/metrics.js +0 -61
- package/dist/system/metrics.js.map +0 -1
- package/dist/system/migrate.js +0 -43
- package/dist/system/migrate.js.map +0 -1
- package/dist/system/platform-paths.js +0 -80
- package/dist/system/platform-paths.js.map +0 -1
- package/dist/system/runtime.js +0 -161
- package/dist/system/runtime.js.map +0 -1
- package/dist/system/safestop.js +0 -99
- package/dist/system/safestop.js.map +0 -1
- package/dist/system/storage-preflight.js +0 -123
- package/dist/system/storage-preflight.js.map +0 -1
- package/dist/task-work/index.js +0 -159
- package/dist/task-work/index.js.map +0 -1
- package/dist/tasks/add.js +0 -736
- package/dist/tasks/add.js.map +0 -1
- package/dist/tasks/analyze.js +0 -85
- package/dist/tasks/analyze.js.map +0 -1
- package/dist/tasks/archive.js +0 -90
- package/dist/tasks/archive.js.map +0 -1
- package/dist/tasks/atomicity.js +0 -83
- package/dist/tasks/atomicity.js.map +0 -1
- package/dist/tasks/cancel-ops.js +0 -83
- package/dist/tasks/cancel-ops.js.map +0 -1
- package/dist/tasks/complete.js +0 -214
- package/dist/tasks/complete.js.map +0 -1
- package/dist/tasks/crossref-extract.js +0 -73
- package/dist/tasks/crossref-extract.js.map +0 -1
- package/dist/tasks/delete-preview.js +0 -192
- package/dist/tasks/delete-preview.js.map +0 -1
- package/dist/tasks/delete.js +0 -120
- package/dist/tasks/delete.js.map +0 -1
- package/dist/tasks/deletion-strategy.js +0 -200
- package/dist/tasks/deletion-strategy.js.map +0 -1
- package/dist/tasks/dependency-check.js +0 -278
- package/dist/tasks/dependency-check.js.map +0 -1
- package/dist/tasks/deps-ready.js +0 -32
- package/dist/tasks/deps-ready.js.map +0 -1
- package/dist/tasks/enforcement.js +0 -86
- package/dist/tasks/enforcement.js.map +0 -1
- package/dist/tasks/epic-enforcement.js +0 -294
- package/dist/tasks/epic-enforcement.js.map +0 -1
- package/dist/tasks/find.js +0 -157
- package/dist/tasks/find.js.map +0 -1
- package/dist/tasks/graph-cache.js +0 -127
- package/dist/tasks/graph-cache.js.map +0 -1
- package/dist/tasks/graph-ops.js +0 -171
- package/dist/tasks/graph-ops.js.map +0 -1
- package/dist/tasks/graph-rag.js +0 -328
- package/dist/tasks/graph-rag.js.map +0 -1
- package/dist/tasks/hierarchy-policy.js +0 -149
- package/dist/tasks/hierarchy-policy.js.map +0 -1
- package/dist/tasks/hierarchy.js +0 -185
- package/dist/tasks/hierarchy.js.map +0 -1
- package/dist/tasks/id-generator.js +0 -65
- package/dist/tasks/id-generator.js.map +0 -1
- package/dist/tasks/index.js +0 -14
- package/dist/tasks/index.js.map +0 -1
- package/dist/tasks/labels.js +0 -55
- package/dist/tasks/labels.js.map +0 -1
- package/dist/tasks/list.js +0 -75
- package/dist/tasks/list.js.map +0 -1
- package/dist/tasks/phase-tracking.js +0 -133
- package/dist/tasks/phase-tracking.js.map +0 -1
- package/dist/tasks/pipeline-stage.js +0 -248
- package/dist/tasks/pipeline-stage.js.map +0 -1
- package/dist/tasks/plan.js +0 -268
- package/dist/tasks/plan.js.map +0 -1
- package/dist/tasks/relates.js +0 -101
- package/dist/tasks/relates.js.map +0 -1
- package/dist/tasks/show.js +0 -83
- package/dist/tasks/show.js.map +0 -1
- package/dist/tasks/size-weighting.js +0 -86
- package/dist/tasks/size-weighting.js.map +0 -1
- package/dist/tasks/staleness.js +0 -86
- package/dist/tasks/staleness.js.map +0 -1
- package/dist/tasks/task-ops.js +0 -1741
- package/dist/tasks/task-ops.js.map +0 -1
- package/dist/tasks/update.js +0 -303
- package/dist/tasks/update.js.map +0 -1
- package/dist/templates/index.js +0 -10
- package/dist/templates/index.js.map +0 -1
- package/dist/templates/parser.js +0 -254
- package/dist/templates/parser.js.map +0 -1
- package/dist/ui/aliases.js +0 -153
- package/dist/ui/aliases.js.map +0 -1
- package/dist/ui/changelog.js +0 -184
- package/dist/ui/changelog.js.map +0 -1
- package/dist/ui/command-registry.js +0 -168
- package/dist/ui/command-registry.js.map +0 -1
- package/dist/ui/flags.js +0 -94
- package/dist/ui/flags.js.map +0 -1
- package/dist/ui/index.js +0 -24
- package/dist/ui/index.js.map +0 -1
- package/dist/upgrade.js +0 -1148
- package/dist/upgrade.js.map +0 -1
- package/dist/validation/chain-validation.js +0 -146
- package/dist/validation/chain-validation.js.map +0 -1
- package/dist/validation/compliance.js +0 -155
- package/dist/validation/compliance.js.map +0 -1
- package/dist/validation/docs-sync.js +0 -212
- package/dist/validation/docs-sync.js.map +0 -1
- package/dist/validation/doctor/checks.js +0 -1069
- package/dist/validation/doctor/checks.js.map +0 -1
- package/dist/validation/doctor/index.js +0 -9
- package/dist/validation/doctor/index.js.map +0 -1
- package/dist/validation/doctor/project-cache.js +0 -160
- package/dist/validation/doctor/project-cache.js.map +0 -1
- package/dist/validation/doctor/utils.js +0 -155
- package/dist/validation/doctor/utils.js.map +0 -1
- package/dist/validation/engine.js +0 -914
- package/dist/validation/engine.js.map +0 -1
- package/dist/validation/gap-check.js +0 -175
- package/dist/validation/gap-check.js.map +0 -1
- package/dist/validation/index.js +0 -40
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/manifest.js +0 -237
- package/dist/validation/manifest.js.map +0 -1
- package/dist/validation/operation-gate-validators.js +0 -724
- package/dist/validation/operation-gate-validators.js.map +0 -1
- package/dist/validation/operation-verification-gates.js +0 -532
- package/dist/validation/operation-verification-gates.js.map +0 -1
- package/dist/validation/param-utils.js +0 -141
- package/dist/validation/param-utils.js.map +0 -1
- package/dist/validation/protocol-common.js +0 -300
- package/dist/validation/protocol-common.js.map +0 -1
- package/dist/validation/protocols/_shared.js +0 -82
- package/dist/validation/protocols/_shared.js.map +0 -1
- package/dist/validation/protocols/architecture-decision.js +0 -31
- package/dist/validation/protocols/architecture-decision.js.map +0 -1
- package/dist/validation/protocols/artifact-publish.js +0 -28
- package/dist/validation/protocols/artifact-publish.js.map +0 -1
- package/dist/validation/protocols/consensus.js +0 -41
- package/dist/validation/protocols/consensus.js.map +0 -1
- package/dist/validation/protocols/contribution.js +0 -27
- package/dist/validation/protocols/contribution.js.map +0 -1
- package/dist/validation/protocols/decomposition.js +0 -28
- package/dist/validation/protocols/decomposition.js.map +0 -1
- package/dist/validation/protocols/implementation.js +0 -24
- package/dist/validation/protocols/implementation.js.map +0 -1
- package/dist/validation/protocols/provenance.js +0 -29
- package/dist/validation/protocols/provenance.js.map +0 -1
- package/dist/validation/protocols/release.js +0 -29
- package/dist/validation/protocols/release.js.map +0 -1
- package/dist/validation/protocols/research.js +0 -24
- package/dist/validation/protocols/research.js.map +0 -1
- package/dist/validation/protocols/specification.js +0 -27
- package/dist/validation/protocols/specification.js.map +0 -1
- package/dist/validation/protocols/testing.js +0 -30
- package/dist/validation/protocols/testing.js.map +0 -1
- package/dist/validation/protocols/validation.js +0 -30
- package/dist/validation/protocols/validation.js.map +0 -1
- package/dist/validation/schema-integrity.js +0 -170
- package/dist/validation/schema-integrity.js.map +0 -1
- package/dist/validation/schema-validator.js +0 -176
- package/dist/validation/schema-validator.js.map +0 -1
- package/dist/validation/validate-ops.js +0 -937
- package/dist/validation/validate-ops.js.map +0 -1
- package/dist/validation/validation-rules.js +0 -226
- package/dist/validation/validation-rules.js.map +0 -1
- package/dist/validation/verification.js +0 -321
- package/dist/validation/verification.js.map +0 -1
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SQLite store for brain.db via drizzle-orm/node-sqlite + node:sqlite (DatabaseSync).
|
|
3
|
-
*
|
|
4
|
-
* Separate database from tasks.db for cognitive infrastructure (decisions,
|
|
5
|
-
* patterns, learnings). Follows the same singleton + WAL + migration pattern
|
|
6
|
-
* as sqlite.ts.
|
|
7
|
-
*
|
|
8
|
-
* @epic T5149
|
|
9
|
-
* @task T5128
|
|
10
|
-
*/
|
|
11
|
-
import { mkdirSync } from 'node:fs';
|
|
12
|
-
import { createRequire } from 'node:module';
|
|
13
|
-
import { dirname, join } from 'node:path';
|
|
14
|
-
import { fileURLToPath } from 'node:url';
|
|
15
|
-
import { drizzle } from 'drizzle-orm/node-sqlite';
|
|
16
|
-
import { getCleoDirAbsolute } from '../paths.js';
|
|
17
|
-
import * as brainSchema from './brain-schema.js';
|
|
18
|
-
import { createSafetyBackup, migrateWithRetry, reconcileJournal, tableExists, } from './migration-manager.js';
|
|
19
|
-
import { openNativeDatabase } from './sqlite.js';
|
|
20
|
-
const _require = createRequire(import.meta.url);
|
|
21
|
-
/** Database file name within .cleo/ directory. */
|
|
22
|
-
const DB_FILENAME = 'brain.db';
|
|
23
|
-
/** Schema version for newly created brain databases. Single source of truth. */
|
|
24
|
-
export const BRAIN_SCHEMA_VERSION = '1.0.0';
|
|
25
|
-
/** Singleton state for lazy initialization. */
|
|
26
|
-
let _db = null;
|
|
27
|
-
let _nativeDb = null;
|
|
28
|
-
let _dbPath = null;
|
|
29
|
-
/** Guard against concurrent initialization (async migration). */
|
|
30
|
-
let _initPromise = null;
|
|
31
|
-
/** Whether sqlite-vec extension loaded successfully. */
|
|
32
|
-
let _vecLoaded = false;
|
|
33
|
-
/**
|
|
34
|
-
* Get the path to the brain.db SQLite database file.
|
|
35
|
-
*/
|
|
36
|
-
export function getBrainDbPath(cwd) {
|
|
37
|
-
return join(getCleoDirAbsolute(cwd), DB_FILENAME);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Resolve the path to the drizzle-brain migrations folder.
|
|
41
|
-
* Works from both src/ (dev via tsx) and dist/ (compiled via esbuild bundle).
|
|
42
|
-
*
|
|
43
|
-
* - Source layout: __dirname = src/store/ → need ../../migrations/drizzle-brain
|
|
44
|
-
* - Bundled layout: __dirname = dist/ → need ../migrations/drizzle-brain
|
|
45
|
-
*/
|
|
46
|
-
export function resolveBrainMigrationsFolder() {
|
|
47
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
48
|
-
const __dirname = dirname(__filename);
|
|
49
|
-
const isBundled = __dirname.endsWith('/dist') || __dirname.endsWith('\\dist');
|
|
50
|
-
const pkgRoot = isBundled ? join(__dirname, '..') : join(__dirname, '..', '..');
|
|
51
|
-
return join(pkgRoot, 'migrations', 'drizzle-brain');
|
|
52
|
-
}
|
|
53
|
-
// tableExists — delegated to migration-manager.ts (T132)
|
|
54
|
-
/**
|
|
55
|
-
* Run drizzle migrations to create/update brain.db tables.
|
|
56
|
-
*
|
|
57
|
-
* Delegates to shared migration-manager.ts for journal reconciliation,
|
|
58
|
-
* retry logic, and safety backups. See T132 for consolidation rationale.
|
|
59
|
-
*
|
|
60
|
-
* @task T5128
|
|
61
|
-
* @task T132 - Unified migration system
|
|
62
|
-
*/
|
|
63
|
-
function runBrainMigrations(nativeDb, db) {
|
|
64
|
-
const migrationsFolder = resolveBrainMigrationsFolder();
|
|
65
|
-
// Safety backup before any migration work
|
|
66
|
-
if (tableExists(nativeDb, 'brain_decisions') && _dbPath) {
|
|
67
|
-
createSafetyBackup(_dbPath);
|
|
68
|
-
}
|
|
69
|
-
// Bootstrap baseline + reconcile stale journal entries
|
|
70
|
-
reconcileJournal(nativeDb, migrationsFolder, 'brain_decisions', 'brain');
|
|
71
|
-
// Run pending migrations with SQLITE_BUSY retry
|
|
72
|
-
migrateWithRetry(db, migrationsFolder);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Load the sqlite-vec extension into a native DatabaseSync instance.
|
|
76
|
-
* Returns true if the extension loaded successfully, false otherwise.
|
|
77
|
-
*
|
|
78
|
-
* The extension enables vec0 virtual tables for vector similarity search.
|
|
79
|
-
* Requires the database to be opened with allowExtension: true.
|
|
80
|
-
*
|
|
81
|
-
* @task T5157
|
|
82
|
-
*/
|
|
83
|
-
function loadBrainVecExtension(nativeDb) {
|
|
84
|
-
try {
|
|
85
|
-
const sqliteVec = _require('sqlite-vec');
|
|
86
|
-
sqliteVec.load(nativeDb);
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// sqlite-vec not available or failed to load — non-fatal
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Create the vec0 virtual table for brain embeddings.
|
|
96
|
-
* Called after migrations complete and sqlite-vec extension is loaded.
|
|
97
|
-
*
|
|
98
|
-
* The vec0 table is not managed by Drizzle (virtual tables are not
|
|
99
|
-
* supported by drizzle-orm's SQLite schema). Created via raw SQL.
|
|
100
|
-
*
|
|
101
|
-
* @task T5157
|
|
102
|
-
*/
|
|
103
|
-
function initializeBrainVec(nativeDb) {
|
|
104
|
-
nativeDb
|
|
105
|
-
.prepare('CREATE VIRTUAL TABLE IF NOT EXISTS brain_embeddings USING vec0(id TEXT PRIMARY KEY, embedding FLOAT[384])')
|
|
106
|
-
.run();
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Check whether the sqlite-vec extension is loaded for the current brain.db.
|
|
110
|
-
*/
|
|
111
|
-
export function isBrainVecLoaded() {
|
|
112
|
-
return _vecLoaded;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Initialize the brain.db SQLite database (lazy, singleton).
|
|
116
|
-
* Creates the database file and tables if they don't exist.
|
|
117
|
-
* Returns the drizzle ORM instance (async via sqlite-proxy).
|
|
118
|
-
*
|
|
119
|
-
* Uses a promise guard so concurrent callers wait for the same
|
|
120
|
-
* initialization to complete (migrations are async).
|
|
121
|
-
*/
|
|
122
|
-
export async function getBrainDb(cwd) {
|
|
123
|
-
const requestedPath = getBrainDbPath(cwd);
|
|
124
|
-
// If singleton exists but points to different path, reset it
|
|
125
|
-
if (_db && _dbPath !== requestedPath) {
|
|
126
|
-
resetBrainDbState();
|
|
127
|
-
}
|
|
128
|
-
if (_db)
|
|
129
|
-
return _db;
|
|
130
|
-
// If already initializing, wait for the in-flight init
|
|
131
|
-
if (_initPromise)
|
|
132
|
-
return _initPromise;
|
|
133
|
-
_initPromise = (async () => {
|
|
134
|
-
const dbPath = requestedPath;
|
|
135
|
-
_dbPath = dbPath;
|
|
136
|
-
// Ensure directory exists
|
|
137
|
-
mkdirSync(dirname(dbPath), { recursive: true });
|
|
138
|
-
// Open file-backed SQLite via node:sqlite with WAL mode.
|
|
139
|
-
// allowExtension: true enables sqlite-vec extension loading.
|
|
140
|
-
const nativeDb = openNativeDatabase(dbPath, { allowExtension: true });
|
|
141
|
-
_nativeDb = nativeDb;
|
|
142
|
-
// Load sqlite-vec extension for vector similarity search (T5157).
|
|
143
|
-
// Non-fatal if unavailable — vec0 tables simply won't be created.
|
|
144
|
-
_vecLoaded = loadBrainVecExtension(nativeDb);
|
|
145
|
-
// Create drizzle ORM wrapper via node-sqlite
|
|
146
|
-
const db = drizzle({ client: nativeDb, schema: brainSchema });
|
|
147
|
-
// Run drizzle migrations (creates/updates tables)
|
|
148
|
-
runBrainMigrations(nativeDb, db);
|
|
149
|
-
// Create vec0 virtual table for embeddings if extension is loaded (T5157).
|
|
150
|
-
// Must run after migrations so the schema is consistent.
|
|
151
|
-
if (_vecLoaded) {
|
|
152
|
-
initializeBrainVec(nativeDb);
|
|
153
|
-
}
|
|
154
|
-
// Seed schema version for new databases (no-op if already set)
|
|
155
|
-
nativeDb
|
|
156
|
-
.prepare(`INSERT OR IGNORE INTO brain_schema_meta (key, value) VALUES ('schemaVersion', '${BRAIN_SCHEMA_VERSION}')`)
|
|
157
|
-
.run();
|
|
158
|
-
// Set singleton only after migrations complete
|
|
159
|
-
_db = db;
|
|
160
|
-
return db;
|
|
161
|
-
})();
|
|
162
|
-
try {
|
|
163
|
-
return await _initPromise;
|
|
164
|
-
}
|
|
165
|
-
finally {
|
|
166
|
-
_initPromise = null;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Close the brain.db database connection and release resources.
|
|
171
|
-
*/
|
|
172
|
-
export function closeBrainDb() {
|
|
173
|
-
if (_nativeDb) {
|
|
174
|
-
try {
|
|
175
|
-
if (_nativeDb.isOpen) {
|
|
176
|
-
_nativeDb.close();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
catch {
|
|
180
|
-
// Ignore close errors
|
|
181
|
-
}
|
|
182
|
-
_nativeDb = null;
|
|
183
|
-
}
|
|
184
|
-
_db = null;
|
|
185
|
-
_dbPath = null;
|
|
186
|
-
_vecLoaded = false;
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Reset brain.db singleton state without saving.
|
|
190
|
-
* Used during tests or when database file is recreated.
|
|
191
|
-
* Safe to call multiple times.
|
|
192
|
-
*/
|
|
193
|
-
export function resetBrainDbState() {
|
|
194
|
-
if (_nativeDb) {
|
|
195
|
-
try {
|
|
196
|
-
if (_nativeDb.isOpen) {
|
|
197
|
-
_nativeDb.close();
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
catch {
|
|
201
|
-
// Ignore close errors
|
|
202
|
-
}
|
|
203
|
-
_nativeDb = null;
|
|
204
|
-
}
|
|
205
|
-
_db = null;
|
|
206
|
-
_dbPath = null;
|
|
207
|
-
_initPromise = null;
|
|
208
|
-
_vecLoaded = false;
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Get the underlying node:sqlite DatabaseSync instance for brain.db.
|
|
212
|
-
* Useful for direct PRAGMA calls or raw SQL operations.
|
|
213
|
-
* Returns null if the database hasn't been initialized.
|
|
214
|
-
*/
|
|
215
|
-
export function getBrainNativeDb() {
|
|
216
|
-
return _nativeDb;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Re-export brain schema for external use.
|
|
220
|
-
*/
|
|
221
|
-
export { brainSchema };
|
|
222
|
-
//# sourceMappingURL=brain-sqlite.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"brain-sqlite.js","sourceRoot":"","sources":["../../src/store/brain-sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/store/cache.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Index caching for O(1) label/phase/hierarchy lookups.
|
|
3
|
-
* Ported from lib/data/cache.sh
|
|
4
|
-
*
|
|
5
|
-
* @epic T4454
|
|
6
|
-
* @task T4530
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* In-memory cache for task indices with checksum-based staleness detection.
|
|
10
|
-
*/
|
|
11
|
-
export class TaskCache {
|
|
12
|
-
labelIndex = new Map();
|
|
13
|
-
phaseIndex = new Map();
|
|
14
|
-
parentIndex = new Map();
|
|
15
|
-
childrenIndex = new Map();
|
|
16
|
-
depthIndex = new Map();
|
|
17
|
-
checksum = '';
|
|
18
|
-
initialized = false;
|
|
19
|
-
/**
|
|
20
|
-
* Compute a checksum from task data for staleness detection.
|
|
21
|
-
*/
|
|
22
|
-
computeChecksum(tasks) {
|
|
23
|
-
return tasks
|
|
24
|
-
.map((t) => `${t.id}:${t.status}:${t.parentId ?? ''}:${t.phase ?? ''}:${(t.labels ?? []).join(',')}`)
|
|
25
|
-
.sort()
|
|
26
|
-
.join('|');
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Initialize or rebuild cache from tasks.
|
|
30
|
-
* Returns true if cache was rebuilt, false if already valid.
|
|
31
|
-
*/
|
|
32
|
-
init(tasks) {
|
|
33
|
-
const newChecksum = this.computeChecksum(tasks);
|
|
34
|
-
if (this.initialized && newChecksum === this.checksum) {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
this.buildLabelIndex(tasks);
|
|
38
|
-
this.buildPhaseIndex(tasks);
|
|
39
|
-
this.buildHierarchyIndex(tasks);
|
|
40
|
-
this.checksum = newChecksum;
|
|
41
|
-
this.initialized = true;
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
buildLabelIndex(tasks) {
|
|
45
|
-
this.labelIndex.clear();
|
|
46
|
-
for (const task of tasks) {
|
|
47
|
-
if (!task.labels?.length)
|
|
48
|
-
continue;
|
|
49
|
-
for (const label of task.labels) {
|
|
50
|
-
const existing = this.labelIndex.get(label) ?? [];
|
|
51
|
-
existing.push(task.id);
|
|
52
|
-
this.labelIndex.set(label, existing);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
buildPhaseIndex(tasks) {
|
|
57
|
-
this.phaseIndex.clear();
|
|
58
|
-
for (const task of tasks) {
|
|
59
|
-
if (!task.phase)
|
|
60
|
-
continue;
|
|
61
|
-
const existing = this.phaseIndex.get(task.phase) ?? [];
|
|
62
|
-
existing.push(task.id);
|
|
63
|
-
this.phaseIndex.set(task.phase, existing);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
buildHierarchyIndex(tasks) {
|
|
67
|
-
this.parentIndex.clear();
|
|
68
|
-
this.childrenIndex.clear();
|
|
69
|
-
this.depthIndex.clear();
|
|
70
|
-
const taskMap = new Map(tasks.map((t) => [t.id, t]));
|
|
71
|
-
for (const task of tasks) {
|
|
72
|
-
this.parentIndex.set(task.id, task.parentId ?? null);
|
|
73
|
-
if (task.parentId) {
|
|
74
|
-
const siblings = this.childrenIndex.get(task.parentId) ?? [];
|
|
75
|
-
siblings.push(task.id);
|
|
76
|
-
this.childrenIndex.set(task.parentId, siblings);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// Compute depths
|
|
80
|
-
for (const task of tasks) {
|
|
81
|
-
let depth = 0;
|
|
82
|
-
let current = task;
|
|
83
|
-
const visited = new Set();
|
|
84
|
-
while (current.parentId && !visited.has(current.parentId)) {
|
|
85
|
-
visited.add(current.parentId);
|
|
86
|
-
const parent = taskMap.get(current.parentId);
|
|
87
|
-
if (!parent)
|
|
88
|
-
break;
|
|
89
|
-
depth++;
|
|
90
|
-
current = parent;
|
|
91
|
-
}
|
|
92
|
-
this.depthIndex.set(task.id, depth);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/** Get task IDs by label. */
|
|
96
|
-
getTasksByLabel(label) {
|
|
97
|
-
return this.labelIndex.get(label) ?? [];
|
|
98
|
-
}
|
|
99
|
-
/** Get task IDs by phase. */
|
|
100
|
-
getTasksByPhase(phase) {
|
|
101
|
-
return this.phaseIndex.get(phase) ?? [];
|
|
102
|
-
}
|
|
103
|
-
/** Get all labels. */
|
|
104
|
-
getAllLabels() {
|
|
105
|
-
return [...this.labelIndex.keys()];
|
|
106
|
-
}
|
|
107
|
-
/** Get all phases. */
|
|
108
|
-
getAllPhases() {
|
|
109
|
-
return [...this.phaseIndex.keys()];
|
|
110
|
-
}
|
|
111
|
-
/** Get label count for a specific label. */
|
|
112
|
-
getLabelCount(label) {
|
|
113
|
-
return this.getTasksByLabel(label).length;
|
|
114
|
-
}
|
|
115
|
-
/** Get parent ID for a task. */
|
|
116
|
-
getParent(taskId) {
|
|
117
|
-
return this.parentIndex.get(taskId) ?? null;
|
|
118
|
-
}
|
|
119
|
-
/** Get children IDs for a task. */
|
|
120
|
-
getChildren(taskId) {
|
|
121
|
-
return this.childrenIndex.get(taskId) ?? [];
|
|
122
|
-
}
|
|
123
|
-
/** Get depth for a task. */
|
|
124
|
-
getDepth(taskId) {
|
|
125
|
-
return this.depthIndex.get(taskId) ?? 0;
|
|
126
|
-
}
|
|
127
|
-
/** Get child count. */
|
|
128
|
-
getChildCount(taskId) {
|
|
129
|
-
return this.getChildren(taskId).length;
|
|
130
|
-
}
|
|
131
|
-
/** Get root tasks (no parent). */
|
|
132
|
-
getRootTasks() {
|
|
133
|
-
return [...this.parentIndex.entries()]
|
|
134
|
-
.filter(([, parent]) => parent === null)
|
|
135
|
-
.map(([id]) => id);
|
|
136
|
-
}
|
|
137
|
-
/** Get leaf tasks (no children). */
|
|
138
|
-
getLeafTasks() {
|
|
139
|
-
const parentSet = new Set(this.childrenIndex.keys());
|
|
140
|
-
return [...this.parentIndex.keys()].filter((id) => !parentSet.has(id) || this.getChildCount(id) === 0);
|
|
141
|
-
}
|
|
142
|
-
/** Force invalidation and rebuild. */
|
|
143
|
-
invalidate() {
|
|
144
|
-
this.labelIndex.clear();
|
|
145
|
-
this.phaseIndex.clear();
|
|
146
|
-
this.parentIndex.clear();
|
|
147
|
-
this.childrenIndex.clear();
|
|
148
|
-
this.depthIndex.clear();
|
|
149
|
-
this.checksum = '';
|
|
150
|
-
this.initialized = false;
|
|
151
|
-
}
|
|
152
|
-
/** Get cache statistics. */
|
|
153
|
-
getStats() {
|
|
154
|
-
let maxDepth = 0;
|
|
155
|
-
for (const d of this.depthIndex.values()) {
|
|
156
|
-
if (d > maxDepth)
|
|
157
|
-
maxDepth = d;
|
|
158
|
-
}
|
|
159
|
-
return {
|
|
160
|
-
initialized: this.initialized,
|
|
161
|
-
labelCount: this.labelIndex.size,
|
|
162
|
-
phaseCount: this.phaseIndex.size,
|
|
163
|
-
taskCount: this.parentIndex.size,
|
|
164
|
-
maxDepth,
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=cache.js.map
|
package/dist/store/cache.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/store/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Drizzle ORM schema for WarpChain storage in tasks.db.
|
|
3
|
-
*
|
|
4
|
-
* Tables: warp_chains, warp_chain_instances
|
|
5
|
-
* Stores chain definitions and runtime instances bound to epics.
|
|
6
|
-
*
|
|
7
|
-
* @task T5403
|
|
8
|
-
*/
|
|
9
|
-
import { sql } from 'drizzle-orm';
|
|
10
|
-
import { index, integer, sqliteTable, text } from 'drizzle-orm/sqlite-core';
|
|
11
|
-
/** Chain instance status values. */
|
|
12
|
-
export const WARP_CHAIN_INSTANCE_STATUSES = [
|
|
13
|
-
'pending',
|
|
14
|
-
'active',
|
|
15
|
-
'completed',
|
|
16
|
-
'failed',
|
|
17
|
-
'cancelled',
|
|
18
|
-
];
|
|
19
|
-
// === WARP_CHAINS TABLE ===
|
|
20
|
-
/** Stored WarpChain definitions (serialized as JSON). */
|
|
21
|
-
export const warpChains = sqliteTable('warp_chains', {
|
|
22
|
-
id: text('id').primaryKey(),
|
|
23
|
-
name: text('name').notNull(),
|
|
24
|
-
version: text('version').notNull(),
|
|
25
|
-
description: text('description'),
|
|
26
|
-
definition: text('definition').notNull(), // JSON-serialized WarpChain
|
|
27
|
-
validated: integer('validated', { mode: 'boolean' }).default(false),
|
|
28
|
-
createdAt: text('created_at').default(sql `(datetime('now'))`),
|
|
29
|
-
updatedAt: text('updated_at').default(sql `(datetime('now'))`),
|
|
30
|
-
}, (table) => [index('idx_warp_chains_name').on(table.name)]);
|
|
31
|
-
// === WARP_CHAIN_INSTANCES TABLE ===
|
|
32
|
-
/** Runtime chain instances bound to epics. */
|
|
33
|
-
export const warpChainInstances = sqliteTable('warp_chain_instances', {
|
|
34
|
-
id: text('id').primaryKey(),
|
|
35
|
-
chainId: text('chain_id')
|
|
36
|
-
.notNull()
|
|
37
|
-
.references(() => warpChains.id, { onDelete: 'cascade' }),
|
|
38
|
-
epicId: text('epic_id').notNull(),
|
|
39
|
-
variables: text('variables'), // JSON
|
|
40
|
-
stageToTask: text('stage_to_task'), // JSON
|
|
41
|
-
status: text('status').notNull().default('pending'),
|
|
42
|
-
currentStage: text('current_stage'),
|
|
43
|
-
gateResults: text('gate_results'), // JSON array of GateResult
|
|
44
|
-
createdAt: text('created_at').default(sql `(datetime('now'))`),
|
|
45
|
-
updatedAt: text('updated_at').default(sql `(datetime('now'))`),
|
|
46
|
-
}, (table) => [
|
|
47
|
-
index('idx_warp_instances_chain').on(table.chainId),
|
|
48
|
-
index('idx_warp_instances_epic').on(table.epicId),
|
|
49
|
-
index('idx_warp_instances_status').on(table.status),
|
|
50
|
-
]);
|
|
51
|
-
//# sourceMappingURL=chain-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain-schema.js","sourceRoot":"","sources":["../../src/store/chain-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE5E,oCAAoC;AACpC,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,SAAS;IACT,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,WAAW;CACH,CAAC;AAEX,4BAA4B;AAE5B,yDAAyD;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CACnC,aAAa,EACb;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;IAChC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,4BAA4B;IACtE,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACnE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA,mBAAmB,CAAC;IAC7D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA,mBAAmB,CAAC;CAC9D,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAC1D,CAAC;AAEF,qCAAqC;AAErC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAC3C,sBAAsB,EACtB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;SACtB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC3D,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IACjC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO;IACrC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,OAAO;IAC3C,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACnD,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;IACnC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,2BAA2B;IAC9D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA,mBAAmB,CAAC;IAC7D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA,mBAAmB,CAAC;CAC9D,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IACnD,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IACjD,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CACpD,CACF,CAAC"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Idempotent cleanup of legacy and stray CLEO database files.
|
|
3
|
-
*
|
|
4
|
-
* Provides two independent cleanup functions:
|
|
5
|
-
*
|
|
6
|
-
* 1. {@link detectAndRemoveLegacyGlobalFiles} — removes stale files left at
|
|
7
|
-
* the global CLEO home directory (`getCleoHome()`) by pre-v2026.4.11
|
|
8
|
-
* naming migrations. Safe to call on repeat invocations — existence-checks
|
|
9
|
-
* guard every deletion.
|
|
10
|
-
*
|
|
11
|
-
* Files targeted (see ADR-036 §Decision/Global-Tier table):
|
|
12
|
-
* - workspace.db (pre-nexus naming relic)
|
|
13
|
-
* - workspace.db.bak-pre-rename (safety copy from a long-landed rename)
|
|
14
|
-
* - workspace.db-shm (SQLite shared-memory sidecar of workspace.db)
|
|
15
|
-
* - workspace.db-shm-wal (SQLite WAL sidecar of workspace.db)
|
|
16
|
-
* - nexus-pre-cleo.db.bak (pre-CLEO backup of nexus — migration complete)
|
|
17
|
-
*
|
|
18
|
-
* Live files (nexus.db, signaldock.db, machine-key, config.json, etc.) are
|
|
19
|
-
* NEVER touched. The function only acts on the explicit LEGACY_FILES list.
|
|
20
|
-
*
|
|
21
|
-
* 2. {@link detectAndRemoveStrayProjectNexus} — removes a stray
|
|
22
|
-
* `{projectRoot}/.cleo/nexus.db` that violates ADR-036's global-only
|
|
23
|
-
* nexus contract. Some pre-v2026.4.11 code path accidentally created a
|
|
24
|
-
* zero-byte nexus.db at project tier; this cleans it up on first run.
|
|
25
|
-
*
|
|
26
|
-
* @task T304
|
|
27
|
-
* @task T307
|
|
28
|
-
* @epic T299
|
|
29
|
-
* @adr ADR-036
|
|
30
|
-
* @why v2026.4.10 left workspace.db and pre-cleo backups at global tier;
|
|
31
|
-
* ADR-036 mandates their deletion to eliminate diagnostic confusion and
|
|
32
|
-
* false impressions of active legacy databases.
|
|
33
|
-
*/
|
|
34
|
-
import fs from 'node:fs';
|
|
35
|
-
import path from 'node:path';
|
|
36
|
-
import { getLogger } from '../logger.js';
|
|
37
|
-
import { getCleoHome } from '../paths.js';
|
|
38
|
-
// ---------------------------------------------------------------------------
|
|
39
|
-
// Constants
|
|
40
|
-
// ---------------------------------------------------------------------------
|
|
41
|
-
/**
|
|
42
|
-
* Exhaustive list of legacy filenames that MUST be removed from the global
|
|
43
|
-
* CLEO home directory. No other files are touched.
|
|
44
|
-
*
|
|
45
|
-
* @task T304
|
|
46
|
-
*/
|
|
47
|
-
const LEGACY_FILES = [
|
|
48
|
-
'workspace.db',
|
|
49
|
-
'workspace.db.bak-pre-rename',
|
|
50
|
-
'workspace.db-shm',
|
|
51
|
-
'workspace.db-shm-wal',
|
|
52
|
-
'nexus-pre-cleo.db.bak',
|
|
53
|
-
];
|
|
54
|
-
// ---------------------------------------------------------------------------
|
|
55
|
-
// Implementation
|
|
56
|
-
// ---------------------------------------------------------------------------
|
|
57
|
-
/**
|
|
58
|
-
* Detect and remove legacy global-tier files from the CLEO home directory.
|
|
59
|
-
*
|
|
60
|
-
* Idempotent: safe to call when some or all files are already absent. Each
|
|
61
|
-
* file is individually existence-checked before attempting deletion. Failures
|
|
62
|
-
* on individual files are captured in `errors` rather than thrown, so the
|
|
63
|
-
* caller receives a complete picture of what was (and was not) cleaned up.
|
|
64
|
-
*
|
|
65
|
-
* Logs each successful deletion at `info` level and each failure at `warn`
|
|
66
|
-
* level via the shared pino logger.
|
|
67
|
-
*
|
|
68
|
-
* @param cleoHomeOverride - Optional directory override for tests. When
|
|
69
|
-
* omitted the canonical `getCleoHome()` path is used. Prefer passing this
|
|
70
|
-
* parameter in test harnesses rather than mutating `CLEO_HOME` environment
|
|
71
|
-
* variables, as it avoids global state contamination between test runs.
|
|
72
|
-
* @returns A {@link LegacyCleanupResult} describing what was removed and any
|
|
73
|
-
* errors encountered.
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* ```typescript
|
|
77
|
-
* // Production usage (runs against real global home)
|
|
78
|
-
* const result = detectAndRemoveLegacyGlobalFiles();
|
|
79
|
-
* if (result.removed.length > 0) {
|
|
80
|
-
* // Legacy files were cleaned up
|
|
81
|
-
* }
|
|
82
|
-
*
|
|
83
|
-
* // Test usage (runs against tmp directory)
|
|
84
|
-
* const result = detectAndRemoveLegacyGlobalFiles('/tmp/fake-cleo-home');
|
|
85
|
-
* ```
|
|
86
|
-
*
|
|
87
|
-
* @task T304
|
|
88
|
-
* @epic T299
|
|
89
|
-
*/
|
|
90
|
-
export function detectAndRemoveLegacyGlobalFiles(cleoHomeOverride) {
|
|
91
|
-
const log = getLogger('cleanup-legacy');
|
|
92
|
-
const cleoHome = cleoHomeOverride ?? getCleoHome();
|
|
93
|
-
const removed = [];
|
|
94
|
-
const errors = [];
|
|
95
|
-
for (const fileName of LEGACY_FILES) {
|
|
96
|
-
const fullPath = path.join(cleoHome, fileName);
|
|
97
|
-
try {
|
|
98
|
-
if (fs.existsSync(fullPath)) {
|
|
99
|
-
fs.unlinkSync(fullPath);
|
|
100
|
-
removed.push(fileName);
|
|
101
|
-
log.info({ file: fullPath }, 'Removed legacy global file');
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
catch (err) {
|
|
105
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
106
|
-
errors.push({ file: fileName, error: message });
|
|
107
|
-
log.warn({ file: fullPath, error: message }, 'Failed to remove legacy global file');
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return { removed, errors };
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Detect and remove a stray project-tier `.cleo/nexus.db` file.
|
|
114
|
-
*
|
|
115
|
-
* ADR-036 declares nexus.db as **global-only** — it lives exclusively under
|
|
116
|
-
* `getCleoHome()` (e.g. `~/.local/share/cleo/nexus.db` on Linux). A
|
|
117
|
-
* zero-byte stray was discovered at `/mnt/projects/cleocode/.cleo/nexus.db`
|
|
118
|
-
* (created 2026-03-31), likely produced by an early `cleo init` / `cleo
|
|
119
|
-
* nexus init` invocation that ran before the canonical path was fully wired
|
|
120
|
-
* through `getNexusDbPath()`.
|
|
121
|
-
*
|
|
122
|
-
* This function is idempotent: calling it when no stray file exists is a
|
|
123
|
-
* no-op. It is designed to be called once per CLI startup (alongside
|
|
124
|
-
* {@link detectAndRemoveLegacyGlobalFiles}) so that users who upgrade to
|
|
125
|
-
* v2026.4.11 have the stray silently cleaned up on the first `cleo` run.
|
|
126
|
-
*
|
|
127
|
-
* @param projectRoot - Absolute path to the project root directory. When
|
|
128
|
-
* omitted the caller is responsible for supplying the current project
|
|
129
|
-
* root from `getProjectRoot()`. An override parameter is accepted here to
|
|
130
|
-
* keep tests hermetic (avoids reading live `process.cwd()` state).
|
|
131
|
-
* @returns A {@link StrayNexusCleanupResult} indicating whether a file was
|
|
132
|
-
* removed and the absolute path that was checked.
|
|
133
|
-
*
|
|
134
|
-
* @example
|
|
135
|
-
* ```typescript
|
|
136
|
-
* // Production usage
|
|
137
|
-
* import { getProjectRoot } from '../paths.js';
|
|
138
|
-
* const result = detectAndRemoveStrayProjectNexus(getProjectRoot());
|
|
139
|
-
* if (result.removed) {
|
|
140
|
-
* // Stray project-tier nexus.db has been cleaned up
|
|
141
|
-
* }
|
|
142
|
-
*
|
|
143
|
-
* // Test usage (hermetic)
|
|
144
|
-
* const result = detectAndRemoveStrayProjectNexus('/tmp/fake-project-root');
|
|
145
|
-
* ```
|
|
146
|
-
*
|
|
147
|
-
* @task T307
|
|
148
|
-
* @epic T299
|
|
149
|
-
* @adr ADR-036
|
|
150
|
-
* @why ADR-036 §Decision/Global-Tier: nexus.db is global-only. A stray
|
|
151
|
-
* project-tier copy was created by pre-v2026.4.11 code and must be removed
|
|
152
|
-
* to prevent diagnostic confusion and guard against future regressions.
|
|
153
|
-
*/
|
|
154
|
-
export function detectAndRemoveStrayProjectNexus(projectRoot) {
|
|
155
|
-
const log = getLogger('cleanup-legacy');
|
|
156
|
-
const strayPath = path.join(projectRoot, '.cleo', 'nexus.db');
|
|
157
|
-
if (fs.existsSync(strayPath)) {
|
|
158
|
-
try {
|
|
159
|
-
fs.unlinkSync(strayPath);
|
|
160
|
-
log.warn({ path: strayPath }, 'Removed stray project-tier nexus.db (violates ADR-036 global-only contract)');
|
|
161
|
-
return { removed: true, path: strayPath };
|
|
162
|
-
}
|
|
163
|
-
catch (err) {
|
|
164
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
165
|
-
log.warn({ path: strayPath, error: message }, 'Failed to remove stray project-tier nexus.db — manual deletion may be required');
|
|
166
|
-
return { removed: false, path: strayPath };
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return { removed: false, path: strayPath };
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=cleanup-legacy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup-legacy.js","sourceRoot":"","sources":["../../src/store/cleanup-legacy.ts"],"names":[],"mappings":"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"}
|