@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,678 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Schema migrations for CMOS database evolution.
|
|
4
|
+
*
|
|
5
|
+
* Handles backward-compatible schema changes via ALTER TABLE
|
|
6
|
+
* with soft column detection (PRAGMA table_info).
|
|
7
|
+
*
|
|
8
|
+
* @module tools/cmos/schema-migrations
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
+
}) : function(o, v) {
|
|
24
|
+
o["default"] = v;
|
|
25
|
+
});
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.AGENT_FEEDBACK_STATUSES = exports.CONSTRAINT_STATUSES = exports.NEXT_STEP_STATUSES = exports.LEARNING_CATEGORIES = exports.DECISION_STATUSES = exports.DECISION_CATEGORIES = void 0;
|
|
45
|
+
exports.migrateStrategicDecisionsV21 = migrateStrategicDecisionsV21;
|
|
46
|
+
exports.ensureStrategicDecisionsSchema = ensureStrategicDecisionsSchema;
|
|
47
|
+
exports.ensureMissionTimestamps = ensureMissionTimestamps;
|
|
48
|
+
exports.ensureLearningsTable = ensureLearningsTable;
|
|
49
|
+
exports.migrateContentHash = migrateContentHash;
|
|
50
|
+
exports.ensureArchivalColumns = ensureArchivalColumns;
|
|
51
|
+
exports.ensureReviewTimestamps = ensureReviewTimestamps;
|
|
52
|
+
exports.computeContentHash = computeContentHash;
|
|
53
|
+
exports.ensureSessionMissionsTable = ensureSessionMissionsTable;
|
|
54
|
+
exports.ensureNextStepsTable = ensureNextStepsTable;
|
|
55
|
+
exports.ensureConstraintsTable = ensureConstraintsTable;
|
|
56
|
+
exports.ensureDecisionsFts5 = ensureDecisionsFts5;
|
|
57
|
+
exports.ensureAgentFeedbackTable = ensureAgentFeedbackTable;
|
|
58
|
+
const crypto = __importStar(require("crypto"));
|
|
59
|
+
/**
|
|
60
|
+
* Valid decision categories.
|
|
61
|
+
*/
|
|
62
|
+
exports.DECISION_CATEGORIES = [
|
|
63
|
+
'architectural',
|
|
64
|
+
'process',
|
|
65
|
+
'tooling',
|
|
66
|
+
'design',
|
|
67
|
+
'business',
|
|
68
|
+
];
|
|
69
|
+
/**
|
|
70
|
+
* Valid decision statuses.
|
|
71
|
+
*/
|
|
72
|
+
exports.DECISION_STATUSES = ['active', 'superseded', 'archived'];
|
|
73
|
+
/**
|
|
74
|
+
* New columns for the strategic_decisions evolution (v2.0 → v2.1).
|
|
75
|
+
*/
|
|
76
|
+
const STRATEGIC_DECISIONS_V21_COLUMNS = [
|
|
77
|
+
{ name: 'mission_id', type: 'TEXT' },
|
|
78
|
+
{ name: 'category', type: 'TEXT' },
|
|
79
|
+
{ name: 'superseded_by', type: 'INTEGER' },
|
|
80
|
+
{ name: 'status', type: "TEXT DEFAULT 'active'" },
|
|
81
|
+
{ name: 'evidence', type: 'TEXT' },
|
|
82
|
+
];
|
|
83
|
+
/**
|
|
84
|
+
* Indexes for the strategic_decisions evolution (v2.1).
|
|
85
|
+
*/
|
|
86
|
+
const STRATEGIC_DECISIONS_V21_INDEXES = [
|
|
87
|
+
{
|
|
88
|
+
name: 'idx_strategic_decisions_mission',
|
|
89
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_strategic_decisions_mission ON strategic_decisions (mission_id)',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'idx_strategic_decisions_status',
|
|
93
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_strategic_decisions_status ON strategic_decisions (status)',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: 'idx_strategic_decisions_category',
|
|
97
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_strategic_decisions_category ON strategic_decisions (category)',
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
/**
|
|
101
|
+
* Get the set of column names for a given table.
|
|
102
|
+
*/
|
|
103
|
+
function getTableColumns(client, tableName) {
|
|
104
|
+
const result = client.getMany(`PRAGMA table_info('${tableName}')`, []);
|
|
105
|
+
if (!result.success || !result.data) {
|
|
106
|
+
return new Set();
|
|
107
|
+
}
|
|
108
|
+
return new Set(result.data.map((row) => row.name));
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Ensure a column exists on a table, adding it via ALTER TABLE if missing.
|
|
112
|
+
* Returns true if the column was added, false if it already existed.
|
|
113
|
+
*/
|
|
114
|
+
function ensureColumn(client, tableName, column, existingColumns) {
|
|
115
|
+
if (existingColumns.has(column.name)) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
const result = client.execute(`ALTER TABLE ${tableName} ADD COLUMN ${column.name} ${column.type}`, []);
|
|
119
|
+
return result.success;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Run the strategic_decisions v2.1 migration.
|
|
123
|
+
*
|
|
124
|
+
* Adds category, superseded_by, status, evidence columns.
|
|
125
|
+
* Sets status='active' on existing rows where status is NULL.
|
|
126
|
+
* Creates indexes on status, category, and mission_id.
|
|
127
|
+
*
|
|
128
|
+
* Safe to call multiple times (idempotent).
|
|
129
|
+
*/
|
|
130
|
+
function migrateStrategicDecisionsV21(client) {
|
|
131
|
+
const existingColumns = getTableColumns(client, 'strategic_decisions');
|
|
132
|
+
if (existingColumns.size === 0) {
|
|
133
|
+
return { columnsAdded: [], indexesCreated: [], rowsUpdated: 0, alreadyCurrent: false };
|
|
134
|
+
}
|
|
135
|
+
const columnsAdded = [];
|
|
136
|
+
for (const column of STRATEGIC_DECISIONS_V21_COLUMNS) {
|
|
137
|
+
if (ensureColumn(client, 'strategic_decisions', column, existingColumns)) {
|
|
138
|
+
columnsAdded.push(column.name);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Set status='active' on any existing rows where status is NULL
|
|
142
|
+
let rowsUpdated = 0;
|
|
143
|
+
if (columnsAdded.includes('status')) {
|
|
144
|
+
const updateResult = client.execute("UPDATE strategic_decisions SET status = 'active' WHERE status IS NULL", []);
|
|
145
|
+
if (updateResult.success && updateResult.data?.changes) {
|
|
146
|
+
rowsUpdated = updateResult.data.changes;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Create indexes
|
|
150
|
+
const indexesCreated = [];
|
|
151
|
+
for (const index of STRATEGIC_DECISIONS_V21_INDEXES) {
|
|
152
|
+
const result = client.execute(index.sql, []);
|
|
153
|
+
if (result.success) {
|
|
154
|
+
indexesCreated.push(index.name);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Update schema version in metadata
|
|
158
|
+
client.execute("INSERT OR REPLACE INTO metadata (key, value) VALUES ('schema_version', '2.1')", []);
|
|
159
|
+
return {
|
|
160
|
+
columnsAdded,
|
|
161
|
+
indexesCreated,
|
|
162
|
+
rowsUpdated,
|
|
163
|
+
alreadyCurrent: columnsAdded.length === 0,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Run all pending migrations for the strategic_decisions table.
|
|
168
|
+
* Currently only v2.1 migration exists.
|
|
169
|
+
*/
|
|
170
|
+
function ensureStrategicDecisionsSchema(client) {
|
|
171
|
+
return migrateStrategicDecisionsV21(client);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* New columns for the missions table (v2.1).
|
|
175
|
+
*/
|
|
176
|
+
const MISSIONS_TIMESTAMP_COLUMNS = [
|
|
177
|
+
{ name: 'created_at', type: 'TEXT' },
|
|
178
|
+
{ name: 'started_at', type: 'TEXT' },
|
|
179
|
+
{ name: 'updated_at', type: 'TEXT' },
|
|
180
|
+
];
|
|
181
|
+
/**
|
|
182
|
+
* Ensure missions table has timestamp columns.
|
|
183
|
+
* Adds created_at, started_at, updated_at if missing.
|
|
184
|
+
*
|
|
185
|
+
* Safe to call multiple times (idempotent).
|
|
186
|
+
*/
|
|
187
|
+
function ensureMissionTimestamps(client) {
|
|
188
|
+
const existingColumns = getTableColumns(client, 'missions');
|
|
189
|
+
if (existingColumns.size === 0) {
|
|
190
|
+
return { columnsAdded: [], indexesCreated: [], rowsUpdated: 0, alreadyCurrent: false };
|
|
191
|
+
}
|
|
192
|
+
const columnsAdded = [];
|
|
193
|
+
for (const column of MISSIONS_TIMESTAMP_COLUMNS) {
|
|
194
|
+
if (ensureColumn(client, 'missions', column, existingColumns)) {
|
|
195
|
+
columnsAdded.push(column.name);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
columnsAdded,
|
|
200
|
+
indexesCreated: [],
|
|
201
|
+
rowsUpdated: 0,
|
|
202
|
+
alreadyCurrent: columnsAdded.length === 0,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Valid learning categories.
|
|
207
|
+
*/
|
|
208
|
+
exports.LEARNING_CATEGORIES = ['technical', 'process', 'agent-behavior', 'tooling'];
|
|
209
|
+
/**
|
|
210
|
+
* Ensure the learnings table exists.
|
|
211
|
+
* Creates the table and indexes if they don't exist, and runs the lazy
|
|
212
|
+
* column-level migrations (`evergreen` — Sprint 61 m03) on pre-existing tables.
|
|
213
|
+
*
|
|
214
|
+
* Sprint 61 m03 — `evergreen INTEGER DEFAULT 0` is now part of the canonical
|
|
215
|
+
* schema. It is set to 1 by an operator (or by `cmos_learnings(action="update",
|
|
216
|
+
* evergreen=true)`) on institutional-rule learnings that should never trip the
|
|
217
|
+
* staleness signal. The staleness query gates on `evergreen = 0` so flagged
|
|
218
|
+
* institutional rules drop out of the pile entirely.
|
|
219
|
+
*
|
|
220
|
+
* MUST be called on read paths in addition to write paths — un-migrated DBs
|
|
221
|
+
* would otherwise hit `no such column: evergreen` the first time the staleness
|
|
222
|
+
* query runs against learnings.
|
|
223
|
+
*
|
|
224
|
+
* Safe to call multiple times (idempotent).
|
|
225
|
+
*/
|
|
226
|
+
function ensureLearningsTable(client) {
|
|
227
|
+
const createResult = client.execute(`CREATE TABLE IF NOT EXISTS learnings (
|
|
228
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
229
|
+
content TEXT NOT NULL,
|
|
230
|
+
category TEXT,
|
|
231
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
232
|
+
sprint_id TEXT,
|
|
233
|
+
session_id TEXT,
|
|
234
|
+
mission_id TEXT,
|
|
235
|
+
created_at TEXT NOT NULL,
|
|
236
|
+
evergreen INTEGER NOT NULL DEFAULT 0
|
|
237
|
+
)`, []);
|
|
238
|
+
const tableCreated = createResult.success;
|
|
239
|
+
const columnsAdded = tableCreated ? ['learnings (table)'] : [];
|
|
240
|
+
// Lazy column migration for pre-existing tables (added pre-Sprint 61 m03).
|
|
241
|
+
const existingColumns = getTableColumns(client, 'learnings');
|
|
242
|
+
if (existingColumns.size > 0 && !existingColumns.has('evergreen')) {
|
|
243
|
+
const alterResult = client.execute(`ALTER TABLE learnings ADD COLUMN evergreen INTEGER NOT NULL DEFAULT 0`, []);
|
|
244
|
+
if (alterResult.success) {
|
|
245
|
+
columnsAdded.push('learnings.evergreen');
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const indexResults = [];
|
|
249
|
+
const indexes = [
|
|
250
|
+
{
|
|
251
|
+
name: 'idx_learnings_status',
|
|
252
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_learnings_status ON learnings (status)',
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
name: 'idx_learnings_sprint',
|
|
256
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_learnings_sprint ON learnings (sprint_id)',
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: 'idx_learnings_category',
|
|
260
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_learnings_category ON learnings (category)',
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
name: 'idx_learnings_evergreen',
|
|
264
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_learnings_evergreen ON learnings (evergreen)',
|
|
265
|
+
},
|
|
266
|
+
];
|
|
267
|
+
for (const index of indexes) {
|
|
268
|
+
const result = client.execute(index.sql, []);
|
|
269
|
+
if (result.success) {
|
|
270
|
+
indexResults.push(index.name);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
columnsAdded,
|
|
275
|
+
indexesCreated: indexResults,
|
|
276
|
+
rowsUpdated: 0,
|
|
277
|
+
alreadyCurrent: false,
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Content hash columns for dedup (v2.2).
|
|
282
|
+
* Adds content_hash to strategic_decisions and learnings tables.
|
|
283
|
+
*/
|
|
284
|
+
const CONTENT_HASH_COLUMNS = [
|
|
285
|
+
{
|
|
286
|
+
table: 'strategic_decisions',
|
|
287
|
+
column: { name: 'content_hash', type: 'TEXT' },
|
|
288
|
+
index: {
|
|
289
|
+
name: 'idx_strategic_decisions_hash',
|
|
290
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_strategic_decisions_hash ON strategic_decisions (content_hash)',
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
table: 'learnings',
|
|
295
|
+
column: { name: 'content_hash', type: 'TEXT' },
|
|
296
|
+
index: {
|
|
297
|
+
name: 'idx_learnings_hash',
|
|
298
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_learnings_hash ON learnings (content_hash)',
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
];
|
|
302
|
+
/**
|
|
303
|
+
* Run the content_hash migration (v2.2).
|
|
304
|
+
*
|
|
305
|
+
* Adds content_hash column to strategic_decisions and learnings tables.
|
|
306
|
+
* Computes SHA-256 hashes for existing records.
|
|
307
|
+
*
|
|
308
|
+
* Safe to call multiple times (idempotent).
|
|
309
|
+
*/
|
|
310
|
+
function migrateContentHash(client) {
|
|
311
|
+
const columnsAdded = [];
|
|
312
|
+
const indexesCreated = [];
|
|
313
|
+
let rowsUpdated = 0;
|
|
314
|
+
for (const spec of CONTENT_HASH_COLUMNS) {
|
|
315
|
+
const existingColumns = getTableColumns(client, spec.table);
|
|
316
|
+
if (existingColumns.size === 0)
|
|
317
|
+
continue;
|
|
318
|
+
if (ensureColumn(client, spec.table, spec.column, existingColumns)) {
|
|
319
|
+
columnsAdded.push(`${spec.table}.${spec.column.name}`);
|
|
320
|
+
}
|
|
321
|
+
const indexResult = client.execute(spec.index.sql, []);
|
|
322
|
+
if (indexResult.success) {
|
|
323
|
+
indexesCreated.push(spec.index.name);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
// Backfill hashes for existing decisions without content_hash
|
|
327
|
+
const unhashed = client.getMany(`SELECT id, decision_text, project_domain FROM strategic_decisions WHERE content_hash IS NULL`, []);
|
|
328
|
+
if (unhashed.success && unhashed.data) {
|
|
329
|
+
for (const row of unhashed.data) {
|
|
330
|
+
const hash = computeContentHash(row.decision_text, row.project_domain ?? 'general');
|
|
331
|
+
client.execute(`UPDATE strategic_decisions SET content_hash = ? WHERE id = ?`, [
|
|
332
|
+
hash,
|
|
333
|
+
row.id,
|
|
334
|
+
]);
|
|
335
|
+
rowsUpdated++;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// Backfill hashes for existing learnings without content_hash
|
|
339
|
+
const unhashedLearnings = client.getMany(`SELECT id, content, category FROM learnings WHERE content_hash IS NULL`, []);
|
|
340
|
+
if (unhashedLearnings.success && unhashedLearnings.data) {
|
|
341
|
+
for (const row of unhashedLearnings.data) {
|
|
342
|
+
const hash = computeContentHash(row.content, row.category ?? '');
|
|
343
|
+
client.execute(`UPDATE learnings SET content_hash = ? WHERE id = ?`, [hash, row.id]);
|
|
344
|
+
rowsUpdated++;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
if (columnsAdded.length > 0) {
|
|
348
|
+
client.execute("INSERT OR REPLACE INTO metadata (key, value) VALUES ('schema_version', '2.2')", []);
|
|
349
|
+
}
|
|
350
|
+
return {
|
|
351
|
+
columnsAdded,
|
|
352
|
+
indexesCreated,
|
|
353
|
+
rowsUpdated,
|
|
354
|
+
alreadyCurrent: columnsAdded.length === 0 && rowsUpdated === 0,
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Archival-reachability columns (Sprint 52 m04).
|
|
359
|
+
*
|
|
360
|
+
* The sprint-close archival query reads `strategic_decisions.session_id` and
|
|
361
|
+
* `learnings.session_id`. DBs seeded by `ensureLearningsTable` or pre-v2.1
|
|
362
|
+
* `strategic_decisions` layouts lack these columns, which makes the ALTER-less
|
|
363
|
+
* UPDATE fail with `no such column: session_id` — silently reducing archival
|
|
364
|
+
* to zero rows. This migration backfills the columns on any DB that lacks them.
|
|
365
|
+
*/
|
|
366
|
+
const ARCHIVAL_SESSION_COLUMNS = [
|
|
367
|
+
{ table: 'strategic_decisions', column: { name: 'session_id', type: 'TEXT' } },
|
|
368
|
+
{ table: 'learnings', column: { name: 'session_id', type: 'TEXT' } },
|
|
369
|
+
];
|
|
370
|
+
/**
|
|
371
|
+
* Ensure session_id exists on learnings and strategic_decisions so sprint-close
|
|
372
|
+
* archival can cross-reference sessions. Idempotent.
|
|
373
|
+
*/
|
|
374
|
+
function ensureArchivalColumns(client) {
|
|
375
|
+
const columnsAdded = [];
|
|
376
|
+
for (const spec of ARCHIVAL_SESSION_COLUMNS) {
|
|
377
|
+
const existing = getTableColumns(client, spec.table);
|
|
378
|
+
if (existing.size === 0)
|
|
379
|
+
continue;
|
|
380
|
+
if (ensureColumn(client, spec.table, spec.column, existing)) {
|
|
381
|
+
columnsAdded.push(`${spec.table}.${spec.column.name}`);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
return {
|
|
385
|
+
columnsAdded,
|
|
386
|
+
indexesCreated: [],
|
|
387
|
+
rowsUpdated: 0,
|
|
388
|
+
alreadyCurrent: columnsAdded.length === 0,
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Review-timestamp columns (Sprint 52 m03).
|
|
393
|
+
*
|
|
394
|
+
* Adds last_reviewed_at to learnings and strategic_decisions so staleness detection can
|
|
395
|
+
* respect operator triage. Before this, staleness re-fired on sprint_id every time the
|
|
396
|
+
* cutoff moved, re-flagging learnings that had just been archived/reaffirmed.
|
|
397
|
+
*/
|
|
398
|
+
const REVIEW_TIMESTAMP_TABLES = [
|
|
399
|
+
{ table: 'learnings', column: { name: 'last_reviewed_at', type: 'TEXT' } },
|
|
400
|
+
{ table: 'strategic_decisions', column: { name: 'last_reviewed_at', type: 'TEXT' } },
|
|
401
|
+
];
|
|
402
|
+
/**
|
|
403
|
+
* Ensure last_reviewed_at columns exist on learnings and strategic_decisions.
|
|
404
|
+
* Idempotent — safe to call on DBs where the column already exists.
|
|
405
|
+
*/
|
|
406
|
+
function ensureReviewTimestamps(client) {
|
|
407
|
+
const columnsAdded = [];
|
|
408
|
+
for (const spec of REVIEW_TIMESTAMP_TABLES) {
|
|
409
|
+
const existing = getTableColumns(client, spec.table);
|
|
410
|
+
if (existing.size === 0)
|
|
411
|
+
continue; // table doesn't exist on this DB
|
|
412
|
+
if (ensureColumn(client, spec.table, spec.column, existing)) {
|
|
413
|
+
columnsAdded.push(`${spec.table}.${spec.column.name}`);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
return {
|
|
417
|
+
columnsAdded,
|
|
418
|
+
indexesCreated: [],
|
|
419
|
+
rowsUpdated: 0,
|
|
420
|
+
alreadyCurrent: columnsAdded.length === 0,
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Compute a SHA-256 content hash for dedup.
|
|
425
|
+
* Uses canonical JSON of (text, domain) for consistent hashing.
|
|
426
|
+
*/
|
|
427
|
+
function computeContentHash(text, domain) {
|
|
428
|
+
const canonical = JSON.stringify({ d: domain, t: text });
|
|
429
|
+
return crypto.createHash('sha256').update(canonical).digest('hex');
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Ensure the FTS5 virtual table for decisions exists and is synced.
|
|
433
|
+
*
|
|
434
|
+
* Creates:
|
|
435
|
+
* - decisions_fts FTS5 virtual table (content-external, synced with strategic_decisions)
|
|
436
|
+
* - Triggers for auto-sync on INSERT, UPDATE, DELETE
|
|
437
|
+
*
|
|
438
|
+
* Safe to call multiple times (idempotent).
|
|
439
|
+
*/
|
|
440
|
+
/**
|
|
441
|
+
* Ensure the session_missions junction table exists.
|
|
442
|
+
* Creates the table and index if they don't exist.
|
|
443
|
+
*
|
|
444
|
+
* Safe to call multiple times (idempotent).
|
|
445
|
+
*/
|
|
446
|
+
function ensureSessionMissionsTable(client) {
|
|
447
|
+
const createResult = client.execute(`CREATE TABLE IF NOT EXISTS session_missions (
|
|
448
|
+
session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
|
|
449
|
+
mission_id TEXT NOT NULL REFERENCES missions(id) ON DELETE CASCADE,
|
|
450
|
+
linked_at TEXT NOT NULL,
|
|
451
|
+
source TEXT NOT NULL DEFAULT 'capture',
|
|
452
|
+
PRIMARY KEY (session_id, mission_id)
|
|
453
|
+
)`, []);
|
|
454
|
+
const tableCreated = createResult.success;
|
|
455
|
+
const indexResults = [];
|
|
456
|
+
const indexResult = client.execute('CREATE INDEX IF NOT EXISTS idx_session_missions_mission ON session_missions (mission_id)', []);
|
|
457
|
+
if (indexResult.success) {
|
|
458
|
+
indexResults.push('idx_session_missions_mission');
|
|
459
|
+
}
|
|
460
|
+
return {
|
|
461
|
+
columnsAdded: tableCreated ? ['session_missions (table)'] : [],
|
|
462
|
+
indexesCreated: indexResults,
|
|
463
|
+
rowsUpdated: 0,
|
|
464
|
+
alreadyCurrent: false,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Valid next-step statuses.
|
|
469
|
+
*/
|
|
470
|
+
exports.NEXT_STEP_STATUSES = ['pending', 'completed', 'carried', 'dropped'];
|
|
471
|
+
/**
|
|
472
|
+
* Ensure the next_steps table exists.
|
|
473
|
+
* Creates the table and indexes if they don't exist.
|
|
474
|
+
*
|
|
475
|
+
* Safe to call multiple times (idempotent).
|
|
476
|
+
*/
|
|
477
|
+
function ensureNextStepsTable(client) {
|
|
478
|
+
const createResult = client.execute(`CREATE TABLE IF NOT EXISTS next_steps (
|
|
479
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
480
|
+
content TEXT NOT NULL,
|
|
481
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
482
|
+
session_id TEXT REFERENCES sessions(id) ON DELETE SET NULL,
|
|
483
|
+
sprint_id TEXT REFERENCES sprints(id) ON DELETE SET NULL,
|
|
484
|
+
mission_id TEXT REFERENCES missions(id) ON DELETE SET NULL,
|
|
485
|
+
created_at TEXT NOT NULL,
|
|
486
|
+
resolved_at TEXT,
|
|
487
|
+
carried_to_sprint TEXT REFERENCES sprints(id) ON DELETE SET NULL,
|
|
488
|
+
content_hash TEXT
|
|
489
|
+
)`, []);
|
|
490
|
+
const tableCreated = createResult.success;
|
|
491
|
+
const indexResults = [];
|
|
492
|
+
const indexes = [
|
|
493
|
+
{
|
|
494
|
+
name: 'idx_next_steps_status',
|
|
495
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_next_steps_status ON next_steps (status)',
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
name: 'idx_next_steps_sprint',
|
|
499
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_next_steps_sprint ON next_steps (sprint_id)',
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
name: 'idx_next_steps_hash',
|
|
503
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_next_steps_hash ON next_steps (content_hash)',
|
|
504
|
+
},
|
|
505
|
+
];
|
|
506
|
+
for (const index of indexes) {
|
|
507
|
+
const result = client.execute(index.sql, []);
|
|
508
|
+
if (result.success) {
|
|
509
|
+
indexResults.push(index.name);
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
return {
|
|
513
|
+
columnsAdded: tableCreated ? ['next_steps (table)'] : [],
|
|
514
|
+
indexesCreated: indexResults,
|
|
515
|
+
rowsUpdated: 0,
|
|
516
|
+
alreadyCurrent: false,
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Valid constraint statuses.
|
|
521
|
+
*/
|
|
522
|
+
exports.CONSTRAINT_STATUSES = ['active', 'archived', 'expired'];
|
|
523
|
+
/**
|
|
524
|
+
* Ensure the constraints table exists.
|
|
525
|
+
* Creates the table and indexes if they don't exist.
|
|
526
|
+
*
|
|
527
|
+
* Safe to call multiple times (idempotent).
|
|
528
|
+
*/
|
|
529
|
+
function ensureConstraintsTable(client) {
|
|
530
|
+
const createResult = client.execute(`CREATE TABLE IF NOT EXISTS constraints (
|
|
531
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
532
|
+
content TEXT NOT NULL,
|
|
533
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
534
|
+
session_id TEXT REFERENCES sessions(id) ON DELETE SET NULL,
|
|
535
|
+
sprint_id TEXT REFERENCES sprints(id) ON DELETE SET NULL,
|
|
536
|
+
created_at TEXT NOT NULL,
|
|
537
|
+
expires_at TEXT,
|
|
538
|
+
archived_at TEXT,
|
|
539
|
+
content_hash TEXT
|
|
540
|
+
)`, []);
|
|
541
|
+
const tableCreated = createResult.success;
|
|
542
|
+
const indexResults = [];
|
|
543
|
+
const indexes = [
|
|
544
|
+
{
|
|
545
|
+
name: 'idx_constraints_status',
|
|
546
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_constraints_status ON constraints (status)',
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
name: 'idx_constraints_expires',
|
|
550
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_constraints_expires ON constraints (expires_at)',
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
name: 'idx_constraints_hash',
|
|
554
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_constraints_hash ON constraints (content_hash)',
|
|
555
|
+
},
|
|
556
|
+
];
|
|
557
|
+
for (const index of indexes) {
|
|
558
|
+
const result = client.execute(index.sql, []);
|
|
559
|
+
if (result.success) {
|
|
560
|
+
indexResults.push(index.name);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
return {
|
|
564
|
+
columnsAdded: tableCreated ? ['constraints (table)'] : [],
|
|
565
|
+
indexesCreated: indexResults,
|
|
566
|
+
rowsUpdated: 0,
|
|
567
|
+
alreadyCurrent: false,
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
function ensureDecisionsFts5(client) {
|
|
571
|
+
// Check if FTS5 table already exists
|
|
572
|
+
const existing = client.getOne("SELECT name FROM sqlite_master WHERE type='table' AND name='decisions_fts'", []);
|
|
573
|
+
if (existing.success && existing.data) {
|
|
574
|
+
return { columnsAdded: [], indexesCreated: [], rowsUpdated: 0, alreadyCurrent: true };
|
|
575
|
+
}
|
|
576
|
+
// Create FTS5 virtual table (content-external pattern)
|
|
577
|
+
const createResult = client.raw(`CREATE VIRTUAL TABLE IF NOT EXISTS decisions_fts USING fts5(
|
|
578
|
+
decision_text,
|
|
579
|
+
content='strategic_decisions',
|
|
580
|
+
content_rowid='id'
|
|
581
|
+
)`);
|
|
582
|
+
if (!createResult.success) {
|
|
583
|
+
return { columnsAdded: [], indexesCreated: [], rowsUpdated: 0, alreadyCurrent: false };
|
|
584
|
+
}
|
|
585
|
+
// Create triggers for auto-sync
|
|
586
|
+
client.raw(`
|
|
587
|
+
CREATE TRIGGER IF NOT EXISTS decisions_fts_insert AFTER INSERT ON strategic_decisions BEGIN
|
|
588
|
+
INSERT INTO decisions_fts(rowid, decision_text) VALUES (new.id, new.decision_text);
|
|
589
|
+
END
|
|
590
|
+
`);
|
|
591
|
+
client.raw(`
|
|
592
|
+
CREATE TRIGGER IF NOT EXISTS decisions_fts_delete AFTER DELETE ON strategic_decisions BEGIN
|
|
593
|
+
INSERT INTO decisions_fts(decisions_fts, rowid, decision_text) VALUES('delete', old.id, old.decision_text);
|
|
594
|
+
END
|
|
595
|
+
`);
|
|
596
|
+
client.raw(`
|
|
597
|
+
CREATE TRIGGER IF NOT EXISTS decisions_fts_update AFTER UPDATE OF decision_text ON strategic_decisions BEGIN
|
|
598
|
+
INSERT INTO decisions_fts(decisions_fts, rowid, decision_text) VALUES('delete', old.id, old.decision_text);
|
|
599
|
+
INSERT INTO decisions_fts(rowid, decision_text) VALUES (new.id, new.decision_text);
|
|
600
|
+
END
|
|
601
|
+
`);
|
|
602
|
+
// Rebuild index from existing data
|
|
603
|
+
let rowsUpdated = 0;
|
|
604
|
+
const rebuildResult = client.execute("INSERT INTO decisions_fts(decisions_fts) VALUES('rebuild')", []);
|
|
605
|
+
if (rebuildResult.success) {
|
|
606
|
+
const countResult = client.getOne('SELECT COUNT(*) as count FROM strategic_decisions', []);
|
|
607
|
+
rowsUpdated = countResult.success ? (countResult.data?.count ?? 0) : 0;
|
|
608
|
+
}
|
|
609
|
+
return {
|
|
610
|
+
columnsAdded: ['decisions_fts (virtual table)'],
|
|
611
|
+
indexesCreated: ['decisions_fts_insert', 'decisions_fts_delete', 'decisions_fts_update'],
|
|
612
|
+
rowsUpdated,
|
|
613
|
+
alreadyCurrent: false,
|
|
614
|
+
};
|
|
615
|
+
}
|
|
616
|
+
/**
|
|
617
|
+
* Valid statuses for agent_feedback rows.
|
|
618
|
+
*
|
|
619
|
+
* Sprint 56 m03 — the agentFeedback standing-channel lets agents report UX
|
|
620
|
+
* issues or improvement ideas from high-friction surfaces without being
|
|
621
|
+
* prompted. Human operator triages periodically.
|
|
622
|
+
*/
|
|
623
|
+
exports.AGENT_FEEDBACK_STATUSES = ['open', 'triaged', 'resolved', 'archived'];
|
|
624
|
+
/**
|
|
625
|
+
* Ensure the agent_feedback table exists (Sprint 56 m03).
|
|
626
|
+
*
|
|
627
|
+
* Holds free-text UX reports emitted by agents through the `agentFeedback`
|
|
628
|
+
* parameter on cmos_session(complete), cmos_mission_transition(complete),
|
|
629
|
+
* and cmos_agent_onboard. Kept as a dedicated table rather than reusing
|
|
630
|
+
* session captures so the triage surface (cmos_feedback) can filter/sort
|
|
631
|
+
* without entangling sprint-close capture aggregation.
|
|
632
|
+
*
|
|
633
|
+
* Safe to call multiple times (idempotent).
|
|
634
|
+
*/
|
|
635
|
+
function ensureAgentFeedbackTable(client) {
|
|
636
|
+
const createResult = client.execute(`CREATE TABLE IF NOT EXISTS agent_feedback (
|
|
637
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
638
|
+
tool_name TEXT NOT NULL,
|
|
639
|
+
body TEXT NOT NULL,
|
|
640
|
+
status TEXT NOT NULL DEFAULT 'open',
|
|
641
|
+
session_id TEXT REFERENCES sessions(id) ON DELETE SET NULL,
|
|
642
|
+
sprint_id TEXT REFERENCES sprints(id) ON DELETE SET NULL,
|
|
643
|
+
mission_id TEXT REFERENCES missions(id) ON DELETE SET NULL,
|
|
644
|
+
project_id TEXT,
|
|
645
|
+
created_at TEXT NOT NULL,
|
|
646
|
+
resolved_at TEXT,
|
|
647
|
+
resolution_note TEXT
|
|
648
|
+
)`, []);
|
|
649
|
+
const tableCreated = createResult.success;
|
|
650
|
+
const indexResults = [];
|
|
651
|
+
const indexes = [
|
|
652
|
+
{
|
|
653
|
+
name: 'idx_agent_feedback_status',
|
|
654
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_agent_feedback_status ON agent_feedback (status)',
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
name: 'idx_agent_feedback_tool',
|
|
658
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_agent_feedback_tool ON agent_feedback (tool_name)',
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
name: 'idx_agent_feedback_created',
|
|
662
|
+
sql: 'CREATE INDEX IF NOT EXISTS idx_agent_feedback_created ON agent_feedback (created_at DESC)',
|
|
663
|
+
},
|
|
664
|
+
];
|
|
665
|
+
for (const index of indexes) {
|
|
666
|
+
const result = client.execute(index.sql, []);
|
|
667
|
+
if (result.success) {
|
|
668
|
+
indexResults.push(index.name);
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
return {
|
|
672
|
+
columnsAdded: tableCreated ? ['agent_feedback (table)'] : [],
|
|
673
|
+
indexesCreated: indexResults,
|
|
674
|
+
rowsUpdated: 0,
|
|
675
|
+
alreadyCurrent: false,
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
//# sourceMappingURL=schema-migrations.js.map
|