@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,50 @@
|
|
|
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 { Result as R } from '../../types/result.js';
|
|
21
|
+
import { getPatternName } from '../../api/pattern-helpers.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 function mergePatterns(tsPatterns, gherkinPatterns) {
|
|
33
|
+
// Check for conflicts (same pattern name in both sources)
|
|
34
|
+
const conflicts = [];
|
|
35
|
+
const tsPatternNames = new Set(tsPatterns.map((p) => getPatternName(p)));
|
|
36
|
+
for (const gherkinPattern of gherkinPatterns) {
|
|
37
|
+
const patternName = getPatternName(gherkinPattern);
|
|
38
|
+
if (tsPatternNames.has(patternName)) {
|
|
39
|
+
conflicts.push(patternName);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (conflicts.length > 0) {
|
|
43
|
+
return R.err(`Pattern conflicts detected: ${conflicts.join(', ')}. ` +
|
|
44
|
+
`These patterns are defined in both TypeScript and Gherkin sources. ` +
|
|
45
|
+
`Each pattern should only be defined in one source.`);
|
|
46
|
+
}
|
|
47
|
+
// No conflicts - merge patterns
|
|
48
|
+
return R.ok([...tsPatterns, ...gherkinPatterns]);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=merge-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-patterns.js","sourceRoot":"","sources":["../../../src/generators/pipeline/merge-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAuC,EACvC,eAA4C;IAE5C,0DAA0D;IAC1D,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,GAAG,CACV,+BAA+B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACrD,qEAAqE;YACrE,oDAAoD,CACvD,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-pattern RelationshipResolver
|
|
4
|
+
* @architect-status active
|
|
5
|
+
* @architect-arch-role service
|
|
6
|
+
* @architect-arch-context generator
|
|
7
|
+
* @architect-arch-layer application
|
|
8
|
+
* @architect-used-by TransformDataset
|
|
9
|
+
* @architect-uses ExtractedPattern, RelationshipEntry, ImplementationRef, PatternHelpers
|
|
10
|
+
*
|
|
11
|
+
* ## RelationshipResolver - Reverse Lookup and Dangling Reference Detection
|
|
12
|
+
*
|
|
13
|
+
* Computes reverse relationship lookups (implementedBy, extendedBy, enables, usedBy)
|
|
14
|
+
* and detects dangling references in the pattern graph. These are the 2nd and 3rd
|
|
15
|
+
* passes of the MasterDataset transformation pipeline.
|
|
16
|
+
*/
|
|
17
|
+
import type { ExtractedPattern } from '../../validation-schemas/index.js';
|
|
18
|
+
import type { RelationshipEntry } from '../../validation-schemas/master-dataset.js';
|
|
19
|
+
import type { DanglingReference } from './transform-types.js';
|
|
20
|
+
/**
|
|
21
|
+
* Build reverse lookups for relationship index entries.
|
|
22
|
+
*
|
|
23
|
+
* Iterates over patterns to compute:
|
|
24
|
+
* - implementedBy: which patterns implement this pattern (with file + description)
|
|
25
|
+
* - extendedBy: which patterns extend this pattern
|
|
26
|
+
* - enables: which patterns depend on this pattern (reverse of dependsOn)
|
|
27
|
+
* - usedBy: which patterns use this pattern (reverse of uses)
|
|
28
|
+
*
|
|
29
|
+
* Mutates the `relationshipIndex` entries in place, then sorts reverse-computed
|
|
30
|
+
* arrays for consistent output ordering.
|
|
31
|
+
*
|
|
32
|
+
* @param patterns - All extracted patterns
|
|
33
|
+
* @param relationshipIndex - Mutable relationship index (entries are mutated)
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildReverseLookups(patterns: readonly ExtractedPattern[], relationshipIndex: Record<string, RelationshipEntry>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Detect dangling references in pattern relationship fields.
|
|
38
|
+
*
|
|
39
|
+
* Checks uses, dependsOn, implementsPatterns, extendsPattern, and seeAlso
|
|
40
|
+
* fields for references to patterns that don't exist in the dataset.
|
|
41
|
+
*
|
|
42
|
+
* @param patterns - All extracted patterns
|
|
43
|
+
* @param allPatternNames - Set of all valid pattern names
|
|
44
|
+
* @returns Array of dangling references found
|
|
45
|
+
*/
|
|
46
|
+
export declare function detectDanglingReferences(patterns: readonly ExtractedPattern[], allPatternNames: ReadonlySet<string>): DanglingReference[];
|
|
47
|
+
//# sourceMappingURL=relationship-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationship-resolver.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/relationship-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GACnD,IAAI,CAgEN;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,GACnC,iBAAiB,EAAE,CAwCrB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-pattern RelationshipResolver
|
|
4
|
+
* @architect-status active
|
|
5
|
+
* @architect-arch-role service
|
|
6
|
+
* @architect-arch-context generator
|
|
7
|
+
* @architect-arch-layer application
|
|
8
|
+
* @architect-used-by TransformDataset
|
|
9
|
+
* @architect-uses ExtractedPattern, RelationshipEntry, ImplementationRef, PatternHelpers
|
|
10
|
+
*
|
|
11
|
+
* ## RelationshipResolver - Reverse Lookup and Dangling Reference Detection
|
|
12
|
+
*
|
|
13
|
+
* Computes reverse relationship lookups (implementedBy, extendedBy, enables, usedBy)
|
|
14
|
+
* and detects dangling references in the pattern graph. These are the 2nd and 3rd
|
|
15
|
+
* passes of the MasterDataset transformation pipeline.
|
|
16
|
+
*/
|
|
17
|
+
import { getPatternName } from '../../api/pattern-helpers.js';
|
|
18
|
+
/**
|
|
19
|
+
* Build reverse lookups for relationship index entries.
|
|
20
|
+
*
|
|
21
|
+
* Iterates over patterns to compute:
|
|
22
|
+
* - implementedBy: which patterns implement this pattern (with file + description)
|
|
23
|
+
* - extendedBy: which patterns extend this pattern
|
|
24
|
+
* - enables: which patterns depend on this pattern (reverse of dependsOn)
|
|
25
|
+
* - usedBy: which patterns use this pattern (reverse of uses)
|
|
26
|
+
*
|
|
27
|
+
* Mutates the `relationshipIndex` entries in place, then sorts reverse-computed
|
|
28
|
+
* arrays for consistent output ordering.
|
|
29
|
+
*
|
|
30
|
+
* @param patterns - All extracted patterns
|
|
31
|
+
* @param relationshipIndex - Mutable relationship index (entries are mutated)
|
|
32
|
+
*/
|
|
33
|
+
export function buildReverseLookups(patterns, relationshipIndex) {
|
|
34
|
+
for (const pattern of patterns) {
|
|
35
|
+
const patternKey = getPatternName(pattern);
|
|
36
|
+
const entry = relationshipIndex[patternKey];
|
|
37
|
+
if (!entry)
|
|
38
|
+
continue;
|
|
39
|
+
// Build implementedBy reverse lookup with full ImplementationRef
|
|
40
|
+
for (const implemented of entry.implementsPatterns) {
|
|
41
|
+
const target = relationshipIndex[implemented];
|
|
42
|
+
if (target) {
|
|
43
|
+
const alreadyAdded = target.implementedBy.some((impl) => impl.name === patternKey);
|
|
44
|
+
if (!alreadyAdded) {
|
|
45
|
+
const desc = pattern.directive.description;
|
|
46
|
+
const firstLine = desc ? desc.split('\n')[0]?.trim() : undefined;
|
|
47
|
+
const description = firstLine && firstLine.length > 0
|
|
48
|
+
? firstLine.slice(0, 100) + (firstLine.length > 100 ? '...' : '')
|
|
49
|
+
: undefined;
|
|
50
|
+
target.implementedBy.push({
|
|
51
|
+
name: patternKey,
|
|
52
|
+
file: pattern.source.file,
|
|
53
|
+
description,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Build extendedBy reverse lookup
|
|
59
|
+
if (entry.extendsPattern) {
|
|
60
|
+
const target = relationshipIndex[entry.extendsPattern];
|
|
61
|
+
if (target && !target.extendedBy.includes(patternKey)) {
|
|
62
|
+
target.extendedBy.push(patternKey);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Build enables reverse lookup (dependsOn -> enables)
|
|
66
|
+
for (const dep of entry.dependsOn) {
|
|
67
|
+
const target = relationshipIndex[dep];
|
|
68
|
+
if (target && !target.enables.includes(patternKey)) {
|
|
69
|
+
target.enables.push(patternKey);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Build usedBy reverse lookup (uses -> usedBy)
|
|
73
|
+
for (const used of entry.uses) {
|
|
74
|
+
const target = relationshipIndex[used];
|
|
75
|
+
if (target && !target.usedBy.includes(patternKey)) {
|
|
76
|
+
target.usedBy.push(patternKey);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Sort reverse-computed arrays for consistent output
|
|
81
|
+
for (const entry of Object.values(relationshipIndex)) {
|
|
82
|
+
entry.implementedBy.sort((a, b) => a.file.localeCompare(b.file));
|
|
83
|
+
entry.extendedBy.sort((a, b) => a.localeCompare(b));
|
|
84
|
+
entry.enables.sort((a, b) => a.localeCompare(b));
|
|
85
|
+
entry.usedBy.sort((a, b) => a.localeCompare(b));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Detect dangling references in pattern relationship fields.
|
|
90
|
+
*
|
|
91
|
+
* Checks uses, dependsOn, implementsPatterns, extendsPattern, and seeAlso
|
|
92
|
+
* fields for references to patterns that don't exist in the dataset.
|
|
93
|
+
*
|
|
94
|
+
* @param patterns - All extracted patterns
|
|
95
|
+
* @param allPatternNames - Set of all valid pattern names
|
|
96
|
+
* @returns Array of dangling references found
|
|
97
|
+
*/
|
|
98
|
+
export function detectDanglingReferences(patterns, allPatternNames) {
|
|
99
|
+
const danglingReferences = [];
|
|
100
|
+
for (const pattern of patterns) {
|
|
101
|
+
const patternKey = getPatternName(pattern);
|
|
102
|
+
for (const ref of pattern.uses ?? []) {
|
|
103
|
+
if (!allPatternNames.has(ref)) {
|
|
104
|
+
danglingReferences.push({ pattern: patternKey, field: 'uses', missing: ref });
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
for (const ref of pattern.dependsOn ?? []) {
|
|
108
|
+
if (!allPatternNames.has(ref)) {
|
|
109
|
+
danglingReferences.push({ pattern: patternKey, field: 'dependsOn', missing: ref });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
for (const ref of pattern.implementsPatterns ?? []) {
|
|
113
|
+
if (!allPatternNames.has(ref)) {
|
|
114
|
+
danglingReferences.push({ pattern: patternKey, field: 'implementsPatterns', missing: ref });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (pattern.extendsPattern && !allPatternNames.has(pattern.extendsPattern)) {
|
|
118
|
+
danglingReferences.push({
|
|
119
|
+
pattern: patternKey,
|
|
120
|
+
field: 'extendsPattern',
|
|
121
|
+
missing: pattern.extendsPattern,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
for (const ref of pattern.seeAlso ?? []) {
|
|
125
|
+
if (!allPatternNames.has(ref)) {
|
|
126
|
+
danglingReferences.push({ pattern: patternKey, field: 'seeAlso', missing: ref });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return danglingReferences;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=relationship-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationship-resolver.js","sourceRoot":"","sources":["../../../src/generators/pipeline/relationship-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern SequenceTransformUtils
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-implements DesignReviewGeneration
|
|
7
|
+
* @architect-arch-role service
|
|
8
|
+
* @architect-arch-context generator
|
|
9
|
+
* @architect-arch-layer application
|
|
10
|
+
* @architect-include pipeline-stages
|
|
11
|
+
* @architect-uses MasterDataset, ExtractedPattern
|
|
12
|
+
* @architect-product-area:Generation
|
|
13
|
+
*
|
|
14
|
+
* ## SequenceTransformUtils - Sequence Index Builder
|
|
15
|
+
*
|
|
16
|
+
* Builds pre-computed SequenceIndexEntry objects from patterns that have
|
|
17
|
+
* sequence diagram annotations. Used during the single-pass transform to
|
|
18
|
+
* populate MasterDataset.sequenceIndex.
|
|
19
|
+
*
|
|
20
|
+
* ### Layer Boundary
|
|
21
|
+
*
|
|
22
|
+
* This module intentionally duplicates the Input/Output/Invariant regex
|
|
23
|
+
* patterns from parseBusinessRuleAnnotations (renderable/codecs/helpers.ts)
|
|
24
|
+
* to avoid a cross-layer dependency from pipeline → codec. The regexes are
|
|
25
|
+
* simple (3 patterns) and stable.
|
|
26
|
+
*/
|
|
27
|
+
import type { BusinessRule } from '../../validation-schemas/extracted-pattern.js';
|
|
28
|
+
import type { SequenceIndexEntry } from '../../validation-schemas/master-dataset.js';
|
|
29
|
+
export interface SequenceIndexBuildResult {
|
|
30
|
+
readonly entry: SequenceIndexEntry | undefined;
|
|
31
|
+
readonly issues: readonly string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Build a SequenceIndexEntry from a pattern's orchestrator and business rules.
|
|
35
|
+
*
|
|
36
|
+
* Returns undefined if no rules have sequence-step tags (the pattern has an
|
|
37
|
+
* orchestrator annotation but no step-annotated rules).
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildSequenceIndexEntry(orchestrator: string, rules: readonly BusinessRule[]): SequenceIndexEntry | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Build a SequenceIndexEntry and collect validation issues for malformed annotations.
|
|
42
|
+
*
|
|
43
|
+
* Returns:
|
|
44
|
+
* - `entry` when the sequence annotations are valid
|
|
45
|
+
* - `issues` when step-tagged rules are ambiguous or incomplete
|
|
46
|
+
* - no entry and no issues when no rules have sequence-step tags
|
|
47
|
+
*/
|
|
48
|
+
export declare function buildSequenceIndexEntryWithValidation(orchestrator: string, rules: readonly BusinessRule[]): SequenceIndexBuildResult;
|
|
49
|
+
//# sourceMappingURL=sequence-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence-utils.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/sequence-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAwDnG,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAuFD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,SAAS,YAAY,EAAE,GAC7B,kBAAkB,GAAG,SAAS,CAEhC;AAED;;;;;;;GAOG;AACH,wBAAgB,qCAAqC,CACnD,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,SAAS,YAAY,EAAE,GAC7B,wBAAwB,CA2G1B"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern SequenceTransformUtils
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-implements DesignReviewGeneration
|
|
7
|
+
* @architect-arch-role service
|
|
8
|
+
* @architect-arch-context generator
|
|
9
|
+
* @architect-arch-layer application
|
|
10
|
+
* @architect-include pipeline-stages
|
|
11
|
+
* @architect-uses MasterDataset, ExtractedPattern
|
|
12
|
+
* @architect-product-area:Generation
|
|
13
|
+
*
|
|
14
|
+
* ## SequenceTransformUtils - Sequence Index Builder
|
|
15
|
+
*
|
|
16
|
+
* Builds pre-computed SequenceIndexEntry objects from patterns that have
|
|
17
|
+
* sequence diagram annotations. Used during the single-pass transform to
|
|
18
|
+
* populate MasterDataset.sequenceIndex.
|
|
19
|
+
*
|
|
20
|
+
* ### Layer Boundary
|
|
21
|
+
*
|
|
22
|
+
* This module intentionally duplicates the Input/Output/Invariant regex
|
|
23
|
+
* patterns from parseBusinessRuleAnnotations (renderable/codecs/helpers.ts)
|
|
24
|
+
* to avoid a cross-layer dependency from pipeline → codec. The regexes are
|
|
25
|
+
* simple (3 patterns) and stable.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Parse sequence-step and sequence-module from a rule's tag array.
|
|
29
|
+
*
|
|
30
|
+
* Tags arrive normalized (without @architect- prefix) from the scanner.
|
|
31
|
+
*/
|
|
32
|
+
function parseRuleSequenceTags(tags) {
|
|
33
|
+
let step;
|
|
34
|
+
const modules = [];
|
|
35
|
+
for (const tag of tags) {
|
|
36
|
+
if (tag.startsWith('sequence-step:')) {
|
|
37
|
+
const parsed = parseInt(tag.split(':')[1] ?? '', 10);
|
|
38
|
+
if (!Number.isNaN(parsed)) {
|
|
39
|
+
step = parsed;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (tag.startsWith('sequence-module:')) {
|
|
43
|
+
const value = tag.split(':')[1] ?? '';
|
|
44
|
+
modules.push(...value
|
|
45
|
+
.split(',')
|
|
46
|
+
.map((m) => m.trim())
|
|
47
|
+
.filter(Boolean));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return { step, modules };
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Extract Input, Output, and Invariant from a rule description.
|
|
54
|
+
*
|
|
55
|
+
* Duplicates the regex patterns from parseBusinessRuleAnnotations in
|
|
56
|
+
* renderable/codecs/helpers.ts to avoid a cross-layer import.
|
|
57
|
+
*/
|
|
58
|
+
function parseSequenceAnnotations(description) {
|
|
59
|
+
let input;
|
|
60
|
+
let output;
|
|
61
|
+
let invariant;
|
|
62
|
+
const invariantPattern = /\*\*Invariant:\*\*\s*([\s\S]*?)(?=\*\*[A-Z]|\*\*$|$)/i;
|
|
63
|
+
const invariantMatch = invariantPattern.exec(description);
|
|
64
|
+
if (invariantMatch?.[1]) {
|
|
65
|
+
invariant = invariantMatch[1]
|
|
66
|
+
.replace(/\n\s*\n/g, ' ')
|
|
67
|
+
.replace(/\s+/g, ' ')
|
|
68
|
+
.trim();
|
|
69
|
+
}
|
|
70
|
+
const inputPattern = /\*\*Input:\*\*\s*([\s\S]*?)(?=\*\*[A-Z]|\*\*$|$)/i;
|
|
71
|
+
const inputMatch = inputPattern.exec(description);
|
|
72
|
+
if (inputMatch?.[1]) {
|
|
73
|
+
input = inputMatch[1]
|
|
74
|
+
.replace(/\n\s*\n/g, ' ')
|
|
75
|
+
.replace(/\s+/g, ' ')
|
|
76
|
+
.trim();
|
|
77
|
+
}
|
|
78
|
+
const outputPattern = /\*\*Output:\*\*\s*([\s\S]*?)(?=\*\*[A-Z]|\*\*$|$)/i;
|
|
79
|
+
const outputMatch = outputPattern.exec(description);
|
|
80
|
+
if (outputMatch?.[1]) {
|
|
81
|
+
output = outputMatch[1]
|
|
82
|
+
.replace(/\n\s*\n/g, ' ')
|
|
83
|
+
.replace(/\s+/g, ' ')
|
|
84
|
+
.trim();
|
|
85
|
+
}
|
|
86
|
+
return { input, output, invariant };
|
|
87
|
+
}
|
|
88
|
+
// =============================================================================
|
|
89
|
+
// Data Flow Type Extraction
|
|
90
|
+
// =============================================================================
|
|
91
|
+
/**
|
|
92
|
+
* Extract the type name from an Input or Output annotation string.
|
|
93
|
+
*
|
|
94
|
+
* Format: "TypeName -- field1, field2, field3" → "TypeName"
|
|
95
|
+
* Or just: "TypeName" → "TypeName"
|
|
96
|
+
*/
|
|
97
|
+
function extractTypeName(annotation) {
|
|
98
|
+
const dashIndex = annotation.indexOf('--');
|
|
99
|
+
if (dashIndex >= 0) {
|
|
100
|
+
return annotation.slice(0, dashIndex).trim();
|
|
101
|
+
}
|
|
102
|
+
return annotation.trim();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Decide whether an annotation should contribute to dataFlowTypes.
|
|
106
|
+
*
|
|
107
|
+
* Keeps structured type declarations (`TypeName -- fields`), bare identifiers,
|
|
108
|
+
* and type-ish parameter signatures such as `targetDir: string`, while excluding
|
|
109
|
+
* prose outputs like "package.json updated with process and docs scripts".
|
|
110
|
+
*/
|
|
111
|
+
function extractDataFlowTypeName(annotation) {
|
|
112
|
+
const trimmed = annotation.trim();
|
|
113
|
+
if (trimmed.length === 0)
|
|
114
|
+
return undefined;
|
|
115
|
+
if (trimmed.includes('--')) {
|
|
116
|
+
return extractTypeName(trimmed);
|
|
117
|
+
}
|
|
118
|
+
if (!/\s/.test(trimmed)) {
|
|
119
|
+
return trimmed;
|
|
120
|
+
}
|
|
121
|
+
return /[:<>{}\[\]|&()]/.test(trimmed) ? trimmed : undefined;
|
|
122
|
+
}
|
|
123
|
+
// =============================================================================
|
|
124
|
+
// Index Builder
|
|
125
|
+
// =============================================================================
|
|
126
|
+
/**
|
|
127
|
+
* Build a SequenceIndexEntry from a pattern's orchestrator and business rules.
|
|
128
|
+
*
|
|
129
|
+
* Returns undefined if no rules have sequence-step tags (the pattern has an
|
|
130
|
+
* orchestrator annotation but no step-annotated rules).
|
|
131
|
+
*/
|
|
132
|
+
export function buildSequenceIndexEntry(orchestrator, rules) {
|
|
133
|
+
return buildSequenceIndexEntryWithValidation(orchestrator, rules).entry;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Build a SequenceIndexEntry and collect validation issues for malformed annotations.
|
|
137
|
+
*
|
|
138
|
+
* Returns:
|
|
139
|
+
* - `entry` when the sequence annotations are valid
|
|
140
|
+
* - `issues` when step-tagged rules are ambiguous or incomplete
|
|
141
|
+
* - no entry and no issues when no rules have sequence-step tags
|
|
142
|
+
*/
|
|
143
|
+
export function buildSequenceIndexEntryWithValidation(orchestrator, rules) {
|
|
144
|
+
const steps = [];
|
|
145
|
+
const parsedRules = [];
|
|
146
|
+
const stepNumbers = new Map();
|
|
147
|
+
const issues = [];
|
|
148
|
+
for (const rule of rules) {
|
|
149
|
+
if (!rule.tags || rule.tags.length === 0)
|
|
150
|
+
continue;
|
|
151
|
+
const { step, modules } = parseRuleSequenceTags(rule.tags);
|
|
152
|
+
if (step === undefined)
|
|
153
|
+
continue;
|
|
154
|
+
if (modules.length === 0) {
|
|
155
|
+
issues.push(`Rule "${rule.name}" has @architect-sequence-step:${String(step)} but no @architect-sequence-module values`);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
const annotations = parseSequenceAnnotations(rule.description);
|
|
159
|
+
const rulesForStep = stepNumbers.get(step) ?? [];
|
|
160
|
+
rulesForStep.push(rule.name);
|
|
161
|
+
stepNumbers.set(step, rulesForStep);
|
|
162
|
+
parsedRules.push({
|
|
163
|
+
stepNumber: step,
|
|
164
|
+
ruleName: rule.name,
|
|
165
|
+
modules,
|
|
166
|
+
annotations,
|
|
167
|
+
errorScenarios: rule.errorScenarioNames ?? [],
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
for (const [stepNumber, ruleNames] of stepNumbers.entries()) {
|
|
171
|
+
if (ruleNames.length > 1) {
|
|
172
|
+
issues.push(`Duplicate @architect-sequence-step:${String(stepNumber)} used by rules: ${ruleNames.join(', ')}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (issues.length > 0) {
|
|
176
|
+
return { entry: undefined, issues };
|
|
177
|
+
}
|
|
178
|
+
if (parsedRules.length === 0) {
|
|
179
|
+
return { entry: undefined, issues: [] };
|
|
180
|
+
}
|
|
181
|
+
for (const parsedRule of parsedRules) {
|
|
182
|
+
steps.push({
|
|
183
|
+
stepNumber: parsedRule.stepNumber,
|
|
184
|
+
ruleName: parsedRule.ruleName,
|
|
185
|
+
modules: [...parsedRule.modules],
|
|
186
|
+
input: parsedRule.annotations.input,
|
|
187
|
+
output: parsedRule.annotations.output,
|
|
188
|
+
invariant: parsedRule.annotations.invariant,
|
|
189
|
+
errorScenarios: [...parsedRule.errorScenarios],
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
// Sort by step number
|
|
193
|
+
steps.sort((a, b) => a.stepNumber - b.stepNumber);
|
|
194
|
+
// Deduplicate participants: orchestrator first, then modules in step order
|
|
195
|
+
const seen = new Set([orchestrator]);
|
|
196
|
+
const participants = [orchestrator];
|
|
197
|
+
for (const step of steps) {
|
|
198
|
+
for (const mod of step.modules) {
|
|
199
|
+
if (!seen.has(mod)) {
|
|
200
|
+
seen.add(mod);
|
|
201
|
+
participants.push(mod);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// Collect all error scenario names
|
|
206
|
+
const errorPaths = steps.flatMap((s) => s.errorScenarios);
|
|
207
|
+
// Collect distinct data flow type names from Input/Output
|
|
208
|
+
const typeNames = new Set();
|
|
209
|
+
for (const step of steps) {
|
|
210
|
+
if (step.input) {
|
|
211
|
+
const inputType = extractDataFlowTypeName(step.input);
|
|
212
|
+
if (inputType) {
|
|
213
|
+
typeNames.add(inputType);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
if (step.output) {
|
|
217
|
+
const outputType = extractDataFlowTypeName(step.output);
|
|
218
|
+
if (outputType) {
|
|
219
|
+
typeNames.add(outputType);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
const dataFlowTypes = [...typeNames];
|
|
224
|
+
return {
|
|
225
|
+
entry: {
|
|
226
|
+
orchestrator,
|
|
227
|
+
steps,
|
|
228
|
+
participants,
|
|
229
|
+
errorPaths,
|
|
230
|
+
dataFlowTypes,
|
|
231
|
+
},
|
|
232
|
+
issues: [],
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=sequence-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence-utils.js","sourceRoot":"","sources":["../../../src/generators/pipeline/sequence-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-generator @architect-core
|
|
4
|
+
* @architect-pattern TransformDataset
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-implements PatternRelationshipModel
|
|
7
|
+
* @architect-arch-role service
|
|
8
|
+
* @architect-arch-context generator
|
|
9
|
+
* @architect-arch-layer application
|
|
10
|
+
* @architect-include pipeline-stages
|
|
11
|
+
* @architect-uses MasterDataset, ExtractedPattern, TagRegistry, NormalizeStatus
|
|
12
|
+
* @architect-used-by Orchestrator
|
|
13
|
+
* @architect-usecase "When computing all pattern views in a single pass"
|
|
14
|
+
* @architect-usecase "When transforming raw extracted data for generators"
|
|
15
|
+
* @architect-extract-shapes RuntimeMasterDataset, RawDataset, transformToMasterDataset
|
|
16
|
+
*
|
|
17
|
+
* ## TransformDataset - Single-Pass Pattern Transformation
|
|
18
|
+
*
|
|
19
|
+
* Transforms raw extracted patterns into a MasterDataset with all pre-computed
|
|
20
|
+
* views. This is the core of the unified transformation pipeline, computing
|
|
21
|
+
* status groups, phase groups, quarter groups, category groups, and source
|
|
22
|
+
* groups in a single iteration over the pattern array.
|
|
23
|
+
*
|
|
24
|
+
* ### When to Use
|
|
25
|
+
*
|
|
26
|
+
* - Use in orchestrator after pattern extraction and merging
|
|
27
|
+
* - Use when you need pre-computed views for multiple generators
|
|
28
|
+
*
|
|
29
|
+
* ### Key Concepts
|
|
30
|
+
*
|
|
31
|
+
* - **Single-pass**: O(n) complexity regardless of view count
|
|
32
|
+
* - **Immutable output**: Returns a new MasterDataset object
|
|
33
|
+
* - **Workflow integration**: Uses workflow config for phase names
|
|
34
|
+
*/
|
|
35
|
+
import type { StatusCounts } from '../../validation-schemas/master-dataset.js';
|
|
36
|
+
import type { TransformResult, RuntimeMasterDataset, RawDataset } from './transform-types.js';
|
|
37
|
+
/**
|
|
38
|
+
* Transform raw extracted data into a MasterDataset with all pre-computed views.
|
|
39
|
+
*
|
|
40
|
+
* This is a ONE-PASS transformation that computes:
|
|
41
|
+
* - Status-based groupings (completed/active/planned)
|
|
42
|
+
* - Phase-based groupings with counts
|
|
43
|
+
* - Quarter-based groupings for timeline views
|
|
44
|
+
* - Category-based groupings for taxonomy
|
|
45
|
+
* - Source-based views (TypeScript vs Gherkin, roadmap, PRD)
|
|
46
|
+
* - Aggregate statistics (counts, phase count, category count)
|
|
47
|
+
* - Optional relationship index
|
|
48
|
+
*
|
|
49
|
+
* Convenience wrapper that returns just the dataset.
|
|
50
|
+
* Use `transformToMasterDatasetWithValidation` to get validation summary.
|
|
51
|
+
*
|
|
52
|
+
* @param raw - Raw dataset with patterns, registry, and optional workflow
|
|
53
|
+
* @returns MasterDataset with all pre-computed views
|
|
54
|
+
*/
|
|
55
|
+
export declare function transformToMasterDataset(raw: RawDataset): RuntimeMasterDataset;
|
|
56
|
+
/**
|
|
57
|
+
* Transform raw extracted data into a MasterDataset with validation summary.
|
|
58
|
+
*
|
|
59
|
+
* This is the full transformation that includes:
|
|
60
|
+
* - Pre-loop validation against ExtractedPatternSchema
|
|
61
|
+
* - Status-based groupings (completed/active/planned)
|
|
62
|
+
* - Phase-based groupings with counts
|
|
63
|
+
* - Quarter-based groupings for timeline views
|
|
64
|
+
* - Category-based groupings for taxonomy
|
|
65
|
+
* - Source-based views (TypeScript vs Gherkin, roadmap, PRD)
|
|
66
|
+
* - Aggregate statistics (counts, phase count, category count)
|
|
67
|
+
* - Relationship index with dangling reference detection
|
|
68
|
+
* - Validation summary with malformed patterns and unknown statuses
|
|
69
|
+
*
|
|
70
|
+
* @param raw - Raw dataset with patterns, registry, and optional workflow
|
|
71
|
+
* @returns TransformResult with dataset and validation summary
|
|
72
|
+
*/
|
|
73
|
+
export declare function transformToMasterDatasetWithValidation(raw: RawDataset): TransformResult;
|
|
74
|
+
/**
|
|
75
|
+
* Compute completion percentage from status counts
|
|
76
|
+
*/
|
|
77
|
+
export declare function completionPercentage(counts: StatusCounts): number;
|
|
78
|
+
/**
|
|
79
|
+
* Check if all items in a phase/group are completed
|
|
80
|
+
*/
|
|
81
|
+
export declare function isFullyCompleted(counts: StatusCounts): boolean;
|
|
82
|
+
//# sourceMappingURL=transform-dataset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-dataset.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/transform-dataset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAKH,OAAO,KAAK,EAEV,YAAY,EAMb,MAAM,4CAA4C,CAAC;AAMpD,OAAO,KAAK,EAGV,eAAe,EACf,oBAAoB,EACpB,UAAU,EACX,MAAM,sBAAsB,CAAC;AAU9B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,oBAAoB,CAE9E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sCAAsC,CAAC,GAAG,EAAE,UAAU,GAAG,eAAe,CAkRvF;AAyBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE9D"}
|