@aquex/cmos-mcp 1.0.0
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/CHANGELOG.md +99 -0
- package/LICENSE +15 -0
- package/README.md +250 -0
- package/cmos-seed/README.md +153 -0
- package/cmos-seed/context/master_context.json +27 -0
- package/cmos-seed/context/project_context.json +12 -0
- package/cmos-seed/db/schema.sql +334 -0
- package/cmos-seed/docs/README.md +128 -0
- package/cmos-seed/docs/agents-md-guide.md +253 -0
- package/cmos-seed/docs/build-session-prompt.md +137 -0
- package/cmos-seed/docs/getting-started.md +150 -0
- package/cmos-seed/docs/session-management-guide.md +163 -0
- package/cmos-seed/docs/sqlite-schema-reference.md +188 -0
- package/cmos-seed/foundational-docs/roadmap_template.md +365 -0
- package/cmos-seed/foundational-docs/tech_arch_template.md +331 -0
- package/cmos-seed/templates/PROJECT-README-template.md +110 -0
- package/cmos-seed/templates/agents.md +306 -0
- package/cmos-seed/tiers/build.md +110 -0
- package/cmos-seed/tiers/general.md +112 -0
- package/cmos-seed/tiers/managed.md +118 -0
- package/dist/.build-manifest.json +5 -0
- package/dist/auth/auth-state.d.ts +96 -0
- package/dist/auth/auth-state.d.ts.map +1 -0
- package/dist/auth/auth-state.js +115 -0
- package/dist/auth/auth-state.js.map +1 -0
- package/dist/auth/delivery-ack-cache.d.ts +27 -0
- package/dist/auth/delivery-ack-cache.d.ts.map +1 -0
- package/dist/auth/delivery-ack-cache.js +21 -0
- package/dist/auth/delivery-ack-cache.js.map +1 -0
- package/dist/auth/device-code.d.ts +136 -0
- package/dist/auth/device-code.d.ts.map +1 -0
- package/dist/auth/device-code.js +334 -0
- package/dist/auth/device-code.js.map +1 -0
- package/dist/auth/project-key-capture.d.ts +124 -0
- package/dist/auth/project-key-capture.d.ts.map +1 -0
- package/dist/auth/project-key-capture.js +218 -0
- package/dist/auth/project-key-capture.js.map +1 -0
- package/dist/combination/dependency-resolver.d.ts +69 -0
- package/dist/combination/dependency-resolver.d.ts.map +1 -0
- package/dist/combination/dependency-resolver.js +303 -0
- package/dist/combination/dependency-resolver.js.map +1 -0
- package/dist/combination/merge-strategies.d.ts +87 -0
- package/dist/combination/merge-strategies.d.ts.map +1 -0
- package/dist/combination/merge-strategies.js +210 -0
- package/dist/combination/merge-strategies.js.map +1 -0
- package/dist/combination/pack-combiner.d.ts +84 -0
- package/dist/combination/pack-combiner.d.ts.map +1 -0
- package/dist/combination/pack-combiner.js +288 -0
- package/dist/combination/pack-combiner.js.map +1 -0
- package/dist/combination/types.d.ts +112 -0
- package/dist/combination/types.d.ts.map +1 -0
- package/dist/combination/types.js +39 -0
- package/dist/combination/types.js.map +1 -0
- package/dist/domains/domain-pack-loader.d.ts +148 -0
- package/dist/domains/domain-pack-loader.d.ts.map +1 -0
- package/dist/domains/domain-pack-loader.js +501 -0
- package/dist/domains/domain-pack-loader.js.map +1 -0
- package/dist/domains/types.d.ts +64 -0
- package/dist/domains/types.d.ts.map +1 -0
- package/dist/domains/types.js +10 -0
- package/dist/domains/types.js.map +1 -0
- package/dist/errors/config-error.d.ts +13 -0
- package/dist/errors/config-error.d.ts.map +1 -0
- package/dist/errors/config-error.js +19 -0
- package/dist/errors/config-error.js.map +1 -0
- package/dist/errors/domain-error.d.ts +13 -0
- package/dist/errors/domain-error.d.ts.map +1 -0
- package/dist/errors/domain-error.js +19 -0
- package/dist/errors/domain-error.js.map +1 -0
- package/dist/errors/handler.d.ts +30 -0
- package/dist/errors/handler.d.ts.map +1 -0
- package/dist/errors/handler.js +63 -0
- package/dist/errors/handler.js.map +1 -0
- package/dist/errors/index.d.ts +9 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +25 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/io-error.d.ts +13 -0
- package/dist/errors/io-error.d.ts.map +1 -0
- package/dist/errors/io-error.js +19 -0
- package/dist/errors/io-error.js.map +1 -0
- package/dist/errors/logger.d.ts +21 -0
- package/dist/errors/logger.d.ts.map +1 -0
- package/dist/errors/logger.js +88 -0
- package/dist/errors/logger.js.map +1 -0
- package/dist/errors/mission-error.d.ts +27 -0
- package/dist/errors/mission-error.d.ts.map +1 -0
- package/dist/errors/mission-error.js +76 -0
- package/dist/errors/mission-error.js.map +1 -0
- package/dist/errors/types.d.ts +52 -0
- package/dist/errors/types.d.ts.map +1 -0
- package/dist/errors/types.js +3 -0
- package/dist/errors/types.js.map +1 -0
- package/dist/errors/utils.d.ts +24 -0
- package/dist/errors/utils.d.ts.map +1 -0
- package/dist/errors/utils.js +64 -0
- package/dist/errors/utils.js.map +1 -0
- package/dist/errors/validation-error.d.ts +13 -0
- package/dist/errors/validation-error.d.ts.map +1 -0
- package/dist/errors/validation-error.js +19 -0
- package/dist/errors/validation-error.js.map +1 -0
- package/dist/extraction/template-extractor.d.ts +59 -0
- package/dist/extraction/template-extractor.d.ts.map +1 -0
- package/dist/extraction/template-extractor.js +553 -0
- package/dist/extraction/template-extractor.js.map +1 -0
- package/dist/extraction/types.d.ts +160 -0
- package/dist/extraction/types.d.ts.map +1 -0
- package/dist/extraction/types.js +7 -0
- package/dist/extraction/types.js.map +1 -0
- package/dist/http-server.d.ts +18 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +326 -0
- package/dist/http-server.js.map +1 -0
- package/dist/import-export/hybrid-template-parser.d.ts +44 -0
- package/dist/import-export/hybrid-template-parser.d.ts.map +1 -0
- package/dist/import-export/hybrid-template-parser.js +373 -0
- package/dist/import-export/hybrid-template-parser.js.map +1 -0
- package/dist/import-export/security-validator.d.ts +93 -0
- package/dist/import-export/security-validator.d.ts.map +1 -0
- package/dist/import-export/security-validator.js +441 -0
- package/dist/import-export/security-validator.js.map +1 -0
- package/dist/import-export/template-exporter.d.ts +106 -0
- package/dist/import-export/template-exporter.d.ts.map +1 -0
- package/dist/import-export/template-exporter.js +247 -0
- package/dist/import-export/template-exporter.js.map +1 -0
- package/dist/import-export/template-importer.d.ts +97 -0
- package/dist/import-export/template-importer.d.ts.map +1 -0
- package/dist/import-export/template-importer.js +308 -0
- package/dist/import-export/template-importer.js.map +1 -0
- package/dist/import-export/types.d.ts +118 -0
- package/dist/import-export/types.d.ts.map +1 -0
- package/dist/import-export/types.js +41 -0
- package/dist/import-export/types.js.map +1 -0
- package/dist/index.d.ts +157 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +972 -0
- package/dist/index.js.map +1 -0
- package/dist/intelligence/agentic-controller.d.ts +345 -0
- package/dist/intelligence/agentic-controller.d.ts.map +1 -0
- package/dist/intelligence/agentic-controller.js +1376 -0
- package/dist/intelligence/agentic-controller.js.map +1 -0
- package/dist/intelligence/agentic-observability.d.ts +43 -0
- package/dist/intelligence/agentic-observability.d.ts.map +1 -0
- package/dist/intelligence/agentic-observability.js +62 -0
- package/dist/intelligence/agentic-observability.js.map +1 -0
- package/dist/intelligence/agents-md-loader.d.ts +81 -0
- package/dist/intelligence/agents-md-loader.d.ts.map +1 -0
- package/dist/intelligence/agents-md-loader.js +298 -0
- package/dist/intelligence/agents-md-loader.js.map +1 -0
- package/dist/intelligence/attribution-verification.d.ts +58 -0
- package/dist/intelligence/attribution-verification.d.ts.map +1 -0
- package/dist/intelligence/attribution-verification.js +133 -0
- package/dist/intelligence/attribution-verification.js.map +1 -0
- package/dist/intelligence/boomerang-workflow.d.ts +87 -0
- package/dist/intelligence/boomerang-workflow.d.ts.map +1 -0
- package/dist/intelligence/boomerang-workflow.js +311 -0
- package/dist/intelligence/boomerang-workflow.js.map +1 -0
- package/dist/intelligence/cmos-detector.d.ts +42 -0
- package/dist/intelligence/cmos-detector.d.ts.map +1 -0
- package/dist/intelligence/cmos-detector.js +94 -0
- package/dist/intelligence/cmos-detector.js.map +1 -0
- package/dist/intelligence/cmos-sync.d.ts +101 -0
- package/dist/intelligence/cmos-sync.d.ts.map +1 -0
- package/dist/intelligence/cmos-sync.js +435 -0
- package/dist/intelligence/cmos-sync.js.map +1 -0
- package/dist/intelligence/complexity-scorer.d.ts +111 -0
- package/dist/intelligence/complexity-scorer.d.ts.map +1 -0
- package/dist/intelligence/complexity-scorer.js +299 -0
- package/dist/intelligence/complexity-scorer.js.map +1 -0
- package/dist/intelligence/compression-rules.d.ts +62 -0
- package/dist/intelligence/compression-rules.d.ts.map +1 -0
- package/dist/intelligence/compression-rules.js +303 -0
- package/dist/intelligence/compression-rules.js.map +1 -0
- package/dist/intelligence/content-sanitizer.d.ts +61 -0
- package/dist/intelligence/content-sanitizer.d.ts.map +1 -0
- package/dist/intelligence/content-sanitizer.js +170 -0
- package/dist/intelligence/content-sanitizer.js.map +1 -0
- package/dist/intelligence/context-propagator-v2.d.ts +23 -0
- package/dist/intelligence/context-propagator-v2.d.ts.map +1 -0
- package/dist/intelligence/context-propagator-v2.js +37 -0
- package/dist/intelligence/context-propagator-v2.js.map +1 -0
- package/dist/intelligence/context-propagator-v3.d.ts +46 -0
- package/dist/intelligence/context-propagator-v3.d.ts.map +1 -0
- package/dist/intelligence/context-propagator-v3.js +266 -0
- package/dist/intelligence/context-propagator-v3.js.map +1 -0
- package/dist/intelligence/context-propagator.d.ts +108 -0
- package/dist/intelligence/context-propagator.d.ts.map +1 -0
- package/dist/intelligence/context-propagator.js +283 -0
- package/dist/intelligence/context-propagator.js.map +1 -0
- package/dist/intelligence/context-windows.d.ts +5 -0
- package/dist/intelligence/context-windows.d.ts.map +1 -0
- package/dist/intelligence/context-windows.js +18 -0
- package/dist/intelligence/context-windows.js.map +1 -0
- package/dist/intelligence/credential-store.d.ts +145 -0
- package/dist/intelligence/credential-store.d.ts.map +1 -0
- package/dist/intelligence/credential-store.js +243 -0
- package/dist/intelligence/credential-store.js.map +1 -0
- package/dist/intelligence/dependency-analyzer.d.ts +117 -0
- package/dist/intelligence/dependency-analyzer.d.ts.map +1 -0
- package/dist/intelligence/dependency-analyzer.js +398 -0
- package/dist/intelligence/dependency-analyzer.js.map +1 -0
- package/dist/intelligence/dependency-inferrer.d.ts +68 -0
- package/dist/intelligence/dependency-inferrer.d.ts.map +1 -0
- package/dist/intelligence/dependency-inferrer.js +281 -0
- package/dist/intelligence/dependency-inferrer.js.map +1 -0
- package/dist/intelligence/enhanced-dependency-analyzer.d.ts +25 -0
- package/dist/intelligence/enhanced-dependency-analyzer.d.ts.map +1 -0
- package/dist/intelligence/enhanced-dependency-analyzer.js +207 -0
- package/dist/intelligence/enhanced-dependency-analyzer.js.map +1 -0
- package/dist/intelligence/graph-validator.d.ts +61 -0
- package/dist/intelligence/graph-validator.d.ts.map +1 -0
- package/dist/intelligence/graph-validator.js +212 -0
- package/dist/intelligence/graph-validator.js.map +1 -0
- package/dist/intelligence/lifecycle-analyzer.d.ts +64 -0
- package/dist/intelligence/lifecycle-analyzer.d.ts.map +1 -0
- package/dist/intelligence/lifecycle-analyzer.js +587 -0
- package/dist/intelligence/lifecycle-analyzer.js.map +1 -0
- package/dist/intelligence/mission-history.d.ts +56 -0
- package/dist/intelligence/mission-history.d.ts.map +1 -0
- package/dist/intelligence/mission-history.js +145 -0
- package/dist/intelligence/mission-history.js.map +1 -0
- package/dist/intelligence/mission-outcome-analytics.d.ts +84 -0
- package/dist/intelligence/mission-outcome-analytics.d.ts.map +1 -0
- package/dist/intelligence/mission-outcome-analytics.js +499 -0
- package/dist/intelligence/mission-outcome-analytics.js.map +1 -0
- package/dist/intelligence/mission-splitter.d.ts +148 -0
- package/dist/intelligence/mission-splitter.d.ts.map +1 -0
- package/dist/intelligence/mission-splitter.js +461 -0
- package/dist/intelligence/mission-splitter.js.map +1 -0
- package/dist/intelligence/model-transpilers.d.ts +59 -0
- package/dist/intelligence/model-transpilers.d.ts.map +1 -0
- package/dist/intelligence/model-transpilers.js +185 -0
- package/dist/intelligence/model-transpilers.js.map +1 -0
- package/dist/intelligence/project-registry.d.ts +265 -0
- package/dist/intelligence/project-registry.d.ts.map +1 -0
- package/dist/intelligence/project-registry.js +484 -0
- package/dist/intelligence/project-registry.js.map +1 -0
- package/dist/intelligence/rsip-loop.d.ts +52 -0
- package/dist/intelligence/rsip-loop.d.ts.map +1 -0
- package/dist/intelligence/rsip-loop.js +139 -0
- package/dist/intelligence/rsip-loop.js.map +1 -0
- package/dist/intelligence/sender-context.d.ts +114 -0
- package/dist/intelligence/sender-context.d.ts.map +1 -0
- package/dist/intelligence/sender-context.js +275 -0
- package/dist/intelligence/sender-context.js.map +1 -0
- package/dist/intelligence/sqlite-client.d.ts +144 -0
- package/dist/intelligence/sqlite-client.d.ts.map +1 -0
- package/dist/intelligence/sqlite-client.js +568 -0
- package/dist/intelligence/sqlite-client.js.map +1 -0
- package/dist/intelligence/telemetry.d.ts +44 -0
- package/dist/intelligence/telemetry.d.ts.map +1 -0
- package/dist/intelligence/telemetry.js +106 -0
- package/dist/intelligence/telemetry.js.map +1 -0
- package/dist/intelligence/token-counters.d.ts +69 -0
- package/dist/intelligence/token-counters.d.ts.map +1 -0
- package/dist/intelligence/token-counters.js +197 -0
- package/dist/intelligence/token-counters.js.map +1 -0
- package/dist/intelligence/token-optimizer.d.ts +52 -0
- package/dist/intelligence/token-optimizer.d.ts.map +1 -0
- package/dist/intelligence/token-optimizer.js +205 -0
- package/dist/intelligence/token-optimizer.js.map +1 -0
- package/dist/intelligence/tokenizer-bootstrap.d.ts +54 -0
- package/dist/intelligence/tokenizer-bootstrap.d.ts.map +1 -0
- package/dist/intelligence/tokenizer-bootstrap.js +238 -0
- package/dist/intelligence/tokenizer-bootstrap.js.map +1 -0
- package/dist/intelligence/types.d.ts +117 -0
- package/dist/intelligence/types.d.ts.map +1 -0
- package/dist/intelligence/types.js +8 -0
- package/dist/intelligence/types.js.map +1 -0
- package/dist/intelligence/worker-manifest-loader.d.ts +70 -0
- package/dist/intelligence/worker-manifest-loader.d.ts.map +1 -0
- package/dist/intelligence/worker-manifest-loader.js +387 -0
- package/dist/intelligence/worker-manifest-loader.js.map +1 -0
- package/dist/loaders/yaml-loader.d.ts +99 -0
- package/dist/loaders/yaml-loader.d.ts.map +1 -0
- package/dist/loaders/yaml-loader.js +236 -0
- package/dist/loaders/yaml-loader.js.map +1 -0
- package/dist/merge/deep-merge.d.ts +93 -0
- package/dist/merge/deep-merge.d.ts.map +1 -0
- package/dist/merge/deep-merge.js +168 -0
- package/dist/merge/deep-merge.js.map +1 -0
- package/dist/quality/analyzers/ai-readiness-analyzer.d.ts +35 -0
- package/dist/quality/analyzers/ai-readiness-analyzer.d.ts.map +1 -0
- package/dist/quality/analyzers/ai-readiness-analyzer.js +357 -0
- package/dist/quality/analyzers/ai-readiness-analyzer.js.map +1 -0
- package/dist/quality/analyzers/clarity-analyzer.d.ts +52 -0
- package/dist/quality/analyzers/clarity-analyzer.d.ts.map +1 -0
- package/dist/quality/analyzers/clarity-analyzer.js +405 -0
- package/dist/quality/analyzers/clarity-analyzer.js.map +1 -0
- package/dist/quality/analyzers/completeness-analyzer.d.ts +45 -0
- package/dist/quality/analyzers/completeness-analyzer.d.ts.map +1 -0
- package/dist/quality/analyzers/completeness-analyzer.js +331 -0
- package/dist/quality/analyzers/completeness-analyzer.js.map +1 -0
- package/dist/quality/improvement-engine.d.ts +37 -0
- package/dist/quality/improvement-engine.d.ts.map +1 -0
- package/dist/quality/improvement-engine.js +260 -0
- package/dist/quality/improvement-engine.js.map +1 -0
- package/dist/quality/quality-scorer.d.ts +36 -0
- package/dist/quality/quality-scorer.d.ts.map +1 -0
- package/dist/quality/quality-scorer.js +95 -0
- package/dist/quality/quality-scorer.js.map +1 -0
- package/dist/quality/types.d.ts +92 -0
- package/dist/quality/types.d.ts.map +1 -0
- package/dist/quality/types.js +33 -0
- package/dist/quality/types.js.map +1 -0
- package/dist/registry/registry-parser.d.ts +59 -0
- package/dist/registry/registry-parser.d.ts.map +1 -0
- package/dist/registry/registry-parser.js +161 -0
- package/dist/registry/registry-parser.js.map +1 -0
- package/dist/registry/semver-validator.d.ts +48 -0
- package/dist/registry/semver-validator.d.ts.map +1 -0
- package/dist/registry/semver-validator.js +115 -0
- package/dist/registry/semver-validator.js.map +1 -0
- package/dist/schemas/generic-mission.d.ts +120 -0
- package/dist/schemas/generic-mission.d.ts.map +1 -0
- package/dist/schemas/generic-mission.js +118 -0
- package/dist/schemas/generic-mission.js.map +1 -0
- package/dist/security/workspace-guard.d.ts +10 -0
- package/dist/security/workspace-guard.d.ts.map +1 -0
- package/dist/security/workspace-guard.js +116 -0
- package/dist/security/workspace-guard.js.map +1 -0
- package/dist/server-health.d.ts +73 -0
- package/dist/server-health.d.ts.map +1 -0
- package/dist/server-health.js +181 -0
- package/dist/server-health.js.map +1 -0
- package/dist/tools/analyze-dependencies.d.ts +99 -0
- package/dist/tools/analyze-dependencies.d.ts.map +1 -0
- package/dist/tools/analyze-dependencies.js +329 -0
- package/dist/tools/analyze-dependencies.js.map +1 -0
- package/dist/tools/cmos/agent-feedback.d.ts +25 -0
- package/dist/tools/cmos/agent-feedback.d.ts.map +1 -0
- package/dist/tools/cmos/agent-feedback.js +50 -0
- package/dist/tools/cmos/agent-feedback.js.map +1 -0
- package/dist/tools/cmos/blob-migrations.d.ts +77 -0
- package/dist/tools/cmos/blob-migrations.d.ts.map +1 -0
- package/dist/tools/cmos/blob-migrations.js +210 -0
- package/dist/tools/cmos/blob-migrations.js.map +1 -0
- package/dist/tools/cmos/checkpoint-backfill.d.ts +33 -0
- package/dist/tools/cmos/checkpoint-backfill.d.ts.map +1 -0
- package/dist/tools/cmos/checkpoint-backfill.js +186 -0
- package/dist/tools/cmos/checkpoint-backfill.js.map +1 -0
- package/dist/tools/cmos/client.d.ts +293 -0
- package/dist/tools/cmos/client.d.ts.map +1 -0
- package/dist/tools/cmos/client.js +669 -0
- package/dist/tools/cmos/client.js.map +1 -0
- package/dist/tools/cmos/cmos-agent-onboard.d.ts +344 -0
- package/dist/tools/cmos/cmos-agent-onboard.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-agent-onboard.js +1533 -0
- package/dist/tools/cmos/cmos-agent-onboard.js.map +1 -0
- package/dist/tools/cmos/cmos-auth.d.ts +283 -0
- package/dist/tools/cmos/cmos-auth.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-auth.js +687 -0
- package/dist/tools/cmos/cmos-auth.js.map +1 -0
- package/dist/tools/cmos/cmos-backlog-export.d.ts +142 -0
- package/dist/tools/cmos/cmos-backlog-export.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-backlog-export.js +340 -0
- package/dist/tools/cmos/cmos-backlog-export.js.map +1 -0
- package/dist/tools/cmos/cmos-constraints.d.ts +58 -0
- package/dist/tools/cmos/cmos-constraints.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-constraints.js +227 -0
- package/dist/tools/cmos/cmos-constraints.js.map +1 -0
- package/dist/tools/cmos/cmos-context-condense.d.ts +129 -0
- package/dist/tools/cmos/cmos-context-condense.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-context-condense.js +649 -0
- package/dist/tools/cmos/cmos-context-condense.js.map +1 -0
- package/dist/tools/cmos/cmos-context-history.d.ts +145 -0
- package/dist/tools/cmos/cmos-context-history.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-context-history.js +235 -0
- package/dist/tools/cmos/cmos-context-history.js.map +1 -0
- package/dist/tools/cmos/cmos-context-project-identity.d.ts +34 -0
- package/dist/tools/cmos/cmos-context-project-identity.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-context-project-identity.js +145 -0
- package/dist/tools/cmos/cmos-context-project-identity.js.map +1 -0
- package/dist/tools/cmos/cmos-context-search.d.ts +44 -0
- package/dist/tools/cmos/cmos-context-search.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-context-search.js +79 -0
- package/dist/tools/cmos/cmos-context-search.js.map +1 -0
- package/dist/tools/cmos/cmos-context-snapshot.d.ts +105 -0
- package/dist/tools/cmos/cmos-context-snapshot.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-context-snapshot.js +213 -0
- package/dist/tools/cmos/cmos-context-snapshot.js.map +1 -0
- package/dist/tools/cmos/cmos-context-update.d.ts +193 -0
- package/dist/tools/cmos/cmos-context-update.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-context-update.js +710 -0
- package/dist/tools/cmos/cmos-context-update.js.map +1 -0
- package/dist/tools/cmos/cmos-context-view.d.ts +159 -0
- package/dist/tools/cmos/cmos-context-view.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-context-view.js +531 -0
- package/dist/tools/cmos/cmos-context-view.js.map +1 -0
- package/dist/tools/cmos/cmos-context.d.ts +325 -0
- package/dist/tools/cmos/cmos-context.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-context.js +424 -0
- package/dist/tools/cmos/cmos-context.js.map +1 -0
- package/dist/tools/cmos/cmos-db-backfill.d.ts +119 -0
- package/dist/tools/cmos/cmos-db-backfill.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-db-backfill.js +889 -0
- package/dist/tools/cmos/cmos-db-backfill.js.map +1 -0
- package/dist/tools/cmos/cmos-db-health.d.ts +76 -0
- package/dist/tools/cmos/cmos-db-health.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-db-health.js +226 -0
- package/dist/tools/cmos/cmos-db-health.js.map +1 -0
- package/dist/tools/cmos/cmos-db-restore.d.ts +92 -0
- package/dist/tools/cmos/cmos-db-restore.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-db-restore.js +359 -0
- package/dist/tools/cmos/cmos-db-restore.js.map +1 -0
- package/dist/tools/cmos/cmos-db-snapshot.d.ts +108 -0
- package/dist/tools/cmos/cmos-db-snapshot.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-db-snapshot.js +359 -0
- package/dist/tools/cmos/cmos-db-snapshot.js.map +1 -0
- package/dist/tools/cmos/cmos-db.d.ts +103 -0
- package/dist/tools/cmos/cmos-db.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-db.js +182 -0
- package/dist/tools/cmos/cmos-db.js.map +1 -0
- package/dist/tools/cmos/cmos-decisions-batch-update.d.ts +34 -0
- package/dist/tools/cmos/cmos-decisions-batch-update.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-decisions-batch-update.js +90 -0
- package/dist/tools/cmos/cmos-decisions-batch-update.js.map +1 -0
- package/dist/tools/cmos/cmos-decisions-list.d.ts +134 -0
- package/dist/tools/cmos/cmos-decisions-list.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-decisions-list.js +153 -0
- package/dist/tools/cmos/cmos-decisions-list.js.map +1 -0
- package/dist/tools/cmos/cmos-decisions-review.d.ts +21 -0
- package/dist/tools/cmos/cmos-decisions-review.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-decisions-review.js +83 -0
- package/dist/tools/cmos/cmos-decisions-review.js.map +1 -0
- package/dist/tools/cmos/cmos-decisions-search.d.ts +119 -0
- package/dist/tools/cmos/cmos-decisions-search.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-decisions-search.js +219 -0
- package/dist/tools/cmos/cmos-decisions-search.js.map +1 -0
- package/dist/tools/cmos/cmos-decisions-update.d.ts +34 -0
- package/dist/tools/cmos/cmos-decisions-update.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-decisions-update.js +121 -0
- package/dist/tools/cmos/cmos-decisions-update.js.map +1 -0
- package/dist/tools/cmos/cmos-decisions.d.ts +156 -0
- package/dist/tools/cmos/cmos-decisions.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-decisions.js +223 -0
- package/dist/tools/cmos/cmos-decisions.js.map +1 -0
- package/dist/tools/cmos/cmos-feedback.d.ts +127 -0
- package/dist/tools/cmos/cmos-feedback.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-feedback.js +259 -0
- package/dist/tools/cmos/cmos-feedback.js.map +1 -0
- package/dist/tools/cmos/cmos-learnings-list.d.ts +81 -0
- package/dist/tools/cmos/cmos-learnings-list.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-learnings-list.js +120 -0
- package/dist/tools/cmos/cmos-learnings-list.js.map +1 -0
- package/dist/tools/cmos/cmos-learnings-reaffirm.d.ts +27 -0
- package/dist/tools/cmos/cmos-learnings-reaffirm.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-learnings-reaffirm.js +69 -0
- package/dist/tools/cmos/cmos-learnings-reaffirm.js.map +1 -0
- package/dist/tools/cmos/cmos-learnings-search.d.ts +69 -0
- package/dist/tools/cmos/cmos-learnings-search.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-learnings-search.js +130 -0
- package/dist/tools/cmos/cmos-learnings-search.js.map +1 -0
- package/dist/tools/cmos/cmos-learnings-update.d.ts +52 -0
- package/dist/tools/cmos/cmos-learnings-update.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-learnings-update.js +122 -0
- package/dist/tools/cmos/cmos-learnings-update.js.map +1 -0
- package/dist/tools/cmos/cmos-learnings.d.ts +137 -0
- package/dist/tools/cmos/cmos-learnings.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-learnings.js +197 -0
- package/dist/tools/cmos/cmos-learnings.js.map +1 -0
- package/dist/tools/cmos/cmos-message.d.ts +257 -0
- package/dist/tools/cmos/cmos-message.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-message.js +729 -0
- package/dist/tools/cmos/cmos-message.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-add.d.ts +186 -0
- package/dist/tools/cmos/cmos-mission-add.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-add.js +328 -0
- package/dist/tools/cmos/cmos-mission-add.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-block.d.ts +104 -0
- package/dist/tools/cmos/cmos-mission-block.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-block.js +248 -0
- package/dist/tools/cmos/cmos-mission-block.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-complete.d.ts +127 -0
- package/dist/tools/cmos/cmos-mission-complete.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-complete.js +529 -0
- package/dist/tools/cmos/cmos-mission-complete.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-defer.d.ts +41 -0
- package/dist/tools/cmos/cmos-mission-defer.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-defer.js +169 -0
- package/dist/tools/cmos/cmos-mission-defer.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-depends.d.ts +98 -0
- package/dist/tools/cmos/cmos-mission-depends.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-depends.js +221 -0
- package/dist/tools/cmos/cmos-mission-depends.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-drop.d.ts +36 -0
- package/dist/tools/cmos/cmos-mission-drop.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-drop.js +139 -0
- package/dist/tools/cmos/cmos-mission-drop.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-list.d.ts +127 -0
- package/dist/tools/cmos/cmos-mission-list.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-list.js +277 -0
- package/dist/tools/cmos/cmos-mission-list.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-show.d.ts +115 -0
- package/dist/tools/cmos/cmos-mission-show.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-show.js +278 -0
- package/dist/tools/cmos/cmos-mission-show.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-start.d.ts +94 -0
- package/dist/tools/cmos/cmos-mission-start.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-start.js +347 -0
- package/dist/tools/cmos/cmos-mission-start.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-status.d.ts +152 -0
- package/dist/tools/cmos/cmos-mission-status.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-status.js +420 -0
- package/dist/tools/cmos/cmos-mission-status.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-transition.d.ts +126 -0
- package/dist/tools/cmos/cmos-mission-transition.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-transition.js +222 -0
- package/dist/tools/cmos/cmos-mission-transition.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-unblock.d.ts +102 -0
- package/dist/tools/cmos/cmos-mission-unblock.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-unblock.js +242 -0
- package/dist/tools/cmos/cmos-mission-unblock.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-undepends.d.ts +39 -0
- package/dist/tools/cmos/cmos-mission-undepends.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-undepends.js +94 -0
- package/dist/tools/cmos/cmos-mission-undepends.js.map +1 -0
- package/dist/tools/cmos/cmos-mission-update.d.ts +225 -0
- package/dist/tools/cmos/cmos-mission-update.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission-update.js +350 -0
- package/dist/tools/cmos/cmos-mission-update.js.map +1 -0
- package/dist/tools/cmos/cmos-mission.d.ts +300 -0
- package/dist/tools/cmos/cmos-mission.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-mission.js +318 -0
- package/dist/tools/cmos/cmos-mission.js.map +1 -0
- package/dist/tools/cmos/cmos-next-steps.d.ts +57 -0
- package/dist/tools/cmos/cmos-next-steps.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-next-steps.js +154 -0
- package/dist/tools/cmos/cmos-next-steps.js.map +1 -0
- package/dist/tools/cmos/cmos-project-init.d.ts +283 -0
- package/dist/tools/cmos/cmos-project-init.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-project-init.js +502 -0
- package/dist/tools/cmos/cmos-project-init.js.map +1 -0
- package/dist/tools/cmos/cmos-project-list.d.ts +79 -0
- package/dist/tools/cmos/cmos-project-list.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-project-list.js +150 -0
- package/dist/tools/cmos/cmos-project-list.js.map +1 -0
- package/dist/tools/cmos/cmos-project-register.d.ts +90 -0
- package/dist/tools/cmos/cmos-project-register.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-project-register.js +199 -0
- package/dist/tools/cmos/cmos-project-register.js.map +1 -0
- package/dist/tools/cmos/cmos-project-sweep.d.ts +34 -0
- package/dist/tools/cmos/cmos-project-sweep.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-project-sweep.js +210 -0
- package/dist/tools/cmos/cmos-project-sweep.js.map +1 -0
- package/dist/tools/cmos/cmos-project-unregister.d.ts +66 -0
- package/dist/tools/cmos/cmos-project-unregister.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-project-unregister.js +108 -0
- package/dist/tools/cmos/cmos-project-unregister.js.map +1 -0
- package/dist/tools/cmos/cmos-project-update.d.ts +21 -0
- package/dist/tools/cmos/cmos-project-update.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-project-update.js +46 -0
- package/dist/tools/cmos/cmos-project-update.js.map +1 -0
- package/dist/tools/cmos/cmos-project-validate.d.ts +89 -0
- package/dist/tools/cmos/cmos-project-validate.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-project-validate.js +155 -0
- package/dist/tools/cmos/cmos-project-validate.js.map +1 -0
- package/dist/tools/cmos/cmos-project.d.ts +225 -0
- package/dist/tools/cmos/cmos-project.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-project.js +255 -0
- package/dist/tools/cmos/cmos-project.js.map +1 -0
- package/dist/tools/cmos/cmos-resolve-references.d.ts +145 -0
- package/dist/tools/cmos/cmos-resolve-references.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-resolve-references.js +273 -0
- package/dist/tools/cmos/cmos-resolve-references.js.map +1 -0
- package/dist/tools/cmos/cmos-session-capture.d.ts +228 -0
- package/dist/tools/cmos/cmos-session-capture.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-session-capture.js +552 -0
- package/dist/tools/cmos/cmos-session-capture.js.map +1 -0
- package/dist/tools/cmos/cmos-session-complete.d.ts +201 -0
- package/dist/tools/cmos/cmos-session-complete.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-session-complete.js +816 -0
- package/dist/tools/cmos/cmos-session-complete.js.map +1 -0
- package/dist/tools/cmos/cmos-session-list.d.ts +150 -0
- package/dist/tools/cmos/cmos-session-list.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-session-list.js +234 -0
- package/dist/tools/cmos/cmos-session-list.js.map +1 -0
- package/dist/tools/cmos/cmos-session-search.d.ts +176 -0
- package/dist/tools/cmos/cmos-session-search.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-session-search.js +374 -0
- package/dist/tools/cmos/cmos-session-search.js.map +1 -0
- package/dist/tools/cmos/cmos-session-start.d.ts +136 -0
- package/dist/tools/cmos/cmos-session-start.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-session-start.js +305 -0
- package/dist/tools/cmos/cmos-session-start.js.map +1 -0
- package/dist/tools/cmos/cmos-session.d.ts +223 -0
- package/dist/tools/cmos/cmos-session.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-session.js +255 -0
- package/dist/tools/cmos/cmos-session.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint-add.d.ts +114 -0
- package/dist/tools/cmos/cmos-sprint-add.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint-add.js +164 -0
- package/dist/tools/cmos/cmos-sprint-add.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint-analytics.d.ts +66 -0
- package/dist/tools/cmos/cmos-sprint-analytics.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint-analytics.js +289 -0
- package/dist/tools/cmos/cmos-sprint-analytics.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint-carry-forward.d.ts +55 -0
- package/dist/tools/cmos/cmos-sprint-carry-forward.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint-carry-forward.js +271 -0
- package/dist/tools/cmos/cmos-sprint-carry-forward.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint-complete.d.ts +155 -0
- package/dist/tools/cmos/cmos-sprint-complete.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint-complete.js +768 -0
- package/dist/tools/cmos/cmos-sprint-complete.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint-list.d.ts +115 -0
- package/dist/tools/cmos/cmos-sprint-list.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint-list.js +225 -0
- package/dist/tools/cmos/cmos-sprint-list.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint-retro.d.ts +114 -0
- package/dist/tools/cmos/cmos-sprint-retro.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint-retro.js +331 -0
- package/dist/tools/cmos/cmos-sprint-retro.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint-show.d.ts +109 -0
- package/dist/tools/cmos/cmos-sprint-show.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint-show.js +238 -0
- package/dist/tools/cmos/cmos-sprint-show.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint-update.d.ts +150 -0
- package/dist/tools/cmos/cmos-sprint-update.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint-update.js +191 -0
- package/dist/tools/cmos/cmos-sprint-update.js.map +1 -0
- package/dist/tools/cmos/cmos-sprint.d.ts +219 -0
- package/dist/tools/cmos/cmos-sprint.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-sprint.js +304 -0
- package/dist/tools/cmos/cmos-sprint.js.map +1 -0
- package/dist/tools/cmos/cmos-status.d.ts +69 -0
- package/dist/tools/cmos/cmos-status.d.ts.map +1 -0
- package/dist/tools/cmos/cmos-status.js +136 -0
- package/dist/tools/cmos/cmos-status.js.map +1 -0
- package/dist/tools/cmos/context-freshness.d.ts +67 -0
- package/dist/tools/cmos/context-freshness.d.ts.map +1 -0
- package/dist/tools/cmos/context-freshness.js +352 -0
- package/dist/tools/cmos/context-freshness.js.map +1 -0
- package/dist/tools/cmos/context-retention.d.ts +58 -0
- package/dist/tools/cmos/context-retention.d.ts.map +1 -0
- package/dist/tools/cmos/context-retention.js +507 -0
- package/dist/tools/cmos/context-retention.js.map +1 -0
- package/dist/tools/cmos/dashboard-client.d.ts +513 -0
- package/dist/tools/cmos/dashboard-client.d.ts.map +1 -0
- package/dist/tools/cmos/dashboard-client.js +800 -0
- package/dist/tools/cmos/dashboard-client.js.map +1 -0
- package/dist/tools/cmos/decision-memory.d.ts +39 -0
- package/dist/tools/cmos/decision-memory.d.ts.map +1 -0
- package/dist/tools/cmos/decision-memory.js +263 -0
- package/dist/tools/cmos/decision-memory.js.map +1 -0
- package/dist/tools/cmos/errors.d.ts +113 -0
- package/dist/tools/cmos/errors.d.ts.map +1 -0
- package/dist/tools/cmos/errors.js +315 -0
- package/dist/tools/cmos/errors.js.map +1 -0
- package/dist/tools/cmos/fts5-retriever.d.ts +101 -0
- package/dist/tools/cmos/fts5-retriever.d.ts.map +1 -0
- package/dist/tools/cmos/fts5-retriever.js +210 -0
- package/dist/tools/cmos/fts5-retriever.js.map +1 -0
- package/dist/tools/cmos/index.d.ts +1238 -0
- package/dist/tools/cmos/index.d.ts.map +1 -0
- package/dist/tools/cmos/index.js +359 -0
- package/dist/tools/cmos/index.js.map +1 -0
- package/dist/tools/cmos/learning-reaffirm.d.ts +74 -0
- package/dist/tools/cmos/learning-reaffirm.d.ts.map +1 -0
- package/dist/tools/cmos/learning-reaffirm.js +145 -0
- package/dist/tools/cmos/learning-reaffirm.js.map +1 -0
- package/dist/tools/cmos/orphan-detection.d.ts +55 -0
- package/dist/tools/cmos/orphan-detection.d.ts.map +1 -0
- package/dist/tools/cmos/orphan-detection.js +139 -0
- package/dist/tools/cmos/orphan-detection.js.map +1 -0
- package/dist/tools/cmos/owner-resolution.d.ts +21 -0
- package/dist/tools/cmos/owner-resolution.d.ts.map +1 -0
- package/dist/tools/cmos/owner-resolution.js +162 -0
- package/dist/tools/cmos/owner-resolution.js.map +1 -0
- package/dist/tools/cmos/project-identity.d.ts +112 -0
- package/dist/tools/cmos/project-identity.d.ts.map +1 -0
- package/dist/tools/cmos/project-identity.js +261 -0
- package/dist/tools/cmos/project-identity.js.map +1 -0
- package/dist/tools/cmos/relevance-surfacing.d.ts +40 -0
- package/dist/tools/cmos/relevance-surfacing.d.ts.map +1 -0
- package/dist/tools/cmos/relevance-surfacing.js +153 -0
- package/dist/tools/cmos/relevance-surfacing.js.map +1 -0
- package/dist/tools/cmos/schema-migrations.d.ts +157 -0
- package/dist/tools/cmos/schema-migrations.d.ts.map +1 -0
- package/dist/tools/cmos/schema-migrations.js +678 -0
- package/dist/tools/cmos/schema-migrations.js.map +1 -0
- package/dist/tools/cmos/schema.d.ts +76 -0
- package/dist/tools/cmos/schema.d.ts.map +1 -0
- package/dist/tools/cmos/schema.js +462 -0
- package/dist/tools/cmos/schema.js.map +1 -0
- package/dist/tools/cmos/sender-identity.d.ts +87 -0
- package/dist/tools/cmos/sender-identity.d.ts.map +1 -0
- package/dist/tools/cmos/sender-identity.js +207 -0
- package/dist/tools/cmos/sender-identity.js.map +1 -0
- package/dist/tools/cmos/staleness-detection.d.ts +128 -0
- package/dist/tools/cmos/staleness-detection.d.ts.map +1 -0
- package/dist/tools/cmos/staleness-detection.js +381 -0
- package/dist/tools/cmos/staleness-detection.js.map +1 -0
- package/dist/tools/cmos/supersession-detection.d.ts +46 -0
- package/dist/tools/cmos/supersession-detection.d.ts.map +1 -0
- package/dist/tools/cmos/supersession-detection.js +235 -0
- package/dist/tools/cmos/supersession-detection.js.map +1 -0
- package/dist/tools/cmos/sync-event-payloads.d.ts +576 -0
- package/dist/tools/cmos/sync-event-payloads.d.ts.map +1 -0
- package/dist/tools/cmos/sync-event-payloads.js +521 -0
- package/dist/tools/cmos/sync-event-payloads.js.map +1 -0
- package/dist/tools/cmos/sync-health-check.d.ts +43 -0
- package/dist/tools/cmos/sync-health-check.d.ts.map +1 -0
- package/dist/tools/cmos/sync-health-check.js +93 -0
- package/dist/tools/cmos/sync-health-check.js.map +1 -0
- package/dist/tools/cmos/sync-hooks.d.ts +82 -0
- package/dist/tools/cmos/sync-hooks.d.ts.map +1 -0
- package/dist/tools/cmos/sync-hooks.js +162 -0
- package/dist/tools/cmos/sync-hooks.js.map +1 -0
- package/dist/tools/cmos/sync-pusher.d.ts +128 -0
- package/dist/tools/cmos/sync-pusher.d.ts.map +1 -0
- package/dist/tools/cmos/sync-pusher.js +248 -0
- package/dist/tools/cmos/sync-pusher.js.map +1 -0
- package/dist/tools/cmos/sync-queue.d.ts +87 -0
- package/dist/tools/cmos/sync-queue.d.ts.map +1 -0
- package/dist/tools/cmos/sync-queue.js +208 -0
- package/dist/tools/cmos/sync-queue.js.map +1 -0
- package/dist/tools/cmos/tier-config.d.ts +32 -0
- package/dist/tools/cmos/tier-config.d.ts.map +1 -0
- package/dist/tools/cmos/tier-config.js +123 -0
- package/dist/tools/cmos/tier-config.js.map +1 -0
- package/dist/tools/cmos/types.d.ts +164 -0
- package/dist/tools/cmos/types.d.ts.map +1 -0
- package/dist/tools/cmos/types.js +11 -0
- package/dist/tools/cmos/types.js.map +1 -0
- package/dist/tools/combine-packs.d.ts +194 -0
- package/dist/tools/combine-packs.d.ts.map +1 -0
- package/dist/tools/combine-packs.js +283 -0
- package/dist/tools/combine-packs.js.map +1 -0
- package/dist/tools/create-mission.d.ts +192 -0
- package/dist/tools/create-mission.d.ts.map +1 -0
- package/dist/tools/create-mission.js +453 -0
- package/dist/tools/create-mission.js.map +1 -0
- package/dist/tools/export-template.d.ts +175 -0
- package/dist/tools/export-template.d.ts.map +1 -0
- package/dist/tools/export-template.js +212 -0
- package/dist/tools/export-template.js.map +1 -0
- package/dist/tools/extract-template.d.ts +106 -0
- package/dist/tools/extract-template.d.ts.map +1 -0
- package/dist/tools/extract-template.js +322 -0
- package/dist/tools/extract-template.js.map +1 -0
- package/dist/tools/formatters/mission-protocol-json.d.ts +122 -0
- package/dist/tools/formatters/mission-protocol-json.d.ts.map +1 -0
- package/dist/tools/formatters/mission-protocol-json.js +155 -0
- package/dist/tools/formatters/mission-protocol-json.js.map +1 -0
- package/dist/tools/import-template.d.ts +170 -0
- package/dist/tools/import-template.d.ts.map +1 -0
- package/dist/tools/import-template.js +203 -0
- package/dist/tools/import-template.js.map +1 -0
- package/dist/tools/list-domains.d.ts +70 -0
- package/dist/tools/list-domains.d.ts.map +1 -0
- package/dist/tools/list-domains.js +110 -0
- package/dist/tools/list-domains.js.map +1 -0
- package/dist/tools/optimize-tokens.d.ts +190 -0
- package/dist/tools/optimize-tokens.d.ts.map +1 -0
- package/dist/tools/optimize-tokens.js +193 -0
- package/dist/tools/optimize-tokens.js.map +1 -0
- package/dist/tools/score-quality.d.ts +76 -0
- package/dist/tools/score-quality.d.ts.map +1 -0
- package/dist/tools/score-quality.js +191 -0
- package/dist/tools/score-quality.js.map +1 -0
- package/dist/tools/split-mission.d.ts +181 -0
- package/dist/tools/split-mission.d.ts.map +1 -0
- package/dist/tools/split-mission.js +416 -0
- package/dist/tools/split-mission.js.map +1 -0
- package/dist/tools/suggest-splits.d.ts +162 -0
- package/dist/tools/suggest-splits.d.ts.map +1 -0
- package/dist/tools/suggest-splits.js +344 -0
- package/dist/tools/suggest-splits.js.map +1 -0
- package/dist/tools/tool-execution.d.ts +4 -0
- package/dist/tools/tool-execution.d.ts.map +1 -0
- package/dist/tools/tool-execution.js +3 -0
- package/dist/tools/tool-execution.js.map +1 -0
- package/dist/tools/version-template.d.ts +515 -0
- package/dist/tools/version-template.d.ts.map +1 -0
- package/dist/tools/version-template.js +338 -0
- package/dist/tools/version-template.js.map +1 -0
- package/dist/types/errors.d.ts +19 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +52 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/mission-types.d.ts +8 -0
- package/dist/types/mission-types.d.ts.map +1 -0
- package/dist/types/mission-types.js +12 -0
- package/dist/types/mission-types.js.map +1 -0
- package/dist/types/registry.d.ts +55 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/types/registry.js +10 -0
- package/dist/types/registry.js.map +1 -0
- package/dist/types/schemas.d.ts +25 -0
- package/dist/types/schemas.d.ts.map +1 -0
- package/dist/types/schemas.js +6 -0
- package/dist/types/schemas.js.map +1 -0
- package/dist/types/tools.d.ts +22 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +10 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/abort.d.ts +16 -0
- package/dist/utils/abort.d.ts.map +1 -0
- package/dist/utils/abort.js +89 -0
- package/dist/utils/abort.js.map +1 -0
- package/dist/utils/fs.d.ts +14 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +114 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/workspace-io.d.ts +18 -0
- package/dist/utils/workspace-io.d.ts.map +1 -0
- package/dist/utils/workspace-io.js +40 -0
- package/dist/utils/workspace-io.js.map +1 -0
- package/dist/validation/common.d.ts +21 -0
- package/dist/validation/common.d.ts.map +1 -0
- package/dist/validation/common.js +241 -0
- package/dist/validation/common.js.map +1 -0
- package/dist/validation/errors.d.ts +21 -0
- package/dist/validation/errors.d.ts.map +1 -0
- package/dist/validation/errors.js +122 -0
- package/dist/validation/errors.js.map +1 -0
- package/dist/validation/middleware.d.ts +6 -0
- package/dist/validation/middleware.d.ts.map +1 -0
- package/dist/validation/middleware.js +26 -0
- package/dist/validation/middleware.js.map +1 -0
- package/dist/validation/schemas/config-schema.d.ts +25 -0
- package/dist/validation/schemas/config-schema.d.ts.map +1 -0
- package/dist/validation/schemas/config-schema.js +22 -0
- package/dist/validation/schemas/config-schema.js.map +1 -0
- package/dist/validation/schemas/domain-schema.d.ts +129 -0
- package/dist/validation/schemas/domain-schema.d.ts.map +1 -0
- package/dist/validation/schemas/domain-schema.js +28 -0
- package/dist/validation/schemas/domain-schema.js.map +1 -0
- package/dist/validation/schemas/file-path-schema.d.ts +10 -0
- package/dist/validation/schemas/file-path-schema.d.ts.map +1 -0
- package/dist/validation/schemas/file-path-schema.js +29 -0
- package/dist/validation/schemas/file-path-schema.js.map +1 -0
- package/dist/validation/schemas/mission-schema.d.ts +65 -0
- package/dist/validation/schemas/mission-schema.d.ts.map +1 -0
- package/dist/validation/schemas/mission-schema.js +24 -0
- package/dist/validation/schemas/mission-schema.js.map +1 -0
- package/dist/validation/schemas/template-schema.d.ts +364 -0
- package/dist/validation/schemas/template-schema.d.ts.map +1 -0
- package/dist/validation/schemas/template-schema.js +64 -0
- package/dist/validation/schemas/template-schema.js.map +1 -0
- package/dist/versioning/migration-engine.d.ts +82 -0
- package/dist/versioning/migration-engine.d.ts.map +1 -0
- package/dist/versioning/migration-engine.js +352 -0
- package/dist/versioning/migration-engine.js.map +1 -0
- package/dist/versioning/types.d.ts +236 -0
- package/dist/versioning/types.d.ts.map +1 -0
- package/dist/versioning/types.js +57 -0
- package/dist/versioning/types.js.map +1 -0
- package/dist/versioning/version-manager.d.ts +76 -0
- package/dist/versioning/version-manager.d.ts.map +1 -0
- package/dist/versioning/version-manager.js +386 -0
- package/dist/versioning/version-manager.js.map +1 -0
- package/package.json +117 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ABOUTME: Persistence helper for the Sprint 56 m03 agentFeedback standing channel.
|
|
3
|
+
// ABOUTME: Called by cmos_session_complete, cmos_mission_transition, cmos_agent_onboard when the optional field is set.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.recordAgentFeedback = recordAgentFeedback;
|
|
6
|
+
const schema_migrations_1 = require("./schema-migrations");
|
|
7
|
+
const content_sanitizer_1 = require("../../intelligence/content-sanitizer");
|
|
8
|
+
/**
|
|
9
|
+
* Persist a single agentFeedback entry, sanitizing the body before write so
|
|
10
|
+
* corrupted XML markup cannot land in the feedback channel either.
|
|
11
|
+
*
|
|
12
|
+
* Returns `{feedbackId: null, sanitizedFields: []}` when the trimmed body is
|
|
13
|
+
* empty (the caller passed an empty string) — no row is written. All null
|
|
14
|
+
* context fields are persisted as NULL so the list/triage surface can group
|
|
15
|
+
* cleanly by tool even when session/sprint/mission context is missing.
|
|
16
|
+
*/
|
|
17
|
+
function recordAgentFeedback(client, body, context) {
|
|
18
|
+
const trimmed = body.trim();
|
|
19
|
+
if (!trimmed) {
|
|
20
|
+
return { feedbackId: null, sanitizedFields: [] };
|
|
21
|
+
}
|
|
22
|
+
(0, schema_migrations_1.ensureAgentFeedbackTable)(client);
|
|
23
|
+
const sanitizedFields = [];
|
|
24
|
+
const sanitation = (0, content_sanitizer_1.sanitizeContentField)(trimmed);
|
|
25
|
+
if (sanitation.wasModified) {
|
|
26
|
+
sanitizedFields.push({
|
|
27
|
+
field: 'agentFeedback',
|
|
28
|
+
reason: sanitation.reason ?? 'Stripped XML marshalling artifact.',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const cleaned = sanitation.cleaned;
|
|
32
|
+
if (!cleaned) {
|
|
33
|
+
return { feedbackId: null, sanitizedFields };
|
|
34
|
+
}
|
|
35
|
+
const now = new Date().toISOString();
|
|
36
|
+
const insertResult = client.execute(`INSERT INTO agent_feedback (
|
|
37
|
+
tool_name, body, status, session_id, sprint_id, mission_id, project_id, created_at
|
|
38
|
+
) VALUES (?, ?, 'open', ?, ?, ?, ?, ?)`, [
|
|
39
|
+
context.toolName,
|
|
40
|
+
cleaned,
|
|
41
|
+
context.sessionId ?? null,
|
|
42
|
+
context.sprintId ?? null,
|
|
43
|
+
context.missionId ?? null,
|
|
44
|
+
context.projectId ?? null,
|
|
45
|
+
now,
|
|
46
|
+
]);
|
|
47
|
+
const feedbackId = insertResult.success && insertResult.data ? Number(insertResult.data.lastInsertRowid) : null;
|
|
48
|
+
return { feedbackId, sanitizedFields };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=agent-feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-feedback.js","sourceRoot":"","sources":["../../../src/tools/cmos/agent-feedback.ts"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,wHAAwH;;AA8BxH,kDA6CC;AAxED,2DAA+D;AAC/D,4EAA4E;AAiB5E;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CACjC,MAA0B,EAC1B,IAAY,EACZ,OAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,IAAA,4CAAwB,EAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,IAAA,wCAAoB,EAAC,OAAO,CAAC,CAAC;IACjD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,eAAe,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,oCAAoC;SAClE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CACjC;;2CAEuC,EACvC;QACE,OAAO,CAAC,QAAQ;QAChB,OAAO;QACP,OAAO,CAAC,SAAS,IAAI,IAAI;QACzB,OAAO,CAAC,QAAQ,IAAI,IAAI;QACxB,OAAO,CAAC,SAAS,IAAI,IAAI;QACzB,OAAO,CAAC,SAAS,IAAI,IAAI;QACzB,GAAG;KACJ,CACF,CAAC;IAEF,MAAM,UAAU,GACd,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned blob migration system for master_context.
|
|
3
|
+
*
|
|
4
|
+
* Migrations are registered once in BLOB_MIGRATIONS and applied lazily on the
|
|
5
|
+
* first cmos_context_view call after an upgrade. Each project self-heals on
|
|
6
|
+
* first touch — no manual script, no per-project memory required.
|
|
7
|
+
*
|
|
8
|
+
* To add a future migration:
|
|
9
|
+
* 1. Append a new entry to BLOB_MIGRATIONS with the next version number.
|
|
10
|
+
* 2. Bump BLOB_SCHEMA_VERSION to match.
|
|
11
|
+
* Done. Existing projects migrate automatically on next read.
|
|
12
|
+
*
|
|
13
|
+
* Old migration entries are never removed — they are the changelog.
|
|
14
|
+
* The version gate (`currentVersion >= migration.version`) makes them free
|
|
15
|
+
* after they have applied.
|
|
16
|
+
*
|
|
17
|
+
* @module tools/cmos/blob-migrations
|
|
18
|
+
*/
|
|
19
|
+
import type { CmosDatabaseClient } from './client';
|
|
20
|
+
/** Current latest blob schema version. Must match the highest version in BLOB_MIGRATIONS. */
|
|
21
|
+
export declare const BLOB_SCHEMA_VERSION = 1;
|
|
22
|
+
/** Metadata table key that stores the applied blob schema version per project. */
|
|
23
|
+
export declare const BLOB_SCHEMA_VERSION_KEY = "blob_schema_version";
|
|
24
|
+
export interface BlobMigration {
|
|
25
|
+
/** Monotonically increasing version number. Never reuse or skip. */
|
|
26
|
+
version: number;
|
|
27
|
+
/** Human-readable description used in logs and snapshot source labels. */
|
|
28
|
+
description: string;
|
|
29
|
+
/**
|
|
30
|
+
* Pure transformation: blob in → blob out. No side effects.
|
|
31
|
+
* Must not mutate the input — return a new object.
|
|
32
|
+
*/
|
|
33
|
+
up: (blob: Record<string, unknown>) => Record<string, unknown>;
|
|
34
|
+
}
|
|
35
|
+
export interface BlobMigrationResult {
|
|
36
|
+
/** Whether any migrations were applied. */
|
|
37
|
+
migrated: boolean;
|
|
38
|
+
/** Version numbers of each migration that ran, in order. */
|
|
39
|
+
migrationsApplied: number[];
|
|
40
|
+
/** The post-migration blob (equals input blob when migrated=false). */
|
|
41
|
+
blob: Record<string, unknown>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Ordered list of all blob migrations.
|
|
45
|
+
*
|
|
46
|
+
* Rules:
|
|
47
|
+
* - Append only. Never edit or remove an existing entry.
|
|
48
|
+
* - version must be 1-indexed and strictly increasing.
|
|
49
|
+
* - `up` must be a pure function (no side effects, no mutation of input).
|
|
50
|
+
*/
|
|
51
|
+
export declare const BLOB_MIGRATIONS: BlobMigration[];
|
|
52
|
+
/**
|
|
53
|
+
* Read the current blob schema version from the metadata table.
|
|
54
|
+
* Returns 0 (unversioned / legacy) if the key is absent or the table is missing.
|
|
55
|
+
*/
|
|
56
|
+
export declare function getBlobSchemaVersion(client: CmosDatabaseClient): number;
|
|
57
|
+
/**
|
|
58
|
+
* Apply any pending blob migrations to master_context.
|
|
59
|
+
*
|
|
60
|
+
* Behaviour:
|
|
61
|
+
* - Only runs for contextId === 'master_context'. All other contexts are no-ops.
|
|
62
|
+
* - Reads blob_schema_version from metadata. If current, returns immediately.
|
|
63
|
+
* - If migrations are pending:
|
|
64
|
+
* 1. Takes a pre-migration snapshot (snapshot-protected, hash-deduped).
|
|
65
|
+
* 2. Applies each pending migration's `up()` in version order.
|
|
66
|
+
* 3. Writes the pruned blob back to the contexts table.
|
|
67
|
+
* 4. Bumps blob_schema_version in metadata.
|
|
68
|
+
* - Idempotent: a second call on the same DB is always a no-op.
|
|
69
|
+
*
|
|
70
|
+
* @param client Open database client (write access required)
|
|
71
|
+
* @param contextId Context row ID (e.g. 'master_context')
|
|
72
|
+
* @param rawContent Raw JSON string from the contexts table (pre-parse)
|
|
73
|
+
* @param parsedBlob Already-parsed blob object
|
|
74
|
+
* @returns BlobMigrationResult — includes the (possibly updated) blob
|
|
75
|
+
*/
|
|
76
|
+
export declare function applyPendingBlobMigrations(client: CmosDatabaseClient, contextId: string, rawContent: string, parsedBlob: Record<string, unknown>): BlobMigrationResult;
|
|
77
|
+
//# sourceMappingURL=blob-migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob-migrations.d.ts","sourceRoot":"","sources":["../../../src/tools/cmos/blob-migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMnD,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAM7D,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EAiC1C,CAAC;AAMF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAOvE;AAsDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,mBAAmB,CAsCrB"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Versioned blob migration system for master_context.
|
|
4
|
+
*
|
|
5
|
+
* Migrations are registered once in BLOB_MIGRATIONS and applied lazily on the
|
|
6
|
+
* first cmos_context_view call after an upgrade. Each project self-heals on
|
|
7
|
+
* first touch — no manual script, no per-project memory required.
|
|
8
|
+
*
|
|
9
|
+
* To add a future migration:
|
|
10
|
+
* 1. Append a new entry to BLOB_MIGRATIONS with the next version number.
|
|
11
|
+
* 2. Bump BLOB_SCHEMA_VERSION to match.
|
|
12
|
+
* Done. Existing projects migrate automatically on next read.
|
|
13
|
+
*
|
|
14
|
+
* Old migration entries are never removed — they are the changelog.
|
|
15
|
+
* The version gate (`currentVersion >= migration.version`) makes them free
|
|
16
|
+
* after they have applied.
|
|
17
|
+
*
|
|
18
|
+
* @module tools/cmos/blob-migrations
|
|
19
|
+
*/
|
|
20
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
23
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
24
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(o, k2, desc);
|
|
27
|
+
}) : (function(o, m, k, k2) {
|
|
28
|
+
if (k2 === undefined) k2 = k;
|
|
29
|
+
o[k2] = m[k];
|
|
30
|
+
}));
|
|
31
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
32
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
33
|
+
}) : function(o, v) {
|
|
34
|
+
o["default"] = v;
|
|
35
|
+
});
|
|
36
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
37
|
+
var ownKeys = function(o) {
|
|
38
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
39
|
+
var ar = [];
|
|
40
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
41
|
+
return ar;
|
|
42
|
+
};
|
|
43
|
+
return ownKeys(o);
|
|
44
|
+
};
|
|
45
|
+
return function (mod) {
|
|
46
|
+
if (mod && mod.__esModule) return mod;
|
|
47
|
+
var result = {};
|
|
48
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
49
|
+
__setModuleDefault(result, mod);
|
|
50
|
+
return result;
|
|
51
|
+
};
|
|
52
|
+
})();
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.BLOB_MIGRATIONS = exports.BLOB_SCHEMA_VERSION_KEY = exports.BLOB_SCHEMA_VERSION = void 0;
|
|
55
|
+
exports.getBlobSchemaVersion = getBlobSchemaVersion;
|
|
56
|
+
exports.applyPendingBlobMigrations = applyPendingBlobMigrations;
|
|
57
|
+
const crypto = __importStar(require("crypto"));
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// Public constants
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
/** Current latest blob schema version. Must match the highest version in BLOB_MIGRATIONS. */
|
|
62
|
+
exports.BLOB_SCHEMA_VERSION = 1;
|
|
63
|
+
/** Metadata table key that stores the applied blob schema version per project. */
|
|
64
|
+
exports.BLOB_SCHEMA_VERSION_KEY = 'blob_schema_version';
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// Migration registry
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
/**
|
|
69
|
+
* Ordered list of all blob migrations.
|
|
70
|
+
*
|
|
71
|
+
* Rules:
|
|
72
|
+
* - Append only. Never edit or remove an existing entry.
|
|
73
|
+
* - version must be 1-indexed and strictly increasing.
|
|
74
|
+
* - `up` must be a pure function (no side effects, no mutation of input).
|
|
75
|
+
*/
|
|
76
|
+
exports.BLOB_MIGRATIONS = [
|
|
77
|
+
{
|
|
78
|
+
version: 1,
|
|
79
|
+
description: 'Remove five duplicated sections from master_context blob (Sprint 51). ' +
|
|
80
|
+
'completed_missions, completed_sprints, decisions_made, learnings, and recent_sessions ' +
|
|
81
|
+
'are fully queryable from structured tables via FTS5Retriever or direct SQL.',
|
|
82
|
+
up: (blob) => {
|
|
83
|
+
const {
|
|
84
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
85
|
+
completed_missions,
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
87
|
+
completed_sprints,
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
89
|
+
decisions_made,
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
91
|
+
learnings,
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
93
|
+
recent_sessions, ...rest } = blob;
|
|
94
|
+
return rest;
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
// Future migrations go here. Example:
|
|
98
|
+
// {
|
|
99
|
+
// version: 2,
|
|
100
|
+
// description: 'Rename technical_context → stack_context (Sprint NN)',
|
|
101
|
+
// up: (blob) => {
|
|
102
|
+
// const { technical_context, ...rest } = blob;
|
|
103
|
+
// return { ...rest, stack_context: technical_context };
|
|
104
|
+
// },
|
|
105
|
+
// },
|
|
106
|
+
];
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
// Metadata helpers
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
/**
|
|
111
|
+
* Read the current blob schema version from the metadata table.
|
|
112
|
+
* Returns 0 (unversioned / legacy) if the key is absent or the table is missing.
|
|
113
|
+
*/
|
|
114
|
+
function getBlobSchemaVersion(client) {
|
|
115
|
+
const result = client.getOne('SELECT value FROM metadata WHERE key = ?', [
|
|
116
|
+
exports.BLOB_SCHEMA_VERSION_KEY,
|
|
117
|
+
]);
|
|
118
|
+
if (!result.success || !result.data)
|
|
119
|
+
return 0;
|
|
120
|
+
const parsed = parseInt(result.data.value, 10);
|
|
121
|
+
return isNaN(parsed) ? 0 : parsed;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Persist the blob schema version in the metadata table.
|
|
125
|
+
*/
|
|
126
|
+
function setBlobSchemaVersion(client, version) {
|
|
127
|
+
client.execute('INSERT OR REPLACE INTO metadata (key, value) VALUES (?, ?)', [
|
|
128
|
+
exports.BLOB_SCHEMA_VERSION_KEY,
|
|
129
|
+
String(version),
|
|
130
|
+
]);
|
|
131
|
+
}
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
// Snapshot helper
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
/**
|
|
136
|
+
* Take a pre-migration snapshot of the raw blob content.
|
|
137
|
+
* Skips silently if an identical snapshot already exists (content-hash dedup).
|
|
138
|
+
*/
|
|
139
|
+
function takePreMigrationSnapshot(client, contextId, rawContent, migrationVersion) {
|
|
140
|
+
const contentHash = crypto.createHash('sha256').update(rawContent).digest('hex').substring(0, 16);
|
|
141
|
+
// Skip if identical snapshot already exists
|
|
142
|
+
const existing = client.getOne('SELECT id FROM context_snapshots WHERE context_id = ? AND content_hash = ?', [contextId, contentHash]);
|
|
143
|
+
if (existing.success && existing.data)
|
|
144
|
+
return;
|
|
145
|
+
const now = new Date().toISOString();
|
|
146
|
+
client.execute(`INSERT INTO context_snapshots (context_id, session_id, source, content_hash, content, created_at)
|
|
147
|
+
VALUES (?, ?, ?, ?, ?, ?)`, [
|
|
148
|
+
contextId,
|
|
149
|
+
null,
|
|
150
|
+
`pre-migration: blob-schema-v${migrationVersion}`,
|
|
151
|
+
contentHash,
|
|
152
|
+
rawContent,
|
|
153
|
+
now,
|
|
154
|
+
]);
|
|
155
|
+
}
|
|
156
|
+
// ---------------------------------------------------------------------------
|
|
157
|
+
// Migration runner
|
|
158
|
+
// ---------------------------------------------------------------------------
|
|
159
|
+
/**
|
|
160
|
+
* Apply any pending blob migrations to master_context.
|
|
161
|
+
*
|
|
162
|
+
* Behaviour:
|
|
163
|
+
* - Only runs for contextId === 'master_context'. All other contexts are no-ops.
|
|
164
|
+
* - Reads blob_schema_version from metadata. If current, returns immediately.
|
|
165
|
+
* - If migrations are pending:
|
|
166
|
+
* 1. Takes a pre-migration snapshot (snapshot-protected, hash-deduped).
|
|
167
|
+
* 2. Applies each pending migration's `up()` in version order.
|
|
168
|
+
* 3. Writes the pruned blob back to the contexts table.
|
|
169
|
+
* 4. Bumps blob_schema_version in metadata.
|
|
170
|
+
* - Idempotent: a second call on the same DB is always a no-op.
|
|
171
|
+
*
|
|
172
|
+
* @param client Open database client (write access required)
|
|
173
|
+
* @param contextId Context row ID (e.g. 'master_context')
|
|
174
|
+
* @param rawContent Raw JSON string from the contexts table (pre-parse)
|
|
175
|
+
* @param parsedBlob Already-parsed blob object
|
|
176
|
+
* @returns BlobMigrationResult — includes the (possibly updated) blob
|
|
177
|
+
*/
|
|
178
|
+
function applyPendingBlobMigrations(client, contextId, rawContent, parsedBlob) {
|
|
179
|
+
// Only master_context carries the dead sections
|
|
180
|
+
if (contextId !== 'master_context') {
|
|
181
|
+
return { migrated: false, migrationsApplied: [], blob: parsedBlob };
|
|
182
|
+
}
|
|
183
|
+
const currentVersion = getBlobSchemaVersion(client);
|
|
184
|
+
const pending = exports.BLOB_MIGRATIONS.filter((m) => m.version > currentVersion);
|
|
185
|
+
if (pending.length === 0) {
|
|
186
|
+
return { migrated: false, migrationsApplied: [], blob: parsedBlob };
|
|
187
|
+
}
|
|
188
|
+
// Snapshot before any writes (using the highest pending version as the label)
|
|
189
|
+
const targetVersion = Math.max(...pending.map((m) => m.version));
|
|
190
|
+
takePreMigrationSnapshot(client, contextId, rawContent, targetVersion);
|
|
191
|
+
// Apply each pending migration in version order
|
|
192
|
+
let result = parsedBlob;
|
|
193
|
+
const applied = [];
|
|
194
|
+
for (const migration of pending) {
|
|
195
|
+
result = migration.up(result);
|
|
196
|
+
applied.push(migration.version);
|
|
197
|
+
}
|
|
198
|
+
// Write pruned blob back to contexts table
|
|
199
|
+
const newContent = JSON.stringify(result);
|
|
200
|
+
const now = new Date().toISOString();
|
|
201
|
+
client.execute('UPDATE contexts SET content = ?, updated_at = ? WHERE id = ?', [
|
|
202
|
+
newContent,
|
|
203
|
+
now,
|
|
204
|
+
contextId,
|
|
205
|
+
]);
|
|
206
|
+
// Bump version in metadata
|
|
207
|
+
setBlobSchemaVersion(client, targetVersion);
|
|
208
|
+
return { migrated: true, migrationsApplied: applied, blob: result };
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=blob-migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob-migrations.js","sourceRoot":"","sources":["../../../src/tools/cmos/blob-migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkpoint Backfill — Fire-and-Forget Dashboard Sync
|
|
3
|
+
*
|
|
4
|
+
* Triggers a non-blocking sync to the dashboard at workflow boundaries
|
|
5
|
+
* (session complete, sprint complete). Errors are logged to stderr and
|
|
6
|
+
* never propagate to the caller.
|
|
7
|
+
*
|
|
8
|
+
* Primary path: POST SQLite file to /api/sync/sqlite-backfill (file-based bulk sync).
|
|
9
|
+
* Fallback path: event-replay via cmosDbBackfill when no project slug is available.
|
|
10
|
+
*
|
|
11
|
+
* Auto-registers the project with the dashboard on first checkpoint if not
|
|
12
|
+
* already registered (checks `dashboard_registered` metadata flag).
|
|
13
|
+
*
|
|
14
|
+
* @module tools/cmos/checkpoint-backfill
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Trigger a checkpoint sync in a fire-and-forget manner.
|
|
18
|
+
* Returns immediately — the sync runs asynchronously.
|
|
19
|
+
*
|
|
20
|
+
* Primary path: file-based sync via POST /api/sync/sqlite-backfill (idempotent, bulk).
|
|
21
|
+
* Fallback: event-replay backfill when no project slug is available (not yet registered).
|
|
22
|
+
*
|
|
23
|
+
* On first checkpoint, auto-registers the project with the dashboard
|
|
24
|
+
* before running the sync.
|
|
25
|
+
*
|
|
26
|
+
* @param options.projectRoot - Project root for sync
|
|
27
|
+
* @param options.force - true for full sync (sprint complete), false for incremental (session complete)
|
|
28
|
+
*/
|
|
29
|
+
export declare function triggerCheckpointBackfill(options: {
|
|
30
|
+
projectRoot?: string;
|
|
31
|
+
force: boolean;
|
|
32
|
+
}): void;
|
|
33
|
+
//# sourceMappingURL=checkpoint-backfill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-backfill.d.ts","sourceRoot":"","sources":["../../../src/tools/cmos/checkpoint-backfill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA6IH;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAqEjG"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Checkpoint Backfill — Fire-and-Forget Dashboard Sync
|
|
4
|
+
*
|
|
5
|
+
* Triggers a non-blocking sync to the dashboard at workflow boundaries
|
|
6
|
+
* (session complete, sprint complete). Errors are logged to stderr and
|
|
7
|
+
* never propagate to the caller.
|
|
8
|
+
*
|
|
9
|
+
* Primary path: POST SQLite file to /api/sync/sqlite-backfill (file-based bulk sync).
|
|
10
|
+
* Fallback path: event-replay via cmosDbBackfill when no project slug is available.
|
|
11
|
+
*
|
|
12
|
+
* Auto-registers the project with the dashboard on first checkpoint if not
|
|
13
|
+
* already registered (checks `dashboard_registered` metadata flag).
|
|
14
|
+
*
|
|
15
|
+
* @module tools/cmos/checkpoint-backfill
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.triggerCheckpointBackfill = triggerCheckpointBackfill;
|
|
19
|
+
const cmos_db_backfill_1 = require("./cmos-db-backfill");
|
|
20
|
+
const client_1 = require("./client");
|
|
21
|
+
const dashboard_client_1 = require("./dashboard-client");
|
|
22
|
+
const errors_1 = require("./errors");
|
|
23
|
+
const owner_resolution_1 = require("./owner-resolution");
|
|
24
|
+
const project_identity_1 = require("./project-identity");
|
|
25
|
+
const project_key_capture_1 = require("../../auth/project-key-capture");
|
|
26
|
+
function deriveProjectSlug(projectName) {
|
|
27
|
+
return projectName.trim().toLowerCase().replace(/\s+/g, '-');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Check if the project is registered with the dashboard.
|
|
31
|
+
* If not, register it by uploading the SQLite database.
|
|
32
|
+
* Returns the SQLite path and project slug (null if unavailable).
|
|
33
|
+
* Non-fatal — errors are logged and swallowed.
|
|
34
|
+
*/
|
|
35
|
+
async function checkAndRegister(projectRoot, dashClient) {
|
|
36
|
+
let captured = null;
|
|
37
|
+
try {
|
|
38
|
+
await (0, client_1.withClientAsync)(async (client) => {
|
|
39
|
+
captured = { sqlitePath: client.path, projectSlug: null, expectedSlug: null };
|
|
40
|
+
const nameResult = client.getOne(`SELECT value FROM metadata WHERE key = 'project_name'`);
|
|
41
|
+
const projectName = (nameResult.success && nameResult.data?.value) || '';
|
|
42
|
+
captured.expectedSlug = projectName ? deriveProjectSlug(projectName) : null;
|
|
43
|
+
// Sprint 52 m01: seed metadata.owner from dashboard identity and rewrite any
|
|
44
|
+
// legacy `cmos://unknown/*` address. Runs on every checkpoint so downstream
|
|
45
|
+
// dashboard relays see the canonical address for sender attribution.
|
|
46
|
+
try {
|
|
47
|
+
await (0, owner_resolution_1.resolveAndPersistOwner)(client, dashClient);
|
|
48
|
+
(0, project_identity_1.backfillUnknownCmosAddress)(client);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// best-effort — never block the registration/sync flow
|
|
52
|
+
}
|
|
53
|
+
// Check if already registered
|
|
54
|
+
const regResult = client.getOne(`SELECT value FROM metadata WHERE key = 'dashboard_registered'`);
|
|
55
|
+
if (regResult.success && regResult.data?.value === 'true') {
|
|
56
|
+
// Already registered — read slug from metadata
|
|
57
|
+
const slugResult = client.getOne(`SELECT value FROM metadata WHERE key = 'dashboard_slug'`);
|
|
58
|
+
captured.projectSlug = (slugResult.success && slugResult.data?.value) || null;
|
|
59
|
+
return (0, errors_1.createSuccess)(undefined);
|
|
60
|
+
}
|
|
61
|
+
if (!projectName) {
|
|
62
|
+
return (0, errors_1.createSuccess)(undefined); // Can't register without a name
|
|
63
|
+
}
|
|
64
|
+
const sqlitePath = client.path;
|
|
65
|
+
const result = await dashClient.registerProject({
|
|
66
|
+
projectName,
|
|
67
|
+
sqlitePath,
|
|
68
|
+
localDbPath: sqlitePath,
|
|
69
|
+
expectedSlug: captured.expectedSlug ?? undefined,
|
|
70
|
+
});
|
|
71
|
+
if (result.success && result.data) {
|
|
72
|
+
// Store registration state in metadata
|
|
73
|
+
client.execute(`INSERT OR REPLACE INTO metadata (key, value) VALUES ('dashboard_registered', 'true')`);
|
|
74
|
+
client.execute(`INSERT OR REPLACE INTO metadata (key, value) VALUES ('dashboard_slug', ?)`, [result.data.slug]);
|
|
75
|
+
client.execute(`INSERT OR REPLACE INTO metadata (key, value) VALUES ('dashboard_project_id', ?)`, [result.data.projectId]);
|
|
76
|
+
console.error(`[CHECKPOINT] Auto-registered project "${projectName}" as "${result.data.slug}"` +
|
|
77
|
+
(result.data.reregistered ? ' (re-registration)' : ''));
|
|
78
|
+
captured.projectSlug = result.data.slug;
|
|
79
|
+
// Sprint 57 m02: capture the auto-issued project-scoped key into the
|
|
80
|
+
// local credential store so subsequent sends bear it via
|
|
81
|
+
// fromEnvForProject() without relying on the user-scoped fallback.
|
|
82
|
+
if (projectRoot) {
|
|
83
|
+
try {
|
|
84
|
+
const captureStatus = await (0, project_key_capture_1.captureRegisterResponse)({
|
|
85
|
+
projectRoot,
|
|
86
|
+
response: result.data,
|
|
87
|
+
parentKeyId: dashClient.authenticatingKeyId,
|
|
88
|
+
});
|
|
89
|
+
if (captureStatus === 'captured') {
|
|
90
|
+
console.error(`[CHECKPOINT] Captured project-scoped key for "${result.data.slug}" (keyId=${result.data.keyId})`);
|
|
91
|
+
}
|
|
92
|
+
else if (captureStatus === 'missing-parent-key-id') {
|
|
93
|
+
console.error(`[CHECKPOINT] Skipping project-key capture: client has no authenticatingKeyId (dashboard auto-issued key left orphaned locally; /reissue on next startup will recover).`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
98
|
+
console.error(`[CHECKPOINT] Project-key capture failed: ${msg}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (!result.success) {
|
|
103
|
+
console.error(`[CHECKPOINT] Registration failed: ${result.error?.message ?? 'unknown'}`);
|
|
104
|
+
}
|
|
105
|
+
return (0, errors_1.createSuccess)(undefined);
|
|
106
|
+
}, { projectRoot });
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// Non-fatal — continue with sync regardless
|
|
110
|
+
}
|
|
111
|
+
return captured;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Trigger a checkpoint sync in a fire-and-forget manner.
|
|
115
|
+
* Returns immediately — the sync runs asynchronously.
|
|
116
|
+
*
|
|
117
|
+
* Primary path: file-based sync via POST /api/sync/sqlite-backfill (idempotent, bulk).
|
|
118
|
+
* Fallback: event-replay backfill when no project slug is available (not yet registered).
|
|
119
|
+
*
|
|
120
|
+
* On first checkpoint, auto-registers the project with the dashboard
|
|
121
|
+
* before running the sync.
|
|
122
|
+
*
|
|
123
|
+
* @param options.projectRoot - Project root for sync
|
|
124
|
+
* @param options.force - true for full sync (sprint complete), false for incremental (session complete)
|
|
125
|
+
*/
|
|
126
|
+
function triggerCheckpointBackfill(options) {
|
|
127
|
+
// Sprint 62 m02: URL has a baked default (DEFAULT_DASHBOARD_URL), so the
|
|
128
|
+
// gate is now credentials-only. Without auth there's nothing to push, so
|
|
129
|
+
// skip silently — users without an account run local-only and that's fine.
|
|
130
|
+
const hasApiKey = !!process.env[dashboard_client_1.CMOS_DASHBOARD_API_KEY_ENV];
|
|
131
|
+
const hasCredentials = !!process.env[dashboard_client_1.CMOS_DASHBOARD_USER_ENV] && !!process.env[dashboard_client_1.CMOS_DASHBOARD_PASSWORD_ENV];
|
|
132
|
+
if (!hasApiKey && !hasCredentials) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// Fire and forget — never block the caller
|
|
136
|
+
(async () => {
|
|
137
|
+
// Resolve dashboard client once for all operations. Sprint 57 m02:
|
|
138
|
+
// fromEnvForProject threads the credential store so the client's
|
|
139
|
+
// authenticatingKeyId is populated — required for auto-capturing the
|
|
140
|
+
// project-scoped key returned on first-time register.
|
|
141
|
+
const dashResult = await dashboard_client_1.DashboardClient.fromEnvForProject(options.projectRoot);
|
|
142
|
+
if (!dashResult.success || !dashResult.data) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const dashClient = dashResult.data.client;
|
|
146
|
+
// Auto-register on first checkpoint, read slug for file sync
|
|
147
|
+
const info = await checkAndRegister(options.projectRoot, dashClient);
|
|
148
|
+
if (info?.projectSlug) {
|
|
149
|
+
// Primary path: file-based sync via POST /api/sync/sqlite-backfill
|
|
150
|
+
const result = await dashClient.syncSqliteFile(info.sqlitePath, info.projectSlug, info.expectedSlug ?? undefined);
|
|
151
|
+
if (result.success && result.data) {
|
|
152
|
+
const d = result.data;
|
|
153
|
+
const countSummary = Object.entries(d.counts)
|
|
154
|
+
.map(([k, v]) => `${k}:${v}`)
|
|
155
|
+
.join(', ');
|
|
156
|
+
console.error(`[CHECKPOINT] File sync: ${info.projectSlug} (${d.durationMs}ms)` +
|
|
157
|
+
(countSummary ? ` — ${countSummary}` : '') +
|
|
158
|
+
(d.errors.length > 0 ? ` — ${d.errors.length} error(s)` : ''));
|
|
159
|
+
}
|
|
160
|
+
else if (!result.success) {
|
|
161
|
+
console.error(`[CHECKPOINT] File sync failed: ${result.error?.message ?? 'unknown'}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// Fallback: event-replay backfill (no slug — project not yet registered)
|
|
166
|
+
const result = await (0, cmos_db_backfill_1.cmosDbBackfill)({
|
|
167
|
+
projectRoot: options.projectRoot,
|
|
168
|
+
force: options.force,
|
|
169
|
+
dryRun: false,
|
|
170
|
+
});
|
|
171
|
+
if (result.success && result.data) {
|
|
172
|
+
const d = result.data;
|
|
173
|
+
if (d.pushed > 0 || d.failed > 0) {
|
|
174
|
+
console.error(`[CHECKPOINT] Backfill: ${d.pushed} pushed, ${d.failed} failed` +
|
|
175
|
+
(d.deduped > 0 ? `, ${d.deduped} deduped` : ''));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else if (!result.success) {
|
|
179
|
+
console.error(`[CHECKPOINT] Backfill failed: ${result.error?.message ?? 'unknown'}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
})().catch((error) => {
|
|
183
|
+
console.error(`[CHECKPOINT] Sync error: ${error instanceof Error ? error.message : 'unknown'}`);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=checkpoint-backfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-backfill.js","sourceRoot":"","sources":["../../../src/tools/cmos/checkpoint-backfill.ts"],"names":[],"mappings":"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"}
|