@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,729 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ABOUTME: cmos_message tool — cross-project messaging via cmos-dashboard REST API.
|
|
3
|
+
// ABOUTME: Supports backlog_request, question, status_update, info_push, intel_request, intel_alert.
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.cmosMessageToolDefinition = exports.cmosMessageSchema = exports.MESSAGE_TYPE_MAP = exports.VALID_MESSAGE_TABS = exports.VALID_RESPOND_STATUSES = exports.VALID_MESSAGE_STATUSES = exports.VALID_MESSAGE_TYPES = exports.CMOS_MESSAGE_ACTIONS = void 0;
|
|
9
|
+
exports.getWhoamiDiagnostics = getWhoamiDiagnostics;
|
|
10
|
+
exports.cmosMessage = cmosMessage;
|
|
11
|
+
exports.formatMessageForLLM = formatMessageForLLM;
|
|
12
|
+
/**
|
|
13
|
+
* cmos_message Tool
|
|
14
|
+
*
|
|
15
|
+
* Consolidated messaging tool with action parameter support.
|
|
16
|
+
* Actions: send, list, respond.
|
|
17
|
+
* Calls the cmos-dashboard REST API via DashboardClient.
|
|
18
|
+
*
|
|
19
|
+
* @module tools/cmos/cmos-message
|
|
20
|
+
*/
|
|
21
|
+
const zod_1 = require("zod");
|
|
22
|
+
const path_1 = __importDefault(require("path"));
|
|
23
|
+
const errors_1 = require("./errors");
|
|
24
|
+
const auth_state_1 = require("../../auth/auth-state");
|
|
25
|
+
const dashboard_client_1 = require("./dashboard-client");
|
|
26
|
+
const client_1 = require("./client");
|
|
27
|
+
const sender_identity_1 = require("./sender-identity");
|
|
28
|
+
const sender_context_1 = require("../../intelligence/sender-context");
|
|
29
|
+
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
30
|
+
exports.CMOS_MESSAGE_ACTIONS = ['send', 'list', 'respond', 'directory', 'whoami'];
|
|
31
|
+
exports.VALID_MESSAGE_TYPES = [
|
|
32
|
+
'backlog_request',
|
|
33
|
+
'question',
|
|
34
|
+
'status_update',
|
|
35
|
+
'info_push',
|
|
36
|
+
'intel_request',
|
|
37
|
+
'intel_alert',
|
|
38
|
+
];
|
|
39
|
+
exports.VALID_MESSAGE_STATUSES = ['pending', 'accepted', 'declined', 'replied'];
|
|
40
|
+
exports.VALID_RESPOND_STATUSES = ['accepted', 'declined', 'replied'];
|
|
41
|
+
exports.VALID_MESSAGE_TABS = ['inbox', 'sent'];
|
|
42
|
+
/**
|
|
43
|
+
* Message type to ActivityPub verb/object mapping.
|
|
44
|
+
*/
|
|
45
|
+
exports.MESSAGE_TYPE_MAP = {
|
|
46
|
+
backlog_request: { verb: 'create', object: 'mission' },
|
|
47
|
+
question: { verb: 'ask', object: 'note' },
|
|
48
|
+
status_update: { verb: 'update', object: 'mission' },
|
|
49
|
+
info_push: { verb: 'add', object: 'reference' },
|
|
50
|
+
intel_request: { verb: 'request', object: 'intelligence' },
|
|
51
|
+
intel_alert: { verb: 'notify', object: 'intelligence' },
|
|
52
|
+
};
|
|
53
|
+
/** Regex for validating cmos:// addresses. */
|
|
54
|
+
const CMOS_ADDRESS_REGEX = /^cmos:\/\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+(\/[a-zA-Z0-9_-]+)?$/;
|
|
55
|
+
/** Regex for validating UUID format. */
|
|
56
|
+
const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
57
|
+
// ─── Zod Schema ──────────────────────────────────────────────────────────────
|
|
58
|
+
exports.cmosMessageSchema = zod_1.z
|
|
59
|
+
.object({
|
|
60
|
+
action: zod_1.z
|
|
61
|
+
.enum(exports.CMOS_MESSAGE_ACTIONS)
|
|
62
|
+
.describe('Message action: send | list | respond | directory | whoami'),
|
|
63
|
+
// send params
|
|
64
|
+
targetAddress: zod_1.z
|
|
65
|
+
.string()
|
|
66
|
+
.optional()
|
|
67
|
+
.describe('cmos:// address of the recipient (required for send)'),
|
|
68
|
+
type: zod_1.z
|
|
69
|
+
.enum(exports.VALID_MESSAGE_TYPES)
|
|
70
|
+
.optional()
|
|
71
|
+
.describe('Message type: backlog_request | question | status_update | info_push | intel_request | intel_alert (required for send)'),
|
|
72
|
+
summary: zod_1.z
|
|
73
|
+
.string()
|
|
74
|
+
.optional()
|
|
75
|
+
.describe('Short description displayed in inbox list (required for send)'),
|
|
76
|
+
body: zod_1.z.string().optional().describe('Full message content'),
|
|
77
|
+
senderProjectId: zod_1.z
|
|
78
|
+
.string()
|
|
79
|
+
.optional()
|
|
80
|
+
.describe("Sender's project UUID. Resolved from local metadata.dashboard_project_id when omitted; falls back to matching local cmos_address against /api/projects/me. Agents should leave this unset — it is authoritatively resolved from the cwd's project identity."),
|
|
81
|
+
evidence: zod_1.z
|
|
82
|
+
.array(zod_1.z.object({ type: zod_1.z.string(), id: zod_1.z.string() }))
|
|
83
|
+
.optional()
|
|
84
|
+
.describe('TraceLab evidence references [{type, id}]'),
|
|
85
|
+
// list params
|
|
86
|
+
tab: zod_1.z.enum(exports.VALID_MESSAGE_TABS).optional().describe('inbox (default) or sent'),
|
|
87
|
+
status: zod_1.z
|
|
88
|
+
.enum(exports.VALID_MESSAGE_STATUSES)
|
|
89
|
+
.optional()
|
|
90
|
+
.describe('Filter by message status for list action'),
|
|
91
|
+
limit: zod_1.z
|
|
92
|
+
.number()
|
|
93
|
+
.int()
|
|
94
|
+
.positive()
|
|
95
|
+
.max(100)
|
|
96
|
+
.optional()
|
|
97
|
+
.describe('Max messages to return (default 20)'),
|
|
98
|
+
// respond params
|
|
99
|
+
messageId: zod_1.z
|
|
100
|
+
.string()
|
|
101
|
+
.optional()
|
|
102
|
+
.describe('UUID of the message to respond to (required for respond)'),
|
|
103
|
+
respondStatus: zod_1.z
|
|
104
|
+
.enum(exports.VALID_RESPOND_STATUSES)
|
|
105
|
+
.optional()
|
|
106
|
+
.describe('Response status: accepted | declined | replied (required for respond)'),
|
|
107
|
+
notes: zod_1.z.string().optional().describe('Response notes'),
|
|
108
|
+
projectRoot: zod_1.z
|
|
109
|
+
.string()
|
|
110
|
+
.optional()
|
|
111
|
+
.describe('Project root directory to search for CMOS database (defaults to cwd)'),
|
|
112
|
+
})
|
|
113
|
+
.strict();
|
|
114
|
+
// ─── Tool Definition ─────────────────────────────────────────────────────────
|
|
115
|
+
exports.cmosMessageToolDefinition = {
|
|
116
|
+
name: 'cmos_message',
|
|
117
|
+
description: 'Agent messaging tool for cross-project communication via cmos-dashboard. ' +
|
|
118
|
+
'Actions: send (send message to another project), list (check inbox/sent), ' +
|
|
119
|
+
'respond (accept/decline/reply to a message), directory (discover addressable projects), ' +
|
|
120
|
+
'whoami (diagnose sender attribution). ' +
|
|
121
|
+
'Send auto-detects senderProjectId, normalizes addresses (spaces→hyphens, lowercase), ' +
|
|
122
|
+
'and validates target against the project directory before sending. ' +
|
|
123
|
+
'Requires CMOS_DASHBOARD_URL, CMOS_DASHBOARD_USER, and CMOS_DASHBOARD_PASSWORD environment variables.',
|
|
124
|
+
inputSchema: {
|
|
125
|
+
type: 'object',
|
|
126
|
+
properties: {
|
|
127
|
+
action: {
|
|
128
|
+
type: 'string',
|
|
129
|
+
enum: [...exports.CMOS_MESSAGE_ACTIONS],
|
|
130
|
+
description: 'Message action: send | list | respond | directory | whoami',
|
|
131
|
+
},
|
|
132
|
+
targetAddress: {
|
|
133
|
+
type: 'string',
|
|
134
|
+
description: 'cmos:// address of the recipient. Format: cmos://username/project-name[/mission-id]',
|
|
135
|
+
},
|
|
136
|
+
type: {
|
|
137
|
+
type: 'string',
|
|
138
|
+
enum: [...exports.VALID_MESSAGE_TYPES],
|
|
139
|
+
description: 'Message type: backlog_request | question | status_update | info_push | intel_request | intel_alert',
|
|
140
|
+
},
|
|
141
|
+
summary: {
|
|
142
|
+
type: 'string',
|
|
143
|
+
description: 'Short description displayed in inbox list',
|
|
144
|
+
},
|
|
145
|
+
body: { type: 'string', description: 'Full message content' },
|
|
146
|
+
senderProjectId: {
|
|
147
|
+
type: 'string',
|
|
148
|
+
description: "Sender's project UUID. Resolved from local metadata.dashboard_project_id when omitted; falls back to matching local cmos_address against /api/projects/me. Agents typically do not need to pass this.",
|
|
149
|
+
},
|
|
150
|
+
evidence: {
|
|
151
|
+
type: 'array',
|
|
152
|
+
items: {
|
|
153
|
+
type: 'object',
|
|
154
|
+
properties: {
|
|
155
|
+
type: { type: 'string', description: 'Evidence type' },
|
|
156
|
+
id: { type: 'string', description: 'Evidence identifier' },
|
|
157
|
+
},
|
|
158
|
+
required: ['type', 'id'],
|
|
159
|
+
},
|
|
160
|
+
description: 'TraceLab evidence references [{type, id}]',
|
|
161
|
+
},
|
|
162
|
+
tab: {
|
|
163
|
+
type: 'string',
|
|
164
|
+
enum: [...exports.VALID_MESSAGE_TABS],
|
|
165
|
+
description: 'inbox (default) or sent',
|
|
166
|
+
},
|
|
167
|
+
status: {
|
|
168
|
+
type: 'string',
|
|
169
|
+
enum: [...exports.VALID_MESSAGE_STATUSES],
|
|
170
|
+
description: 'Filter by message status for list action',
|
|
171
|
+
},
|
|
172
|
+
limit: {
|
|
173
|
+
type: 'number',
|
|
174
|
+
minimum: 1,
|
|
175
|
+
maximum: 100,
|
|
176
|
+
description: 'Max messages to return (default 20)',
|
|
177
|
+
},
|
|
178
|
+
messageId: {
|
|
179
|
+
type: 'string',
|
|
180
|
+
description: 'UUID of the message to respond to',
|
|
181
|
+
},
|
|
182
|
+
respondStatus: {
|
|
183
|
+
type: 'string',
|
|
184
|
+
enum: [...exports.VALID_RESPOND_STATUSES],
|
|
185
|
+
description: 'Response status: accepted | declined | replied',
|
|
186
|
+
},
|
|
187
|
+
notes: { type: 'string', description: 'Response notes' },
|
|
188
|
+
projectRoot: {
|
|
189
|
+
type: 'string',
|
|
190
|
+
description: 'Project root directory to search for CMOS database (defaults to cwd)',
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
required: ['action'],
|
|
194
|
+
additionalProperties: false,
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
// ─── Action Type Guard ───────────────────────────────────────────────────────
|
|
198
|
+
function isMessageAction(value) {
|
|
199
|
+
return exports.CMOS_MESSAGE_ACTIONS.includes(value);
|
|
200
|
+
}
|
|
201
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
202
|
+
/**
|
|
203
|
+
* Normalize a cmos:// address: lowercase, replace spaces with hyphens,
|
|
204
|
+
* collapse multiple hyphens, trim whitespace from segments.
|
|
205
|
+
* Handles input like "cmos://Derek/CMOS Dashboard" → "cmos://derek/cmos-dashboard".
|
|
206
|
+
*/
|
|
207
|
+
function normalizeAddress(address) {
|
|
208
|
+
if (!address.startsWith('cmos://'))
|
|
209
|
+
return address;
|
|
210
|
+
const body = address.slice('cmos://'.length);
|
|
211
|
+
const normalized = body.toLowerCase().replace(/\s+/g, '-').replace(/-{2,}/g, '-');
|
|
212
|
+
return `cmos://${normalized}`;
|
|
213
|
+
}
|
|
214
|
+
function normalizeOptionalEnvPath(value) {
|
|
215
|
+
const trimmed = value?.trim();
|
|
216
|
+
if (!trimmed) {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
return trimmed;
|
|
220
|
+
}
|
|
221
|
+
function formatCandidateLine(candidate) {
|
|
222
|
+
const status = candidate.accepted ? '✓' : '✗';
|
|
223
|
+
const location = candidate.projectRoot ? ` ${candidate.projectRoot}` : '';
|
|
224
|
+
const rejectReason = !candidate.accepted && candidate.rejectReason ? ` — ${candidate.rejectReason}` : '';
|
|
225
|
+
return ` ${status} ${candidate.source}${location}${rejectReason}`;
|
|
226
|
+
}
|
|
227
|
+
function resolvedFromContext(context) {
|
|
228
|
+
if (!context) {
|
|
229
|
+
return {
|
|
230
|
+
projectRoot: null,
|
|
231
|
+
source: null,
|
|
232
|
+
dashboardProjectId: null,
|
|
233
|
+
cmosAddress: null,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
return {
|
|
237
|
+
projectRoot: context.projectRoot,
|
|
238
|
+
source: context.source,
|
|
239
|
+
dashboardProjectId: context.dashboardProjectId,
|
|
240
|
+
cmosAddress: context.cmosAddress,
|
|
241
|
+
...(context.healed ? { healed: context.healed } : {}),
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function buildWhoamiWarnings(strictError, relaxedContext, cwd, serverInstallRoot, envCmosProjectRoot, mcpRoots) {
|
|
245
|
+
const warnings = [];
|
|
246
|
+
if (envCmosProjectRoot) {
|
|
247
|
+
warnings.push(`${client_1.CMOS_PROJECT_ROOT_ENV} is set to ${envCmosProjectRoot}. Sprint 53 removed it from tool-call resolution; it now exists only for .env bootstrap.`);
|
|
248
|
+
}
|
|
249
|
+
if (cwd === serverInstallRoot) {
|
|
250
|
+
warnings.push('cwd equals server install root; this path must never be the implicit sender for another project.');
|
|
251
|
+
}
|
|
252
|
+
if ((!mcpRoots || mcpRoots.length === 0) && !relaxedContext?.projectRoot) {
|
|
253
|
+
warnings.push('No MCP roots were advertised and no local CMOS database was resolved; diagnosis is limited to cwd/registry inspection.');
|
|
254
|
+
}
|
|
255
|
+
if (relaxedContext?.healed) {
|
|
256
|
+
warnings.push(`Healed stale cmos_address from ${relaxedContext.healed.previous} to ${relaxedContext.healed.next}.`);
|
|
257
|
+
}
|
|
258
|
+
if (strictError) {
|
|
259
|
+
warnings.push('Next outbound send would fail-closed until sender identity resolves authoritatively.');
|
|
260
|
+
}
|
|
261
|
+
return warnings;
|
|
262
|
+
}
|
|
263
|
+
async function getWhoamiDiagnostics(options = {}) {
|
|
264
|
+
const cwd = path_1.default.resolve(options.cwdOverride ?? process.cwd());
|
|
265
|
+
const serverInstallRoot = path_1.default.resolve(options.serverInstallRootOverride ?? sender_context_1.SERVER_INSTALL_ROOT);
|
|
266
|
+
const envCmosProjectRoot = normalizeOptionalEnvPath(process.env[client_1.CMOS_PROJECT_ROOT_ENV]);
|
|
267
|
+
const serverInstall = {
|
|
268
|
+
root: serverInstallRoot,
|
|
269
|
+
wouldHaveBeenUsed: cwd === serverInstallRoot ||
|
|
270
|
+
(envCmosProjectRoot !== null && path_1.default.resolve(envCmosProjectRoot) === serverInstallRoot),
|
|
271
|
+
envCmosProjectRoot,
|
|
272
|
+
};
|
|
273
|
+
let strictContext;
|
|
274
|
+
let strictError;
|
|
275
|
+
try {
|
|
276
|
+
strictContext = await (0, sender_context_1.resolveSenderContext)({
|
|
277
|
+
explicitProjectRoot: options.explicitProjectRoot,
|
|
278
|
+
mcpRoots: options.mcpRoots,
|
|
279
|
+
requireSenderIdentity: true,
|
|
280
|
+
cwdOverride: options.cwdOverride,
|
|
281
|
+
serverInstallRootOverride: options.serverInstallRootOverride,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
if (err instanceof sender_context_1.SenderResolutionError) {
|
|
286
|
+
strictError = err;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
throw err;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
let relaxedContext;
|
|
293
|
+
let relaxedError;
|
|
294
|
+
if (!strictContext) {
|
|
295
|
+
try {
|
|
296
|
+
relaxedContext = await (0, sender_context_1.resolveSenderContext)({
|
|
297
|
+
explicitProjectRoot: options.explicitProjectRoot,
|
|
298
|
+
mcpRoots: options.mcpRoots,
|
|
299
|
+
requireSenderIdentity: false,
|
|
300
|
+
cwdOverride: options.cwdOverride,
|
|
301
|
+
serverInstallRootOverride: options.serverInstallRootOverride,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
catch (err) {
|
|
305
|
+
if (err instanceof sender_context_1.SenderResolutionError) {
|
|
306
|
+
relaxedError = err;
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
throw err;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
const resolvedContext = strictContext ?? relaxedContext;
|
|
314
|
+
const candidates = strictContext?.candidates ??
|
|
315
|
+
strictError?.candidates ??
|
|
316
|
+
relaxedContext?.candidates ??
|
|
317
|
+
relaxedError?.candidates ??
|
|
318
|
+
[];
|
|
319
|
+
// Sprint 57 m04: attach the local credential store + last deliveryAck snapshot
|
|
320
|
+
// so agents see auth state without a separate cmos_auth(action=list) call.
|
|
321
|
+
// Best-effort — never fail whoami because credential-store I/O hiccupped.
|
|
322
|
+
let authState;
|
|
323
|
+
try {
|
|
324
|
+
const authProjectRoot = resolvedContext?.projectRoot ?? options.explicitProjectRoot ?? undefined;
|
|
325
|
+
authState = await (0, auth_state_1.computeAuthState)(authProjectRoot ? { projectRoot: authProjectRoot } : {});
|
|
326
|
+
}
|
|
327
|
+
catch {
|
|
328
|
+
authState = undefined;
|
|
329
|
+
}
|
|
330
|
+
const data = {
|
|
331
|
+
resolved: resolvedFromContext(resolvedContext),
|
|
332
|
+
candidates: [...candidates],
|
|
333
|
+
serverInstall,
|
|
334
|
+
wouldAttributeAs: {
|
|
335
|
+
senderProjectId: strictContext?.dashboardProjectId ?? null,
|
|
336
|
+
senderAddress: strictContext?.cmosAddress ?? null,
|
|
337
|
+
},
|
|
338
|
+
...(authState ? { authState } : {}),
|
|
339
|
+
};
|
|
340
|
+
const warnings = buildWhoamiWarnings(strictError, relaxedContext, cwd, serverInstallRoot, envCmosProjectRoot, options.mcpRoots);
|
|
341
|
+
if (authState?.warning) {
|
|
342
|
+
warnings.push(authState.warning);
|
|
343
|
+
}
|
|
344
|
+
if (strictContext) {
|
|
345
|
+
return (0, errors_1.createSuccess)(data, warnings);
|
|
346
|
+
}
|
|
347
|
+
return {
|
|
348
|
+
success: false,
|
|
349
|
+
data,
|
|
350
|
+
error: {
|
|
351
|
+
code: strictError?.code ?? 'SENDER_UNRESOLVABLE',
|
|
352
|
+
message: strictError?.message ??
|
|
353
|
+
'Could not authoritatively resolve sender context for the next outbound send.',
|
|
354
|
+
suggestion: 'Pass projectRoot explicitly, run from a directory with cmos/db/cmos.sqlite, or ensure the local CMOS DB has a UUID metadata.dashboard_project_id and canonical project_identity.cmos_address.',
|
|
355
|
+
},
|
|
356
|
+
warnings,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Fetch the project directory and return addresses that are close matches
|
|
361
|
+
* to the given target. Uses simple substring matching on address components.
|
|
362
|
+
*/
|
|
363
|
+
async function getSuggestedAddresses(client, targetAddress) {
|
|
364
|
+
const dirResult = await client.listDirectory();
|
|
365
|
+
if (!dirResult.success || !dirResult.data?.projects) {
|
|
366
|
+
return [];
|
|
367
|
+
}
|
|
368
|
+
// Extract the project slug from the target (e.g. "cmos-dashboard" from "cmos://derek/cmos-dashboard")
|
|
369
|
+
const parts = targetAddress.replace('cmos://', '').split('/');
|
|
370
|
+
const targetSlug = parts[1] ?? '';
|
|
371
|
+
const targetOwner = parts[0] ?? '';
|
|
372
|
+
return dirResult.data.projects
|
|
373
|
+
.filter((p) => {
|
|
374
|
+
const addr = p.address;
|
|
375
|
+
const addrParts = addr.replace('cmos://', '').split('/');
|
|
376
|
+
const slug = addrParts[1] ?? '';
|
|
377
|
+
const owner = addrParts[0] ?? '';
|
|
378
|
+
// Match on same owner, or slug contains/is-contained-by target slug
|
|
379
|
+
return owner === targetOwner || slug.includes(targetSlug) || targetSlug.includes(slug);
|
|
380
|
+
})
|
|
381
|
+
.slice(0, 5)
|
|
382
|
+
.map((p) => p.address);
|
|
383
|
+
}
|
|
384
|
+
// ─── Action Handlers ─────────────────────────────────────────────────────────
|
|
385
|
+
async function handleSend(params, client) {
|
|
386
|
+
// Validate required params
|
|
387
|
+
if (!params.targetAddress) {
|
|
388
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.missingParameter('targetAddress'));
|
|
389
|
+
}
|
|
390
|
+
if (!params.type) {
|
|
391
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.missingParameter('type'));
|
|
392
|
+
}
|
|
393
|
+
if (!params.summary) {
|
|
394
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.missingParameter('summary'));
|
|
395
|
+
}
|
|
396
|
+
// Normalize address: lowercase, spaces → hyphens
|
|
397
|
+
const targetAddress = normalizeAddress(params.targetAddress);
|
|
398
|
+
// Validate cmos:// address format (after normalization)
|
|
399
|
+
if (!CMOS_ADDRESS_REGEX.test(targetAddress)) {
|
|
400
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.invalidParameter('targetAddress', params.targetAddress, [
|
|
401
|
+
'cmos://username/project-name',
|
|
402
|
+
'cmos://username/project-name/mission-id',
|
|
403
|
+
]));
|
|
404
|
+
}
|
|
405
|
+
// Pre-send address resolution — validate target exists
|
|
406
|
+
const resolveResult = await client.resolveAddress({ address: targetAddress });
|
|
407
|
+
if (!resolveResult.success) {
|
|
408
|
+
// On 404, try to suggest close matches from directory
|
|
409
|
+
if (resolveResult.error?.code === 'DASHBOARD_NOT_FOUND') {
|
|
410
|
+
const suggestions = await getSuggestedAddresses(client, targetAddress);
|
|
411
|
+
const hint = suggestions.length > 0
|
|
412
|
+
? `Did you mean: ${suggestions.join(', ')}?`
|
|
413
|
+
: 'Use cmos_message action="directory" to see all addressable projects.';
|
|
414
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.dashboardNotFound(targetAddress, `Address '${targetAddress}' not found in project directory`, hint));
|
|
415
|
+
}
|
|
416
|
+
// For other errors (auth, network), pass through
|
|
417
|
+
return (0, errors_1.createError)(resolveResult.error);
|
|
418
|
+
}
|
|
419
|
+
// Sprint 53 m02: the dispatcher already ran `resolveSenderContext` with
|
|
420
|
+
// `requireSenderIdentity=true` and passed the resolved projectRoot through in
|
|
421
|
+
// `params.projectRoot`, so `readLocalSenderIdentity` opens the right DB. The
|
|
422
|
+
// `assertSenderIdentityValid` call below is defense-in-depth — if any future
|
|
423
|
+
// caller bypasses the dispatcher boundary and invokes `handleSend` directly
|
|
424
|
+
// with an unresolvable project, we fail-closed here with
|
|
425
|
+
// `SENDER_ATTRIBUTION_INCOMPLETE` rather than silently publishing a null sender.
|
|
426
|
+
// (The dispatcher's `SENDER_UNRESOLVABLE` and this layer's
|
|
427
|
+
// `SENDER_ATTRIBUTION_INCOMPLETE` are distinct so operators can tell which
|
|
428
|
+
// gate rejected the send.)
|
|
429
|
+
const localIdentity = await (0, sender_identity_1.readLocalSenderIdentity)(params.projectRoot);
|
|
430
|
+
const senderProjectId = params.senderProjectId ?? (await (0, sender_identity_1.resolveLocalSenderProjectId)(client, localIdentity));
|
|
431
|
+
const senderAddress = localIdentity.cmosAddress ?? undefined;
|
|
432
|
+
try {
|
|
433
|
+
(0, sender_identity_1.assertSenderIdentityValid)(localIdentity, senderProjectId);
|
|
434
|
+
}
|
|
435
|
+
catch (err) {
|
|
436
|
+
if (err instanceof sender_identity_1.SenderAttributionIncompleteError) {
|
|
437
|
+
return (0, errors_1.createError)({
|
|
438
|
+
code: err.code,
|
|
439
|
+
message: err.message,
|
|
440
|
+
suggestion: 'The dispatcher should have caught this via resolveSenderContext — report the call site so ' +
|
|
441
|
+
'it can be routed through the audited boundary. Verify CMOS DB has a UUID ' +
|
|
442
|
+
'metadata.dashboard_project_id and a canonical project_identity.cmos_address.',
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
throw err;
|
|
446
|
+
}
|
|
447
|
+
if (senderAddress && params.advertisedRoots && params.advertisedRoots.length > 0) {
|
|
448
|
+
let matchedAdvertisedRoot = false;
|
|
449
|
+
for (const root of params.advertisedRoots) {
|
|
450
|
+
const validation = await (0, sender_context_1.validateProject)(root, { heal: false });
|
|
451
|
+
if (validation.cmosAddress === senderAddress) {
|
|
452
|
+
matchedAdvertisedRoot = true;
|
|
453
|
+
break;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
if (!matchedAdvertisedRoot) {
|
|
457
|
+
return (0, errors_1.createError)({
|
|
458
|
+
code: 'SENDER_ATTRIBUTION_MISMATCH',
|
|
459
|
+
message: `Resolved sender address '${senderAddress}' does not match any advertised MCP root.`,
|
|
460
|
+
suggestion: 'Verify the MCP client is advertising the intended workspace roots and that the local sender identity belongs to one of them before retrying the send.',
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
// Map type to verb/object
|
|
465
|
+
const mapping = exports.MESSAGE_TYPE_MAP[params.type];
|
|
466
|
+
const result = await client.sendMessage({
|
|
467
|
+
targetAddress,
|
|
468
|
+
type: params.type,
|
|
469
|
+
summary: params.summary,
|
|
470
|
+
body: params.body,
|
|
471
|
+
evidence: params.evidence,
|
|
472
|
+
senderProjectId,
|
|
473
|
+
senderAddress,
|
|
474
|
+
});
|
|
475
|
+
if (!result.success) {
|
|
476
|
+
return (0, errors_1.createError)(result.error);
|
|
477
|
+
}
|
|
478
|
+
const response = result.data;
|
|
479
|
+
const out = {
|
|
480
|
+
messageId: response.id,
|
|
481
|
+
targetAddress,
|
|
482
|
+
status: response.status ?? 'pending',
|
|
483
|
+
summary: params.summary,
|
|
484
|
+
verb: mapping.verb,
|
|
485
|
+
object: mapping.object,
|
|
486
|
+
};
|
|
487
|
+
// Echo the address we sent — useful for callers that want to verify attribution
|
|
488
|
+
// without opening the DB themselves. Only included when we actually sent one.
|
|
489
|
+
if (senderAddress)
|
|
490
|
+
out.senderAddress = senderAddress;
|
|
491
|
+
// Forward dashboard-reported routing/delivery status when present. Absence here
|
|
492
|
+
// is expected today and does not imply failure; see DashboardMessage.deliveryStatus.
|
|
493
|
+
if (response.deliveryStatus)
|
|
494
|
+
out.deliveryStatus = response.deliveryStatus;
|
|
495
|
+
return (0, errors_1.createSuccess)(out);
|
|
496
|
+
}
|
|
497
|
+
async function handleList(params, client) {
|
|
498
|
+
const tab = params.tab ?? 'inbox';
|
|
499
|
+
const limit = params.limit ?? 20;
|
|
500
|
+
const result = await client.listMessages({
|
|
501
|
+
tab,
|
|
502
|
+
status: params.status,
|
|
503
|
+
limit,
|
|
504
|
+
});
|
|
505
|
+
if (!result.success) {
|
|
506
|
+
return (0, errors_1.createError)(result.error);
|
|
507
|
+
}
|
|
508
|
+
return (0, errors_1.createSuccess)({
|
|
509
|
+
messages: result.data.messages,
|
|
510
|
+
unreadCount: result.data.unreadCount,
|
|
511
|
+
totalCount: result.data.totalCount,
|
|
512
|
+
tab,
|
|
513
|
+
statusFilter: params.status ?? null,
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
async function handleRespond(params, client) {
|
|
517
|
+
// Validate required params
|
|
518
|
+
if (!params.messageId) {
|
|
519
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.missingParameter('messageId'));
|
|
520
|
+
}
|
|
521
|
+
if (!params.respondStatus) {
|
|
522
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.missingParameter('respondStatus'));
|
|
523
|
+
}
|
|
524
|
+
// Validate UUID format
|
|
525
|
+
if (!UUID_REGEX.test(params.messageId)) {
|
|
526
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.invalidParameter('messageId', params.messageId, [
|
|
527
|
+
'UUID format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
|
|
528
|
+
]));
|
|
529
|
+
}
|
|
530
|
+
const result = await client.respondToMessage({
|
|
531
|
+
messageId: params.messageId,
|
|
532
|
+
status: params.respondStatus,
|
|
533
|
+
notes: params.notes,
|
|
534
|
+
});
|
|
535
|
+
if (!result.success) {
|
|
536
|
+
return (0, errors_1.createError)(result.error);
|
|
537
|
+
}
|
|
538
|
+
return (0, errors_1.createSuccess)({
|
|
539
|
+
messageId: params.messageId,
|
|
540
|
+
previousStatus: 'pending',
|
|
541
|
+
currentStatus: params.respondStatus,
|
|
542
|
+
respondedAt: result.data.updatedAt ?? new Date().toISOString(),
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
async function handleDirectory(_params, client) {
|
|
546
|
+
const result = await client.listDirectory();
|
|
547
|
+
if (!result.success) {
|
|
548
|
+
return (0, errors_1.createError)(result.error);
|
|
549
|
+
}
|
|
550
|
+
return (0, errors_1.createSuccess)({
|
|
551
|
+
projects: result.data.projects,
|
|
552
|
+
totalCount: result.data.totalCount,
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
async function handleWhoami(params) {
|
|
556
|
+
return getWhoamiDiagnostics({ explicitProjectRoot: params.projectRoot });
|
|
557
|
+
}
|
|
558
|
+
// ─── Main Dispatcher ─────────────────────────────────────────────────────────
|
|
559
|
+
/**
|
|
560
|
+
* Consolidated cmos_message tool.
|
|
561
|
+
* Creates a DashboardClient from env and dispatches to action handlers.
|
|
562
|
+
*/
|
|
563
|
+
async function cmosMessage(params) {
|
|
564
|
+
const actionValue = typeof params.action === 'string' ? params.action : '';
|
|
565
|
+
if (!isMessageAction(actionValue)) {
|
|
566
|
+
return (0, errors_1.createError)(errors_1.CmosErrors.invalidAction('cmos_message', actionValue, exports.CMOS_MESSAGE_ACTIONS));
|
|
567
|
+
}
|
|
568
|
+
if (actionValue === 'whoami') {
|
|
569
|
+
return handleWhoami(params);
|
|
570
|
+
}
|
|
571
|
+
// Create client via the credential-store-aware factory so device-code-minted
|
|
572
|
+
// user-scoped keys (Sprint 57) reach the messaging surface. The legacy fromEnv()
|
|
573
|
+
// factory only consults env-var auth and silently 401s when only a user-scoped
|
|
574
|
+
// key in the credential store is available.
|
|
575
|
+
const clientResult = await dashboard_client_1.DashboardClient.fromEnvForProject(params.projectRoot);
|
|
576
|
+
if (!clientResult.success) {
|
|
577
|
+
return (0, errors_1.createError)(clientResult.error);
|
|
578
|
+
}
|
|
579
|
+
const client = clientResult.data.client;
|
|
580
|
+
switch (actionValue) {
|
|
581
|
+
case 'send':
|
|
582
|
+
return handleSend(params, client);
|
|
583
|
+
case 'list':
|
|
584
|
+
return handleList(params, client);
|
|
585
|
+
case 'respond':
|
|
586
|
+
return handleRespond(params, client);
|
|
587
|
+
case 'directory':
|
|
588
|
+
return handleDirectory(params, client);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
// ─── LLM Formatter ───────────────────────────────────────────────────────────
|
|
592
|
+
function formatSendForLLM(result) {
|
|
593
|
+
if (!result.success) {
|
|
594
|
+
return `Failed to send message: ${result.error?.message ?? 'Unknown error'}\n${result.error?.suggestion ?? ''}`;
|
|
595
|
+
}
|
|
596
|
+
const d = result.data;
|
|
597
|
+
const lines = [
|
|
598
|
+
`Message sent successfully`,
|
|
599
|
+
` ID: ${d.messageId}`,
|
|
600
|
+
` To: ${d.targetAddress}`,
|
|
601
|
+
` Summary: ${d.summary}`,
|
|
602
|
+
` Type: ${d.verb}/${d.object}`,
|
|
603
|
+
` Status: ${d.status}`,
|
|
604
|
+
];
|
|
605
|
+
return lines.join('\n');
|
|
606
|
+
}
|
|
607
|
+
function formatListForLLM(result) {
|
|
608
|
+
if (!result.success) {
|
|
609
|
+
return `Failed to list messages: ${result.error?.message ?? 'Unknown error'}\n${result.error?.suggestion ?? ''}`;
|
|
610
|
+
}
|
|
611
|
+
const d = result.data;
|
|
612
|
+
const lines = [`Messages (${d.tab}) — ${d.totalCount} total, ${d.unreadCount} unread`];
|
|
613
|
+
if (d.statusFilter) {
|
|
614
|
+
lines[0] += ` (filtered: ${d.statusFilter})`;
|
|
615
|
+
}
|
|
616
|
+
if (d.messages.length === 0) {
|
|
617
|
+
lines.push(' No messages');
|
|
618
|
+
}
|
|
619
|
+
else {
|
|
620
|
+
for (const msg of d.messages) {
|
|
621
|
+
const from = msg.from ? ` from ${msg.from}` : '';
|
|
622
|
+
lines.push(` [${msg.status}] ${msg.summary}${from} (${msg.id})`);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
return lines.join('\n');
|
|
626
|
+
}
|
|
627
|
+
function formatRespondForLLM(result) {
|
|
628
|
+
if (!result.success) {
|
|
629
|
+
return `Failed to respond to message: ${result.error?.message ?? 'Unknown error'}\n${result.error?.suggestion ?? ''}`;
|
|
630
|
+
}
|
|
631
|
+
const d = result.data;
|
|
632
|
+
return [
|
|
633
|
+
`Response recorded`,
|
|
634
|
+
` Message: ${d.messageId}`,
|
|
635
|
+
` Status: ${d.previousStatus} → ${d.currentStatus}`,
|
|
636
|
+
` Responded at: ${d.respondedAt}`,
|
|
637
|
+
].join('\n');
|
|
638
|
+
}
|
|
639
|
+
function formatDirectoryForLLM(result) {
|
|
640
|
+
if (!result.success) {
|
|
641
|
+
return `Failed to list project directory: ${result.error?.message ?? 'Unknown error'}\n${result.error?.suggestion ?? ''}`;
|
|
642
|
+
}
|
|
643
|
+
const d = result.data;
|
|
644
|
+
const lines = [`Project Directory — ${d.totalCount} addressable project(s)`];
|
|
645
|
+
if (d.projects.length === 0) {
|
|
646
|
+
lines.push(' No projects found');
|
|
647
|
+
}
|
|
648
|
+
else {
|
|
649
|
+
for (const p of d.projects) {
|
|
650
|
+
const desc = p.description ? ` — ${p.description}` : '';
|
|
651
|
+
lines.push(` ${p.address} (${p.id})${desc}`);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
return lines.join('\n');
|
|
655
|
+
}
|
|
656
|
+
function formatWhoamiForLLM(result) {
|
|
657
|
+
const d = result.data;
|
|
658
|
+
const lines = ['Attribution diagnosis'];
|
|
659
|
+
if (result.success) {
|
|
660
|
+
const sender = d?.wouldAttributeAs.senderAddress ?? 'unknown sender';
|
|
661
|
+
const senderId = d?.wouldAttributeAs.senderProjectId
|
|
662
|
+
? ` (${d.wouldAttributeAs.senderProjectId})`
|
|
663
|
+
: '';
|
|
664
|
+
lines.push(` Next outbound send would attribute as: ${sender}${senderId}`);
|
|
665
|
+
}
|
|
666
|
+
else {
|
|
667
|
+
lines.push(' Next outbound send would fail closed');
|
|
668
|
+
if (result.error?.message) {
|
|
669
|
+
lines.push(` Error: ${result.error.message}`);
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
lines.push(` Resolved root: ${d?.resolved.projectRoot ?? 'none'}`);
|
|
673
|
+
lines.push(` Source: ${d?.resolved.source ?? 'none'}`);
|
|
674
|
+
lines.push(` Dashboard project ID: ${d?.resolved.dashboardProjectId ?? 'none'}`);
|
|
675
|
+
lines.push(` CMOS address: ${d?.resolved.cmosAddress ?? 'none'}`);
|
|
676
|
+
if (d?.resolved.healed) {
|
|
677
|
+
lines.push(` Healed address: ${d.resolved.healed.previous} -> ${d.resolved.healed.next}`);
|
|
678
|
+
}
|
|
679
|
+
lines.push(` Server install root: ${d?.serverInstall.root ?? sender_context_1.SERVER_INSTALL_ROOT}`);
|
|
680
|
+
lines.push(` Legacy server-install fallback risk: ${d?.serverInstall.wouldHaveBeenUsed ? 'yes' : 'no'}`);
|
|
681
|
+
lines.push(` ${client_1.CMOS_PROJECT_ROOT_ENV}: ${d?.serverInstall.envCmosProjectRoot ?? 'unset'}`);
|
|
682
|
+
if (result.warnings && result.warnings.length > 0) {
|
|
683
|
+
lines.push('Warnings:');
|
|
684
|
+
for (const warning of result.warnings) {
|
|
685
|
+
lines.push(` - ${warning}`);
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
lines.push('Candidate trace:');
|
|
689
|
+
if (!d || d.candidates.length === 0) {
|
|
690
|
+
lines.push(' No candidates recorded');
|
|
691
|
+
}
|
|
692
|
+
else {
|
|
693
|
+
for (const candidate of d.candidates) {
|
|
694
|
+
lines.push(formatCandidateLine(candidate));
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
return lines.join('\n');
|
|
698
|
+
}
|
|
699
|
+
function formatMessageForLLM(action, result) {
|
|
700
|
+
if (!result.success && result.error?.code === 'INVALID_ACTION') {
|
|
701
|
+
const availableActions = result.error.availableActions ??
|
|
702
|
+
result.error.available_actions ??
|
|
703
|
+
result.error.validValues ??
|
|
704
|
+
[];
|
|
705
|
+
const lines = ['Failed to execute cmos_message', '', `Error: ${result.error.message}`];
|
|
706
|
+
if (availableActions.length > 0) {
|
|
707
|
+
lines.push('', `Available actions: ${availableActions.join(', ')}`);
|
|
708
|
+
}
|
|
709
|
+
if (result.error.suggestion) {
|
|
710
|
+
lines.push('', `Suggestion: ${result.error.suggestion}`);
|
|
711
|
+
}
|
|
712
|
+
return lines.join('\n');
|
|
713
|
+
}
|
|
714
|
+
switch (action) {
|
|
715
|
+
case 'send':
|
|
716
|
+
return formatSendForLLM(result);
|
|
717
|
+
case 'list':
|
|
718
|
+
return formatListForLLM(result);
|
|
719
|
+
case 'respond':
|
|
720
|
+
return formatRespondForLLM(result);
|
|
721
|
+
case 'directory':
|
|
722
|
+
return formatDirectoryForLLM(result);
|
|
723
|
+
case 'whoami':
|
|
724
|
+
return formatWhoamiForLLM(result);
|
|
725
|
+
default:
|
|
726
|
+
return result.success ? 'Message action completed' : 'Failed to execute cmos_message';
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
//# sourceMappingURL=cmos-message.js.map
|