@cleocode/core 2026.4.9 → 2026.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/adapter-registry.js +64 -0
- package/dist/adapters/adapter-registry.js.map +1 -0
- package/dist/adapters/discovery.js +83 -0
- package/dist/adapters/discovery.js.map +1 -0
- package/dist/adapters/index.js +9 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/manager.js +260 -0
- package/dist/adapters/manager.js.map +1 -0
- package/dist/admin/export-tasks.js +171 -0
- package/dist/admin/export-tasks.js.map +1 -0
- package/dist/admin/export.js +103 -0
- package/dist/admin/export.js.map +1 -0
- package/dist/admin/help.js +106 -0
- package/dist/admin/help.js.map +1 -0
- package/dist/admin/import-tasks.js +182 -0
- package/dist/admin/import-tasks.js.map +1 -0
- package/dist/admin/import.js +129 -0
- package/dist/admin/import.js.map +1 -0
- package/dist/admin/index.js +13 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/adrs/find.js +134 -0
- package/dist/adrs/find.js.map +1 -0
- package/dist/adrs/index.js +15 -0
- package/dist/adrs/index.js.map +1 -0
- package/dist/adrs/link-pipeline.js +160 -0
- package/dist/adrs/link-pipeline.js.map +1 -0
- package/dist/adrs/list.js +43 -0
- package/dist/adrs/list.js.map +1 -0
- package/dist/adrs/parse.js +51 -0
- package/dist/adrs/parse.js.map +1 -0
- package/dist/adrs/show.js +22 -0
- package/dist/adrs/show.js.map +1 -0
- package/dist/adrs/sync.js +188 -0
- package/dist/adrs/sync.js.map +1 -0
- package/dist/adrs/types.js +9 -0
- package/dist/adrs/types.js.map +1 -0
- package/dist/adrs/validate.js +57 -0
- package/dist/adrs/validate.js.map +1 -0
- package/dist/agents/agent-registry.js +288 -0
- package/dist/agents/agent-registry.js.map +1 -0
- package/dist/agents/agent-schema.d.ts +2 -2
- package/dist/agents/agent-schema.js +82 -0
- package/dist/agents/agent-schema.js.map +1 -0
- package/dist/agents/capacity.js +116 -0
- package/dist/agents/capacity.js.map +1 -0
- package/dist/agents/execution-learning.js +474 -0
- package/dist/agents/execution-learning.js.map +1 -0
- package/dist/agents/health-monitor.js +217 -0
- package/dist/agents/health-monitor.js.map +1 -0
- package/dist/agents/index.js +29 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/registry.js +314 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/retry.js +215 -0
- package/dist/agents/retry.js.map +1 -0
- package/dist/audit-prune.js +94 -0
- package/dist/audit-prune.js.map +1 -0
- package/dist/audit.js +68 -0
- package/dist/audit.js.map +1 -0
- package/dist/backfill/index.js +229 -0
- package/dist/backfill/index.js.map +1 -0
- package/dist/bootstrap.js +344 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/caamp/adapter.js +259 -0
- package/dist/caamp/adapter.js.map +1 -0
- package/dist/caamp/capability-check.js +38 -0
- package/dist/caamp/capability-check.js.map +1 -0
- package/dist/caamp/index.js +21 -0
- package/dist/caamp/index.js.map +1 -0
- package/dist/caamp-init.js +16 -0
- package/dist/caamp-init.js.map +1 -0
- package/dist/cleo.js +322 -0
- package/dist/cleo.js.map +1 -0
- package/dist/code/index.js +10 -0
- package/dist/code/index.js.map +1 -0
- package/dist/code/outline.js +165 -0
- package/dist/code/outline.js.map +1 -0
- package/dist/code/parser.js +295 -0
- package/dist/code/parser.js.map +1 -0
- package/dist/code/search.js +135 -0
- package/dist/code/search.js.map +1 -0
- package/dist/code/unfold.js +155 -0
- package/dist/code/unfold.js.map +1 -0
- package/dist/codebase-map/analyzers/architecture.d.ts.map +1 -1
- package/dist/codebase-map/analyzers/architecture.js +129 -0
- package/dist/codebase-map/analyzers/architecture.js.map +1 -0
- package/dist/codebase-map/analyzers/concerns.js +122 -0
- package/dist/codebase-map/analyzers/concerns.js.map +1 -0
- package/dist/codebase-map/analyzers/conventions.js +149 -0
- package/dist/codebase-map/analyzers/conventions.js.map +1 -0
- package/dist/codebase-map/analyzers/integrations.js +108 -0
- package/dist/codebase-map/analyzers/integrations.js.map +1 -0
- package/dist/codebase-map/analyzers/stack.js +117 -0
- package/dist/codebase-map/analyzers/stack.js.map +1 -0
- package/dist/codebase-map/analyzers/structure.js +137 -0
- package/dist/codebase-map/analyzers/structure.js.map +1 -0
- package/dist/codebase-map/analyzers/testing.js +118 -0
- package/dist/codebase-map/analyzers/testing.js.map +1 -0
- package/dist/codebase-map/index.js +57 -0
- package/dist/codebase-map/index.js.map +1 -0
- package/dist/codebase-map/store.js +122 -0
- package/dist/codebase-map/store.js.map +1 -0
- package/dist/codebase-map/summary.js +152 -0
- package/dist/codebase-map/summary.js.map +1 -0
- package/dist/compliance/index.js +288 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/compliance/protocol-enforcement.js +332 -0
- package/dist/compliance/protocol-enforcement.js.map +1 -0
- package/dist/compliance/protocol-rules.js +786 -0
- package/dist/compliance/protocol-rules.js.map +1 -0
- package/dist/compliance/protocol-types.js +79 -0
- package/dist/compliance/protocol-types.js.map +1 -0
- package/dist/compliance/store.js +53 -0
- package/dist/compliance/store.js.map +1 -0
- package/dist/conduit/conduit-client.js +107 -0
- package/dist/conduit/conduit-client.js.map +1 -0
- package/dist/conduit/factory.js +52 -0
- package/dist/conduit/factory.js.map +1 -0
- package/dist/conduit/http-transport.js +155 -0
- package/dist/conduit/http-transport.js.map +1 -0
- package/dist/conduit/index.js +15 -0
- package/dist/conduit/index.js.map +1 -0
- package/dist/conduit/local-transport.d.ts +18 -8
- package/dist/conduit/local-transport.d.ts.map +1 -1
- package/dist/conduit/local-transport.js +255 -0
- package/dist/conduit/local-transport.js.map +1 -0
- package/dist/conduit/sse-transport.js +299 -0
- package/dist/conduit/sse-transport.js.map +1 -0
- package/dist/config/build-config.js +29 -0
- package/dist/config/build-config.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +400 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/context/index.js +137 -0
- package/dist/context/index.js.map +1 -0
- package/dist/crypto/credentials.js +191 -0
- package/dist/crypto/credentials.js.map +1 -0
- package/dist/discovery.js +182 -0
- package/dist/discovery.js.map +1 -0
- package/dist/engine-result.js +12 -0
- package/dist/engine-result.js.map +1 -0
- package/dist/error-catalog.js +404 -0
- package/dist/error-catalog.js.map +1 -0
- package/dist/error-registry.js +393 -0
- package/dist/error-registry.js.map +1 -0
- package/dist/errors.d.ts +19 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +173 -0
- package/dist/errors.js.map +1 -0
- package/dist/hooks/handlers/agent-hooks.js +106 -0
- package/dist/hooks/handlers/agent-hooks.js.map +1 -0
- package/dist/hooks/handlers/context-hooks.js +111 -0
- package/dist/hooks/handlers/context-hooks.js.map +1 -0
- package/dist/hooks/handlers/error-hooks.js +52 -0
- package/dist/hooks/handlers/error-hooks.js.map +1 -0
- package/dist/hooks/handlers/file-hooks.js +104 -0
- package/dist/hooks/handlers/file-hooks.js.map +1 -0
- package/dist/hooks/handlers/handler-helpers.js +61 -0
- package/dist/hooks/handlers/handler-helpers.js.map +1 -0
- package/dist/hooks/handlers/index.js +28 -0
- package/dist/hooks/handlers/index.js.map +1 -0
- package/dist/hooks/handlers/memory-bridge-refresh.js +42 -0
- package/dist/hooks/handlers/memory-bridge-refresh.js.map +1 -0
- package/dist/hooks/handlers/notification-hooks.js +62 -0
- package/dist/hooks/handlers/notification-hooks.js.map +1 -0
- package/dist/hooks/handlers/session-hooks.d.ts +21 -0
- package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/session-hooks.js +142 -0
- package/dist/hooks/handlers/session-hooks.js.map +1 -0
- package/dist/hooks/handlers/task-hooks.js +65 -0
- package/dist/hooks/handlers/task-hooks.js.map +1 -0
- package/dist/hooks/handlers/work-capture-hooks.js +165 -0
- package/dist/hooks/handlers/work-capture-hooks.js.map +1 -0
- package/dist/hooks/index.js +13 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/payload-schemas.d.ts +2 -2
- package/dist/hooks/payload-schemas.js +220 -0
- package/dist/hooks/payload-schemas.js.map +1 -0
- package/dist/hooks/provider-hooks.js +66 -0
- package/dist/hooks/provider-hooks.js.map +1 -0
- package/dist/hooks/registry.js +229 -0
- package/dist/hooks/registry.js.map +1 -0
- package/dist/hooks/types.js +66 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/hooks.js +136 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.js +175 -68684
- package/dist/index.js.map +1 -7
- package/dist/init.d.ts +1 -2
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +851 -0
- package/dist/init.js.map +1 -0
- package/dist/inject/index.js +82 -0
- package/dist/inject/index.js.map +1 -0
- package/dist/injection.js +343 -0
- package/dist/injection.js.map +1 -0
- package/dist/intelligence/adaptive-validation.js +497 -0
- package/dist/intelligence/adaptive-validation.js.map +1 -0
- package/dist/intelligence/impact.js +675 -0
- package/dist/intelligence/impact.js.map +1 -0
- package/dist/intelligence/index.js +22 -0
- package/dist/intelligence/index.js.map +1 -0
- package/dist/intelligence/patterns.js +492 -0
- package/dist/intelligence/patterns.js.map +1 -0
- package/dist/intelligence/prediction.js +499 -0
- package/dist/intelligence/prediction.js.map +1 -0
- package/dist/intelligence/types.js +13 -0
- package/dist/intelligence/types.js.map +1 -0
- package/dist/internal.d.ts +15 -5
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +306 -0
- package/dist/internal.js.map +1 -0
- package/dist/issue/create.js +121 -0
- package/dist/issue/create.js.map +1 -0
- package/dist/issue/diagnostics.js +59 -0
- package/dist/issue/diagnostics.js.map +1 -0
- package/dist/issue/index.js +10 -0
- package/dist/issue/index.js.map +1 -0
- package/dist/issue/template-parser.js +267 -0
- package/dist/issue/template-parser.js.map +1 -0
- package/dist/json-schema-validator.js +76 -0
- package/dist/json-schema-validator.js.map +1 -0
- package/dist/lib/index.js +11 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/retry.js +152 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/tree-sitter-languages.js +71 -0
- package/dist/lib/tree-sitter-languages.js.map +1 -0
- package/dist/lifecycle/chain-composition.js +152 -0
- package/dist/lifecycle/chain-composition.js.map +1 -0
- package/dist/lifecycle/chain-store.js +246 -0
- package/dist/lifecycle/chain-store.js.map +1 -0
- package/dist/lifecycle/consolidate-rcasd.js +352 -0
- package/dist/lifecycle/consolidate-rcasd.js.map +1 -0
- package/dist/lifecycle/default-chain.js +176 -0
- package/dist/lifecycle/default-chain.js.map +1 -0
- package/dist/lifecycle/evidence.js +180 -0
- package/dist/lifecycle/evidence.js.map +1 -0
- package/dist/lifecycle/frontmatter.js +363 -0
- package/dist/lifecycle/frontmatter.js.map +1 -0
- package/dist/lifecycle/index.js +756 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/lifecycle/pipeline.js +656 -0
- package/dist/lifecycle/pipeline.js.map +1 -0
- package/dist/lifecycle/rcasd-index.js +326 -0
- package/dist/lifecycle/rcasd-index.js.map +1 -0
- package/dist/lifecycle/rcasd-paths.js +220 -0
- package/dist/lifecycle/rcasd-paths.js.map +1 -0
- package/dist/lifecycle/resume.js +864 -0
- package/dist/lifecycle/resume.js.map +1 -0
- package/dist/lifecycle/stage-artifacts.js +94 -0
- package/dist/lifecycle/stage-artifacts.js.map +1 -0
- package/dist/lifecycle/stage-guidance.js +234 -0
- package/dist/lifecycle/stage-guidance.js.map +1 -0
- package/dist/lifecycle/stages.js +534 -0
- package/dist/lifecycle/stages.js.map +1 -0
- package/dist/lifecycle/state-machine.js +516 -0
- package/dist/lifecycle/state-machine.js.map +1 -0
- package/dist/lifecycle/tessera-engine.js +249 -0
- package/dist/lifecycle/tessera-engine.js.map +1 -0
- package/dist/logger.js +140 -0
- package/dist/logger.js.map +1 -0
- package/dist/memory/auto-extract.js +177 -0
- package/dist/memory/auto-extract.js.map +1 -0
- package/dist/memory/brain-embedding.js +66 -0
- package/dist/memory/brain-embedding.js.map +1 -0
- package/dist/memory/brain-lifecycle.js +298 -0
- package/dist/memory/brain-lifecycle.js.map +1 -0
- package/dist/memory/brain-links.js +161 -0
- package/dist/memory/brain-links.js.map +1 -0
- package/dist/memory/brain-maintenance.js +114 -0
- package/dist/memory/brain-maintenance.js.map +1 -0
- package/dist/memory/brain-migration.js +149 -0
- package/dist/memory/brain-migration.js.map +1 -0
- package/dist/memory/brain-reasoning.js +215 -0
- package/dist/memory/brain-reasoning.js.map +1 -0
- package/dist/memory/brain-retrieval.js +542 -0
- package/dist/memory/brain-retrieval.js.map +1 -0
- package/dist/memory/brain-row-types.js +10 -0
- package/dist/memory/brain-row-types.js.map +1 -0
- package/dist/memory/brain-search.js +519 -0
- package/dist/memory/brain-search.js.map +1 -0
- package/dist/memory/brain-similarity.js +145 -0
- package/dist/memory/brain-similarity.js.map +1 -0
- package/dist/memory/claude-mem-migration.js +277 -0
- package/dist/memory/claude-mem-migration.js.map +1 -0
- package/dist/memory/decisions.js +162 -0
- package/dist/memory/decisions.js.map +1 -0
- package/dist/memory/embedding-local.js +97 -0
- package/dist/memory/embedding-local.js.map +1 -0
- package/dist/memory/embedding-queue.js +271 -0
- package/dist/memory/embedding-queue.js.map +1 -0
- package/dist/memory/embedding-worker.js +58 -0
- package/dist/memory/embedding-worker.js.map +1 -0
- package/dist/memory/engine-compat.js +1397 -0
- package/dist/memory/engine-compat.js.map +1 -0
- package/dist/memory/index.js +1140 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/learnings.d.ts +2 -2
- package/dist/memory/learnings.js +121 -0
- package/dist/memory/learnings.js.map +1 -0
- package/dist/memory/memory-bridge.js +370 -0
- package/dist/memory/memory-bridge.js.map +1 -0
- package/dist/memory/patterns.d.ts +4 -4
- package/dist/memory/patterns.js +122 -0
- package/dist/memory/patterns.js.map +1 -0
- package/dist/memory/pipeline-manifest-sqlite.js +975 -0
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -0
- package/dist/memory/session-memory.js +331 -0
- package/dist/memory/session-memory.js.map +1 -0
- package/dist/metrics/ab-test.js +260 -0
- package/dist/metrics/ab-test.js.map +1 -0
- package/dist/metrics/aggregation.js +363 -0
- package/dist/metrics/aggregation.js.map +1 -0
- package/dist/metrics/common.js +64 -0
- package/dist/metrics/common.js.map +1 -0
- package/dist/metrics/enums.js +78 -0
- package/dist/metrics/enums.js.map +1 -0
- package/dist/metrics/index.js +19 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/model-provider-registry.js +88 -0
- package/dist/metrics/model-provider-registry.js.map +1 -0
- package/dist/metrics/otel-integration.js +263 -0
- package/dist/metrics/otel-integration.js.map +1 -0
- package/dist/metrics/provider-detection.js +103 -0
- package/dist/metrics/provider-detection.js.map +1 -0
- package/dist/metrics/token-estimation.js +253 -0
- package/dist/metrics/token-estimation.js.map +1 -0
- package/dist/metrics/token-service.js +450 -0
- package/dist/metrics/token-service.js.map +1 -0
- package/dist/migration/agent-outputs.js +316 -0
- package/dist/migration/agent-outputs.js.map +1 -0
- package/dist/migration/checksum.js +92 -0
- package/dist/migration/checksum.js.map +1 -0
- package/dist/migration/index.js +282 -0
- package/dist/migration/index.js.map +1 -0
- package/dist/migration/logger.js +360 -0
- package/dist/migration/logger.js.map +1 -0
- package/dist/migration/preflight.js +9 -0
- package/dist/migration/preflight.js.map +1 -0
- package/dist/migration/state.js +421 -0
- package/dist/migration/state.js.map +1 -0
- package/dist/migration/validate.js +241 -0
- package/dist/migration/validate.js.map +1 -0
- package/dist/mvi-helpers.js +74 -0
- package/dist/mvi-helpers.js.map +1 -0
- package/dist/nexus/deps.js +375 -0
- package/dist/nexus/deps.js.map +1 -0
- package/dist/nexus/discover.js +288 -0
- package/dist/nexus/discover.js.map +1 -0
- package/dist/nexus/hash.js +10 -0
- package/dist/nexus/hash.js.map +1 -0
- package/dist/nexus/index.js +40 -0
- package/dist/nexus/index.js.map +1 -0
- package/dist/nexus/migrate-json-to-sqlite.js +115 -0
- package/dist/nexus/migrate-json-to-sqlite.js.map +1 -0
- package/dist/nexus/permissions.js +105 -0
- package/dist/nexus/permissions.js.map +1 -0
- package/dist/nexus/query.js +175 -0
- package/dist/nexus/query.js.map +1 -0
- package/dist/nexus/registry.js +584 -0
- package/dist/nexus/registry.js.map +1 -0
- package/dist/nexus/sharing/index.js +288 -0
- package/dist/nexus/sharing/index.js.map +1 -0
- package/dist/nexus/transfer-types.js +8 -0
- package/dist/nexus/transfer-types.js.map +1 -0
- package/dist/nexus/transfer.js +263 -0
- package/dist/nexus/transfer.js.map +1 -0
- package/dist/nexus/workspace.js +355 -0
- package/dist/nexus/workspace.js.map +1 -0
- package/dist/observability/index.js +103 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/log-filter.js +63 -0
- package/dist/observability/log-filter.js.map +1 -0
- package/dist/observability/log-parser.js +99 -0
- package/dist/observability/log-parser.js.map +1 -0
- package/dist/observability/log-reader.js +139 -0
- package/dist/observability/log-reader.js.map +1 -0
- package/dist/observability/types.js +19 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/orchestration/analyze.js +107 -0
- package/dist/orchestration/analyze.js.map +1 -0
- package/dist/orchestration/bootstrap.js +132 -0
- package/dist/orchestration/bootstrap.js.map +1 -0
- package/dist/orchestration/context.js +56 -0
- package/dist/orchestration/context.js.map +1 -0
- package/dist/orchestration/critical-path.js +100 -0
- package/dist/orchestration/critical-path.js.map +1 -0
- package/dist/orchestration/hierarchy.js +183 -0
- package/dist/orchestration/hierarchy.js.map +1 -0
- package/dist/orchestration/index.js +287 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/parallel.js +89 -0
- package/dist/orchestration/parallel.js.map +1 -0
- package/dist/orchestration/protocol-validators.js +815 -0
- package/dist/orchestration/protocol-validators.js.map +1 -0
- package/dist/orchestration/skill-ops.js +98 -0
- package/dist/orchestration/skill-ops.js.map +1 -0
- package/dist/orchestration/status.js +107 -0
- package/dist/orchestration/status.js.map +1 -0
- package/dist/orchestration/unblock.js +103 -0
- package/dist/orchestration/unblock.js.map +1 -0
- package/dist/orchestration/validate-spawn.js +67 -0
- package/dist/orchestration/validate-spawn.js.map +1 -0
- package/dist/orchestration/waves.js +86 -0
- package/dist/orchestration/waves.js.map +1 -0
- package/dist/otel/index.js +163 -0
- package/dist/otel/index.js.map +1 -0
- package/dist/output.d.ts +32 -11
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +164 -0
- package/dist/output.js.map +1 -0
- package/dist/pagination.js +64 -0
- package/dist/pagination.js.map +1 -0
- package/dist/paths.d.ts +39 -9
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +842 -0
- package/dist/paths.js.map +1 -0
- package/dist/phases/deps.js +372 -0
- package/dist/phases/deps.js.map +1 -0
- package/dist/phases/index.js +349 -0
- package/dist/phases/index.js.map +1 -0
- package/dist/pipeline/index.js +10 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/phase.js +45 -0
- package/dist/pipeline/phase.js.map +1 -0
- package/dist/platform.js +211 -0
- package/dist/platform.js.map +1 -0
- package/dist/project-info.js +84 -0
- package/dist/project-info.js.map +1 -0
- package/dist/reconciliation/index.js +10 -0
- package/dist/reconciliation/index.js.map +1 -0
- package/dist/reconciliation/link-store.js +129 -0
- package/dist/reconciliation/link-store.js.map +1 -0
- package/dist/reconciliation/reconciliation-engine.js +298 -0
- package/dist/reconciliation/reconciliation-engine.js.map +1 -0
- package/dist/release/artifacts.js +427 -0
- package/dist/release/artifacts.js.map +1 -0
- package/dist/release/changelog-writer.js +151 -0
- package/dist/release/changelog-writer.js.map +1 -0
- package/dist/release/channel.js +144 -0
- package/dist/release/channel.js.map +1 -0
- package/dist/release/ci.js +166 -0
- package/dist/release/ci.js.map +1 -0
- package/dist/release/github-pr.js +225 -0
- package/dist/release/github-pr.js.map +1 -0
- package/dist/release/guards.js +116 -0
- package/dist/release/guards.js.map +1 -0
- package/dist/release/index.js +22 -0
- package/dist/release/index.js.map +1 -0
- package/dist/release/release-config.js +158 -0
- package/dist/release/release-config.js.map +1 -0
- package/dist/release/release-manifest.js +1019 -0
- package/dist/release/release-manifest.js.map +1 -0
- package/dist/release/version-bump.js +255 -0
- package/dist/release/version-bump.js.map +1 -0
- package/dist/remote/index.js +257 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/repair.js +130 -0
- package/dist/repair.js.map +1 -0
- package/dist/research/index.js +2 -0
- package/dist/research/index.js.map +1 -0
- package/dist/roadmap/index.js +59 -0
- package/dist/roadmap/index.js.map +1 -0
- package/dist/routing/capability-matrix.js +1556 -0
- package/dist/routing/capability-matrix.js.map +1 -0
- package/dist/routing/index.js +9 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/scaffold.d.ts +15 -2
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +1759 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/schema-management.js +295 -0
- package/dist/schema-management.js.map +1 -0
- package/dist/security/index.js +9 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/input-sanitization.js +321 -0
- package/dist/security/input-sanitization.js.map +1 -0
- package/dist/sequence/index.js +295 -0
- package/dist/sequence/index.js.map +1 -0
- package/dist/sessions/assumptions.js +54 -0
- package/dist/sessions/assumptions.js.map +1 -0
- package/dist/sessions/briefing.js +377 -0
- package/dist/sessions/briefing.js.map +1 -0
- package/dist/sessions/context-alert.js +222 -0
- package/dist/sessions/context-alert.js.map +1 -0
- package/dist/sessions/context-inject.js +61 -0
- package/dist/sessions/context-inject.js.map +1 -0
- package/dist/sessions/context-monitor.js +98 -0
- package/dist/sessions/context-monitor.js.map +1 -0
- package/dist/sessions/decisions.js +65 -0
- package/dist/sessions/decisions.js.map +1 -0
- package/dist/sessions/find.js +65 -0
- package/dist/sessions/find.js.map +1 -0
- package/dist/sessions/handoff.js +328 -0
- package/dist/sessions/handoff.js.map +1 -0
- package/dist/sessions/hitl-warnings.js +254 -0
- package/dist/sessions/hitl-warnings.js.map +1 -0
- package/dist/sessions/index.js +327 -0
- package/dist/sessions/index.js.map +1 -0
- package/dist/sessions/session-archive.js +40 -0
- package/dist/sessions/session-archive.js.map +1 -0
- package/dist/sessions/session-cleanup.js +59 -0
- package/dist/sessions/session-cleanup.js.map +1 -0
- package/dist/sessions/session-drift.js +134 -0
- package/dist/sessions/session-drift.js.map +1 -0
- package/dist/sessions/session-enforcement.js +144 -0
- package/dist/sessions/session-enforcement.js.map +1 -0
- package/dist/sessions/session-grade.js +253 -0
- package/dist/sessions/session-grade.js.map +1 -0
- package/dist/sessions/session-history.js +42 -0
- package/dist/sessions/session-history.js.map +1 -0
- package/dist/sessions/session-id.js +81 -0
- package/dist/sessions/session-id.js.map +1 -0
- package/dist/sessions/session-memory-bridge.js +52 -0
- package/dist/sessions/session-memory-bridge.js.map +1 -0
- package/dist/sessions/session-show.js +24 -0
- package/dist/sessions/session-show.js.map +1 -0
- package/dist/sessions/session-stats.js +69 -0
- package/dist/sessions/session-stats.js.map +1 -0
- package/dist/sessions/session-suspend.js +39 -0
- package/dist/sessions/session-suspend.js.map +1 -0
- package/dist/sessions/session-switch.js +51 -0
- package/dist/sessions/session-switch.js.map +1 -0
- package/dist/sessions/session-view.js +76 -0
- package/dist/sessions/session-view.js.map +1 -0
- package/dist/sessions/snapshot.js +213 -0
- package/dist/sessions/snapshot.js.map +1 -0
- package/dist/sessions/statusline-setup.js +85 -0
- package/dist/sessions/statusline-setup.js.map +1 -0
- package/dist/sessions/types.js +8 -0
- package/dist/sessions/types.js.map +1 -0
- package/dist/skills/agents/config.js +94 -0
- package/dist/skills/agents/config.js.map +1 -0
- package/dist/skills/agents/install.js +116 -0
- package/dist/skills/agents/install.js.map +1 -0
- package/dist/skills/agents/registry.js +161 -0
- package/dist/skills/agents/registry.js.map +1 -0
- package/dist/skills/discovery.js +333 -0
- package/dist/skills/discovery.js.map +1 -0
- package/dist/skills/dispatch.js +347 -0
- package/dist/skills/dispatch.js.map +1 -0
- package/dist/skills/dynamic-skill-generator.d.ts +0 -2
- package/dist/skills/dynamic-skill-generator.d.ts.map +1 -1
- package/dist/skills/dynamic-skill-generator.js +87 -0
- package/dist/skills/dynamic-skill-generator.js.map +1 -0
- package/dist/skills/index.js +44 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/injection/subagent.js +195 -0
- package/dist/skills/injection/subagent.js.map +1 -0
- package/dist/skills/injection/token.js +260 -0
- package/dist/skills/injection/token.js.map +1 -0
- package/dist/skills/install.js +40 -0
- package/dist/skills/install.js.map +1 -0
- package/dist/skills/manifests/contribution.js +175 -0
- package/dist/skills/manifests/contribution.js.map +1 -0
- package/dist/skills/manifests/research.js +281 -0
- package/dist/skills/manifests/research.js.map +1 -0
- package/dist/skills/manifests/resolver.js +146 -0
- package/dist/skills/manifests/resolver.js.map +1 -0
- package/dist/skills/marketplace.js +90 -0
- package/dist/skills/marketplace.js.map +1 -0
- package/dist/skills/orchestrator/spawn.js +178 -0
- package/dist/skills/orchestrator/spawn.js.map +1 -0
- package/dist/skills/orchestrator/startup.js +451 -0
- package/dist/skills/orchestrator/startup.js.map +1 -0
- package/dist/skills/orchestrator/validator.js +301 -0
- package/dist/skills/orchestrator/validator.js.map +1 -0
- package/dist/skills/precedence-integration.js +73 -0
- package/dist/skills/precedence-integration.js.map +1 -0
- package/dist/skills/precedence-types.js +16 -0
- package/dist/skills/precedence-types.js.map +1 -0
- package/dist/skills/routing-table.js +63 -0
- package/dist/skills/routing-table.js.map +1 -0
- package/dist/skills/skill-paths.js +217 -0
- package/dist/skills/skill-paths.js.map +1 -0
- package/dist/skills/test-utility.js +55 -0
- package/dist/skills/test-utility.js.map +1 -0
- package/dist/skills/types.js +118 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skills/validation.js +183 -0
- package/dist/skills/validation.js.map +1 -0
- package/dist/skills/version.js +57 -0
- package/dist/skills/version.js.map +1 -0
- package/dist/snapshot/index.js +188 -0
- package/dist/snapshot/index.js.map +1 -0
- package/dist/spawn/adapter-registry.js +246 -0
- package/dist/spawn/adapter-registry.js.map +1 -0
- package/dist/spawn/index.js +10 -0
- package/dist/spawn/index.js.map +1 -0
- package/dist/stats/index.js +343 -0
- package/dist/stats/index.js.map +1 -0
- package/dist/stats/workflow-telemetry.js +400 -0
- package/dist/stats/workflow-telemetry.js.map +1 -0
- package/dist/sticky/archive.js +47 -0
- package/dist/sticky/archive.js.map +1 -0
- package/dist/sticky/convert.js +235 -0
- package/dist/sticky/convert.js.map +1 -0
- package/dist/sticky/create.js +48 -0
- package/dist/sticky/create.js.map +1 -0
- package/dist/sticky/id.js +35 -0
- package/dist/sticky/id.js.map +1 -0
- package/dist/sticky/index.js +16 -0
- package/dist/sticky/index.js.map +1 -0
- package/dist/sticky/list.js +44 -0
- package/dist/sticky/list.js.map +1 -0
- package/dist/sticky/purge.js +45 -0
- package/dist/sticky/purge.js.map +1 -0
- package/dist/sticky/show.js +42 -0
- package/dist/sticky/show.js.map +1 -0
- package/dist/sticky/types.js +10 -0
- package/dist/sticky/types.js.map +1 -0
- package/dist/store/agent-registry-accessor.d.ts +203 -12
- package/dist/store/agent-registry-accessor.d.ts.map +1 -1
- package/dist/store/agent-registry-accessor.js +783 -0
- package/dist/store/agent-registry-accessor.js.map +1 -0
- package/dist/store/api-key-kdf.d.ts +73 -0
- package/dist/store/api-key-kdf.d.ts.map +1 -0
- package/dist/store/api-key-kdf.js +84 -0
- package/dist/store/api-key-kdf.js.map +1 -0
- package/dist/store/atomic.js +167 -0
- package/dist/store/atomic.js.map +1 -0
- package/dist/store/backup.js +94 -0
- package/dist/store/backup.js.map +1 -0
- package/dist/store/brain-accessor.js +397 -0
- package/dist/store/brain-accessor.js.map +1 -0
- package/dist/store/brain-schema.d.ts +8 -8
- package/dist/store/brain-schema.js +215 -0
- package/dist/store/brain-schema.js.map +1 -0
- package/dist/store/brain-sqlite.js +222 -0
- package/dist/store/brain-sqlite.js.map +1 -0
- package/dist/store/cache.js +168 -0
- package/dist/store/cache.js.map +1 -0
- package/dist/store/chain-schema.js +51 -0
- package/dist/store/chain-schema.js.map +1 -0
- package/dist/store/cleanup-legacy.d.ts +128 -0
- package/dist/store/cleanup-legacy.d.ts.map +1 -0
- package/dist/store/cleanup-legacy.js +171 -0
- package/dist/store/cleanup-legacy.js.map +1 -0
- package/dist/store/conduit-sqlite.d.ts +184 -0
- package/dist/store/conduit-sqlite.d.ts.map +1 -0
- package/dist/store/conduit-sqlite.js +570 -0
- package/dist/store/conduit-sqlite.js.map +1 -0
- package/dist/store/converters.js +124 -0
- package/dist/store/converters.js.map +1 -0
- package/dist/store/cross-db-cleanup.js +319 -0
- package/dist/store/cross-db-cleanup.js.map +1 -0
- package/dist/store/data-accessor.js +26 -0
- package/dist/store/data-accessor.js.map +1 -0
- package/dist/store/data-safety-central.js +269 -0
- package/dist/store/data-safety-central.js.map +1 -0
- package/dist/store/data-safety.js +274 -0
- package/dist/store/data-safety.js.map +1 -0
- package/dist/store/db-helpers.js +224 -0
- package/dist/store/db-helpers.js.map +1 -0
- package/dist/store/export.js +155 -0
- package/dist/store/export.js.map +1 -0
- package/dist/store/file-utils.js +270 -0
- package/dist/store/file-utils.js.map +1 -0
- package/dist/store/git-checkpoint.js +365 -0
- package/dist/store/git-checkpoint.js.map +1 -0
- package/dist/store/global-salt.d.ts +78 -0
- package/dist/store/global-salt.d.ts.map +1 -0
- package/dist/store/global-salt.js +147 -0
- package/dist/store/global-salt.js.map +1 -0
- package/dist/store/import-logging.js +139 -0
- package/dist/store/import-logging.js.map +1 -0
- package/dist/store/import-remap.js +145 -0
- package/dist/store/import-remap.js.map +1 -0
- package/dist/store/import-sort.js +121 -0
- package/dist/store/import-sort.js.map +1 -0
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +29 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/json.js +208 -0
- package/dist/store/json.js.map +1 -0
- package/dist/store/lifecycle-store.js +249 -0
- package/dist/store/lifecycle-store.js.map +1 -0
- package/dist/store/lock.js +70 -0
- package/dist/store/lock.js.map +1 -0
- package/dist/store/migrate-signaldock-to-conduit.d.ts +81 -0
- package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -0
- package/dist/store/migrate-signaldock-to-conduit.js +555 -0
- package/dist/store/migrate-signaldock-to-conduit.js.map +1 -0
- package/dist/store/migration-manager.js +151 -0
- package/dist/store/migration-manager.js.map +1 -0
- package/dist/store/migration-sqlite.js +676 -0
- package/dist/store/migration-sqlite.js.map +1 -0
- package/dist/store/nexus-schema.js +62 -0
- package/dist/store/nexus-schema.js.map +1 -0
- package/dist/store/nexus-sqlite.d.ts +14 -2
- package/dist/store/nexus-sqlite.d.ts.map +1 -1
- package/dist/store/nexus-sqlite.js +242 -0
- package/dist/store/nexus-sqlite.js.map +1 -0
- package/dist/store/nexus-validation-schemas.js +40 -0
- package/dist/store/nexus-validation-schemas.js.map +1 -0
- package/dist/store/parsers.js +37 -0
- package/dist/store/parsers.js.map +1 -0
- package/dist/store/project-detect.js +457 -0
- package/dist/store/project-detect.js.map +1 -0
- package/dist/store/provider.js +101 -0
- package/dist/store/provider.js.map +1 -0
- package/dist/store/safety-data-accessor.js +257 -0
- package/dist/store/safety-data-accessor.js.map +1 -0
- package/dist/store/schema.js +7 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/session-store.js +219 -0
- package/dist/store/session-store.js.map +1 -0
- package/dist/store/signaldock-sqlite.d.ts +122 -19
- package/dist/store/signaldock-sqlite.d.ts.map +1 -1
- package/dist/store/signaldock-sqlite.js +550 -0
- package/dist/store/signaldock-sqlite.js.map +1 -0
- package/dist/store/sqlite-backup.d.ts +121 -10
- package/dist/store/sqlite-backup.d.ts.map +1 -1
- package/dist/store/sqlite-backup.js +359 -0
- package/dist/store/sqlite-backup.js.map +1 -0
- package/dist/store/sqlite-data-accessor.js +787 -0
- package/dist/store/sqlite-data-accessor.js.map +1 -0
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +481 -0
- package/dist/store/sqlite.js.map +1 -0
- package/dist/store/status-registry.js +8 -0
- package/dist/store/status-registry.js.map +1 -0
- package/dist/store/task-store.js +358 -0
- package/dist/store/task-store.js.map +1 -0
- package/dist/store/tasks-schema.d.ts +8 -8
- package/dist/store/tasks-schema.js +610 -0
- package/dist/store/tasks-schema.js.map +1 -0
- package/dist/store/typed-query.js +15 -0
- package/dist/store/typed-query.js.map +1 -0
- package/dist/store/validation-schemas.d.ts +37 -37
- package/dist/store/validation-schemas.js +278 -0
- package/dist/store/validation-schemas.js.map +1 -0
- package/dist/system/archive-analytics.js +277 -0
- package/dist/system/archive-analytics.js.map +1 -0
- package/dist/system/archive-stats.js +64 -0
- package/dist/system/archive-stats.js.map +1 -0
- package/dist/system/audit.js +145 -0
- package/dist/system/audit.js.map +1 -0
- package/dist/system/backup.d.ts +65 -3
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +280 -0
- package/dist/system/backup.js.map +1 -0
- package/dist/system/cleanup.js +134 -0
- package/dist/system/cleanup.js.map +1 -0
- package/dist/system/health.js +1100 -0
- package/dist/system/health.js.map +1 -0
- package/dist/system/index.js +18 -0
- package/dist/system/index.js.map +1 -0
- package/dist/system/inject-generate.js +122 -0
- package/dist/system/inject-generate.js.map +1 -0
- package/dist/system/labels.js +38 -0
- package/dist/system/labels.js.map +1 -0
- package/dist/system/metrics.js +61 -0
- package/dist/system/metrics.js.map +1 -0
- package/dist/system/migrate.js +43 -0
- package/dist/system/migrate.js.map +1 -0
- package/dist/system/platform-paths.js +80 -0
- package/dist/system/platform-paths.js.map +1 -0
- package/dist/system/runtime.d.ts +0 -2
- package/dist/system/runtime.d.ts.map +1 -1
- package/dist/system/runtime.js +161 -0
- package/dist/system/runtime.js.map +1 -0
- package/dist/system/safestop.js +99 -0
- package/dist/system/safestop.js.map +1 -0
- package/dist/system/storage-preflight.js +123 -0
- package/dist/system/storage-preflight.js.map +1 -0
- package/dist/task-work/index.js +159 -0
- package/dist/task-work/index.js.map +1 -0
- package/dist/tasks/add.d.ts +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +736 -0
- package/dist/tasks/add.js.map +1 -0
- package/dist/tasks/analyze.js +85 -0
- package/dist/tasks/analyze.js.map +1 -0
- package/dist/tasks/archive.js +90 -0
- package/dist/tasks/archive.js.map +1 -0
- package/dist/tasks/atomicity.js +83 -0
- package/dist/tasks/atomicity.js.map +1 -0
- package/dist/tasks/cancel-ops.js +83 -0
- package/dist/tasks/cancel-ops.js.map +1 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +214 -0
- package/dist/tasks/complete.js.map +1 -0
- package/dist/tasks/crossref-extract.js +73 -0
- package/dist/tasks/crossref-extract.js.map +1 -0
- package/dist/tasks/delete-preview.js +192 -0
- package/dist/tasks/delete-preview.js.map +1 -0
- package/dist/tasks/delete.js +120 -0
- package/dist/tasks/delete.js.map +1 -0
- package/dist/tasks/deletion-strategy.js +200 -0
- package/dist/tasks/deletion-strategy.js.map +1 -0
- package/dist/tasks/dependency-check.js +278 -0
- package/dist/tasks/dependency-check.js.map +1 -0
- package/dist/tasks/deps-ready.js +32 -0
- package/dist/tasks/deps-ready.js.map +1 -0
- package/dist/tasks/enforcement.js +86 -0
- package/dist/tasks/enforcement.js.map +1 -0
- package/dist/tasks/epic-enforcement.js +294 -0
- package/dist/tasks/epic-enforcement.js.map +1 -0
- package/dist/tasks/find.d.ts.map +1 -1
- package/dist/tasks/find.js +157 -0
- package/dist/tasks/find.js.map +1 -0
- package/dist/tasks/graph-cache.js +127 -0
- package/dist/tasks/graph-cache.js.map +1 -0
- package/dist/tasks/graph-ops.js +171 -0
- package/dist/tasks/graph-ops.js.map +1 -0
- package/dist/tasks/graph-rag.js +328 -0
- package/dist/tasks/graph-rag.js.map +1 -0
- package/dist/tasks/hierarchy-policy.js +149 -0
- package/dist/tasks/hierarchy-policy.js.map +1 -0
- package/dist/tasks/hierarchy.js +185 -0
- package/dist/tasks/hierarchy.js.map +1 -0
- package/dist/tasks/id-generator.js +65 -0
- package/dist/tasks/id-generator.js.map +1 -0
- package/dist/tasks/index.js +14 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/labels.d.ts.map +1 -1
- package/dist/tasks/labels.js +55 -0
- package/dist/tasks/labels.js.map +1 -0
- package/dist/tasks/list.js +75 -0
- package/dist/tasks/list.js.map +1 -0
- package/dist/tasks/phase-tracking.js +133 -0
- package/dist/tasks/phase-tracking.js.map +1 -0
- package/dist/tasks/pipeline-stage.js +248 -0
- package/dist/tasks/pipeline-stage.js.map +1 -0
- package/dist/tasks/plan.js +268 -0
- package/dist/tasks/plan.js.map +1 -0
- package/dist/tasks/relates.d.ts.map +1 -1
- package/dist/tasks/relates.js +101 -0
- package/dist/tasks/relates.js.map +1 -0
- package/dist/tasks/show.d.ts.map +1 -1
- package/dist/tasks/show.js +83 -0
- package/dist/tasks/show.js.map +1 -0
- package/dist/tasks/size-weighting.js +86 -0
- package/dist/tasks/size-weighting.js.map +1 -0
- package/dist/tasks/staleness.js +86 -0
- package/dist/tasks/staleness.js.map +1 -0
- package/dist/tasks/task-ops.js +1741 -0
- package/dist/tasks/task-ops.js.map +1 -0
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +303 -0
- package/dist/tasks/update.js.map +1 -0
- package/dist/templates/index.js +10 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/parser.js +254 -0
- package/dist/templates/parser.js.map +1 -0
- package/dist/ui/aliases.js +153 -0
- package/dist/ui/aliases.js.map +1 -0
- package/dist/ui/changelog.js +184 -0
- package/dist/ui/changelog.js.map +1 -0
- package/dist/ui/command-registry.js +168 -0
- package/dist/ui/command-registry.js.map +1 -0
- package/dist/ui/flags.js +94 -0
- package/dist/ui/flags.js.map +1 -0
- package/dist/ui/index.js +24 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/upgrade.js +1148 -0
- package/dist/upgrade.js.map +1 -0
- package/dist/validation/chain-validation.js +146 -0
- package/dist/validation/chain-validation.js.map +1 -0
- package/dist/validation/compliance.js +155 -0
- package/dist/validation/compliance.js.map +1 -0
- package/dist/validation/docs-sync.js +212 -0
- package/dist/validation/docs-sync.js.map +1 -0
- package/dist/validation/doctor/checks.js +1069 -0
- package/dist/validation/doctor/checks.js.map +1 -0
- package/dist/validation/doctor/index.js +9 -0
- package/dist/validation/doctor/index.js.map +1 -0
- package/dist/validation/doctor/project-cache.js +160 -0
- package/dist/validation/doctor/project-cache.js.map +1 -0
- package/dist/validation/doctor/utils.js +155 -0
- package/dist/validation/doctor/utils.js.map +1 -0
- package/dist/validation/engine.d.ts.map +1 -1
- package/dist/validation/engine.js +914 -0
- package/dist/validation/engine.js.map +1 -0
- package/dist/validation/gap-check.js +175 -0
- package/dist/validation/gap-check.js.map +1 -0
- package/dist/validation/index.js +40 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/manifest.js +237 -0
- package/dist/validation/manifest.js.map +1 -0
- package/dist/validation/operation-gate-validators.js +724 -0
- package/dist/validation/operation-gate-validators.js.map +1 -0
- package/dist/validation/operation-verification-gates.js +532 -0
- package/dist/validation/operation-verification-gates.js.map +1 -0
- package/dist/validation/param-utils.d.ts +5 -3
- package/dist/validation/param-utils.d.ts.map +1 -1
- package/dist/validation/param-utils.js +141 -0
- package/dist/validation/param-utils.js.map +1 -0
- package/dist/validation/protocol-common.js +300 -0
- package/dist/validation/protocol-common.js.map +1 -0
- package/dist/validation/protocols/_shared.d.ts.map +1 -1
- package/dist/validation/protocols/_shared.js +82 -0
- package/dist/validation/protocols/_shared.js.map +1 -0
- package/dist/validation/protocols/architecture-decision.js +31 -0
- package/dist/validation/protocols/architecture-decision.js.map +1 -0
- package/dist/validation/protocols/artifact-publish.js +28 -0
- package/dist/validation/protocols/artifact-publish.js.map +1 -0
- package/dist/validation/protocols/consensus.js +41 -0
- package/dist/validation/protocols/consensus.js.map +1 -0
- package/dist/validation/protocols/contribution.js +27 -0
- package/dist/validation/protocols/contribution.js.map +1 -0
- package/dist/validation/protocols/decomposition.js +28 -0
- package/dist/validation/protocols/decomposition.js.map +1 -0
- package/dist/validation/protocols/implementation.js +24 -0
- package/dist/validation/protocols/implementation.js.map +1 -0
- package/dist/validation/protocols/provenance.js +29 -0
- package/dist/validation/protocols/provenance.js.map +1 -0
- package/dist/validation/protocols/release.js +29 -0
- package/dist/validation/protocols/release.js.map +1 -0
- package/dist/validation/protocols/research.js +24 -0
- package/dist/validation/protocols/research.js.map +1 -0
- package/dist/validation/protocols/specification.js +27 -0
- package/dist/validation/protocols/specification.js.map +1 -0
- package/dist/validation/protocols/testing.js +30 -0
- package/dist/validation/protocols/testing.js.map +1 -0
- package/dist/validation/protocols/validation.js +30 -0
- package/dist/validation/protocols/validation.js.map +1 -0
- package/dist/validation/schema-integrity.js +170 -0
- package/dist/validation/schema-integrity.js.map +1 -0
- package/dist/validation/schema-validator.js +176 -0
- package/dist/validation/schema-validator.js.map +1 -0
- package/dist/validation/validate-ops.js +937 -0
- package/dist/validation/validate-ops.js.map +1 -0
- package/dist/validation/validation-rules.js +226 -0
- package/dist/validation/validation-rules.js.map +1 -0
- package/dist/validation/verification.js +321 -0
- package/dist/validation/verification.js.map +1 -0
- package/package.json +10 -8
- package/src/__tests__/paths-walkup.test.ts +305 -0
- package/src/__tests__/paths.test.ts +61 -17
- package/src/adapters/__tests__/manager.test.ts +0 -1
- package/src/codebase-map/analyzers/architecture.ts +0 -1
- package/src/conduit/__tests__/local-credential-flow.test.ts +20 -18
- package/src/conduit/__tests__/local-transport.test.ts +14 -12
- package/src/conduit/local-transport.ts +23 -13
- package/src/config.ts +0 -1
- package/src/errors.ts +24 -0
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.ts +2 -5
- package/src/hooks/handlers/session-hooks.ts +42 -0
- package/src/init.ts +1 -2
- package/src/internal.ts +67 -3
- package/src/lifecycle/cant/lifecycle-rcasd.cant +133 -0
- package/src/memory/__tests__/engine-compat.test.ts +2 -2
- package/src/memory/__tests__/pipeline-manifest-sqlite.test.ts +4 -4
- package/src/observability/__tests__/index.test.ts +4 -4
- package/src/observability/__tests__/log-filter.test.ts +4 -4
- package/src/output.ts +73 -75
- package/src/paths.ts +91 -14
- package/src/scaffold.ts +22 -3
- package/src/sessions/__tests__/session-grade.integration.test.ts +1 -1
- package/src/sessions/__tests__/session-grade.test.ts +2 -2
- package/src/skills/__tests__/dynamic-skill-generator.test.ts +0 -2
- package/src/skills/dynamic-skill-generator.ts +0 -2
- package/src/store/__tests__/agent-registry-accessor.test.ts +807 -0
- package/src/store/__tests__/api-key-kdf.test.ts +113 -0
- package/src/store/__tests__/cleanup-legacy.test.ts +268 -0
- package/src/store/__tests__/conduit-sqlite.test.ts +413 -0
- package/src/store/__tests__/database-topology-integration.test.ts +504 -0
- package/src/store/__tests__/global-salt.test.ts +195 -0
- package/src/store/__tests__/migrate-signaldock-to-conduit.test.ts +715 -0
- package/src/store/__tests__/signaldock-sqlite.test.ts +652 -0
- package/src/store/__tests__/sqlite-backup-global.test.ts +585 -0
- package/src/store/__tests__/sqlite-backup.test.ts +122 -10
- package/src/store/__tests__/t310-integration.test.ts +1150 -0
- package/src/store/agent-registry-accessor.ts +847 -140
- package/src/store/api-key-kdf.ts +104 -0
- package/src/store/cleanup-legacy.ts +208 -0
- package/src/store/conduit-sqlite.ts +655 -0
- package/src/store/global-salt.ts +175 -0
- package/src/store/index.ts +7 -0
- package/src/store/migrate-signaldock-to-conduit.ts +669 -0
- package/src/store/nexus-sqlite.ts +32 -3
- package/src/store/signaldock-sqlite.ts +431 -254
- package/src/store/sqlite-backup.ts +544 -38
- package/src/store/sqlite.ts +19 -3
- package/src/system/__tests__/backup.test.ts +237 -0
- package/src/system/backup.ts +186 -26
- package/src/system/runtime.ts +4 -6
- package/src/tasks/__tests__/error-hints.test.ts +256 -0
- package/src/tasks/add.ts +99 -9
- package/src/tasks/complete.ts +4 -1
- package/src/tasks/find.ts +4 -1
- package/src/tasks/labels.ts +4 -1
- package/src/tasks/relates.ts +16 -4
- package/src/tasks/show.ts +4 -1
- package/src/tasks/update.ts +32 -3
- package/src/validation/__tests__/error-hints.test.ts +97 -0
- package/src/validation/engine.ts +16 -1
- package/src/validation/param-utils.ts +10 -7
- package/src/validation/protocols/_shared.ts +14 -6
- package/src/validation/protocols/cant/architecture-decision.cant +80 -0
- package/src/validation/protocols/cant/artifact-publish.cant +95 -0
- package/src/validation/protocols/cant/consensus.cant +74 -0
- package/src/validation/protocols/cant/contribution.cant +82 -0
- package/src/validation/protocols/cant/decomposition.cant +92 -0
- package/src/validation/protocols/cant/implementation.cant +67 -0
- package/src/validation/protocols/cant/provenance.cant +88 -0
- package/src/validation/protocols/cant/release.cant +96 -0
- package/src/validation/protocols/cant/research.cant +66 -0
- package/src/validation/protocols/cant/specification.cant +67 -0
- package/src/validation/protocols/cant/testing.cant +88 -0
- package/src/validation/protocols/cant/validation.cant +65 -0
- package/src/validation/protocols/protocols-markdown/decomposition.md +0 -4
- package/templates/cleo-gitignore +19 -3
- package/templates/config.template.json +0 -1
- package/templates/global-config.template.json +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regression tests: CleoError fix hints on validation-layer throws.
|
|
3
|
+
*
|
|
4
|
+
* Each test invokes a validation function with invalid input and asserts that
|
|
5
|
+
* the thrown CleoError carries a non-empty `fix` string and, where applicable,
|
|
6
|
+
* a `details.field` identifying the failing field.
|
|
7
|
+
*
|
|
8
|
+
* @task T341
|
|
9
|
+
* @epic T335
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { describe, expect, it } from 'vitest';
|
|
13
|
+
import { CleoError } from '../../errors.js';
|
|
14
|
+
import { sanitizeFilePath } from '../engine.js';
|
|
15
|
+
import { loadManifestEntryByTaskId, loadManifestEntryFromFile } from '../protocols/_shared.js';
|
|
16
|
+
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Helper
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
|
|
21
|
+
function assertErrorHints(
|
|
22
|
+
fn: () => unknown,
|
|
23
|
+
opts: { fixIncludes?: string; detailsField?: string },
|
|
24
|
+
): void {
|
|
25
|
+
let caught: unknown;
|
|
26
|
+
try {
|
|
27
|
+
fn();
|
|
28
|
+
} catch (err) {
|
|
29
|
+
caught = err;
|
|
30
|
+
}
|
|
31
|
+
expect(caught).toBeInstanceOf(CleoError);
|
|
32
|
+
const e = caught as CleoError;
|
|
33
|
+
expect(e.fix).toBeTruthy();
|
|
34
|
+
if (opts.fixIncludes) {
|
|
35
|
+
expect(e.fix).toContain(opts.fixIncludes);
|
|
36
|
+
}
|
|
37
|
+
if (opts.detailsField) {
|
|
38
|
+
expect(e.details).toBeDefined();
|
|
39
|
+
expect(e.details!.field).toBe(opts.detailsField);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// sanitizeFilePath — engine.ts
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
|
|
47
|
+
describe('error-hints: sanitizeFilePath', () => {
|
|
48
|
+
it('empty path — fix mentions file path, field=path', () => {
|
|
49
|
+
assertErrorHints(() => sanitizeFilePath(''), {
|
|
50
|
+
detailsField: 'path',
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('path with shell metachar — fix mentions shell metacharacters, field=path', () => {
|
|
55
|
+
assertErrorHints(() => sanitizeFilePath('/tmp/file;rm -rf /'), {
|
|
56
|
+
fixIncludes: 'metacharacter',
|
|
57
|
+
detailsField: 'path',
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('path ending in backslash — fix mentions backslash, field=path', () => {
|
|
62
|
+
assertErrorHints(() => sanitizeFilePath('/tmp/file\\'), {
|
|
63
|
+
fixIncludes: 'backslash',
|
|
64
|
+
detailsField: 'path',
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('path with newline — fix mentions newline, field=path', () => {
|
|
69
|
+
assertErrorHints(() => sanitizeFilePath('/tmp/file\ninjected'), {
|
|
70
|
+
fixIncludes: 'newline',
|
|
71
|
+
detailsField: 'path',
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// loadManifestEntryByTaskId — protocols/_shared.ts
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
|
|
80
|
+
describe('error-hints: loadManifestEntryByTaskId', () => {
|
|
81
|
+
it('task not in manifest — fix mentions manifest entry, field=taskId', () => {
|
|
82
|
+
// This will always throw NOT_FOUND since no manifest exists in test env
|
|
83
|
+
assertErrorHints(() => loadManifestEntryByTaskId('T9999'), {
|
|
84
|
+
fixIncludes: 'manifest',
|
|
85
|
+
detailsField: 'taskId',
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
describe('error-hints: loadManifestEntryFromFile', () => {
|
|
91
|
+
it('manifest file not found — fix mentions manifest file path, field=manifestFile', () => {
|
|
92
|
+
assertErrorHints(() => loadManifestEntryFromFile('/nonexistent/path/manifest.json'), {
|
|
93
|
+
fixIncludes: 'manifest',
|
|
94
|
+
detailsField: 'manifestFile',
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
package/src/validation/engine.ts
CHANGED
|
@@ -94,7 +94,10 @@ const SHELL_METACHARACTERS = new Set([
|
|
|
94
94
|
*/
|
|
95
95
|
export function sanitizeFilePath(path: string): string {
|
|
96
96
|
if (!path) {
|
|
97
|
-
throw new CleoError(ExitCode.VALIDATION_ERROR, 'Empty path provided'
|
|
97
|
+
throw new CleoError(ExitCode.VALIDATION_ERROR, 'Empty path provided', {
|
|
98
|
+
fix: 'Provide a non-empty file path',
|
|
99
|
+
details: { field: 'path' },
|
|
100
|
+
}); /* internal invariant — no user action */
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
for (const char of path) {
|
|
@@ -102,6 +105,10 @@ export function sanitizeFilePath(path: string): string {
|
|
|
102
105
|
throw new CleoError(
|
|
103
106
|
ExitCode.VALIDATION_ERROR,
|
|
104
107
|
`Path contains shell metacharacters - potential injection attempt: ${path}`,
|
|
108
|
+
{
|
|
109
|
+
fix: 'Remove shell metacharacters from the file path',
|
|
110
|
+
details: { field: 'path', actual: path },
|
|
111
|
+
},
|
|
105
112
|
);
|
|
106
113
|
}
|
|
107
114
|
}
|
|
@@ -110,6 +117,10 @@ export function sanitizeFilePath(path: string): string {
|
|
|
110
117
|
throw new CleoError(
|
|
111
118
|
ExitCode.VALIDATION_ERROR,
|
|
112
119
|
'Path ends with backslash - potential injection attempt',
|
|
120
|
+
{
|
|
121
|
+
fix: 'Remove trailing backslash from the file path',
|
|
122
|
+
details: { field: 'path', actual: path },
|
|
123
|
+
},
|
|
113
124
|
);
|
|
114
125
|
}
|
|
115
126
|
|
|
@@ -117,6 +128,10 @@ export function sanitizeFilePath(path: string): string {
|
|
|
117
128
|
throw new CleoError(
|
|
118
129
|
ExitCode.VALIDATION_ERROR,
|
|
119
130
|
'Path contains newline/carriage return - potential injection attempt',
|
|
131
|
+
{
|
|
132
|
+
fix: 'Remove newline characters from the file path',
|
|
133
|
+
details: { field: 'path', actual: path },
|
|
134
|
+
},
|
|
120
135
|
);
|
|
121
136
|
}
|
|
122
137
|
|
|
@@ -56,7 +56,7 @@ interface ParamDef {
|
|
|
56
56
|
items?: { type: ParamType };
|
|
57
57
|
cli?: ParamCliDef;
|
|
58
58
|
/** Schema config for dispatch adapter. */
|
|
59
|
-
|
|
59
|
+
dispatch?: ParamSchemaDef;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
// ---------------------------------------------------------------------------
|
|
@@ -79,7 +79,7 @@ export interface JSONSchemaObject {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
// ---------------------------------------------------------------------------
|
|
82
|
-
// 1.
|
|
82
|
+
// 1. buildDispatchInputSchema
|
|
83
83
|
// ---------------------------------------------------------------------------
|
|
84
84
|
|
|
85
85
|
/**
|
|
@@ -87,18 +87,18 @@ export interface JSONSchemaObject {
|
|
|
87
87
|
*
|
|
88
88
|
* Algorithm:
|
|
89
89
|
* 1. Iterate `def.params`
|
|
90
|
-
* 2. Skip params where schema `
|
|
90
|
+
* 2. Skip params where schema `dispatch.hidden === true`
|
|
91
91
|
* 3. Map ParamType → JSON Schema type
|
|
92
92
|
* 4. Collect names where `required === true` into `required[]`
|
|
93
93
|
* 5. Return { type: 'object', properties, required }
|
|
94
94
|
*/
|
|
95
|
-
export function
|
|
95
|
+
export function buildDispatchInputSchema(def: OperationDef): JSONSchemaObject {
|
|
96
96
|
const properties: Record<string, JsonSchemaProperty> = {};
|
|
97
97
|
const required: string[] = [];
|
|
98
98
|
|
|
99
99
|
for (const param of def.params ?? []) {
|
|
100
100
|
// Skip CLI-only params from dispatch schema
|
|
101
|
-
if (param.
|
|
101
|
+
if (param.dispatch?.hidden === true) continue;
|
|
102
102
|
|
|
103
103
|
const prop: JsonSchemaProperty = {
|
|
104
104
|
type: paramTypeToJsonSchema(param.type),
|
|
@@ -109,8 +109,8 @@ export function buildMcpInputSchema(def: OperationDef): JSONSchemaObject {
|
|
|
109
109
|
prop.items = { type: 'string' };
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
if (param.
|
|
113
|
-
prop.enum = param.
|
|
112
|
+
if (param.dispatch?.enum) {
|
|
113
|
+
prop.enum = param.dispatch.enum;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
properties[param.name] = prop;
|
|
@@ -123,6 +123,9 @@ export function buildMcpInputSchema(def: OperationDef): JSONSchemaObject {
|
|
|
123
123
|
return { type: 'object', properties, required };
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
/** @deprecated Use {@link buildDispatchInputSchema} instead. */
|
|
127
|
+
export const buildMcpInputSchema = buildDispatchInputSchema;
|
|
128
|
+
|
|
126
129
|
function paramTypeToJsonSchema(t: ParamDef['type']): JsonSchemaType {
|
|
127
130
|
switch (t) {
|
|
128
131
|
case 'string':
|
|
@@ -46,7 +46,10 @@ export function loadManifestEntryByTaskId(taskId: string): ManifestEntryInput {
|
|
|
46
46
|
const manifestPath = getManifestPath();
|
|
47
47
|
const entry = findManifestEntry(taskId, manifestPath);
|
|
48
48
|
if (!entry) {
|
|
49
|
-
throw new CleoError(ExitCode.NOT_FOUND, `No manifest entry found for task ${taskId}
|
|
49
|
+
throw new CleoError(ExitCode.NOT_FOUND, `No manifest entry found for task ${taskId}`, {
|
|
50
|
+
fix: `Ensure the agent wrote a manifest entry for ${taskId} before validation`,
|
|
51
|
+
details: { field: 'taskId', actual: taskId },
|
|
52
|
+
});
|
|
50
53
|
}
|
|
51
54
|
return JSON.parse(entry) as ManifestEntryInput;
|
|
52
55
|
}
|
|
@@ -59,7 +62,10 @@ export function loadManifestEntryByTaskId(taskId: string): ManifestEntryInput {
|
|
|
59
62
|
*/
|
|
60
63
|
export function loadManifestEntryFromFile(manifestFile: string): ManifestEntryInput {
|
|
61
64
|
if (!existsSync(manifestFile)) {
|
|
62
|
-
throw new CleoError(ExitCode.NOT_FOUND, `Manifest file not found: ${manifestFile}
|
|
65
|
+
throw new CleoError(ExitCode.NOT_FOUND, `Manifest file not found: ${manifestFile}`, {
|
|
66
|
+
fix: `Ensure the manifest file exists at: ${manifestFile}`,
|
|
67
|
+
details: { field: 'manifestFile', actual: manifestFile },
|
|
68
|
+
});
|
|
63
69
|
}
|
|
64
70
|
return JSON.parse(readFileSync(manifestFile, 'utf-8')) as ManifestEntryInput;
|
|
65
71
|
}
|
|
@@ -78,11 +84,13 @@ export function throwIfStrictFailed(
|
|
|
78
84
|
): void {
|
|
79
85
|
if (!opts.strict || result.valid) return;
|
|
80
86
|
const code = PROTOCOL_EXIT_CODES[protocol];
|
|
87
|
+
const errorViolations = result.violations.filter((v) => v.severity === 'error');
|
|
81
88
|
throw new CleoError(
|
|
82
89
|
code,
|
|
83
|
-
`${protocol} protocol violations for ${taskId}: ${
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
90
|
+
`${protocol} protocol violations for ${taskId}: ${errorViolations.map((v) => v.message).join('; ')}`,
|
|
91
|
+
{
|
|
92
|
+
fix: `Review ${protocol} protocol requirements and correct the listed violations`,
|
|
93
|
+
details: { field: 'protocol', actual: protocol },
|
|
94
|
+
},
|
|
87
95
|
);
|
|
88
96
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
kind: protocol
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
id: ADR
|
|
5
|
+
title: "Architecture Decision Record Protocol"
|
|
6
|
+
status: active
|
|
7
|
+
type: conditional
|
|
8
|
+
audience: "llm-agent, orchestrator"
|
|
9
|
+
tags: "adr, architecture, decisions"
|
|
10
|
+
skillRef: ct-adr-recorder
|
|
11
|
+
lastUpdated: 2026-04-07
|
|
12
|
+
enforcement: advisory
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Architecture Decision Record (ADR) Protocol
|
|
16
|
+
#
|
|
17
|
+
# Provenance: @task T4798 (ADR-006 Implementation)
|
|
18
|
+
# Type: Conditional Protocol
|
|
19
|
+
# Stage: RCADSD - A (ADR)
|
|
20
|
+
# Max Active: 3 protocols (including base)
|
|
21
|
+
#
|
|
22
|
+
# Trigger Conditions
|
|
23
|
+
#
|
|
24
|
+
# This protocol activates when the task involves:
|
|
25
|
+
# Decision Recording: "decision", "adr", "architecture decision"
|
|
26
|
+
# Stage Transition: "after consensus", "begin adr"
|
|
27
|
+
# Formalization: "lock in decision", "formalize choice", "decide"
|
|
28
|
+
# Architectural Shift: "pivot", "new architecture", "supersede"
|
|
29
|
+
# Record Creation: "create adr", "write adr", "record decision"
|
|
30
|
+
#
|
|
31
|
+
# Explicit Override: --protocol adr flag on task creation.
|
|
32
|
+
#
|
|
33
|
+
# Requirements (RFC 2119)
|
|
34
|
+
#
|
|
35
|
+
# MUST:
|
|
36
|
+
# ADR-001: MUST be generated from an accepted Consensus report verdict
|
|
37
|
+
# ADR-002: MUST include a consensus_manifest_id linking to its originating consensus
|
|
38
|
+
# ADR-003: MUST require explicit HITL approval to transition from proposed to accepted
|
|
39
|
+
# ADR-004: MUST include Context, Options Evaluated, Decision, Rationale, and Consequences sections
|
|
40
|
+
# ADR-005: MUST trigger downstream invalidation if superseded
|
|
41
|
+
# ADR-006: MUST be stored in the canonical decisions SQLite table via Drizzle ORM
|
|
42
|
+
# ADR-007: MUST set agent_type: "decision" in manifest entry
|
|
43
|
+
# ADR-008: MUST block the Specification stage until the ADR status is accepted
|
|
44
|
+
#
|
|
45
|
+
# SHOULD:
|
|
46
|
+
# ADR-010: SHOULD document the exact data structures or schema changes required
|
|
47
|
+
# ADR-011: SHOULD explicitly list which existing ADRs are superseded, with rationale
|
|
48
|
+
# ADR-012: SHOULD flag known technical debt introduced by the decision
|
|
49
|
+
# ADR-013: SHOULD document rejected alternatives with rationale for rejection
|
|
50
|
+
#
|
|
51
|
+
# MAY:
|
|
52
|
+
# ADR-020: MAY include diagrams (Mermaid) illustrating the architectural shift
|
|
53
|
+
# ADR-021: MAY link to external prior art or research documents
|
|
54
|
+
# ADR-022: MAY reference related ADRs that are not superseded but contextually relevant
|
|
55
|
+
#
|
|
56
|
+
# Decision Status Lifecycle:
|
|
57
|
+
# proposed -> accepted -> superseded
|
|
58
|
+
# \-> deprecated
|
|
59
|
+
#
|
|
60
|
+
# HITL Gate:
|
|
61
|
+
# 1. Agent drafts the ADR based on consensus verdict
|
|
62
|
+
# 2. Status is set to proposed
|
|
63
|
+
# 3. Pipeline pauses (HANDOFF_REQUIRED - exit code 65)
|
|
64
|
+
# 4. Human reviews the proposed ADR
|
|
65
|
+
# 5. If approved, status transitions to accepted
|
|
66
|
+
# 6. Only an accepted ADR unlocks the Specification stage
|
|
67
|
+
#
|
|
68
|
+
# Exit Codes:
|
|
69
|
+
# 65: HANDOFF_REQUIRED - ADR drafted as proposed, awaiting HITL acceptance
|
|
70
|
+
# 84: PROVENANCE_REQUIRED - Attempted to create ADR without linked Consensus report
|
|
71
|
+
# 18: CASCADE_FAILED - Downstream work blocked because governing ADR was superseded
|
|
72
|
+
#
|
|
73
|
+
# Anti-Patterns:
|
|
74
|
+
# - Creating ADR without consensus (decisions lack evidence foundation)
|
|
75
|
+
# - Auto-accepting without HITL review (bypasses human oversight gate)
|
|
76
|
+
# - Omitting downstream impact section (future implementers unaware of cascade)
|
|
77
|
+
# - Superseding without updating specs (creates orphaned specifications)
|
|
78
|
+
# - Using ADR to define implementation requirements (that is Specification's role)
|
|
79
|
+
# - Storing ADR only as markdown without SQLite record (loses relational queries)
|
|
80
|
+
# - Skipping rejected alternatives (loses institutional knowledge)
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
kind: protocol
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
id: ART
|
|
5
|
+
title: "Artifact Publish Protocol"
|
|
6
|
+
status: active
|
|
7
|
+
type: cross-cutting
|
|
8
|
+
audience: "llm-agent, orchestrator"
|
|
9
|
+
tags: "artifact, publish, distribution"
|
|
10
|
+
skillRef: ct-artifact-publisher
|
|
11
|
+
lastUpdated: 2026-04-07
|
|
12
|
+
enforcement: advisory
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Artifact Publish Protocol
|
|
16
|
+
#
|
|
17
|
+
# Type: Conditional Protocol
|
|
18
|
+
# Max Active: 3 protocols (including base)
|
|
19
|
+
#
|
|
20
|
+
# Relationship to Release Protocol:
|
|
21
|
+
# This protocol orchestrates artifact building and publishing.
|
|
22
|
+
# Release orchestrates version bumping, tagging, and changelog.
|
|
23
|
+
# They compose: release triggers artifact-publish for distribution phase.
|
|
24
|
+
#
|
|
25
|
+
# Trigger Conditions
|
|
26
|
+
#
|
|
27
|
+
# This protocol activates when the task involves:
|
|
28
|
+
# Package Publish: "publish", "package", "distribute"
|
|
29
|
+
# Artifact Build: "artifact", "build artifact", "bundle"
|
|
30
|
+
# Container Push: "docker push", "container registry", "image publish"
|
|
31
|
+
# Language Package: "crate", "gem", "wheel", "sdist"
|
|
32
|
+
# Multi-Artifact: "publish all", "release artifacts", "multi-package"
|
|
33
|
+
#
|
|
34
|
+
# Explicit Override: --protocol artifact-publish flag on task creation.
|
|
35
|
+
#
|
|
36
|
+
# Requirements (RFC 2119)
|
|
37
|
+
#
|
|
38
|
+
# MUST:
|
|
39
|
+
# ARTP-001: MUST validate artifact configuration before build
|
|
40
|
+
# ARTP-002: MUST execute dry-run before any real publish
|
|
41
|
+
# ARTP-003: MUST follow handler interface contract: validate -> build -> publish
|
|
42
|
+
# ARTP-004: MUST generate SHA-256 checksums for all built artifacts
|
|
43
|
+
# ARTP-005: MUST record provenance metadata via record_release()
|
|
44
|
+
# ARTP-006: MUST use sequential execution for multi-artifact publish
|
|
45
|
+
# ARTP-007: MUST set agent_type: "artifact-publish" in manifest
|
|
46
|
+
# ARTP-008: MUST NOT store credentials in config, output, or manifest
|
|
47
|
+
# ARTP-009: MUST halt pipeline and attempt rollback on first publish failure
|
|
48
|
+
#
|
|
49
|
+
# SHOULD:
|
|
50
|
+
# ARTP-010: SHOULD verify registry reachability before publish
|
|
51
|
+
# ARTP-011: SHOULD validate version consistency between config and artifact metadata
|
|
52
|
+
# ARTP-012: SHOULD log all publish operations to audit trail
|
|
53
|
+
# ARTP-013: SHOULD verify build output exists and is non-empty before publish
|
|
54
|
+
#
|
|
55
|
+
# MAY:
|
|
56
|
+
# ARTP-020: MAY batch validation across all artifacts before starting builds
|
|
57
|
+
# ARTP-021: MAY generate SBOM alongside artifacts (delegate to provenance)
|
|
58
|
+
# ARTP-022: MAY sign artifacts using configured signing method (delegate to provenance)
|
|
59
|
+
#
|
|
60
|
+
# Artifact Lifecycle State Machine:
|
|
61
|
+
# configured -> validated -> built -> published
|
|
62
|
+
# | | |
|
|
63
|
+
# failed failed failed -> rollback
|
|
64
|
+
#
|
|
65
|
+
# Registered Handlers (9 types):
|
|
66
|
+
# npm-package, python-wheel, python-sdist, go-module,
|
|
67
|
+
# cargo-crate, ruby-gem, docker-image, github-release, generic-tarball
|
|
68
|
+
#
|
|
69
|
+
# Multi-Artifact Pipeline Phases:
|
|
70
|
+
# Phase 1: Pre-validate all artifacts
|
|
71
|
+
# Phase 2: Build sequential per artifact
|
|
72
|
+
# Phase 3: Publish with rollback on failure
|
|
73
|
+
#
|
|
74
|
+
# Credential Handling:
|
|
75
|
+
# Agents MUST NOT store, log, or embed credentials
|
|
76
|
+
# Resolution order: env var -> CI secret -> credential manager (future)
|
|
77
|
+
#
|
|
78
|
+
# Error Codes (85-89):
|
|
79
|
+
# 85: E_ARTIFACT_TYPE_UNKNOWN
|
|
80
|
+
# 86: E_ARTIFACT_VALIDATION_FAILED
|
|
81
|
+
# 87: E_ARTIFACT_BUILD_FAILED
|
|
82
|
+
# 88: E_ARTIFACT_PUBLISH_FAILED (rollback attempted)
|
|
83
|
+
# 89: E_ARTIFACT_ROLLBACK_FAILED
|
|
84
|
+
#
|
|
85
|
+
# Anti-Patterns:
|
|
86
|
+
# - Publishing without dry-run first (irreversible registry state)
|
|
87
|
+
# - Storing credentials in config.json (committed to VCS)
|
|
88
|
+
# - Parallel multi-artifact publish (race conditions)
|
|
89
|
+
# - Skipping checksum generation (cannot verify integrity)
|
|
90
|
+
# - Publishing without version check (duplicate version errors)
|
|
91
|
+
# - Ignoring publish failures (inconsistent state)
|
|
92
|
+
# - Logging credential values (exposure in audit trail)
|
|
93
|
+
# - Building without validation (wastes time)
|
|
94
|
+
# - Manual rollback without recording (lost provenance chain)
|
|
95
|
+
# - Hardcoding registry URLs (breaks across environments)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
kind: protocol
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
id: CONS
|
|
5
|
+
title: "Consensus Protocol"
|
|
6
|
+
status: active
|
|
7
|
+
type: conditional
|
|
8
|
+
audience: "llm-agent, orchestrator"
|
|
9
|
+
tags: "consensus, voting, validation"
|
|
10
|
+
skillRef: ct-consensus-voter
|
|
11
|
+
lastUpdated: 2026-04-07
|
|
12
|
+
enforcement: strict
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Consensus Protocol
|
|
16
|
+
#
|
|
17
|
+
# Provenance: @task T3155, @epic T3147
|
|
18
|
+
# Type: Conditional Protocol
|
|
19
|
+
# Max Active: 3 protocols (including base)
|
|
20
|
+
#
|
|
21
|
+
# Trigger Conditions
|
|
22
|
+
#
|
|
23
|
+
# This protocol activates when the task involves:
|
|
24
|
+
# Decision Making: "vote", "decide", "choose", "select"
|
|
25
|
+
# Agreement: "consensus", "agree", "alignment"
|
|
26
|
+
# Conflict Resolution: "resolve", "dispute", "conflict"
|
|
27
|
+
# Validation: "validate claim", "verify assertion"
|
|
28
|
+
#
|
|
29
|
+
# Explicit Override: --protocol consensus flag on task creation.
|
|
30
|
+
#
|
|
31
|
+
# Requirements (RFC 2119)
|
|
32
|
+
#
|
|
33
|
+
# MUST:
|
|
34
|
+
# CONS-001: MUST use structured voting format
|
|
35
|
+
# CONS-002: MUST document rationale for each position
|
|
36
|
+
# CONS-003: MUST include confidence scores (0.0-1.0)
|
|
37
|
+
# CONS-004: MUST cite evidence supporting positions
|
|
38
|
+
# CONS-005: MUST flag conflicts with severity levels
|
|
39
|
+
# CONS-006: MUST escalate to HITL when threshold not reached
|
|
40
|
+
# CONS-007: MUST set agent_type: "analysis" in manifest
|
|
41
|
+
#
|
|
42
|
+
# SHOULD:
|
|
43
|
+
# CONS-010: SHOULD present multiple perspectives
|
|
44
|
+
# CONS-011: SHOULD identify hidden assumptions
|
|
45
|
+
# CONS-012: SHOULD document rejected alternatives
|
|
46
|
+
# CONS-013: SHOULD include uncertainty notes for low confidence
|
|
47
|
+
#
|
|
48
|
+
# MAY:
|
|
49
|
+
# CONS-020: MAY propose compromise positions
|
|
50
|
+
# CONS-021: MAY defer non-critical decisions
|
|
51
|
+
# CONS-022: MAY request additional research
|
|
52
|
+
#
|
|
53
|
+
# Verdict Thresholds:
|
|
54
|
+
# PROVEN: 3/5 agents OR 50%+ weighted confidence, reproducible evidence
|
|
55
|
+
# REFUTED: Counter-evidence invalidates, counter-proof exists
|
|
56
|
+
# CONTESTED: 3/5 split after 2 challenge rounds, document both sides
|
|
57
|
+
# INSUFFICIENT_EVIDENCE: Cannot reach verdict, request investigation
|
|
58
|
+
#
|
|
59
|
+
# HITL Escalation:
|
|
60
|
+
# - Contested verdict (3/5 split): Present conflict to user
|
|
61
|
+
# - Critical severity conflict: Immediate escalation
|
|
62
|
+
# - Insufficient evidence: Request user guidance
|
|
63
|
+
# - Unanimous suspicious consensus: Verify with user
|
|
64
|
+
#
|
|
65
|
+
# Exit Codes:
|
|
66
|
+
# EXIT_PROTOCOL_CONSENSUS (61) - Consensus protocol violation
|
|
67
|
+
# EXIT_PROTOCOL_GENERIC (67) - Generic protocol error
|
|
68
|
+
#
|
|
69
|
+
# Anti-Patterns:
|
|
70
|
+
# - Accepting unanimous consensus without scrutiny (may indicate groupthink)
|
|
71
|
+
# - Skipping evidence citations (decisions lack foundation)
|
|
72
|
+
# - Binary voting without confidence (loses nuance)
|
|
73
|
+
# - Ignoring minority positions (may miss valid concerns)
|
|
74
|
+
# - Premature escalation (wastes human attention)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
kind: protocol
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
id: CONT
|
|
5
|
+
title: "Contribution Protocol"
|
|
6
|
+
status: active
|
|
7
|
+
type: cross-cutting
|
|
8
|
+
audience: "llm-agent, orchestrator"
|
|
9
|
+
tags: "contribution, commit, pr"
|
|
10
|
+
skillRef: ct-contribution
|
|
11
|
+
lastUpdated: 2026-02-24
|
|
12
|
+
enforcement: strict
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Contribution Protocol
|
|
16
|
+
#
|
|
17
|
+
# Provenance: @task T3155, @epic T3147
|
|
18
|
+
# Type: Cross-Cutting Protocol
|
|
19
|
+
# Applies To: All RCASD-IVTR+C stages
|
|
20
|
+
# Max Active: 3 protocols (including base)
|
|
21
|
+
#
|
|
22
|
+
# Cross-Cutting Nature: This protocol applies across ALL stages of RCASD-IVTR+C.
|
|
23
|
+
# Unlike stage-specific protocols, contribution tracking is active whenever
|
|
24
|
+
# multi-agent coordination or attribution is needed.
|
|
25
|
+
#
|
|
26
|
+
# Trigger Conditions
|
|
27
|
+
#
|
|
28
|
+
# This protocol activates when the task involves:
|
|
29
|
+
# Shared File Modification: Modifying CLAUDE.md, AGENTS.md, shared configs
|
|
30
|
+
# PR Creation: "pull request", "PR", "merge request"
|
|
31
|
+
# Cross-Session Work: Multiple agents on same epic
|
|
32
|
+
# Audit Trail: Provenance, attribution, tracking
|
|
33
|
+
#
|
|
34
|
+
# Explicit Override: --protocol contribution flag on task creation.
|
|
35
|
+
#
|
|
36
|
+
# Requirements (RFC 2119)
|
|
37
|
+
#
|
|
38
|
+
# MUST:
|
|
39
|
+
# CONT-001: MUST follow commit message conventions
|
|
40
|
+
# CONT-002: MUST include provenance tags in code comments
|
|
41
|
+
# CONT-003: MUST pass all validation gates before merge
|
|
42
|
+
# CONT-004: MUST document decisions with rationale
|
|
43
|
+
# CONT-005: MUST flag conflicts with other sessions
|
|
44
|
+
# CONT-006: MUST write contribution record to manifest
|
|
45
|
+
# CONT-007: MUST set agent_type: "implementation" in manifest
|
|
46
|
+
#
|
|
47
|
+
# SHOULD:
|
|
48
|
+
# CONT-010: SHOULD include test coverage for changes
|
|
49
|
+
# CONT-011: SHOULD link to related tasks and research
|
|
50
|
+
# CONT-012: SHOULD document rejected alternatives
|
|
51
|
+
# CONT-013: SHOULD request review for significant changes
|
|
52
|
+
#
|
|
53
|
+
# MAY:
|
|
54
|
+
# CONT-020: MAY batch related changes into single contribution
|
|
55
|
+
# CONT-021: MAY defer documentation updates
|
|
56
|
+
# CONT-022: MAY propose follow-up improvements
|
|
57
|
+
#
|
|
58
|
+
# Commit Message Format:
|
|
59
|
+
# <type>(<scope>): <summary>
|
|
60
|
+
# Types: feat, fix, docs, test, refactor, chore, perf
|
|
61
|
+
#
|
|
62
|
+
# Validation Gates:
|
|
63
|
+
# Schema: JSON Schema validation (MUST pass)
|
|
64
|
+
# Tests: All tests pass (MUST pass)
|
|
65
|
+
# Lint: Code style compliance (SHOULD pass)
|
|
66
|
+
# Security: No secrets committed (MUST pass)
|
|
67
|
+
# Conflicts: No unresolved conflicts (MUST resolve)
|
|
68
|
+
#
|
|
69
|
+
# Provenance Thresholds:
|
|
70
|
+
# New code: 100%
|
|
71
|
+
# Existing code: 80%
|
|
72
|
+
# Legacy code: 50%
|
|
73
|
+
#
|
|
74
|
+
# Exit Codes:
|
|
75
|
+
# EXIT_PROTOCOL_CONTRIBUTION (65) - Contribution protocol violation
|
|
76
|
+
#
|
|
77
|
+
# Anti-Patterns:
|
|
78
|
+
# - Committing without provenance (breaks audit trail)
|
|
79
|
+
# - Skipping validation gates (quality regression)
|
|
80
|
+
# - Ignoring conflicts (creates merge debt)
|
|
81
|
+
# - Large unfocused commits (hard to review/revert)
|
|
82
|
+
# - Missing decision documentation (lost context)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
kind: protocol
|
|
3
|
+
version: 2.0.0
|
|
4
|
+
id: DCMP
|
|
5
|
+
title: "Decomposition Protocol"
|
|
6
|
+
status: active
|
|
7
|
+
type: conditional
|
|
8
|
+
audience: "llm-agent, orchestrator"
|
|
9
|
+
tags: "decomposition, hierarchy, atomicity, planning"
|
|
10
|
+
skillRef: ct-epic-architect
|
|
11
|
+
lastUpdated: 2026-02-24
|
|
12
|
+
provenanceTask: T3155
|
|
13
|
+
enforcement: strict
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Decomposition Protocol
|
|
17
|
+
#
|
|
18
|
+
# Provenance: @task T3155, @epic T3147
|
|
19
|
+
# Type: Conditional Protocol
|
|
20
|
+
# Max Active: 3 protocols (including base)
|
|
21
|
+
#
|
|
22
|
+
# Trigger Conditions
|
|
23
|
+
#
|
|
24
|
+
# This protocol activates when the task involves:
|
|
25
|
+
# Epic Planning: "epic", "project", "initiative"
|
|
26
|
+
# Breakdown: "decompose", "break down", "split"
|
|
27
|
+
# Planning: "plan", "roadmap", "phases"
|
|
28
|
+
# Analysis: "scope", "estimate complexity"
|
|
29
|
+
#
|
|
30
|
+
# Explicit Override: --protocol decomposition flag on task creation.
|
|
31
|
+
#
|
|
32
|
+
# Hard Invariants (always enforced):
|
|
33
|
+
# - Parent must exist: parent task ID must be present in the task store
|
|
34
|
+
# - No circular references: moving a task under its own descendant is rejected
|
|
35
|
+
# - Dependency DAG integrity: blockedBy/blocks must remain acyclic
|
|
36
|
+
#
|
|
37
|
+
# Configurable Limits (profile-driven):
|
|
38
|
+
# maxSiblings: default 0 (unlimited for llm-agent-first); 7 for human-cognitive
|
|
39
|
+
# maxActiveSiblings: default 32 (operational concurrency guard)
|
|
40
|
+
# maxDepth: default 3 (epic -> task -> subtask)
|
|
41
|
+
#
|
|
42
|
+
# Enforcement Profiles:
|
|
43
|
+
# llm-agent-first (default): maxSiblings=0, maxActiveSiblings=32, maxDepth=3
|
|
44
|
+
# human-cognitive: maxSiblings=7, maxActiveSiblings=3, maxDepth=3
|
|
45
|
+
#
|
|
46
|
+
# Requirements (RFC 2119)
|
|
47
|
+
#
|
|
48
|
+
# MUST:
|
|
49
|
+
# DCMP-001: MUST follow MECE principle (Mutually Exclusive, Collectively Exhaustive)
|
|
50
|
+
# DCMP-002: MUST map dependencies between tasks
|
|
51
|
+
# DCMP-003: MUST respect the configured hierarchy.maxDepth policy (default: 3)
|
|
52
|
+
# DCMP-004: MUST verify atomicity for leaf tasks
|
|
53
|
+
# DCMP-005: MUST NOT include time estimates (use size: small/medium/large)
|
|
54
|
+
# DCMP-006: MUST include acceptance criteria for each task
|
|
55
|
+
# DCMP-007: Siblings MUST respect the configured hierarchy.maxSiblings policy
|
|
56
|
+
# DCMP-008: Depth MUST respect the configured hierarchy.maxDepth policy
|
|
57
|
+
# DCMP-009: MUST set agent_type: "analysis" in manifest
|
|
58
|
+
#
|
|
59
|
+
# SHOULD:
|
|
60
|
+
# DCMP-010: SHOULD identify parallel execution opportunities
|
|
61
|
+
# DCMP-011: SHOULD flag unclear requirements for HITL
|
|
62
|
+
# DCMP-012: SHOULD consider existing task overlap
|
|
63
|
+
# DCMP-013: SHOULD assign phase to each task
|
|
64
|
+
#
|
|
65
|
+
# MAY:
|
|
66
|
+
# DCMP-020: MAY propose multiple decomposition options
|
|
67
|
+
# DCMP-021: MAY identify risks and mitigations
|
|
68
|
+
# DCMP-022: MAY suggest task consolidation
|
|
69
|
+
#
|
|
70
|
+
# Atomicity Criteria (6-Point Test):
|
|
71
|
+
# 1. Single File Scope: Affects <=3 tightly-coupled files
|
|
72
|
+
# 2. Single Cognitive Concern: One bounded concern per task
|
|
73
|
+
# 3. Clear Acceptance Criteria: Testable completion condition
|
|
74
|
+
# 4. No Context Switching: Completable within a single agent session
|
|
75
|
+
# 5. No Hidden Sub-Decisions: All choices made at decomposition
|
|
76
|
+
# 6. Programmatic Validation: Result verifiable by code/test
|
|
77
|
+
#
|
|
78
|
+
# Size Definitions:
|
|
79
|
+
# small: 1-2 files, single concern, MUST be atomic
|
|
80
|
+
# medium: 3-7 files, related concerns, SHOULD be atomic
|
|
81
|
+
# large: 8+ files, multiple concerns, MUST decompose further
|
|
82
|
+
#
|
|
83
|
+
# Exit Codes:
|
|
84
|
+
# EXIT_PROTOCOL_DECOMPOSITION (63) - Decomposition protocol violation
|
|
85
|
+
#
|
|
86
|
+
# Anti-Patterns:
|
|
87
|
+
# - Time estimates (cannot predict duration accurately)
|
|
88
|
+
# - Non-atomic leaf tasks (create hidden work)
|
|
89
|
+
# - Missing dependencies (incorrect execution order)
|
|
90
|
+
# - Exceeding configured maxDepth (complexity explosion)
|
|
91
|
+
# - Overlapping scopes (not MECE - duplicate work)
|
|
92
|
+
# - Skipping atomicity check (quality regression)
|