@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 @@
|
|
|
1
|
+
{"version":3,"file":"claude-module.d.ts","sourceRoot":"","sources":["../../../src/renderable/codecs/claude-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,4CAA4C,CAAC;AAapD,OAAO,EAAE,KAAK,gBAAgB,EAAsC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAWpE;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,wBAAwB,CAK5E,CAAC;AAMF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,wBAAwB,GACjC,CAAC,CAAC,QAAQ,CAAC,OAAO,mBAAmB,EAAE,OAAO,8BAA8B,CAAC,CAY/E;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA4B,CAAC"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-pattern ClaudeModuleCodec
|
|
4
|
+
* @architect-status active
|
|
5
|
+
* @architect-convention codec-registry
|
|
6
|
+
* @architect-product-area:Generation
|
|
7
|
+
*
|
|
8
|
+
* ## ClaudeModuleCodec
|
|
9
|
+
*
|
|
10
|
+
* Transforms MasterDataset into RenderableDocuments for CLAUDE.md module generation.
|
|
11
|
+
* Filters patterns with `claudeModule` tags and generates compact markdown modules
|
|
12
|
+
* suitable for the `_claude-md/` directory structure.
|
|
13
|
+
*
|
|
14
|
+
* **Purpose:** Generate CLAUDE.md modules from annotated behavior specs.
|
|
15
|
+
*
|
|
16
|
+
* **Output Files:** One file per claude-module-tagged pattern at `{section}/{module}.md`
|
|
17
|
+
*
|
|
18
|
+
* ### Content Extraction
|
|
19
|
+
*
|
|
20
|
+
* - Feature description → skipped (meta-documentation, not operational content)
|
|
21
|
+
* - Rule: blocks → H4 sections with invariant + rationale
|
|
22
|
+
* - Scenario Outline Examples → decision tables
|
|
23
|
+
* - Tables in Rule descriptions → preserved as-is
|
|
24
|
+
*
|
|
25
|
+
* ### Factory Pattern
|
|
26
|
+
*
|
|
27
|
+
* Use `createClaudeModuleCodec(options)` for custom options:
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const codec = createClaudeModuleCodec({ detailLevel: 'detailed' });
|
|
30
|
+
* const doc = codec.decode(dataset);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
import { z } from 'zod';
|
|
34
|
+
import { MasterDatasetSchema, } from '../../validation-schemas/master-dataset.js';
|
|
35
|
+
import { heading, paragraph, separator, table, linkOut, document, } from '../schema.js';
|
|
36
|
+
import { DEFAULT_BASE_OPTIONS, mergeOptions } from './types/base.js';
|
|
37
|
+
import { RenderableDocumentOutputSchema } from './shared-schema.js';
|
|
38
|
+
import { parseBusinessRuleAnnotations } from './helpers.js';
|
|
39
|
+
import { extractTablesAsSectionBlocks } from './convention-extractor.js';
|
|
40
|
+
const DEFAULT_CLAUDE_SECTION = 'core';
|
|
41
|
+
/**
|
|
42
|
+
* Default options for ClaudeModuleCodec
|
|
43
|
+
*/
|
|
44
|
+
export const DEFAULT_CLAUDE_MODULE_OPTIONS = {
|
|
45
|
+
...DEFAULT_BASE_OPTIONS,
|
|
46
|
+
fullDocsPath: 'docs/',
|
|
47
|
+
includeRationale: true,
|
|
48
|
+
includeTables: true,
|
|
49
|
+
};
|
|
50
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
51
|
+
// Codec Creation
|
|
52
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
53
|
+
/**
|
|
54
|
+
* Create a ClaudeModuleCodec with custom options.
|
|
55
|
+
*
|
|
56
|
+
* @param options - Codec configuration options
|
|
57
|
+
* @returns Configured Zod codec
|
|
58
|
+
*/
|
|
59
|
+
export function createClaudeModuleCodec(options) {
|
|
60
|
+
const opts = mergeOptions(DEFAULT_CLAUDE_MODULE_OPTIONS, options);
|
|
61
|
+
return z.codec(MasterDatasetSchema, RenderableDocumentOutputSchema, {
|
|
62
|
+
decode: (dataset) => {
|
|
63
|
+
return buildClaudeModuleDocument(dataset, opts);
|
|
64
|
+
},
|
|
65
|
+
/** @throws Always - this codec is decode-only. See zod-codecs.md */
|
|
66
|
+
encode: () => {
|
|
67
|
+
throw new Error('ClaudeModuleCodec is decode-only. See zod-codecs.md');
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Default Claude Module Codec
|
|
73
|
+
*
|
|
74
|
+
* Transforms MasterDataset → RenderableDocument for CLAUDE.md modules.
|
|
75
|
+
* Uses default options with standard detail level.
|
|
76
|
+
*/
|
|
77
|
+
export const ClaudeModuleCodec = createClaudeModuleCodec();
|
|
78
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
79
|
+
// Document Builder
|
|
80
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
81
|
+
/**
|
|
82
|
+
* Build the index document listing all generated modules,
|
|
83
|
+
* with each module as an additionalFile.
|
|
84
|
+
*/
|
|
85
|
+
function buildClaudeModuleDocument(dataset, options) {
|
|
86
|
+
// Filter to patterns with claudeModule set
|
|
87
|
+
const modulePatterns = dataset.patterns.filter((p) => p.claudeModule !== undefined && p.claudeModule !== '');
|
|
88
|
+
if (modulePatterns.length === 0) {
|
|
89
|
+
return document('Claude Modules', [
|
|
90
|
+
heading(2, 'No Claude Modules Found'),
|
|
91
|
+
paragraph('No patterns have `@architect-claude-module` tags.'),
|
|
92
|
+
], {
|
|
93
|
+
purpose: 'Claude module generation index',
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// Build index sections
|
|
97
|
+
const sections = [];
|
|
98
|
+
sections.push(heading(2, 'Generated Modules'), paragraph(`${modulePatterns.length} module(s) generated from annotated behavior specs.`));
|
|
99
|
+
// Summary table
|
|
100
|
+
const rows = modulePatterns.map((p) => [
|
|
101
|
+
p.claudeModule ?? '',
|
|
102
|
+
p.claudeSection ?? DEFAULT_CLAUDE_SECTION,
|
|
103
|
+
p.name,
|
|
104
|
+
`${p.rules?.length ?? 0} rules`,
|
|
105
|
+
]);
|
|
106
|
+
sections.push(table(['Module', 'Section', 'Source Pattern', 'Content'], rows));
|
|
107
|
+
// Build each module as an additional file
|
|
108
|
+
const additionalFiles = {};
|
|
109
|
+
for (const pattern of modulePatterns) {
|
|
110
|
+
const section = pattern.claudeSection ?? DEFAULT_CLAUDE_SECTION;
|
|
111
|
+
const module = pattern.claudeModule ?? pattern.name;
|
|
112
|
+
const filePath = `${section}/${module}.md`;
|
|
113
|
+
additionalFiles[filePath] = buildModuleFile(pattern, options);
|
|
114
|
+
}
|
|
115
|
+
const docOptions = {
|
|
116
|
+
purpose: 'Claude module generation index',
|
|
117
|
+
detailLevel: options.detailLevel,
|
|
118
|
+
};
|
|
119
|
+
if (Object.keys(additionalFiles).length > 0) {
|
|
120
|
+
docOptions.additionalFiles = additionalFiles;
|
|
121
|
+
}
|
|
122
|
+
return document('Claude Modules', sections, docOptions);
|
|
123
|
+
}
|
|
124
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
125
|
+
// Module File Builder
|
|
126
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
127
|
+
/**
|
|
128
|
+
* Build a single module file from a pattern.
|
|
129
|
+
* Extracts content from Feature description, Rule blocks, and Scenario Outline Examples.
|
|
130
|
+
*/
|
|
131
|
+
function buildModuleFile(pattern, options) {
|
|
132
|
+
const sections = [];
|
|
133
|
+
// Skip Feature description (Problem/Solution preamble) — it is meta-documentation
|
|
134
|
+
// about why the spec exists, not operational content. Only Rule blocks contain
|
|
135
|
+
// the actual invariants and guidance needed in _claude-md/ modules.
|
|
136
|
+
// Rule blocks → H4 sections
|
|
137
|
+
if (pattern.rules && pattern.rules.length > 0) {
|
|
138
|
+
sections.push(separator());
|
|
139
|
+
for (const rule of pattern.rules) {
|
|
140
|
+
sections.push(...buildRuleSection(rule, options));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Scenario Outline Examples → decision tables
|
|
144
|
+
if (options.detailLevel !== 'summary') {
|
|
145
|
+
const examplesTables = extractExamplesTables(pattern);
|
|
146
|
+
if (examplesTables.length > 0) {
|
|
147
|
+
sections.push(...examplesTables);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// See-also link
|
|
151
|
+
if (options.fullDocsPath) {
|
|
152
|
+
const slug = pattern.claudeModule ?? pattern.name.toLowerCase();
|
|
153
|
+
const fullPath = `${options.fullDocsPath}${slug.toUpperCase()}.md`;
|
|
154
|
+
sections.push(separator());
|
|
155
|
+
sections.push(linkOut(`Full Documentation`, fullPath));
|
|
156
|
+
}
|
|
157
|
+
return document(pattern.name, sections, {
|
|
158
|
+
purpose: `Claude module: ${pattern.claudeModule ?? pattern.name}`,
|
|
159
|
+
detailLevel: options.detailLevel,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
163
|
+
// Content Extractors
|
|
164
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
165
|
+
/**
|
|
166
|
+
* Build a Rule section (H4 heading + invariant + rationale + tables).
|
|
167
|
+
*
|
|
168
|
+
* Related: `renderRuleDescription()` in helpers.ts performs the same
|
|
169
|
+
* annotation-parse-to-blocks sequence but produces full-detail output
|
|
170
|
+
* (includes verifiedBy, codeExamples, remainingContent). This function
|
|
171
|
+
* intentionally produces compact output for _claude-md/ modules.
|
|
172
|
+
*/
|
|
173
|
+
function buildRuleSection(rule, options) {
|
|
174
|
+
const sections = [];
|
|
175
|
+
// H2 heading from rule name (renderer offsets to H4 for _claude-md/ modules)
|
|
176
|
+
sections.push(heading(2, rule.name));
|
|
177
|
+
// Parse structured annotations from rule description
|
|
178
|
+
const annotations = parseBusinessRuleAnnotations(rule.description);
|
|
179
|
+
if (annotations.invariant) {
|
|
180
|
+
sections.push(paragraph(`**Invariant:** ${annotations.invariant}`));
|
|
181
|
+
}
|
|
182
|
+
if (options.includeRationale && annotations.rationale) {
|
|
183
|
+
sections.push(paragraph(`**Rationale:** ${annotations.rationale}`));
|
|
184
|
+
}
|
|
185
|
+
// Extract and preserve tables from the rule description
|
|
186
|
+
if (options.includeTables) {
|
|
187
|
+
const tables = extractTablesAsSectionBlocks(rule.description);
|
|
188
|
+
for (const t of tables) {
|
|
189
|
+
sections.push(t);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return sections;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Extract Scenario Outline Examples tables from pattern scenarios.
|
|
196
|
+
*/
|
|
197
|
+
function extractExamplesTables(pattern) {
|
|
198
|
+
const sections = [];
|
|
199
|
+
if (!pattern.scenarios)
|
|
200
|
+
return sections;
|
|
201
|
+
for (const scenario of pattern.scenarios) {
|
|
202
|
+
if (!scenario.steps)
|
|
203
|
+
continue;
|
|
204
|
+
for (const step of scenario.steps) {
|
|
205
|
+
const dt = step.dataTable;
|
|
206
|
+
if (dt && dt.headers.length > 0 && dt.rows.length > 0) {
|
|
207
|
+
const rows = dt.rows.map((row) => dt.headers.map((h) => row[h] ?? ''));
|
|
208
|
+
sections.push(table([...dt.headers], rows));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return sections;
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=claude-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-module.js","sourceRoot":"","sources":["../../../src/renderable/codecs/claude-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern CompositeCodec
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-implements ReferenceDocShowcase
|
|
7
|
+
* @architect-arch-role projection
|
|
8
|
+
* @architect-arch-context renderer
|
|
9
|
+
* @architect-arch-layer application
|
|
10
|
+
* @architect-convention codec-registry
|
|
11
|
+
* @architect-product-area:Generation
|
|
12
|
+
*
|
|
13
|
+
* ## CompositeCodec
|
|
14
|
+
*
|
|
15
|
+
* Assembles reference documents from multiple codec outputs by concatenating
|
|
16
|
+
* RenderableDocument sections. Enables building documents composed from any
|
|
17
|
+
* combination of existing codecs.
|
|
18
|
+
*
|
|
19
|
+
* **Purpose:** Assembles documents from multiple child codecs into a single RenderableDocument.
|
|
20
|
+
*
|
|
21
|
+
* **Output Files:** Configured per-instance (composes child codec outputs)
|
|
22
|
+
*
|
|
23
|
+
* ### When to Use
|
|
24
|
+
*
|
|
25
|
+
* - When building reference docs from multiple codec outputs
|
|
26
|
+
* - When composing session briefs from overview + current work + remaining work
|
|
27
|
+
* - When referenceDocConfigs need content from arbitrary codecs
|
|
28
|
+
*
|
|
29
|
+
* ### Factory Pattern
|
|
30
|
+
*
|
|
31
|
+
* Use the factory function with child codecs and options:
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const codec = createCompositeCodec(
|
|
34
|
+
* [OverviewCodec, CurrentWorkCodec, RemainingWorkCodec],
|
|
35
|
+
* { title: 'Session Brief' }
|
|
36
|
+
* );
|
|
37
|
+
* const doc = codec.decode(dataset);
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* Or use `composeDocuments` directly at the document level:
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const doc = composeDocuments([docA, docB], { title: 'Combined' });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
import { type RenderableDocument } from '../schema.js';
|
|
46
|
+
import { type BaseCodecOptions, type DocumentCodec } from './types/base.js';
|
|
47
|
+
/**
|
|
48
|
+
* Options for composing RenderableDocuments without the codec wrapper.
|
|
49
|
+
*/
|
|
50
|
+
export interface ComposeOptions {
|
|
51
|
+
/** Document title for the composed output */
|
|
52
|
+
readonly title: string;
|
|
53
|
+
/** Optional purpose description */
|
|
54
|
+
readonly purpose?: string;
|
|
55
|
+
/** Optional detail level indicator */
|
|
56
|
+
readonly detailLevel?: string;
|
|
57
|
+
/** Insert separator blocks between document outputs (default: true) */
|
|
58
|
+
readonly separateSections?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Options for createCompositeCodec factory.
|
|
62
|
+
*/
|
|
63
|
+
export interface CompositeCodecOptions extends BaseCodecOptions {
|
|
64
|
+
/** Document title for the composite output */
|
|
65
|
+
readonly title: string;
|
|
66
|
+
/** Optional purpose description */
|
|
67
|
+
readonly purpose?: string;
|
|
68
|
+
/** Insert separator blocks between codec outputs (default: true) */
|
|
69
|
+
readonly separateSections?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Compose multiple RenderableDocuments into a single document.
|
|
73
|
+
*
|
|
74
|
+
* Concatenates sections in array order. Merges additionalFiles with
|
|
75
|
+
* last-wins semantics on key collision. Inserts separator blocks
|
|
76
|
+
* between non-empty document outputs by default.
|
|
77
|
+
*/
|
|
78
|
+
export declare function composeDocuments(documents: readonly RenderableDocument[], options: ComposeOptions): RenderableDocument;
|
|
79
|
+
/**
|
|
80
|
+
* Create a CompositeCodec that decodes each child codec against the same
|
|
81
|
+
* MasterDataset and composes their outputs into a single RenderableDocument.
|
|
82
|
+
*/
|
|
83
|
+
export declare function createCompositeCodec(codecs: readonly DocumentCodec[], options: CompositeCodecOptions): DocumentCodec;
|
|
84
|
+
//# sourceMappingURL=composite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../../src/renderable/codecs/composite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAOH,OAAO,EAAE,KAAK,kBAAkB,EAA0C,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AAOlG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,sCAAsC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,oEAAoE;IACpE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,kBAAkB,EAAE,EACxC,OAAO,EAAE,cAAc,GACtB,kBAAkB,CAmDpB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,OAAO,EAAE,qBAAqB,GAC7B,aAAa,CAuBf"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern CompositeCodec
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-implements ReferenceDocShowcase
|
|
7
|
+
* @architect-arch-role projection
|
|
8
|
+
* @architect-arch-context renderer
|
|
9
|
+
* @architect-arch-layer application
|
|
10
|
+
* @architect-convention codec-registry
|
|
11
|
+
* @architect-product-area:Generation
|
|
12
|
+
*
|
|
13
|
+
* ## CompositeCodec
|
|
14
|
+
*
|
|
15
|
+
* Assembles reference documents from multiple codec outputs by concatenating
|
|
16
|
+
* RenderableDocument sections. Enables building documents composed from any
|
|
17
|
+
* combination of existing codecs.
|
|
18
|
+
*
|
|
19
|
+
* **Purpose:** Assembles documents from multiple child codecs into a single RenderableDocument.
|
|
20
|
+
*
|
|
21
|
+
* **Output Files:** Configured per-instance (composes child codec outputs)
|
|
22
|
+
*
|
|
23
|
+
* ### When to Use
|
|
24
|
+
*
|
|
25
|
+
* - When building reference docs from multiple codec outputs
|
|
26
|
+
* - When composing session briefs from overview + current work + remaining work
|
|
27
|
+
* - When referenceDocConfigs need content from arbitrary codecs
|
|
28
|
+
*
|
|
29
|
+
* ### Factory Pattern
|
|
30
|
+
*
|
|
31
|
+
* Use the factory function with child codecs and options:
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const codec = createCompositeCodec(
|
|
34
|
+
* [OverviewCodec, CurrentWorkCodec, RemainingWorkCodec],
|
|
35
|
+
* { title: 'Session Brief' }
|
|
36
|
+
* );
|
|
37
|
+
* const doc = codec.decode(dataset);
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* Or use `composeDocuments` directly at the document level:
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const doc = composeDocuments([docA, docB], { title: 'Combined' });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
import { z } from 'zod';
|
|
46
|
+
import { MasterDatasetSchema, } from '../../validation-schemas/master-dataset.js';
|
|
47
|
+
import { separator, document } from '../schema.js';
|
|
48
|
+
import { DEFAULT_BASE_OPTIONS } from './types/base.js';
|
|
49
|
+
import { RenderableDocumentOutputSchema } from './shared-schema.js';
|
|
50
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
51
|
+
// composeDocuments — Pure Document Composition
|
|
52
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
53
|
+
/**
|
|
54
|
+
* Compose multiple RenderableDocuments into a single document.
|
|
55
|
+
*
|
|
56
|
+
* Concatenates sections in array order. Merges additionalFiles with
|
|
57
|
+
* last-wins semantics on key collision. Inserts separator blocks
|
|
58
|
+
* between non-empty document outputs by default.
|
|
59
|
+
*/
|
|
60
|
+
export function composeDocuments(documents, options) {
|
|
61
|
+
const sections = [];
|
|
62
|
+
let mergedAdditionalFiles;
|
|
63
|
+
let hasPreviousContent = false;
|
|
64
|
+
for (const currentDoc of documents) {
|
|
65
|
+
// Skip empty documents entirely (no separator emitted)
|
|
66
|
+
if (currentDoc.sections.length === 0 && currentDoc.additionalFiles === undefined) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
// Add separator between non-empty outputs
|
|
70
|
+
if (options.separateSections !== false &&
|
|
71
|
+
hasPreviousContent &&
|
|
72
|
+
currentDoc.sections.length > 0) {
|
|
73
|
+
sections.push(separator());
|
|
74
|
+
}
|
|
75
|
+
if (currentDoc.sections.length > 0) {
|
|
76
|
+
hasPreviousContent = true;
|
|
77
|
+
}
|
|
78
|
+
sections.push(...currentDoc.sections);
|
|
79
|
+
// Merge additionalFiles (last-wins on key collision)
|
|
80
|
+
if (currentDoc.additionalFiles !== undefined) {
|
|
81
|
+
mergedAdditionalFiles ??= {};
|
|
82
|
+
for (const [key, value] of Object.entries(currentDoc.additionalFiles)) {
|
|
83
|
+
mergedAdditionalFiles[key] = value;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const docOptions = {};
|
|
88
|
+
if (options.purpose !== undefined) {
|
|
89
|
+
docOptions.purpose = options.purpose;
|
|
90
|
+
}
|
|
91
|
+
if (options.detailLevel !== undefined) {
|
|
92
|
+
docOptions.detailLevel = options.detailLevel;
|
|
93
|
+
}
|
|
94
|
+
if (mergedAdditionalFiles !== undefined) {
|
|
95
|
+
docOptions.additionalFiles = mergedAdditionalFiles;
|
|
96
|
+
}
|
|
97
|
+
return document(options.title, sections, docOptions);
|
|
98
|
+
}
|
|
99
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
100
|
+
// createCompositeCodec — Codec Factory
|
|
101
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
102
|
+
/**
|
|
103
|
+
* Create a CompositeCodec that decodes each child codec against the same
|
|
104
|
+
* MasterDataset and composes their outputs into a single RenderableDocument.
|
|
105
|
+
*/
|
|
106
|
+
export function createCompositeCodec(codecs, options) {
|
|
107
|
+
const separateSections = options.separateSections ?? true;
|
|
108
|
+
const detailLevel = options.detailLevel ?? DEFAULT_BASE_OPTIONS.detailLevel;
|
|
109
|
+
return z.codec(MasterDatasetSchema, RenderableDocumentOutputSchema, {
|
|
110
|
+
decode: (dataset) => {
|
|
111
|
+
const documents = codecs.map((codec) => codec.decode(dataset));
|
|
112
|
+
const composeOpts = {
|
|
113
|
+
title: options.title,
|
|
114
|
+
detailLevel,
|
|
115
|
+
separateSections,
|
|
116
|
+
};
|
|
117
|
+
return composeDocuments(documents, options.purpose !== undefined ? { ...composeOpts, purpose: options.purpose } : composeOpts);
|
|
118
|
+
},
|
|
119
|
+
encode: () => {
|
|
120
|
+
throw new Error('CompositeCodec is decode-only');
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=composite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.js","sourceRoot":"","sources":["../../../src/renderable/codecs/composite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convention Extractor
|
|
3
|
+
*
|
|
4
|
+
* Filters MasterDataset for patterns tagged with `@architect-convention`
|
|
5
|
+
* and extracts convention content as structured data for reference codec
|
|
6
|
+
* composition. Supports two sources:
|
|
7
|
+
*
|
|
8
|
+
* - **Gherkin**: Extracts from `Rule:` blocks on the pattern's `rules` array
|
|
9
|
+
* - **TypeScript**: Decomposes JSDoc `directive.description` by `## Heading`
|
|
10
|
+
* sections, parsing each section for structured annotations
|
|
11
|
+
*
|
|
12
|
+
* Both sources produce the same `ConventionRuleContent` output, enabling
|
|
13
|
+
* Gherkin and TypeScript convention content to merge in the same bundle.
|
|
14
|
+
*
|
|
15
|
+
* @see CodecDrivenReferenceGeneration spec
|
|
16
|
+
* @see ReferenceDocShowcase spec
|
|
17
|
+
*/
|
|
18
|
+
import type { MasterDataset } from '../../validation-schemas/master-dataset.js';
|
|
19
|
+
import type { ExtractedPattern } from '../../validation-schemas/extracted-pattern.js';
|
|
20
|
+
import type { SectionBlock } from '../schema.js';
|
|
21
|
+
/**
|
|
22
|
+
* Structured content extracted from a decision record Rule block.
|
|
23
|
+
*/
|
|
24
|
+
export interface ConventionRuleContent {
|
|
25
|
+
/** Rule name (from Gherkin Rule: block or TypeScript ## heading) */
|
|
26
|
+
readonly ruleName: string;
|
|
27
|
+
/** Invariant statement if present */
|
|
28
|
+
readonly invariant?: string;
|
|
29
|
+
/** Rationale statement if present */
|
|
30
|
+
readonly rationale?: string;
|
|
31
|
+
/** Verified-by references if present */
|
|
32
|
+
readonly verifiedBy?: readonly string[];
|
|
33
|
+
/** Tables found in the Rule block description */
|
|
34
|
+
readonly tables: readonly ConventionTable[];
|
|
35
|
+
/** Code examples extracted from DocStrings in the rule description (includes mermaid diagrams) */
|
|
36
|
+
readonly codeExamples?: readonly SectionBlock[];
|
|
37
|
+
/** Free-text content (non-table, non-structured) */
|
|
38
|
+
readonly narrative: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A table extracted from a Rule block.
|
|
42
|
+
*/
|
|
43
|
+
export interface ConventionTable {
|
|
44
|
+
readonly headers: readonly string[];
|
|
45
|
+
readonly rows: ReadonlyArray<Record<string, string>>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* All convention content for a given tag value.
|
|
49
|
+
*/
|
|
50
|
+
export interface ConventionBundle {
|
|
51
|
+
/** The convention tag value (e.g., "fsm-rules") */
|
|
52
|
+
readonly conventionTag: string;
|
|
53
|
+
/** Source decision records that contributed */
|
|
54
|
+
readonly sourceDecisions: readonly string[];
|
|
55
|
+
/** Extracted Rule block content, ordered by source */
|
|
56
|
+
readonly rules: readonly ConventionRuleContent[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Extract markdown tables from description text.
|
|
60
|
+
*
|
|
61
|
+
* Identifies lines starting and ending with `|` as table rows,
|
|
62
|
+
* groups consecutive table lines, and parses headers + data rows.
|
|
63
|
+
*/
|
|
64
|
+
export declare function extractTablesFromDescription(description: string): ConventionTable[];
|
|
65
|
+
/**
|
|
66
|
+
* Extract markdown tables from description text and return as SectionBlock tables.
|
|
67
|
+
*
|
|
68
|
+
* Adapter that wraps `extractTablesFromDescription` for codecs that need
|
|
69
|
+
* `SectionBlock[]` output instead of `ConventionTable[]`.
|
|
70
|
+
*/
|
|
71
|
+
export declare function extractTablesAsSectionBlocks(description: string): SectionBlock[];
|
|
72
|
+
/**
|
|
73
|
+
* Extracts convention content from MasterDataset.
|
|
74
|
+
*
|
|
75
|
+
* Filters patterns tagged with `@architect-convention` matching the
|
|
76
|
+
* requested tag values. For Gherkin-sourced patterns, extracts from
|
|
77
|
+
* Rule: blocks. For TypeScript-sourced patterns (no rules array),
|
|
78
|
+
* decomposes the JSDoc description by ## headings.
|
|
79
|
+
*
|
|
80
|
+
* @param dataset - The MasterDataset containing all extracted patterns
|
|
81
|
+
* @param conventionTags - Convention tag values to filter by
|
|
82
|
+
* @returns Array of ConventionBundles, one per requested tag value
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* const conventions = extractConventions(dataset, ['fsm-rules', 'testing-policy']);
|
|
87
|
+
* // conventions[0].conventionTag === 'fsm-rules'
|
|
88
|
+
* // conventions[0].rules[0].ruleName === 'FSM Transitions'
|
|
89
|
+
* // conventions[0].rules[0].tables[0].headers === ['From', 'To', 'Condition']
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function extractConventions(dataset: MasterDataset, conventionTags: readonly string[]): ConventionBundle[];
|
|
93
|
+
/**
|
|
94
|
+
* Extract convention bundles from pre-filtered patterns.
|
|
95
|
+
*
|
|
96
|
+
* DD-1 (CrossCuttingDocumentInclusion): Used by the include-tag pass to
|
|
97
|
+
* build convention content from patterns selected by include tag rather
|
|
98
|
+
* than by conventionTags filter. Groups output by each pattern's convention
|
|
99
|
+
* tag values.
|
|
100
|
+
*
|
|
101
|
+
* @param patterns - Pre-filtered patterns that have convention content
|
|
102
|
+
* @returns Array of ConventionBundles
|
|
103
|
+
*/
|
|
104
|
+
export declare function extractConventionsFromPatterns(patterns: readonly ExtractedPattern[]): ConventionBundle[];
|
|
105
|
+
//# sourceMappingURL=convention-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convention-extractor.d.ts","sourceRoot":"","sources":["../../../src/renderable/codecs/convention-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQjD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,qCAAqC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,qCAAqC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,wCAAwC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAExC,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAE5C,kGAAkG;IAClG,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAEhD,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,+CAA+C;IAC/C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5C,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAClD;AAMD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CA0BnF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CAOhF;AAyLD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,gBAAgB,EAAE,CA6DpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GACpC,gBAAgB,EAAE,CAsCpB"}
|