@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,87 @@
|
|
|
1
|
+
import type { DashboardClient } from './dashboard-client';
|
|
2
|
+
/**
|
|
3
|
+
* Local sender identity — everything we know about *this* cwd's project, used to
|
|
4
|
+
* attribute outgoing messages. Both fields are resolved from the local DB in a
|
|
5
|
+
* single open; the async entrypoint also best-effort seeds `metadata.owner` and
|
|
6
|
+
* backfills the canonical cmos_address if they are missing.
|
|
7
|
+
*/
|
|
8
|
+
export interface LocalSenderIdentity {
|
|
9
|
+
/** Dashboard UUID for this local project, or null when never registered. */
|
|
10
|
+
projectId: string | null;
|
|
11
|
+
/** Canonical cmos://<owner>/<slug> address, or null when still empty/unknown. */
|
|
12
|
+
cmosAddress: string | null;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Read the local project's sender identity (dashboard UUID + cmos_address) from
|
|
16
|
+
* the CMOS database. Returns nulls — never bogus defaults — so the caller can
|
|
17
|
+
* fail closed rather than publishing a sibling project's identity.
|
|
18
|
+
*
|
|
19
|
+
* `cmosAddress` is null when the identity row holds an empty or `cmos://unknown/*`
|
|
20
|
+
* address; sending a bogus value is worse than omitting it (Sprint 52 m02, and
|
|
21
|
+
* the reason the Parts Town attribution bug is P0).
|
|
22
|
+
*
|
|
23
|
+
* Attempts a best-effort owner resolution + backfill first so that a fresh project
|
|
24
|
+
* with dashboard auth configured can emit a canonical address on its very first
|
|
25
|
+
* send.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readLocalSenderIdentity(projectRoot?: string): Promise<LocalSenderIdentity>;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the dashboard UUID to attribute an outbound message to.
|
|
30
|
+
*
|
|
31
|
+
* Resolution order (fail-closed):
|
|
32
|
+
* 1. `metadata.dashboard_project_id` — the canonical UUID written at
|
|
33
|
+
* registration / first checkpoint. Authoritative: it is the dashboard's
|
|
34
|
+
* own id for *this* cwd's project, so there is no ambiguity.
|
|
35
|
+
* 2. Match the local `project_identity.cmos_address` against
|
|
36
|
+
* `/api/projects/me` by canonical address. Used when a project was
|
|
37
|
+
* registered out-of-band and the metadata row is missing but the address
|
|
38
|
+
* is already canonical.
|
|
39
|
+
* 3. Otherwise `undefined`. Callers pass it through as an omitted field; the
|
|
40
|
+
* dashboard can then reject or apply its own (unrelated) fallback.
|
|
41
|
+
*
|
|
42
|
+
* NEVER pick `projects[0]` — the /api/projects/me response is "every project
|
|
43
|
+
* this user owns," and blindly taking the first one causes the Parts Town
|
|
44
|
+
* attribution corruption that Sprint 32's auto-detect shipped and Sprint 52
|
|
45
|
+
* failed to root-cause.
|
|
46
|
+
*/
|
|
47
|
+
export declare function resolveLocalSenderProjectId(client: DashboardClient, identity: LocalSenderIdentity): Promise<string | undefined>;
|
|
48
|
+
/**
|
|
49
|
+
* Convenience wrapper: read the local identity and resolve the senderProjectId
|
|
50
|
+
* in a single call. Used by tools that don't need the cmosAddress separately.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getLocalSenderProjectId(client: DashboardClient, projectRoot?: string): Promise<{
|
|
53
|
+
senderProjectId: string | undefined;
|
|
54
|
+
identity: LocalSenderIdentity;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Thrown when handleSend or any other authoritative-attribution call site cannot
|
|
58
|
+
* produce a complete sender identity (UUID + canonical cmos_address). Defense in
|
|
59
|
+
* depth on top of the dispatcher's `resolveSenderContext` gate — the resolver
|
|
60
|
+
* normally fail-closes before we ever reach this path, but keeping the assertion
|
|
61
|
+
* here prevents any caller that bypasses the boundary from silently publishing
|
|
62
|
+
* with a null sender.
|
|
63
|
+
*
|
|
64
|
+
* The thrown code `SENDER_ATTRIBUTION_INCOMPLETE` is distinct from the resolver's
|
|
65
|
+
* `SENDER_UNRESOLVABLE` so operators can tell which layer rejected the send.
|
|
66
|
+
*/
|
|
67
|
+
export declare class SenderAttributionIncompleteError extends Error {
|
|
68
|
+
readonly code = "SENDER_ATTRIBUTION_INCOMPLETE";
|
|
69
|
+
readonly identity: LocalSenderIdentity;
|
|
70
|
+
readonly senderProjectId: string | undefined;
|
|
71
|
+
constructor(identity: LocalSenderIdentity, senderProjectId: string | undefined);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Throw `SenderAttributionIncompleteError` when local identity is null — i.e.
|
|
75
|
+
* neither a resolved sender UUID nor a canonical cmos_address is available.
|
|
76
|
+
*
|
|
77
|
+
* Sprint 53 m02 decision: we fail-close only when there is *nothing* to
|
|
78
|
+
* attribute with. When either the UUID or the address is present, we forward
|
|
79
|
+
* what we have — the dashboard can cross-check (m04 adds echo-verification).
|
|
80
|
+
* This preserves existing pass-through semantics for edge cases where metadata
|
|
81
|
+
* is partially seeded, while still refusing to publish a completely-anonymous
|
|
82
|
+
* send. The full UUID+address authoritative attribution is enforced upstream
|
|
83
|
+
* by the dispatcher's `resolveSenderContext(requireSenderIdentity=true)` gate;
|
|
84
|
+
* this function is defense-in-depth for any caller that bypasses the boundary.
|
|
85
|
+
*/
|
|
86
|
+
export declare function assertSenderIdentityValid(identity: LocalSenderIdentity, senderProjectId: string | undefined): void;
|
|
87
|
+
//# sourceMappingURL=sender-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sender-identity.d.ts","sourceRoot":"","sources":["../../../src/tools/cmos/sender-identity.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iFAAiF;IACjF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAkED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgChG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAe7B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,eAAe,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAIjF;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,mCAAmC;IAChD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEjC,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS;CAU/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,IAAI,CAIN"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ABOUTME: Resolve the local project's sender identity (dashboard UUID + cmos_address)
|
|
3
|
+
// ABOUTME: for outbound cross-project messaging. Single source of truth for attribution.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.SenderAttributionIncompleteError = void 0;
|
|
6
|
+
exports.readLocalSenderIdentity = readLocalSenderIdentity;
|
|
7
|
+
exports.resolveLocalSenderProjectId = resolveLocalSenderProjectId;
|
|
8
|
+
exports.getLocalSenderProjectId = getLocalSenderProjectId;
|
|
9
|
+
exports.assertSenderIdentityValid = assertSenderIdentityValid;
|
|
10
|
+
/**
|
|
11
|
+
* Sender Identity Resolver
|
|
12
|
+
*
|
|
13
|
+
* Every path that calls DashboardClient.sendMessage must attribute the send to the
|
|
14
|
+
* *local* project — the cwd this process is running in. The original Sprint 32
|
|
15
|
+
* auto-detect blindly returned `/api/projects/me` projects[0], which caused every
|
|
16
|
+
* message from every project to be tagged with whichever project the dashboard
|
|
17
|
+
* happened to list first for the user (Parts Town, for derek — P0 bug reported
|
|
18
|
+
* 2026-04-16 after Sprint 52 failed to root-cause it).
|
|
19
|
+
*
|
|
20
|
+
* This module centralises the resolution so any new sender path gets the right
|
|
21
|
+
* answer automatically. Fail-closed: when we cannot authoritatively resolve the
|
|
22
|
+
* local project, return `undefined` — never a sibling project's id.
|
|
23
|
+
*
|
|
24
|
+
* @module tools/cmos/sender-identity
|
|
25
|
+
*/
|
|
26
|
+
const client_1 = require("./client");
|
|
27
|
+
const errors_1 = require("./errors");
|
|
28
|
+
const project_identity_1 = require("./project-identity");
|
|
29
|
+
const owner_resolution_1 = require("./owner-resolution");
|
|
30
|
+
/** UUID regex used to validate the local dashboard_project_id before trusting it. */
|
|
31
|
+
const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
32
|
+
/**
|
|
33
|
+
* Normalise a cmos:// address the same way cmos_message(send) does before POSTing,
|
|
34
|
+
* so that local-vs-directory comparison is case-insensitive + whitespace-tolerant.
|
|
35
|
+
*/
|
|
36
|
+
function normalizeAddress(address) {
|
|
37
|
+
if (!address.startsWith('cmos://'))
|
|
38
|
+
return address;
|
|
39
|
+
const body = address.slice('cmos://'.length);
|
|
40
|
+
const normalized = body.toLowerCase().replace(/\s+/g, '-').replace(/-{2,}/g, '-');
|
|
41
|
+
return `cmos://${normalized}`;
|
|
42
|
+
}
|
|
43
|
+
function normalizeSlug(value) {
|
|
44
|
+
if (!value)
|
|
45
|
+
return null;
|
|
46
|
+
const trimmed = value.trim();
|
|
47
|
+
return trimmed.length > 0 ? trimmed.toLowerCase().replace(/\s+/g, '-') : null;
|
|
48
|
+
}
|
|
49
|
+
function extractSlugFromAddress(address) {
|
|
50
|
+
if (!address || !address.startsWith('cmos://')) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const body = address.slice('cmos://'.length);
|
|
54
|
+
const [, slug] = body.split('/');
|
|
55
|
+
return normalizeSlug(slug ?? null);
|
|
56
|
+
}
|
|
57
|
+
function readMetadataValue(db, key) {
|
|
58
|
+
const result = db.getOne('SELECT value FROM metadata WHERE key = ?', [key]);
|
|
59
|
+
if (!result.success || !result.data?.value) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const trimmed = result.data.value.trim();
|
|
63
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
64
|
+
}
|
|
65
|
+
function shouldAttemptIdentityRepair(projectId, cmosAddress, db) {
|
|
66
|
+
if (!projectId || !UUID_REGEX.test(projectId)) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
if (!cmosAddress) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
const currentSlug = extractSlugFromAddress(cmosAddress);
|
|
73
|
+
const trustedSlugs = new Set([readMetadataValue(db, 'project_id'), readMetadataValue(db, 'project_name')]
|
|
74
|
+
.map((value) => normalizeSlug(value))
|
|
75
|
+
.filter((value) => value !== null));
|
|
76
|
+
if (trustedSlugs.size === 0) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return currentSlug === null || !trustedSlugs.has(currentSlug);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Read the local project's sender identity (dashboard UUID + cmos_address) from
|
|
83
|
+
* the CMOS database. Returns nulls — never bogus defaults — so the caller can
|
|
84
|
+
* fail closed rather than publishing a sibling project's identity.
|
|
85
|
+
*
|
|
86
|
+
* `cmosAddress` is null when the identity row holds an empty or `cmos://unknown/*`
|
|
87
|
+
* address; sending a bogus value is worse than omitting it (Sprint 52 m02, and
|
|
88
|
+
* the reason the Parts Town attribution bug is P0).
|
|
89
|
+
*
|
|
90
|
+
* Attempts a best-effort owner resolution + backfill first so that a fresh project
|
|
91
|
+
* with dashboard auth configured can emit a canonical address on its very first
|
|
92
|
+
* send.
|
|
93
|
+
*/
|
|
94
|
+
async function readLocalSenderIdentity(projectRoot) {
|
|
95
|
+
try {
|
|
96
|
+
const result = await (0, client_1.withClientAsync)(async (db) => {
|
|
97
|
+
const readIdentity = () => {
|
|
98
|
+
const rawProjectId = readMetadataValue(db, 'dashboard_project_id') ?? '';
|
|
99
|
+
const projectId = rawProjectId.length > 0 ? rawProjectId : null;
|
|
100
|
+
const identity = (0, project_identity_1.getProjectIdentity)(db);
|
|
101
|
+
const addr = identity?.cmos_address?.trim() ?? '';
|
|
102
|
+
const cmosAddress = !addr || addr.startsWith('cmos://unknown/') ? null : addr;
|
|
103
|
+
return { projectId, cmosAddress };
|
|
104
|
+
};
|
|
105
|
+
let localIdentity = readIdentity();
|
|
106
|
+
if (shouldAttemptIdentityRepair(localIdentity.projectId, localIdentity.cmosAddress, db)) {
|
|
107
|
+
try {
|
|
108
|
+
await (0, owner_resolution_1.resolveAndPersistOwner)(db);
|
|
109
|
+
(0, project_identity_1.backfillUnknownCmosAddress)(db);
|
|
110
|
+
localIdentity = readIdentity();
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// best-effort — fall through to whatever the DB currently has
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return (0, errors_1.createSuccess)(localIdentity);
|
|
117
|
+
}, { projectRoot });
|
|
118
|
+
return result.success && result.data ? result.data : { projectId: null, cmosAddress: null };
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return { projectId: null, cmosAddress: null };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Resolve the dashboard UUID to attribute an outbound message to.
|
|
126
|
+
*
|
|
127
|
+
* Resolution order (fail-closed):
|
|
128
|
+
* 1. `metadata.dashboard_project_id` — the canonical UUID written at
|
|
129
|
+
* registration / first checkpoint. Authoritative: it is the dashboard's
|
|
130
|
+
* own id for *this* cwd's project, so there is no ambiguity.
|
|
131
|
+
* 2. Match the local `project_identity.cmos_address` against
|
|
132
|
+
* `/api/projects/me` by canonical address. Used when a project was
|
|
133
|
+
* registered out-of-band and the metadata row is missing but the address
|
|
134
|
+
* is already canonical.
|
|
135
|
+
* 3. Otherwise `undefined`. Callers pass it through as an omitted field; the
|
|
136
|
+
* dashboard can then reject or apply its own (unrelated) fallback.
|
|
137
|
+
*
|
|
138
|
+
* NEVER pick `projects[0]` — the /api/projects/me response is "every project
|
|
139
|
+
* this user owns," and blindly taking the first one causes the Parts Town
|
|
140
|
+
* attribution corruption that Sprint 32's auto-detect shipped and Sprint 52
|
|
141
|
+
* failed to root-cause.
|
|
142
|
+
*/
|
|
143
|
+
async function resolveLocalSenderProjectId(client, identity) {
|
|
144
|
+
if (identity.projectId && UUID_REGEX.test(identity.projectId)) {
|
|
145
|
+
return identity.projectId;
|
|
146
|
+
}
|
|
147
|
+
if (!identity.cmosAddress)
|
|
148
|
+
return undefined;
|
|
149
|
+
const result = await client.getMyProjects();
|
|
150
|
+
if (!result.success || !result.data?.projects?.length) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
const normalizedLocal = normalizeAddress(identity.cmosAddress);
|
|
154
|
+
const match = result.data.projects.find((p) => normalizeAddress(p.address) === normalizedLocal);
|
|
155
|
+
return match?.id;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Convenience wrapper: read the local identity and resolve the senderProjectId
|
|
159
|
+
* in a single call. Used by tools that don't need the cmosAddress separately.
|
|
160
|
+
*/
|
|
161
|
+
async function getLocalSenderProjectId(client, projectRoot) {
|
|
162
|
+
const identity = await readLocalSenderIdentity(projectRoot);
|
|
163
|
+
const senderProjectId = await resolveLocalSenderProjectId(client, identity);
|
|
164
|
+
return { senderProjectId, identity };
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Thrown when handleSend or any other authoritative-attribution call site cannot
|
|
168
|
+
* produce a complete sender identity (UUID + canonical cmos_address). Defense in
|
|
169
|
+
* depth on top of the dispatcher's `resolveSenderContext` gate — the resolver
|
|
170
|
+
* normally fail-closes before we ever reach this path, but keeping the assertion
|
|
171
|
+
* here prevents any caller that bypasses the boundary from silently publishing
|
|
172
|
+
* with a null sender.
|
|
173
|
+
*
|
|
174
|
+
* The thrown code `SENDER_ATTRIBUTION_INCOMPLETE` is distinct from the resolver's
|
|
175
|
+
* `SENDER_UNRESOLVABLE` so operators can tell which layer rejected the send.
|
|
176
|
+
*/
|
|
177
|
+
class SenderAttributionIncompleteError extends Error {
|
|
178
|
+
constructor(identity, senderProjectId) {
|
|
179
|
+
super(`Sender attribution incomplete: projectId=${identity.projectId ?? 'null'} ` +
|
|
180
|
+
`cmosAddress=${identity.cmosAddress ?? 'null'} senderProjectId=${senderProjectId ?? 'null'}. ` +
|
|
181
|
+
'Refusing to send — attribution must be authoritatively resolved before dashboard publish.');
|
|
182
|
+
this.code = 'SENDER_ATTRIBUTION_INCOMPLETE';
|
|
183
|
+
this.name = 'SenderAttributionIncompleteError';
|
|
184
|
+
this.identity = identity;
|
|
185
|
+
this.senderProjectId = senderProjectId;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
exports.SenderAttributionIncompleteError = SenderAttributionIncompleteError;
|
|
189
|
+
/**
|
|
190
|
+
* Throw `SenderAttributionIncompleteError` when local identity is null — i.e.
|
|
191
|
+
* neither a resolved sender UUID nor a canonical cmos_address is available.
|
|
192
|
+
*
|
|
193
|
+
* Sprint 53 m02 decision: we fail-close only when there is *nothing* to
|
|
194
|
+
* attribute with. When either the UUID or the address is present, we forward
|
|
195
|
+
* what we have — the dashboard can cross-check (m04 adds echo-verification).
|
|
196
|
+
* This preserves existing pass-through semantics for edge cases where metadata
|
|
197
|
+
* is partially seeded, while still refusing to publish a completely-anonymous
|
|
198
|
+
* send. The full UUID+address authoritative attribution is enforced upstream
|
|
199
|
+
* by the dispatcher's `resolveSenderContext(requireSenderIdentity=true)` gate;
|
|
200
|
+
* this function is defense-in-depth for any caller that bypasses the boundary.
|
|
201
|
+
*/
|
|
202
|
+
function assertSenderIdentityValid(identity, senderProjectId) {
|
|
203
|
+
if (!senderProjectId && !identity.cmosAddress) {
|
|
204
|
+
throw new SenderAttributionIncompleteError(identity, senderProjectId);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=sender-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sender-identity.js","sourceRoot":"","sources":["../../../src/tools/cmos/sender-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Staleness Detection
|
|
3
|
+
*
|
|
4
|
+
* Detects and flags decisions/learnings that are older than N sprints
|
|
5
|
+
* and haven't been referenced. Surfaces stale counts for agent awareness.
|
|
6
|
+
*
|
|
7
|
+
* Staleness is sprint-based: items linked to sprints older than the threshold
|
|
8
|
+
* (default 20) relative to the current sprint are candidates. Items that are
|
|
9
|
+
* referenced (via supersession chains or evidence links) are exempt.
|
|
10
|
+
*
|
|
11
|
+
* @module tools/cmos/staleness-detection
|
|
12
|
+
*/
|
|
13
|
+
import type { CmosDatabaseClient } from './client';
|
|
14
|
+
/**
|
|
15
|
+
* Default staleness threshold in sprints.
|
|
16
|
+
*
|
|
17
|
+
* Sprint 61 m02 — raised from 10 → 20. Halves trigger frequency without losing
|
|
18
|
+
* the abandonment signal: a learning that hasn't been touched OR cited across
|
|
19
|
+
* 20 sprints is genuinely stale, not just dormant. The original 10-sprint
|
|
20
|
+
* threshold was tripping the same institutional rules every sprint and
|
|
21
|
+
* compounding the staleness pile faster than it could be triaged.
|
|
22
|
+
*
|
|
23
|
+
* Override at runtime via `CMOS_STALENESS_THRESHOLD_SPRINTS`. Tests should
|
|
24
|
+
* import this constant rather than hard-coding 20 so future bumps don't
|
|
25
|
+
* require test churn.
|
|
26
|
+
*/
|
|
27
|
+
export declare const DEFAULT_STALENESS_THRESHOLD = 20;
|
|
28
|
+
/**
|
|
29
|
+
* Result of staleness detection.
|
|
30
|
+
*/
|
|
31
|
+
export interface StalenessResult {
|
|
32
|
+
/** Number of decisions flagged as stale in this run */
|
|
33
|
+
decisionsFlagged: number;
|
|
34
|
+
/** Number of learnings flagged as stale in this run */
|
|
35
|
+
learningsFlagged: number;
|
|
36
|
+
/** Total stale decisions (including previously flagged) */
|
|
37
|
+
totalStaleDecisions: number;
|
|
38
|
+
/** Total stale learnings (including previously flagged) */
|
|
39
|
+
totalStaleLearnings: number;
|
|
40
|
+
/** The sprint threshold used */
|
|
41
|
+
threshold: number;
|
|
42
|
+
/** Current sprint number used for comparison */
|
|
43
|
+
currentSprintNumber: number | null;
|
|
44
|
+
/** Cutoff sprint number (items at or below this are stale candidates) */
|
|
45
|
+
cutoffSprintNumber: number | null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Detect and flag stale decisions and learnings.
|
|
49
|
+
*
|
|
50
|
+
* Idempotent: re-running produces the same result. Items already flagged as
|
|
51
|
+
* 'stale' are not re-flagged. Items with status other than 'active' are skipped.
|
|
52
|
+
*
|
|
53
|
+
* Referenced items are exempt:
|
|
54
|
+
* - Decisions that are the target of another decision's superseded_by
|
|
55
|
+
* - Decisions with non-null evidence links
|
|
56
|
+
*
|
|
57
|
+
* @param client - Database client
|
|
58
|
+
* @param options - Optional threshold override
|
|
59
|
+
* @returns Staleness detection result with counts
|
|
60
|
+
*/
|
|
61
|
+
export declare function detectAndFlagStaleness(client: CmosDatabaseClient, options?: {
|
|
62
|
+
threshold?: number;
|
|
63
|
+
}): StalenessResult;
|
|
64
|
+
/**
|
|
65
|
+
* Get stale counts without flagging (read-only).
|
|
66
|
+
* Useful when you want to report counts without mutating.
|
|
67
|
+
*
|
|
68
|
+
* Sprint 61 m03: ensures the learnings.evergreen column exists before reading
|
|
69
|
+
* (the count filters on `evergreen = 0` to exclude institutional rules).
|
|
70
|
+
*/
|
|
71
|
+
export declare function getStaleCounts(client: CmosDatabaseClient): {
|
|
72
|
+
staleDecisions: number;
|
|
73
|
+
staleLearnings: number;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Per-decision staleness detail with scoring and suggested action.
|
|
77
|
+
*/
|
|
78
|
+
export interface StaleDecisionDetail {
|
|
79
|
+
/** Decision ID */
|
|
80
|
+
id: number;
|
|
81
|
+
/** Decision text (truncated to 200 chars) */
|
|
82
|
+
text: string;
|
|
83
|
+
/** Current status */
|
|
84
|
+
status: string;
|
|
85
|
+
/** Sprint ID the decision belongs to */
|
|
86
|
+
sprintId: string | null;
|
|
87
|
+
/** Sprint age: how many sprints ago this decision was made */
|
|
88
|
+
sprintAge: number;
|
|
89
|
+
/** Staleness score: 0 (fresh) to 1.0 (very stale) */
|
|
90
|
+
stalenessScore: number;
|
|
91
|
+
/** Category of the decision */
|
|
92
|
+
category: string | null;
|
|
93
|
+
/** Whether this decision has evidence references */
|
|
94
|
+
hasEvidence: boolean;
|
|
95
|
+
/** Whether this decision is referenced by a supersession chain */
|
|
96
|
+
isReferenced: boolean;
|
|
97
|
+
/** Suggested lifecycle action */
|
|
98
|
+
suggestedAction: 'archive' | 'review' | 'confirm';
|
|
99
|
+
/** Reason for the suggestion */
|
|
100
|
+
suggestedReason: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Result of a decision lifecycle review.
|
|
104
|
+
*/
|
|
105
|
+
export interface DecisionReviewResult {
|
|
106
|
+
/** Decisions needing attention (stale or approaching staleness) */
|
|
107
|
+
decisions: StaleDecisionDetail[];
|
|
108
|
+
/** Total active decisions */
|
|
109
|
+
totalActive: number;
|
|
110
|
+
/** Total stale decisions */
|
|
111
|
+
totalStale: number;
|
|
112
|
+
/** Current sprint number */
|
|
113
|
+
currentSprintNumber: number | null;
|
|
114
|
+
/** Staleness threshold in sprints */
|
|
115
|
+
threshold: number;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get detailed staleness review for all decisions needing attention.
|
|
119
|
+
* Returns per-decision scoring and suggested actions.
|
|
120
|
+
*
|
|
121
|
+
* Unlike detectAndFlagStaleness, this does NOT mutate the database.
|
|
122
|
+
* It provides a read-only view for agents to triage.
|
|
123
|
+
*/
|
|
124
|
+
export declare function reviewDecisionStaleness(client: CmosDatabaseClient, options?: {
|
|
125
|
+
threshold?: number;
|
|
126
|
+
includeApproaching?: boolean;
|
|
127
|
+
}): DecisionReviewResult;
|
|
128
|
+
//# sourceMappingURL=staleness-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staleness-detection.d.ts","sourceRoot":"","sources":["../../../src/tools/cmos/staleness-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,uDAAuD;IACvD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,2DAA2D;IAC3D,mBAAmB,EAAE,MAAM,CAAC;IAE5B,2DAA2D;IAC3D,mBAAmB,EAAE,MAAM,CAAC;IAE5B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,gDAAgD;IAChD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,eAAe,CAsEjB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAMA;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oDAAoD;IACpD,WAAW,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,eAAe,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClD,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,oBAAoB,CA8FtB"}
|