@sdd-method/sdd-cli 1.43.0 → 1.45.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 -18
- package/dist/author-program.js +1 -1
- package/dist/author-program.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api-surface/__fixtures__/serverless-repo/serverless/serverless.yml +4 -4
- package/dist/lib/api-surface/analyzers/serverless.js +1 -1
- package/dist/lib/api-surface/analyzers/serverless.js.map +1 -1
- package/dist/lib/api-surface/analyzers/spring.js +1 -1
- package/dist/lib/api-surface/analyzers/spring.js.map +1 -1
- package/dist/lib/briefing/render.d.ts +1 -2
- package/dist/lib/briefing/render.d.ts.map +1 -1
- package/dist/lib/briefing/render.js +1 -2
- package/dist/lib/briefing/render.js.map +1 -1
- package/dist/lib/briefing/variables.d.ts +1 -2
- package/dist/lib/briefing/variables.d.ts.map +1 -1
- package/dist/lib/briefing/variables.js +1 -2
- package/dist/lib/briefing/variables.js.map +1 -1
- package/dist/lib/catalogue/aggregate.d.ts +9 -9
- package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
- package/dist/lib/catalogue/aggregate.js +38 -39
- package/dist/lib/catalogue/aggregate.js.map +1 -1
- package/dist/lib/catalogue/application-archetype/expectations.d.ts +1 -1
- package/dist/lib/catalogue/application-archetype/expectations.d.ts.map +1 -1
- package/dist/lib/catalogue/application-archetype/expectations.js +1 -1
- package/dist/lib/catalogue/application-archetype/expectations.js.map +1 -1
- package/dist/lib/catalogue/archetype/resolver.d.ts +1 -1
- package/dist/lib/catalogue/archetype/wireframe.js +1 -1
- package/dist/lib/catalogue/archetype/wireframe.js.map +1 -1
- package/dist/lib/catalogue/build.d.ts +4 -5
- package/dist/lib/catalogue/build.d.ts.map +1 -1
- package/dist/lib/catalogue/build.js +17 -23
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/application-conformance-coverage.js +1 -1
- package/dist/lib/catalogue/builders/application-conformance-coverage.js.map +1 -1
- package/dist/lib/catalogue/builders/c4-components.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/c4-components.js +4 -5
- package/dist/lib/catalogue/builders/c4-components.js.map +1 -1
- package/dist/lib/catalogue/builders/c4-containers.d.ts +5 -5
- package/dist/lib/catalogue/builders/c4-containers.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/c4-containers.js +4 -4
- package/dist/lib/catalogue/builders/c4-containers.js.map +1 -1
- package/dist/lib/catalogue/builders/c4-external-systems.d.ts +6 -6
- package/dist/lib/catalogue/builders/c4-external-systems.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/c4-external-systems.js +1 -1
- package/dist/lib/catalogue/builders/c4-l1-candidates.js +2 -2
- package/dist/lib/catalogue/builders/c4-l1-candidates.js.map +1 -1
- package/dist/lib/catalogue/builders/capabilities.js +2 -2
- package/dist/lib/catalogue/builders/capabilities.js.map +1 -1
- package/dist/lib/catalogue/builders/capability-edges.d.ts +1 -1
- package/dist/lib/catalogue/builders/capability-edges.js +4 -4
- package/dist/lib/catalogue/builders/capability-edges.js.map +1 -1
- package/dist/lib/catalogue/builders/capability-spec-walker.d.ts +3 -3
- package/dist/lib/catalogue/builders/capability-spec-walker.js +3 -3
- package/dist/lib/catalogue/builders/container-dependency.d.ts +4 -4
- package/dist/lib/catalogue/builders/container-dependency.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/container-dependency.js +19 -20
- package/dist/lib/catalogue/builders/container-dependency.js.map +1 -1
- package/dist/lib/catalogue/builders/contracts.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/contracts.js +5 -6
- package/dist/lib/catalogue/builders/contracts.js.map +1 -1
- package/dist/lib/catalogue/builders/data-store-mapping.js +4 -4
- package/dist/lib/catalogue/builders/data-store-mapping.js.map +1 -1
- package/dist/lib/catalogue/builders/edge-label-merge.js +2 -2
- package/dist/lib/catalogue/builders/edge-label-merge.js.map +1 -1
- package/dist/lib/catalogue/builders/entities-manifest.js +1 -1
- package/dist/lib/catalogue/builders/entities-manifest.js.map +1 -1
- package/dist/lib/catalogue/builders/entities-mermaid.js +3 -3
- package/dist/lib/catalogue/builders/entities-mermaid.js.map +1 -1
- package/dist/lib/catalogue/builders/entity-slug.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/entity-slug.js +11 -12
- package/dist/lib/catalogue/builders/entity-slug.js.map +1 -1
- package/dist/lib/catalogue/builders/event-catalog-walker.js +3 -3
- package/dist/lib/catalogue/builders/event-catalog-walker.js.map +1 -1
- package/dist/lib/catalogue/builders/evidence-class.js +2 -2
- package/dist/lib/catalogue/builders/evidence-class.js.map +1 -1
- package/dist/lib/catalogue/builders/external-system-exemption.js +1 -1
- package/dist/lib/catalogue/builders/external-system-exemption.js.map +1 -1
- package/dist/lib/catalogue/builders/feature-contract.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/feature-contract.js +1 -3
- package/dist/lib/catalogue/builders/feature-contract.js.map +1 -1
- package/dist/lib/catalogue/builders/feature-grounding.d.ts +1 -1
- package/dist/lib/catalogue/builders/feature-grounding.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/feature-grounding.js +1 -2
- package/dist/lib/catalogue/builders/feature-grounding.js.map +1 -1
- package/dist/lib/catalogue/builders/feature-groups.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/feature-groups.js +0 -1
- package/dist/lib/catalogue/builders/feature-groups.js.map +1 -1
- package/dist/lib/catalogue/builders/feature-subscription-channels.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/feature-subscription-channels.js +2 -3
- package/dist/lib/catalogue/builders/feature-subscription-channels.js.map +1 -1
- package/dist/lib/catalogue/builders/feature-tree-walker.d.ts +1 -1
- package/dist/lib/catalogue/builders/feature-tree-walker.js +1 -1
- package/dist/lib/catalogue/builders/features.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/features.js +3 -4
- package/dist/lib/catalogue/builders/features.js.map +1 -1
- package/dist/lib/catalogue/builders/glossary-xref.js +1 -1
- package/dist/lib/catalogue/builders/glossary-xref.js.map +1 -1
- package/dist/lib/catalogue/builders/persona-c4system.js +7 -7
- package/dist/lib/catalogue/builders/persona-c4system.js.map +1 -1
- package/dist/lib/catalogue/builders/persona-container.d.ts +1 -1
- package/dist/lib/catalogue/builders/persona-container.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/persona-container.js +14 -14
- package/dist/lib/catalogue/builders/persona-container.js.map +1 -1
- package/dist/lib/catalogue/builders/personas.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/personas.js +1 -2
- package/dist/lib/catalogue/builders/personas.js.map +1 -1
- package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts +1 -1
- package/dist/lib/catalogue/builders/product-platform-dependencies.js +2 -2
- package/dist/lib/catalogue/builders/product-platform-dependencies.js.map +1 -1
- package/dist/lib/catalogue/builders/quality-scores.d.ts +1 -1
- package/dist/lib/catalogue/builders/quality-scores.js +1 -1
- package/dist/lib/catalogue/builders/quality-scores.js.map +1 -1
- package/dist/lib/catalogue/builders/repositories.d.ts +1 -1
- package/dist/lib/catalogue/builders/repositories.js +2 -2
- package/dist/lib/catalogue/builders/repositories.js.map +1 -1
- package/dist/lib/catalogue/builders/screen-tree.d.ts +2 -2
- package/dist/lib/catalogue/builders/screen-tree.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/screen-tree.js +2 -2
- package/dist/lib/catalogue/builders/screen-tree.js.map +1 -1
- package/dist/lib/catalogue/builders/screens.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/screens.js +3 -4
- package/dist/lib/catalogue/builders/screens.js.map +1 -1
- package/dist/lib/catalogue/builders/system-external-dependency.d.ts +1 -1
- package/dist/lib/catalogue/builders/system-external-dependency.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/system-external-dependency.js +7 -7
- package/dist/lib/catalogue/builders/system-external-dependency.js.map +1 -1
- package/dist/lib/catalogue/canonical-schema.yaml +23 -23
- package/dist/lib/catalogue/contract-path-resolution.d.ts +2 -2
- package/dist/lib/catalogue/contract-path-resolution.js +3 -3
- package/dist/lib/catalogue/contract-path-resolution.js.map +1 -1
- package/dist/lib/catalogue/coverage-predicates.d.ts +2 -2
- package/dist/lib/catalogue/coverage-predicates.js +4 -4
- package/dist/lib/catalogue/coverage-predicates.js.map +1 -1
- package/dist/lib/catalogue/coverage-run.js +1 -1
- package/dist/lib/catalogue/coverage-run.js.map +1 -1
- package/dist/lib/catalogue/dedupe-keyed-tables.d.ts +2 -3
- package/dist/lib/catalogue/dedupe-keyed-tables.d.ts.map +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/ext-id.d.ts +3 -3
- package/dist/lib/catalogue/ext-id.js +4 -4
- package/dist/lib/catalogue/ext-id.js.map +1 -1
- package/dist/lib/catalogue/feature-grounding-aliases-loader.d.ts +1 -1
- package/dist/lib/catalogue/feature-grounding-aliases-loader.js +1 -1
- package/dist/lib/catalogue/finding-identity.d.ts +3 -3
- package/dist/lib/catalogue/finding-identity.js +3 -3
- package/dist/lib/catalogue/findings.d.ts +1 -1
- package/dist/lib/catalogue/freshness.d.ts +1 -1
- package/dist/lib/catalogue/freshness.js +1 -1
- package/dist/lib/catalogue/manifest-loader.d.ts +2 -2
- package/dist/lib/catalogue/manifest-loader.d.ts.map +1 -1
- package/dist/lib/catalogue/manifest-loader.js +2 -2
- package/dist/lib/catalogue/manifest-loader.js.map +1 -1
- package/dist/lib/catalogue/scaffold-delta.js +1 -1
- package/dist/lib/catalogue/schema-compat.d.ts +1 -2
- package/dist/lib/catalogue/schema-compat.d.ts.map +1 -1
- package/dist/lib/catalogue/schema-compat.js +1 -2
- package/dist/lib/catalogue/schema-compat.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/screen-validation-loader.d.ts +1 -1
- package/dist/lib/catalogue/screen-validation-loader.js +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/catalogue/staleness-verdicts.js +2 -2
- package/dist/lib/catalogue/staleness-verdicts.js.map +1 -1
- package/dist/lib/catalogue/traceability-loader.d.ts +1 -1
- package/dist/lib/catalogue/traceability-loader.d.ts.map +1 -1
- package/dist/lib/catalogue/traceability-loader.js +2 -3
- package/dist/lib/catalogue/traceability-loader.js.map +1 -1
- package/dist/lib/ci-binding/index.d.ts +12 -3
- package/dist/lib/ci-binding/index.d.ts.map +1 -1
- package/dist/lib/ci-binding/index.js +147 -35
- 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/conformance/index.d.ts +2 -0
- package/dist/lib/conformance/index.d.ts.map +1 -1
- package/dist/lib/conformance/index.js +29 -8
- package/dist/lib/conformance/index.js.map +1 -1
- package/dist/lib/hooks-seed/entries.d.ts +35 -11
- package/dist/lib/hooks-seed/entries.d.ts.map +1 -1
- package/dist/lib/hooks-seed/entries.js +43 -21
- package/dist/lib/hooks-seed/entries.js.map +1 -1
- package/dist/lib/hooks-seed/index.d.ts +2 -1
- package/dist/lib/hooks-seed/index.d.ts.map +1 -1
- package/dist/lib/hooks-seed/index.js +1 -1
- package/dist/lib/hooks-seed/index.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/index.js +1 -1
- package/dist/lib/init/index.js.map +1 -1
- package/dist/lib/init/platform.d.ts +3 -0
- package/dist/lib/init/platform.d.ts.map +1 -1
- package/dist/lib/init/platform.js +21 -1
- package/dist/lib/init/platform.js.map +1 -1
- package/dist/lib/init/sdd-manifest.js +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 +11 -1
- 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 +4 -3
- 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/pack/reference-closure.d.ts +3 -3
- package/dist/lib/pack/reference-closure.js +3 -3
- package/dist/lib/package-version.d.ts +1 -1
- package/dist/lib/package-version.js +1 -1
- package/dist/lib/snapshot/manifest.js +1 -1
- package/dist/lib/snapshot/targets.d.ts +1 -1
- package/dist/lib/snapshot/targets.js +2 -2
- package/dist/lib/snapshot/targets.js.map +1 -1
- package/dist/lib/sync/adr-transitions.js +1 -1
- package/dist/lib/sync/bundle-source.d.ts +3 -4
- package/dist/lib/sync/bundle-source.d.ts.map +1 -1
- package/dist/lib/sync/bundle-source.js.map +1 -1
- package/dist/lib/sync/config.d.ts +2 -2
- package/dist/lib/sync/diff.d.ts +1 -1
- package/dist/lib/sync/diff.js +1 -1
- package/dist/lib/sync/index.d.ts +11 -0
- package/dist/lib/sync/index.d.ts.map +1 -1
- package/dist/lib/sync/index.js +34 -5
- package/dist/lib/sync/index.js.map +1 -1
- package/dist/lib/sync/settings-merge.d.ts +3 -1
- package/dist/lib/sync/settings-merge.d.ts.map +1 -1
- package/dist/lib/sync/settings-merge.js +1 -1
- package/dist/lib/sync/settings-merge.js.map +1 -1
- package/dist/lib/validate/index.js +1 -1
- package/dist/lib/validate/index.js.map +1 -1
- package/dist/lib/validate/plan.d.ts +12 -3
- package/dist/lib/validate/plan.d.ts.map +1 -1
- package/dist/lib/validate/plan.js +7 -4
- package/dist/lib/validate/plan.js.map +1 -1
- package/dist/lib/validate/yaml-parse.js +1 -1
- package/dist/lib/validate/yaml-parse.js.map +1 -1
- package/dist/maintain-program.js +1 -1
- package/dist/maintain-program.js.map +1 -1
- package/dist/maintain-version.json +2 -2
- 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 +3 -3
- package/dist/verbs/plan.js.map +1 -1
- package/dist/verbs/sync.d.ts.map +1 -1
- package/dist/verbs/sync.js +18 -1
- 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 +1 -1
- package/dist/verify-program.js.map +1 -1
- package/dist/verify-version.json +2 -2
- package/package.json +2 -10
- package/scripts/README.md +1 -1
- package/scripts/author-version.json +2 -2
- package/scripts/dagger-parity.sh +1 -1
- package/scripts/maintain-acceptance.mjs +3 -2
- package/scripts/maintain-version.json +2 -2
- package/scripts/publish-release.mjs +123 -0
- package/scripts/release-gate.mjs +18 -7
- package/scripts/verify-version.json +2 -2
- 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 +0 -37
- package/dist/lib/mcp/reader.d.ts.map +0 -1
- package/dist/lib/mcp/reader.js +0 -93
- 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,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* YAML reader for orchestration/gate-registry/<gate>-scores.yaml.
|
|
3
|
-
*
|
|
4
|
-
* Registry shape: header fields (schema_version, description, pass_threshold,
|
|
5
|
-
* and the reverse family's registry_type / assessed_at / assessed_by) plus ONE
|
|
6
|
-
* container key holding the per-artefact entries. The container key is not a
|
|
7
|
-
* stable name — it drifts between the method template and live estate data,
|
|
8
|
-
* and is not unique across rubrics — so it is unwrapped rather than trusted.
|
|
9
|
-
*
|
|
10
|
-
* Three defects were found here by the M-ADR 0205 Phase-B survey (2026-08-06)
|
|
11
|
-
* and fixed together, since all three are the same mistake in different
|
|
12
|
-
* places: assuming the registry population looks like the reader's model of it.
|
|
13
|
-
*
|
|
14
|
-
* - `listGates` hard-coded ten names, so gate discovery was silently blind
|
|
15
|
-
* to nine of the nineteen rubric families now in existence (five newer
|
|
16
|
-
* method-side registries and four reverse-only ones). An unlisted gate
|
|
17
|
-
* read as absent. It now enumerates the directory.
|
|
18
|
-
* - `entries` returned the CONTAINER, not the artefacts, so the summary in
|
|
19
|
-
* `resources/gates.ts` reported `total: 1` for a registry holding 99
|
|
20
|
-
* scored ADRs — while its own description advertised "per-artefact
|
|
21
|
-
* entries". It now unwraps the single container.
|
|
22
|
-
* - `parseYaml` ran unguarded, so a malformed registry threw a raw
|
|
23
|
-
* YAMLParseError through two surfaces that otherwise honour the
|
|
24
|
-
* McpEnvelopeError contract. Measured: three of one estate's ten
|
|
25
|
-
* registries are unparseable. It now reports `parseError` and returns an
|
|
26
|
-
* empty-but-well-formed registry, leaving each caller to decide how to
|
|
27
|
-
* surface it — the reader's job is to report, not to throw.
|
|
28
|
-
*/
|
|
29
|
-
import { readFileSync, readdirSync } from "node:fs";
|
|
30
|
-
import { join } from "node:path";
|
|
31
|
-
import { parse as parseYaml } from "yaml";
|
|
32
|
-
import { safeIsFile } from "./paths.js";
|
|
33
|
-
/** File-level keys that are registry metadata rather than the entry container. */
|
|
34
|
-
const HEADER_KEYS = new Set([
|
|
35
|
-
"schema_version",
|
|
36
|
-
"description",
|
|
37
|
-
"pass_threshold",
|
|
38
|
-
"registry_type",
|
|
39
|
-
"assessed_at",
|
|
40
|
-
"assessed_by",
|
|
41
|
-
]);
|
|
42
|
-
export function gateRegistryPath(sddRoot, gate) {
|
|
43
|
-
return join(sddRoot, "orchestration", "gate-registry", `${gate}-scores.yaml`);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Every gate this SDD actually carries, by enumeration — never a fixed list.
|
|
47
|
-
* A registry is any `<gate>-scores.yaml` in the gate-registry directory, so a
|
|
48
|
-
* newly-shipped rubric is discoverable the moment its registry exists.
|
|
49
|
-
*/
|
|
50
|
-
export function listGates(sddRoot) {
|
|
51
|
-
const dir = join(sddRoot, "orchestration", "gate-registry");
|
|
52
|
-
let names;
|
|
53
|
-
try {
|
|
54
|
-
names = readdirSync(dir);
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
return [];
|
|
58
|
-
}
|
|
59
|
-
return names
|
|
60
|
-
.filter((n) => n.endsWith("-scores.yaml"))
|
|
61
|
-
.map((n) => n.slice(0, -".yaml".length).replace(/-scores$/, ""))
|
|
62
|
-
.filter((g) => safeIsFile(gateRegistryPath(sddRoot, g)))
|
|
63
|
-
.sort();
|
|
64
|
-
}
|
|
65
|
-
export function readGateRegistry(sddRoot, gate) {
|
|
66
|
-
const path = gateRegistryPath(sddRoot, gate);
|
|
67
|
-
if (!safeIsFile(path))
|
|
68
|
-
return undefined;
|
|
69
|
-
const raw = readFileSync(path, "utf8");
|
|
70
|
-
const empty = (parseError) => ({
|
|
71
|
-
gate,
|
|
72
|
-
path,
|
|
73
|
-
schemaVersion: null,
|
|
74
|
-
description: null,
|
|
75
|
-
passThreshold: null,
|
|
76
|
-
entries: {},
|
|
77
|
-
entryContainer: null,
|
|
78
|
-
parseError,
|
|
79
|
-
});
|
|
80
|
-
let parsed;
|
|
81
|
-
try {
|
|
82
|
-
parsed = parseYaml(raw);
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
return empty(String(e.message).split("\n")[0] ?? "unparseable YAML");
|
|
86
|
-
}
|
|
87
|
-
if (!parsed || typeof parsed !== "object")
|
|
88
|
-
return empty(null);
|
|
89
|
-
// Exactly one non-header mapping key is the entry container. Zero means a
|
|
90
|
-
// headers-only registry (a deliberate, common state); more than one is
|
|
91
|
-
// ambiguous, and the whole document is returned rather than a guessed pick.
|
|
92
|
-
const containers = Object.entries(parsed).filter(([k, v]) => !HEADER_KEYS.has(k) && typeof v === "object" && v !== null && !Array.isArray(v));
|
|
93
|
-
let entries = {};
|
|
94
|
-
let entryContainer = null;
|
|
95
|
-
if (containers.length === 1) {
|
|
96
|
-
const [key, value] = containers[0];
|
|
97
|
-
entryContainer = key;
|
|
98
|
-
entries = value;
|
|
99
|
-
}
|
|
100
|
-
else if (containers.length > 1) {
|
|
101
|
-
for (const [k, v] of containers)
|
|
102
|
-
entries[k] = v;
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
gate,
|
|
106
|
-
path,
|
|
107
|
-
schemaVersion: typeOrNull(parsed["schema_version"]),
|
|
108
|
-
description: typeOrNull(parsed["description"]),
|
|
109
|
-
passThreshold: parsed["pass_threshold"] ?? null,
|
|
110
|
-
entries,
|
|
111
|
-
entryContainer,
|
|
112
|
-
parseError: null,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
function typeOrNull(v) {
|
|
116
|
-
return typeof v === "string" ? v : null;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Verdict tally over unwrapped entries. ONE implementation, deliberately: this
|
|
120
|
-
* existed identically in both MCP consumers, and a duplicated counter is a
|
|
121
|
-
* drift surface that only shows up as two surfaces disagreeing about the same
|
|
122
|
-
* registry.
|
|
123
|
-
*
|
|
124
|
-
* Reads BOTH authored dialects. The gate sits at `entry.current.gate` in the
|
|
125
|
-
* nested shape all fifteen method templates specify, and at `entry.gate` in
|
|
126
|
-
* the flat shape the live estate data overwhelmingly uses. Reading only the
|
|
127
|
-
* flat one reports every nested entry as `unscored` — a confident false zero
|
|
128
|
-
* of exactly the kind this arc keeps paying for.
|
|
129
|
-
*
|
|
130
|
-
* An out-of-vocabulary verdict counts as `unscored` rather than being dropped,
|
|
131
|
-
* so `pass + conditional + fail + unscored === total` always holds and the
|
|
132
|
-
* tally can never quietly lose a row.
|
|
133
|
-
*/
|
|
134
|
-
export function summariseGateEntries(entries) {
|
|
135
|
-
let total = 0;
|
|
136
|
-
let pass = 0;
|
|
137
|
-
let conditional = 0;
|
|
138
|
-
let fail = 0;
|
|
139
|
-
let unscored = 0;
|
|
140
|
-
for (const value of Object.values(entries)) {
|
|
141
|
-
total++;
|
|
142
|
-
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
143
|
-
const entry = value;
|
|
144
|
-
const nested = entry["current"];
|
|
145
|
-
const source = nested && typeof nested === "object" && !Array.isArray(nested)
|
|
146
|
-
? nested
|
|
147
|
-
: entry;
|
|
148
|
-
const gateVal = source["gate"];
|
|
149
|
-
if (gateVal === "pass")
|
|
150
|
-
pass++;
|
|
151
|
-
else if (gateVal === "conditional")
|
|
152
|
-
conditional++;
|
|
153
|
-
else if (gateVal === "fail")
|
|
154
|
-
fail++;
|
|
155
|
-
else
|
|
156
|
-
unscored++;
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
unscored++;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return { total, pass, conditional, fail, unscored };
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=gate-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../../../../src/lib/mcp/parse/gate-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Filesystem path helpers used by the MCP resource handlers to map
|
|
3
|
-
* between `sdd://` URIs and files on disk. All paths returned are
|
|
4
|
-
* absolute; callers pass the resolved SDD root as the base.
|
|
5
|
-
*/
|
|
6
|
-
export declare function adrScopeDirs(sddRoot: string): Record<string, string>;
|
|
7
|
-
export interface DiscoveredAdr {
|
|
8
|
-
readonly scope: string;
|
|
9
|
-
readonly number: string;
|
|
10
|
-
readonly title: string;
|
|
11
|
-
readonly path: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Discover every ADR file under docs/{method,platform}/adr plus
|
|
15
|
-
* docs/domains/{d}/adr in the given SDD.
|
|
16
|
-
*/
|
|
17
|
-
export declare function discoverAdrs(sddRoot: string): DiscoveredAdr[];
|
|
18
|
-
export declare function findAdr(sddRoot: string, scope: string, number: string): DiscoveredAdr | undefined;
|
|
19
|
-
export declare function safeIsFile(path: string): boolean;
|
|
20
|
-
export declare function safeIsDir(path: string): boolean;
|
|
21
|
-
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/parse/paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKpE;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAe7D;AAsBD,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,SAAS,CAK3B;AAUD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMhD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM/C"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Filesystem path helpers used by the MCP resource handlers to map
|
|
3
|
-
* between `sdd://` URIs and files on disk. All paths returned are
|
|
4
|
-
* absolute; callers pass the resolved SDD root as the base.
|
|
5
|
-
*/
|
|
6
|
-
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
7
|
-
import { join } from "node:path";
|
|
8
|
-
import { ORIGIN_PREFIX_SRC } from "../../adr-origin.js";
|
|
9
|
-
export function adrScopeDirs(sddRoot) {
|
|
10
|
-
return {
|
|
11
|
-
method: join(sddRoot, "docs", "method", "adr"),
|
|
12
|
-
platform: join(sddRoot, "docs", "platform", "adr"),
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Discover every ADR file under docs/{method,platform}/adr plus
|
|
17
|
-
* docs/domains/{d}/adr in the given SDD.
|
|
18
|
-
*/
|
|
19
|
-
export function discoverAdrs(sddRoot) {
|
|
20
|
-
const out = [];
|
|
21
|
-
const scopes = adrScopeDirs(sddRoot);
|
|
22
|
-
for (const [scope, dir] of Object.entries(scopes)) {
|
|
23
|
-
out.push(...readAdrsFromDir(scope, dir));
|
|
24
|
-
}
|
|
25
|
-
const domainsRoot = join(sddRoot, "docs", "domains");
|
|
26
|
-
if (existsSync(domainsRoot)) {
|
|
27
|
-
for (const entry of safeReaddir(domainsRoot)) {
|
|
28
|
-
if (entry.startsWith("_"))
|
|
29
|
-
continue;
|
|
30
|
-
const adrDir = join(domainsRoot, entry, "adr");
|
|
31
|
-
out.push(...readAdrsFromDir(`domain:${entry}`, adrDir));
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return out.sort((a, b) => a.number.localeCompare(b.number));
|
|
35
|
-
}
|
|
36
|
-
function readAdrsFromDir(scope, dir) {
|
|
37
|
-
if (!existsSync(dir))
|
|
38
|
-
return [];
|
|
39
|
-
const out = [];
|
|
40
|
-
for (const entry of safeReaddir(dir)) {
|
|
41
|
-
const match = entry.match(new RegExp(`^${ORIGIN_PREFIX_SRC}ADR\\s+(\\d{3,4})\\s*:\\s*(.+)\\.md$`));
|
|
42
|
-
if (!match)
|
|
43
|
-
continue;
|
|
44
|
-
const [, num, title] = match;
|
|
45
|
-
if (!num || !title)
|
|
46
|
-
continue;
|
|
47
|
-
out.push({
|
|
48
|
-
scope,
|
|
49
|
-
number: num.padStart(4, "0"),
|
|
50
|
-
title,
|
|
51
|
-
path: join(dir, entry),
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
return out;
|
|
55
|
-
}
|
|
56
|
-
export function findAdr(sddRoot, scope, number) {
|
|
57
|
-
const padded = number.padStart(4, "0");
|
|
58
|
-
return discoverAdrs(sddRoot).find((a) => a.scope === scope && a.number === padded);
|
|
59
|
-
}
|
|
60
|
-
function safeReaddir(dir) {
|
|
61
|
-
try {
|
|
62
|
-
return readdirSync(dir);
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return [];
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
export function safeIsFile(path) {
|
|
69
|
-
try {
|
|
70
|
-
return statSync(path).isFile();
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
export function safeIsDir(path) {
|
|
77
|
-
try {
|
|
78
|
-
return statSync(path).isDirectory();
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=paths.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../../src/lib/mcp/parse/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Structured error envelopes for pin_to_commit failure modes per the
|
|
3
|
-
* scope doc §Risks — "pinning to a non-existent SHA, a pre-marker
|
|
4
|
-
* commit, or a shallow clone should surface structured errors with
|
|
5
|
-
* actionable remediation, not opaque git errors."
|
|
6
|
-
*/
|
|
7
|
-
import { McpEnvelopeError } from "../errors.js";
|
|
8
|
-
export declare function pinNotFound(sha: string, sddRoot: string): McpEnvelopeError;
|
|
9
|
-
export declare function pinPreMarker(sha: string, sddRoot: string): McpEnvelopeError;
|
|
10
|
-
export declare function shallowCloneInsufficient(sha: string, sddRoot: string): McpEnvelopeError;
|
|
11
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/pin/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAQ1E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAQ3E;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,gBAAgB,CAQlB"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Structured error envelopes for pin_to_commit failure modes per the
|
|
3
|
-
* scope doc §Risks — "pinning to a non-existent SHA, a pre-marker
|
|
4
|
-
* commit, or a shallow clone should surface structured errors with
|
|
5
|
-
* actionable remediation, not opaque git errors."
|
|
6
|
-
*/
|
|
7
|
-
import { McpEnvelopeError } from "../errors.js";
|
|
8
|
-
export function pinNotFound(sha, sddRoot) {
|
|
9
|
-
return new McpEnvelopeError({
|
|
10
|
-
code: "PIN_NOT_FOUND",
|
|
11
|
-
message: `Commit ${sha} is not present in the git object database of ${sddRoot}.`,
|
|
12
|
-
remediation: "Fetch the ref (git fetch origin <branch>) or check the SHA spelling. For shallow clones, run git fetch --unshallow.",
|
|
13
|
-
context: { sha, sddRoot },
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
export function pinPreMarker(sha, sddRoot) {
|
|
17
|
-
return new McpEnvelopeError({
|
|
18
|
-
code: "PIN_PRE_MARKER",
|
|
19
|
-
message: `Commit ${sha} predates the .sdd-repo-kind marker; cannot treat this tree as an SDD.`,
|
|
20
|
-
remediation: "Pin to a commit after the SDD repo was initialised (the first commit containing .sdd-repo-kind), or omit pin_to_commit for a live read.",
|
|
21
|
-
context: { sha, sddRoot, expected_marker: ".sdd-repo-kind" },
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
export function shallowCloneInsufficient(sha, sddRoot) {
|
|
25
|
-
return new McpEnvelopeError({
|
|
26
|
-
code: "SHALLOW_CLONE_INSUFFICIENT",
|
|
27
|
-
message: `SDD ${sddRoot} is a shallow clone; history for ${sha} is not available.`,
|
|
28
|
-
remediation: "Run `git fetch --unshallow` in the SDD repo, or re-clone without --depth.",
|
|
29
|
-
context: { sha, sddRoot },
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/lib/mcp/pin/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,OAAe;IACtD,OAAO,IAAI,gBAAgB,CAAC;QAC1B,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,UAAU,GAAG,iDAAiD,OAAO,GAAG;QACjF,WAAW,EACT,qHAAqH;QACvH,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,OAAe;IACvD,OAAO,IAAI,gBAAgB,CAAC;QAC1B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,UAAU,GAAG,wEAAwE;QAC9F,WAAW,EACT,yIAAyI;QAC3I,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE;KAC7D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,GAAW,EACX,OAAe;IAEf,OAAO,IAAI,gBAAgB,CAAC;QAC1B,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,OAAO,OAAO,oCAAoC,GAAG,oBAAoB;QAClF,WAAW,EACT,2EAA2E;QAC7E,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Public entry point for pin_to_commit handling. Tools call
|
|
3
|
-
* `readerFor(sddRoot, pin_to_commit)` and get an SddReader they can
|
|
4
|
-
* query without branching on live vs. pinned.
|
|
5
|
-
*
|
|
6
|
-
* A pinned reader materialises a temporary git worktree at the
|
|
7
|
-
* resolved SHA and returns a liveReader pointed at it. Every existing
|
|
8
|
-
* filesystem helper keeps working; responses echo the resolved SHA
|
|
9
|
-
* via `reader.pin`.
|
|
10
|
-
*/
|
|
11
|
-
import type { SddReader } from "../reader.js";
|
|
12
|
-
export { resolvePin } from "./resolve.js";
|
|
13
|
-
export { materialisePinnedWorktree, releasePinnedWorktrees } from "./read.js";
|
|
14
|
-
export * from "./errors.js";
|
|
15
|
-
export declare function readerFor(sddRoot: string, pinToCommit: string | undefined): SddReader;
|
|
16
|
-
/** Shutdown hook — idempotent. */
|
|
17
|
-
export declare function shutdownPinSubsystem(): void;
|
|
18
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/pin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC9E,cAAc,aAAa,CAAC;AAE5B,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,SAAS,CAOX;AAED,kCAAkC;AAClC,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Public entry point for pin_to_commit handling. Tools call
|
|
3
|
-
* `readerFor(sddRoot, pin_to_commit)` and get an SddReader they can
|
|
4
|
-
* query without branching on live vs. pinned.
|
|
5
|
-
*
|
|
6
|
-
* A pinned reader materialises a temporary git worktree at the
|
|
7
|
-
* resolved SHA and returns a liveReader pointed at it. Every existing
|
|
8
|
-
* filesystem helper keeps working; responses echo the resolved SHA
|
|
9
|
-
* via `reader.pin`.
|
|
10
|
-
*/
|
|
11
|
-
import { liveReader } from "../reader.js";
|
|
12
|
-
import { materialisePinnedWorktree, releasePinnedWorktrees } from "./read.js";
|
|
13
|
-
import { resolvePin } from "./resolve.js";
|
|
14
|
-
export { resolvePin } from "./resolve.js";
|
|
15
|
-
export { materialisePinnedWorktree, releasePinnedWorktrees } from "./read.js";
|
|
16
|
-
export * from "./errors.js";
|
|
17
|
-
export function readerFor(sddRoot, pinToCommit) {
|
|
18
|
-
if (!pinToCommit || pinToCommit.trim().length === 0) {
|
|
19
|
-
return liveReader(sddRoot);
|
|
20
|
-
}
|
|
21
|
-
const { sha } = resolvePin(sddRoot, pinToCommit);
|
|
22
|
-
const wtPath = materialisePinnedWorktree(sddRoot, sha);
|
|
23
|
-
return liveReader(wtPath, sha);
|
|
24
|
-
}
|
|
25
|
-
/** Shutdown hook — idempotent. */
|
|
26
|
-
export function shutdownPinSubsystem() {
|
|
27
|
-
releasePinnedWorktrees();
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/mcp/pin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC9E,cAAc,aAAa,CAAC;AAE5B,MAAM,UAAU,SAAS,CACvB,OAAe,EACf,WAA+B;IAE/B,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,oBAAoB;IAClC,sBAAsB,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pinned-SDD materialisation via `git worktree add --detach`.
|
|
3
|
-
*
|
|
4
|
-
* The pinned reader is just a liveReader pointed at a temporary
|
|
5
|
-
* worktree checked out at the resolved SHA. This lets every existing
|
|
6
|
-
* filesystem helper keep working unchanged, and it's mandatory for
|
|
7
|
-
* WS5's cascade_impact which shells out to a bash script that expects
|
|
8
|
-
* a real working tree.
|
|
9
|
-
*
|
|
10
|
-
* Cost: one `git worktree add` per (SDD, SHA) pair per server
|
|
11
|
-
* lifetime. Cached; cleaned up when releasePinnedWorktrees() is called
|
|
12
|
-
* on shutdown.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Ensure a worktree exists for (sddRoot, sha) and return its absolute
|
|
16
|
-
* path. Reuses an existing cached worktree if present.
|
|
17
|
-
*/
|
|
18
|
-
export declare function materialisePinnedWorktree(sddRoot: string, sha: string): string;
|
|
19
|
-
/**
|
|
20
|
-
* Remove every cached worktree. Called on server shutdown; safe to
|
|
21
|
-
* call multiple times.
|
|
22
|
-
*/
|
|
23
|
-
export declare function releasePinnedWorktrees(): void;
|
|
24
|
-
//# sourceMappingURL=read.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/pin/read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,MAAM,CA0BR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAkB7C"}
|
package/dist/lib/mcp/pin/read.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pinned-SDD materialisation via `git worktree add --detach`.
|
|
3
|
-
*
|
|
4
|
-
* The pinned reader is just a liveReader pointed at a temporary
|
|
5
|
-
* worktree checked out at the resolved SHA. This lets every existing
|
|
6
|
-
* filesystem helper keep working unchanged, and it's mandatory for
|
|
7
|
-
* WS5's cascade_impact which shells out to a bash script that expects
|
|
8
|
-
* a real working tree.
|
|
9
|
-
*
|
|
10
|
-
* Cost: one `git worktree add` per (SDD, SHA) pair per server
|
|
11
|
-
* lifetime. Cached; cleaned up when releasePinnedWorktrees() is called
|
|
12
|
-
* on shutdown.
|
|
13
|
-
*/
|
|
14
|
-
import { spawnSync } from "node:child_process";
|
|
15
|
-
import { mkdtempSync, rmSync } from "node:fs";
|
|
16
|
-
import { tmpdir } from "node:os";
|
|
17
|
-
import { join } from "node:path";
|
|
18
|
-
const cache = new Map();
|
|
19
|
-
/**
|
|
20
|
-
* Ensure a worktree exists for (sddRoot, sha) and return its absolute
|
|
21
|
-
* path. Reuses an existing cached worktree if present.
|
|
22
|
-
*/
|
|
23
|
-
export function materialisePinnedWorktree(sddRoot, sha) {
|
|
24
|
-
const key = `${sddRoot}|${sha}`;
|
|
25
|
-
const cached = cache.get(key);
|
|
26
|
-
if (cached)
|
|
27
|
-
return cached.path;
|
|
28
|
-
const wtRoot = mkdtempSync(join(tmpdir(), "sdd-mcp-pin-"));
|
|
29
|
-
const wtPath = join(wtRoot, "sdd");
|
|
30
|
-
const r = spawnSync("git", ["-C", sddRoot, "worktree", "add", "--detach", "--quiet", wtPath, sha], { encoding: "utf8" });
|
|
31
|
-
if (r.status !== 0) {
|
|
32
|
-
try {
|
|
33
|
-
rmSync(wtRoot, { recursive: true, force: true });
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
/* best-effort */
|
|
37
|
-
}
|
|
38
|
-
throw new Error(`git worktree add failed for ${sha} in ${sddRoot}: ${r.stderr.trim()}`);
|
|
39
|
-
}
|
|
40
|
-
cache.set(key, { path: wtPath, sddRoot });
|
|
41
|
-
return wtPath;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Remove every cached worktree. Called on server shutdown; safe to
|
|
45
|
-
* call multiple times.
|
|
46
|
-
*/
|
|
47
|
-
export function releasePinnedWorktrees() {
|
|
48
|
-
for (const [key, wt] of cache) {
|
|
49
|
-
try {
|
|
50
|
-
spawnSync("git", ["-C", wt.sddRoot, "worktree", "remove", "--force", wt.path], { encoding: "utf8" });
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
/* best-effort */
|
|
54
|
-
}
|
|
55
|
-
try {
|
|
56
|
-
rmSync(wt.path, { recursive: true, force: true });
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
/* best-effort */
|
|
60
|
-
}
|
|
61
|
-
cache.delete(key);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=read.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../src/lib/mcp/pin/read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,GAAW;IAEX,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IAE/B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEnC,MAAM,CAAC,GAAG,SAAS,CACjB,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EACtE,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;IACF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,+BAA+B,GAAG,OAAO,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,SAAS,CACP,KAAK,EACL,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAC5D,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve a user-supplied pin_to_commit argument to a validated SHA,
|
|
3
|
-
* confirming the SDD marker file (.sdd-repo-kind) exists at that
|
|
4
|
-
* tree. Surfaces the structured errors from ./errors.ts rather than
|
|
5
|
-
* leaking raw git output.
|
|
6
|
-
*/
|
|
7
|
-
export interface ResolvedPin {
|
|
8
|
-
/** Full 40-char SHA the caller should echo in responses. */
|
|
9
|
-
readonly sha: string;
|
|
10
|
-
}
|
|
11
|
-
export declare function resolvePin(sddRoot: string, raw: string): ResolvedPin;
|
|
12
|
-
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/pin/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CA6BpE"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve a user-supplied pin_to_commit argument to a validated SHA,
|
|
3
|
-
* confirming the SDD marker file (.sdd-repo-kind) exists at that
|
|
4
|
-
* tree. Surfaces the structured errors from ./errors.ts rather than
|
|
5
|
-
* leaking raw git output.
|
|
6
|
-
*/
|
|
7
|
-
import { spawnSync } from "node:child_process";
|
|
8
|
-
import { pinNotFound, pinPreMarker, shallowCloneInsufficient, } from "./errors.js";
|
|
9
|
-
export function resolvePin(sddRoot, raw) {
|
|
10
|
-
const ref = raw.trim();
|
|
11
|
-
if (ref.length === 0) {
|
|
12
|
-
throw pinNotFound(raw, sddRoot);
|
|
13
|
-
}
|
|
14
|
-
const resolved = spawnSync("git", ["-C", sddRoot, "rev-parse", "--verify", `${ref}^{commit}`], { encoding: "utf8" });
|
|
15
|
-
if (resolved.status !== 0) {
|
|
16
|
-
if (isShallow(sddRoot)) {
|
|
17
|
-
throw shallowCloneInsufficient(ref, sddRoot);
|
|
18
|
-
}
|
|
19
|
-
throw pinNotFound(ref, sddRoot);
|
|
20
|
-
}
|
|
21
|
-
const sha = resolved.stdout.trim();
|
|
22
|
-
// Ensure the marker file exists at this tree.
|
|
23
|
-
const markerCheck = spawnSync("git", ["-C", sddRoot, "cat-file", "-e", `${sha}:.sdd-repo-kind`], { encoding: "utf8" });
|
|
24
|
-
if (markerCheck.status !== 0) {
|
|
25
|
-
throw pinPreMarker(sha, sddRoot);
|
|
26
|
-
}
|
|
27
|
-
return { sha };
|
|
28
|
-
}
|
|
29
|
-
function isShallow(sddRoot) {
|
|
30
|
-
const r = spawnSync("git", ["-C", sddRoot, "rev-parse", "--is-shallow-repository"], { encoding: "utf8" });
|
|
31
|
-
return r.status === 0 && r.stdout.trim() === "true";
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=resolve.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/lib/mcp/pin/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAOrB,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,GAAW;IACrD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CACxB,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,GAAG,WAAW,CAAC,EAC3D,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,MAAM,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEnC,8CAA8C;IAC9C,MAAM,WAAW,GAAG,SAAS,CAC3B,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,GAAG,iBAAiB,CAAC,EAC1D,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,CAAC,GAAG,SAAS,CACjB,KAAK,EACL,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yBAAyB,CAAC,EACvD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;IACF,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;AACtD,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* evaluate_cascade — walk the agent through the cascade-update
|
|
3
|
-
* checklist for a proposed change. Shares its argument shape with the
|
|
4
|
-
* `cascade_impact` tool (via the exported zod schema) and calls the
|
|
5
|
-
* same underlying library function.
|
|
6
|
-
*
|
|
7
|
-
* Errors from the validator are embedded in the returned message
|
|
8
|
-
* (open-question resolution (b)) rather than thrown — the agent can
|
|
9
|
-
* surface the error with context instead of receiving an opaque
|
|
10
|
-
* transport-level failure.
|
|
11
|
-
*/
|
|
12
|
-
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
13
|
-
export declare function register(server: McpServer, sddRoot: string): void;
|
|
14
|
-
//# sourceMappingURL=evaluate-cascade.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate-cascade.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/evaluate-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA+DjE"}
|