@cleocode/core 2026.4.12 → 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 +11 -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 +52 -2
- 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__/backup-crypto.test.ts +101 -0
- package/src/store/__tests__/backup-pack.test.ts +491 -0
- package/src/store/__tests__/backup-unpack.test.ts +298 -0
- package/src/store/__tests__/performance-safety.test.ts +11 -5
- package/src/store/__tests__/regenerators.test.ts +234 -0
- package/src/store/__tests__/restore-conflict-report.test.ts +274 -0
- package/src/store/__tests__/restore-json-merge.test.ts +521 -0
- package/src/store/__tests__/t310-readiness.test.ts +111 -0
- package/src/store/__tests__/t311-integration.test.ts +661 -0
- package/src/store/backup-crypto.ts +209 -0
- package/src/store/backup-pack.ts +739 -0
- package/src/store/backup-unpack.ts +583 -0
- package/src/store/migrate-signaldock-to-conduit.ts +14 -7
- package/src/store/regenerators.ts +243 -0
- package/src/store/restore-conflict-report.ts +317 -0
- package/src/store/restore-json-merge.ts +653 -0
- package/src/store/t310-readiness.ts +119 -0
- 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
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
* SQLite backup via VACUUM INTO with snapshot rotation.
|
|
3
3
|
*
|
|
4
4
|
* Produces self-contained, WAL-free copies of CLEO SQLite databases
|
|
5
|
-
* (tasks.db, brain.db at project tier; nexus.db at
|
|
6
|
-
* `.cleo/backups/sqlite/` (project) or
|
|
7
|
-
* (global) with a configurable rotation
|
|
8
|
-
* backup
|
|
5
|
+
* (tasks.db, brain.db, conduit.db at project tier; nexus.db, signaldock.db at
|
|
6
|
+
* global tier) into `.cleo/backups/sqlite/` (project) or
|
|
7
|
+
* `$XDG_DATA_HOME/cleo/backups/sqlite/` (global) with a configurable rotation
|
|
8
|
+
* limit. Also provides raw-file backup for the global-salt binary (not SQLite).
|
|
9
|
+
* All errors are swallowed — backup failure must never interrupt normal operation.
|
|
9
10
|
*
|
|
10
11
|
* @task T4873
|
|
11
12
|
* @task T5158 — extended to cover brain.db
|
|
12
13
|
* @task T306 — extended to cover global-tier nexus.db (epic T299)
|
|
14
|
+
* @task T369 — extended to cover conduit.db (project), signaldock.db (global),
|
|
15
|
+
* and global-salt raw-file backup (epic T310)
|
|
13
16
|
* @epic T4867
|
|
14
17
|
*/
|
|
15
18
|
/** Options accepted by {@link vacuumIntoBackup} and {@link vacuumIntoBackupAll}. */
|
|
@@ -96,12 +99,13 @@ export type BackupScope = 'project' | 'global';
|
|
|
96
99
|
* Non-fatal: errors from any individual step are surfaced via the return value
|
|
97
100
|
* but never thrown — a failed snapshot MUST NOT interrupt normal operation.
|
|
98
101
|
*
|
|
99
|
-
* @param dbName - Which global-tier DB to snapshot (`'nexus'
|
|
102
|
+
* @param dbName - Which global-tier DB to snapshot (`'nexus'` or `'signaldock'`)
|
|
100
103
|
* @param opts.rotation - Maximum retained snapshots per prefix (default 10)
|
|
101
104
|
* @param opts.cleoHomeOverride - Override `getCleoHome()` path (use in tests to target a tmp dir)
|
|
102
105
|
* @returns Object containing the new snapshot path and any rotated (deleted) file paths
|
|
103
106
|
*
|
|
104
107
|
* @task T306
|
|
108
|
+
* @task T369 — activated signaldock target (epic T310)
|
|
105
109
|
* @epic T299
|
|
106
110
|
* @why ADR-036 §Backup Mechanism requires VACUUM INTO rotation at the global tier;
|
|
107
111
|
* nexus.db has zero backup coverage prior to v2026.4.11.
|
|
@@ -142,4 +146,55 @@ export interface GlobalBackupEntry {
|
|
|
142
146
|
* @epic T299
|
|
143
147
|
*/
|
|
144
148
|
export declare function listGlobalSqliteBackups(prefix?: string, cleoHomeOverride?: string): GlobalBackupEntry[];
|
|
149
|
+
/**
|
|
150
|
+
* Creates a raw-file backup of the global-salt binary at
|
|
151
|
+
* `${getCleoHome()}/backups/global-salt-YYYYMMDD-HHmmss` with `0o600`
|
|
152
|
+
* permissions. Rotates to {@link MAX_SNAPSHOTS} (10) copies, deleting the
|
|
153
|
+
* oldest when the limit is reached.
|
|
154
|
+
*
|
|
155
|
+
* Non-fatal: errors are swallowed — salt backup failure must never block cleo.
|
|
156
|
+
* Returns empty strings and no rotated paths on failure.
|
|
157
|
+
*
|
|
158
|
+
* @param opts.cleoHomeOverride - Override `getCleoHome()` path (use in tests to target a tmp dir)
|
|
159
|
+
* @returns Object with the new snapshot path and any rotated (deleted) file paths
|
|
160
|
+
*
|
|
161
|
+
* @task T369
|
|
162
|
+
* @epic T310
|
|
163
|
+
* @why ADR-037 §5 — global-salt is security-critical; losing it invalidates
|
|
164
|
+
* all API keys. Backup enables recovery from accidental deletion.
|
|
165
|
+
*/
|
|
166
|
+
export declare function backupGlobalSalt(opts?: {
|
|
167
|
+
cleoHomeOverride?: string;
|
|
168
|
+
}): Promise<{
|
|
169
|
+
snapshotPath: string;
|
|
170
|
+
rotated: string[];
|
|
171
|
+
}>;
|
|
172
|
+
/**
|
|
173
|
+
* A single entry returned by {@link listGlobalSaltBackups}.
|
|
174
|
+
*
|
|
175
|
+
* @task T369
|
|
176
|
+
* @epic T310
|
|
177
|
+
*/
|
|
178
|
+
export interface GlobalSaltBackupEntry {
|
|
179
|
+
/** Backup filename, e.g. `global-salt-20260408-143022`. */
|
|
180
|
+
name: string;
|
|
181
|
+
/** Absolute path to the backup file. */
|
|
182
|
+
path: string;
|
|
183
|
+
/** File size in bytes (should be 32 for a valid global-salt). */
|
|
184
|
+
size: number;
|
|
185
|
+
/** Last-modified timestamp. */
|
|
186
|
+
mtime: Date;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* List global-salt backup files from `$XDG_DATA_HOME/cleo/backups/`, sorted
|
|
190
|
+
* newest-first by mtime.
|
|
191
|
+
*
|
|
192
|
+
* Returns an empty array when the backup directory does not exist.
|
|
193
|
+
*
|
|
194
|
+
* @param cleoHomeOverride - Override `getCleoHome()` path (use in tests to target a tmp dir)
|
|
195
|
+
*
|
|
196
|
+
* @task T369
|
|
197
|
+
* @epic T310
|
|
198
|
+
*/
|
|
199
|
+
export declare function listGlobalSaltBackups(cleoHomeOverride?: string): GlobalSaltBackupEntry[];
|
|
145
200
|
//# sourceMappingURL=sqlite-backup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-backup.d.ts","sourceRoot":"","sources":["../../src/store/sqlite-backup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sqlite-backup.d.ts","sourceRoot":"","sources":["../../src/store/sqlite-backup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA6GH,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAuCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB9E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjF;AA8BD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,CAAC,EAAE,MAAM,GACX,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,CAAC,EAAE,MAAM,GACX,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAMxE;AAQD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAyB/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,OAAO,GAAG,YAAY,EAC9B,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAsDtD;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,EAAE,IAAI,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,CAAC,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GACxB,iBAAiB,EAAE,CAkBrB;AAyDD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA2BvD;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,EAAE,IAAI,CAAC;CACb;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAgBxF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T310-readiness gate: detect conduit.db vs legacy signaldock.db at project tier.
|
|
3
|
+
*
|
|
4
|
+
* T311 backup/restore code paths reference `.cleo/conduit.db` (project tier) and
|
|
5
|
+
* `$XDG_DATA_HOME/cleo/signaldock.db` (global tier) per ADR-037. A project that
|
|
6
|
+
* has not yet been migrated (still has `.cleo/signaldock.db` without a
|
|
7
|
+
* `.cleo/conduit.db`) will confuse T311 export/import commands. This gate runs
|
|
8
|
+
* as a precondition on every T311 CLI verb.
|
|
9
|
+
*
|
|
10
|
+
* @task T342
|
|
11
|
+
* @epic T311
|
|
12
|
+
* @why T311 export/import references .cleo/conduit.db (project tier) and
|
|
13
|
+
* $XDG_DATA_HOME/cleo/signaldock.db (global tier) per ADR-037.
|
|
14
|
+
* If the current project is still on the pre-T310 topology, T311
|
|
15
|
+
* commands must surface a clear error telling the user to run a
|
|
16
|
+
* cleo command first to trigger migration.
|
|
17
|
+
* @what Throws T310MigrationRequiredError with instructions if legacy
|
|
18
|
+
* signaldock.db exists AND conduit.db does not.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Thrown by `assertT310Ready` when the current project is still on the
|
|
22
|
+
* pre-T310 topology: `.cleo/signaldock.db` is present but `.cleo/conduit.db`
|
|
23
|
+
* is absent. T311 commands cannot proceed until migration has run.
|
|
24
|
+
*
|
|
25
|
+
* @task T342
|
|
26
|
+
* @epic T311
|
|
27
|
+
*/
|
|
28
|
+
export declare class T310MigrationRequiredError extends Error {
|
|
29
|
+
readonly projectRoot: string;
|
|
30
|
+
/**
|
|
31
|
+
* @param projectRoot - Absolute path to the project root that needs migration.
|
|
32
|
+
*/
|
|
33
|
+
constructor(projectRoot: string);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Asserts the current project is on the post-T310 topology. Does nothing
|
|
37
|
+
* if conduit.db exists (migration already ran) OR if no legacy signaldock.db
|
|
38
|
+
* exists (fresh install — no migration needed).
|
|
39
|
+
*
|
|
40
|
+
* Throws when legacy signaldock.db is present AND conduit.db is absent,
|
|
41
|
+
* which indicates the project has not yet been migrated to the T310 topology
|
|
42
|
+
* expected by T311 backup/restore commands.
|
|
43
|
+
*
|
|
44
|
+
* @param projectRoot - Absolute path to the project root. Defaults to
|
|
45
|
+
* `getProjectRoot()` (walks ancestors for `.cleo/` sentinel).
|
|
46
|
+
* @throws {T310MigrationRequiredError} if legacy signaldock.db exists
|
|
47
|
+
* without conduit.db at the project tier.
|
|
48
|
+
*
|
|
49
|
+
* @task T342
|
|
50
|
+
* @epic T311
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // Precondition guard at the top of every T311 CLI verb handler:
|
|
55
|
+
* assertT310Ready();
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function assertT310Ready(projectRoot?: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Returns true if T311 commands can safely run on the current project.
|
|
61
|
+
*
|
|
62
|
+
* This is the non-throwing companion to `assertT310Ready`. Returns false
|
|
63
|
+
* only when the pre-T310 topology is detected (legacy signaldock.db exists
|
|
64
|
+
* without conduit.db). All other states — fresh installs, fully-migrated
|
|
65
|
+
* projects — return true.
|
|
66
|
+
*
|
|
67
|
+
* @param projectRoot - Absolute path to the project root. Defaults to
|
|
68
|
+
* `getProjectRoot()` (walks ancestors for `.cleo/` sentinel).
|
|
69
|
+
* @returns `true` if the project is on the post-T310 topology or is a fresh
|
|
70
|
+
* install; `false` if migration is required.
|
|
71
|
+
*
|
|
72
|
+
* @task T342
|
|
73
|
+
* @epic T311
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* if (!isT310Ready()) {
|
|
78
|
+
* console.error('Run `cleo version` to trigger T310 migration first.');
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function isT310Ready(projectRoot?: string): boolean;
|
|
83
|
+
//# sourceMappingURL=t310-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"t310-readiness.d.ts","sourceRoot":"","sources":["../../src/store/t310-readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH;;;;;;;GAOG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;aAIvB,WAAW,EAAE,MAAM;IAH/C;;OAEG;gBACyB,WAAW,EAAE,MAAM;CAQhD;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ1D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAQzD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/core",
|
|
3
|
-
"version": "2026.4.
|
|
3
|
+
"version": "2026.4.14",
|
|
4
4
|
"description": "CLEO core business logic kernel — tasks, sessions, memory, orchestration, lifecycle, with bundled SQLite store",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@
|
|
26
|
+
"@huggingface/transformers": "^4.0.1",
|
|
27
27
|
"ajv": "^8.18.0",
|
|
28
28
|
"ajv-formats": "^3.0.1",
|
|
29
29
|
"drizzle-orm": "1.0.0-beta.19-d95b7a4",
|
|
@@ -32,15 +32,16 @@
|
|
|
32
32
|
"pino": "^10.3.1",
|
|
33
33
|
"pino-roll": "^4.0.0",
|
|
34
34
|
"proper-lockfile": "^4.1.2",
|
|
35
|
+
"tar": "^7.4.3",
|
|
35
36
|
"write-file-atomic": "^6.0.0",
|
|
36
|
-
"yaml": "^2.8.
|
|
37
|
+
"yaml": "^2.8.3",
|
|
37
38
|
"zod": "^3.25.76",
|
|
38
|
-
"@cleocode/
|
|
39
|
-
"@cleocode/
|
|
40
|
-
"@cleocode/
|
|
41
|
-
"@cleocode/caamp": "2026.4.
|
|
42
|
-
"@cleocode/
|
|
43
|
-
"@cleocode/skills": "2026.4.
|
|
39
|
+
"@cleocode/agents": "2026.4.14",
|
|
40
|
+
"@cleocode/contracts": "2026.4.14",
|
|
41
|
+
"@cleocode/lafs": "2026.4.14",
|
|
42
|
+
"@cleocode/caamp": "2026.4.14",
|
|
43
|
+
"@cleocode/adapters": "2026.4.14",
|
|
44
|
+
"@cleocode/skills": "2026.4.14"
|
|
44
45
|
},
|
|
45
46
|
"optionalDependencies": {
|
|
46
47
|
"tree-sitter-c": "^0.24.1",
|
|
@@ -70,6 +71,7 @@
|
|
|
70
71
|
],
|
|
71
72
|
"devDependencies": {
|
|
72
73
|
"@types/proper-lockfile": "^4.1.4",
|
|
74
|
+
"@types/tar": "^6.1.13",
|
|
73
75
|
"@types/write-file-atomic": "^4.0.3"
|
|
74
76
|
},
|
|
75
77
|
"repository": {
|
|
@@ -172,20 +172,22 @@ describe('Exit Code Parity', () => {
|
|
|
172
172
|
// LAFS Envelope Format Parity
|
|
173
173
|
// ============================================================
|
|
174
174
|
|
|
175
|
-
describe('
|
|
176
|
-
it('success envelope
|
|
175
|
+
describe('Canonical CLI Envelope Format (ADR-039)', () => {
|
|
176
|
+
it('success envelope uses canonical CLI shape { success, data, meta }', () => {
|
|
177
177
|
const result = formatSuccess({ task: { id: 'T001', title: 'Test' } });
|
|
178
178
|
const parsed = JSON.parse(result);
|
|
179
179
|
|
|
180
|
-
//
|
|
181
|
-
expect(parsed.$schema).
|
|
182
|
-
expect(parsed._meta).
|
|
180
|
+
// Canonical CLI envelope (ADR-039): { success, data, meta } — no $schema, no _meta, no result.
|
|
181
|
+
expect(parsed.$schema).toBeUndefined();
|
|
182
|
+
expect(parsed._meta).toBeUndefined();
|
|
183
|
+
expect(parsed.result).toBeUndefined();
|
|
184
|
+
expect(parsed.meta).toBeDefined();
|
|
183
185
|
expect(parsed.success).toBe(true);
|
|
184
|
-
expect(parsed.
|
|
185
|
-
expect(parsed.
|
|
186
|
+
expect(parsed.data).toBeDefined();
|
|
187
|
+
expect(parsed.data.task).toBeDefined();
|
|
186
188
|
});
|
|
187
189
|
|
|
188
|
-
it('error envelope
|
|
190
|
+
it('error envelope uses canonical CLI shape { success, error, meta }', () => {
|
|
189
191
|
const err = new CleoError(ExitCode.NOT_FOUND, 'Task T999 not found', {
|
|
190
192
|
fix: 'Use cleo list to find tasks',
|
|
191
193
|
alternatives: [{ action: 'Search', command: 'cleo find query' }],
|
|
@@ -193,9 +195,11 @@ describe('LAFS Envelope Format', () => {
|
|
|
193
195
|
const result = formatError(err);
|
|
194
196
|
const parsed = JSON.parse(result);
|
|
195
197
|
|
|
196
|
-
//
|
|
197
|
-
expect(parsed.$schema).
|
|
198
|
-
expect(parsed._meta).
|
|
198
|
+
// Canonical CLI envelope (ADR-039): { success: false, error, meta } — no $schema, no _meta, no result.
|
|
199
|
+
expect(parsed.$schema).toBeUndefined();
|
|
200
|
+
expect(parsed._meta).toBeUndefined();
|
|
201
|
+
expect(parsed.result).toBeUndefined();
|
|
202
|
+
expect(parsed.meta).toBeDefined();
|
|
199
203
|
expect(parsed.success).toBe(false);
|
|
200
204
|
expect(parsed.error).toBeDefined();
|
|
201
205
|
expect(parsed.error.code).toMatch(/^E_CLEO_NOT_FOUND/);
|
|
@@ -204,7 +208,7 @@ describe('LAFS Envelope Format', () => {
|
|
|
204
208
|
expect(parsed.error.details.alternatives).toHaveLength(1);
|
|
205
209
|
});
|
|
206
210
|
|
|
207
|
-
it('CleoError.toJSON matches
|
|
211
|
+
it('CleoError.toJSON matches legacy error shape', () => {
|
|
208
212
|
const err = new CleoError(ExitCode.VALIDATION_ERROR, 'Bad input');
|
|
209
213
|
const json = err.toJSON();
|
|
210
214
|
expect(json.success).toBe(false);
|
|
@@ -212,11 +216,12 @@ describe('LAFS Envelope Format', () => {
|
|
|
212
216
|
expect((json.error as Record<string, unknown>).name).toBe('VALIDATION_ERROR');
|
|
213
217
|
});
|
|
214
218
|
|
|
215
|
-
it('success with noChange flag', () => {
|
|
219
|
+
it('success with noChange flag attaches message to meta.message', () => {
|
|
216
220
|
const result = formatSuccess(null, 'No changes needed');
|
|
217
221
|
const parsed = JSON.parse(result);
|
|
218
222
|
expect(parsed.success).toBe(true);
|
|
219
|
-
|
|
223
|
+
// ADR-039: message is now carried in meta.message, not at the top level.
|
|
224
|
+
expect(parsed.meta.message).toBe('No changes needed');
|
|
220
225
|
});
|
|
221
226
|
});
|
|
222
227
|
|
|
@@ -98,8 +98,8 @@ describe('--human output verification (T4696)', () => {
|
|
|
98
98
|
});
|
|
99
99
|
});
|
|
100
100
|
|
|
101
|
-
describe('
|
|
102
|
-
it('formatSuccess produces
|
|
101
|
+
describe('Canonical CLI envelopes are valid regardless of format flags (ADR-039)', () => {
|
|
102
|
+
it('formatSuccess produces canonical envelope for show operation', () => {
|
|
103
103
|
const json = formatSuccess(
|
|
104
104
|
{
|
|
105
105
|
task: { id: 'T4663', title: 'Wave 8: Full System Integration', status: 'active' },
|
|
@@ -110,12 +110,14 @@ describe('--human output verification (T4696)', () => {
|
|
|
110
110
|
const parsed = JSON.parse(json);
|
|
111
111
|
|
|
112
112
|
expect(parsed.success).toBe(true);
|
|
113
|
-
|
|
114
|
-
expect(parsed
|
|
115
|
-
expect(parsed.
|
|
113
|
+
// ADR-039: canonical shape drops $schema and _meta; payload lives in data.
|
|
114
|
+
expect(parsed.$schema).toBeUndefined();
|
|
115
|
+
expect(parsed._meta).toBeUndefined();
|
|
116
|
+
expect(parsed.meta).toBeDefined();
|
|
117
|
+
expect(parsed.data.task.id).toBe('T4663');
|
|
116
118
|
});
|
|
117
119
|
|
|
118
|
-
it('formatSuccess produces
|
|
120
|
+
it('formatSuccess produces canonical envelope for list operation', () => {
|
|
119
121
|
const json = formatSuccess(
|
|
120
122
|
{
|
|
121
123
|
tasks: [
|
|
@@ -130,11 +132,11 @@ describe('--human output verification (T4696)', () => {
|
|
|
130
132
|
const parsed = JSON.parse(json);
|
|
131
133
|
|
|
132
134
|
expect(parsed.success).toBe(true);
|
|
133
|
-
expect(parsed.
|
|
134
|
-
expect(parsed.
|
|
135
|
+
expect(parsed.data.tasks).toHaveLength(2);
|
|
136
|
+
expect(parsed.data.total).toBe(2);
|
|
135
137
|
});
|
|
136
138
|
|
|
137
|
-
it('formatSuccess produces
|
|
139
|
+
it('formatSuccess produces canonical envelope for dash operation', () => {
|
|
138
140
|
const json = formatSuccess(
|
|
139
141
|
{
|
|
140
142
|
project: { name: 'cleo' },
|
|
@@ -146,8 +148,8 @@ describe('--human output verification (T4696)', () => {
|
|
|
146
148
|
const parsed = JSON.parse(json);
|
|
147
149
|
|
|
148
150
|
expect(parsed.success).toBe(true);
|
|
149
|
-
expect(parsed.
|
|
150
|
-
expect(parsed.
|
|
151
|
+
expect(parsed.data.project.name).toBe('cleo');
|
|
152
|
+
expect(parsed.data.stats.total).toBe(50);
|
|
151
153
|
});
|
|
152
154
|
|
|
153
155
|
it('formatError produces valid JSON with fix suggestions', () => {
|
package/src/init.ts
CHANGED
|
@@ -521,7 +521,14 @@ export async function updateDocs(): Promise<InitResult> {
|
|
|
521
521
|
*/
|
|
522
522
|
export async function initProject(opts: InitOptions = {}): Promise<InitResult> {
|
|
523
523
|
const cleoDir = getCleoDirAbsolute();
|
|
524
|
-
|
|
524
|
+
// `cleo init` CREATES the project root, so we cannot call getProjectRoot()
|
|
525
|
+
// here — that walks up looking for an existing `.cleo/` sentinel and throws
|
|
526
|
+
// `E_NOT_FOUND` when none is present (the whole point of `init` is that
|
|
527
|
+
// none is present yet). `cleoDir` is `<cwd>/.cleo` by default, so its
|
|
528
|
+
// parent directory is the project root. This also respects an absolute
|
|
529
|
+
// `CLEO_DIR` env var used by the init-e2e test suite to pin the target
|
|
530
|
+
// directory.
|
|
531
|
+
const projRoot = dirname(cleoDir);
|
|
525
532
|
|
|
526
533
|
// Guard: fail if project already initialized (unless --force)
|
|
527
534
|
const alreadyInitialized =
|
|
@@ -586,16 +593,19 @@ export async function initProject(opts: InitOptions = {}): Promise<InitResult> {
|
|
|
586
593
|
created.push(`brain.db (deferred: ${err instanceof Error ? err.message : String(err)})`);
|
|
587
594
|
}
|
|
588
595
|
|
|
589
|
-
// Initialize
|
|
596
|
+
// Initialize conduit.db for project-tier agent messaging infrastructure.
|
|
597
|
+
// T310 (v2026.4.12) moved project-tier messaging from signaldock.db to
|
|
598
|
+
// conduit.db; global agent identity continues to live in the global
|
|
599
|
+
// signaldock.db, which the CLI startup sequence ensures separately.
|
|
590
600
|
try {
|
|
591
|
-
const {
|
|
592
|
-
const
|
|
593
|
-
if (
|
|
594
|
-
created.push('
|
|
601
|
+
const { ensureConduitDb } = await import('./store/conduit-sqlite.js');
|
|
602
|
+
const cdResult = ensureConduitDb(projRoot);
|
|
603
|
+
if (cdResult.action === 'created') {
|
|
604
|
+
created.push('conduit.db');
|
|
595
605
|
}
|
|
596
606
|
} catch (err) {
|
|
597
|
-
// Non-fatal —
|
|
598
|
-
created.push(`
|
|
607
|
+
// Non-fatal — conduit.db will be created on first agent operation
|
|
608
|
+
created.push(`conduit.db (deferred: ${err instanceof Error ? err.message : String(err)})`);
|
|
599
609
|
}
|
|
600
610
|
|
|
601
611
|
// T4681: Create .cleo/.gitignore (respect force flag)
|
package/src/internal.ts
CHANGED
|
@@ -410,6 +410,9 @@ export { listStickies, purgeSticky } from './sticky/index.js';
|
|
|
410
410
|
export type { CreateStickyParams, ListStickiesParams, StickyNote } from './sticky/types.js';
|
|
411
411
|
// Store
|
|
412
412
|
export { createBackup, listBackups, restoreFromBackup } from './store/backup.js';
|
|
413
|
+
// Backup portability — bundle packer (T311 / T347)
|
|
414
|
+
export type { PackBundleInput, PackBundleResult } from './store/backup-pack.js';
|
|
415
|
+
export { packBundle } from './store/backup-pack.js';
|
|
413
416
|
export { getBrainDb, getBrainNativeDb } from './store/brain-sqlite.js';
|
|
414
417
|
export type { LegacyCleanupResult, StrayNexusCleanupResult } from './store/cleanup-legacy.js';
|
|
415
418
|
export {
|
|
@@ -442,7 +445,11 @@ export {
|
|
|
442
445
|
SIGNALDOCK_SCHEMA_VERSION,
|
|
443
446
|
} from './store/signaldock-sqlite.js';
|
|
444
447
|
export { getDb, getNativeDb } from './store/sqlite.js';
|
|
445
|
-
export type {
|
|
448
|
+
export type {
|
|
449
|
+
BackupScope,
|
|
450
|
+
GlobalBackupEntry,
|
|
451
|
+
GlobalSaltBackupEntry,
|
|
452
|
+
} from './store/sqlite-backup.js';
|
|
446
453
|
export {
|
|
447
454
|
backupGlobalSalt,
|
|
448
455
|
listBrainBackups,
|
|
@@ -696,11 +703,51 @@ export { readSnapshot } from './snapshot/index.js';
|
|
|
696
703
|
export { addSticky } from './sticky/create.js';
|
|
697
704
|
export { getSticky } from './sticky/index.js';
|
|
698
705
|
|
|
706
|
+
// Store — backup crypto (T363)
|
|
707
|
+
export { decryptBundle, encryptBundle, isEncryptedBundle } from './store/backup-crypto.js';
|
|
708
|
+
|
|
699
709
|
// Store (additional)
|
|
700
710
|
export { resolveProjectRoot } from './store/file-utils.js';
|
|
701
711
|
export { TASK_PRIORITIES } from './store/tasks-schema.js';
|
|
702
712
|
// System (additional)
|
|
703
713
|
export type { MigrateResult } from './system/index.js';
|
|
714
|
+
|
|
715
|
+
// ---------------------------------------------------------------------------
|
|
716
|
+
// T311 Backup portability — unpack + verify + A/B restore (T350, T352, T354, T357)
|
|
717
|
+
// ---------------------------------------------------------------------------
|
|
718
|
+
|
|
719
|
+
// Unpack + verify (T350)
|
|
720
|
+
export type {
|
|
721
|
+
SchemaCompatWarning as BundleSchemaCompatWarning,
|
|
722
|
+
UnpackBundleInput,
|
|
723
|
+
UnpackBundleResult,
|
|
724
|
+
} from './store/backup-unpack.js';
|
|
725
|
+
export { BundleError, cleanupStaging, unpackBundle } from './store/backup-unpack.js';
|
|
726
|
+
// Dry-run JSON file generators (T352)
|
|
727
|
+
export type { RegeneratedFile } from './store/regenerators.js';
|
|
728
|
+
export {
|
|
729
|
+
regenerateAllJson,
|
|
730
|
+
regenerateConfigJson,
|
|
731
|
+
regenerateProjectContextJson,
|
|
732
|
+
regenerateProjectInfoJson,
|
|
733
|
+
} from './store/regenerators.js';
|
|
734
|
+
// Conflict report formatter (T357)
|
|
735
|
+
export type {
|
|
736
|
+
BuildConflictReportInput,
|
|
737
|
+
ReauthWarning,
|
|
738
|
+
SchemaCompatWarning as RestoreSchemaCompatWarning,
|
|
739
|
+
} from './store/restore-conflict-report.js';
|
|
740
|
+
export { buildConflictReport, writeConflictReport } from './store/restore-conflict-report.js';
|
|
741
|
+
// A/B regenerate-and-compare engine (T354)
|
|
742
|
+
export type {
|
|
743
|
+
FieldCategory,
|
|
744
|
+
FieldClassification,
|
|
745
|
+
FilenameForRestore,
|
|
746
|
+
JsonRestoreReport,
|
|
747
|
+
RegenerateAndCompareInput,
|
|
748
|
+
Resolution,
|
|
749
|
+
} from './store/restore-json-merge.js';
|
|
750
|
+
export { regenerateAndCompare, regenerateAndCompareAll } from './store/restore-json-merge.js';
|
|
704
751
|
// Tasks (additional — stats)
|
|
705
752
|
export { coreTaskStats } from './tasks/task-ops.js';
|
|
706
753
|
|
|
@@ -867,11 +914,14 @@ export { checkRootGitignore } from './validation/doctor/checks.js';
|
|
|
867
914
|
// ---------------------------------------------------------------------------
|
|
868
915
|
|
|
869
916
|
// Conduit DB lifecycle — ensureConduitDb is called at every CLI startup (step 3)
|
|
870
|
-
|
|
917
|
+
// ProjectAgentRef lives in @cleocode/contracts; conduit-sqlite.ts only imports it.
|
|
918
|
+
// We re-export from the canonical source here to keep the internal barrel stable.
|
|
919
|
+
export type { ProjectAgentRef } from '@cleocode/contracts';
|
|
871
920
|
export {
|
|
872
921
|
CONDUIT_DB_FILENAME,
|
|
873
922
|
CONDUIT_SCHEMA_VERSION,
|
|
874
923
|
checkConduitDbHealth,
|
|
924
|
+
closeConduitDb,
|
|
875
925
|
ensureConduitDb,
|
|
876
926
|
getConduitDbPath,
|
|
877
927
|
getConduitNativeDb,
|
|
@@ -69,8 +69,8 @@ vi.mock('../../store/data-accessor.js', () => ({
|
|
|
69
69
|
}),
|
|
70
70
|
}));
|
|
71
71
|
|
|
72
|
-
// Mock @
|
|
73
|
-
vi.mock('@
|
|
72
|
+
// Mock @huggingface/transformers to prevent model downloads in tests
|
|
73
|
+
vi.mock('@huggingface/transformers', () => ({
|
|
74
74
|
pipeline: vi
|
|
75
75
|
.fn()
|
|
76
76
|
.mockResolvedValue(vi.fn().mockResolvedValue({ data: new Float32Array(384).fill(0.1) })),
|
|
@@ -72,7 +72,7 @@ export function isEmbeddingAvailable(): boolean {
|
|
|
72
72
|
* setEmbeddingProvider(). Should be called once at startup when
|
|
73
73
|
* `brain.embedding.enabled` is true.
|
|
74
74
|
*
|
|
75
|
-
* Uses dynamic import to avoid loading the heavy @
|
|
75
|
+
* Uses dynamic import to avoid loading the heavy @huggingface/transformers
|
|
76
76
|
* bundle unless embedding is actually requested.
|
|
77
77
|
*
|
|
78
78
|
* @task T136 @epic T134
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Local embedding provider using @
|
|
2
|
+
* Local embedding provider using @huggingface/transformers (transformers.js v4).
|
|
3
3
|
*
|
|
4
4
|
* Implements the EmbeddingProvider interface for brain memory vector search.
|
|
5
5
|
* Uses all-MiniLM-L6-v2 (22MB, 384 dimensions) — matches the brain_embeddings
|
|
@@ -9,7 +9,12 @@
|
|
|
9
9
|
* @epic T134
|
|
10
10
|
* @task T136
|
|
11
11
|
* @why Ship vector search out-of-the-box without external API keys
|
|
12
|
-
* @what Local embedding provider using @
|
|
12
|
+
* @what Local embedding provider using @huggingface/transformers all-MiniLM-L6-v2
|
|
13
|
+
* @remarks Migrated from @xenova/transformers (v2) to @huggingface/transformers
|
|
14
|
+
* (v4) — the upstream rename, same author. v4 drops the deprecated
|
|
15
|
+
* prebuild-install transitive (via sharp@0.34+) and ships with newer
|
|
16
|
+
* onnxruntime. Public API (`pipeline`, `FeatureExtractionPipeline`) is
|
|
17
|
+
* unchanged; Xenova-hosted models still resolve by their original names.
|
|
13
18
|
*/
|
|
14
19
|
|
|
15
20
|
import type { EmbeddingProvider } from './brain-embedding.js';
|
|
@@ -19,7 +24,7 @@ import { EMBEDDING_DIMENSIONS } from './brain-embedding.js';
|
|
|
19
24
|
const MODEL_NAME = 'Xenova/all-MiniLM-L6-v2';
|
|
20
25
|
|
|
21
26
|
/** Pipeline singleton — initialized lazily on first call. */
|
|
22
|
-
let _pipeline: import('@
|
|
27
|
+
let _pipeline: import('@huggingface/transformers').FeatureExtractionPipeline | null = null;
|
|
23
28
|
|
|
24
29
|
/** Whether the pipeline has been successfully initialized. */
|
|
25
30
|
let _ready = false;
|
|
@@ -31,13 +36,13 @@ let _ready = false;
|
|
|
31
36
|
async function loadPipeline(): Promise<void> {
|
|
32
37
|
if (_ready) return;
|
|
33
38
|
// Dynamic import — only resolves when embedding is explicitly enabled
|
|
34
|
-
const { pipeline } = await import('@
|
|
39
|
+
const { pipeline } = await import('@huggingface/transformers');
|
|
35
40
|
_pipeline = await pipeline('feature-extraction', MODEL_NAME);
|
|
36
41
|
_ready = true;
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
/**
|
|
40
|
-
* Local embedding provider backed by @
|
|
45
|
+
* Local embedding provider backed by @huggingface/transformers.
|
|
41
46
|
*
|
|
42
47
|
* Produces 384-dimension Float32Array vectors compatible with the
|
|
43
48
|
* brain_embeddings vec0 table. The model is downloaded on first use
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @epic T134
|
|
14
14
|
* @task T137
|
|
15
|
-
* @why Prevent @
|
|
15
|
+
* @why Prevent @huggingface/transformers model inference from blocking the main thread
|
|
16
16
|
* @what Worker thread script for async embedding generation
|
|
17
17
|
*/
|
|
18
18
|
|
|
@@ -217,13 +217,28 @@ describe('toSkillSummary', () => {
|
|
|
217
217
|
|
|
218
218
|
describe('getSkillSearchPaths', () => {
|
|
219
219
|
it('should return ordered search paths', () => {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
//
|
|
223
|
-
|
|
224
|
-
//
|
|
225
|
-
|
|
226
|
-
|
|
220
|
+
// Pin the project root to the isolated test dir via CLEO_ROOT (the
|
|
221
|
+
// escape hatch documented in paths.ts). Without this, the test
|
|
222
|
+
// depends on the worker process cwd happening to live inside a
|
|
223
|
+
// CLEO project (true locally when running from the monorepo, false
|
|
224
|
+
// on CI where the checkout has no `.cleo/` sentinel).
|
|
225
|
+
const savedRoot = process.env['CLEO_ROOT'];
|
|
226
|
+
process.env['CLEO_ROOT'] = testDir;
|
|
227
|
+
try {
|
|
228
|
+
const paths = getSkillSearchPaths(testDir);
|
|
229
|
+
|
|
230
|
+
// Returns paths that exist on disk; may be 0 or more depending on environment
|
|
231
|
+
expect(Array.isArray(paths)).toBe(true);
|
|
232
|
+
// Should be in priority order
|
|
233
|
+
for (let i = 1; i < paths.length; i++) {
|
|
234
|
+
expect(paths[i].priority).toBeGreaterThanOrEqual(paths[i - 1].priority);
|
|
235
|
+
}
|
|
236
|
+
} finally {
|
|
237
|
+
if (savedRoot === undefined) {
|
|
238
|
+
delete process.env['CLEO_ROOT'];
|
|
239
|
+
} else {
|
|
240
|
+
process.env['CLEO_ROOT'] = savedRoot;
|
|
241
|
+
}
|
|
227
242
|
}
|
|
228
243
|
});
|
|
229
244
|
});
|