@libar-dev/architect 1.0.0-pre.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/LICENSE +25 -0
- package/LICENSE-MCP +62 -0
- package/README.md +147 -0
- package/dist/api/arch-queries.d.ts +95 -0
- package/dist/api/arch-queries.d.ts.map +1 -0
- package/dist/api/arch-queries.js +310 -0
- package/dist/api/arch-queries.js.map +1 -0
- package/dist/api/context-assembler.d.ts +124 -0
- package/dist/api/context-assembler.d.ts.map +1 -0
- package/dist/api/context-assembler.js +472 -0
- package/dist/api/context-assembler.js.map +1 -0
- package/dist/api/context-formatter.d.ts +26 -0
- package/dist/api/context-formatter.d.ts.map +1 -0
- package/dist/api/context-formatter.js +183 -0
- package/dist/api/context-formatter.js.map +1 -0
- package/dist/api/coverage-analyzer.d.ts +38 -0
- package/dist/api/coverage-analyzer.d.ts.map +1 -0
- package/dist/api/coverage-analyzer.js +117 -0
- package/dist/api/coverage-analyzer.js.map +1 -0
- package/dist/api/fuzzy-match.d.ts +75 -0
- package/dist/api/fuzzy-match.d.ts.map +1 -0
- package/dist/api/fuzzy-match.js +150 -0
- package/dist/api/fuzzy-match.js.map +1 -0
- package/dist/api/handoff-generator.d.ts +45 -0
- package/dist/api/handoff-generator.d.ts.map +1 -0
- package/dist/api/handoff-generator.js +139 -0
- package/dist/api/handoff-generator.js.map +1 -0
- package/dist/api/index.d.ts +61 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +54 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/pattern-helpers.d.ts +51 -0
- package/dist/api/pattern-helpers.d.ts.map +1 -0
- package/dist/api/pattern-helpers.js +84 -0
- package/dist/api/pattern-helpers.js.map +1 -0
- package/dist/api/process-state.d.ts +224 -0
- package/dist/api/process-state.d.ts.map +1 -0
- package/dist/api/process-state.js +308 -0
- package/dist/api/process-state.js.map +1 -0
- package/dist/api/rules-query.d.ts +60 -0
- package/dist/api/rules-query.d.ts.map +1 -0
- package/dist/api/rules-query.js +154 -0
- package/dist/api/rules-query.js.map +1 -0
- package/dist/api/scope-validator.d.ts +56 -0
- package/dist/api/scope-validator.d.ts.map +1 -0
- package/dist/api/scope-validator.js +293 -0
- package/dist/api/scope-validator.js.map +1 -0
- package/dist/api/stub-resolver.d.ts +117 -0
- package/dist/api/stub-resolver.d.ts.map +1 -0
- package/dist/api/stub-resolver.js +154 -0
- package/dist/api/stub-resolver.js.map +1 -0
- package/dist/api/summarize.d.ts +75 -0
- package/dist/api/summarize.d.ts.map +1 -0
- package/dist/api/summarize.js +97 -0
- package/dist/api/summarize.js.map +1 -0
- package/dist/api/types.d.ts +221 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +57 -0
- package/dist/api/types.js.map +1 -0
- package/dist/cache/file-cache.d.ts +72 -0
- package/dist/cache/file-cache.d.ts.map +1 -0
- package/dist/cache/file-cache.js +80 -0
- package/dist/cache/file-cache.js.map +1 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +5 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cli/cli-schema.d.ts +83 -0
- package/dist/cli/cli-schema.d.ts.map +1 -0
- package/dist/cli/cli-schema.js +505 -0
- package/dist/cli/cli-schema.js.map +1 -0
- package/dist/cli/dataset-cache.d.ts +66 -0
- package/dist/cli/dataset-cache.d.ts.map +1 -0
- package/dist/cli/dataset-cache.js +179 -0
- package/dist/cli/dataset-cache.js.map +1 -0
- package/dist/cli/error-handler.d.ts +84 -0
- package/dist/cli/error-handler.d.ts.map +1 -0
- package/dist/cli/error-handler.js +197 -0
- package/dist/cli/error-handler.js.map +1 -0
- package/dist/cli/generate-docs.d.ts +30 -0
- package/dist/cli/generate-docs.d.ts.map +1 -0
- package/dist/cli/generate-docs.js +370 -0
- package/dist/cli/generate-docs.js.map +1 -0
- package/dist/cli/lint-patterns.d.ts +57 -0
- package/dist/cli/lint-patterns.d.ts.map +1 -0
- package/dist/cli/lint-patterns.js +257 -0
- package/dist/cli/lint-patterns.js.map +1 -0
- package/dist/cli/lint-process.d.ts +54 -0
- package/dist/cli/lint-process.d.ts.map +1 -0
- package/dist/cli/lint-process.js +319 -0
- package/dist/cli/lint-process.js.map +1 -0
- package/dist/cli/lint-steps.d.ts +32 -0
- package/dist/cli/lint-steps.d.ts.map +1 -0
- package/dist/cli/lint-steps.js +172 -0
- package/dist/cli/lint-steps.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +22 -0
- package/dist/cli/mcp-server.d.ts.map +1 -0
- package/dist/cli/mcp-server.js +57 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/output-pipeline.d.ts +130 -0
- package/dist/cli/output-pipeline.d.ts.map +1 -0
- package/dist/cli/output-pipeline.js +234 -0
- package/dist/cli/output-pipeline.js.map +1 -0
- package/dist/cli/process-api.d.ts +37 -0
- package/dist/cli/process-api.d.ts.map +1 -0
- package/dist/cli/process-api.js +1550 -0
- package/dist/cli/process-api.js.map +1 -0
- package/dist/cli/repl.d.ts +38 -0
- package/dist/cli/repl.d.ts.map +1 -0
- package/dist/cli/repl.js +239 -0
- package/dist/cli/repl.js.map +1 -0
- package/dist/cli/validate-patterns.d.ts +115 -0
- package/dist/cli/validate-patterns.d.ts.map +1 -0
- package/dist/cli/validate-patterns.js +707 -0
- package/dist/cli/validate-patterns.js.map +1 -0
- package/dist/cli/version.d.ts +35 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +64 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/config/config-loader.d.ts +167 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +294 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/defaults.d.ts +92 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +103 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/define-config.d.ts +37 -0
- package/dist/config/define-config.d.ts.map +1 -0
- package/dist/config/define-config.js +38 -0
- package/dist/config/define-config.js.map +1 -0
- package/dist/config/factory.d.ts +79 -0
- package/dist/config/factory.d.ts.map +1 -0
- package/dist/config/factory.js +116 -0
- package/dist/config/factory.js.map +1 -0
- package/dist/config/index.d.ts +45 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +48 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/merge-sources.d.ts +47 -0
- package/dist/config/merge-sources.d.ts.map +1 -0
- package/dist/config/merge-sources.js +61 -0
- package/dist/config/merge-sources.js.map +1 -0
- package/dist/config/presets.d.ts +115 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +119 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/config/project-config-schema.d.ts +192 -0
- package/dist/config/project-config-schema.d.ts.map +1 -0
- package/dist/config/project-config-schema.js +231 -0
- package/dist/config/project-config-schema.js.map +1 -0
- package/dist/config/project-config.d.ts +229 -0
- package/dist/config/project-config.d.ts.map +1 -0
- package/dist/config/project-config.js +37 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/config/regex-builders.d.ts +49 -0
- package/dist/config/regex-builders.d.ts.map +1 -0
- package/dist/config/regex-builders.js +85 -0
- package/dist/config/regex-builders.js.map +1 -0
- package/dist/config/resolve-config.d.ts +65 -0
- package/dist/config/resolve-config.d.ts.map +1 -0
- package/dist/config/resolve-config.js +150 -0
- package/dist/config/resolve-config.js.map +1 -0
- package/dist/config/types.d.ts +81 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +22 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/workflow-loader.d.ts +90 -0
- package/dist/config/workflow-loader.d.ts.map +1 -0
- package/dist/config/workflow-loader.js +167 -0
- package/dist/config/workflow-loader.js.map +1 -0
- package/dist/extractor/doc-extractor.d.ts +233 -0
- package/dist/extractor/doc-extractor.d.ts.map +1 -0
- package/dist/extractor/doc-extractor.js +481 -0
- package/dist/extractor/doc-extractor.js.map +1 -0
- package/dist/extractor/dual-source-extractor.d.ts +161 -0
- package/dist/extractor/dual-source-extractor.d.ts.map +1 -0
- package/dist/extractor/dual-source-extractor.js +407 -0
- package/dist/extractor/dual-source-extractor.js.map +1 -0
- package/dist/extractor/gherkin-extractor.d.ts +170 -0
- package/dist/extractor/gherkin-extractor.d.ts.map +1 -0
- package/dist/extractor/gherkin-extractor.js +543 -0
- package/dist/extractor/gherkin-extractor.js.map +1 -0
- package/dist/extractor/index.d.ts +7 -0
- package/dist/extractor/index.d.ts.map +1 -0
- package/dist/extractor/index.js +11 -0
- package/dist/extractor/index.js.map +1 -0
- package/dist/extractor/layer-inference.d.ts +66 -0
- package/dist/extractor/layer-inference.d.ts.map +1 -0
- package/dist/extractor/layer-inference.js +93 -0
- package/dist/extractor/layer-inference.js.map +1 -0
- package/dist/extractor/shape-extractor.d.ts +79 -0
- package/dist/extractor/shape-extractor.d.ts.map +1 -0
- package/dist/extractor/shape-extractor.js +966 -0
- package/dist/extractor/shape-extractor.js.map +1 -0
- package/dist/generators/built-in/cli-recipe-generator.d.ts +30 -0
- package/dist/generators/built-in/cli-recipe-generator.d.ts.map +1 -0
- package/dist/generators/built-in/cli-recipe-generator.js +155 -0
- package/dist/generators/built-in/cli-recipe-generator.js.map +1 -0
- package/dist/generators/built-in/codec-generators.d.ts +29 -0
- package/dist/generators/built-in/codec-generators.d.ts.map +1 -0
- package/dist/generators/built-in/codec-generators.js +195 -0
- package/dist/generators/built-in/codec-generators.js.map +1 -0
- package/dist/generators/built-in/decision-doc-generator.d.ts +204 -0
- package/dist/generators/built-in/decision-doc-generator.d.ts.map +1 -0
- package/dist/generators/built-in/decision-doc-generator.js +654 -0
- package/dist/generators/built-in/decision-doc-generator.js.map +1 -0
- package/dist/generators/built-in/design-review-generator.d.ts +26 -0
- package/dist/generators/built-in/design-review-generator.d.ts.map +1 -0
- package/dist/generators/built-in/design-review-generator.js +94 -0
- package/dist/generators/built-in/design-review-generator.js.map +1 -0
- package/dist/generators/built-in/index.d.ts +22 -0
- package/dist/generators/built-in/index.d.ts.map +1 -0
- package/dist/generators/built-in/index.js +23 -0
- package/dist/generators/built-in/index.js.map +1 -0
- package/dist/generators/built-in/process-api-reference-generator.d.ts +18 -0
- package/dist/generators/built-in/process-api-reference-generator.d.ts.map +1 -0
- package/dist/generators/built-in/process-api-reference-generator.js +85 -0
- package/dist/generators/built-in/process-api-reference-generator.js.map +1 -0
- package/dist/generators/built-in/reference-generators.d.ts +51 -0
- package/dist/generators/built-in/reference-generators.d.ts.map +1 -0
- package/dist/generators/built-in/reference-generators.js +320 -0
- package/dist/generators/built-in/reference-generators.js.map +1 -0
- package/dist/generators/codec-based.d.ts +63 -0
- package/dist/generators/codec-based.d.ts.map +1 -0
- package/dist/generators/codec-based.js +88 -0
- package/dist/generators/codec-based.js.map +1 -0
- package/dist/generators/content-deduplicator.d.ts +114 -0
- package/dist/generators/content-deduplicator.d.ts.map +1 -0
- package/dist/generators/content-deduplicator.js +356 -0
- package/dist/generators/content-deduplicator.js.map +1 -0
- package/dist/generators/index.d.ts +50 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +54 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/orchestrator.d.ts +265 -0
- package/dist/generators/orchestrator.d.ts.map +1 -0
- package/dist/generators/orchestrator.js +570 -0
- package/dist/generators/orchestrator.js.map +1 -0
- package/dist/generators/pipeline/build-pipeline.d.ts +131 -0
- package/dist/generators/pipeline/build-pipeline.d.ts.map +1 -0
- package/dist/generators/pipeline/build-pipeline.js +248 -0
- package/dist/generators/pipeline/build-pipeline.js.map +1 -0
- package/dist/generators/pipeline/context-inference.d.ts +55 -0
- package/dist/generators/pipeline/context-inference.d.ts.map +1 -0
- package/dist/generators/pipeline/context-inference.js +76 -0
- package/dist/generators/pipeline/context-inference.js.map +1 -0
- package/dist/generators/pipeline/index.d.ts +27 -0
- package/dist/generators/pipeline/index.d.ts.map +1 -0
- package/dist/generators/pipeline/index.js +34 -0
- package/dist/generators/pipeline/index.js.map +1 -0
- package/dist/generators/pipeline/merge-patterns.d.ts +33 -0
- package/dist/generators/pipeline/merge-patterns.d.ts.map +1 -0
- package/dist/generators/pipeline/merge-patterns.js +50 -0
- package/dist/generators/pipeline/merge-patterns.js.map +1 -0
- package/dist/generators/pipeline/relationship-resolver.d.ts +47 -0
- package/dist/generators/pipeline/relationship-resolver.d.ts.map +1 -0
- package/dist/generators/pipeline/relationship-resolver.js +132 -0
- package/dist/generators/pipeline/relationship-resolver.js.map +1 -0
- package/dist/generators/pipeline/sequence-utils.d.ts +49 -0
- package/dist/generators/pipeline/sequence-utils.d.ts.map +1 -0
- package/dist/generators/pipeline/sequence-utils.js +235 -0
- package/dist/generators/pipeline/sequence-utils.js.map +1 -0
- package/dist/generators/pipeline/transform-dataset.d.ts +82 -0
- package/dist/generators/pipeline/transform-dataset.d.ts.map +1 -0
- package/dist/generators/pipeline/transform-dataset.js +355 -0
- package/dist/generators/pipeline/transform-dataset.js.map +1 -0
- package/dist/generators/pipeline/transform-types.d.ts +96 -0
- package/dist/generators/pipeline/transform-types.d.ts.map +1 -0
- package/dist/generators/pipeline/transform-types.js +18 -0
- package/dist/generators/pipeline/transform-types.js.map +1 -0
- package/dist/generators/registry.d.ts +64 -0
- package/dist/generators/registry.d.ts.map +1 -0
- package/dist/generators/registry.js +77 -0
- package/dist/generators/registry.js.map +1 -0
- package/dist/generators/source-mapper.d.ts +143 -0
- package/dist/generators/source-mapper.d.ts.map +1 -0
- package/dist/generators/source-mapper.js +602 -0
- package/dist/generators/source-mapper.js.map +1 -0
- package/dist/generators/source-mapping-validator.d.ts +118 -0
- package/dist/generators/source-mapping-validator.d.ts.map +1 -0
- package/dist/generators/source-mapping-validator.js +334 -0
- package/dist/generators/source-mapping-validator.js.map +1 -0
- package/dist/generators/types.d.ts +104 -0
- package/dist/generators/types.d.ts.map +1 -0
- package/dist/generators/types.js +5 -0
- package/dist/generators/types.js.map +1 -0
- package/dist/generators/warning-collector.d.ts +144 -0
- package/dist/generators/warning-collector.d.ts.map +1 -0
- package/dist/generators/warning-collector.js +166 -0
- package/dist/generators/warning-collector.js.map +1 -0
- package/dist/git/branch-diff.d.ts +44 -0
- package/dist/git/branch-diff.d.ts.map +1 -0
- package/dist/git/branch-diff.js +57 -0
- package/dist/git/branch-diff.js.map +1 -0
- package/dist/git/helpers.d.ts +46 -0
- package/dist/git/helpers.d.ts.map +1 -0
- package/dist/git/helpers.js +67 -0
- package/dist/git/helpers.js.map +1 -0
- package/dist/git/index.d.ts +18 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +18 -0
- package/dist/git/index.js.map +1 -0
- package/dist/git/name-status.d.ts +32 -0
- package/dist/git/name-status.d.ts.map +1 -0
- package/dist/git/name-status.js +66 -0
- package/dist/git/name-status.js.map +1 -0
- package/dist/index.d.ts +107 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/lint/engine.d.ts +113 -0
- package/dist/lint/engine.d.ts.map +1 -0
- package/dist/lint/engine.js +228 -0
- package/dist/lint/engine.js.map +1 -0
- package/dist/lint/index.d.ts +26 -0
- package/dist/lint/index.d.ts.map +1 -0
- package/dist/lint/index.js +24 -0
- package/dist/lint/index.js.map +1 -0
- package/dist/lint/process-guard/decider.d.ts +166 -0
- package/dist/lint/process-guard/decider.d.ts.map +1 -0
- package/dist/lint/process-guard/decider.js +412 -0
- package/dist/lint/process-guard/decider.js.map +1 -0
- package/dist/lint/process-guard/derive-state.d.ts +96 -0
- package/dist/lint/process-guard/derive-state.d.ts.map +1 -0
- package/dist/lint/process-guard/derive-state.js +368 -0
- package/dist/lint/process-guard/derive-state.js.map +1 -0
- package/dist/lint/process-guard/detect-changes.d.ts +109 -0
- package/dist/lint/process-guard/detect-changes.d.ts.map +1 -0
- package/dist/lint/process-guard/detect-changes.js +487 -0
- package/dist/lint/process-guard/detect-changes.js.map +1 -0
- package/dist/lint/process-guard/index.d.ts +35 -0
- package/dist/lint/process-guard/index.d.ts.map +1 -0
- package/dist/lint/process-guard/index.js +39 -0
- package/dist/lint/process-guard/index.js.map +1 -0
- package/dist/lint/process-guard/types.d.ts +255 -0
- package/dist/lint/process-guard/types.d.ts.map +1 -0
- package/dist/lint/process-guard/types.js +31 -0
- package/dist/lint/process-guard/types.js.map +1 -0
- package/dist/lint/rules.d.ts +147 -0
- package/dist/lint/rules.d.ts.map +1 -0
- package/dist/lint/rules.js +289 -0
- package/dist/lint/rules.js.map +1 -0
- package/dist/lint/steps/cross-checks.d.ts +66 -0
- package/dist/lint/steps/cross-checks.d.ts.map +1 -0
- package/dist/lint/steps/cross-checks.js +290 -0
- package/dist/lint/steps/cross-checks.js.map +1 -0
- package/dist/lint/steps/feature-checks.d.ts +78 -0
- package/dist/lint/steps/feature-checks.d.ts.map +1 -0
- package/dist/lint/steps/feature-checks.js +279 -0
- package/dist/lint/steps/feature-checks.js.map +1 -0
- package/dist/lint/steps/index.d.ts +22 -0
- package/dist/lint/steps/index.d.ts.map +1 -0
- package/dist/lint/steps/index.js +26 -0
- package/dist/lint/steps/index.js.map +1 -0
- package/dist/lint/steps/pair-resolver.d.ts +29 -0
- package/dist/lint/steps/pair-resolver.d.ts.map +1 -0
- package/dist/lint/steps/pair-resolver.js +76 -0
- package/dist/lint/steps/pair-resolver.js.map +1 -0
- package/dist/lint/steps/runner.d.ts +28 -0
- package/dist/lint/steps/runner.d.ts.map +1 -0
- package/dist/lint/steps/runner.js +143 -0
- package/dist/lint/steps/runner.js.map +1 -0
- package/dist/lint/steps/step-checks.d.ts +41 -0
- package/dist/lint/steps/step-checks.d.ts.map +1 -0
- package/dist/lint/steps/step-checks.js +164 -0
- package/dist/lint/steps/step-checks.js.map +1 -0
- package/dist/lint/steps/types.d.ts +95 -0
- package/dist/lint/steps/types.d.ts.map +1 -0
- package/dist/lint/steps/types.js +79 -0
- package/dist/lint/steps/types.js.map +1 -0
- package/dist/lint/steps/utils.d.ts +22 -0
- package/dist/lint/steps/utils.d.ts.map +1 -0
- package/dist/lint/steps/utils.js +57 -0
- package/dist/lint/steps/utils.js.map +1 -0
- package/dist/mcp/file-watcher.d.ts +24 -0
- package/dist/mcp/file-watcher.d.ts.map +1 -0
- package/dist/mcp/file-watcher.js +75 -0
- package/dist/mcp/file-watcher.js.map +1 -0
- package/dist/mcp/index.d.ts +19 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +21 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/pipeline-session.d.ts +33 -0
- package/dist/mcp/pipeline-session.d.ts.map +1 -0
- package/dist/mcp/pipeline-session.js +149 -0
- package/dist/mcp/pipeline-session.js.map +1 -0
- package/dist/mcp/server.d.ts +28 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +197 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tool-registry.d.ts +4 -0
- package/dist/mcp/tool-registry.d.ts.map +1 -0
- package/dist/mcp/tool-registry.js +525 -0
- package/dist/mcp/tool-registry.js.map +1 -0
- package/dist/renderable/codecs/adr.d.ts +4730 -0
- package/dist/renderable/codecs/adr.d.ts.map +1 -0
- package/dist/renderable/codecs/adr.js +590 -0
- package/dist/renderable/codecs/adr.js.map +1 -0
- package/dist/renderable/codecs/architecture.d.ts +4760 -0
- package/dist/renderable/codecs/architecture.d.ts.map +1 -0
- package/dist/renderable/codecs/architecture.js +524 -0
- package/dist/renderable/codecs/architecture.js.map +1 -0
- package/dist/renderable/codecs/business-rules.d.ts +4777 -0
- package/dist/renderable/codecs/business-rules.d.ts.map +1 -0
- package/dist/renderable/codecs/business-rules.js +648 -0
- package/dist/renderable/codecs/business-rules.js.map +1 -0
- package/dist/renderable/codecs/claude-module.d.ts +4710 -0
- package/dist/renderable/codecs/claude-module.d.ts.map +1 -0
- package/dist/renderable/codecs/claude-module.js +214 -0
- package/dist/renderable/codecs/claude-module.js.map +1 -0
- package/dist/renderable/codecs/composite.d.ts +84 -0
- package/dist/renderable/codecs/composite.d.ts.map +1 -0
- package/dist/renderable/codecs/composite.js +124 -0
- package/dist/renderable/codecs/composite.js.map +1 -0
- package/dist/renderable/codecs/convention-extractor.d.ts +105 -0
- package/dist/renderable/codecs/convention-extractor.d.ts.map +1 -0
- package/dist/renderable/codecs/convention-extractor.js +353 -0
- package/dist/renderable/codecs/convention-extractor.js.map +1 -0
- package/dist/renderable/codecs/decision-doc.d.ts +308 -0
- package/dist/renderable/codecs/decision-doc.d.ts.map +1 -0
- package/dist/renderable/codecs/decision-doc.js +485 -0
- package/dist/renderable/codecs/decision-doc.js.map +1 -0
- package/dist/renderable/codecs/design-review.d.ts +55 -0
- package/dist/renderable/codecs/design-review.d.ts.map +1 -0
- package/dist/renderable/codecs/design-review.js +532 -0
- package/dist/renderable/codecs/design-review.js.map +1 -0
- package/dist/renderable/codecs/diagram-utils.d.ts +62 -0
- package/dist/renderable/codecs/diagram-utils.d.ts.map +1 -0
- package/dist/renderable/codecs/diagram-utils.js +70 -0
- package/dist/renderable/codecs/diagram-utils.js.map +1 -0
- package/dist/renderable/codecs/helpers.d.ts +553 -0
- package/dist/renderable/codecs/helpers.d.ts.map +1 -0
- package/dist/renderable/codecs/helpers.js +913 -0
- package/dist/renderable/codecs/helpers.js.map +1 -0
- package/dist/renderable/codecs/index-codec.d.ts +4714 -0
- package/dist/renderable/codecs/index-codec.d.ts.map +1 -0
- package/dist/renderable/codecs/index-codec.js +250 -0
- package/dist/renderable/codecs/index-codec.js.map +1 -0
- package/dist/renderable/codecs/index.d.ts +46 -0
- package/dist/renderable/codecs/index.d.ts.map +1 -0
- package/dist/renderable/codecs/index.js +70 -0
- package/dist/renderable/codecs/index.js.map +1 -0
- package/dist/renderable/codecs/patterns.d.ts +4757 -0
- package/dist/renderable/codecs/patterns.d.ts.map +1 -0
- package/dist/renderable/codecs/patterns.js +462 -0
- package/dist/renderable/codecs/patterns.js.map +1 -0
- package/dist/renderable/codecs/planning.d.ts +14055 -0
- package/dist/renderable/codecs/planning.d.ts.map +1 -0
- package/dist/renderable/codecs/planning.js +449 -0
- package/dist/renderable/codecs/planning.js.map +1 -0
- package/dist/renderable/codecs/pr-changes.d.ts +4742 -0
- package/dist/renderable/codecs/pr-changes.d.ts.map +1 -0
- package/dist/renderable/codecs/pr-changes.js +425 -0
- package/dist/renderable/codecs/pr-changes.js.map +1 -0
- package/dist/renderable/codecs/reference.d.ts +215 -0
- package/dist/renderable/codecs/reference.d.ts.map +1 -0
- package/dist/renderable/codecs/reference.js +1578 -0
- package/dist/renderable/codecs/reference.js.map +1 -0
- package/dist/renderable/codecs/reporting.d.ts +14026 -0
- package/dist/renderable/codecs/reporting.d.ts.map +1 -0
- package/dist/renderable/codecs/reporting.js +365 -0
- package/dist/renderable/codecs/reporting.js.map +1 -0
- package/dist/renderable/codecs/requirements.d.ts +4743 -0
- package/dist/renderable/codecs/requirements.d.ts.map +1 -0
- package/dist/renderable/codecs/requirements.js +428 -0
- package/dist/renderable/codecs/requirements.js.map +1 -0
- package/dist/renderable/codecs/session.d.ts +9410 -0
- package/dist/renderable/codecs/session.d.ts.map +1 -0
- package/dist/renderable/codecs/session.js +848 -0
- package/dist/renderable/codecs/session.js.map +1 -0
- package/dist/renderable/codecs/shape-matcher.d.ts +54 -0
- package/dist/renderable/codecs/shape-matcher.d.ts.map +1 -0
- package/dist/renderable/codecs/shape-matcher.js +106 -0
- package/dist/renderable/codecs/shape-matcher.js.map +1 -0
- package/dist/renderable/codecs/shared-schema.d.ts +44 -0
- package/dist/renderable/codecs/shared-schema.d.ts.map +1 -0
- package/dist/renderable/codecs/shared-schema.js +43 -0
- package/dist/renderable/codecs/shared-schema.js.map +1 -0
- package/dist/renderable/codecs/taxonomy.d.ts +4733 -0
- package/dist/renderable/codecs/taxonomy.d.ts.map +1 -0
- package/dist/renderable/codecs/taxonomy.js +570 -0
- package/dist/renderable/codecs/taxonomy.js.map +1 -0
- package/dist/renderable/codecs/timeline.d.ts +14094 -0
- package/dist/renderable/codecs/timeline.d.ts.map +1 -0
- package/dist/renderable/codecs/timeline.js +906 -0
- package/dist/renderable/codecs/timeline.js.map +1 -0
- package/dist/renderable/codecs/types/base.d.ts +81 -0
- package/dist/renderable/codecs/types/base.d.ts.map +1 -0
- package/dist/renderable/codecs/types/base.js +56 -0
- package/dist/renderable/codecs/types/base.js.map +1 -0
- package/dist/renderable/codecs/types/index.d.ts +5 -0
- package/dist/renderable/codecs/types/index.d.ts.map +1 -0
- package/dist/renderable/codecs/types/index.js +5 -0
- package/dist/renderable/codecs/types/index.js.map +1 -0
- package/dist/renderable/codecs/validation-rules.d.ts +4773 -0
- package/dist/renderable/codecs/validation-rules.d.ts.map +1 -0
- package/dist/renderable/codecs/validation-rules.js +537 -0
- package/dist/renderable/codecs/validation-rules.js.map +1 -0
- package/dist/renderable/generate.d.ts +338 -0
- package/dist/renderable/generate.d.ts.map +1 -0
- package/dist/renderable/generate.js +437 -0
- package/dist/renderable/generate.js.map +1 -0
- package/dist/renderable/index.d.ts +36 -0
- package/dist/renderable/index.d.ts.map +1 -0
- package/dist/renderable/index.js +58 -0
- package/dist/renderable/index.js.map +1 -0
- package/dist/renderable/load-preamble.d.ts +56 -0
- package/dist/renderable/load-preamble.d.ts.map +1 -0
- package/dist/renderable/load-preamble.js +298 -0
- package/dist/renderable/load-preamble.js.map +1 -0
- package/dist/renderable/render.d.ts +61 -0
- package/dist/renderable/render.d.ts.map +1 -0
- package/dist/renderable/render.js +346 -0
- package/dist/renderable/render.js.map +1 -0
- package/dist/renderable/schema.d.ts +194 -0
- package/dist/renderable/schema.d.ts.map +1 -0
- package/dist/renderable/schema.js +197 -0
- package/dist/renderable/schema.js.map +1 -0
- package/dist/renderable/utils.d.ts +146 -0
- package/dist/renderable/utils.d.ts.map +1 -0
- package/dist/renderable/utils.js +362 -0
- package/dist/renderable/utils.js.map +1 -0
- package/dist/scanner/ast-parser.d.ts +75 -0
- package/dist/scanner/ast-parser.d.ts.map +1 -0
- package/dist/scanner/ast-parser.js +835 -0
- package/dist/scanner/ast-parser.js.map +1 -0
- package/dist/scanner/gherkin-ast-parser.d.ts +166 -0
- package/dist/scanner/gherkin-ast-parser.d.ts.map +1 -0
- package/dist/scanner/gherkin-ast-parser.js +507 -0
- package/dist/scanner/gherkin-ast-parser.js.map +1 -0
- package/dist/scanner/gherkin-scanner.d.ts +106 -0
- package/dist/scanner/gherkin-scanner.d.ts.map +1 -0
- package/dist/scanner/gherkin-scanner.js +149 -0
- package/dist/scanner/gherkin-scanner.js.map +1 -0
- package/dist/scanner/index.d.ts +85 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +102 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/pattern-scanner.d.ts +83 -0
- package/dist/scanner/pattern-scanner.d.ts.map +1 -0
- package/dist/scanner/pattern-scanner.js +110 -0
- package/dist/scanner/pattern-scanner.js.map +1 -0
- package/dist/taxonomy/categories.d.ts +47 -0
- package/dist/taxonomy/categories.d.ts.map +1 -0
- package/dist/taxonomy/categories.js +175 -0
- package/dist/taxonomy/categories.js.map +1 -0
- package/dist/taxonomy/claude-section-values.d.ts +12 -0
- package/dist/taxonomy/claude-section-values.d.ts.map +1 -0
- package/dist/taxonomy/claude-section-values.js +17 -0
- package/dist/taxonomy/claude-section-values.js.map +1 -0
- package/dist/taxonomy/conventions.d.ts +13 -0
- package/dist/taxonomy/conventions.d.ts.map +1 -0
- package/dist/taxonomy/conventions.js +27 -0
- package/dist/taxonomy/conventions.js.map +1 -0
- package/dist/taxonomy/deliverable-status.d.ts +99 -0
- package/dist/taxonomy/deliverable-status.d.ts.map +1 -0
- package/dist/taxonomy/deliverable-status.js +131 -0
- package/dist/taxonomy/deliverable-status.js.map +1 -0
- package/dist/taxonomy/format-types.d.ts +17 -0
- package/dist/taxonomy/format-types.d.ts.map +1 -0
- package/dist/taxonomy/format-types.js +23 -0
- package/dist/taxonomy/format-types.js.map +1 -0
- package/dist/taxonomy/generator-options.d.ts +67 -0
- package/dist/taxonomy/generator-options.d.ts.map +1 -0
- package/dist/taxonomy/generator-options.js +75 -0
- package/dist/taxonomy/generator-options.js.map +1 -0
- package/dist/taxonomy/hierarchy-levels.d.ts +23 -0
- package/dist/taxonomy/hierarchy-levels.d.ts.map +1 -0
- package/dist/taxonomy/hierarchy-levels.js +22 -0
- package/dist/taxonomy/hierarchy-levels.js.map +1 -0
- package/dist/taxonomy/index.d.ts +35 -0
- package/dist/taxonomy/index.d.ts.map +1 -0
- package/dist/taxonomy/index.js +56 -0
- package/dist/taxonomy/index.js.map +1 -0
- package/dist/taxonomy/layer-types.d.ts +22 -0
- package/dist/taxonomy/layer-types.d.ts.map +1 -0
- package/dist/taxonomy/layer-types.js +28 -0
- package/dist/taxonomy/layer-types.js.map +1 -0
- package/dist/taxonomy/normalized-status.d.ts +99 -0
- package/dist/taxonomy/normalized-status.d.ts.map +1 -0
- package/dist/taxonomy/normalized-status.js +113 -0
- package/dist/taxonomy/normalized-status.js.map +1 -0
- package/dist/taxonomy/registry-builder.d.ts +104 -0
- package/dist/taxonomy/registry-builder.d.ts.map +1 -0
- package/dist/taxonomy/registry-builder.js +561 -0
- package/dist/taxonomy/registry-builder.js.map +1 -0
- package/dist/taxonomy/risk-levels.d.ts +16 -0
- package/dist/taxonomy/risk-levels.d.ts.map +1 -0
- package/dist/taxonomy/risk-levels.js +15 -0
- package/dist/taxonomy/risk-levels.js.map +1 -0
- package/dist/taxonomy/severity-types.d.ts +6 -0
- package/dist/taxonomy/severity-types.d.ts.map +1 -0
- package/dist/taxonomy/severity-types.js +5 -0
- package/dist/taxonomy/severity-types.js.map +1 -0
- package/dist/taxonomy/status-values.d.ts +39 -0
- package/dist/taxonomy/status-values.d.ts.map +1 -0
- package/dist/taxonomy/status-values.js +42 -0
- package/dist/taxonomy/status-values.js.map +1 -0
- package/dist/types/branded.d.ts +89 -0
- package/dist/types/branded.d.ts.map +1 -0
- package/dist/types/branded.js +57 -0
- package/dist/types/branded.js.map +1 -0
- package/dist/types/errors.d.ts +342 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +251 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +41 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/result.d.ts +78 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +78 -0
- package/dist/types/result.js.map +1 -0
- package/dist/utils/collection-utils.d.ts +49 -0
- package/dist/utils/collection-utils.d.ts.map +1 -0
- package/dist/utils/collection-utils.js +58 -0
- package/dist/utils/collection-utils.js.map +1 -0
- package/dist/utils/id-utils.d.ts +46 -0
- package/dist/utils/id-utils.d.ts.map +1 -0
- package/dist/utils/id-utils.js +51 -0
- package/dist/utils/id-utils.js.map +1 -0
- package/dist/utils/index.d.ts +21 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/string-utils.d.ts +150 -0
- package/dist/utils/string-utils.d.ts.map +1 -0
- package/dist/utils/string-utils.js +281 -0
- package/dist/utils/string-utils.js.map +1 -0
- package/dist/validation/anti-patterns.d.ts +134 -0
- package/dist/validation/anti-patterns.d.ts.map +1 -0
- package/dist/validation/anti-patterns.js +307 -0
- package/dist/validation/anti-patterns.js.map +1 -0
- package/dist/validation/dod-validator.d.ts +94 -0
- package/dist/validation/dod-validator.d.ts.map +1 -0
- package/dist/validation/dod-validator.js +198 -0
- package/dist/validation/dod-validator.js.map +1 -0
- package/dist/validation/fsm/index.d.ts +59 -0
- package/dist/validation/fsm/index.d.ts.map +1 -0
- package/dist/validation/fsm/index.js +64 -0
- package/dist/validation/fsm/index.js.map +1 -0
- package/dist/validation/fsm/states.d.ts +93 -0
- package/dist/validation/fsm/states.d.ts.map +1 -0
- package/dist/validation/fsm/states.js +98 -0
- package/dist/validation/fsm/states.js.map +1 -0
- package/dist/validation/fsm/transitions.d.ts +100 -0
- package/dist/validation/fsm/transitions.d.ts.map +1 -0
- package/dist/validation/fsm/transitions.js +122 -0
- package/dist/validation/fsm/transitions.js.map +1 -0
- package/dist/validation/fsm/validator.d.ts +163 -0
- package/dist/validation/fsm/validator.d.ts.map +1 -0
- package/dist/validation/fsm/validator.js +205 -0
- package/dist/validation/fsm/validator.js.map +1 -0
- package/dist/validation/index.d.ts +23 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +25 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/types.d.ts +136 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +56 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation-schemas/codec-utils.d.ts +188 -0
- package/dist/validation-schemas/codec-utils.d.ts.map +1 -0
- package/dist/validation-schemas/codec-utils.js +258 -0
- package/dist/validation-schemas/codec-utils.js.map +1 -0
- package/dist/validation-schemas/config.d.ts +99 -0
- package/dist/validation-schemas/config.d.ts.map +1 -0
- package/dist/validation-schemas/config.js +178 -0
- package/dist/validation-schemas/config.js.map +1 -0
- package/dist/validation-schemas/doc-directive.d.ts +195 -0
- package/dist/validation-schemas/doc-directive.d.ts.map +1 -0
- package/dist/validation-schemas/doc-directive.js +239 -0
- package/dist/validation-schemas/doc-directive.js.map +1 -0
- package/dist/validation-schemas/dual-source.d.ts +167 -0
- package/dist/validation-schemas/dual-source.d.ts.map +1 -0
- package/dist/validation-schemas/dual-source.js +168 -0
- package/dist/validation-schemas/dual-source.js.map +1 -0
- package/dist/validation-schemas/export-info.d.ts +53 -0
- package/dist/validation-schemas/export-info.d.ts.map +1 -0
- package/dist/validation-schemas/export-info.js +101 -0
- package/dist/validation-schemas/export-info.js.map +1 -0
- package/dist/validation-schemas/extracted-pattern.d.ts +351 -0
- package/dist/validation-schemas/extracted-pattern.d.ts.map +1 -0
- package/dist/validation-schemas/extracted-pattern.js +459 -0
- package/dist/validation-schemas/extracted-pattern.js.map +1 -0
- package/dist/validation-schemas/extracted-shape.d.ts +200 -0
- package/dist/validation-schemas/extracted-shape.d.ts.map +1 -0
- package/dist/validation-schemas/extracted-shape.js +182 -0
- package/dist/validation-schemas/extracted-shape.js.map +1 -0
- package/dist/validation-schemas/feature.d.ts +554 -0
- package/dist/validation-schemas/feature.d.ts.map +1 -0
- package/dist/validation-schemas/feature.js +262 -0
- package/dist/validation-schemas/feature.js.map +1 -0
- package/dist/validation-schemas/index.d.ts +15 -0
- package/dist/validation-schemas/index.d.ts.map +1 -0
- package/dist/validation-schemas/index.js +32 -0
- package/dist/validation-schemas/index.js.map +1 -0
- package/dist/validation-schemas/lint.d.ts +46 -0
- package/dist/validation-schemas/lint.d.ts.map +1 -0
- package/dist/validation-schemas/lint.js +45 -0
- package/dist/validation-schemas/lint.js.map +1 -0
- package/dist/validation-schemas/master-dataset.d.ts +8299 -0
- package/dist/validation-schemas/master-dataset.d.ts.map +1 -0
- package/dist/validation-schemas/master-dataset.js +275 -0
- package/dist/validation-schemas/master-dataset.js.map +1 -0
- package/dist/validation-schemas/output-schemas.d.ts +183 -0
- package/dist/validation-schemas/output-schemas.d.ts.map +1 -0
- package/dist/validation-schemas/output-schemas.js +149 -0
- package/dist/validation-schemas/output-schemas.js.map +1 -0
- package/dist/validation-schemas/scenario-ref.d.ts +80 -0
- package/dist/validation-schemas/scenario-ref.d.ts.map +1 -0
- package/dist/validation-schemas/scenario-ref.js +73 -0
- package/dist/validation-schemas/scenario-ref.js.map +1 -0
- package/dist/validation-schemas/tag-registry.d.ts +210 -0
- package/dist/validation-schemas/tag-registry.d.ts.map +1 -0
- package/dist/validation-schemas/tag-registry.js +248 -0
- package/dist/validation-schemas/tag-registry.js.map +1 -0
- package/dist/validation-schemas/workflow-config.d.ts +125 -0
- package/dist/validation-schemas/workflow-config.d.ts.map +1 -0
- package/dist/validation-schemas/workflow-config.js +138 -0
- package/dist/validation-schemas/workflow-config.js.map +1 -0
- package/docs/ANNOTATION-GUIDE.md +271 -0
- package/docs/ARCHITECTURE.md +1636 -0
- package/docs/CONFIGURATION.md +337 -0
- package/docs/DOCS-GAP-ANALYSIS.md +811 -0
- package/docs/GHERKIN-PATTERNS.md +366 -0
- package/docs/INDEX.md +345 -0
- package/docs/MCP-SETUP.md +140 -0
- package/docs/METHODOLOGY.md +240 -0
- package/docs/PROCESS-API.md +65 -0
- package/docs/PROCESS-GUARD.md +341 -0
- package/docs/SESSION-GUIDES.md +391 -0
- package/docs/TAXONOMY.md +106 -0
- package/docs/VALIDATION.md +418 -0
- package/docs-live/ARCHITECTURE.md +362 -0
- package/docs-live/BUSINESS-RULES.md +24 -0
- package/docs-live/CHANGELOG-GENERATED.md +375 -0
- package/docs-live/DECISIONS.md +78 -0
- package/docs-live/INDEX.md +231 -0
- package/docs-live/PRODUCT-AREAS.md +255 -0
- package/docs-live/TAXONOMY.md +202 -0
- package/docs-live/VALIDATION-RULES.md +119 -0
- package/docs-live/_claude-md/annotation/annotation-overview.md +26 -0
- package/docs-live/_claude-md/annotation/annotation-reference.md +213 -0
- package/docs-live/_claude-md/architecture/architecture-codecs.md +160 -0
- package/docs-live/_claude-md/architecture/architecture-types.md +32 -0
- package/docs-live/_claude-md/architecture/reference-sample.md +162 -0
- package/docs-live/_claude-md/authoring/gherkin-authoring-guide.md +245 -0
- package/docs-live/_claude-md/configuration/configuration-guide.md +216 -0
- package/docs-live/_claude-md/configuration/configuration-overview.md +37 -0
- package/docs-live/_claude-md/core-types/core-types-overview.md +20 -0
- package/docs-live/_claude-md/data-api/data-api-overview.md +39 -0
- package/docs-live/_claude-md/generation/generation-overview.md +30 -0
- package/docs-live/_claude-md/process/process-overview.md +127 -0
- package/docs-live/_claude-md/validation/process-guard.md +185 -0
- package/docs-live/_claude-md/validation/validation-overview.md +37 -0
- package/docs-live/_claude-md/validation/validation-tools-guide.md +242 -0
- package/docs-live/_claude-md/workflow/session-workflow-guide.md +141 -0
- package/docs-live/business-rules/annotation.md +1462 -0
- package/docs-live/business-rules/configuration.md +465 -0
- package/docs-live/business-rules/core-types.md +531 -0
- package/docs-live/business-rules/data-api.md +1403 -0
- package/docs-live/business-rules/generation.md +4726 -0
- package/docs-live/business-rules/process.md +122 -0
- package/docs-live/business-rules/validation.md +998 -0
- package/docs-live/decisions/adr-001-taxonomy-canonical-values.md +197 -0
- package/docs-live/decisions/adr-002-gherkin-only-testing.md +57 -0
- package/docs-live/decisions/adr-003-source-first-pattern-architecture.md +147 -0
- package/docs-live/decisions/adr-004-session-workflow-commands.md +137 -0
- package/docs-live/decisions/adr-005-codec-based-markdown-rendering.md +150 -0
- package/docs-live/decisions/adr-006-single-read-model-architecture.md +136 -0
- package/docs-live/decisions/adr-021-doc-generation-proof-of-concept.md +489 -0
- package/docs-live/product-areas/ANNOTATION.md +591 -0
- package/docs-live/product-areas/CONFIGURATION.md +1048 -0
- package/docs-live/product-areas/CORE-TYPES.md +221 -0
- package/docs-live/product-areas/DATA-API.md +850 -0
- package/docs-live/product-areas/GENERATION.md +1200 -0
- package/docs-live/product-areas/PROCESS.md +351 -0
- package/docs-live/product-areas/VALIDATION.md +1135 -0
- package/docs-live/reference/ANNOTATION-REFERENCE.md +232 -0
- package/docs-live/reference/ARCHITECTURE-CODECS.md +675 -0
- package/docs-live/reference/ARCHITECTURE-TYPES.md +436 -0
- package/docs-live/reference/CONFIGURATION-GUIDE.md +235 -0
- package/docs-live/reference/GHERKIN-AUTHORING-GUIDE.md +270 -0
- package/docs-live/reference/PROCESS-API-RECIPES.md +476 -0
- package/docs-live/reference/PROCESS-API-REFERENCE.md +63 -0
- package/docs-live/reference/PROCESS-GUARD-REFERENCE.md +258 -0
- package/docs-live/reference/REFERENCE-SAMPLE.md +1135 -0
- package/docs-live/reference/SESSION-WORKFLOW-GUIDE.md +384 -0
- package/docs-live/reference/VALIDATION-TOOLS-GUIDE.md +263 -0
- package/docs-live/taxonomy/categories.md +33 -0
- package/docs-live/taxonomy/format-types.md +67 -0
- package/docs-live/taxonomy/metadata-tags.md +693 -0
- package/docs-live/validation/error-catalog.md +78 -0
- package/docs-live/validation/fsm-transitions.md +50 -0
- package/docs-live/validation/protection-levels.md +51 -0
- package/package.json +233 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-generator @architect-infra
|
|
4
|
+
* @architect-pattern PipelineFactory
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-implements ProcessAPILayeredExtraction
|
|
7
|
+
* @architect-product-area DataAPI
|
|
8
|
+
* @architect-uses PatternScanner, GherkinScanner, DocExtractor, GherkinExtractor, MasterDataset
|
|
9
|
+
* @architect-convention pipeline-architecture
|
|
10
|
+
*
|
|
11
|
+
* ## Shared Pipeline Factory Responsibilities
|
|
12
|
+
*
|
|
13
|
+
* **Invariant:** `buildMasterDataset()` is the shared factory for Steps 1-8 of the
|
|
14
|
+
* architecture pipeline and returns `Result<PipelineResult, PipelineError>` without
|
|
15
|
+
* process-level side effects.
|
|
16
|
+
*
|
|
17
|
+
* **Rationale:** Centralizing scan/extract/merge/transform flow prevents divergence
|
|
18
|
+
* between CLI consumers and preserves a single ADR-006 read-model path.
|
|
19
|
+
*
|
|
20
|
+
* ## 8-Step Dataset Build Flow
|
|
21
|
+
*
|
|
22
|
+
* The factory owns: configuration load, TypeScript scan + extraction, Gherkin scan +
|
|
23
|
+
* extraction, merge conflict handling, hierarchy child derivation, workflow load,
|
|
24
|
+
* and `transformToMasterDataset` with validation summary.
|
|
25
|
+
*
|
|
26
|
+
* ## Consumer Architecture and PipelineOptions Differentiation
|
|
27
|
+
*
|
|
28
|
+
* Three consumers share this factory: `process-api`, `validate-patterns`, and the
|
|
29
|
+
* generation orchestrator. `PipelineOptions` differentiates behavior by
|
|
30
|
+
* `mergeConflictStrategy` (`fatal` vs `concatenate`), `includeValidation` toggles,
|
|
31
|
+
* and `failOnScanErrors` policy without forking pipeline logic.
|
|
32
|
+
*
|
|
33
|
+
* ### When to Use
|
|
34
|
+
*
|
|
35
|
+
* - Any consumer needs a MasterDataset without rewriting scan/extract/merge flow
|
|
36
|
+
* - CLI consumers require differentiated conflict strategy and validation behavior
|
|
37
|
+
* - Orchestrator needs a shared steps 1-8 implementation before codec/file execution
|
|
38
|
+
*/
|
|
39
|
+
import { Result } from '../../types/result.js';
|
|
40
|
+
import type { RuntimeMasterDataset, ValidationSummary } from './transform-types.js';
|
|
41
|
+
import type { ContextInferenceRule } from './context-inference.js';
|
|
42
|
+
/**
|
|
43
|
+
* Options for building a MasterDataset via the shared pipeline.
|
|
44
|
+
*
|
|
45
|
+
* DD-1: Factory lives at src/generators/pipeline/build-pipeline.ts.
|
|
46
|
+
* DD-2: mergeConflictStrategy controls per-consumer conflict handling.
|
|
47
|
+
* DD-3: exclude, contextInferenceRules support future orchestrator
|
|
48
|
+
* migration without breaking changes.
|
|
49
|
+
*
|
|
50
|
+
* @architect-shape master-dataset
|
|
51
|
+
*/
|
|
52
|
+
export interface PipelineOptions {
|
|
53
|
+
readonly input: readonly string[];
|
|
54
|
+
readonly features: readonly string[];
|
|
55
|
+
readonly baseDir: string;
|
|
56
|
+
readonly mergeConflictStrategy: 'fatal' | 'concatenate';
|
|
57
|
+
readonly exclude?: readonly string[];
|
|
58
|
+
readonly workflowPath?: string;
|
|
59
|
+
readonly contextInferenceRules?: readonly ContextInferenceRule[];
|
|
60
|
+
/** DD-3: When false, skip validation pass (default true). */
|
|
61
|
+
readonly includeValidation?: boolean;
|
|
62
|
+
/** DD-5: When true, return error on individual scan failures (default false). */
|
|
63
|
+
readonly failOnScanErrors?: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Structured error from the pipeline factory.
|
|
67
|
+
* Includes the step that failed so callers can provide targeted diagnostics.
|
|
68
|
+
*/
|
|
69
|
+
export interface PipelineError {
|
|
70
|
+
readonly step: string;
|
|
71
|
+
readonly message: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* DD-1: Detail for a pipeline warning (file-level diagnostic).
|
|
75
|
+
*/
|
|
76
|
+
export interface PipelineWarningDetail {
|
|
77
|
+
readonly file: string;
|
|
78
|
+
readonly line?: number;
|
|
79
|
+
readonly column?: number;
|
|
80
|
+
readonly message: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* DD-1: Structured pipeline warning replacing flat strings.
|
|
84
|
+
* Consumers can read `.message` for human-readable text.
|
|
85
|
+
*/
|
|
86
|
+
export interface PipelineWarning {
|
|
87
|
+
readonly type: 'scan' | 'extraction' | 'gherkin-parse';
|
|
88
|
+
readonly message: string;
|
|
89
|
+
readonly count?: number;
|
|
90
|
+
readonly details?: readonly PipelineWarningDetail[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* DD-4: Aggregate scan counts for reporting.
|
|
94
|
+
* Avoids exposing raw ScannedFile[] arrays.
|
|
95
|
+
*/
|
|
96
|
+
export interface ScanMetadata {
|
|
97
|
+
readonly scannedFileCount: number;
|
|
98
|
+
readonly scanErrorCount: number;
|
|
99
|
+
readonly skippedDirectiveCount: number;
|
|
100
|
+
readonly gherkinErrorCount: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Successful pipeline result containing the dataset and validation summary.
|
|
104
|
+
*
|
|
105
|
+
* @architect-shape master-dataset
|
|
106
|
+
*/
|
|
107
|
+
export interface PipelineResult {
|
|
108
|
+
readonly dataset: RuntimeMasterDataset;
|
|
109
|
+
readonly validation: ValidationSummary;
|
|
110
|
+
readonly warnings: readonly PipelineWarning[];
|
|
111
|
+
readonly scanMetadata: ScanMetadata;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Build a MasterDataset by executing the 8-step extraction pipeline.
|
|
115
|
+
*
|
|
116
|
+
* Returns Result<PipelineResult, PipelineError> so each consumer maps errors
|
|
117
|
+
* to its own strategy (process.exit, throw, etc.). Does not call process.exit
|
|
118
|
+
* or log to console.
|
|
119
|
+
*
|
|
120
|
+
* Steps:
|
|
121
|
+
* 1. Load configuration (discovers architect.config.ts)
|
|
122
|
+
* 2. Scan TypeScript source files
|
|
123
|
+
* 3. Extract patterns from TypeScript
|
|
124
|
+
* 4. Scan and extract Gherkin patterns
|
|
125
|
+
* 5. Merge patterns (conflict handling per mergeConflictStrategy)
|
|
126
|
+
* 6. Compute hierarchy children
|
|
127
|
+
* 7. Load workflow configuration
|
|
128
|
+
* 8. Transform to MasterDataset with validation
|
|
129
|
+
*/
|
|
130
|
+
export declare function buildMasterDataset(options: PipelineOptions): Promise<Result<PipelineResult, PipelineError>>;
|
|
131
|
+
//# sourceMappingURL=build-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-pipeline.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/build-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAoBH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAMnE;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,qBAAqB,EAAE,OAAO,GAAG,aAAa,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACjE,6DAA6D;IAC7D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,iFAAiF;IACjF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAoMhD"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-generator @architect-infra
|
|
4
|
+
* @architect-pattern PipelineFactory
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-implements ProcessAPILayeredExtraction
|
|
7
|
+
* @architect-product-area DataAPI
|
|
8
|
+
* @architect-uses PatternScanner, GherkinScanner, DocExtractor, GherkinExtractor, MasterDataset
|
|
9
|
+
* @architect-convention pipeline-architecture
|
|
10
|
+
*
|
|
11
|
+
* ## Shared Pipeline Factory Responsibilities
|
|
12
|
+
*
|
|
13
|
+
* **Invariant:** `buildMasterDataset()` is the shared factory for Steps 1-8 of the
|
|
14
|
+
* architecture pipeline and returns `Result<PipelineResult, PipelineError>` without
|
|
15
|
+
* process-level side effects.
|
|
16
|
+
*
|
|
17
|
+
* **Rationale:** Centralizing scan/extract/merge/transform flow prevents divergence
|
|
18
|
+
* between CLI consumers and preserves a single ADR-006 read-model path.
|
|
19
|
+
*
|
|
20
|
+
* ## 8-Step Dataset Build Flow
|
|
21
|
+
*
|
|
22
|
+
* The factory owns: configuration load, TypeScript scan + extraction, Gherkin scan +
|
|
23
|
+
* extraction, merge conflict handling, hierarchy child derivation, workflow load,
|
|
24
|
+
* and `transformToMasterDataset` with validation summary.
|
|
25
|
+
*
|
|
26
|
+
* ## Consumer Architecture and PipelineOptions Differentiation
|
|
27
|
+
*
|
|
28
|
+
* Three consumers share this factory: `process-api`, `validate-patterns`, and the
|
|
29
|
+
* generation orchestrator. `PipelineOptions` differentiates behavior by
|
|
30
|
+
* `mergeConflictStrategy` (`fatal` vs `concatenate`), `includeValidation` toggles,
|
|
31
|
+
* and `failOnScanErrors` policy without forking pipeline logic.
|
|
32
|
+
*
|
|
33
|
+
* ### When to Use
|
|
34
|
+
*
|
|
35
|
+
* - Any consumer needs a MasterDataset without rewriting scan/extract/merge flow
|
|
36
|
+
* - CLI consumers require differentiated conflict strategy and validation behavior
|
|
37
|
+
* - Orchestrator needs a shared steps 1-8 implementation before codec/file execution
|
|
38
|
+
*/
|
|
39
|
+
import * as path from 'path';
|
|
40
|
+
import { scanPatterns } from '../../scanner/index.js';
|
|
41
|
+
import { extractPatterns } from '../../extractor/doc-extractor.js';
|
|
42
|
+
import { scanGherkinFiles } from '../../scanner/gherkin-scanner.js';
|
|
43
|
+
import { extractPatternsFromGherkin, computeHierarchyChildren, } from '../../extractor/gherkin-extractor.js';
|
|
44
|
+
import { mergePatterns } from './merge-patterns.js';
|
|
45
|
+
import { loadConfig, formatConfigError } from '../../config/config-loader.js';
|
|
46
|
+
import { DEFAULT_CONTEXT_INFERENCE_RULES } from '../../config/defaults.js';
|
|
47
|
+
import { loadDefaultWorkflow, loadWorkflowFromPath } from '../../config/workflow-loader.js';
|
|
48
|
+
import { transformToMasterDataset, transformToMasterDatasetWithValidation, } from './transform-dataset.js';
|
|
49
|
+
import { Result } from '../../types/result.js';
|
|
50
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
51
|
+
// Pipeline Factory
|
|
52
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
53
|
+
/**
|
|
54
|
+
* Build a MasterDataset by executing the 8-step extraction pipeline.
|
|
55
|
+
*
|
|
56
|
+
* Returns Result<PipelineResult, PipelineError> so each consumer maps errors
|
|
57
|
+
* to its own strategy (process.exit, throw, etc.). Does not call process.exit
|
|
58
|
+
* or log to console.
|
|
59
|
+
*
|
|
60
|
+
* Steps:
|
|
61
|
+
* 1. Load configuration (discovers architect.config.ts)
|
|
62
|
+
* 2. Scan TypeScript source files
|
|
63
|
+
* 3. Extract patterns from TypeScript
|
|
64
|
+
* 4. Scan and extract Gherkin patterns
|
|
65
|
+
* 5. Merge patterns (conflict handling per mergeConflictStrategy)
|
|
66
|
+
* 6. Compute hierarchy children
|
|
67
|
+
* 7. Load workflow configuration
|
|
68
|
+
* 8. Transform to MasterDataset with validation
|
|
69
|
+
*/
|
|
70
|
+
export async function buildMasterDataset(options) {
|
|
71
|
+
const baseDir = path.resolve(options.baseDir);
|
|
72
|
+
const warnings = [];
|
|
73
|
+
// Step 1: Load configuration
|
|
74
|
+
const configResult = await loadConfig(baseDir);
|
|
75
|
+
if (!configResult.ok) {
|
|
76
|
+
return Result.err({
|
|
77
|
+
step: 'config',
|
|
78
|
+
message: formatConfigError(configResult.error),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const registry = configResult.value.instance.registry;
|
|
82
|
+
// Step 2: Scan TypeScript source files
|
|
83
|
+
const scanResult = await scanPatterns({
|
|
84
|
+
patterns: options.input,
|
|
85
|
+
baseDir,
|
|
86
|
+
...(options.exclude !== undefined ? { exclude: options.exclude } : {}),
|
|
87
|
+
}, registry);
|
|
88
|
+
if (!scanResult.ok) {
|
|
89
|
+
return Result.err({
|
|
90
|
+
step: 'scan-typescript',
|
|
91
|
+
message: String(scanResult.error),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
const { files: scannedFiles, errors: scanErrors, skippedDirectives } = scanResult.value;
|
|
95
|
+
// DD-5: failOnScanErrors — return error on individual file parse failures
|
|
96
|
+
if (options.failOnScanErrors === true && scanErrors.length > 0) {
|
|
97
|
+
return Result.err({
|
|
98
|
+
step: 'scan-typescript',
|
|
99
|
+
message: `${scanErrors.length} file${scanErrors.length === 1 ? '' : 's'} failed to scan`,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
// DD-1: Collect structured scan warnings
|
|
103
|
+
if (scanErrors.length > 0) {
|
|
104
|
+
warnings.push({
|
|
105
|
+
type: 'scan',
|
|
106
|
+
message: `Failed to scan ${scanErrors.length} files (syntax errors)`,
|
|
107
|
+
count: scanErrors.length,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (skippedDirectives.length > 0) {
|
|
111
|
+
warnings.push({
|
|
112
|
+
type: 'scan',
|
|
113
|
+
message: `Skipped ${skippedDirectives.length} invalid directives`,
|
|
114
|
+
count: skippedDirectives.length,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
// Step 3: Extract patterns from TypeScript
|
|
118
|
+
const extraction = extractPatterns(scannedFiles, baseDir, registry);
|
|
119
|
+
if (extraction.errors.length > 0) {
|
|
120
|
+
warnings.push({
|
|
121
|
+
type: 'extraction',
|
|
122
|
+
message: `${extraction.errors.length} TypeScript patterns had errors`,
|
|
123
|
+
count: extraction.errors.length,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
// Step 4: Scan and extract Gherkin patterns
|
|
127
|
+
let gherkinPatterns = [];
|
|
128
|
+
let gherkinErrorCount = 0;
|
|
129
|
+
if (options.features.length > 0) {
|
|
130
|
+
const gherkinScanResult = await scanGherkinFiles({
|
|
131
|
+
patterns: options.features,
|
|
132
|
+
baseDir,
|
|
133
|
+
...(options.exclude !== undefined ? { exclude: options.exclude } : {}),
|
|
134
|
+
});
|
|
135
|
+
if (gherkinScanResult.ok) {
|
|
136
|
+
const { files: gherkinFiles, errors: gherkinErrors } = gherkinScanResult.value;
|
|
137
|
+
gherkinErrorCount = gherkinErrors.length;
|
|
138
|
+
// DD-1: Gherkin parse errors with file/line/column detail
|
|
139
|
+
if (gherkinErrors.length > 0) {
|
|
140
|
+
warnings.push({
|
|
141
|
+
type: 'gherkin-parse',
|
|
142
|
+
message: `Failed to parse ${gherkinErrors.length} feature file${gherkinErrors.length === 1 ? '' : 's'}`,
|
|
143
|
+
count: gherkinErrors.length,
|
|
144
|
+
details: gherkinErrors.map((e) => ({
|
|
145
|
+
file: e.file,
|
|
146
|
+
// Use spread pattern for optional properties (exactOptionalPropertyTypes)
|
|
147
|
+
...(e.error.line !== undefined && { line: e.error.line }),
|
|
148
|
+
...(e.error.column !== undefined && { column: e.error.column }),
|
|
149
|
+
message: e.error.message,
|
|
150
|
+
})),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
// Extract patterns from Gherkin
|
|
154
|
+
const gherkinResult = extractPatternsFromGherkin(gherkinFiles, {
|
|
155
|
+
baseDir,
|
|
156
|
+
tagRegistry: registry,
|
|
157
|
+
scenariosAsUseCases: true,
|
|
158
|
+
});
|
|
159
|
+
gherkinPatterns = gherkinResult.patterns;
|
|
160
|
+
// DD-1: Gherkin extraction errors per pattern
|
|
161
|
+
if (gherkinResult.errors.length > 0) {
|
|
162
|
+
for (const error of gherkinResult.errors) {
|
|
163
|
+
const details = error.validationErrors !== undefined && error.validationErrors.length > 0
|
|
164
|
+
? ` [${error.validationErrors.join('; ')}]`
|
|
165
|
+
: '';
|
|
166
|
+
warnings.push({
|
|
167
|
+
type: 'extraction',
|
|
168
|
+
message: `${error.file}: ${error.patternName} - ${error.reason}${details}`,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Note: scanGherkinFiles returns Result<T, never> so it always succeeds
|
|
174
|
+
// Individual file errors are collected in gherkinScanResult.value.errors
|
|
175
|
+
}
|
|
176
|
+
// Step 5: Merge patterns (DD-2: conflict handling per strategy)
|
|
177
|
+
const mergeResult = mergePatterns(extraction.patterns, gherkinPatterns);
|
|
178
|
+
let allMerged;
|
|
179
|
+
if (mergeResult.ok) {
|
|
180
|
+
allMerged = mergeResult.value;
|
|
181
|
+
}
|
|
182
|
+
else if (options.mergeConflictStrategy === 'concatenate') {
|
|
183
|
+
// Validator behavior: fall back to concatenation on conflict (DD-2)
|
|
184
|
+
warnings.push({
|
|
185
|
+
type: 'scan',
|
|
186
|
+
message: `Pattern merge conflicts detected but concatenated per strategy: ${mergeResult.error}`,
|
|
187
|
+
});
|
|
188
|
+
allMerged = [...extraction.patterns, ...gherkinPatterns];
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// Fatal behavior: return error on conflict (DD-2)
|
|
192
|
+
return Result.err({
|
|
193
|
+
step: 'merge',
|
|
194
|
+
message: mergeResult.error,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
// Step 6: Compute hierarchy children
|
|
198
|
+
const allPatterns = computeHierarchyChildren(allMerged);
|
|
199
|
+
// Step 7: Load workflow configuration
|
|
200
|
+
let workflow;
|
|
201
|
+
if (options.workflowPath !== undefined) {
|
|
202
|
+
const workflowResult = await loadWorkflowFromPath(options.workflowPath);
|
|
203
|
+
if (!workflowResult.ok) {
|
|
204
|
+
return Result.err({
|
|
205
|
+
step: 'workflow',
|
|
206
|
+
message: workflowResult.error.message,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
workflow = workflowResult.value;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
workflow = loadDefaultWorkflow();
|
|
213
|
+
}
|
|
214
|
+
// DD-4: Build scan metadata for reporting
|
|
215
|
+
const scanMetadata = {
|
|
216
|
+
scannedFileCount: scannedFiles.length,
|
|
217
|
+
scanErrorCount: scanErrors.length,
|
|
218
|
+
skippedDirectiveCount: skippedDirectives.length,
|
|
219
|
+
gherkinErrorCount,
|
|
220
|
+
};
|
|
221
|
+
// Step 8: Transform to MasterDataset
|
|
222
|
+
// DD-3: includeValidation controls which transform path to use
|
|
223
|
+
const contextInferenceRules = options.contextInferenceRules ?? DEFAULT_CONTEXT_INFERENCE_RULES;
|
|
224
|
+
const rawDataset = {
|
|
225
|
+
patterns: allPatterns,
|
|
226
|
+
tagRegistry: registry,
|
|
227
|
+
workflow,
|
|
228
|
+
contextInferenceRules,
|
|
229
|
+
};
|
|
230
|
+
if (options.includeValidation === false) {
|
|
231
|
+
const dataset = transformToMasterDataset(rawDataset);
|
|
232
|
+
return Result.ok({
|
|
233
|
+
dataset,
|
|
234
|
+
validation: {
|
|
235
|
+
totalPatterns: allPatterns.length,
|
|
236
|
+
malformedPatterns: [],
|
|
237
|
+
danglingReferences: [],
|
|
238
|
+
unknownStatuses: [],
|
|
239
|
+
warningCount: 0,
|
|
240
|
+
},
|
|
241
|
+
warnings,
|
|
242
|
+
scanMetadata,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
const { dataset, validation } = transformToMasterDatasetWithValidation(rawDataset);
|
|
246
|
+
return Result.ok({ dataset, validation, warnings, scanMetadata });
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=build-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-pipeline.js","sourceRoot":"","sources":["../../../src/generators/pipeline/build-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-pattern ContextInferenceImpl
|
|
4
|
+
* @architect-status completed
|
|
5
|
+
* @architect-implements ContextInference
|
|
6
|
+
* @architect-arch-role utility
|
|
7
|
+
* @architect-arch-context generator
|
|
8
|
+
* @architect-arch-layer application
|
|
9
|
+
* @architect-used-by TransformDataset
|
|
10
|
+
*
|
|
11
|
+
* ## ContextInference - File Path Based Context Resolution
|
|
12
|
+
*
|
|
13
|
+
* Auto-infers bounded context from file paths using configurable rules.
|
|
14
|
+
* Reduces annotation redundancy when directory structure already implies
|
|
15
|
+
* the bounded context.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Rule for auto-inferring bounded context from file paths.
|
|
19
|
+
*
|
|
20
|
+
* When a pattern has an architecture layer (`@architect-arch-layer`) but no explicit
|
|
21
|
+
* context (`@architect-arch-context`), these rules can infer the context from the
|
|
22
|
+
* file path. This reduces annotation redundancy when directory structure already
|
|
23
|
+
* implies the bounded context.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const rules: ContextInferenceRule[] = [
|
|
28
|
+
* { pattern: 'src/validation/**', context: 'validation' },
|
|
29
|
+
* { pattern: 'src/lint/**', context: 'lint' },
|
|
30
|
+
* ];
|
|
31
|
+
* // File at src/validation/rules.ts will get archContext='validation' if not explicit
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export interface ContextInferenceRule {
|
|
35
|
+
/** Glob pattern to match file paths (e.g., 'src/validation/**') */
|
|
36
|
+
readonly pattern: string;
|
|
37
|
+
/** Default context name to assign when pattern matches */
|
|
38
|
+
readonly context: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Infer bounded context from file path using configured rules.
|
|
42
|
+
*
|
|
43
|
+
* Iterates through rules in order and returns the context from the first
|
|
44
|
+
* matching pattern. Returns undefined if no rules match.
|
|
45
|
+
*
|
|
46
|
+
* Pattern matching supports:
|
|
47
|
+
* - Simple prefix matching: `src/validation/` matches files in that directory
|
|
48
|
+
* - Glob-style wildcards: `src/validation/**` matches all files recursively
|
|
49
|
+
*
|
|
50
|
+
* @param filePath - The source file path to check
|
|
51
|
+
* @param rules - Ordered list of inference rules
|
|
52
|
+
* @returns The inferred context name, or undefined if no match
|
|
53
|
+
*/
|
|
54
|
+
export declare function inferContext(filePath: string, rules: readonly ContextInferenceRule[] | undefined): string | undefined;
|
|
55
|
+
//# sourceMappingURL=context-inference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-inference.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/context-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,GACjD,MAAM,GAAG,SAAS,CASpB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-pattern ContextInferenceImpl
|
|
4
|
+
* @architect-status completed
|
|
5
|
+
* @architect-implements ContextInference
|
|
6
|
+
* @architect-arch-role utility
|
|
7
|
+
* @architect-arch-context generator
|
|
8
|
+
* @architect-arch-layer application
|
|
9
|
+
* @architect-used-by TransformDataset
|
|
10
|
+
*
|
|
11
|
+
* ## ContextInference - File Path Based Context Resolution
|
|
12
|
+
*
|
|
13
|
+
* Auto-infers bounded context from file paths using configurable rules.
|
|
14
|
+
* Reduces annotation redundancy when directory structure already implies
|
|
15
|
+
* the bounded context.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Infer bounded context from file path using configured rules.
|
|
19
|
+
*
|
|
20
|
+
* Iterates through rules in order and returns the context from the first
|
|
21
|
+
* matching pattern. Returns undefined if no rules match.
|
|
22
|
+
*
|
|
23
|
+
* Pattern matching supports:
|
|
24
|
+
* - Simple prefix matching: `src/validation/` matches files in that directory
|
|
25
|
+
* - Glob-style wildcards: `src/validation/**` matches all files recursively
|
|
26
|
+
*
|
|
27
|
+
* @param filePath - The source file path to check
|
|
28
|
+
* @param rules - Ordered list of inference rules
|
|
29
|
+
* @returns The inferred context name, or undefined if no match
|
|
30
|
+
*/
|
|
31
|
+
export function inferContext(filePath, rules) {
|
|
32
|
+
if (!rules || rules.length === 0)
|
|
33
|
+
return undefined;
|
|
34
|
+
for (const rule of rules) {
|
|
35
|
+
if (matchPattern(filePath, rule.pattern)) {
|
|
36
|
+
return rule.context;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Simple pattern matching for file paths.
|
|
43
|
+
*
|
|
44
|
+
* Supports:
|
|
45
|
+
* - Exact prefix matching: `src/validation/` matches `src/validation/foo.ts`
|
|
46
|
+
* - Glob-style `**` wildcard: `src/validation/**` matches all files recursively
|
|
47
|
+
*
|
|
48
|
+
* @param filePath - The file path to check
|
|
49
|
+
* @param pattern - The pattern to match against
|
|
50
|
+
* @returns true if the file path matches the pattern
|
|
51
|
+
*/
|
|
52
|
+
function matchPattern(filePath, pattern) {
|
|
53
|
+
// Handle `**` wildcard patterns (recursive match)
|
|
54
|
+
if (pattern.endsWith('/**')) {
|
|
55
|
+
const prefix = pattern.slice(0, -3); // Remove '/**'
|
|
56
|
+
return hasPathPrefix(filePath, prefix);
|
|
57
|
+
}
|
|
58
|
+
// Handle `/*` wildcard patterns (single level match)
|
|
59
|
+
if (pattern.endsWith('/*')) {
|
|
60
|
+
const prefix = pattern.slice(0, -2); // Remove '/*'
|
|
61
|
+
if (!hasPathPrefix(filePath, prefix)) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
const afterPrefix = filePath.slice(prefix.length + 1);
|
|
65
|
+
return afterPrefix.length > 0 && !afterPrefix.includes('/');
|
|
66
|
+
}
|
|
67
|
+
// Simple prefix matching
|
|
68
|
+
if (pattern.endsWith('/')) {
|
|
69
|
+
return hasPathPrefix(filePath, pattern.slice(0, -1));
|
|
70
|
+
}
|
|
71
|
+
return filePath === pattern || filePath.startsWith(`${pattern}/`);
|
|
72
|
+
}
|
|
73
|
+
function hasPathPrefix(filePath, prefix) {
|
|
74
|
+
return filePath === prefix || filePath.startsWith(`${prefix}/`);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=context-inference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-inference.js","sourceRoot":"","sources":["../../../src/generators/pipeline/context-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0BH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,KAAkD;IAElD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,QAAgB,EAAE,OAAe;IACrD,kDAAkD;IAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QACpD,OAAO,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,qDAAqD;IACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;QACnD,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,yBAAyB;IACzB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,MAAc;IACrD,OAAO,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-generator @architect-infra
|
|
4
|
+
* @architect-pattern PipelineModule
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-uses TransformDataset
|
|
7
|
+
* @architect-used-by Orchestrator, Generators
|
|
8
|
+
*
|
|
9
|
+
* ## Pipeline Module - Unified Transformation Infrastructure
|
|
10
|
+
*
|
|
11
|
+
* Barrel export for the unified transformation pipeline components.
|
|
12
|
+
* This module provides single-pass pattern transformation.
|
|
13
|
+
*
|
|
14
|
+
* ### When to Use
|
|
15
|
+
*
|
|
16
|
+
* - When transforming extracted patterns into a MasterDataset
|
|
17
|
+
* - When building custom generation pipelines
|
|
18
|
+
* - When accessing pre-computed indexes and views from the dataset
|
|
19
|
+
*
|
|
20
|
+
* NOTE: Report codecs have been replaced by RDM codecs in src/renderable/codecs/
|
|
21
|
+
*/
|
|
22
|
+
export { transformToMasterDataset, transformToMasterDatasetWithValidation, completionPercentage, isFullyCompleted, } from './transform-dataset.js';
|
|
23
|
+
export type { ContextInferenceRule } from './context-inference.js';
|
|
24
|
+
export type { RawDataset, RuntimeMasterDataset, ValidationSummary, MalformedPattern, DanglingReference, TransformResult, } from './transform-types.js';
|
|
25
|
+
export { mergePatterns } from './merge-patterns.js';
|
|
26
|
+
export { buildMasterDataset, type PipelineOptions, type PipelineResult, type PipelineError, type PipelineWarning, type PipelineWarningDetail, type ScanMetadata, } from './build-pipeline.js';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,EACL,wBAAwB,EACxB,sCAAsC,EACtC,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,EACL,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-generator @architect-infra
|
|
4
|
+
* @architect-pattern PipelineModule
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-uses TransformDataset
|
|
7
|
+
* @architect-used-by Orchestrator, Generators
|
|
8
|
+
*
|
|
9
|
+
* ## Pipeline Module - Unified Transformation Infrastructure
|
|
10
|
+
*
|
|
11
|
+
* Barrel export for the unified transformation pipeline components.
|
|
12
|
+
* This module provides single-pass pattern transformation.
|
|
13
|
+
*
|
|
14
|
+
* ### When to Use
|
|
15
|
+
*
|
|
16
|
+
* - When transforming extracted patterns into a MasterDataset
|
|
17
|
+
* - When building custom generation pipelines
|
|
18
|
+
* - When accessing pre-computed indexes and views from the dataset
|
|
19
|
+
*
|
|
20
|
+
* NOTE: Report codecs have been replaced by RDM codecs in src/renderable/codecs/
|
|
21
|
+
*/
|
|
22
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
23
|
+
// Transform Dataset
|
|
24
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
25
|
+
export { transformToMasterDataset, transformToMasterDatasetWithValidation, completionPercentage, isFullyCompleted, } from './transform-dataset.js';
|
|
26
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
27
|
+
// Merge Patterns
|
|
28
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
29
|
+
export { mergePatterns } from './merge-patterns.js';
|
|
30
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
31
|
+
// Pipeline Factory
|
|
32
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
33
|
+
export { buildMasterDataset, } from './build-pipeline.js';
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,OAAO,EACL,wBAAwB,EACxB,sCAAsC,EACtC,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAahC,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,EACL,kBAAkB,GAOnB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-generator @architect-infra
|
|
4
|
+
* @architect-pattern MergePatterns
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-implements OrchestratorPipelineFactoryMigration
|
|
7
|
+
* @architect-product-area Generation
|
|
8
|
+
* @architect-uses PatternHelpers
|
|
9
|
+
*
|
|
10
|
+
* ## MergePatterns - Dual-Source Pattern Merging
|
|
11
|
+
*
|
|
12
|
+
* Merges patterns from TypeScript and Gherkin sources with conflict detection.
|
|
13
|
+
* Each pattern name must be unique across both sources.
|
|
14
|
+
*
|
|
15
|
+
* Target: src/generators/pipeline/merge-patterns.ts
|
|
16
|
+
* See: DD-2 (OrchestratorPipelineFactoryMigration)
|
|
17
|
+
*
|
|
18
|
+
* **When to Use:** When combining TypeScript and Gherkin extracted patterns into a single list with conflict detection.
|
|
19
|
+
*/
|
|
20
|
+
import type { ExtractedPattern } from '../../validation-schemas/index.js';
|
|
21
|
+
import type { Result } from '../../types/result.js';
|
|
22
|
+
/**
|
|
23
|
+
* Merge patterns from TypeScript and Gherkin sources with conflict detection
|
|
24
|
+
*
|
|
25
|
+
* Exported for testing purposes - allows direct unit testing of merge logic
|
|
26
|
+
* without running the full pipeline.
|
|
27
|
+
*
|
|
28
|
+
* @param tsPatterns - Patterns extracted from TypeScript files
|
|
29
|
+
* @param gherkinPatterns - Patterns extracted from Gherkin feature files
|
|
30
|
+
* @returns Result containing merged patterns or error if conflicts detected
|
|
31
|
+
*/
|
|
32
|
+
export declare function mergePatterns(tsPatterns: readonly ExtractedPattern[], gherkinPatterns: readonly ExtractedPattern[]): Result<readonly ExtractedPattern[], string>;
|
|
33
|
+
//# sourceMappingURL=merge-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-patterns.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/merge-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,SAAS,gBAAgB,EAAE,EACvC,eAAe,EAAE,SAAS,gBAAgB,EAAE,GAC3C,MAAM,CAAC,SAAS,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAuB7C"}
|