@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,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern PatternIdGenerator
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-used-by DocExtractor, GherkinExtractor
|
|
7
|
+
*
|
|
8
|
+
* ## Pattern ID Generator - Deterministic ID Generation
|
|
9
|
+
*
|
|
10
|
+
* Generates unique, deterministic pattern IDs based on file path and line number.
|
|
11
|
+
* Uses MD5 hashing to produce stable 8-character identifiers.
|
|
12
|
+
*
|
|
13
|
+
* ### When to Use
|
|
14
|
+
*
|
|
15
|
+
* - When extracting patterns from TypeScript or Gherkin files
|
|
16
|
+
* - When needing stable IDs that survive re-extraction
|
|
17
|
+
* - When correlating patterns across multiple extraction runs
|
|
18
|
+
*
|
|
19
|
+
* ### Key Concepts
|
|
20
|
+
*
|
|
21
|
+
* - **Deterministic**: Same file + line always produces same ID
|
|
22
|
+
* - **Collision-resistant**: MD5 hash provides adequate uniqueness for pattern counts
|
|
23
|
+
* - **Human-friendly prefix**: `pattern-` prefix aids debugging and identification
|
|
24
|
+
*/
|
|
25
|
+
import * as crypto from 'crypto';
|
|
26
|
+
/**
|
|
27
|
+
* Generate a deterministic pattern ID from file path and line number
|
|
28
|
+
*
|
|
29
|
+
* Creates a unique identifier based on the combination of file path and
|
|
30
|
+
* starting line number. The same inputs will always produce the same output,
|
|
31
|
+
* making pattern IDs stable across multiple extraction runs.
|
|
32
|
+
*
|
|
33
|
+
* @param filePath - Relative file path (e.g., 'src/utils.ts')
|
|
34
|
+
* @param line - Line number where the pattern starts
|
|
35
|
+
* @returns Pattern ID in format 'pattern-{8-char-hash}'
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const id1 = generatePatternId('src/utils.ts', 42);
|
|
40
|
+
* const id2 = generatePatternId('src/utils.ts', 42);
|
|
41
|
+
*
|
|
42
|
+
* console.log(id1 === id2); // true (deterministic)
|
|
43
|
+
* console.log(id1); // 'pattern-a1b2c3d4'
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export function generatePatternId(filePath, line) {
|
|
47
|
+
const input = `${filePath}:${line}`;
|
|
48
|
+
const hash = crypto.createHash('md5').update(input).digest('hex').slice(0, 8);
|
|
49
|
+
return `pattern-${hash}`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=id-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-utils.js","sourceRoot":"","sources":["../../src/utils/id-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,IAAY;IAC9D,MAAM,KAAK,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,WAAW,IAAI,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern UtilsModule
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-uses StringUtilities, CollectionUtilities
|
|
7
|
+
*
|
|
8
|
+
* ## UtilsModule - Shared Utilities Barrel Export
|
|
9
|
+
*
|
|
10
|
+
* Common helper functions used across the Architect package.
|
|
11
|
+
* Provides text transformation and collection manipulation utilities.
|
|
12
|
+
*
|
|
13
|
+
* ### When to Use
|
|
14
|
+
*
|
|
15
|
+
* - Use when importing utility functions from the package
|
|
16
|
+
* - Use for consistent text slugification or collection grouping
|
|
17
|
+
*/
|
|
18
|
+
export { slugify, toKebabCase, camelCaseToTitleCase, normalizeLineEndings, } from './string-utils.js';
|
|
19
|
+
export { groupBy } from './collection-utils.js';
|
|
20
|
+
export { generatePatternId } from './id-utils.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern UtilsModule
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-uses StringUtilities, CollectionUtilities
|
|
7
|
+
*
|
|
8
|
+
* ## UtilsModule - Shared Utilities Barrel Export
|
|
9
|
+
*
|
|
10
|
+
* Common helper functions used across the Architect package.
|
|
11
|
+
* Provides text transformation and collection manipulation utilities.
|
|
12
|
+
*
|
|
13
|
+
* ### When to Use
|
|
14
|
+
*
|
|
15
|
+
* - Use when importing utility functions from the package
|
|
16
|
+
* - Use for consistent text slugification or collection grouping
|
|
17
|
+
*/
|
|
18
|
+
export { slugify, toKebabCase, camelCaseToTitleCase, normalizeLineEndings, } from './string-utils.js';
|
|
19
|
+
export { groupBy } from './collection-utils.js';
|
|
20
|
+
export { generatePatternId } from './id-utils.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern StringUtilities
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-used-by DocExtractor, SectionRenderer
|
|
7
|
+
*
|
|
8
|
+
* ## StringUtilities - Text Transformation Functions
|
|
9
|
+
*
|
|
10
|
+
* Provides shared utilities for string manipulation used across the Architect package,
|
|
11
|
+
* including slugification for URLs/filenames and Markdown formatting cleanup.
|
|
12
|
+
*
|
|
13
|
+
* ### When to Use
|
|
14
|
+
*
|
|
15
|
+
* - Use `slugify()` when generating URL-safe identifiers for HTML anchors or filenames
|
|
16
|
+
* - Use when normalizing text for consistent formatting across generated docs
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Convert a string to a URL/filename-safe slug (lowercase, alphanumeric, hyphens)
|
|
20
|
+
*
|
|
21
|
+
* Transforms text into a normalized format suitable for:
|
|
22
|
+
* - HTML anchor IDs
|
|
23
|
+
* - Filenames
|
|
24
|
+
* - URL slugs
|
|
25
|
+
*
|
|
26
|
+
* **Note:** Non-ASCII characters (including Unicode) are removed, not transliterated.
|
|
27
|
+
* For example, `"hello-日本語"` becomes `"hello"`.
|
|
28
|
+
*
|
|
29
|
+
* @param text - Input text to slugify
|
|
30
|
+
* @returns Slug string (lowercase, alphanumeric with hyphens)
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* slugify('User Authentication'); // 'user-authentication'
|
|
35
|
+
* slugify('Create User (v2)'); // 'create-user-v2'
|
|
36
|
+
* slugify('---test---'); // 'test'
|
|
37
|
+
* slugify('Hello World!'); // 'hello-world'
|
|
38
|
+
* slugify('UPPER_CASE_TEXT'); // 'upper-case-text'
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function slugify(text: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* Convert CamelCase or PascalCase text to kebab-case with proper word separation
|
|
44
|
+
*
|
|
45
|
+
* Handles various naming conventions:
|
|
46
|
+
* - PascalCase: `DeciderPattern` → `decider-pattern`
|
|
47
|
+
* - Mixed case: `BddTestingInfrastructure` → `bdd-testing-infrastructure`
|
|
48
|
+
* - Consecutive uppercase: `APIEndpoint` → `api-endpoint`
|
|
49
|
+
* - Numbers: `OAuth2Flow` → `o-auth-2-flow`
|
|
50
|
+
* - Already kebab-case: `already-kebab` → `already-kebab`
|
|
51
|
+
*
|
|
52
|
+
* **Note:** Unlike `slugify()`, this function properly splits CamelCase words
|
|
53
|
+
* instead of just lowercasing them together.
|
|
54
|
+
*
|
|
55
|
+
* @param text - Input text (CamelCase, PascalCase, or mixed)
|
|
56
|
+
* @returns kebab-case string
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* toKebabCase('DeciderPattern'); // 'decider-pattern'
|
|
61
|
+
* toKebabCase('BddTestingInfrastructure'); // 'bdd-testing-infrastructure'
|
|
62
|
+
* toKebabCase('APIEndpoint'); // 'api-endpoint'
|
|
63
|
+
* toKebabCase('OAuth2Flow'); // 'o-auth-2-flow'
|
|
64
|
+
* toKebabCase('DCB'); // 'dcb'
|
|
65
|
+
* toKebabCase('ProcessGuardLinter'); // 'process-guard-linter'
|
|
66
|
+
* toKebabCase('already-kebab'); // 'already-kebab'
|
|
67
|
+
* toKebabCase('Pattern (v2)'); // 'pattern-v2'
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function toKebabCase(text: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* Convert PascalCase or camelCase text to UPPER-KEBAB-CASE
|
|
73
|
+
*
|
|
74
|
+
* This is useful for generating constant-style identifiers or
|
|
75
|
+
* documentation file names that use uppercase conventions.
|
|
76
|
+
*
|
|
77
|
+
* @param text - Input text in PascalCase or camelCase
|
|
78
|
+
* @returns UPPER-KEBAB-CASE string
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* toUpperKebabCase('ProcessGuard'); // 'PROCESS-GUARD'
|
|
83
|
+
* toUpperKebabCase('DecisionDocCodec'); // 'DECISION-DOC-CODEC'
|
|
84
|
+
* toUpperKebabCase('OAuth2Flow'); // 'O-AUTH-2-FLOW'
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function toUpperKebabCase(text: string): string;
|
|
88
|
+
/**
|
|
89
|
+
* Convert CamelCase or PascalCase text to "Title Case" with spaces
|
|
90
|
+
*
|
|
91
|
+
* Handles various naming conventions:
|
|
92
|
+
* - PascalCase: `RemainingWorkEnhancement` → `Remaining Work Enhancement`
|
|
93
|
+
* - Acronyms: `HTTPServer` → `HTTP Server`
|
|
94
|
+
* - Mixed: `OAuth2Client` → `OAuth2 Client`
|
|
95
|
+
* - kebab-case: `remaining-work` → `remaining work`
|
|
96
|
+
* - Known acronyms: `DoDValidator` → `DoD Validator` (not `Do D Validator`)
|
|
97
|
+
*
|
|
98
|
+
* @param text - Input text in CamelCase, PascalCase, or kebab-case
|
|
99
|
+
* @returns Human-readable title case string
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* camelCaseToTitleCase('RemainingWorkEnhancement'); // 'Remaining Work Enhancement'
|
|
104
|
+
* camelCaseToTitleCase('HTTPServer'); // 'HTTP Server'
|
|
105
|
+
* camelCaseToTitleCase('OAuth2Client'); // 'OAuth2 Client'
|
|
106
|
+
* camelCaseToTitleCase('XMLParser'); // 'XML Parser'
|
|
107
|
+
* camelCaseToTitleCase('parseJSON'); // 'parse JSON'
|
|
108
|
+
* camelCaseToTitleCase('DoDValidator'); // 'DoD Validator'
|
|
109
|
+
* camelCaseToTitleCase('TypeScriptAST'); // 'TypeScript AST'
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare function camelCaseToTitleCase(text: string): string;
|
|
113
|
+
/**
|
|
114
|
+
* Normalize line endings from Windows CRLF to Unix LF.
|
|
115
|
+
*
|
|
116
|
+
* Used when processing text that may have been created on Windows systems
|
|
117
|
+
* or transferred through systems that preserve Windows line endings.
|
|
118
|
+
*
|
|
119
|
+
* @param text - Text that may contain CRLF line endings
|
|
120
|
+
* @returns Text with all CRLF sequences replaced by LF
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* normalizeLineEndings('line1\r\nline2\r\n'); // 'line1\nline2\n'
|
|
125
|
+
* normalizeLineEndings('already\nunix\n'); // 'already\nunix\n'
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare function normalizeLineEndings(text: string): string;
|
|
129
|
+
/**
|
|
130
|
+
* Extract the first sentence from a text string.
|
|
131
|
+
*
|
|
132
|
+
* Finds sentence-ending punctuation (.!?) followed by whitespace + uppercase
|
|
133
|
+
* (new sentence) or end of string. Handles periods in file extensions correctly.
|
|
134
|
+
*
|
|
135
|
+
* @param text - Input text
|
|
136
|
+
* @returns First sentence, or full trimmed text if no sentence boundary found
|
|
137
|
+
*/
|
|
138
|
+
export declare function extractFirstSentenceRaw(text: string): string;
|
|
139
|
+
/**
|
|
140
|
+
* Extract a compact description preserving Problem/Solution structure.
|
|
141
|
+
*
|
|
142
|
+
* If the text uses `**Problem:**` / `**Solution:**` markers, extracts the
|
|
143
|
+
* first sentence from each section and combines them. Otherwise falls back
|
|
144
|
+
* to extractFirstSentence() behavior.
|
|
145
|
+
*
|
|
146
|
+
* @param text - Description text, possibly with Problem/Solution structure
|
|
147
|
+
* @returns Compact description preserving both halves if structured
|
|
148
|
+
*/
|
|
149
|
+
export declare function extractDescription(text: string): string;
|
|
150
|
+
//# sourceMappingURL=string-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-utils.d.ts","sourceRoot":"","sources":["../../src/utils/string-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBhD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAqDD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoDzD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAavD"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-core
|
|
4
|
+
* @architect-pattern StringUtilities
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
* @architect-used-by DocExtractor, SectionRenderer
|
|
7
|
+
*
|
|
8
|
+
* ## StringUtilities - Text Transformation Functions
|
|
9
|
+
*
|
|
10
|
+
* Provides shared utilities for string manipulation used across the Architect package,
|
|
11
|
+
* including slugification for URLs/filenames and Markdown formatting cleanup.
|
|
12
|
+
*
|
|
13
|
+
* ### When to Use
|
|
14
|
+
*
|
|
15
|
+
* - Use `slugify()` when generating URL-safe identifiers for HTML anchors or filenames
|
|
16
|
+
* - Use when normalizing text for consistent formatting across generated docs
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Convert a string to a URL/filename-safe slug (lowercase, alphanumeric, hyphens)
|
|
20
|
+
*
|
|
21
|
+
* Transforms text into a normalized format suitable for:
|
|
22
|
+
* - HTML anchor IDs
|
|
23
|
+
* - Filenames
|
|
24
|
+
* - URL slugs
|
|
25
|
+
*
|
|
26
|
+
* **Note:** Non-ASCII characters (including Unicode) are removed, not transliterated.
|
|
27
|
+
* For example, `"hello-日本語"` becomes `"hello"`.
|
|
28
|
+
*
|
|
29
|
+
* @param text - Input text to slugify
|
|
30
|
+
* @returns Slug string (lowercase, alphanumeric with hyphens)
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* slugify('User Authentication'); // 'user-authentication'
|
|
35
|
+
* slugify('Create User (v2)'); // 'create-user-v2'
|
|
36
|
+
* slugify('---test---'); // 'test'
|
|
37
|
+
* slugify('Hello World!'); // 'hello-world'
|
|
38
|
+
* slugify('UPPER_CASE_TEXT'); // 'upper-case-text'
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function slugify(text) {
|
|
42
|
+
return text
|
|
43
|
+
.toLowerCase()
|
|
44
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
45
|
+
.replace(/^-|-$/g, '');
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Convert CamelCase or PascalCase text to kebab-case with proper word separation
|
|
49
|
+
*
|
|
50
|
+
* Handles various naming conventions:
|
|
51
|
+
* - PascalCase: `DeciderPattern` → `decider-pattern`
|
|
52
|
+
* - Mixed case: `BddTestingInfrastructure` → `bdd-testing-infrastructure`
|
|
53
|
+
* - Consecutive uppercase: `APIEndpoint` → `api-endpoint`
|
|
54
|
+
* - Numbers: `OAuth2Flow` → `o-auth-2-flow`
|
|
55
|
+
* - Already kebab-case: `already-kebab` → `already-kebab`
|
|
56
|
+
*
|
|
57
|
+
* **Note:** Unlike `slugify()`, this function properly splits CamelCase words
|
|
58
|
+
* instead of just lowercasing them together.
|
|
59
|
+
*
|
|
60
|
+
* @param text - Input text (CamelCase, PascalCase, or mixed)
|
|
61
|
+
* @returns kebab-case string
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* toKebabCase('DeciderPattern'); // 'decider-pattern'
|
|
66
|
+
* toKebabCase('BddTestingInfrastructure'); // 'bdd-testing-infrastructure'
|
|
67
|
+
* toKebabCase('APIEndpoint'); // 'api-endpoint'
|
|
68
|
+
* toKebabCase('OAuth2Flow'); // 'o-auth-2-flow'
|
|
69
|
+
* toKebabCase('DCB'); // 'dcb'
|
|
70
|
+
* toKebabCase('ProcessGuardLinter'); // 'process-guard-linter'
|
|
71
|
+
* toKebabCase('already-kebab'); // 'already-kebab'
|
|
72
|
+
* toKebabCase('Pattern (v2)'); // 'pattern-v2'
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export function toKebabCase(text) {
|
|
76
|
+
return (text
|
|
77
|
+
// Insert hyphen between lowercase/digit and uppercase: camelCase → camel-Case
|
|
78
|
+
.replace(/([a-z\d])([A-Z])/g, '$1-$2')
|
|
79
|
+
// Insert hyphen between consecutive uppercase and uppercase+lowercase: HTTPServer → HTTP-Server
|
|
80
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')
|
|
81
|
+
// Insert hyphen between letter and digit: Auth2 → Auth-2
|
|
82
|
+
.replace(/([a-zA-Z])(\d)/g, '$1-$2')
|
|
83
|
+
// Convert to lowercase
|
|
84
|
+
.toLowerCase()
|
|
85
|
+
// Replace any non-alphanumeric characters with hyphens
|
|
86
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
87
|
+
// Remove leading/trailing hyphens
|
|
88
|
+
.replace(/^-+|-+$/g, ''));
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Convert PascalCase or camelCase text to UPPER-KEBAB-CASE
|
|
92
|
+
*
|
|
93
|
+
* This is useful for generating constant-style identifiers or
|
|
94
|
+
* documentation file names that use uppercase conventions.
|
|
95
|
+
*
|
|
96
|
+
* @param text - Input text in PascalCase or camelCase
|
|
97
|
+
* @returns UPPER-KEBAB-CASE string
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* toUpperKebabCase('ProcessGuard'); // 'PROCESS-GUARD'
|
|
102
|
+
* toUpperKebabCase('DecisionDocCodec'); // 'DECISION-DOC-CODEC'
|
|
103
|
+
* toUpperKebabCase('OAuth2Flow'); // 'O-AUTH-2-FLOW'
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export function toUpperKebabCase(text) {
|
|
107
|
+
return toKebabCase(text).toUpperCase();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Known acronyms that should not be split during case conversion.
|
|
111
|
+
*
|
|
112
|
+
* These terms are protected with placeholders before regex processing,
|
|
113
|
+
* then restored afterward to preserve their correct formatting.
|
|
114
|
+
*
|
|
115
|
+
* IMPORTANT: Sorted by length (longest first) to ensure longer acronyms
|
|
116
|
+
* are matched before shorter ones they might contain.
|
|
117
|
+
* e.g., "TypeScript" must be matched before "AST" in "TypeScriptAST"
|
|
118
|
+
*/
|
|
119
|
+
const KNOWN_ACRONYMS = [
|
|
120
|
+
// Multi-word technical terms (longest first)
|
|
121
|
+
'JavaScript', // 10 chars
|
|
122
|
+
'TypeScript', // 10 chars
|
|
123
|
+
'WebSocket', // 9 chars
|
|
124
|
+
'GraphQL', // 7 chars
|
|
125
|
+
'Gherkin', // 7 chars
|
|
126
|
+
'RegExp', // 6 chars
|
|
127
|
+
'GitHub', // 6 chars
|
|
128
|
+
// 5-char acronyms
|
|
129
|
+
'HTTPS',
|
|
130
|
+
'OAuth',
|
|
131
|
+
// 4-char acronyms
|
|
132
|
+
'JSON',
|
|
133
|
+
'HTML',
|
|
134
|
+
'HTTP',
|
|
135
|
+
'UUID',
|
|
136
|
+
'REST',
|
|
137
|
+
'CRUD',
|
|
138
|
+
// 3-char acronyms
|
|
139
|
+
'DoD', // Definition of Done
|
|
140
|
+
'PRD', // Product Requirements Document
|
|
141
|
+
'API',
|
|
142
|
+
'CLI',
|
|
143
|
+
'AST',
|
|
144
|
+
'DOM',
|
|
145
|
+
'URL',
|
|
146
|
+
'XML',
|
|
147
|
+
'CSS',
|
|
148
|
+
'SQL',
|
|
149
|
+
'JWT',
|
|
150
|
+
'NPM',
|
|
151
|
+
'ESM',
|
|
152
|
+
'CJS',
|
|
153
|
+
'SSO',
|
|
154
|
+
'MCP',
|
|
155
|
+
'LLM',
|
|
156
|
+
'RAG',
|
|
157
|
+
'ADR',
|
|
158
|
+
];
|
|
159
|
+
/**
|
|
160
|
+
* Convert CamelCase or PascalCase text to "Title Case" with spaces
|
|
161
|
+
*
|
|
162
|
+
* Handles various naming conventions:
|
|
163
|
+
* - PascalCase: `RemainingWorkEnhancement` → `Remaining Work Enhancement`
|
|
164
|
+
* - Acronyms: `HTTPServer` → `HTTP Server`
|
|
165
|
+
* - Mixed: `OAuth2Client` → `OAuth2 Client`
|
|
166
|
+
* - kebab-case: `remaining-work` → `remaining work`
|
|
167
|
+
* - Known acronyms: `DoDValidator` → `DoD Validator` (not `Do D Validator`)
|
|
168
|
+
*
|
|
169
|
+
* @param text - Input text in CamelCase, PascalCase, or kebab-case
|
|
170
|
+
* @returns Human-readable title case string
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* camelCaseToTitleCase('RemainingWorkEnhancement'); // 'Remaining Work Enhancement'
|
|
175
|
+
* camelCaseToTitleCase('HTTPServer'); // 'HTTP Server'
|
|
176
|
+
* camelCaseToTitleCase('OAuth2Client'); // 'OAuth2 Client'
|
|
177
|
+
* camelCaseToTitleCase('XMLParser'); // 'XML Parser'
|
|
178
|
+
* camelCaseToTitleCase('parseJSON'); // 'parse JSON'
|
|
179
|
+
* camelCaseToTitleCase('DoDValidator'); // 'DoD Validator'
|
|
180
|
+
* camelCaseToTitleCase('TypeScriptAST'); // 'TypeScript AST'
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
export function camelCaseToTitleCase(text) {
|
|
184
|
+
// Step 1: Protect known acronyms with placeholders
|
|
185
|
+
// Add space marker after placeholder when followed by uppercase (word boundary)
|
|
186
|
+
let result = text;
|
|
187
|
+
const placeholders = [];
|
|
188
|
+
for (const acronym of KNOWN_ACRONYMS) {
|
|
189
|
+
// Case-sensitive match for acronyms
|
|
190
|
+
if (result.includes(acronym)) {
|
|
191
|
+
const placeholder = `__ACRONYM_${placeholders.length}__`;
|
|
192
|
+
placeholders.push({ placeholder, acronym });
|
|
193
|
+
const escapedAcronym = acronym.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
194
|
+
// Replace acronym with placeholder:
|
|
195
|
+
// 1. When preceded by lowercase and followed by uppercase: add spaces both sides
|
|
196
|
+
result = result.replace(new RegExp('([a-z])' + escapedAcronym + '([A-Z])', 'g'), '$1 ' + placeholder + ' $2');
|
|
197
|
+
// 2. When followed by uppercase only: add space after
|
|
198
|
+
result = result.replace(new RegExp(escapedAcronym + '([A-Z])', 'g'), placeholder + ' $1');
|
|
199
|
+
// 2b. When followed by digit: add space after (PDR006 → PDR 006)
|
|
200
|
+
result = result.replace(new RegExp(escapedAcronym + '(\\d)', 'g'), placeholder + ' $1');
|
|
201
|
+
// 3. When preceded by lowercase only: add space before
|
|
202
|
+
result = result.replace(new RegExp('([a-z])' + escapedAcronym + '(?![A-Za-z])', 'g'), '$1 ' + placeholder);
|
|
203
|
+
// 4. Standalone occurrences (start of string, or between non-letters)
|
|
204
|
+
result = result.replace(new RegExp('(?<![A-Za-z])' + escapedAcronym + '(?![A-Za-z])', 'g'), placeholder);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Step 2: Apply standard CamelCase splitting
|
|
208
|
+
result = result
|
|
209
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2') // HTTPServer → HTTP Server
|
|
210
|
+
.replace(/([a-z\d])([A-Z])/g, '$1 $2') // camelCase → camel Case
|
|
211
|
+
.replace(/([A-Z]+)(\d)/g, '$1 $2') // V2 → V 2 (only when followed by digit)
|
|
212
|
+
.replace(/(\d)([A-Z])/g, '$1 $2') // 006T → 006 T (digit-to-uppercase)
|
|
213
|
+
.replace(/(\d)(__ACRONYM_\d+__)/g, '$1 $2') // 006__ACRONYM__ → 006 __ACRONYM__
|
|
214
|
+
.replace(/-/g, ' ') // kebab-case → kebab case
|
|
215
|
+
.trim();
|
|
216
|
+
// Step 3: Restore acronyms from placeholders
|
|
217
|
+
for (const { placeholder, acronym } of placeholders) {
|
|
218
|
+
result = result.split(placeholder).join(acronym);
|
|
219
|
+
}
|
|
220
|
+
return result;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Normalize line endings from Windows CRLF to Unix LF.
|
|
224
|
+
*
|
|
225
|
+
* Used when processing text that may have been created on Windows systems
|
|
226
|
+
* or transferred through systems that preserve Windows line endings.
|
|
227
|
+
*
|
|
228
|
+
* @param text - Text that may contain CRLF line endings
|
|
229
|
+
* @returns Text with all CRLF sequences replaced by LF
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```typescript
|
|
233
|
+
* normalizeLineEndings('line1\r\nline2\r\n'); // 'line1\nline2\n'
|
|
234
|
+
* normalizeLineEndings('already\nunix\n'); // 'already\nunix\n'
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
export function normalizeLineEndings(text) {
|
|
238
|
+
return text.replace(/\r\n/g, '\n');
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Extract the first sentence from a text string.
|
|
242
|
+
*
|
|
243
|
+
* Finds sentence-ending punctuation (.!?) followed by whitespace + uppercase
|
|
244
|
+
* (new sentence) or end of string. Handles periods in file extensions correctly.
|
|
245
|
+
*
|
|
246
|
+
* @param text - Input text
|
|
247
|
+
* @returns First sentence, or full trimmed text if no sentence boundary found
|
|
248
|
+
*/
|
|
249
|
+
export function extractFirstSentenceRaw(text) {
|
|
250
|
+
if (!text)
|
|
251
|
+
return '';
|
|
252
|
+
const sentenceEndPattern = /[.!?](?=\s+[A-Z]|\s*$)/;
|
|
253
|
+
const match = sentenceEndPattern.exec(text);
|
|
254
|
+
if (match) {
|
|
255
|
+
return text.slice(0, match.index + 1).trim();
|
|
256
|
+
}
|
|
257
|
+
return text.trim();
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Extract a compact description preserving Problem/Solution structure.
|
|
261
|
+
*
|
|
262
|
+
* If the text uses `**Problem:**` / `**Solution:**` markers, extracts the
|
|
263
|
+
* first sentence from each section and combines them. Otherwise falls back
|
|
264
|
+
* to extractFirstSentence() behavior.
|
|
265
|
+
*
|
|
266
|
+
* @param text - Description text, possibly with Problem/Solution structure
|
|
267
|
+
* @returns Compact description preserving both halves if structured
|
|
268
|
+
*/
|
|
269
|
+
export function extractDescription(text) {
|
|
270
|
+
if (!text)
|
|
271
|
+
return '';
|
|
272
|
+
const problemMatch = /\*\*Problem:\*\*\s*([\s\S]+?)(?=\*\*Solution:\*\*|$)/.exec(text);
|
|
273
|
+
const solutionMatch = /\*\*Solution:\*\*\s*([\s\S]+?)(?=\n\s*\*\*[A-Z]|\n\n\s*\n|$)/.exec(text);
|
|
274
|
+
if (problemMatch?.[1] !== undefined && solutionMatch?.[1] !== undefined) {
|
|
275
|
+
const problem = extractFirstSentenceRaw(problemMatch[1].trim());
|
|
276
|
+
const solution = extractFirstSentenceRaw(solutionMatch[1].trim());
|
|
277
|
+
return `Problem: ${problem} Solution: ${solution}`;
|
|
278
|
+
}
|
|
279
|
+
return extractFirstSentenceRaw(text);
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=string-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../src/utils/string-utils.ts"],"names":[],"mappings":"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"}
|