@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,320 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-pattern ReferenceGeneratorRegistration
|
|
4
|
+
* @architect-status active
|
|
5
|
+
* @architect-implements CodecDrivenReferenceGeneration
|
|
6
|
+
*
|
|
7
|
+
* ## Reference Generator Registrations
|
|
8
|
+
*
|
|
9
|
+
* Registers all reference document generators. Each config produces
|
|
10
|
+
* TWO generators: detailed (docs/) and summary (_claude-md/).
|
|
11
|
+
*
|
|
12
|
+
* **When to Use:** When adding or modifying reference document generators — register new product-area or reference configs here.
|
|
13
|
+
*/
|
|
14
|
+
import { heading, paragraph, separator, table, document } from '../../renderable/schema.js';
|
|
15
|
+
import { renderToMarkdown, renderToClaudeMdModule } from '../../renderable/render.js';
|
|
16
|
+
import { createReferenceCodec, PRODUCT_AREA_META, buildScopedDiagram, } from '../../renderable/codecs/reference.js';
|
|
17
|
+
import { slugify, toKebabCase } from '../../utils/string-utils.js';
|
|
18
|
+
import { computeStatusCounts } from '../../renderable/utils.js';
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Reference Document Configurations
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// Product Area Configs (ADR-001)
|
|
24
|
+
// ============================================================================
|
|
25
|
+
/**
|
|
26
|
+
* Canonical product area values from ADR-001.
|
|
27
|
+
* Each generates a composite overview document scoped to that area.
|
|
28
|
+
*/
|
|
29
|
+
export const PRODUCT_AREA_VALUES = [
|
|
30
|
+
'Annotation',
|
|
31
|
+
'Configuration',
|
|
32
|
+
'Generation',
|
|
33
|
+
'Validation',
|
|
34
|
+
'DataAPI',
|
|
35
|
+
'CoreTypes',
|
|
36
|
+
'Process',
|
|
37
|
+
];
|
|
38
|
+
/**
|
|
39
|
+
* Creates reference document configs for all canonical product areas.
|
|
40
|
+
*
|
|
41
|
+
* Each config uses `productArea` as the primary filter — the codec
|
|
42
|
+
* auto-derives all content sources from the filtered pattern set.
|
|
43
|
+
* Explicit `conventionTags`, `shapeSelectors`, and `behaviorCategories`
|
|
44
|
+
* are left empty because the product-area decode path ignores them.
|
|
45
|
+
*
|
|
46
|
+
* @param options - Optional customization for output filenames
|
|
47
|
+
*/
|
|
48
|
+
export function createProductAreaConfigs(options) {
|
|
49
|
+
const suffix = options?.docsFilenameSuffix ?? '.md';
|
|
50
|
+
return PRODUCT_AREA_VALUES.map((area) => {
|
|
51
|
+
const kebab = toKebabCase(area);
|
|
52
|
+
return {
|
|
53
|
+
title: `${area} Overview`,
|
|
54
|
+
productArea: area,
|
|
55
|
+
conventionTags: [],
|
|
56
|
+
shapeSelectors: [],
|
|
57
|
+
behaviorCategories: [],
|
|
58
|
+
claudeMdSection: kebab,
|
|
59
|
+
docsFilename: `${kebab.toUpperCase()}${suffix}`,
|
|
60
|
+
claudeMdFilename: `${kebab}-overview.md`,
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// ============================================================================
|
|
65
|
+
// Reference Document Generator
|
|
66
|
+
// ============================================================================
|
|
67
|
+
/**
|
|
68
|
+
* Generator that wraps a reference codec for a specific config + detail level.
|
|
69
|
+
* Implements DocumentGenerator directly (not via CodecBasedGenerator).
|
|
70
|
+
*/
|
|
71
|
+
class ReferenceDocGenerator {
|
|
72
|
+
name;
|
|
73
|
+
description;
|
|
74
|
+
config;
|
|
75
|
+
detailLevel;
|
|
76
|
+
outputPath;
|
|
77
|
+
constructor(name, description, config, detailLevel, outputPath) {
|
|
78
|
+
this.name = name;
|
|
79
|
+
this.description = description;
|
|
80
|
+
this.config = config;
|
|
81
|
+
this.detailLevel = detailLevel;
|
|
82
|
+
this.outputPath = outputPath;
|
|
83
|
+
}
|
|
84
|
+
generate(_patterns, context) {
|
|
85
|
+
const dataset = context.masterDataset;
|
|
86
|
+
if (!dataset)
|
|
87
|
+
return Promise.resolve({ files: [] });
|
|
88
|
+
const codec = createReferenceCodec(this.config, {
|
|
89
|
+
detailLevel: this.detailLevel,
|
|
90
|
+
generateDetailFiles: false,
|
|
91
|
+
});
|
|
92
|
+
const doc = codec.decode(dataset);
|
|
93
|
+
// Summary-level output (for _claude-md/) uses modular-claude-md compatible renderer
|
|
94
|
+
const render = this.detailLevel === 'summary' ? renderToClaudeMdModule : renderToMarkdown;
|
|
95
|
+
const content = render(doc);
|
|
96
|
+
return Promise.resolve({
|
|
97
|
+
files: [{ path: this.outputPath, content }],
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// ============================================================================
|
|
102
|
+
// Registration
|
|
103
|
+
// ============================================================================
|
|
104
|
+
function toGeneratorName(title) {
|
|
105
|
+
return slugify(title.replace(/ Reference$/, ''));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Shared loop for generating detailed + summary file pairs from reference configs.
|
|
109
|
+
*/
|
|
110
|
+
function generateDualOutputFiles(configs, dataset, pathPrefix) {
|
|
111
|
+
const files = [];
|
|
112
|
+
for (const config of configs) {
|
|
113
|
+
// Detailed output -> {pathPrefix}/{docsFilename}
|
|
114
|
+
const detailedCodec = createReferenceCodec(config, {
|
|
115
|
+
detailLevel: 'detailed',
|
|
116
|
+
generateDetailFiles: false,
|
|
117
|
+
});
|
|
118
|
+
const detailedDoc = detailedCodec.decode(dataset);
|
|
119
|
+
files.push({
|
|
120
|
+
path: `${pathPrefix}/${config.docsFilename}`,
|
|
121
|
+
content: renderToMarkdown(detailedDoc),
|
|
122
|
+
});
|
|
123
|
+
// Summary output -> _claude-md/{section}/{filename}
|
|
124
|
+
const summaryCodec = createReferenceCodec(config, {
|
|
125
|
+
detailLevel: 'summary',
|
|
126
|
+
generateDetailFiles: false,
|
|
127
|
+
});
|
|
128
|
+
const summaryDoc = summaryCodec.decode(dataset);
|
|
129
|
+
files.push({
|
|
130
|
+
path: `_claude-md/${config.claudeMdSection}/${config.claudeMdFilename}`,
|
|
131
|
+
content: renderToClaudeMdModule(summaryDoc),
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return files;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Meta-generator that produces all reference documents (detailed + summary per config)
|
|
138
|
+
* from a single `-g reference-docs` invocation.
|
|
139
|
+
*
|
|
140
|
+
* Only handles configs WITHOUT `productArea` set. Product-area configs
|
|
141
|
+
* are handled by `ProductAreaDocsGenerator` instead.
|
|
142
|
+
*/
|
|
143
|
+
class ReferenceDocsGenerator {
|
|
144
|
+
configs;
|
|
145
|
+
name = 'reference-docs';
|
|
146
|
+
description;
|
|
147
|
+
constructor(configs) {
|
|
148
|
+
this.configs = configs;
|
|
149
|
+
this.description = `All reference documents (${configs.length} detailed + ${configs.length} summary)`;
|
|
150
|
+
}
|
|
151
|
+
generate(_patterns, context) {
|
|
152
|
+
const dataset = context.masterDataset;
|
|
153
|
+
if (!dataset)
|
|
154
|
+
return Promise.resolve({ files: [] });
|
|
155
|
+
const files = generateDualOutputFiles(this.configs, dataset, 'reference');
|
|
156
|
+
return Promise.resolve({ files });
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Meta-generator for product area overview documents.
|
|
161
|
+
*
|
|
162
|
+
* Handles configs WITH `productArea` set. Outputs detailed docs to
|
|
163
|
+
* `product-areas/{docsFilename}` and also generates a progressive
|
|
164
|
+
* disclosure index at `PRODUCT-AREAS.md`.
|
|
165
|
+
*/
|
|
166
|
+
class ProductAreaDocsGenerator {
|
|
167
|
+
configs;
|
|
168
|
+
name = 'product-area-docs';
|
|
169
|
+
description;
|
|
170
|
+
constructor(configs) {
|
|
171
|
+
this.configs = configs;
|
|
172
|
+
this.description = `Product area overview documents (${configs.length} areas)`;
|
|
173
|
+
}
|
|
174
|
+
generate(_patterns, context) {
|
|
175
|
+
const dataset = context.masterDataset;
|
|
176
|
+
if (!dataset)
|
|
177
|
+
return Promise.resolve({ files: [] });
|
|
178
|
+
const files = generateDualOutputFiles(this.configs, dataset, 'product-areas');
|
|
179
|
+
// Progressive disclosure index
|
|
180
|
+
files.push({
|
|
181
|
+
path: 'PRODUCT-AREAS.md',
|
|
182
|
+
content: buildProductAreaIndex(this.configs, dataset),
|
|
183
|
+
});
|
|
184
|
+
return Promise.resolve({ files });
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Builds a progressive disclosure index for product area documents.
|
|
189
|
+
*
|
|
190
|
+
* Data-driven: computes per-area statistics from MasterDataset patterns,
|
|
191
|
+
* renders cross-area progress table, and generates live Mermaid diagrams
|
|
192
|
+
* from annotation relationship data via buildScopedDiagram.
|
|
193
|
+
*/
|
|
194
|
+
function buildProductAreaIndex(configs, dataset) {
|
|
195
|
+
const sections = [];
|
|
196
|
+
// Use pre-computed byProductArea view (ADR-006: no re-derivation from raw patterns)
|
|
197
|
+
const areaStats = new Map();
|
|
198
|
+
for (const [area, patterns] of Object.entries(dataset.byProductArea)) {
|
|
199
|
+
areaStats.set(area, computeStatusCounts(patterns));
|
|
200
|
+
}
|
|
201
|
+
// Per-area sections with intro prose and live statistics
|
|
202
|
+
for (const config of configs) {
|
|
203
|
+
const area = config.productArea;
|
|
204
|
+
if (area === undefined)
|
|
205
|
+
continue;
|
|
206
|
+
const meta = PRODUCT_AREA_META[area];
|
|
207
|
+
if (meta === undefined)
|
|
208
|
+
continue;
|
|
209
|
+
sections.push(heading(2, `[${area}](product-areas/${config.docsFilename})`));
|
|
210
|
+
sections.push(paragraph(`> **${meta.question}**`));
|
|
211
|
+
sections.push(paragraph(meta.intro));
|
|
212
|
+
// Live per-area statistics from pre-computed stats
|
|
213
|
+
const stats = areaStats.get(area);
|
|
214
|
+
if (stats !== undefined && stats.total > 0) {
|
|
215
|
+
sections.push(paragraph(`**${stats.total} patterns** — ${stats.completed} completed, ${stats.active} active, ${stats.planned} planned`));
|
|
216
|
+
}
|
|
217
|
+
// Key patterns from curated list
|
|
218
|
+
if (meta.keyPatterns.length > 0) {
|
|
219
|
+
sections.push(paragraph(`**Key patterns:** ${meta.keyPatterns.join(', ')}`));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
sections.push(separator());
|
|
223
|
+
// Cross-area progress summary table (reuses pre-computed stats)
|
|
224
|
+
const tableHeaders = ['Area', 'Patterns', 'Completed', 'Active', 'Planned'];
|
|
225
|
+
const tableRows = [];
|
|
226
|
+
let totalPatterns = 0;
|
|
227
|
+
let totalCompleted = 0;
|
|
228
|
+
let totalActive = 0;
|
|
229
|
+
let totalPlanned = 0;
|
|
230
|
+
for (const config of configs) {
|
|
231
|
+
const area = config.productArea;
|
|
232
|
+
if (area === undefined)
|
|
233
|
+
continue;
|
|
234
|
+
const stats = areaStats.get(area) ?? { total: 0, completed: 0, active: 0, planned: 0 };
|
|
235
|
+
tableRows.push([
|
|
236
|
+
`[${area}](product-areas/${config.docsFilename})`,
|
|
237
|
+
String(stats.total),
|
|
238
|
+
String(stats.completed),
|
|
239
|
+
String(stats.active),
|
|
240
|
+
String(stats.planned),
|
|
241
|
+
]);
|
|
242
|
+
totalPatterns += stats.total;
|
|
243
|
+
totalCompleted += stats.completed;
|
|
244
|
+
totalActive += stats.active;
|
|
245
|
+
totalPlanned += stats.planned;
|
|
246
|
+
}
|
|
247
|
+
tableRows.push([
|
|
248
|
+
'**Total**',
|
|
249
|
+
`**${totalPatterns}**`,
|
|
250
|
+
`**${totalCompleted}**`,
|
|
251
|
+
`**${totalActive}**`,
|
|
252
|
+
`**${totalPlanned}**`,
|
|
253
|
+
]);
|
|
254
|
+
sections.push(heading(2, 'Progress Overview'));
|
|
255
|
+
sections.push(table(tableHeaders, tableRows));
|
|
256
|
+
sections.push(separator());
|
|
257
|
+
// Live cross-area diagrams from annotation data
|
|
258
|
+
// Collect key patterns from all areas for a curated cross-area view
|
|
259
|
+
const allKeyPatterns = [];
|
|
260
|
+
for (const config of configs) {
|
|
261
|
+
const area = config.productArea;
|
|
262
|
+
if (area === undefined)
|
|
263
|
+
continue;
|
|
264
|
+
const meta = PRODUCT_AREA_META[area];
|
|
265
|
+
if (meta !== undefined) {
|
|
266
|
+
allKeyPatterns.push(...meta.keyPatterns);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Diagram 1: C4Context cross-area system overview
|
|
270
|
+
const c4Scope = {
|
|
271
|
+
title: 'System Architecture',
|
|
272
|
+
diagramType: 'C4Context',
|
|
273
|
+
patterns: allKeyPatterns,
|
|
274
|
+
};
|
|
275
|
+
sections.push(...buildScopedDiagram(dataset, c4Scope));
|
|
276
|
+
// Diagram 2: Flowchart showing cross-area relationships
|
|
277
|
+
const flowScope = {
|
|
278
|
+
title: 'Cross-Area Pattern Relationships',
|
|
279
|
+
direction: 'LR',
|
|
280
|
+
patterns: allKeyPatterns,
|
|
281
|
+
};
|
|
282
|
+
sections.push(...buildScopedDiagram(dataset, flowScope));
|
|
283
|
+
const doc = document('Product Areas', sections, {
|
|
284
|
+
purpose: 'Product area overview index',
|
|
285
|
+
detailLevel: 'Full reference',
|
|
286
|
+
});
|
|
287
|
+
return renderToMarkdown(doc);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Registers reference generators from the provided configs in the GeneratorRegistry.
|
|
291
|
+
*
|
|
292
|
+
* Partitions configs by `productArea` presence:
|
|
293
|
+
* - Configs WITH `productArea` -> "product-area-docs" meta-generator
|
|
294
|
+
* - Configs WITHOUT `productArea` -> "reference-docs" meta-generator
|
|
295
|
+
* - Individual generators registered for all configs
|
|
296
|
+
*
|
|
297
|
+
* @param registry - The generator registry to register into
|
|
298
|
+
* @param configs - Reference document configurations (from project config)
|
|
299
|
+
*/
|
|
300
|
+
export function registerReferenceGenerators(registry, configs) {
|
|
301
|
+
// Partition configs by productArea presence
|
|
302
|
+
const productAreaConfigs = configs.filter((c) => c.productArea !== undefined);
|
|
303
|
+
const referenceConfigs = configs.filter((c) => c.productArea === undefined);
|
|
304
|
+
// Product area meta-generator
|
|
305
|
+
if (productAreaConfigs.length > 0) {
|
|
306
|
+
registry.register(new ProductAreaDocsGenerator(productAreaConfigs));
|
|
307
|
+
}
|
|
308
|
+
// Standard reference-docs meta-generator
|
|
309
|
+
if (referenceConfigs.length > 0) {
|
|
310
|
+
registry.register(new ReferenceDocsGenerator(referenceConfigs));
|
|
311
|
+
}
|
|
312
|
+
// Individual generators: selective invocation per document
|
|
313
|
+
for (const config of configs) {
|
|
314
|
+
const kebabName = toGeneratorName(config.title);
|
|
315
|
+
const docsPrefix = config.productArea !== undefined ? 'product-areas' : 'reference';
|
|
316
|
+
registry.register(new ReferenceDocGenerator(`${kebabName}-reference`, `${config.title} (detailed)`, config, 'detailed', `${docsPrefix}/${config.docsFilename}`));
|
|
317
|
+
registry.register(new ReferenceDocGenerator(`${kebabName}-reference-claude`, `${config.title} (summary)`, config, 'summary', `_claude-md/${config.claudeMdSection}/${config.claudeMdFilename}`));
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
//# sourceMappingURL=reference-generators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-generators.js","sourceRoot":"","sources":["../../../src/generators/built-in/reference-generators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern CodecBasedGenerator
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-arch-role service
|
|
7
|
+
* @architect-arch-context generator
|
|
8
|
+
* @architect-arch-layer application
|
|
9
|
+
*
|
|
10
|
+
* ## Codec-Based Generator
|
|
11
|
+
*
|
|
12
|
+
* Adapts the new RenderableDocument Model (RDM) codec system to the
|
|
13
|
+
* existing DocumentGenerator interface. This allows codec-based document
|
|
14
|
+
* generation to work seamlessly with the existing orchestrator.
|
|
15
|
+
*
|
|
16
|
+
* ### When to Use
|
|
17
|
+
*
|
|
18
|
+
* - When creating a new document type generator using the RDM codec pattern
|
|
19
|
+
* - When adapting a Zod codec to the DocumentGenerator interface
|
|
20
|
+
* - When understanding how codec-based generation integrates with the orchestrator
|
|
21
|
+
*
|
|
22
|
+
* Architecture:
|
|
23
|
+
* ```
|
|
24
|
+
* GeneratorContext.masterDataset → Codec.decode() → RenderableDocument → renderDocumentWithFiles() → OutputFile[]
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import type { DocumentGenerator, GeneratorContext, GeneratorOutput } from './types.js';
|
|
28
|
+
import type { ExtractedPattern } from '../validation-schemas/index.js';
|
|
29
|
+
import { type DocumentType } from '../renderable/generate.js';
|
|
30
|
+
/**
|
|
31
|
+
* Codec-based generator that wraps the new RDM system.
|
|
32
|
+
*
|
|
33
|
+
* Each instance handles a single document type and uses the corresponding
|
|
34
|
+
* codec to transform MasterDataset into RenderableDocument, then renders
|
|
35
|
+
* to markdown.
|
|
36
|
+
*/
|
|
37
|
+
export declare class CodecBasedGenerator implements DocumentGenerator {
|
|
38
|
+
readonly name: string;
|
|
39
|
+
private readonly documentType;
|
|
40
|
+
readonly description: string;
|
|
41
|
+
constructor(name: string, documentType: DocumentType);
|
|
42
|
+
generate(_patterns: readonly ExtractedPattern[], context: GeneratorContext): Promise<GeneratorOutput>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a codec-based generator for a specific document type.
|
|
46
|
+
*
|
|
47
|
+
* @param name - Generator name for registry
|
|
48
|
+
* @param documentType - Document type key from DOCUMENT_TYPES
|
|
49
|
+
* @returns DocumentGenerator instance
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const generator = createCodecGenerator("patterns-v2", "patterns");
|
|
54
|
+
* generatorRegistry.register(generator);
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function createCodecGenerator(name: string, documentType: DocumentType): DocumentGenerator;
|
|
58
|
+
/**
|
|
59
|
+
* Available codec-based document types.
|
|
60
|
+
* Re-exported from generate.ts for convenience.
|
|
61
|
+
*/
|
|
62
|
+
export { DOCUMENT_TYPES, type DocumentType } from '../renderable/generate.js';
|
|
63
|
+
//# sourceMappingURL=codec-based.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec-based.d.ts","sourceRoot":"","sources":["../../src/generators/codec-based.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAoB,KAAK,YAAY,EAAkB,MAAM,2BAA2B,CAAC;AAEhG;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;IAIzD,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJ/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAGlB,IAAI,EAAE,MAAM,EACJ,YAAY,EAAE,YAAY;IAK7C,QAAQ,CACN,SAAS,EAAE,SAAS,gBAAgB,EAAE,EACtC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;CAyB5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,iBAAiB,CAEhG;AAED;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern CodecBasedGenerator
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-arch-role service
|
|
7
|
+
* @architect-arch-context generator
|
|
8
|
+
* @architect-arch-layer application
|
|
9
|
+
*
|
|
10
|
+
* ## Codec-Based Generator
|
|
11
|
+
*
|
|
12
|
+
* Adapts the new RenderableDocument Model (RDM) codec system to the
|
|
13
|
+
* existing DocumentGenerator interface. This allows codec-based document
|
|
14
|
+
* generation to work seamlessly with the existing orchestrator.
|
|
15
|
+
*
|
|
16
|
+
* ### When to Use
|
|
17
|
+
*
|
|
18
|
+
* - When creating a new document type generator using the RDM codec pattern
|
|
19
|
+
* - When adapting a Zod codec to the DocumentGenerator interface
|
|
20
|
+
* - When understanding how codec-based generation integrates with the orchestrator
|
|
21
|
+
*
|
|
22
|
+
* Architecture:
|
|
23
|
+
* ```
|
|
24
|
+
* GeneratorContext.masterDataset → Codec.decode() → RenderableDocument → renderDocumentWithFiles() → OutputFile[]
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import { generateDocument, DOCUMENT_TYPES } from '../renderable/generate.js';
|
|
28
|
+
/**
|
|
29
|
+
* Codec-based generator that wraps the new RDM system.
|
|
30
|
+
*
|
|
31
|
+
* Each instance handles a single document type and uses the corresponding
|
|
32
|
+
* codec to transform MasterDataset into RenderableDocument, then renders
|
|
33
|
+
* to markdown.
|
|
34
|
+
*/
|
|
35
|
+
export class CodecBasedGenerator {
|
|
36
|
+
name;
|
|
37
|
+
documentType;
|
|
38
|
+
description;
|
|
39
|
+
constructor(name, documentType) {
|
|
40
|
+
this.name = name;
|
|
41
|
+
this.documentType = documentType;
|
|
42
|
+
this.description = DOCUMENT_TYPES[documentType].description;
|
|
43
|
+
}
|
|
44
|
+
generate(_patterns, context) {
|
|
45
|
+
// Codec-based generation requires MasterDataset
|
|
46
|
+
if (!context.masterDataset) {
|
|
47
|
+
return Promise.resolve({
|
|
48
|
+
files: [],
|
|
49
|
+
errors: [
|
|
50
|
+
{
|
|
51
|
+
type: 'generator',
|
|
52
|
+
message: `Generator "${this.name}" requires MasterDataset in context but none was provided. Ensure the orchestrator creates a MasterDataset before running codec-based generators.`,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// Convert RuntimeMasterDataset to MasterDataset format
|
|
58
|
+
// The RDM codecs expect the Zod-inferred MasterDataset type
|
|
59
|
+
const dataset = context.masterDataset;
|
|
60
|
+
// Generate document using codec, passing through any codec-specific options
|
|
61
|
+
const outputFiles = generateDocument(this.documentType, dataset, context.codecOptions);
|
|
62
|
+
return Promise.resolve({
|
|
63
|
+
files: outputFiles,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Create a codec-based generator for a specific document type.
|
|
69
|
+
*
|
|
70
|
+
* @param name - Generator name for registry
|
|
71
|
+
* @param documentType - Document type key from DOCUMENT_TYPES
|
|
72
|
+
* @returns DocumentGenerator instance
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const generator = createCodecGenerator("patterns-v2", "patterns");
|
|
77
|
+
* generatorRegistry.register(generator);
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export function createCodecGenerator(name, documentType) {
|
|
81
|
+
return new CodecBasedGenerator(name, documentType);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Available codec-based document types.
|
|
85
|
+
* Re-exported from generate.ts for convenience.
|
|
86
|
+
*/
|
|
87
|
+
export { DOCUMENT_TYPES } from '../renderable/generate.js';
|
|
88
|
+
//# sourceMappingURL=codec-based.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec-based.js","sourceRoot":"","sources":["../../src/generators/codec-based.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,EAAE,gBAAgB,EAAqB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhG;;;;;;GAMG;AACH,MAAM,OAAO,mBAAmB;IAInB;IACQ;IAJV,WAAW,CAAS;IAE7B,YACW,IAAY,EACJ,YAA0B;QADlC,SAAI,GAAJ,IAAI,CAAQ;QACJ,iBAAY,GAAZ,YAAY,CAAc;QAE3C,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;IAC9D,CAAC;IAED,QAAQ,CACN,SAAsC,EACtC,OAAyB;QAEzB,gDAAgD;QAChD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,WAAoB;wBAC1B,OAAO,EAAE,cAAc,IAAI,CAAC,IAAI,mJAAmJ;qBACpL;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,uDAAuD;QACvD,4DAA4D;QAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;QAEtC,4EAA4E;QAC5E,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAEvF,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,YAA0B;IAC3E,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAqB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern ContentDeduplicator
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-arch-role infrastructure
|
|
7
|
+
* @architect-arch-context generator
|
|
8
|
+
* @architect-arch-layer infrastructure
|
|
9
|
+
*
|
|
10
|
+
* ## Content Deduplicator - Duplicate Content Detection and Merging
|
|
11
|
+
*
|
|
12
|
+
* Identifies and merges duplicate sections extracted from multiple sources.
|
|
13
|
+
* Uses content fingerprinting to detect duplicates and merges them based on
|
|
14
|
+
* configurable priority rules.
|
|
15
|
+
*
|
|
16
|
+
* ### When to Use
|
|
17
|
+
*
|
|
18
|
+
* - After source mapping extracts content from multiple files
|
|
19
|
+
* - When multiple sources may contain the same documentation
|
|
20
|
+
* - Before assembling the final RenderableDocument
|
|
21
|
+
*
|
|
22
|
+
* ### Key Concepts
|
|
23
|
+
*
|
|
24
|
+
* - **Content Fingerprint**: SHA-256 hash of normalized text for duplicate detection
|
|
25
|
+
* - **Source Priority**: TypeScript > Decision > Feature file
|
|
26
|
+
* - **Content Richness**: More lines wins when priorities are equal
|
|
27
|
+
* - **Header Disambiguation**: Adds source suffix when headers conflict
|
|
28
|
+
*/
|
|
29
|
+
import type { ExtractedSection } from './source-mapper.js';
|
|
30
|
+
import type { Warning, WarningCollector } from './warning-collector.js';
|
|
31
|
+
/**
|
|
32
|
+
* A content block with metadata for deduplication
|
|
33
|
+
*/
|
|
34
|
+
export interface ContentBlock {
|
|
35
|
+
/** Section header text */
|
|
36
|
+
header: string;
|
|
37
|
+
/** Section body content */
|
|
38
|
+
body: string;
|
|
39
|
+
/** Source file path */
|
|
40
|
+
source: string;
|
|
41
|
+
/** Content fingerprint for duplicate detection */
|
|
42
|
+
fingerprint?: string;
|
|
43
|
+
/** Number of lines in the body */
|
|
44
|
+
lineCount: number;
|
|
45
|
+
/** Original index in the input array (for precise removal) */
|
|
46
|
+
originalIndex?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A pair of content blocks that were merged
|
|
50
|
+
*/
|
|
51
|
+
export interface MergedPair {
|
|
52
|
+
/** The content block that was kept */
|
|
53
|
+
kept: ContentBlock;
|
|
54
|
+
/** The content block that was removed */
|
|
55
|
+
removed: ContentBlock;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Result of deduplication processing.
|
|
59
|
+
*
|
|
60
|
+
* Warnings are captured via two parallel paths:
|
|
61
|
+
* 1. Through the optional `warningCollector` passed in options (side-effect, preferred)
|
|
62
|
+
* 2. In the returned `warnings` array (for callers without a collector)
|
|
63
|
+
*
|
|
64
|
+
* When a `warningCollector` is provided, warnings flow to both paths. Callers should
|
|
65
|
+
* use ONE path for consuming warnings - either the collector OR the returned array.
|
|
66
|
+
* The decision-doc-generator uses the collector when available, falling back to the
|
|
67
|
+
* returned array when warning collection is disabled.
|
|
68
|
+
*/
|
|
69
|
+
export interface DeduplicationResult {
|
|
70
|
+
/** Deduplicated sections in original order */
|
|
71
|
+
sections: ExtractedSection[];
|
|
72
|
+
/** Pairs of content that were merged */
|
|
73
|
+
mergedPairs: MergedPair[];
|
|
74
|
+
/** Warnings produced during deduplication (always populated regardless of collector) */
|
|
75
|
+
warnings: Warning[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Options for deduplication
|
|
79
|
+
*/
|
|
80
|
+
export interface DeduplicatorOptions {
|
|
81
|
+
/** Optional warning collector for capturing warnings */
|
|
82
|
+
warningCollector?: WarningCollector;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Compute a content fingerprint using SHA-256.
|
|
86
|
+
* Returns a 16-character hex string (64 bits).
|
|
87
|
+
*
|
|
88
|
+
* Note: 16 hex chars (64 bits) provides sufficient collision resistance for
|
|
89
|
+
* documentation deduplication. Birthday paradox collision probability is
|
|
90
|
+
* less than 0.001% for up to 10,000 sections, which exceeds expected usage.
|
|
91
|
+
*/
|
|
92
|
+
export declare function computeFingerprint(content: string): string;
|
|
93
|
+
/**
|
|
94
|
+
* Find duplicate content blocks by fingerprint.
|
|
95
|
+
* Returns a map from fingerprint to all blocks with that fingerprint.
|
|
96
|
+
*/
|
|
97
|
+
export declare function findDuplicates(blocks: ContentBlock[]): Map<string, ContentBlock[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Deduplicate sections extracted from multiple sources.
|
|
100
|
+
*
|
|
101
|
+
* Algorithm:
|
|
102
|
+
* 1. Convert sections to content blocks with fingerprints
|
|
103
|
+
* 2. Find duplicate fingerprints
|
|
104
|
+
* 3. For each duplicate group, keep highest priority source (or richest content)
|
|
105
|
+
* 4. Handle header conflicts (same header, different content)
|
|
106
|
+
* 5. Remove empty sections
|
|
107
|
+
* 6. Preserve original order (first occurrence position)
|
|
108
|
+
*
|
|
109
|
+
* @param sections - Extracted sections to deduplicate
|
|
110
|
+
* @param options - Deduplication options
|
|
111
|
+
* @returns Deduplicated sections with merge info and warnings
|
|
112
|
+
*/
|
|
113
|
+
export declare function deduplicateSections(sections: readonly ExtractedSection[], options?: DeduplicatorOptions): DeduplicationResult;
|
|
114
|
+
//# sourceMappingURL=content-deduplicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-deduplicator.d.ts","sourceRoot":"","sources":["../../src/generators/content-deduplicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAMxE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IAEb,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IAEf,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,IAAI,EAAE,YAAY,CAAC;IAEnB,yCAAyC;IACzC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAE7B,wCAAwC;IACxC,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,wFAAwF;IACxF,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AA0CD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO1D;AA4DD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAyBlF;AA8ED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,CA4IrB"}
|