@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,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core @architect-config
|
|
4
|
+
* @architect-pattern ProjectConfigSchema
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-arch-layer infrastructure
|
|
7
|
+
* @architect-arch-context config
|
|
8
|
+
* @architect-arch-role infrastructure
|
|
9
|
+
* @architect-uses ProjectConfigTypes
|
|
10
|
+
* @architect-used-by ConfigLoader
|
|
11
|
+
*
|
|
12
|
+
* ## Project Configuration Schema
|
|
13
|
+
*
|
|
14
|
+
* Zod validation schema for `ArchitectProjectConfig`.
|
|
15
|
+
* Validates at load time (not at `defineConfig()` call time)
|
|
16
|
+
* following the Vite/Vitest identity-function convention.
|
|
17
|
+
*
|
|
18
|
+
* ### Validation Rules
|
|
19
|
+
*
|
|
20
|
+
* - At least one TypeScript source glob when `sources` is provided
|
|
21
|
+
* - No parent directory traversal in glob patterns (security)
|
|
22
|
+
* - Preset name must be one of the known presets
|
|
23
|
+
* - `replaceFeatures` and `additionalFeatures` are mutually exclusive
|
|
24
|
+
*
|
|
25
|
+
* **When to Use:** When loading and validating project configuration from `architect.config.ts` or `architect.config.js` at startup.
|
|
26
|
+
*/
|
|
27
|
+
import { z } from 'zod';
|
|
28
|
+
// Cross-layer: config → renderable (see comment in project-config.ts)
|
|
29
|
+
import { DIAGRAM_SOURCE_VALUES } from '../renderable/codecs/reference.js';
|
|
30
|
+
import { SectionBlockSchema } from '../renderable/schema.js';
|
|
31
|
+
/**
|
|
32
|
+
* Glob pattern validation — replicates the security rules from
|
|
33
|
+
* `src/validation-schemas/config.ts` without importing to avoid
|
|
34
|
+
* circular dependencies (that module imports from types that
|
|
35
|
+
* depend on config).
|
|
36
|
+
*/
|
|
37
|
+
const GlobPatternSchema = z
|
|
38
|
+
.string()
|
|
39
|
+
.min(1, 'Glob pattern cannot be empty')
|
|
40
|
+
.refine((pattern) => !pattern.includes('..'), {
|
|
41
|
+
message: 'Glob patterns cannot contain parent directory traversal (..)',
|
|
42
|
+
});
|
|
43
|
+
const GlobArraySchema = z.array(GlobPatternSchema).readonly();
|
|
44
|
+
/**
|
|
45
|
+
* Schema for source file configuration.
|
|
46
|
+
*/
|
|
47
|
+
export const SourcesConfigSchema = z
|
|
48
|
+
.object({
|
|
49
|
+
typescript: z
|
|
50
|
+
.array(GlobPatternSchema)
|
|
51
|
+
.min(1, 'At least one TypeScript source glob is required')
|
|
52
|
+
.readonly(),
|
|
53
|
+
features: GlobArraySchema.optional(),
|
|
54
|
+
stubs: GlobArraySchema.optional(),
|
|
55
|
+
exclude: GlobArraySchema.optional(),
|
|
56
|
+
})
|
|
57
|
+
.strict();
|
|
58
|
+
/**
|
|
59
|
+
* Schema for output configuration.
|
|
60
|
+
*/
|
|
61
|
+
export const OutputConfigSchema = z
|
|
62
|
+
.object({
|
|
63
|
+
directory: z.string().min(1, 'Output directory cannot be empty').optional(),
|
|
64
|
+
overwrite: z.boolean().optional(),
|
|
65
|
+
})
|
|
66
|
+
.strict();
|
|
67
|
+
/**
|
|
68
|
+
* Schema for per-generator source overrides.
|
|
69
|
+
*/
|
|
70
|
+
export const GeneratorSourceOverrideSchema = z
|
|
71
|
+
.object({
|
|
72
|
+
additionalFeatures: GlobArraySchema.optional(),
|
|
73
|
+
additionalInput: GlobArraySchema.optional(),
|
|
74
|
+
replaceFeatures: z
|
|
75
|
+
.array(GlobPatternSchema)
|
|
76
|
+
.min(1, 'replaceFeatures must have at least one pattern; omit the field to use base features')
|
|
77
|
+
.readonly()
|
|
78
|
+
.optional(),
|
|
79
|
+
outputDirectory: z.string().min(1).optional(),
|
|
80
|
+
})
|
|
81
|
+
.strict()
|
|
82
|
+
.refine((override) => {
|
|
83
|
+
// replaceFeatures and additionalFeatures are mutually exclusive
|
|
84
|
+
const hasReplace = override.replaceFeatures !== undefined && override.replaceFeatures.length > 0;
|
|
85
|
+
const hasAdditional = override.additionalFeatures !== undefined && override.additionalFeatures.length > 0;
|
|
86
|
+
return !(hasReplace && hasAdditional);
|
|
87
|
+
}, {
|
|
88
|
+
message: 'replaceFeatures and additionalFeatures are mutually exclusive — use one or the other',
|
|
89
|
+
});
|
|
90
|
+
/**
|
|
91
|
+
* Schema for context inference rules.
|
|
92
|
+
*/
|
|
93
|
+
const ContextInferenceRuleSchema = z
|
|
94
|
+
.object({
|
|
95
|
+
pattern: z.string().min(1),
|
|
96
|
+
context: z.string().min(1),
|
|
97
|
+
})
|
|
98
|
+
.strict();
|
|
99
|
+
/**
|
|
100
|
+
* Known preset names.
|
|
101
|
+
*/
|
|
102
|
+
const PresetNameSchema = z.enum(['libar-generic', 'ddd-es-cqrs']);
|
|
103
|
+
/**
|
|
104
|
+
* Schema for scoped diagram filter configuration.
|
|
105
|
+
* Patterns matching the filter become diagram nodes; neighbors appear with distinct style.
|
|
106
|
+
*/
|
|
107
|
+
const DiagramScopeSchema = z
|
|
108
|
+
.object({
|
|
109
|
+
archContext: z.array(z.string().min(1)).readonly().optional(),
|
|
110
|
+
patterns: z.array(z.string().min(1)).readonly().optional(),
|
|
111
|
+
include: z.array(z.string().min(1)).readonly().optional(),
|
|
112
|
+
archLayer: z.array(z.string().min(1)).readonly().optional(),
|
|
113
|
+
direction: z.enum(['TB', 'LR']).optional(),
|
|
114
|
+
title: z.string().min(1).optional(),
|
|
115
|
+
diagramType: z
|
|
116
|
+
.enum(['graph', 'sequenceDiagram', 'stateDiagram-v2', 'C4Context', 'classDiagram'])
|
|
117
|
+
.optional(),
|
|
118
|
+
showEdgeLabels: z.boolean().optional(),
|
|
119
|
+
source: z.enum(DIAGRAM_SOURCE_VALUES).optional(),
|
|
120
|
+
})
|
|
121
|
+
.strict();
|
|
122
|
+
/**
|
|
123
|
+
* Schema for reference document configuration.
|
|
124
|
+
* Each config defines one reference document's content composition.
|
|
125
|
+
*/
|
|
126
|
+
const ReferenceDocConfigSchema = z
|
|
127
|
+
.object({
|
|
128
|
+
title: z.string().min(1),
|
|
129
|
+
conventionTags: z.array(z.string().min(1)).readonly(),
|
|
130
|
+
behaviorCategories: z.array(z.string().min(1)).readonly(),
|
|
131
|
+
diagramScopes: z.array(DiagramScopeSchema).readonly().optional(),
|
|
132
|
+
claudeMdSection: z.string().min(1),
|
|
133
|
+
docsFilename: z.string().min(1),
|
|
134
|
+
claudeMdFilename: z.string().min(1),
|
|
135
|
+
// DD-6: Fine-grained shape selectors (structural discriminated union)
|
|
136
|
+
shapeSelectors: z
|
|
137
|
+
.array(z.union([
|
|
138
|
+
z.object({ group: z.string().min(1) }).strict(),
|
|
139
|
+
z
|
|
140
|
+
.object({
|
|
141
|
+
source: GlobPatternSchema,
|
|
142
|
+
names: z.array(z.string().min(1)).readonly(),
|
|
143
|
+
})
|
|
144
|
+
.strict(),
|
|
145
|
+
z.object({ source: GlobPatternSchema }).strict(),
|
|
146
|
+
]))
|
|
147
|
+
.readonly()
|
|
148
|
+
.optional(),
|
|
149
|
+
// DD-1 (CrossCuttingDocumentInclusion): Include-tag values for cross-cutting content routing
|
|
150
|
+
includeTags: z.array(z.string().min(1)).readonly().optional(),
|
|
151
|
+
// Product area filter (ADR-001): pre-filters all content sources by product area
|
|
152
|
+
productArea: z.string().min(1).optional(),
|
|
153
|
+
// DD-4 (GeneratedDocQuality): render shapes section before conventions
|
|
154
|
+
shapesFirst: z.boolean().optional(),
|
|
155
|
+
// Exclude patterns by source path prefix (e.g., ephemeral planning specs)
|
|
156
|
+
excludeSourcePaths: z.array(z.string().min(1)).readonly().optional(),
|
|
157
|
+
// Static preamble sections prepended before all generated content
|
|
158
|
+
preamble: z.array(SectionBlockSchema).readonly().optional(),
|
|
159
|
+
})
|
|
160
|
+
.strict();
|
|
161
|
+
/**
|
|
162
|
+
* Full project configuration schema.
|
|
163
|
+
*
|
|
164
|
+
* Validated at config load time by `loadProjectConfig()`.
|
|
165
|
+
* The `defineConfig()` identity function does NOT validate —
|
|
166
|
+
* it only provides TypeScript type checking.
|
|
167
|
+
*/
|
|
168
|
+
export const ArchitectProjectConfigSchema = z
|
|
169
|
+
.object({
|
|
170
|
+
// Taxonomy
|
|
171
|
+
preset: PresetNameSchema.optional(),
|
|
172
|
+
tagPrefix: z.string().min(1).optional(),
|
|
173
|
+
fileOptInTag: z.string().min(1).optional(),
|
|
174
|
+
categories: z
|
|
175
|
+
.array(z
|
|
176
|
+
.object({
|
|
177
|
+
tag: z.string().min(1),
|
|
178
|
+
domain: z.string().min(1),
|
|
179
|
+
priority: z.number().int().positive(),
|
|
180
|
+
description: z.string(),
|
|
181
|
+
aliases: z.array(z.string()).readonly(),
|
|
182
|
+
})
|
|
183
|
+
.strict())
|
|
184
|
+
.readonly()
|
|
185
|
+
.optional(),
|
|
186
|
+
// Sources
|
|
187
|
+
sources: SourcesConfigSchema.optional(),
|
|
188
|
+
// Output
|
|
189
|
+
output: OutputConfigSchema.optional(),
|
|
190
|
+
// Generators
|
|
191
|
+
generators: z.array(z.string().min(1)).readonly().optional(),
|
|
192
|
+
generatorOverrides: z.record(z.string(), GeneratorSourceOverrideSchema).optional(),
|
|
193
|
+
// Codec Options
|
|
194
|
+
codecOptions: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),
|
|
195
|
+
// Advanced
|
|
196
|
+
contextInferenceRules: z.array(ContextInferenceRuleSchema).readonly().optional(),
|
|
197
|
+
workflowPath: z.string().min(1).optional(),
|
|
198
|
+
// Reference Documents
|
|
199
|
+
referenceDocConfigs: z.array(ReferenceDocConfigSchema).readonly().optional(),
|
|
200
|
+
})
|
|
201
|
+
.strict();
|
|
202
|
+
/**
|
|
203
|
+
* Type guard for raw project config objects.
|
|
204
|
+
*
|
|
205
|
+
* Used by `loadProjectConfig()` to distinguish project config exports from
|
|
206
|
+
* runtime instance objects.
|
|
207
|
+
*/
|
|
208
|
+
export function isProjectConfig(value) {
|
|
209
|
+
if (value === null || typeof value !== 'object') {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
const obj = value;
|
|
213
|
+
const projectConfigKeys = [
|
|
214
|
+
'preset',
|
|
215
|
+
'tagPrefix',
|
|
216
|
+
'fileOptInTag',
|
|
217
|
+
'categories',
|
|
218
|
+
'sources',
|
|
219
|
+
'output',
|
|
220
|
+
'generators',
|
|
221
|
+
'generatorOverrides',
|
|
222
|
+
'codecOptions',
|
|
223
|
+
'contextInferenceRules',
|
|
224
|
+
'workflowPath',
|
|
225
|
+
'referenceDocConfigs',
|
|
226
|
+
];
|
|
227
|
+
return projectConfigKeys.some((key) => key in obj);
|
|
228
|
+
}
|
|
229
|
+
const _schemaKeyCheck = true;
|
|
230
|
+
const _scalarCheck = true;
|
|
231
|
+
//# sourceMappingURL=project-config-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-config-schema.js","sourceRoot":"","sources":["../../src/config/project-config-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core @architect-config
|
|
4
|
+
* @architect-pattern ProjectConfigTypes
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-arch-layer domain
|
|
7
|
+
* @architect-arch-context config
|
|
8
|
+
* @architect-uses ConfigurationTypes, ConfigurationPresets
|
|
9
|
+
* @architect-used-by DefineConfig, ConfigLoader
|
|
10
|
+
* @architect-extract-shapes ArchitectProjectConfig, SourcesConfig, OutputConfig, GeneratorSourceOverride, ResolvedConfig, ResolvedProjectConfig, ResolvedSourcesConfig
|
|
11
|
+
*
|
|
12
|
+
* ## Project Configuration Types
|
|
13
|
+
*
|
|
14
|
+
* Unified project configuration for the Architect package.
|
|
15
|
+
* Replaces the fragmented system where taxonomy, source discovery,
|
|
16
|
+
* and output config lived in three disconnected layers.
|
|
17
|
+
*
|
|
18
|
+
* ### Architecture
|
|
19
|
+
*
|
|
20
|
+
* ```
|
|
21
|
+
* defineConfig() → raw ArchitectProjectConfig
|
|
22
|
+
* ↓
|
|
23
|
+
* loadProjectConfig() → validates (Zod) → resolveProjectConfig()
|
|
24
|
+
* ↓
|
|
25
|
+
* ResolvedConfig { instance, project }
|
|
26
|
+
* ↓
|
|
27
|
+
* mergeSourcesForGenerator() → per-generator effective sources
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* ### When to Use
|
|
31
|
+
*
|
|
32
|
+
* - Define project config in `architect.config.ts` or `architect.config.js`
|
|
33
|
+
* - Internal resolution via `resolveProjectConfig()`
|
|
34
|
+
* - CLI override merging
|
|
35
|
+
*/
|
|
36
|
+
import type { PresetName } from './presets.js';
|
|
37
|
+
import type { ArchitectConfig, ArchitectInstance } from './types.js';
|
|
38
|
+
import type { ContextInferenceRule } from '../generators/pipeline/context-inference.js';
|
|
39
|
+
import type { ReferenceDocConfig } from '../renderable/codecs/reference.js';
|
|
40
|
+
import type { CodecOptions } from '../renderable/generate.js';
|
|
41
|
+
/**
|
|
42
|
+
* Source glob configuration for the project.
|
|
43
|
+
* Centralizes what previously lived in CLI --input/--features flags.
|
|
44
|
+
*/
|
|
45
|
+
export interface SourcesConfig {
|
|
46
|
+
/** Glob patterns for TypeScript source files (replaces --input) */
|
|
47
|
+
readonly typescript: readonly string[];
|
|
48
|
+
/**
|
|
49
|
+
* Glob patterns for Gherkin feature files (replaces --features).
|
|
50
|
+
* Includes both `.feature` and `.feature.md` files.
|
|
51
|
+
*/
|
|
52
|
+
readonly features?: readonly string[];
|
|
53
|
+
/**
|
|
54
|
+
* Glob patterns for design stub files.
|
|
55
|
+
* Stubs are TypeScript files that live outside `src/` (e.g., `architect/stubs/`).
|
|
56
|
+
* Merged into TypeScript sources at resolution time.
|
|
57
|
+
*/
|
|
58
|
+
readonly stubs?: readonly string[];
|
|
59
|
+
/** Glob patterns to exclude from all scanning */
|
|
60
|
+
readonly exclude?: readonly string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Resolved sources config where all optional fields have been applied with defaults.
|
|
64
|
+
*/
|
|
65
|
+
export interface ResolvedSourcesConfig {
|
|
66
|
+
/** TypeScript source globs (includes merged stubs) */
|
|
67
|
+
readonly typescript: readonly string[];
|
|
68
|
+
/** Gherkin feature file globs */
|
|
69
|
+
readonly features: readonly string[];
|
|
70
|
+
/** Glob patterns to exclude from scanning */
|
|
71
|
+
readonly exclude: readonly string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Output configuration for generated documentation.
|
|
75
|
+
*/
|
|
76
|
+
export interface OutputConfig {
|
|
77
|
+
/** Output directory for generated docs (default: 'docs/architecture') */
|
|
78
|
+
readonly directory?: string;
|
|
79
|
+
/** Overwrite existing files (default: false) */
|
|
80
|
+
readonly overwrite?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Generator-specific source overrides.
|
|
84
|
+
*
|
|
85
|
+
* Some generators need different sources than the base config.
|
|
86
|
+
* For example, `changelog` needs `decisions/*.feature` and `releases/*.feature`
|
|
87
|
+
* in addition to the base feature set.
|
|
88
|
+
*
|
|
89
|
+
* ### Override Semantics
|
|
90
|
+
*
|
|
91
|
+
* - `additionalFeatures` / `additionalInput`: Appended to base sources
|
|
92
|
+
* - `replaceFeatures`: Used INSTEAD of base features (for generators needing a different set)
|
|
93
|
+
* - `outputDirectory`: Override the base output directory for this generator
|
|
94
|
+
*
|
|
95
|
+
* ### Mutual Exclusivity
|
|
96
|
+
*
|
|
97
|
+
* `replaceFeatures` and `additionalFeatures` are mutually exclusive when both are
|
|
98
|
+
* non-empty. This constraint is enforced at runtime by the Zod `.refine()` in
|
|
99
|
+
* {@link GeneratorSourceOverrideSchema} (in `project-config-schema.ts`).
|
|
100
|
+
*
|
|
101
|
+
* The TypeScript type intentionally permits both fields to coexist because
|
|
102
|
+
* `mergeSourcesForGenerator()` treats an empty `replaceFeatures: []` as "no replace",
|
|
103
|
+
* falling through to `additionalFeatures`. Encoding this length-dependent semantics
|
|
104
|
+
* via `never` would reject valid runtime states.
|
|
105
|
+
*/
|
|
106
|
+
export interface GeneratorSourceOverride {
|
|
107
|
+
/** Additional feature file globs appended to base features */
|
|
108
|
+
readonly additionalFeatures?: readonly string[];
|
|
109
|
+
/** Additional TypeScript globs appended to base TypeScript sources */
|
|
110
|
+
readonly additionalInput?: readonly string[];
|
|
111
|
+
/**
|
|
112
|
+
* Feature globs used INSTEAD of base features.
|
|
113
|
+
* Mutually exclusive with non-empty `additionalFeatures`.
|
|
114
|
+
* @see GeneratorSourceOverrideSchema for runtime validation
|
|
115
|
+
*/
|
|
116
|
+
readonly replaceFeatures?: readonly string[];
|
|
117
|
+
/** Override output directory for this generator */
|
|
118
|
+
readonly outputDirectory?: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Unified project configuration for Architect.
|
|
122
|
+
*
|
|
123
|
+
* This is the shape users provide in `architect.config.ts` or `architect.config.js`.
|
|
124
|
+
* `defineConfig()` is an identity function providing type safety.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* import { defineConfig } from '@libar-dev/architect/config';
|
|
129
|
+
*
|
|
130
|
+
* export default defineConfig({
|
|
131
|
+
* preset: 'ddd-es-cqrs',
|
|
132
|
+
* sources: {
|
|
133
|
+
* typescript: ['packages/* /src/** /*.ts'],
|
|
134
|
+
* features: ['architect/specs/** /*.feature'],
|
|
135
|
+
* stubs: ['architect/stubs/** /*.ts'],
|
|
136
|
+
* },
|
|
137
|
+
* output: { directory: 'docs-living', overwrite: true },
|
|
138
|
+
* });
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export interface ArchitectProjectConfig {
|
|
142
|
+
/** Use a preset taxonomy configuration */
|
|
143
|
+
readonly preset?: PresetName;
|
|
144
|
+
/** Custom tag prefix (overrides preset, e.g., '@architect-') */
|
|
145
|
+
readonly tagPrefix?: string;
|
|
146
|
+
/** Custom file opt-in tag (overrides preset, e.g., '@architect') */
|
|
147
|
+
readonly fileOptInTag?: string;
|
|
148
|
+
/** Custom categories (replaces preset categories entirely) */
|
|
149
|
+
readonly categories?: ArchitectConfig['categories'];
|
|
150
|
+
/** Source file glob configuration */
|
|
151
|
+
readonly sources?: SourcesConfig;
|
|
152
|
+
/** Output configuration for generated docs */
|
|
153
|
+
readonly output?: OutputConfig;
|
|
154
|
+
/** Default generator names to run when CLI doesn't specify --generators */
|
|
155
|
+
readonly generators?: readonly string[];
|
|
156
|
+
/** Per-generator source and output overrides */
|
|
157
|
+
readonly generatorOverrides?: Readonly<Record<string, GeneratorSourceOverride>>;
|
|
158
|
+
/** Rules for auto-inferring bounded context from file paths */
|
|
159
|
+
readonly contextInferenceRules?: readonly ContextInferenceRule[];
|
|
160
|
+
/** Path to custom workflow config JSON (relative to config file) */
|
|
161
|
+
readonly workflowPath?: string;
|
|
162
|
+
/**
|
|
163
|
+
* Per-codec options for fine-tuning document generation.
|
|
164
|
+
* Keys match codec names (e.g., 'business-rules', 'patterns').
|
|
165
|
+
* Passed through to codec factories at generation time.
|
|
166
|
+
*/
|
|
167
|
+
readonly codecOptions?: CodecOptions;
|
|
168
|
+
/**
|
|
169
|
+
* Reference document configurations for convention-based doc generation.
|
|
170
|
+
* Each config defines one reference document's content composition via
|
|
171
|
+
* convention tags, shape selectors, behavior categories, and diagram scopes.
|
|
172
|
+
*
|
|
173
|
+
* When not specified, no reference generators are registered.
|
|
174
|
+
* Import `LIBAR_REFERENCE_CONFIGS` from the generators module
|
|
175
|
+
* to use the built-in set.
|
|
176
|
+
*/
|
|
177
|
+
readonly referenceDocConfigs?: readonly ReferenceDocConfig[];
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Fully resolved project configuration with all defaults applied.
|
|
181
|
+
*/
|
|
182
|
+
export interface ResolvedProjectConfig {
|
|
183
|
+
/** Resolved source globs (stubs merged, defaults applied) */
|
|
184
|
+
readonly sources: ResolvedSourcesConfig;
|
|
185
|
+
/** Resolved output config with all defaults */
|
|
186
|
+
readonly output: Readonly<Required<OutputConfig>>;
|
|
187
|
+
/** Default generator names */
|
|
188
|
+
readonly generators: readonly string[];
|
|
189
|
+
/** Per-generator source overrides */
|
|
190
|
+
readonly generatorOverrides: Readonly<Record<string, GeneratorSourceOverride>>;
|
|
191
|
+
/** Context inference rules (user rules prepended to defaults) */
|
|
192
|
+
readonly contextInferenceRules: readonly ContextInferenceRule[];
|
|
193
|
+
/** Workflow config path (null if not specified) */
|
|
194
|
+
readonly workflowPath: string | null;
|
|
195
|
+
/** Per-codec options for document generation (empty if none) */
|
|
196
|
+
readonly codecOptions?: CodecOptions;
|
|
197
|
+
/** Reference document configurations (empty array if none) */
|
|
198
|
+
readonly referenceDocConfigs: readonly ReferenceDocConfig[];
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Fully resolved configuration combining the taxonomy instance
|
|
202
|
+
* and the project-level config.
|
|
203
|
+
*
|
|
204
|
+
* This is the primary type consumed by the orchestrator and CLIs.
|
|
205
|
+
*
|
|
206
|
+
* Discriminated union on `isDefault`:
|
|
207
|
+
* - `isDefault: true` means no config file was found; `configPath` is `undefined`.
|
|
208
|
+
* - `isDefault: false` means a config file was loaded; `configPath` is a `string`.
|
|
209
|
+
*/
|
|
210
|
+
export type ResolvedConfig = {
|
|
211
|
+
/** The taxonomy instance (registry + regexBuilders) */
|
|
212
|
+
readonly instance: ArchitectInstance;
|
|
213
|
+
/** The resolved project config with defaults applied */
|
|
214
|
+
readonly project: ResolvedProjectConfig;
|
|
215
|
+
/** Config was generated from defaults (no config file found) */
|
|
216
|
+
readonly isDefault: true;
|
|
217
|
+
/** No config file path when using defaults */
|
|
218
|
+
readonly configPath?: undefined;
|
|
219
|
+
} | {
|
|
220
|
+
/** The taxonomy instance (registry + regexBuilders) */
|
|
221
|
+
readonly instance: ArchitectInstance;
|
|
222
|
+
/** The resolved project config with defaults applied */
|
|
223
|
+
readonly project: ResolvedProjectConfig;
|
|
224
|
+
/** Config was loaded from a file */
|
|
225
|
+
readonly isDefault: false;
|
|
226
|
+
/** Path to the config file that was loaded */
|
|
227
|
+
readonly configPath: string;
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=project-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/config/project-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core @architect-config
|
|
4
|
+
* @architect-pattern ProjectConfigTypes
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-arch-layer domain
|
|
7
|
+
* @architect-arch-context config
|
|
8
|
+
* @architect-uses ConfigurationTypes, ConfigurationPresets
|
|
9
|
+
* @architect-used-by DefineConfig, ConfigLoader
|
|
10
|
+
* @architect-extract-shapes ArchitectProjectConfig, SourcesConfig, OutputConfig, GeneratorSourceOverride, ResolvedConfig, ResolvedProjectConfig, ResolvedSourcesConfig
|
|
11
|
+
*
|
|
12
|
+
* ## Project Configuration Types
|
|
13
|
+
*
|
|
14
|
+
* Unified project configuration for the Architect package.
|
|
15
|
+
* Replaces the fragmented system where taxonomy, source discovery,
|
|
16
|
+
* and output config lived in three disconnected layers.
|
|
17
|
+
*
|
|
18
|
+
* ### Architecture
|
|
19
|
+
*
|
|
20
|
+
* ```
|
|
21
|
+
* defineConfig() → raw ArchitectProjectConfig
|
|
22
|
+
* ↓
|
|
23
|
+
* loadProjectConfig() → validates (Zod) → resolveProjectConfig()
|
|
24
|
+
* ↓
|
|
25
|
+
* ResolvedConfig { instance, project }
|
|
26
|
+
* ↓
|
|
27
|
+
* mergeSourcesForGenerator() → per-generator effective sources
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* ### When to Use
|
|
31
|
+
*
|
|
32
|
+
* - Define project config in `architect.config.ts` or `architect.config.js`
|
|
33
|
+
* - Internal resolution via `resolveProjectConfig()`
|
|
34
|
+
* - CLI override merging
|
|
35
|
+
*/
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=project-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/config/project-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core @architect-config
|
|
4
|
+
* @architect-pattern RegexBuilders
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-arch-layer infrastructure
|
|
7
|
+
* @architect-arch-context config
|
|
8
|
+
* @architect-arch-role infrastructure
|
|
9
|
+
* @architect-uses ConfigurationTypes
|
|
10
|
+
* @architect-used-by ArchitectFactory
|
|
11
|
+
* @architect-extract-shapes createRegexBuilders
|
|
12
|
+
*
|
|
13
|
+
* ## Regex Builders
|
|
14
|
+
*
|
|
15
|
+
* Type-safe regex factory functions for tag detection and normalization.
|
|
16
|
+
* Creates regex patterns based on configured tag prefix.
|
|
17
|
+
*
|
|
18
|
+
* ### When to Use
|
|
19
|
+
*
|
|
20
|
+
* - When creating a new Architect instance
|
|
21
|
+
* - When detecting doc directives in source code
|
|
22
|
+
* - When normalizing tags for comparison
|
|
23
|
+
*/
|
|
24
|
+
import type { RegexBuilders } from './types.js';
|
|
25
|
+
export type { RegexBuilders } from './types.js';
|
|
26
|
+
/**
|
|
27
|
+
* Creates type-safe regex builders for a given tag prefix configuration.
|
|
28
|
+
* These are used throughout the scanner and validation pipeline.
|
|
29
|
+
*
|
|
30
|
+
* @param tagPrefix - The tag prefix (e.g., "@architect-")
|
|
31
|
+
* @param fileOptInTag - The file opt-in tag (e.g., "@architect")
|
|
32
|
+
* @returns RegexBuilders instance with pattern matching methods
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const builders = createRegexBuilders("@architect-", "@architect");
|
|
37
|
+
*
|
|
38
|
+
* // Check for file opt-in
|
|
39
|
+
* if (builders.hasFileOptIn(sourceCode)) {
|
|
40
|
+
* console.log("File has @architect marker");
|
|
41
|
+
* }
|
|
42
|
+
*
|
|
43
|
+
* // Normalize a tag
|
|
44
|
+
* const normalized = builders.normalizeTag("@architect-pattern");
|
|
45
|
+
* // Returns: "pattern"
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function createRegexBuilders(tagPrefix: string, fileOptInTag: string): RegexBuilders;
|
|
49
|
+
//# sourceMappingURL=regex-builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex-builders.d.ts","sourceRoot":"","sources":["../../src/config/regex-builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAYhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAoC1F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core @architect-config
|
|
4
|
+
* @architect-pattern RegexBuilders
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-arch-layer infrastructure
|
|
7
|
+
* @architect-arch-context config
|
|
8
|
+
* @architect-arch-role infrastructure
|
|
9
|
+
* @architect-uses ConfigurationTypes
|
|
10
|
+
* @architect-used-by ArchitectFactory
|
|
11
|
+
* @architect-extract-shapes createRegexBuilders
|
|
12
|
+
*
|
|
13
|
+
* ## Regex Builders
|
|
14
|
+
*
|
|
15
|
+
* Type-safe regex factory functions for tag detection and normalization.
|
|
16
|
+
* Creates regex patterns based on configured tag prefix.
|
|
17
|
+
*
|
|
18
|
+
* ### When to Use
|
|
19
|
+
*
|
|
20
|
+
* - When creating a new Architect instance
|
|
21
|
+
* - When detecting doc directives in source code
|
|
22
|
+
* - When normalizing tags for comparison
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Escapes special regex characters in a string
|
|
26
|
+
*
|
|
27
|
+
* @param str - String to escape
|
|
28
|
+
* @returns Escaped string safe for regex
|
|
29
|
+
*/
|
|
30
|
+
function escapeRegex(str) {
|
|
31
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Creates type-safe regex builders for a given tag prefix configuration.
|
|
35
|
+
* These are used throughout the scanner and validation pipeline.
|
|
36
|
+
*
|
|
37
|
+
* @param tagPrefix - The tag prefix (e.g., "@architect-")
|
|
38
|
+
* @param fileOptInTag - The file opt-in tag (e.g., "@architect")
|
|
39
|
+
* @returns RegexBuilders instance with pattern matching methods
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const builders = createRegexBuilders("@architect-", "@architect");
|
|
44
|
+
*
|
|
45
|
+
* // Check for file opt-in
|
|
46
|
+
* if (builders.hasFileOptIn(sourceCode)) {
|
|
47
|
+
* console.log("File has @architect marker");
|
|
48
|
+
* }
|
|
49
|
+
*
|
|
50
|
+
* // Normalize a tag
|
|
51
|
+
* const normalized = builders.normalizeTag("@architect-pattern");
|
|
52
|
+
* // Returns: "pattern"
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function createRegexBuilders(tagPrefix, fileOptInTag) {
|
|
56
|
+
const escapedPrefix = escapeRegex(tagPrefix);
|
|
57
|
+
const escapedOptIn = escapeRegex(fileOptInTag);
|
|
58
|
+
// Match file-level opt-in: /** @architect */ (not followed by -)
|
|
59
|
+
// This ensures @architect is not confused with @architect-pattern
|
|
60
|
+
const fileOptInPattern = new RegExp(`\\/\\*\\*[\\s\\S]*?${escapedOptIn}(?!-)[\\s\\S]*?\\*\\/`);
|
|
61
|
+
// Match directives: @architect-pattern, @architect-status, etc.
|
|
62
|
+
const directivePattern = new RegExp(`${escapedPrefix}[\\w-]+`, 'g');
|
|
63
|
+
// For normalizing tags - remove @ and prefix
|
|
64
|
+
const prefixWithoutAt = tagPrefix.startsWith('@') ? tagPrefix.substring(1) : tagPrefix;
|
|
65
|
+
return {
|
|
66
|
+
fileOptInPattern,
|
|
67
|
+
directivePattern,
|
|
68
|
+
hasFileOptIn(content) {
|
|
69
|
+
return fileOptInPattern.test(content);
|
|
70
|
+
},
|
|
71
|
+
hasDocDirectives(content) {
|
|
72
|
+
// Reset lastIndex to handle global regex state
|
|
73
|
+
directivePattern.lastIndex = 0;
|
|
74
|
+
return directivePattern.test(content);
|
|
75
|
+
},
|
|
76
|
+
normalizeTag(tag) {
|
|
77
|
+
let normalized = tag.startsWith('@') ? tag.substring(1) : tag;
|
|
78
|
+
if (normalized.startsWith(prefixWithoutAt)) {
|
|
79
|
+
normalized = normalized.substring(prefixWithoutAt.length);
|
|
80
|
+
}
|
|
81
|
+
return normalized;
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=regex-builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex-builders.js","sourceRoot":"","sources":["../../src/config/regex-builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH;;;;;GAKG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,YAAoB;IACzE,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAE/C,iEAAiE;IACjE,kEAAkE;IAClE,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,sBAAsB,YAAY,uBAAuB,CAAC,CAAC;IAE/F,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,GAAG,aAAa,SAAS,EAAE,GAAG,CAAC,CAAC;IAEpE,6CAA6C;IAC7C,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvF,OAAO;QACL,gBAAgB;QAChB,gBAAgB;QAEhB,YAAY,CAAC,OAAe;YAC1B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,gBAAgB,CAAC,OAAe;YAC9B,+CAA+C;YAC/C,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,YAAY,CAAC,GAAW;YACtB,IAAI,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9D,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3C,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
|