@sdd-method/sdd-cli 1.42.0 → 1.44.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/NOTICE +1 -1
- package/README.md +16 -70
- package/dist/author-bin.d.ts +3 -0
- package/dist/author-bin.d.ts.map +1 -0
- package/dist/author-bin.js +8 -0
- package/dist/author-bin.js.map +1 -0
- package/dist/author-program.d.ts +8 -0
- package/dist/author-program.d.ts.map +1 -0
- package/dist/author-program.js +99 -0
- package/dist/author-program.js.map +1 -0
- package/dist/cli.js +0 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-harness.d.ts +11 -8
- package/dist/lib/agent-harness.d.ts.map +1 -1
- package/dist/lib/agent-harness.js +17 -8
- package/dist/lib/agent-harness.js.map +1 -1
- package/dist/lib/briefing/index.d.ts +1 -1
- package/dist/lib/briefing/index.d.ts.map +1 -1
- package/dist/lib/briefing/index.js +1 -1
- package/dist/lib/briefing/index.js.map +1 -1
- package/dist/lib/briefing/render.d.ts +18 -1
- package/dist/lib/briefing/render.d.ts.map +1 -1
- package/dist/lib/briefing/render.js +17 -8
- package/dist/lib/briefing/render.js.map +1 -1
- package/dist/lib/catalogue/aggregate.js +6 -6
- package/dist/lib/catalogue/aggregate.js.map +1 -1
- package/dist/lib/catalogue/aggregation-manifest-loader.js +4 -4
- package/dist/lib/catalogue/aggregation-manifest-loader.js.map +1 -1
- package/dist/lib/catalogue/build.js +1 -1
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/c4-components.js +1 -1
- package/dist/lib/catalogue/builders/c4-components.js.map +1 -1
- package/dist/lib/catalogue/builders/c4-containers.d.ts +1 -1
- package/dist/lib/catalogue/builders/c4-containers.js +1 -1
- package/dist/lib/catalogue/builders/c4-l1-candidates.js +1 -1
- package/dist/lib/catalogue/builders/c4-l1-candidates.js.map +1 -1
- package/dist/lib/catalogue/builders/container-dependency.d.ts +1 -1
- package/dist/lib/catalogue/builders/container-dependency.js +1 -1
- package/dist/lib/catalogue/builders/data-store-mapping.js +1 -1
- package/dist/lib/catalogue/builders/data-store-mapping.js.map +1 -1
- package/dist/lib/catalogue/builders/screen-tree.d.ts +1 -1
- package/dist/lib/catalogue/builders/screen-tree.js +1 -1
- package/dist/lib/catalogue/contract-path-resolution.d.ts +2 -2
- package/dist/lib/catalogue/contract-path-resolution.js +2 -2
- package/dist/lib/catalogue/dedupe-keyed-tables.d.ts +1 -1
- package/dist/lib/catalogue/dedupe-keyed-tables.js +0 -0
- package/dist/lib/catalogue/dedupe-keyed-tables.js.map +1 -1
- package/dist/lib/catalogue/freshness.d.ts +1 -0
- package/dist/lib/catalogue/freshness.d.ts.map +1 -1
- package/dist/lib/catalogue/freshness.js +4 -3
- package/dist/lib/catalogue/freshness.js.map +1 -1
- package/dist/lib/catalogue/scores-coverage.js +1 -1
- package/dist/lib/catalogue/scores-coverage.js.map +1 -1
- package/dist/lib/catalogue/service-contract-aliases-loader.d.ts +1 -1
- package/dist/lib/catalogue/service-contract-aliases-loader.js +1 -1
- package/dist/lib/ci-binding/index.d.ts.map +1 -1
- package/dist/lib/ci-binding/index.js +44 -5
- package/dist/lib/ci-binding/index.js.map +1 -1
- package/dist/lib/ci-binding/module.d.ts +10 -0
- package/dist/lib/ci-binding/module.d.ts.map +1 -1
- package/dist/lib/ci-binding/module.js +74 -2
- package/dist/lib/ci-binding/module.js.map +1 -1
- package/dist/lib/context-pull/index.d.ts +15 -9
- package/dist/lib/context-pull/index.d.ts.map +1 -1
- package/dist/lib/context-pull/index.js +79 -39
- package/dist/lib/context-pull/index.js.map +1 -1
- package/dist/lib/context-pull/retired-mcp-setup.d.ts +7 -0
- package/dist/lib/context-pull/retired-mcp-setup.d.ts.map +1 -0
- package/dist/lib/context-pull/retired-mcp-setup.js +7 -0
- package/dist/lib/context-pull/retired-mcp-setup.js.map +1 -0
- package/dist/lib/hooks-seed/entries.d.ts +41 -2
- package/dist/lib/hooks-seed/entries.d.ts.map +1 -1
- package/dist/lib/hooks-seed/entries.js +55 -4
- package/dist/lib/hooks-seed/entries.js.map +1 -1
- package/dist/lib/hooks-seed/index.d.ts +5 -9
- package/dist/lib/hooks-seed/index.d.ts.map +1 -1
- package/dist/lib/hooks-seed/index.js +4 -7
- package/dist/lib/hooks-seed/index.js.map +1 -1
- package/dist/lib/hooks-seed/merge.d.ts +7 -0
- package/dist/lib/hooks-seed/merge.d.ts.map +1 -1
- package/dist/lib/hooks-seed/merge.js +31 -0
- package/dist/lib/hooks-seed/merge.js.map +1 -1
- package/dist/lib/init/app.d.ts +0 -1
- package/dist/lib/init/app.d.ts.map +1 -1
- package/dist/lib/init/app.js +0 -7
- package/dist/lib/init/app.js.map +1 -1
- package/dist/lib/init/ci-workflow.js +26 -2
- package/dist/lib/init/ci-workflow.js.map +1 -1
- package/dist/lib/init/integration.d.ts +0 -1
- package/dist/lib/init/integration.d.ts.map +1 -1
- package/dist/lib/init/integration.js +0 -7
- package/dist/lib/init/integration.js.map +1 -1
- package/dist/lib/init/platform.d.ts +2 -10
- package/dist/lib/init/platform.d.ts.map +1 -1
- package/dist/lib/init/platform.js +7 -13
- package/dist/lib/init/platform.js.map +1 -1
- package/dist/lib/lock-file.d.ts +7 -0
- package/dist/lib/lock-file.d.ts.map +1 -1
- package/dist/lib/lock-file.js +10 -0
- package/dist/lib/lock-file.js.map +1 -1
- package/dist/lib/pack/builder.d.ts +14 -0
- package/dist/lib/pack/builder.d.ts.map +1 -1
- package/dist/lib/pack/builder.js +56 -4
- package/dist/lib/pack/builder.js.map +1 -1
- package/dist/lib/pack/index.d.ts +3 -1
- package/dist/lib/pack/index.d.ts.map +1 -1
- package/dist/lib/pack/index.js +1 -0
- package/dist/lib/pack/index.js.map +1 -1
- package/dist/lib/pack/publish-transform.js +1 -1
- package/dist/lib/pack/publish-transform.js.map +1 -1
- package/dist/lib/plan/index.d.ts.map +1 -1
- package/dist/lib/plan/index.js +4 -4
- package/dist/lib/plan/index.js.map +1 -1
- package/dist/lib/plan/read-sdd.js +1 -1
- package/dist/lib/plan/render-template.d.ts +8 -0
- package/dist/lib/plan/render-template.d.ts.map +1 -1
- package/dist/lib/plan/render-template.js +27 -3
- package/dist/lib/plan/render-template.js.map +1 -1
- package/dist/lib/sdd-index/repo-config.d.ts +1 -1
- package/dist/lib/sdd-index/repo-config.js +1 -1
- package/dist/lib/{mcp/reader.d.ts → sdd-reader.d.ts} +3 -5
- package/dist/lib/sdd-reader.d.ts.map +1 -0
- package/dist/lib/{mcp/reader.js → sdd-reader.js} +3 -5
- package/dist/lib/sdd-reader.js.map +1 -0
- package/dist/lib/snapshot/targets.js +1 -1
- package/dist/lib/snapshot/targets.js.map +1 -1
- package/dist/lib/sync/briefing-merge.d.ts +1 -1
- package/dist/lib/sync/briefing-merge.d.ts.map +1 -1
- package/dist/lib/sync/briefing-merge.js +50 -34
- package/dist/lib/sync/briefing-merge.js.map +1 -1
- package/dist/lib/sync/diff.js +1 -1
- package/dist/lib/sync/diff.js.map +1 -1
- package/dist/lib/sync/index.d.ts +14 -6
- package/dist/lib/sync/index.d.ts.map +1 -1
- package/dist/lib/sync/index.js +46 -72
- package/dist/lib/sync/index.js.map +1 -1
- package/dist/lib/sync/settings-merge.d.ts +29 -49
- package/dist/lib/sync/settings-merge.d.ts.map +1 -1
- package/dist/lib/sync/settings-merge.js +71 -163
- package/dist/lib/sync/settings-merge.js.map +1 -1
- package/dist/lib/validate/plan.d.ts +10 -1
- package/dist/lib/validate/plan.d.ts.map +1 -1
- package/dist/lib/validate/plan.js +6 -3
- package/dist/lib/validate/plan.js.map +1 -1
- package/dist/maintain-program.d.ts.map +1 -1
- package/dist/maintain-program.js +6 -3
- package/dist/maintain-program.js.map +1 -1
- package/dist/maintain-version.json +2 -2
- package/dist/verbs/catalogue-check.d.ts +10 -0
- package/dist/verbs/catalogue-check.d.ts.map +1 -0
- package/dist/verbs/catalogue-check.js +28 -0
- package/dist/verbs/catalogue-check.js.map +1 -0
- package/dist/verbs/catalogue.d.ts.map +1 -1
- package/dist/verbs/catalogue.js +2 -0
- package/dist/verbs/catalogue.js.map +1 -1
- package/dist/verbs/context.js +1 -1
- package/dist/verbs/context.js.map +1 -1
- package/dist/verbs/pack-build.d.ts.map +1 -1
- package/dist/verbs/pack-build.js +22 -0
- package/dist/verbs/pack-build.js.map +1 -1
- package/dist/verbs/plan.js +1 -1
- package/dist/verbs/plan.js.map +1 -1
- package/dist/verbs/sync.d.ts.map +1 -1
- package/dist/verbs/sync.js +17 -0
- package/dist/verbs/sync.js.map +1 -1
- package/dist/verbs/validate.d.ts.map +1 -1
- package/dist/verbs/validate.js +6 -1
- package/dist/verbs/validate.js.map +1 -1
- package/dist/verify-program.js +2 -2
- package/dist/verify-program.js.map +1 -1
- package/dist/verify-version.json +2 -2
- package/package.json +5 -13
- package/scripts/README.md +1 -1
- package/scripts/author-acceptance.mjs +170 -0
- package/scripts/author-version.json +4 -0
- package/scripts/build-persona-package.mjs +46 -13
- package/scripts/maintain-acceptance.mjs +3 -2
- package/scripts/maintain-version.json +2 -2
- package/scripts/publish-release.mjs +117 -0
- package/scripts/release-gate.mjs +19 -8
- package/scripts/verify-version.json +2 -2
- package/scripts/vitest-tmpdir.mjs +26 -0
- package/dist/lib/catalogue/advisory-container-type.d.ts +0 -13
- package/dist/lib/catalogue/advisory-container-type.d.ts.map +0 -1
- package/dist/lib/catalogue/advisory-container-type.js +0 -56
- package/dist/lib/catalogue/advisory-container-type.js.map +0 -1
- package/dist/lib/hooks-seed/copilot.d.ts +0 -93
- package/dist/lib/hooks-seed/copilot.d.ts.map +0 -1
- package/dist/lib/hooks-seed/copilot.js +0 -167
- package/dist/lib/hooks-seed/copilot.js.map +0 -1
- package/dist/lib/hooks-seed/lifecycle-mapping.d.ts +0 -12
- package/dist/lib/hooks-seed/lifecycle-mapping.d.ts.map +0 -1
- package/dist/lib/hooks-seed/lifecycle-mapping.js +0 -28
- package/dist/lib/hooks-seed/lifecycle-mapping.js.map +0 -1
- package/dist/lib/mcp/build-info.d.ts +0 -7
- package/dist/lib/mcp/build-info.d.ts.map +0 -1
- package/dist/lib/mcp/build-info.js +0 -10
- package/dist/lib/mcp/build-info.js.map +0 -1
- package/dist/lib/mcp/errors.d.ts +0 -23
- package/dist/lib/mcp/errors.d.ts.map +0 -1
- package/dist/lib/mcp/errors.js +0 -25
- package/dist/lib/mcp/errors.js.map +0 -1
- package/dist/lib/mcp/parse/frontmatter.d.ts +0 -22
- package/dist/lib/mcp/parse/frontmatter.d.ts.map +0 -1
- package/dist/lib/mcp/parse/frontmatter.js +0 -49
- package/dist/lib/mcp/parse/frontmatter.js.map +0 -1
- package/dist/lib/mcp/parse/gate-registry.d.ts +0 -78
- package/dist/lib/mcp/parse/gate-registry.d.ts.map +0 -1
- package/dist/lib/mcp/parse/gate-registry.js +0 -164
- package/dist/lib/mcp/parse/gate-registry.js.map +0 -1
- package/dist/lib/mcp/parse/paths.d.ts +0 -21
- package/dist/lib/mcp/parse/paths.d.ts.map +0 -1
- package/dist/lib/mcp/parse/paths.js +0 -84
- package/dist/lib/mcp/parse/paths.js.map +0 -1
- package/dist/lib/mcp/pin/errors.d.ts +0 -11
- package/dist/lib/mcp/pin/errors.d.ts.map +0 -1
- package/dist/lib/mcp/pin/errors.js +0 -32
- package/dist/lib/mcp/pin/errors.js.map +0 -1
- package/dist/lib/mcp/pin/index.d.ts +0 -18
- package/dist/lib/mcp/pin/index.d.ts.map +0 -1
- package/dist/lib/mcp/pin/index.js +0 -29
- package/dist/lib/mcp/pin/index.js.map +0 -1
- package/dist/lib/mcp/pin/read.d.ts +0 -24
- package/dist/lib/mcp/pin/read.d.ts.map +0 -1
- package/dist/lib/mcp/pin/read.js +0 -64
- package/dist/lib/mcp/pin/read.js.map +0 -1
- package/dist/lib/mcp/pin/resolve.d.ts +0 -12
- package/dist/lib/mcp/pin/resolve.d.ts.map +0 -1
- package/dist/lib/mcp/pin/resolve.js +0 -33
- package/dist/lib/mcp/pin/resolve.js.map +0 -1
- package/dist/lib/mcp/prompts/evaluate-cascade.d.ts +0 -14
- package/dist/lib/mcp/prompts/evaluate-cascade.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/evaluate-cascade.js +0 -147
- package/dist/lib/mcp/prompts/evaluate-cascade.js.map +0 -1
- package/dist/lib/mcp/prompts/index.d.ts +0 -9
- package/dist/lib/mcp/prompts/index.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/index.js +0 -23
- package/dist/lib/mcp/prompts/index.js.map +0 -1
- package/dist/lib/mcp/prompts/propose-adr.d.ts +0 -12
- package/dist/lib/mcp/prompts/propose-adr.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/propose-adr.js +0 -100
- package/dist/lib/mcp/prompts/propose-adr.js.map +0 -1
- package/dist/lib/mcp/prompts/review-data-model-change.d.ts +0 -10
- package/dist/lib/mcp/prompts/review-data-model-change.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/review-data-model-change.js +0 -134
- package/dist/lib/mcp/prompts/review-data-model-change.js.map +0 -1
- package/dist/lib/mcp/prompts/template-loader.d.ts +0 -29
- package/dist/lib/mcp/prompts/template-loader.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/template-loader.js +0 -44
- package/dist/lib/mcp/prompts/template-loader.js.map +0 -1
- package/dist/lib/mcp/prompts/types.d.ts +0 -17
- package/dist/lib/mcp/prompts/types.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/types.js +0 -10
- package/dist/lib/mcp/prompts/types.js.map +0 -1
- package/dist/lib/mcp/prompts/write-capability-spec.d.ts +0 -8
- package/dist/lib/mcp/prompts/write-capability-spec.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/write-capability-spec.js +0 -85
- package/dist/lib/mcp/prompts/write-capability-spec.js.map +0 -1
- package/dist/lib/mcp/prompts/write-feature-spec.d.ts +0 -10
- package/dist/lib/mcp/prompts/write-feature-spec.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/write-feature-spec.js +0 -94
- package/dist/lib/mcp/prompts/write-feature-spec.js.map +0 -1
- package/dist/lib/mcp/prompts/write-work-order.d.ts +0 -7
- package/dist/lib/mcp/prompts/write-work-order.d.ts.map +0 -1
- package/dist/lib/mcp/prompts/write-work-order.js +0 -69
- package/dist/lib/mcp/prompts/write-work-order.js.map +0 -1
- package/dist/lib/mcp/reader.d.ts.map +0 -1
- package/dist/lib/mcp/reader.js.map +0 -1
- package/dist/lib/mcp/resources/adrs.d.ts +0 -3
- package/dist/lib/mcp/resources/adrs.d.ts.map +0 -1
- package/dist/lib/mcp/resources/adrs.js +0 -97
- package/dist/lib/mcp/resources/adrs.js.map +0 -1
- package/dist/lib/mcp/resources/catalogue.d.ts +0 -19
- package/dist/lib/mcp/resources/catalogue.d.ts.map +0 -1
- package/dist/lib/mcp/resources/catalogue.js +0 -240
- package/dist/lib/mcp/resources/catalogue.js.map +0 -1
- package/dist/lib/mcp/resources/data-models.d.ts +0 -14
- package/dist/lib/mcp/resources/data-models.d.ts.map +0 -1
- package/dist/lib/mcp/resources/data-models.js +0 -81
- package/dist/lib/mcp/resources/data-models.js.map +0 -1
- package/dist/lib/mcp/resources/gates.d.ts +0 -9
- package/dist/lib/mcp/resources/gates.d.ts.map +0 -1
- package/dist/lib/mcp/resources/gates.js +0 -76
- package/dist/lib/mcp/resources/gates.js.map +0 -1
- package/dist/lib/mcp/resources/glossary.d.ts +0 -16
- package/dist/lib/mcp/resources/glossary.d.ts.map +0 -1
- package/dist/lib/mcp/resources/glossary.js +0 -87
- package/dist/lib/mcp/resources/glossary.js.map +0 -1
- package/dist/lib/mcp/resources/specs.d.ts +0 -23
- package/dist/lib/mcp/resources/specs.d.ts.map +0 -1
- package/dist/lib/mcp/resources/specs.js +0 -151
- package/dist/lib/mcp/resources/specs.js.map +0 -1
- package/dist/lib/mcp/resources/version.d.ts +0 -3
- package/dist/lib/mcp/resources/version.d.ts.map +0 -1
- package/dist/lib/mcp/resources/version.js +0 -45
- package/dist/lib/mcp/resources/version.js.map +0 -1
- package/dist/lib/mcp/server.d.ts +0 -29
- package/dist/lib/mcp/server.d.ts.map +0 -1
- package/dist/lib/mcp/server.js +0 -108
- package/dist/lib/mcp/server.js.map +0 -1
- package/dist/lib/mcp/tools/cascade-impact.d.ts +0 -22
- package/dist/lib/mcp/tools/cascade-impact.d.ts.map +0 -1
- package/dist/lib/mcp/tools/cascade-impact.js +0 -53
- package/dist/lib/mcp/tools/cascade-impact.js.map +0 -1
- package/dist/lib/mcp/tools/catalogue.d.ts +0 -16
- package/dist/lib/mcp/tools/catalogue.d.ts.map +0 -1
- package/dist/lib/mcp/tools/catalogue.js +0 -268
- package/dist/lib/mcp/tools/catalogue.js.map +0 -1
- package/dist/lib/mcp/tools/find-consumers-of-contract.d.ts +0 -7
- package/dist/lib/mcp/tools/find-consumers-of-contract.d.ts.map +0 -1
- package/dist/lib/mcp/tools/find-consumers-of-contract.js +0 -70
- package/dist/lib/mcp/tools/find-consumers-of-contract.js.map +0 -1
- package/dist/lib/mcp/tools/find-consumers.d.ts +0 -7
- package/dist/lib/mcp/tools/find-consumers.d.ts.map +0 -1
- package/dist/lib/mcp/tools/find-consumers.js +0 -52
- package/dist/lib/mcp/tools/find-consumers.js.map +0 -1
- package/dist/lib/mcp/tools/find-dependencies.d.ts +0 -8
- package/dist/lib/mcp/tools/find-dependencies.d.ts.map +0 -1
- package/dist/lib/mcp/tools/find-dependencies.js +0 -101
- package/dist/lib/mcp/tools/find-dependencies.js.map +0 -1
- package/dist/lib/mcp/tools/find-dependents.d.ts +0 -8
- package/dist/lib/mcp/tools/find-dependents.d.ts.map +0 -1
- package/dist/lib/mcp/tools/find-dependents.js +0 -89
- package/dist/lib/mcp/tools/find-dependents.js.map +0 -1
- package/dist/lib/mcp/tools/find-producers.d.ts +0 -8
- package/dist/lib/mcp/tools/find-producers.d.ts.map +0 -1
- package/dist/lib/mcp/tools/find-producers.js +0 -57
- package/dist/lib/mcp/tools/find-producers.js.map +0 -1
- package/dist/lib/mcp/tools/find-related-specs.d.ts +0 -9
- package/dist/lib/mcp/tools/find-related-specs.d.ts.map +0 -1
- package/dist/lib/mcp/tools/find-related-specs.js +0 -92
- package/dist/lib/mcp/tools/find-related-specs.js.map +0 -1
- package/dist/lib/mcp/tools/list-adrs.d.ts +0 -3
- package/dist/lib/mcp/tools/list-adrs.d.ts.map +0 -1
- package/dist/lib/mcp/tools/list-adrs.js +0 -73
- package/dist/lib/mcp/tools/list-adrs.js.map +0 -1
- package/dist/lib/mcp/tools/query-gate-status.d.ts +0 -3
- package/dist/lib/mcp/tools/query-gate-status.d.ts.map +0 -1
- package/dist/lib/mcp/tools/query-gate-status.js +0 -68
- package/dist/lib/mcp/tools/query-gate-status.js.map +0 -1
- package/dist/lib/mcp/tools/search-specs.d.ts +0 -12
- package/dist/lib/mcp/tools/search-specs.d.ts.map +0 -1
- package/dist/lib/mcp/tools/search-specs.js +0 -151
- package/dist/lib/mcp/tools/search-specs.js.map +0 -1
- package/dist/lib/mcp/workspace.d.ts +0 -31
- package/dist/lib/mcp/workspace.d.ts.map +0 -1
- package/dist/lib/mcp/workspace.js +0 -146
- package/dist/lib/mcp/workspace.js.map +0 -1
- package/dist/lib/mcp-seed/entries.d.ts +0 -32
- package/dist/lib/mcp-seed/entries.d.ts.map +0 -1
- package/dist/lib/mcp-seed/entries.js +0 -14
- package/dist/lib/mcp-seed/entries.js.map +0 -1
- package/dist/lib/mcp-seed/index.d.ts +0 -36
- package/dist/lib/mcp-seed/index.d.ts.map +0 -1
- package/dist/lib/mcp-seed/index.js +0 -28
- package/dist/lib/mcp-seed/index.js.map +0 -1
- package/dist/lib/mcp-seed/merge.d.ts +0 -34
- package/dist/lib/mcp-seed/merge.d.ts.map +0 -1
- package/dist/lib/mcp-seed/merge.js +0 -99
- package/dist/lib/mcp-seed/merge.js.map +0 -1
- package/dist/lib/mcp-seed/types.d.ts +0 -24
- package/dist/lib/mcp-seed/types.d.ts.map +0 -1
- package/dist/lib/mcp-seed/types.js +0 -13
- package/dist/lib/mcp-seed/types.js.map +0 -1
- package/dist/lib/sdd-index/cascade.d.ts +0 -46
- package/dist/lib/sdd-index/cascade.d.ts.map +0 -1
- package/dist/lib/sdd-index/cascade.js +0 -91
- package/dist/lib/sdd-index/cascade.js.map +0 -1
- package/dist/lib/sdd-index/contracts.d.ts +0 -29
- package/dist/lib/sdd-index/contracts.d.ts.map +0 -1
- package/dist/lib/sdd-index/contracts.js +0 -216
- package/dist/lib/sdd-index/contracts.js.map +0 -1
- package/dist/lib/sdd-index/data-model.d.ts +0 -13
- package/dist/lib/sdd-index/data-model.d.ts.map +0 -1
- package/dist/lib/sdd-index/data-model.js +0 -23
- package/dist/lib/sdd-index/data-model.js.map +0 -1
- package/dist/lib/sdd-index/execution-map.d.ts +0 -34
- package/dist/lib/sdd-index/execution-map.d.ts.map +0 -1
- package/dist/lib/sdd-index/execution-map.js +0 -105
- package/dist/lib/sdd-index/execution-map.js.map +0 -1
- package/dist/lib/sdd-index/graph.d.ts +0 -28
- package/dist/lib/sdd-index/graph.d.ts.map +0 -1
- package/dist/lib/sdd-index/graph.js +0 -122
- package/dist/lib/sdd-index/graph.js.map +0 -1
- package/dist/lib/sdd-index/index.d.ts +0 -29
- package/dist/lib/sdd-index/index.d.ts.map +0 -1
- package/dist/lib/sdd-index/index.js +0 -79
- package/dist/lib/sdd-index/index.js.map +0 -1
- package/dist/lib/sdd-index/watch.d.ts +0 -24
- package/dist/lib/sdd-index/watch.d.ts.map +0 -1
- package/dist/lib/sdd-index/watch.js +0 -112
- package/dist/lib/sdd-index/watch.js.map +0 -1
- package/dist/lib/sync/copilot-hooks-merge.d.ts +0 -36
- package/dist/lib/sync/copilot-hooks-merge.d.ts.map +0 -1
- package/dist/lib/sync/copilot-hooks-merge.js +0 -108
- package/dist/lib/sync/copilot-hooks-merge.js.map +0 -1
- package/dist/verbs/mcp.d.ts +0 -3
- package/dist/verbs/mcp.d.ts.map +0 -1
- package/dist/verbs/mcp.js +0 -22
- package/dist/verbs/mcp.js.map +0 -1
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Glossary resource. In adopter SDDs the platform glossary lives at
|
|
3
|
-
* docs/platform/reference/platform-glossary.md and per-domain
|
|
4
|
-
* glossaries at docs/domains/{domain}/reference/{domain}-glossary.md.
|
|
5
|
-
* Canonical method repo has no populated glossary; this server returns
|
|
6
|
-
* a structured NOT_FOUND when queried against such a repo.
|
|
7
|
-
*/
|
|
8
|
-
import { readFileSync, readdirSync } from "node:fs";
|
|
9
|
-
import { join } from "node:path";
|
|
10
|
-
import { ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
|
-
import { McpEnvelopeError } from "../errors.js";
|
|
12
|
-
import { safeIsDir, safeIsFile } from "../parse/paths.js";
|
|
13
|
-
export function register(server, sddRoot) {
|
|
14
|
-
server.registerResource("glossary", new ResourceTemplate("sdd://glossary/{scope}", {
|
|
15
|
-
list: async () => {
|
|
16
|
-
const entries = discoverGlossaries(sddRoot);
|
|
17
|
-
return {
|
|
18
|
-
resources: entries.map((e) => ({
|
|
19
|
-
uri: `sdd://glossary/${e.scope}`,
|
|
20
|
-
name: `Glossary: ${e.scope}`,
|
|
21
|
-
mimeType: "text/markdown",
|
|
22
|
-
})),
|
|
23
|
-
};
|
|
24
|
-
},
|
|
25
|
-
}), {
|
|
26
|
-
title: "Glossary",
|
|
27
|
-
description: "Glossary for the requested scope. Scope is `platform` or `<domain>` (e.g. `party`).",
|
|
28
|
-
mimeType: "text/markdown",
|
|
29
|
-
}, async (uri, { scope }) => {
|
|
30
|
-
if (typeof scope !== "string") {
|
|
31
|
-
throw new McpEnvelopeError({
|
|
32
|
-
code: "GLOSSARY_URI_INVALID",
|
|
33
|
-
message: `Glossary URI ${uri.href} is missing the {scope} parameter.`,
|
|
34
|
-
remediation: "Use the shape sdd://glossary/{scope}. Call resources/list to see the glossaries this SDD exposes.",
|
|
35
|
-
context: { uri: uri.href },
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
const path = glossaryPath(sddRoot, scope);
|
|
39
|
-
if (!path) {
|
|
40
|
-
throw new McpEnvelopeError({
|
|
41
|
-
code: "GLOSSARY_NOT_FOUND",
|
|
42
|
-
message: `No glossary for scope ${scope} under SDD root ${sddRoot}.`,
|
|
43
|
-
remediation: "Glossaries are adopter-instantiated. The canonical method repo does not ship a populated glossary; resources/list shows what this SDD exposes.",
|
|
44
|
-
context: { scope, sdd_root: sddRoot },
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
contents: [
|
|
49
|
-
{
|
|
50
|
-
uri: uri.href,
|
|
51
|
-
mimeType: "text/markdown",
|
|
52
|
-
text: readFileSync(path, "utf8"),
|
|
53
|
-
},
|
|
54
|
-
],
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
export function discoverGlossaries(sddRoot) {
|
|
59
|
-
const out = [];
|
|
60
|
-
const platformPath = join(sddRoot, "docs", "platform", "reference", "platform-glossary.md");
|
|
61
|
-
if (safeIsFile(platformPath)) {
|
|
62
|
-
out.push({ scope: "platform", path: platformPath });
|
|
63
|
-
}
|
|
64
|
-
const domainsRoot = join(sddRoot, "docs", "domains");
|
|
65
|
-
if (safeIsDir(domainsRoot)) {
|
|
66
|
-
let domains = [];
|
|
67
|
-
try {
|
|
68
|
-
domains = readdirSync(domainsRoot);
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
// ignore
|
|
72
|
-
}
|
|
73
|
-
for (const domain of domains) {
|
|
74
|
-
if (domain.startsWith("_"))
|
|
75
|
-
continue;
|
|
76
|
-
const domainGlossary = join(domainsRoot, domain, "reference", `${domain}-glossary.md`);
|
|
77
|
-
if (safeIsFile(domainGlossary)) {
|
|
78
|
-
out.push({ scope: domain, path: domainGlossary });
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return out;
|
|
83
|
-
}
|
|
84
|
-
function glossaryPath(sddRoot, scope) {
|
|
85
|
-
return discoverGlossaries(sddRoot).find((g) => g.scope === scope)?.path;
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=glossary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glossary.js","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/glossary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability and feature specs. The MCP plan references the URIs
|
|
3
|
-
* sdd://specs/capability/{domain}/{capability} and
|
|
4
|
-
* sdd://specs/feature/{domain}/{capability}/{feature}; the on-disk
|
|
5
|
-
* layout is adopter-driven (docs/domains/{d}/product/{capability}.md
|
|
6
|
-
* and similar). Phase 1 does a best-effort discovery under
|
|
7
|
-
* docs/domains/{d}/product/ and exposes found specs; absent specs
|
|
8
|
-
* surface as a structured NOT_FOUND with a pointer to the catalogue.
|
|
9
|
-
*/
|
|
10
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
|
-
export declare function register(server: McpServer, sddRoot: string): void;
|
|
12
|
-
interface CapabilitySpec {
|
|
13
|
-
readonly domain: string;
|
|
14
|
-
readonly capability: string;
|
|
15
|
-
readonly path: string;
|
|
16
|
-
}
|
|
17
|
-
export declare function discoverCapabilitySpecs(sddRoot: string): CapabilitySpec[];
|
|
18
|
-
interface FeatureSpec extends CapabilitySpec {
|
|
19
|
-
readonly feature: string;
|
|
20
|
-
}
|
|
21
|
-
export declare function discoverFeatureSpecs(sddRoot: string): FeatureSpec[];
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=specs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAKjD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA+EjE;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAiBzE;AAED,UAAU,WAAY,SAAQ,cAAc;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAsBnE"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability and feature specs. The MCP plan references the URIs
|
|
3
|
-
* sdd://specs/capability/{domain}/{capability} and
|
|
4
|
-
* sdd://specs/feature/{domain}/{capability}/{feature}; the on-disk
|
|
5
|
-
* layout is adopter-driven (docs/domains/{d}/product/{capability}.md
|
|
6
|
-
* and similar). Phase 1 does a best-effort discovery under
|
|
7
|
-
* docs/domains/{d}/product/ and exposes found specs; absent specs
|
|
8
|
-
* surface as a structured NOT_FOUND with a pointer to the catalogue.
|
|
9
|
-
*/
|
|
10
|
-
import { readFileSync } from "node:fs";
|
|
11
|
-
import { join } from "node:path";
|
|
12
|
-
import { ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
13
|
-
import { McpEnvelopeError } from "../errors.js";
|
|
14
|
-
import { safeIsDir, safeIsFile } from "../parse/paths.js";
|
|
15
|
-
import { readdirSync } from "node:fs";
|
|
16
|
-
export function register(server, sddRoot) {
|
|
17
|
-
server.registerResource("capability-spec", new ResourceTemplate("sdd://specs/capability/{domain}/{capability}", {
|
|
18
|
-
list: async () => {
|
|
19
|
-
const specs = discoverCapabilitySpecs(sddRoot);
|
|
20
|
-
return {
|
|
21
|
-
resources: specs.map((s) => ({
|
|
22
|
-
uri: `sdd://specs/capability/${s.domain}/${s.capability}`,
|
|
23
|
-
name: `Capability spec: ${s.domain} / ${s.capability}`,
|
|
24
|
-
mimeType: "text/markdown",
|
|
25
|
-
})),
|
|
26
|
-
};
|
|
27
|
-
},
|
|
28
|
-
}), {
|
|
29
|
-
title: "Capability spec",
|
|
30
|
-
description: "Capability-level specification for a given domain. Read from the first matching docs/domains/{domain}/product/{capability}*.md file.",
|
|
31
|
-
mimeType: "text/markdown",
|
|
32
|
-
}, async (uri, { domain, capability }) => {
|
|
33
|
-
if (typeof domain !== "string" || typeof capability !== "string") {
|
|
34
|
-
throw invalidArgs(uri.href);
|
|
35
|
-
}
|
|
36
|
-
const path = findCapabilitySpec(sddRoot, domain, capability);
|
|
37
|
-
if (!path) {
|
|
38
|
-
throw notFound("CAPABILITY_SPEC_NOT_FOUND", `No capability spec found for ${domain}/${capability}.`, { domain, capability, sdd_root: sddRoot });
|
|
39
|
-
}
|
|
40
|
-
return readMarkdown(uri.href, path);
|
|
41
|
-
});
|
|
42
|
-
server.registerResource("feature-spec", new ResourceTemplate("sdd://specs/feature/{domain}/{capability}/{feature}", {
|
|
43
|
-
list: async () => {
|
|
44
|
-
const specs = discoverFeatureSpecs(sddRoot);
|
|
45
|
-
return {
|
|
46
|
-
resources: specs.map((s) => ({
|
|
47
|
-
uri: `sdd://specs/feature/${s.domain}/${s.capability}/${s.feature}`,
|
|
48
|
-
name: `Feature spec: ${s.domain} / ${s.capability} / ${s.feature}`,
|
|
49
|
-
mimeType: "text/markdown",
|
|
50
|
-
})),
|
|
51
|
-
};
|
|
52
|
-
},
|
|
53
|
-
}), {
|
|
54
|
-
title: "Feature spec",
|
|
55
|
-
description: "Feature-level specification nested under a capability. Read from docs/domains/{domain}/product/{capability}/{feature}*.md.",
|
|
56
|
-
mimeType: "text/markdown",
|
|
57
|
-
}, async (uri, { domain, capability, feature }) => {
|
|
58
|
-
if (typeof domain !== "string" ||
|
|
59
|
-
typeof capability !== "string" ||
|
|
60
|
-
typeof feature !== "string") {
|
|
61
|
-
throw invalidArgs(uri.href);
|
|
62
|
-
}
|
|
63
|
-
const path = findFeatureSpec(sddRoot, domain, capability, feature);
|
|
64
|
-
if (!path) {
|
|
65
|
-
throw notFound("FEATURE_SPEC_NOT_FOUND", `No feature spec found for ${domain}/${capability}/${feature}.`, { domain, capability, feature, sdd_root: sddRoot });
|
|
66
|
-
}
|
|
67
|
-
return readMarkdown(uri.href, path);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
export function discoverCapabilitySpecs(sddRoot) {
|
|
71
|
-
const out = [];
|
|
72
|
-
const domainsRoot = join(sddRoot, "docs", "domains");
|
|
73
|
-
if (!safeIsDir(domainsRoot))
|
|
74
|
-
return out;
|
|
75
|
-
for (const domain of safeReaddir(domainsRoot)) {
|
|
76
|
-
if (domain.startsWith("_"))
|
|
77
|
-
continue;
|
|
78
|
-
const productDir = join(domainsRoot, domain, "product");
|
|
79
|
-
if (!safeIsDir(productDir))
|
|
80
|
-
continue;
|
|
81
|
-
for (const entry of safeReaddir(productDir)) {
|
|
82
|
-
const full = join(productDir, entry);
|
|
83
|
-
if (entry.endsWith(".md") && safeIsFile(full)) {
|
|
84
|
-
const slug = entry.replace(/\.md$/, "");
|
|
85
|
-
out.push({ domain, capability: slug, path: full });
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return out;
|
|
90
|
-
}
|
|
91
|
-
export function discoverFeatureSpecs(sddRoot) {
|
|
92
|
-
const out = [];
|
|
93
|
-
const caps = discoverCapabilitySpecs(sddRoot);
|
|
94
|
-
for (const cap of caps) {
|
|
95
|
-
const nestedDir = join(sddRoot, "docs", "domains", cap.domain, "product", cap.capability);
|
|
96
|
-
if (!safeIsDir(nestedDir))
|
|
97
|
-
continue;
|
|
98
|
-
for (const entry of safeReaddir(nestedDir)) {
|
|
99
|
-
const full = join(nestedDir, entry);
|
|
100
|
-
if (entry.endsWith(".md") && safeIsFile(full)) {
|
|
101
|
-
const feature = entry.replace(/\.md$/, "");
|
|
102
|
-
out.push({ ...cap, feature, path: full });
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return out;
|
|
107
|
-
}
|
|
108
|
-
function findCapabilitySpec(sddRoot, domain, capability) {
|
|
109
|
-
return discoverCapabilitySpecs(sddRoot).find((s) => s.domain === domain && s.capability === capability)?.path;
|
|
110
|
-
}
|
|
111
|
-
function findFeatureSpec(sddRoot, domain, capability, feature) {
|
|
112
|
-
return discoverFeatureSpecs(sddRoot).find((s) => s.domain === domain &&
|
|
113
|
-
s.capability === capability &&
|
|
114
|
-
s.feature === feature)?.path;
|
|
115
|
-
}
|
|
116
|
-
function readMarkdown(uri, path) {
|
|
117
|
-
return {
|
|
118
|
-
contents: [
|
|
119
|
-
{
|
|
120
|
-
uri,
|
|
121
|
-
mimeType: "text/markdown",
|
|
122
|
-
text: readFileSync(path, "utf8"),
|
|
123
|
-
},
|
|
124
|
-
],
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
function invalidArgs(uri) {
|
|
128
|
-
return new McpEnvelopeError({
|
|
129
|
-
code: "SPEC_URI_INVALID",
|
|
130
|
-
message: `Spec URI ${uri} is missing required template parameters.`,
|
|
131
|
-
remediation: "Check the URI shape: sdd://specs/capability/{domain}/{capability} or sdd://specs/feature/{domain}/{capability}/{feature}.",
|
|
132
|
-
context: { uri },
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
function notFound(code, message, ctx) {
|
|
136
|
-
return new McpEnvelopeError({
|
|
137
|
-
code,
|
|
138
|
-
message,
|
|
139
|
-
remediation: "Spec files are adopter-instantiated and may be absent in the canonical method repo. Query the discovered list via the MCP resources/list operation to see which specs this SDD exposes.",
|
|
140
|
-
context: ctx,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
function safeReaddir(dir) {
|
|
144
|
-
try {
|
|
145
|
-
return readdirSync(dir);
|
|
146
|
-
}
|
|
147
|
-
catch {
|
|
148
|
-
return [];
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=specs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"specs.js","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/version.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAgCjE"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { DISTRIBUTION, MCP_PROTOCOL_SPEC_VERSION, SERVER_VERSION, } from "../build-info.js";
|
|
4
|
-
export function register(server, sddRoot) {
|
|
5
|
-
server.registerResource("method-version", "sdd://method/version", {
|
|
6
|
-
title: "Method version",
|
|
7
|
-
description: "Method distribution version, server build, SDD commit, and MCP protocol spec version. Clients read this at session start to detect mismatches.",
|
|
8
|
-
mimeType: "application/json",
|
|
9
|
-
}, async () => {
|
|
10
|
-
const payload = {
|
|
11
|
-
method_version: SERVER_VERSION,
|
|
12
|
-
distribution: DISTRIBUTION,
|
|
13
|
-
server_build: new Date().toISOString(),
|
|
14
|
-
sdd_repo_commit: await readHeadCommit(sddRoot),
|
|
15
|
-
protocol: {
|
|
16
|
-
name: "mcp",
|
|
17
|
-
spec_version: MCP_PROTOCOL_SPEC_VERSION,
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
return {
|
|
21
|
-
contents: [
|
|
22
|
-
{
|
|
23
|
-
uri: "sdd://method/version",
|
|
24
|
-
mimeType: "application/json",
|
|
25
|
-
text: JSON.stringify(payload, null, 2),
|
|
26
|
-
},
|
|
27
|
-
],
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
async function readHeadCommit(sddRoot) {
|
|
32
|
-
try {
|
|
33
|
-
const headRef = (await readFile(join(sddRoot, ".git", "HEAD"), "utf8")).trim();
|
|
34
|
-
if (headRef.startsWith("ref: ")) {
|
|
35
|
-
const refPath = headRef.slice("ref: ".length);
|
|
36
|
-
const sha = (await readFile(join(sddRoot, ".git", refPath), "utf8")).trim();
|
|
37
|
-
return sha || null;
|
|
38
|
-
}
|
|
39
|
-
return headRef || null;
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=version.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,OAAe;IACzD,MAAM,CAAC,gBAAgB,CACrB,gBAAgB,EAChB,sBAAsB,EACtB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,gJAAgJ;QAClJ,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,cAAc;YAC9B,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,eAAe,EAAE,MAAM,cAAc,CAAC,OAAO,CAAC;YAC9C,QAAQ,EAAE;gBACR,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,yBAAyB;aACxC;SACF,CAAC;QACF,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,sBAAsB;oBAC3B,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CACd,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CACtD,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,CACV,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CACvD,CAAC,IAAI,EAAE,CAAC;YACT,OAAO,GAAG,IAAI,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/lib/mcp/server.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* sdd-mcp server lifecycle: construct the McpServer, register the
|
|
3
|
-
* minimum Phase 1 surface, wire stdio transport, and wait for the host
|
|
4
|
-
* to close the connection.
|
|
5
|
-
*
|
|
6
|
-
* Logging discipline: NEVER write to stdout in this module or anything
|
|
7
|
-
* it calls. stdout is the MCP protocol channel; any non-protocol byte
|
|
8
|
-
* corrupts the wire. Use stderr for diagnostics.
|
|
9
|
-
*/
|
|
10
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
|
-
export interface RunMcpServeOptions {
|
|
12
|
-
readonly cwd?: string;
|
|
13
|
-
readonly sddRepo?: string;
|
|
14
|
-
readonly env?: NodeJS.ProcessEnv;
|
|
15
|
-
/**
|
|
16
|
-
* Connect the server and return immediately instead of waiting for
|
|
17
|
-
* the transport to close. Used by the integration tests, which
|
|
18
|
-
* attach their own in-memory transports and drive the server
|
|
19
|
-
* programmatically.
|
|
20
|
-
*/
|
|
21
|
-
readonly testMode?: boolean;
|
|
22
|
-
}
|
|
23
|
-
export interface RunMcpServeResult {
|
|
24
|
-
readonly server: McpServer;
|
|
25
|
-
/** Resolved SDD absolute path. */
|
|
26
|
-
readonly sddRepoPath: string;
|
|
27
|
-
}
|
|
28
|
-
export declare function runMcpServe(opts?: RunMcpServeOptions): Promise<RunMcpServeResult>;
|
|
29
|
-
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/lib/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,WAAW,CAC/B,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAwF5B"}
|
package/dist/lib/mcp/server.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* sdd-mcp server lifecycle: construct the McpServer, register the
|
|
3
|
-
* minimum Phase 1 surface, wire stdio transport, and wait for the host
|
|
4
|
-
* to close the connection.
|
|
5
|
-
*
|
|
6
|
-
* Logging discipline: NEVER write to stdout in this module or anything
|
|
7
|
-
* it calls. stdout is the MCP protocol channel; any non-protocol byte
|
|
8
|
-
* corrupts the wire. Use stderr for diagnostics.
|
|
9
|
-
*/
|
|
10
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
12
|
-
import { SERVER_VERSION } from "./build-info.js";
|
|
13
|
-
import { envelopeFromUnknown } from "./errors.js";
|
|
14
|
-
import { register as registerAdrs } from "./resources/adrs.js";
|
|
15
|
-
import { register as registerCatalogue } from "./resources/catalogue.js";
|
|
16
|
-
import { register as registerDataModels } from "./resources/data-models.js";
|
|
17
|
-
import { register as registerGates } from "./resources/gates.js";
|
|
18
|
-
import { register as registerGlossary } from "./resources/glossary.js";
|
|
19
|
-
import { register as registerSpecs } from "./resources/specs.js";
|
|
20
|
-
import { register as registerVersion } from "./resources/version.js";
|
|
21
|
-
import { register as registerCascadeImpact } from "./tools/cascade-impact.js";
|
|
22
|
-
import { register as registerCatalogueTools } from "./tools/catalogue.js";
|
|
23
|
-
import { register as registerFindConsumers } from "./tools/find-consumers.js";
|
|
24
|
-
import { register as registerFindConsumersOfContract } from "./tools/find-consumers-of-contract.js";
|
|
25
|
-
import { register as registerFindDependencies } from "./tools/find-dependencies.js";
|
|
26
|
-
import { register as registerFindDependents } from "./tools/find-dependents.js";
|
|
27
|
-
import { register as registerFindProducers } from "./tools/find-producers.js";
|
|
28
|
-
import { register as registerFindRelatedSpecs } from "./tools/find-related-specs.js";
|
|
29
|
-
import { register as registerListAdrs } from "./tools/list-adrs.js";
|
|
30
|
-
import { register as registerQueryGateStatus } from "./tools/query-gate-status.js";
|
|
31
|
-
import { register as registerSearchSpecs } from "./tools/search-specs.js";
|
|
32
|
-
import { registerAllPrompts } from "./prompts/index.js";
|
|
33
|
-
import { resolveSddRepo } from "./workspace.js";
|
|
34
|
-
import { shutdownPinSubsystem } from "./pin/index.js";
|
|
35
|
-
import { liveReader } from "./reader.js";
|
|
36
|
-
import { startIndexWatcher } from "../sdd-index/watch.js";
|
|
37
|
-
export async function runMcpServe(opts = {}) {
|
|
38
|
-
const env = opts.env ?? process.env;
|
|
39
|
-
const cwd = opts.cwd ?? process.cwd();
|
|
40
|
-
let sddRepoPath;
|
|
41
|
-
try {
|
|
42
|
-
const resolved = resolveSddRepo({
|
|
43
|
-
cwd,
|
|
44
|
-
env,
|
|
45
|
-
...(opts.sddRepo ? { flagPath: opts.sddRepo } : {}),
|
|
46
|
-
});
|
|
47
|
-
sddRepoPath = resolved.path;
|
|
48
|
-
process.stderr.write(`[sdd-mcp] SDD repo resolved via ${resolved.source}: ${resolved.path}\n`);
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
const envelope = envelopeFromUnknown(err);
|
|
52
|
-
process.stderr.write(`[sdd-mcp] fatal: ${envelope.code} — ${envelope.message}\n` +
|
|
53
|
-
`[sdd-mcp] remediation: ${envelope.remediation}\n`);
|
|
54
|
-
throw err;
|
|
55
|
-
}
|
|
56
|
-
const server = new McpServer({
|
|
57
|
-
name: "sdd-mcp",
|
|
58
|
-
version: SERVER_VERSION,
|
|
59
|
-
}, {
|
|
60
|
-
capabilities: {
|
|
61
|
-
resources: {},
|
|
62
|
-
tools: {},
|
|
63
|
-
prompts: {},
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
registerVersion(server, sddRepoPath);
|
|
67
|
-
registerAdrs(server, sddRepoPath);
|
|
68
|
-
registerSpecs(server, sddRepoPath);
|
|
69
|
-
registerDataModels(server, sddRepoPath);
|
|
70
|
-
registerGates(server, sddRepoPath);
|
|
71
|
-
registerGlossary(server, sddRepoPath);
|
|
72
|
-
registerCatalogue(server, sddRepoPath);
|
|
73
|
-
registerListAdrs(server, sddRepoPath);
|
|
74
|
-
registerQueryGateStatus(server, sddRepoPath);
|
|
75
|
-
registerSearchSpecs(server, sddRepoPath);
|
|
76
|
-
registerFindRelatedSpecs(server, sddRepoPath);
|
|
77
|
-
registerFindConsumers(server, sddRepoPath);
|
|
78
|
-
registerFindProducers(server, sddRepoPath);
|
|
79
|
-
registerFindDependencies(server, sddRepoPath);
|
|
80
|
-
registerFindDependents(server, sddRepoPath);
|
|
81
|
-
registerFindConsumersOfContract(server, sddRepoPath);
|
|
82
|
-
registerCascadeImpact(server, sddRepoPath);
|
|
83
|
-
registerCatalogueTools(server, sddRepoPath);
|
|
84
|
-
registerAllPrompts(server, sddRepoPath);
|
|
85
|
-
if (opts.testMode) {
|
|
86
|
-
return { server, sddRepoPath };
|
|
87
|
-
}
|
|
88
|
-
const watcher = startIndexWatcher(liveReader(sddRepoPath));
|
|
89
|
-
const transport = new StdioServerTransport();
|
|
90
|
-
await server.connect(transport);
|
|
91
|
-
// Wait until the host closes stdio. McpServer owns the transport
|
|
92
|
-
// lifecycle; when the parent exits or closes stdin, the transport
|
|
93
|
-
// fires onclose and this promise resolves.
|
|
94
|
-
await new Promise((resolveDone) => {
|
|
95
|
-
transport.onclose = () => {
|
|
96
|
-
resolveDone();
|
|
97
|
-
};
|
|
98
|
-
const onSignal = () => {
|
|
99
|
-
void server.close().finally(() => resolveDone());
|
|
100
|
-
};
|
|
101
|
-
process.once("SIGTERM", onSignal);
|
|
102
|
-
process.once("SIGINT", onSignal);
|
|
103
|
-
});
|
|
104
|
-
watcher.stop();
|
|
105
|
-
shutdownPinSubsystem();
|
|
106
|
-
return { server, sddRepoPath };
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/lib/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* cascade_impact — dry-run the cascade-update checklist for a
|
|
3
|
-
* proposed change. Thin wrapper around the shared library function
|
|
4
|
-
* in `src/lib/sdd-index/cascade.ts` so the Phase 5 `evaluate_cascade`
|
|
5
|
-
* prompt and this tool agree on behaviour.
|
|
6
|
-
*
|
|
7
|
-
* Per [ADR 0128] §4.5 this tool *reports* cascade status; it never
|
|
8
|
-
* enforces — enforcement stays with hooks and CI.
|
|
9
|
-
*/
|
|
10
|
-
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
|
-
import { z } from "zod";
|
|
12
|
-
export declare const cascadeImpactArgsSchema: {
|
|
13
|
-
change_type: z.ZodEnum<{
|
|
14
|
-
service: "service";
|
|
15
|
-
capability: "capability";
|
|
16
|
-
entity: "entity";
|
|
17
|
-
}>;
|
|
18
|
-
target: z.ZodString;
|
|
19
|
-
pin_to_commit: z.ZodOptional<z.ZodString>;
|
|
20
|
-
};
|
|
21
|
-
export declare function register(server: McpServer, sddRoot: string): void;
|
|
22
|
-
//# sourceMappingURL=cascade-impact.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cascade-impact.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/tools/cascade-impact.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,uBAAuB;;;;;;;;CAkBnC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA6BjE"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* cascade_impact — dry-run the cascade-update checklist for a
|
|
3
|
-
* proposed change. Thin wrapper around the shared library function
|
|
4
|
-
* in `src/lib/sdd-index/cascade.ts` so the Phase 5 `evaluate_cascade`
|
|
5
|
-
* prompt and this tool agree on behaviour.
|
|
6
|
-
*
|
|
7
|
-
* Per [ADR 0128] §4.5 this tool *reports* cascade status; it never
|
|
8
|
-
* enforces — enforcement stays with hooks and CI.
|
|
9
|
-
*/
|
|
10
|
-
import { z } from "zod";
|
|
11
|
-
import { McpEnvelopeError } from "../errors.js";
|
|
12
|
-
import { readerFor } from "../pin/index.js";
|
|
13
|
-
import { CascadeImpactError, runCascadeImpact, } from "../../sdd-index/cascade.js";
|
|
14
|
-
export const cascadeImpactArgsSchema = {
|
|
15
|
-
change_type: z
|
|
16
|
-
.enum(["service", "capability", "entity"])
|
|
17
|
-
.describe("What kind of thing is changing: a service, a capability, or a domain-model entity (aggregate/event)."),
|
|
18
|
-
target: z
|
|
19
|
-
.string()
|
|
20
|
-
.min(1)
|
|
21
|
-
.describe("Name of the changed artefact (service id, capability slug, or entity name)."),
|
|
22
|
-
pin_to_commit: z
|
|
23
|
-
.string()
|
|
24
|
-
.optional()
|
|
25
|
-
.describe("Optional commit SHA (or ref) to pin the SDD to. Executes the script against a git worktree at that commit."),
|
|
26
|
-
};
|
|
27
|
-
export function register(server, sddRoot) {
|
|
28
|
-
server.registerTool("cascade_impact", {
|
|
29
|
-
title: "Cascade impact dry-run",
|
|
30
|
-
description: "Wrap the adopter's orchestration/scripts/validate-cascade-completeness.sh to report which artefacts a proposed change would cascade through. Decorates script output with per-service metadata from the SDD index. Read-only.",
|
|
31
|
-
inputSchema: cascadeImpactArgsSchema,
|
|
32
|
-
}, async ({ change_type, target, pin_to_commit }) => {
|
|
33
|
-
const reader = readerFor(sddRoot, pin_to_commit);
|
|
34
|
-
try {
|
|
35
|
-
const payload = runCascadeImpact(reader, { change_type, target });
|
|
36
|
-
return {
|
|
37
|
-
content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
catch (err) {
|
|
41
|
-
if (err instanceof CascadeImpactError) {
|
|
42
|
-
throw new McpEnvelopeError({
|
|
43
|
-
code: err.code,
|
|
44
|
-
message: err.message,
|
|
45
|
-
remediation: err.remediation,
|
|
46
|
-
context: err.context,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
throw err;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=cascade-impact.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cascade-impact.js","sourceRoot":"","sources":["../../../../src/lib/mcp/tools/cascade-impact.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;SACzC,QAAQ,CACP,sGAAsG,CACvG;IACH,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,6EAA6E,CAC9E;IACH,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4GAA4G,CAC7G;CACJ,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,OAAe;IACzD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,+NAA+N;QACjO,WAAW,EAAE,uBAAuB;KACrC,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAClE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACpE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;gBACtC,MAAM,IAAI,gBAAgB,CAAC;oBACzB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Catalogue tools (sdd-mcp Phase 8, Step 4). Read-only, on-demand
|
|
3
|
-
* queries over the consumer repo's built catalogues:
|
|
4
|
-
*
|
|
5
|
-
* query_catalogue_coverage — row count + internal-FK pass + coverage for one catalogue
|
|
6
|
-
* find_products_by_category — products filtered by category
|
|
7
|
-
* find_orphan_rows — rows whose internal FK target is missing
|
|
8
|
-
* query_edges_for_entity — every edge row referencing a given entity
|
|
9
|
-
*
|
|
10
|
-
* FK semantics follow ADR 0134: external FKs are validated only at
|
|
11
|
-
* aggregation, so per-SDD coverage and orphan checks consider internal
|
|
12
|
-
* FKs only. Reuses the existing schema-loader + csv-reader.
|
|
13
|
-
*/
|
|
14
|
-
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
15
|
-
export declare function register(server: McpServer, sddRoot: string): void;
|
|
16
|
-
//# sourceMappingURL=catalogue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/tools/catalogue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwGzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAwMjE"}
|