@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-hooks.js","sourceRoot":"","sources":["../../../src/hooks/handlers/agent-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Compaction Hook Handlers
|
|
3
|
-
*
|
|
4
|
-
* Captures PreCompact and PostCompact events to BRAIN so that agents
|
|
5
|
-
* can later observe when context compactions occurred and what state
|
|
6
|
-
* preceded them. This is especially useful for long sessions where
|
|
7
|
-
* context is compacted multiple times.
|
|
8
|
-
*
|
|
9
|
-
* PreCompact saves a session context snapshot before compaction begins.
|
|
10
|
-
* PostCompact records that compaction occurred and the resulting token counts.
|
|
11
|
-
*
|
|
12
|
-
* Gated behind brain.autoCapture config. Never throws — all errors are
|
|
13
|
-
* swallowed so brain capture never blocks context compaction.
|
|
14
|
-
*
|
|
15
|
-
* Auto-registers on module load.
|
|
16
|
-
*
|
|
17
|
-
* @task T166
|
|
18
|
-
* @epic T134
|
|
19
|
-
*/
|
|
20
|
-
import { hooks } from '../registry.js';
|
|
21
|
-
import { isAutoCaptureEnabled, isMissingBrainSchemaError } from './handler-helpers.js';
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
// Handlers
|
|
24
|
-
// ---------------------------------------------------------------------------
|
|
25
|
-
/**
|
|
26
|
-
* Handle PreCompact — snapshot current session memory context to BRAIN.
|
|
27
|
-
*
|
|
28
|
-
* Fires immediately before context compaction begins. Records the token
|
|
29
|
-
* count and compaction reason so the brain retains context about what
|
|
30
|
-
* was in scope before compaction.
|
|
31
|
-
*
|
|
32
|
-
* Gated behind brain.autoCapture config. Never throws.
|
|
33
|
-
*
|
|
34
|
-
* @param projectRoot - Absolute path to the project root directory.
|
|
35
|
-
* @param payload - PreCompact event payload.
|
|
36
|
-
*
|
|
37
|
-
* @task T166
|
|
38
|
-
* @epic T134
|
|
39
|
-
*/
|
|
40
|
-
export async function handlePreCompact(projectRoot, payload) {
|
|
41
|
-
if (!(await isAutoCaptureEnabled(projectRoot)))
|
|
42
|
-
return;
|
|
43
|
-
const { observeBrain } = await import('../../memory/brain-retrieval.js');
|
|
44
|
-
const tokensPart = payload.tokensBefore != null ? ` (~${payload.tokensBefore.toLocaleString()} tokens)` : '';
|
|
45
|
-
const reasonPart = payload.reason ? ` Reason: ${payload.reason}` : '';
|
|
46
|
-
try {
|
|
47
|
-
await observeBrain(projectRoot, {
|
|
48
|
-
text: `Context compaction about to begin${tokensPart}.${reasonPart}`,
|
|
49
|
-
title: 'Pre-compaction context snapshot',
|
|
50
|
-
type: 'discovery',
|
|
51
|
-
sourceSessionId: payload.sessionId,
|
|
52
|
-
sourceType: 'agent',
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
catch (err) {
|
|
56
|
-
if (!isMissingBrainSchemaError(err))
|
|
57
|
-
throw err;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Handle PostCompact — record compaction completion to BRAIN.
|
|
62
|
-
*
|
|
63
|
-
* Fires immediately after context compaction completes. Records the
|
|
64
|
-
* before/after token counts so agents can correlate observations made
|
|
65
|
-
* before compaction with those made after.
|
|
66
|
-
*
|
|
67
|
-
* Gated behind brain.autoCapture config. Never throws.
|
|
68
|
-
*
|
|
69
|
-
* @param projectRoot - Absolute path to the project root directory.
|
|
70
|
-
* @param payload - PostCompact event payload.
|
|
71
|
-
*
|
|
72
|
-
* @task T166
|
|
73
|
-
* @epic T134
|
|
74
|
-
*/
|
|
75
|
-
export async function handlePostCompact(projectRoot, payload) {
|
|
76
|
-
if (!(await isAutoCaptureEnabled(projectRoot)))
|
|
77
|
-
return;
|
|
78
|
-
const { observeBrain } = await import('../../memory/brain-retrieval.js');
|
|
79
|
-
const statusPart = payload.success ? 'succeeded' : 'failed';
|
|
80
|
-
const beforePart = payload.tokensBefore != null ? ` before=${payload.tokensBefore.toLocaleString()}` : '';
|
|
81
|
-
const afterPart = payload.tokensAfter != null ? ` after=${payload.tokensAfter.toLocaleString()}` : '';
|
|
82
|
-
try {
|
|
83
|
-
await observeBrain(projectRoot, {
|
|
84
|
-
text: `Context compaction ${statusPart}${beforePart}${afterPart}`,
|
|
85
|
-
title: 'Post-compaction record',
|
|
86
|
-
type: 'change',
|
|
87
|
-
sourceSessionId: payload.sessionId,
|
|
88
|
-
sourceType: 'agent',
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
catch (err) {
|
|
92
|
-
if (!isMissingBrainSchemaError(err))
|
|
93
|
-
throw err;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// ---------------------------------------------------------------------------
|
|
97
|
-
// Auto-registration
|
|
98
|
-
// ---------------------------------------------------------------------------
|
|
99
|
-
hooks.register({
|
|
100
|
-
id: 'brain-pre-compact',
|
|
101
|
-
event: 'PreCompact',
|
|
102
|
-
handler: handlePreCompact,
|
|
103
|
-
priority: 100,
|
|
104
|
-
});
|
|
105
|
-
hooks.register({
|
|
106
|
-
id: 'brain-post-compact',
|
|
107
|
-
event: 'PostCompact',
|
|
108
|
-
handler: handlePostCompact,
|
|
109
|
-
priority: 100,
|
|
110
|
-
});
|
|
111
|
-
//# sourceMappingURL=context-hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-hooks.js","sourceRoot":"","sources":["../../../src/hooks/handlers/context-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error Hook Handlers - Wave 2 of T5237
|
|
3
|
-
*
|
|
4
|
-
* Captures operation errors to BRAIN via memory.observe.
|
|
5
|
-
* Includes infinite-loop guard to prevent onError triggering onError.
|
|
6
|
-
* Auto-registers on module load.
|
|
7
|
-
*/
|
|
8
|
-
import { hooks } from '../registry.js';
|
|
9
|
-
/**
|
|
10
|
-
* Handle PostToolUseFailure — capture operation errors to BRAIN.
|
|
11
|
-
*
|
|
12
|
-
* Includes an infinite-loop guard: if the payload carries a `_fromHook`
|
|
13
|
-
* metadata marker the handler skips immediately to prevent the cycle
|
|
14
|
-
* `PostToolUseFailure → observeBrain → PostToolUseFailure`. All
|
|
15
|
-
* `observeBrain` errors are also silently suppressed for the same reason.
|
|
16
|
-
*
|
|
17
|
-
* Never throws. All brain-write errors are swallowed so error hooks
|
|
18
|
-
* never block the original error path.
|
|
19
|
-
*
|
|
20
|
-
* @param projectRoot - Absolute path to the project root directory.
|
|
21
|
-
* @param payload - PostToolUseFailure event payload.
|
|
22
|
-
*
|
|
23
|
-
* @task T166
|
|
24
|
-
* @epic T134
|
|
25
|
-
*/
|
|
26
|
-
export async function handleError(projectRoot, payload) {
|
|
27
|
-
// Infinite-loop guard: skip if this error originated from a hook
|
|
28
|
-
if (payload.metadata?.['_fromHook'])
|
|
29
|
-
return;
|
|
30
|
-
const { observeBrain } = await import('../../memory/brain-retrieval.js');
|
|
31
|
-
const domainOp = payload.domain && payload.operation ? `${payload.domain}.${payload.operation}` : 'unknown';
|
|
32
|
-
try {
|
|
33
|
-
await observeBrain(projectRoot, {
|
|
34
|
-
text: `Error in ${domainOp}: ${payload.message}\nCode: ${payload.errorCode}${payload.gateway ? `\nGateway: ${payload.gateway}` : ''}`,
|
|
35
|
-
title: `Error: ${domainOp}`,
|
|
36
|
-
type: 'discovery',
|
|
37
|
-
sourceType: 'agent',
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
catch (_err) {
|
|
41
|
-
// Silently suppress all observeBrain errors in hook context
|
|
42
|
-
// to prevent re-entrant hook firing
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// Register handler on module load
|
|
46
|
-
hooks.register({
|
|
47
|
-
id: 'brain-error',
|
|
48
|
-
event: 'PostToolUseFailure',
|
|
49
|
-
handler: handleError,
|
|
50
|
-
priority: 100,
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=error-hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-hooks.js","sourceRoot":"","sources":["../../../src/hooks/handlers/error-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,OAAkC;IAElC,iEAAiE;IACjE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC;QAAE,OAAO;IAE5C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAEzE,MAAM,QAAQ,GACZ,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7F,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,WAAW,EAAE;YAC9B,IAAI,EAAE,YAAY,QAAQ,KAAK,OAAO,CAAC,OAAO,WAAW,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACrI,KAAK,EAAE,UAAU,QAAQ,EAAE;YAC3B,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,4DAA4D;QAC5D,oCAAoC;IACtC,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,KAAK,CAAC,QAAQ,CAAC;IACb,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,oBAAoB;IAC3B,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,GAAG;CACd,CAAC,CAAC"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File Change Hook Handlers - Wave 2 of T5237
|
|
3
|
-
*
|
|
4
|
-
* Captures file change events to BRAIN via memory.observe.
|
|
5
|
-
* Includes 5-second dedup and path-based filtering to avoid noisy writes.
|
|
6
|
-
* Auto-registers on module load.
|
|
7
|
-
*
|
|
8
|
-
* Disabled by default. Enable via:
|
|
9
|
-
* - Config: brain.captureFiles = true (checked first)
|
|
10
|
-
* - Env: CLEO_BRAIN_CAPTURE_FILES=true (overrides config)
|
|
11
|
-
*/
|
|
12
|
-
import { isAbsolute, relative } from 'node:path';
|
|
13
|
-
import { hooks } from '../registry.js';
|
|
14
|
-
import { isMissingBrainSchemaError } from './handler-helpers.js';
|
|
15
|
-
/** 5-second dedup map: filePath -> last dispatch timestamp */
|
|
16
|
-
const recentWrites = new Map();
|
|
17
|
-
const DEDUP_INTERVAL_MS = 5_000;
|
|
18
|
-
/** Path patterns to exclude from brain observations (internal/noisy files). */
|
|
19
|
-
const SKIP_PATTERNS = [
|
|
20
|
-
/\.cleo\//, // All .cleo internal files (sessions.json, config.json, tasks.db, etc.)
|
|
21
|
-
/\.cleo\\/, // Windows path variant
|
|
22
|
-
/\/\.temp\//, // Temp directories
|
|
23
|
-
/cleo-test-/, // Vitest test temp dirs
|
|
24
|
-
/cleo-edge-/, // Edge-case test temp dirs
|
|
25
|
-
/node_modules\//, // Dependencies
|
|
26
|
-
/\.git\//, // Git internals
|
|
27
|
-
/dist\//, // Build output
|
|
28
|
-
];
|
|
29
|
-
/** Check whether a relative path should be skipped. */
|
|
30
|
-
function shouldSkipPath(relativePath) {
|
|
31
|
-
return SKIP_PATTERNS.some((pattern) => pattern.test(relativePath));
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Check whether file-change capture is enabled.
|
|
35
|
-
*
|
|
36
|
-
* Resolution order (first truthy wins):
|
|
37
|
-
* 1. CLEO_BRAIN_CAPTURE_FILES env var (explicit override)
|
|
38
|
-
* 2. brain.captureFiles project config value
|
|
39
|
-
*
|
|
40
|
-
* Defaults to false when neither is set.
|
|
41
|
-
*/
|
|
42
|
-
async function isFileCaptureEnabled(projectRoot) {
|
|
43
|
-
const envOverride = process.env['CLEO_BRAIN_CAPTURE_FILES'];
|
|
44
|
-
if (envOverride !== undefined) {
|
|
45
|
-
return envOverride === 'true';
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
const { loadConfig } = await import('../../config.js');
|
|
49
|
-
const config = await loadConfig(projectRoot);
|
|
50
|
-
return config.brain?.captureFiles ?? false;
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Handle Notification (file-change variant) - capture file changes to BRAIN
|
|
58
|
-
*
|
|
59
|
-
* Gated behind brain.captureFiles config or CLEO_BRAIN_CAPTURE_FILES env var.
|
|
60
|
-
* Env var takes precedence over config for backward compatibility.
|
|
61
|
-
* Deduplicates rapid writes to the same file within a 5-second window.
|
|
62
|
-
* Filters out .cleo/ internal files and test temp directories.
|
|
63
|
-
* Converts absolute paths to project-relative paths.
|
|
64
|
-
*/
|
|
65
|
-
export async function handleFileChange(projectRoot, payload) {
|
|
66
|
-
// Only handle file-change notifications
|
|
67
|
-
if (!payload.filePath || !payload.changeType)
|
|
68
|
-
return;
|
|
69
|
-
// Opt-in gate: disabled by default to prevent observation noise
|
|
70
|
-
if (!(await isFileCaptureEnabled(projectRoot)))
|
|
71
|
-
return;
|
|
72
|
-
// 5-second dedup
|
|
73
|
-
const now = Date.now();
|
|
74
|
-
const lastWrite = recentWrites.get(payload.filePath);
|
|
75
|
-
if (lastWrite && now - lastWrite < DEDUP_INTERVAL_MS)
|
|
76
|
-
return;
|
|
77
|
-
recentWrites.set(payload.filePath, now);
|
|
78
|
-
// Convert absolute paths to relative, normalize to forward slashes
|
|
79
|
-
const relativePath = (isAbsolute(payload.filePath) ? relative(projectRoot, payload.filePath) : payload.filePath).replaceAll('\\', '/');
|
|
80
|
-
// Skip internal/noisy files
|
|
81
|
-
if (shouldSkipPath(relativePath))
|
|
82
|
-
return;
|
|
83
|
-
const { observeBrain } = await import('../../memory/brain-retrieval.js');
|
|
84
|
-
try {
|
|
85
|
-
await observeBrain(projectRoot, {
|
|
86
|
-
text: `File ${payload.changeType}: ${relativePath}${payload.sizeBytes != null ? ` (${payload.sizeBytes} bytes)` : ''}`,
|
|
87
|
-
title: `File changed: ${relativePath}`,
|
|
88
|
-
type: 'change',
|
|
89
|
-
sourceType: 'agent',
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
catch (err) {
|
|
93
|
-
if (!isMissingBrainSchemaError(err))
|
|
94
|
-
throw err;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
// Register handler on module load
|
|
98
|
-
hooks.register({
|
|
99
|
-
id: 'brain-file-change',
|
|
100
|
-
event: 'Notification',
|
|
101
|
-
handler: handleFileChange,
|
|
102
|
-
priority: 100,
|
|
103
|
-
});
|
|
104
|
-
//# sourceMappingURL=file-hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-hooks.js","sourceRoot":"","sources":["../../../src/hooks/handlers/file-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared helpers for hook handler modules.
|
|
3
|
-
*
|
|
4
|
-
* Centralises the two patterns repeated across all brain-capture handlers:
|
|
5
|
-
*
|
|
6
|
-
* 1. `isMissingBrainSchemaError` — detects the "no such table: brain_*" error
|
|
7
|
-
* thrown when brain.db has not been migrated yet, so handlers can swallow
|
|
8
|
-
* it silently instead of crashing agent workflows.
|
|
9
|
-
*
|
|
10
|
-
* 2. `isAutoCaptureEnabled` — reads `brain.autoCapture` from the cascaded
|
|
11
|
-
* project config and returns false when the config is unreadable.
|
|
12
|
-
*
|
|
13
|
-
* Import these instead of redefining them in each handler file.
|
|
14
|
-
*
|
|
15
|
-
* @task T166
|
|
16
|
-
* @epic T134
|
|
17
|
-
*/
|
|
18
|
-
// ---------------------------------------------------------------------------
|
|
19
|
-
// Brain schema error guard
|
|
20
|
-
// ---------------------------------------------------------------------------
|
|
21
|
-
/**
|
|
22
|
-
* Return true when the error is the "no such table: brain_*" SQLite error
|
|
23
|
-
* thrown before brain.db has been migrated.
|
|
24
|
-
*
|
|
25
|
-
* Hook handlers use this to swallow migration-lag errors without hiding
|
|
26
|
-
* genuine failures: if the error is NOT a missing-schema error it is
|
|
27
|
-
* re-thrown so it propagates normally.
|
|
28
|
-
*
|
|
29
|
-
* @param err - The caught error value (may be any type).
|
|
30
|
-
*/
|
|
31
|
-
export function isMissingBrainSchemaError(err) {
|
|
32
|
-
if (!(err instanceof Error))
|
|
33
|
-
return false;
|
|
34
|
-
const message = String(err.message || '').toLowerCase();
|
|
35
|
-
return message.includes('no such table') && message.includes('brain_');
|
|
36
|
-
}
|
|
37
|
-
// ---------------------------------------------------------------------------
|
|
38
|
-
// Auto-capture config gate
|
|
39
|
-
// ---------------------------------------------------------------------------
|
|
40
|
-
/**
|
|
41
|
-
* Return true when `brain.autoCapture` is enabled for the given project.
|
|
42
|
-
*
|
|
43
|
-
* Resolution order (first truthy wins):
|
|
44
|
-
* 1. `brain.autoCapture` project config value (via `loadConfig` cascade)
|
|
45
|
-
*
|
|
46
|
-
* Defaults to `false` when the config is unreadable or the key is absent,
|
|
47
|
-
* so handlers are safely disabled in environments where brain.db is not set up.
|
|
48
|
-
*
|
|
49
|
-
* @param projectRoot - Absolute path to the project root directory.
|
|
50
|
-
*/
|
|
51
|
-
export async function isAutoCaptureEnabled(projectRoot) {
|
|
52
|
-
try {
|
|
53
|
-
const { loadConfig } = await import('../../config.js');
|
|
54
|
-
const config = await loadConfig(projectRoot);
|
|
55
|
-
return config.brain?.autoCapture ?? false;
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=handler-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handler-helpers.js","sourceRoot":"","sources":["../../../src/hooks/handlers/handler-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAY;IACpD,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,KAAK,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hook Handlers Index - Phase 2D of T5237
|
|
3
|
-
*
|
|
4
|
-
* Barrel export for all hook handlers. Importing this module will
|
|
5
|
-
* auto-register all handlers with the hook registry.
|
|
6
|
-
*
|
|
7
|
-
* @task T166
|
|
8
|
-
* @epic T134
|
|
9
|
-
*/
|
|
10
|
-
// Import handlers to trigger auto-registration on module load
|
|
11
|
-
import './session-hooks.js';
|
|
12
|
-
import './task-hooks.js';
|
|
13
|
-
import './error-hooks.js';
|
|
14
|
-
import './file-hooks.js';
|
|
15
|
-
import './notification-hooks.js';
|
|
16
|
-
import './work-capture-hooks.js';
|
|
17
|
-
import './agent-hooks.js';
|
|
18
|
-
import './context-hooks.js';
|
|
19
|
-
export { handleSubagentStart, handleSubagentStop } from './agent-hooks.js';
|
|
20
|
-
export { handlePostCompact, handlePreCompact } from './context-hooks.js';
|
|
21
|
-
export { handleError } from './error-hooks.js';
|
|
22
|
-
export { handleFileChange } from './file-hooks.js';
|
|
23
|
-
export { handleSystemNotification } from './notification-hooks.js';
|
|
24
|
-
// Re-export handler functions for explicit use
|
|
25
|
-
export { handleSessionEnd, handleSessionStart } from './session-hooks.js';
|
|
26
|
-
export { handleToolComplete, handleToolStart } from './task-hooks.js';
|
|
27
|
-
export { handleWorkPromptSubmit, handleWorkResponseComplete } from './work-capture-hooks.js';
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,8DAA8D;AAC9D,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC;AACzB,OAAO,yBAAyB,CAAC;AACjC,OAAO,yBAAyB,CAAC;AACjC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,+CAA+C;AAC/C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared memory bridge refresh helper for hook handlers.
|
|
3
|
-
*
|
|
4
|
-
* Provides a config-gated, debounced wrapper around refreshMemoryBridge().
|
|
5
|
-
* Prevents rapid regeneration of .cleo/memory-bridge.md when multiple
|
|
6
|
-
* lifecycle events fire in quick succession (e.g. session end + task complete).
|
|
7
|
-
*
|
|
8
|
-
* Debounce: max one refresh per 30 seconds across all callers in the process.
|
|
9
|
-
*
|
|
10
|
-
* @task T138
|
|
11
|
-
* @epic T134
|
|
12
|
-
*/
|
|
13
|
-
/** Debounce window in milliseconds. */
|
|
14
|
-
const DEBOUNCE_MS = 30_000;
|
|
15
|
-
/** Timestamp of the last successful refresh call (module-level singleton). */
|
|
16
|
-
let lastRefreshTime = 0;
|
|
17
|
-
/**
|
|
18
|
-
* Refresh the memory bridge if autoRefresh is enabled and the debounce window
|
|
19
|
-
* has elapsed. Reads config via loadConfig() (cascaded). Never throws.
|
|
20
|
-
*
|
|
21
|
-
* @param projectRoot - Absolute path to the project root directory.
|
|
22
|
-
*/
|
|
23
|
-
export async function maybeRefreshMemoryBridge(projectRoot) {
|
|
24
|
-
try {
|
|
25
|
-
const { loadConfig } = await import('../../config.js');
|
|
26
|
-
const config = await loadConfig(projectRoot);
|
|
27
|
-
if (!config.brain?.memoryBridge?.autoRefresh) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
const now = Date.now();
|
|
31
|
-
if (now - lastRefreshTime < DEBOUNCE_MS) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
lastRefreshTime = now;
|
|
35
|
-
const { refreshMemoryBridge } = await import('../../memory/memory-bridge.js');
|
|
36
|
-
await refreshMemoryBridge(projectRoot);
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
// Best-effort: never block lifecycle events
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=memory-bridge-refresh.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-bridge-refresh.js","sourceRoot":"","sources":["../../../src/hooks/handlers/memory-bridge-refresh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,uCAAuC;AACvC,MAAM,WAAW,GAAG,MAAM,CAAC;AAE3B,8EAA8E;AAC9E,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,WAAmB;IAChE,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,eAAe,GAAG,WAAW,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,eAAe,GAAG,GAAG,CAAC;QAEtB,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAC9E,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* System Notification Hook Handler
|
|
3
|
-
*
|
|
4
|
-
* Captures message-bearing system notifications as BRAIN observations.
|
|
5
|
-
* File-change notifications (filePath + changeType) are handled by
|
|
6
|
-
* file-hooks.ts; this module only handles Notification payloads with
|
|
7
|
-
* a `message` field.
|
|
8
|
-
*
|
|
9
|
-
* Gated behind brain.autoCapture config. Never throws.
|
|
10
|
-
* Auto-registers on module load.
|
|
11
|
-
*
|
|
12
|
-
* @task T166
|
|
13
|
-
*/
|
|
14
|
-
import { hooks } from '../registry.js';
|
|
15
|
-
import { isAutoCaptureEnabled, isMissingBrainSchemaError } from './handler-helpers.js';
|
|
16
|
-
/**
|
|
17
|
-
* Handle Notification — capture system notifications as BRAIN observations.
|
|
18
|
-
*
|
|
19
|
-
* Only fires for Notification payloads that carry a message field (i.e. system
|
|
20
|
-
* notifications). File-change notifications (filePath + changeType) are
|
|
21
|
-
* handled exclusively by file-hooks.ts and are skipped here to avoid
|
|
22
|
-
* double-capture.
|
|
23
|
-
*
|
|
24
|
-
* Gated behind brain.autoCapture config. Never throws.
|
|
25
|
-
*
|
|
26
|
-
* @param projectRoot - Absolute path to the project root directory.
|
|
27
|
-
* @param payload - Notification event payload.
|
|
28
|
-
*
|
|
29
|
-
* @task T166
|
|
30
|
-
*/
|
|
31
|
-
export async function handleSystemNotification(projectRoot, payload) {
|
|
32
|
-
// File-change notifications are handled by file-hooks.ts
|
|
33
|
-
if (payload.filePath || payload.changeType)
|
|
34
|
-
return;
|
|
35
|
-
// Only handle message-bearing system notifications
|
|
36
|
-
if (!payload.message)
|
|
37
|
-
return;
|
|
38
|
-
if (!(await isAutoCaptureEnabled(projectRoot)))
|
|
39
|
-
return;
|
|
40
|
-
const { observeBrain } = await import('../../memory/brain-retrieval.js');
|
|
41
|
-
try {
|
|
42
|
-
await observeBrain(projectRoot, {
|
|
43
|
-
text: `System notification: ${payload.message}`,
|
|
44
|
-
title: `Notification: ${payload.message.slice(0, 60)}`,
|
|
45
|
-
type: 'discovery',
|
|
46
|
-
sourceSessionId: payload.sessionId,
|
|
47
|
-
sourceType: 'agent',
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
if (!isMissingBrainSchemaError(err))
|
|
52
|
-
throw err;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
// Lower priority (90) so file-hooks.ts (100) runs first for Notification events
|
|
56
|
-
hooks.register({
|
|
57
|
-
id: 'brain-system-notification',
|
|
58
|
-
event: 'Notification',
|
|
59
|
-
handler: handleSystemNotification,
|
|
60
|
-
priority: 90,
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=notification-hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notification-hooks.js","sourceRoot":"","sources":["../../../src/hooks/handlers/notification-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEvF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAmB,EACnB,OAA4B;IAE5B,yDAAyD;IACzD,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO;IACnD,mDAAmD;IACnD,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO;IAC7B,IAAI,CAAC,CAAC,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAAE,OAAO;IAEvD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,WAAW,EAAE;YAC9B,IAAI,EAAE,wBAAwB,OAAO,CAAC,OAAO,EAAE;YAC/C,KAAK,EAAE,iBAAiB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YACtD,IAAI,EAAE,WAAW;YACjB,eAAe,EAAE,OAAO,CAAC,SAAS;YAClC,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC;YAAE,MAAM,GAAG,CAAC;IACjD,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,KAAK,CAAC,QAAQ,CAAC;IACb,EAAE,EAAE,2BAA2B;IAC/B,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,wBAAwB;IACjC,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session Hook Handlers - Phase 2D of T5237
|
|
3
|
-
*
|
|
4
|
-
* Handlers that capture session lifecycle events to BRAIN via memory.observe.
|
|
5
|
-
* Auto-registers on module load.
|
|
6
|
-
*
|
|
7
|
-
* T138: Triggers memory bridge refresh on session start and end.
|
|
8
|
-
* T139: Regenerates bridge with session scope on start.
|
|
9
|
-
* T144: Extracts transcript observations on session end.
|
|
10
|
-
* T5158: Auto-snapshots SQLite databases (tasks.db + brain.db) via
|
|
11
|
-
* VACUUM INTO on SessionEnd to preserve a recovery point now that
|
|
12
|
-
* the databases are no longer tracked in project git (ADR-013).
|
|
13
|
-
*/
|
|
14
|
-
import { hooks } from '../registry.js';
|
|
15
|
-
import { isMissingBrainSchemaError } from './handler-helpers.js';
|
|
16
|
-
import { maybeRefreshMemoryBridge } from './memory-bridge-refresh.js';
|
|
17
|
-
/**
|
|
18
|
-
* Handle SessionStart - capture initial session context
|
|
19
|
-
*
|
|
20
|
-
* T138: Refresh memory bridge on session start.
|
|
21
|
-
* T139: Regenerate bridge with session scope context.
|
|
22
|
-
*/
|
|
23
|
-
export async function handleSessionStart(projectRoot, payload) {
|
|
24
|
-
const { observeBrain } = await import('../../memory/brain-retrieval.js');
|
|
25
|
-
try {
|
|
26
|
-
await observeBrain(projectRoot, {
|
|
27
|
-
text: `Session started: ${payload.name}\nScope: ${JSON.stringify(payload.scope)}\nAgent: ${payload.agent || 'unknown'}`,
|
|
28
|
-
title: `Session start: ${payload.name}`,
|
|
29
|
-
type: 'discovery',
|
|
30
|
-
sourceSessionId: payload.sessionId,
|
|
31
|
-
sourceType: 'agent',
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
catch (err) {
|
|
35
|
-
if (!isMissingBrainSchemaError(err))
|
|
36
|
-
throw err;
|
|
37
|
-
}
|
|
38
|
-
// T138/T139: Refresh memory bridge after session starts (best-effort)
|
|
39
|
-
await maybeRefreshMemoryBridge(projectRoot);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Handle SessionEnd - capture session summary
|
|
43
|
-
*
|
|
44
|
-
* T138: Refresh memory bridge after session ends.
|
|
45
|
-
* T144: Extract transcript observations via cross-provider adapter.
|
|
46
|
-
*/
|
|
47
|
-
export async function handleSessionEnd(projectRoot, payload) {
|
|
48
|
-
const { observeBrain } = await import('../../memory/brain-retrieval.js');
|
|
49
|
-
try {
|
|
50
|
-
await observeBrain(projectRoot, {
|
|
51
|
-
text: `Session ended: ${payload.sessionId}\nDuration: ${payload.duration}s\nTasks completed: ${payload.tasksCompleted.join(', ') || 'none'}`,
|
|
52
|
-
title: `Session end: ${payload.sessionId}`,
|
|
53
|
-
type: 'change',
|
|
54
|
-
sourceSessionId: payload.sessionId,
|
|
55
|
-
sourceType: 'agent',
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
catch (err) {
|
|
59
|
-
if (!isMissingBrainSchemaError(err))
|
|
60
|
-
throw err;
|
|
61
|
-
}
|
|
62
|
-
// Auto-grade session and feed insights to brain.db (best-effort)
|
|
63
|
-
try {
|
|
64
|
-
const { gradeSession } = await import('../../sessions/session-grade.js');
|
|
65
|
-
await gradeSession(payload.sessionId, projectRoot);
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
// Grading must never block session end
|
|
69
|
-
}
|
|
70
|
-
// T144: Cross-provider transcript extraction (best-effort)
|
|
71
|
-
try {
|
|
72
|
-
const { loadConfig } = await import('../../config.js');
|
|
73
|
-
const config = await loadConfig(projectRoot);
|
|
74
|
-
if (config.brain?.autoCapture) {
|
|
75
|
-
const { AdapterManager } = await import('../../adapters/index.js');
|
|
76
|
-
const manager = AdapterManager.getInstance(projectRoot);
|
|
77
|
-
const activeAdapter = manager.getActive();
|
|
78
|
-
const hookProvider = activeAdapter?.hooks;
|
|
79
|
-
if (hookProvider && typeof hookProvider.getTranscript === 'function') {
|
|
80
|
-
const transcript = await hookProvider.getTranscript(payload.sessionId, projectRoot);
|
|
81
|
-
if (transcript) {
|
|
82
|
-
const { extractFromTranscript } = await import('../../memory/auto-extract.js');
|
|
83
|
-
await extractFromTranscript(projectRoot, payload.sessionId, transcript);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
// Graceful no-op: transcript extraction must never block session end
|
|
90
|
-
}
|
|
91
|
-
// T138: Refresh memory bridge after session ends (best-effort)
|
|
92
|
-
await maybeRefreshMemoryBridge(projectRoot);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Handle SessionEnd - snapshot SQLite databases to `.cleo/backups/sqlite/`.
|
|
96
|
-
*
|
|
97
|
-
* ADR-013 / T5158: `.cleo/tasks.db` and `.cleo/brain.db` are NOT tracked in
|
|
98
|
-
* project git, so we need an out-of-band recovery mechanism. This handler
|
|
99
|
-
* calls `vacuumIntoBackupAll` with `force: true` at every session end to
|
|
100
|
-
* guarantee a fresh point-in-time snapshot of both databases.
|
|
101
|
-
*
|
|
102
|
-
* Rotation (MAX_SNAPSHOTS = 10 per database) is handled inside
|
|
103
|
-
* `sqlite-backup.ts`. Failures here are non-fatal: a backup error must
|
|
104
|
-
* never block session end.
|
|
105
|
-
*
|
|
106
|
-
* The `vacuumIntoBackupAll` import is deferred to call time so tests that
|
|
107
|
-
* auto-load session-hooks (e.g. via `handlers/index.ts`) do not have to
|
|
108
|
-
* mock every transitive dependency of `sqlite-backup.ts` at hoisted
|
|
109
|
-
* `vi.mock` time.
|
|
110
|
-
*/
|
|
111
|
-
export async function handleSessionEndBackup(projectRoot, _payload) {
|
|
112
|
-
try {
|
|
113
|
-
const { vacuumIntoBackupAll } = await import('../../store/sqlite-backup.js');
|
|
114
|
-
await vacuumIntoBackupAll({ cwd: projectRoot, force: true });
|
|
115
|
-
}
|
|
116
|
-
catch {
|
|
117
|
-
// Backup failures are best-effort — never block session end on them.
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// Register handlers on module load
|
|
121
|
-
hooks.register({
|
|
122
|
-
id: 'brain-session-start',
|
|
123
|
-
event: 'SessionStart',
|
|
124
|
-
handler: handleSessionStart,
|
|
125
|
-
priority: 100,
|
|
126
|
-
});
|
|
127
|
-
hooks.register({
|
|
128
|
-
id: 'brain-session-end',
|
|
129
|
-
event: 'SessionEnd',
|
|
130
|
-
handler: handleSessionEnd,
|
|
131
|
-
priority: 100,
|
|
132
|
-
});
|
|
133
|
-
// Lower priority (10) runs AFTER the brain/memory-bridge handlers so the
|
|
134
|
-
// snapshot captures the most up-to-date brain.db state including the
|
|
135
|
-
// SessionEnd observation just written by handleSessionEnd above.
|
|
136
|
-
hooks.register({
|
|
137
|
-
id: 'backup-session-end',
|
|
138
|
-
event: 'SessionEnd',
|
|
139
|
-
handler: handleSessionEndBackup,
|
|
140
|
-
priority: 10,
|
|
141
|
-
});
|
|
142
|
-
//# sourceMappingURL=session-hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-hooks.js","sourceRoot":"","sources":["../../../src/hooks/handlers/session-hooks.ts"],"names":[],"mappings":"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"}
|