@libar-dev/architect 1.0.0-pre.3 → 1.0.0-pre.4

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.
Files changed (758) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +5 -5
  3. package/dist/api/arch-queries.d.ts.map +1 -1
  4. package/dist/api/context-assembler.d.ts.map +1 -1
  5. package/dist/api/handoff-generator.d.ts.map +1 -1
  6. package/dist/api/index.d.ts +8 -8
  7. package/dist/api/index.d.ts.map +1 -1
  8. package/dist/api/index.js +7 -7
  9. package/dist/api/index.js.map +1 -1
  10. package/dist/api/{process-state.d.ts → pattern-graph-api.d.ts} +15 -15
  11. package/dist/api/pattern-graph-api.d.ts.map +1 -0
  12. package/dist/api/{process-state.js → pattern-graph-api.js} +13 -13
  13. package/dist/api/pattern-graph-api.js.map +1 -0
  14. package/dist/api/rules-query.d.ts +6 -6
  15. package/dist/api/rules-query.d.ts.map +1 -1
  16. package/dist/api/rules-query.js +4 -4
  17. package/dist/api/rules-query.js.map +1 -1
  18. package/dist/api/scope-validator.d.ts.map +1 -1
  19. package/dist/api/types.d.ts +8 -8
  20. package/dist/api/types.d.ts.map +1 -1
  21. package/dist/api/types.js +5 -5
  22. package/dist/cli/cli-schema.d.ts +3 -3
  23. package/dist/cli/cli-schema.js +13 -13
  24. package/dist/cli/cli-schema.js.map +1 -1
  25. package/dist/cli/output-pipeline.d.ts.map +1 -1
  26. package/dist/cli/pattern-graph-cli.d.ts.map +1 -0
  27. package/dist/cli/validate-patterns.d.ts.map +1 -1
  28. package/dist/generators/built-in/cli-recipe-generator.d.ts +3 -3
  29. package/dist/generators/built-in/cli-recipe-generator.js +6 -6
  30. package/dist/generators/built-in/cli-recipe-generator.js.map +1 -1
  31. package/dist/generators/built-in/cli-reference-generator.d.ts +18 -0
  32. package/dist/generators/built-in/cli-reference-generator.d.ts.map +1 -0
  33. package/dist/generators/built-in/{process-api-reference-generator.js → cli-reference-generator.js} +13 -13
  34. package/dist/generators/built-in/cli-reference-generator.js.map +1 -0
  35. package/dist/generators/built-in/codec-generators.js +12 -12
  36. package/dist/generators/built-in/codec-generators.js.map +1 -1
  37. package/dist/generators/built-in/design-review-generator.d.ts.map +1 -1
  38. package/dist/generators/built-in/reference-generators.d.ts.map +1 -1
  39. package/dist/generators/codec-based.d.ts.map +1 -1
  40. package/dist/generators/index.d.ts.map +1 -1
  41. package/dist/generators/orchestrator.d.ts.map +1 -1
  42. package/dist/generators/pipeline/build-pipeline.d.ts +17 -14
  43. package/dist/generators/pipeline/build-pipeline.d.ts.map +1 -1
  44. package/dist/generators/pipeline/build-pipeline.js +27 -21
  45. package/dist/generators/pipeline/build-pipeline.js.map +1 -1
  46. package/dist/generators/pipeline/index.d.ts.map +1 -1
  47. package/dist/generators/types.d.ts.map +1 -1
  48. package/dist/mcp/pipeline-session.d.ts.map +1 -1
  49. package/dist/renderable/codecs/index-codec.d.ts.map +1 -1
  50. package/dist/renderable/codecs/index-codec.js +54 -28
  51. package/dist/renderable/codecs/index-codec.js.map +1 -1
  52. package/docs/ANNOTATION-GUIDE.md +5 -5
  53. package/docs/ARCHITECTURE.md +79 -79
  54. package/docs/{PROCESS-API.md → CLI.md} +6 -6
  55. package/docs/CONFIGURATION.md +2 -2
  56. package/docs/DOCS-GAP-ANALYSIS.md +65 -65
  57. package/docs/INDEX.md +34 -34
  58. package/docs/MCP-SETUP.md +3 -3
  59. package/docs/METHODOLOGY.md +1 -1
  60. package/docs/SESSION-GUIDES.md +3 -3
  61. package/docs/VALIDATION.md +4 -4
  62. package/docs-live/ARCHITECTURE.md +48 -42
  63. package/docs-live/BUSINESS-RULES.md +3 -3
  64. package/docs-live/CHANGELOG-GENERATED.md +109 -103
  65. package/docs-live/INDEX.md +21 -21
  66. package/docs-live/PRODUCT-AREAS.md +7 -7
  67. package/docs-live/TAXONOMY.md +3 -5
  68. package/docs-live/_claude-md/annotation/annotation-overview.md +1 -1
  69. package/docs-live/_claude-md/annotation/annotation-reference.md +5 -5
  70. package/docs-live/_claude-md/architecture/architecture-types.md +4 -4
  71. package/docs-live/_claude-md/architecture/reference-sample.md +2 -2
  72. package/docs-live/_claude-md/data-api/data-api-overview.md +2 -2
  73. package/docs-live/_claude-md/generation/generation-overview.md +15 -15
  74. package/docs-live/_claude-md/process/process-overview.md +1 -1
  75. package/docs-live/_claude-md/validation/validation-overview.md +1 -1
  76. package/docs-live/business-rules/annotation.md +1 -2
  77. package/docs-live/business-rules/configuration.md +1 -1
  78. package/docs-live/business-rules/data-api.md +149 -136
  79. package/docs-live/business-rules/generation.md +172 -20
  80. package/docs-live/decisions/adr-003-source-first-pattern-architecture.md +1 -1
  81. package/docs-live/decisions/adr-005-codec-based-markdown-rendering.md +5 -5
  82. package/docs-live/decisions/adr-006-single-read-model-architecture.md +24 -24
  83. package/docs-live/product-areas/ANNOTATION.md +19 -9
  84. package/docs-live/product-areas/CONFIGURATION.md +39 -19
  85. package/docs-live/product-areas/DATA-API.md +155 -151
  86. package/docs-live/product-areas/GENERATION.md +159 -144
  87. package/docs-live/product-areas/PROCESS.md +4 -4
  88. package/docs-live/product-areas/VALIDATION.md +35 -20
  89. package/docs-live/reference/ANNOTATION-REFERENCE.md +5 -5
  90. package/docs-live/reference/ARCHITECTURE-CODECS.md +11 -11
  91. package/docs-live/reference/ARCHITECTURE-TYPES.md +28 -25
  92. package/docs-live/reference/{PROCESS-API-RECIPES.md → CLI-RECIPES.md} +11 -11
  93. package/docs-live/reference/{PROCESS-API-REFERENCE.md → CLI-REFERENCE.md} +2 -2
  94. package/docs-live/reference/REFERENCE-SAMPLE.md +56 -56
  95. package/docs-live/reference/SESSION-WORKFLOW-GUIDE.md +3 -3
  96. package/docs-live/taxonomy/format-types.md +2 -2
  97. package/docs-live/taxonomy/metadata-tags.md +1 -23
  98. package/package.json +7 -7
  99. package/dist/api/arch-queries.d.ts +0 -95
  100. package/dist/api/arch-queries.js +0 -310
  101. package/dist/api/arch-queries.js.map +0 -1
  102. package/dist/api/context-assembler.d.ts +0 -124
  103. package/dist/api/context-assembler.js +0 -472
  104. package/dist/api/context-assembler.js.map +0 -1
  105. package/dist/api/context-formatter.d.ts +0 -26
  106. package/dist/api/context-formatter.js +0 -183
  107. package/dist/api/context-formatter.js.map +0 -1
  108. package/dist/api/coverage-analyzer.d.ts +0 -38
  109. package/dist/api/coverage-analyzer.d.ts.map +0 -1
  110. package/dist/api/coverage-analyzer.js +0 -117
  111. package/dist/api/coverage-analyzer.js.map +0 -1
  112. package/dist/api/fuzzy-match.d.ts +0 -75
  113. package/dist/api/fuzzy-match.d.ts.map +0 -1
  114. package/dist/api/fuzzy-match.js +0 -150
  115. package/dist/api/fuzzy-match.js.map +0 -1
  116. package/dist/api/handoff-generator.d.ts +0 -45
  117. package/dist/api/handoff-generator.js +0 -139
  118. package/dist/api/handoff-generator.js.map +0 -1
  119. package/dist/api/pattern-helpers.d.ts +0 -51
  120. package/dist/api/pattern-helpers.d.ts.map +0 -1
  121. package/dist/api/pattern-helpers.js +0 -84
  122. package/dist/api/pattern-helpers.js.map +0 -1
  123. package/dist/api/process-state.d.ts.map +0 -1
  124. package/dist/api/process-state.js.map +0 -1
  125. package/dist/api/scope-validator.d.ts +0 -56
  126. package/dist/api/scope-validator.js +0 -293
  127. package/dist/api/scope-validator.js.map +0 -1
  128. package/dist/api/stub-resolver.d.ts +0 -117
  129. package/dist/api/stub-resolver.d.ts.map +0 -1
  130. package/dist/api/stub-resolver.js +0 -154
  131. package/dist/api/stub-resolver.js.map +0 -1
  132. package/dist/api/summarize.d.ts +0 -75
  133. package/dist/api/summarize.d.ts.map +0 -1
  134. package/dist/api/summarize.js +0 -97
  135. package/dist/api/summarize.js.map +0 -1
  136. package/dist/cache/file-cache.d.ts +0 -72
  137. package/dist/cache/file-cache.d.ts.map +0 -1
  138. package/dist/cache/file-cache.js +0 -80
  139. package/dist/cache/file-cache.js.map +0 -1
  140. package/dist/cache/index.d.ts +0 -5
  141. package/dist/cache/index.d.ts.map +0 -1
  142. package/dist/cache/index.js +0 -5
  143. package/dist/cache/index.js.map +0 -1
  144. package/dist/cli/dataset-cache.d.ts +0 -66
  145. package/dist/cli/dataset-cache.js +0 -179
  146. package/dist/cli/dataset-cache.js.map +0 -1
  147. package/dist/cli/error-handler.d.ts +0 -84
  148. package/dist/cli/error-handler.d.ts.map +0 -1
  149. package/dist/cli/error-handler.js +0 -197
  150. package/dist/cli/error-handler.js.map +0 -1
  151. package/dist/cli/generate-docs.d.ts +0 -30
  152. package/dist/cli/generate-docs.js +0 -370
  153. package/dist/cli/generate-docs.js.map +0 -1
  154. package/dist/cli/lint-patterns.d.ts +0 -57
  155. package/dist/cli/lint-patterns.d.ts.map +0 -1
  156. package/dist/cli/lint-patterns.js +0 -257
  157. package/dist/cli/lint-patterns.js.map +0 -1
  158. package/dist/cli/lint-process.d.ts +0 -54
  159. package/dist/cli/lint-process.d.ts.map +0 -1
  160. package/dist/cli/lint-process.js +0 -319
  161. package/dist/cli/lint-process.js.map +0 -1
  162. package/dist/cli/lint-steps.d.ts +0 -32
  163. package/dist/cli/lint-steps.d.ts.map +0 -1
  164. package/dist/cli/lint-steps.js +0 -172
  165. package/dist/cli/lint-steps.js.map +0 -1
  166. package/dist/cli/mcp-server.d.ts +0 -22
  167. package/dist/cli/mcp-server.js +0 -57
  168. package/dist/cli/mcp-server.js.map +0 -1
  169. package/dist/cli/output-pipeline.d.ts +0 -130
  170. package/dist/cli/output-pipeline.js +0 -234
  171. package/dist/cli/output-pipeline.js.map +0 -1
  172. package/dist/cli/process-api.d.ts +0 -37
  173. package/dist/cli/process-api.d.ts.map +0 -1
  174. package/dist/cli/process-api.js +0 -1550
  175. package/dist/cli/process-api.js.map +0 -1
  176. package/dist/cli/repl.d.ts +0 -38
  177. package/dist/cli/repl.js +0 -239
  178. package/dist/cli/repl.js.map +0 -1
  179. package/dist/cli/validate-patterns.d.ts +0 -115
  180. package/dist/cli/validate-patterns.js +0 -707
  181. package/dist/cli/validate-patterns.js.map +0 -1
  182. package/dist/cli/version.d.ts +0 -35
  183. package/dist/cli/version.d.ts.map +0 -1
  184. package/dist/cli/version.js +0 -64
  185. package/dist/cli/version.js.map +0 -1
  186. package/dist/config/config-loader.d.ts +0 -167
  187. package/dist/config/config-loader.d.ts.map +0 -1
  188. package/dist/config/config-loader.js +0 -294
  189. package/dist/config/config-loader.js.map +0 -1
  190. package/dist/config/defaults.d.ts +0 -92
  191. package/dist/config/defaults.d.ts.map +0 -1
  192. package/dist/config/defaults.js +0 -103
  193. package/dist/config/defaults.js.map +0 -1
  194. package/dist/config/define-config.d.ts +0 -37
  195. package/dist/config/define-config.d.ts.map +0 -1
  196. package/dist/config/define-config.js +0 -38
  197. package/dist/config/define-config.js.map +0 -1
  198. package/dist/config/factory.d.ts +0 -79
  199. package/dist/config/factory.d.ts.map +0 -1
  200. package/dist/config/factory.js +0 -116
  201. package/dist/config/factory.js.map +0 -1
  202. package/dist/config/index.d.ts +0 -45
  203. package/dist/config/index.d.ts.map +0 -1
  204. package/dist/config/index.js +0 -48
  205. package/dist/config/index.js.map +0 -1
  206. package/dist/config/merge-sources.d.ts +0 -47
  207. package/dist/config/merge-sources.d.ts.map +0 -1
  208. package/dist/config/merge-sources.js +0 -61
  209. package/dist/config/merge-sources.js.map +0 -1
  210. package/dist/config/presets.d.ts +0 -115
  211. package/dist/config/presets.d.ts.map +0 -1
  212. package/dist/config/presets.js +0 -119
  213. package/dist/config/presets.js.map +0 -1
  214. package/dist/config/project-config-schema.d.ts +0 -192
  215. package/dist/config/project-config-schema.d.ts.map +0 -1
  216. package/dist/config/project-config-schema.js +0 -231
  217. package/dist/config/project-config-schema.js.map +0 -1
  218. package/dist/config/project-config.d.ts +0 -229
  219. package/dist/config/project-config.d.ts.map +0 -1
  220. package/dist/config/project-config.js +0 -37
  221. package/dist/config/project-config.js.map +0 -1
  222. package/dist/config/regex-builders.d.ts +0 -49
  223. package/dist/config/regex-builders.d.ts.map +0 -1
  224. package/dist/config/regex-builders.js +0 -85
  225. package/dist/config/regex-builders.js.map +0 -1
  226. package/dist/config/resolve-config.d.ts +0 -65
  227. package/dist/config/resolve-config.d.ts.map +0 -1
  228. package/dist/config/resolve-config.js +0 -150
  229. package/dist/config/resolve-config.js.map +0 -1
  230. package/dist/config/types.d.ts +0 -81
  231. package/dist/config/types.d.ts.map +0 -1
  232. package/dist/config/types.js +0 -22
  233. package/dist/config/types.js.map +0 -1
  234. package/dist/config/workflow-loader.d.ts +0 -90
  235. package/dist/config/workflow-loader.d.ts.map +0 -1
  236. package/dist/config/workflow-loader.js +0 -167
  237. package/dist/config/workflow-loader.js.map +0 -1
  238. package/dist/extractor/doc-extractor.d.ts +0 -233
  239. package/dist/extractor/doc-extractor.d.ts.map +0 -1
  240. package/dist/extractor/doc-extractor.js +0 -481
  241. package/dist/extractor/doc-extractor.js.map +0 -1
  242. package/dist/extractor/dual-source-extractor.d.ts +0 -161
  243. package/dist/extractor/dual-source-extractor.d.ts.map +0 -1
  244. package/dist/extractor/dual-source-extractor.js +0 -407
  245. package/dist/extractor/dual-source-extractor.js.map +0 -1
  246. package/dist/extractor/gherkin-extractor.d.ts +0 -170
  247. package/dist/extractor/gherkin-extractor.d.ts.map +0 -1
  248. package/dist/extractor/gherkin-extractor.js +0 -543
  249. package/dist/extractor/gherkin-extractor.js.map +0 -1
  250. package/dist/extractor/index.d.ts +0 -7
  251. package/dist/extractor/index.d.ts.map +0 -1
  252. package/dist/extractor/index.js +0 -11
  253. package/dist/extractor/index.js.map +0 -1
  254. package/dist/extractor/layer-inference.d.ts +0 -66
  255. package/dist/extractor/layer-inference.d.ts.map +0 -1
  256. package/dist/extractor/layer-inference.js +0 -93
  257. package/dist/extractor/layer-inference.js.map +0 -1
  258. package/dist/extractor/shape-extractor.d.ts +0 -79
  259. package/dist/extractor/shape-extractor.d.ts.map +0 -1
  260. package/dist/extractor/shape-extractor.js +0 -966
  261. package/dist/extractor/shape-extractor.js.map +0 -1
  262. package/dist/generators/built-in/codec-generators.d.ts +0 -29
  263. package/dist/generators/built-in/decision-doc-generator.d.ts +0 -204
  264. package/dist/generators/built-in/decision-doc-generator.js +0 -654
  265. package/dist/generators/built-in/decision-doc-generator.js.map +0 -1
  266. package/dist/generators/built-in/design-review-generator.d.ts +0 -26
  267. package/dist/generators/built-in/design-review-generator.js +0 -94
  268. package/dist/generators/built-in/design-review-generator.js.map +0 -1
  269. package/dist/generators/built-in/index.d.ts +0 -22
  270. package/dist/generators/built-in/index.js +0 -23
  271. package/dist/generators/built-in/index.js.map +0 -1
  272. package/dist/generators/built-in/process-api-reference-generator.d.ts +0 -18
  273. package/dist/generators/built-in/process-api-reference-generator.d.ts.map +0 -1
  274. package/dist/generators/built-in/process-api-reference-generator.js.map +0 -1
  275. package/dist/generators/built-in/reference-generators.d.ts +0 -51
  276. package/dist/generators/built-in/reference-generators.js +0 -320
  277. package/dist/generators/built-in/reference-generators.js.map +0 -1
  278. package/dist/generators/codec-based.d.ts +0 -63
  279. package/dist/generators/codec-based.js +0 -88
  280. package/dist/generators/codec-based.js.map +0 -1
  281. package/dist/generators/content-deduplicator.d.ts +0 -114
  282. package/dist/generators/content-deduplicator.d.ts.map +0 -1
  283. package/dist/generators/content-deduplicator.js +0 -356
  284. package/dist/generators/content-deduplicator.js.map +0 -1
  285. package/dist/generators/index.d.ts +0 -50
  286. package/dist/generators/index.js +0 -54
  287. package/dist/generators/index.js.map +0 -1
  288. package/dist/generators/orchestrator.d.ts +0 -265
  289. package/dist/generators/orchestrator.js +0 -570
  290. package/dist/generators/orchestrator.js.map +0 -1
  291. package/dist/generators/pipeline/context-inference.d.ts +0 -55
  292. package/dist/generators/pipeline/context-inference.d.ts.map +0 -1
  293. package/dist/generators/pipeline/context-inference.js +0 -76
  294. package/dist/generators/pipeline/context-inference.js.map +0 -1
  295. package/dist/generators/pipeline/index.d.ts +0 -27
  296. package/dist/generators/pipeline/index.js +0 -34
  297. package/dist/generators/pipeline/index.js.map +0 -1
  298. package/dist/generators/pipeline/merge-patterns.d.ts +0 -33
  299. package/dist/generators/pipeline/merge-patterns.d.ts.map +0 -1
  300. package/dist/generators/pipeline/merge-patterns.js +0 -50
  301. package/dist/generators/pipeline/merge-patterns.js.map +0 -1
  302. package/dist/generators/pipeline/relationship-resolver.d.ts +0 -47
  303. package/dist/generators/pipeline/relationship-resolver.d.ts.map +0 -1
  304. package/dist/generators/pipeline/relationship-resolver.js +0 -132
  305. package/dist/generators/pipeline/relationship-resolver.js.map +0 -1
  306. package/dist/generators/pipeline/sequence-utils.d.ts +0 -49
  307. package/dist/generators/pipeline/sequence-utils.d.ts.map +0 -1
  308. package/dist/generators/pipeline/sequence-utils.js +0 -235
  309. package/dist/generators/pipeline/sequence-utils.js.map +0 -1
  310. package/dist/generators/pipeline/transform-dataset.d.ts +0 -82
  311. package/dist/generators/pipeline/transform-dataset.d.ts.map +0 -1
  312. package/dist/generators/pipeline/transform-dataset.js +0 -355
  313. package/dist/generators/pipeline/transform-dataset.js.map +0 -1
  314. package/dist/generators/pipeline/transform-types.d.ts +0 -96
  315. package/dist/generators/pipeline/transform-types.d.ts.map +0 -1
  316. package/dist/generators/pipeline/transform-types.js +0 -18
  317. package/dist/generators/pipeline/transform-types.js.map +0 -1
  318. package/dist/generators/registry.d.ts +0 -64
  319. package/dist/generators/registry.js +0 -77
  320. package/dist/generators/registry.js.map +0 -1
  321. package/dist/generators/source-mapper.d.ts +0 -143
  322. package/dist/generators/source-mapper.d.ts.map +0 -1
  323. package/dist/generators/source-mapper.js +0 -602
  324. package/dist/generators/source-mapper.js.map +0 -1
  325. package/dist/generators/source-mapping-validator.d.ts +0 -118
  326. package/dist/generators/source-mapping-validator.d.ts.map +0 -1
  327. package/dist/generators/source-mapping-validator.js +0 -334
  328. package/dist/generators/source-mapping-validator.js.map +0 -1
  329. package/dist/generators/types.d.ts +0 -104
  330. package/dist/generators/types.js +0 -5
  331. package/dist/generators/types.js.map +0 -1
  332. package/dist/generators/warning-collector.d.ts +0 -144
  333. package/dist/generators/warning-collector.d.ts.map +0 -1
  334. package/dist/generators/warning-collector.js +0 -166
  335. package/dist/generators/warning-collector.js.map +0 -1
  336. package/dist/git/branch-diff.d.ts +0 -44
  337. package/dist/git/branch-diff.d.ts.map +0 -1
  338. package/dist/git/branch-diff.js +0 -57
  339. package/dist/git/branch-diff.js.map +0 -1
  340. package/dist/git/helpers.d.ts +0 -46
  341. package/dist/git/helpers.d.ts.map +0 -1
  342. package/dist/git/helpers.js +0 -67
  343. package/dist/git/helpers.js.map +0 -1
  344. package/dist/git/index.d.ts +0 -18
  345. package/dist/git/index.d.ts.map +0 -1
  346. package/dist/git/index.js +0 -18
  347. package/dist/git/index.js.map +0 -1
  348. package/dist/git/name-status.d.ts +0 -32
  349. package/dist/git/name-status.d.ts.map +0 -1
  350. package/dist/git/name-status.js +0 -66
  351. package/dist/git/name-status.js.map +0 -1
  352. package/dist/index.d.ts +0 -107
  353. package/dist/index.js +0 -122
  354. package/dist/index.js.map +0 -1
  355. package/dist/lint/engine.d.ts +0 -113
  356. package/dist/lint/engine.d.ts.map +0 -1
  357. package/dist/lint/engine.js +0 -228
  358. package/dist/lint/engine.js.map +0 -1
  359. package/dist/lint/index.d.ts +0 -26
  360. package/dist/lint/index.d.ts.map +0 -1
  361. package/dist/lint/index.js +0 -24
  362. package/dist/lint/index.js.map +0 -1
  363. package/dist/lint/process-guard/decider.d.ts +0 -166
  364. package/dist/lint/process-guard/decider.d.ts.map +0 -1
  365. package/dist/lint/process-guard/decider.js +0 -412
  366. package/dist/lint/process-guard/decider.js.map +0 -1
  367. package/dist/lint/process-guard/derive-state.d.ts +0 -96
  368. package/dist/lint/process-guard/derive-state.d.ts.map +0 -1
  369. package/dist/lint/process-guard/derive-state.js +0 -368
  370. package/dist/lint/process-guard/derive-state.js.map +0 -1
  371. package/dist/lint/process-guard/detect-changes.d.ts +0 -109
  372. package/dist/lint/process-guard/detect-changes.d.ts.map +0 -1
  373. package/dist/lint/process-guard/detect-changes.js +0 -487
  374. package/dist/lint/process-guard/detect-changes.js.map +0 -1
  375. package/dist/lint/process-guard/index.d.ts +0 -35
  376. package/dist/lint/process-guard/index.d.ts.map +0 -1
  377. package/dist/lint/process-guard/index.js +0 -39
  378. package/dist/lint/process-guard/index.js.map +0 -1
  379. package/dist/lint/process-guard/types.d.ts +0 -255
  380. package/dist/lint/process-guard/types.d.ts.map +0 -1
  381. package/dist/lint/process-guard/types.js +0 -31
  382. package/dist/lint/process-guard/types.js.map +0 -1
  383. package/dist/lint/rules.d.ts +0 -147
  384. package/dist/lint/rules.d.ts.map +0 -1
  385. package/dist/lint/rules.js +0 -289
  386. package/dist/lint/rules.js.map +0 -1
  387. package/dist/lint/steps/cross-checks.d.ts +0 -66
  388. package/dist/lint/steps/cross-checks.d.ts.map +0 -1
  389. package/dist/lint/steps/cross-checks.js +0 -290
  390. package/dist/lint/steps/cross-checks.js.map +0 -1
  391. package/dist/lint/steps/feature-checks.d.ts +0 -78
  392. package/dist/lint/steps/feature-checks.d.ts.map +0 -1
  393. package/dist/lint/steps/feature-checks.js +0 -279
  394. package/dist/lint/steps/feature-checks.js.map +0 -1
  395. package/dist/lint/steps/index.d.ts +0 -22
  396. package/dist/lint/steps/index.d.ts.map +0 -1
  397. package/dist/lint/steps/index.js +0 -26
  398. package/dist/lint/steps/index.js.map +0 -1
  399. package/dist/lint/steps/pair-resolver.d.ts +0 -29
  400. package/dist/lint/steps/pair-resolver.d.ts.map +0 -1
  401. package/dist/lint/steps/pair-resolver.js +0 -76
  402. package/dist/lint/steps/pair-resolver.js.map +0 -1
  403. package/dist/lint/steps/runner.d.ts +0 -28
  404. package/dist/lint/steps/runner.d.ts.map +0 -1
  405. package/dist/lint/steps/runner.js +0 -143
  406. package/dist/lint/steps/runner.js.map +0 -1
  407. package/dist/lint/steps/step-checks.d.ts +0 -41
  408. package/dist/lint/steps/step-checks.d.ts.map +0 -1
  409. package/dist/lint/steps/step-checks.js +0 -164
  410. package/dist/lint/steps/step-checks.js.map +0 -1
  411. package/dist/lint/steps/types.d.ts +0 -95
  412. package/dist/lint/steps/types.d.ts.map +0 -1
  413. package/dist/lint/steps/types.js +0 -79
  414. package/dist/lint/steps/types.js.map +0 -1
  415. package/dist/lint/steps/utils.d.ts +0 -22
  416. package/dist/lint/steps/utils.d.ts.map +0 -1
  417. package/dist/lint/steps/utils.js +0 -57
  418. package/dist/lint/steps/utils.js.map +0 -1
  419. package/dist/mcp/file-watcher.d.ts +0 -24
  420. package/dist/mcp/file-watcher.js +0 -75
  421. package/dist/mcp/file-watcher.js.map +0 -1
  422. package/dist/mcp/index.d.ts +0 -19
  423. package/dist/mcp/index.js +0 -21
  424. package/dist/mcp/index.js.map +0 -1
  425. package/dist/mcp/pipeline-session.d.ts +0 -33
  426. package/dist/mcp/pipeline-session.js +0 -149
  427. package/dist/mcp/pipeline-session.js.map +0 -1
  428. package/dist/mcp/server.d.ts +0 -28
  429. package/dist/mcp/server.js +0 -197
  430. package/dist/mcp/server.js.map +0 -1
  431. package/dist/mcp/tool-registry.d.ts +0 -4
  432. package/dist/mcp/tool-registry.js +0 -525
  433. package/dist/mcp/tool-registry.js.map +0 -1
  434. package/dist/renderable/codecs/adr.d.ts +0 -4730
  435. package/dist/renderable/codecs/adr.d.ts.map +0 -1
  436. package/dist/renderable/codecs/adr.js +0 -590
  437. package/dist/renderable/codecs/adr.js.map +0 -1
  438. package/dist/renderable/codecs/architecture.d.ts +0 -4760
  439. package/dist/renderable/codecs/architecture.d.ts.map +0 -1
  440. package/dist/renderable/codecs/architecture.js +0 -524
  441. package/dist/renderable/codecs/architecture.js.map +0 -1
  442. package/dist/renderable/codecs/business-rules.d.ts +0 -4777
  443. package/dist/renderable/codecs/business-rules.d.ts.map +0 -1
  444. package/dist/renderable/codecs/business-rules.js +0 -648
  445. package/dist/renderable/codecs/business-rules.js.map +0 -1
  446. package/dist/renderable/codecs/claude-module.d.ts +0 -4710
  447. package/dist/renderable/codecs/claude-module.d.ts.map +0 -1
  448. package/dist/renderable/codecs/claude-module.js +0 -214
  449. package/dist/renderable/codecs/claude-module.js.map +0 -1
  450. package/dist/renderable/codecs/composite.d.ts +0 -84
  451. package/dist/renderable/codecs/composite.d.ts.map +0 -1
  452. package/dist/renderable/codecs/composite.js +0 -124
  453. package/dist/renderable/codecs/composite.js.map +0 -1
  454. package/dist/renderable/codecs/convention-extractor.d.ts +0 -105
  455. package/dist/renderable/codecs/convention-extractor.d.ts.map +0 -1
  456. package/dist/renderable/codecs/convention-extractor.js +0 -353
  457. package/dist/renderable/codecs/convention-extractor.js.map +0 -1
  458. package/dist/renderable/codecs/decision-doc.d.ts +0 -308
  459. package/dist/renderable/codecs/decision-doc.d.ts.map +0 -1
  460. package/dist/renderable/codecs/decision-doc.js +0 -485
  461. package/dist/renderable/codecs/decision-doc.js.map +0 -1
  462. package/dist/renderable/codecs/design-review.d.ts +0 -55
  463. package/dist/renderable/codecs/design-review.d.ts.map +0 -1
  464. package/dist/renderable/codecs/design-review.js +0 -532
  465. package/dist/renderable/codecs/design-review.js.map +0 -1
  466. package/dist/renderable/codecs/diagram-utils.d.ts +0 -62
  467. package/dist/renderable/codecs/diagram-utils.d.ts.map +0 -1
  468. package/dist/renderable/codecs/diagram-utils.js +0 -70
  469. package/dist/renderable/codecs/diagram-utils.js.map +0 -1
  470. package/dist/renderable/codecs/helpers.d.ts +0 -553
  471. package/dist/renderable/codecs/helpers.d.ts.map +0 -1
  472. package/dist/renderable/codecs/helpers.js +0 -913
  473. package/dist/renderable/codecs/helpers.js.map +0 -1
  474. package/dist/renderable/codecs/index-codec.d.ts +0 -4714
  475. package/dist/renderable/codecs/index.d.ts +0 -46
  476. package/dist/renderable/codecs/index.d.ts.map +0 -1
  477. package/dist/renderable/codecs/index.js +0 -70
  478. package/dist/renderable/codecs/index.js.map +0 -1
  479. package/dist/renderable/codecs/patterns.d.ts +0 -4757
  480. package/dist/renderable/codecs/patterns.d.ts.map +0 -1
  481. package/dist/renderable/codecs/patterns.js +0 -462
  482. package/dist/renderable/codecs/patterns.js.map +0 -1
  483. package/dist/renderable/codecs/planning.d.ts +0 -14055
  484. package/dist/renderable/codecs/planning.d.ts.map +0 -1
  485. package/dist/renderable/codecs/planning.js +0 -449
  486. package/dist/renderable/codecs/planning.js.map +0 -1
  487. package/dist/renderable/codecs/pr-changes.d.ts +0 -4742
  488. package/dist/renderable/codecs/pr-changes.d.ts.map +0 -1
  489. package/dist/renderable/codecs/pr-changes.js +0 -425
  490. package/dist/renderable/codecs/pr-changes.js.map +0 -1
  491. package/dist/renderable/codecs/reference.d.ts +0 -215
  492. package/dist/renderable/codecs/reference.d.ts.map +0 -1
  493. package/dist/renderable/codecs/reference.js +0 -1578
  494. package/dist/renderable/codecs/reference.js.map +0 -1
  495. package/dist/renderable/codecs/reporting.d.ts +0 -14026
  496. package/dist/renderable/codecs/reporting.d.ts.map +0 -1
  497. package/dist/renderable/codecs/reporting.js +0 -365
  498. package/dist/renderable/codecs/reporting.js.map +0 -1
  499. package/dist/renderable/codecs/requirements.d.ts +0 -4743
  500. package/dist/renderable/codecs/requirements.d.ts.map +0 -1
  501. package/dist/renderable/codecs/requirements.js +0 -428
  502. package/dist/renderable/codecs/requirements.js.map +0 -1
  503. package/dist/renderable/codecs/session.d.ts +0 -9410
  504. package/dist/renderable/codecs/session.d.ts.map +0 -1
  505. package/dist/renderable/codecs/session.js +0 -848
  506. package/dist/renderable/codecs/session.js.map +0 -1
  507. package/dist/renderable/codecs/shape-matcher.d.ts +0 -54
  508. package/dist/renderable/codecs/shape-matcher.d.ts.map +0 -1
  509. package/dist/renderable/codecs/shape-matcher.js +0 -106
  510. package/dist/renderable/codecs/shape-matcher.js.map +0 -1
  511. package/dist/renderable/codecs/shared-schema.d.ts +0 -44
  512. package/dist/renderable/codecs/shared-schema.d.ts.map +0 -1
  513. package/dist/renderable/codecs/shared-schema.js +0 -43
  514. package/dist/renderable/codecs/shared-schema.js.map +0 -1
  515. package/dist/renderable/codecs/taxonomy.d.ts +0 -4733
  516. package/dist/renderable/codecs/taxonomy.d.ts.map +0 -1
  517. package/dist/renderable/codecs/taxonomy.js +0 -570
  518. package/dist/renderable/codecs/taxonomy.js.map +0 -1
  519. package/dist/renderable/codecs/timeline.d.ts +0 -14094
  520. package/dist/renderable/codecs/timeline.d.ts.map +0 -1
  521. package/dist/renderable/codecs/timeline.js +0 -906
  522. package/dist/renderable/codecs/timeline.js.map +0 -1
  523. package/dist/renderable/codecs/types/base.d.ts +0 -81
  524. package/dist/renderable/codecs/types/base.d.ts.map +0 -1
  525. package/dist/renderable/codecs/types/base.js +0 -56
  526. package/dist/renderable/codecs/types/base.js.map +0 -1
  527. package/dist/renderable/codecs/types/index.d.ts +0 -5
  528. package/dist/renderable/codecs/types/index.d.ts.map +0 -1
  529. package/dist/renderable/codecs/types/index.js +0 -5
  530. package/dist/renderable/codecs/types/index.js.map +0 -1
  531. package/dist/renderable/codecs/validation-rules.d.ts +0 -4773
  532. package/dist/renderable/codecs/validation-rules.d.ts.map +0 -1
  533. package/dist/renderable/codecs/validation-rules.js +0 -537
  534. package/dist/renderable/codecs/validation-rules.js.map +0 -1
  535. package/dist/renderable/generate.d.ts +0 -338
  536. package/dist/renderable/generate.d.ts.map +0 -1
  537. package/dist/renderable/generate.js +0 -437
  538. package/dist/renderable/generate.js.map +0 -1
  539. package/dist/renderable/index.d.ts +0 -36
  540. package/dist/renderable/index.d.ts.map +0 -1
  541. package/dist/renderable/index.js +0 -58
  542. package/dist/renderable/index.js.map +0 -1
  543. package/dist/renderable/load-preamble.d.ts +0 -56
  544. package/dist/renderable/load-preamble.d.ts.map +0 -1
  545. package/dist/renderable/load-preamble.js +0 -298
  546. package/dist/renderable/load-preamble.js.map +0 -1
  547. package/dist/renderable/render.d.ts +0 -61
  548. package/dist/renderable/render.d.ts.map +0 -1
  549. package/dist/renderable/render.js +0 -346
  550. package/dist/renderable/render.js.map +0 -1
  551. package/dist/renderable/schema.d.ts +0 -194
  552. package/dist/renderable/schema.d.ts.map +0 -1
  553. package/dist/renderable/schema.js +0 -197
  554. package/dist/renderable/schema.js.map +0 -1
  555. package/dist/renderable/utils.d.ts +0 -146
  556. package/dist/renderable/utils.d.ts.map +0 -1
  557. package/dist/renderable/utils.js +0 -362
  558. package/dist/renderable/utils.js.map +0 -1
  559. package/dist/scanner/ast-parser.d.ts +0 -75
  560. package/dist/scanner/ast-parser.d.ts.map +0 -1
  561. package/dist/scanner/ast-parser.js +0 -835
  562. package/dist/scanner/ast-parser.js.map +0 -1
  563. package/dist/scanner/gherkin-ast-parser.d.ts +0 -166
  564. package/dist/scanner/gherkin-ast-parser.d.ts.map +0 -1
  565. package/dist/scanner/gherkin-ast-parser.js +0 -507
  566. package/dist/scanner/gherkin-ast-parser.js.map +0 -1
  567. package/dist/scanner/gherkin-scanner.d.ts +0 -106
  568. package/dist/scanner/gherkin-scanner.d.ts.map +0 -1
  569. package/dist/scanner/gherkin-scanner.js +0 -149
  570. package/dist/scanner/gherkin-scanner.js.map +0 -1
  571. package/dist/scanner/index.d.ts +0 -85
  572. package/dist/scanner/index.d.ts.map +0 -1
  573. package/dist/scanner/index.js +0 -102
  574. package/dist/scanner/index.js.map +0 -1
  575. package/dist/scanner/pattern-scanner.d.ts +0 -83
  576. package/dist/scanner/pattern-scanner.d.ts.map +0 -1
  577. package/dist/scanner/pattern-scanner.js +0 -110
  578. package/dist/scanner/pattern-scanner.js.map +0 -1
  579. package/dist/taxonomy/categories.d.ts +0 -47
  580. package/dist/taxonomy/categories.d.ts.map +0 -1
  581. package/dist/taxonomy/categories.js +0 -175
  582. package/dist/taxonomy/categories.js.map +0 -1
  583. package/dist/taxonomy/claude-section-values.d.ts +0 -12
  584. package/dist/taxonomy/claude-section-values.d.ts.map +0 -1
  585. package/dist/taxonomy/claude-section-values.js +0 -17
  586. package/dist/taxonomy/claude-section-values.js.map +0 -1
  587. package/dist/taxonomy/conventions.d.ts +0 -13
  588. package/dist/taxonomy/conventions.d.ts.map +0 -1
  589. package/dist/taxonomy/conventions.js +0 -27
  590. package/dist/taxonomy/conventions.js.map +0 -1
  591. package/dist/taxonomy/deliverable-status.d.ts +0 -99
  592. package/dist/taxonomy/deliverable-status.d.ts.map +0 -1
  593. package/dist/taxonomy/deliverable-status.js +0 -131
  594. package/dist/taxonomy/deliverable-status.js.map +0 -1
  595. package/dist/taxonomy/format-types.d.ts +0 -17
  596. package/dist/taxonomy/format-types.d.ts.map +0 -1
  597. package/dist/taxonomy/format-types.js +0 -23
  598. package/dist/taxonomy/format-types.js.map +0 -1
  599. package/dist/taxonomy/generator-options.d.ts +0 -67
  600. package/dist/taxonomy/generator-options.d.ts.map +0 -1
  601. package/dist/taxonomy/generator-options.js +0 -75
  602. package/dist/taxonomy/generator-options.js.map +0 -1
  603. package/dist/taxonomy/hierarchy-levels.d.ts +0 -23
  604. package/dist/taxonomy/hierarchy-levels.d.ts.map +0 -1
  605. package/dist/taxonomy/hierarchy-levels.js +0 -22
  606. package/dist/taxonomy/hierarchy-levels.js.map +0 -1
  607. package/dist/taxonomy/index.d.ts +0 -35
  608. package/dist/taxonomy/index.d.ts.map +0 -1
  609. package/dist/taxonomy/index.js +0 -56
  610. package/dist/taxonomy/index.js.map +0 -1
  611. package/dist/taxonomy/layer-types.d.ts +0 -22
  612. package/dist/taxonomy/layer-types.d.ts.map +0 -1
  613. package/dist/taxonomy/layer-types.js +0 -28
  614. package/dist/taxonomy/layer-types.js.map +0 -1
  615. package/dist/taxonomy/normalized-status.d.ts +0 -99
  616. package/dist/taxonomy/normalized-status.d.ts.map +0 -1
  617. package/dist/taxonomy/normalized-status.js +0 -113
  618. package/dist/taxonomy/normalized-status.js.map +0 -1
  619. package/dist/taxonomy/registry-builder.d.ts +0 -104
  620. package/dist/taxonomy/registry-builder.d.ts.map +0 -1
  621. package/dist/taxonomy/registry-builder.js +0 -561
  622. package/dist/taxonomy/registry-builder.js.map +0 -1
  623. package/dist/taxonomy/risk-levels.d.ts +0 -16
  624. package/dist/taxonomy/risk-levels.d.ts.map +0 -1
  625. package/dist/taxonomy/risk-levels.js +0 -15
  626. package/dist/taxonomy/risk-levels.js.map +0 -1
  627. package/dist/taxonomy/severity-types.d.ts +0 -6
  628. package/dist/taxonomy/severity-types.d.ts.map +0 -1
  629. package/dist/taxonomy/severity-types.js +0 -5
  630. package/dist/taxonomy/severity-types.js.map +0 -1
  631. package/dist/taxonomy/status-values.d.ts +0 -39
  632. package/dist/taxonomy/status-values.d.ts.map +0 -1
  633. package/dist/taxonomy/status-values.js +0 -42
  634. package/dist/taxonomy/status-values.js.map +0 -1
  635. package/dist/types/branded.d.ts +0 -89
  636. package/dist/types/branded.d.ts.map +0 -1
  637. package/dist/types/branded.js +0 -57
  638. package/dist/types/branded.js.map +0 -1
  639. package/dist/types/errors.d.ts +0 -342
  640. package/dist/types/errors.d.ts.map +0 -1
  641. package/dist/types/errors.js +0 -251
  642. package/dist/types/errors.js.map +0 -1
  643. package/dist/types/index.d.ts +0 -41
  644. package/dist/types/index.d.ts.map +0 -1
  645. package/dist/types/index.js +0 -5
  646. package/dist/types/index.js.map +0 -1
  647. package/dist/types/result.d.ts +0 -78
  648. package/dist/types/result.d.ts.map +0 -1
  649. package/dist/types/result.js +0 -78
  650. package/dist/types/result.js.map +0 -1
  651. package/dist/utils/collection-utils.d.ts +0 -49
  652. package/dist/utils/collection-utils.d.ts.map +0 -1
  653. package/dist/utils/collection-utils.js +0 -58
  654. package/dist/utils/collection-utils.js.map +0 -1
  655. package/dist/utils/id-utils.d.ts +0 -46
  656. package/dist/utils/id-utils.d.ts.map +0 -1
  657. package/dist/utils/id-utils.js +0 -51
  658. package/dist/utils/id-utils.js.map +0 -1
  659. package/dist/utils/index.d.ts +0 -21
  660. package/dist/utils/index.d.ts.map +0 -1
  661. package/dist/utils/index.js +0 -21
  662. package/dist/utils/index.js.map +0 -1
  663. package/dist/utils/string-utils.d.ts +0 -150
  664. package/dist/utils/string-utils.d.ts.map +0 -1
  665. package/dist/utils/string-utils.js +0 -281
  666. package/dist/utils/string-utils.js.map +0 -1
  667. package/dist/validation/anti-patterns.d.ts +0 -134
  668. package/dist/validation/anti-patterns.d.ts.map +0 -1
  669. package/dist/validation/anti-patterns.js +0 -307
  670. package/dist/validation/anti-patterns.js.map +0 -1
  671. package/dist/validation/dod-validator.d.ts +0 -94
  672. package/dist/validation/dod-validator.d.ts.map +0 -1
  673. package/dist/validation/dod-validator.js +0 -198
  674. package/dist/validation/dod-validator.js.map +0 -1
  675. package/dist/validation/fsm/index.d.ts +0 -59
  676. package/dist/validation/fsm/index.d.ts.map +0 -1
  677. package/dist/validation/fsm/index.js +0 -64
  678. package/dist/validation/fsm/index.js.map +0 -1
  679. package/dist/validation/fsm/states.d.ts +0 -93
  680. package/dist/validation/fsm/states.d.ts.map +0 -1
  681. package/dist/validation/fsm/states.js +0 -98
  682. package/dist/validation/fsm/states.js.map +0 -1
  683. package/dist/validation/fsm/transitions.d.ts +0 -100
  684. package/dist/validation/fsm/transitions.d.ts.map +0 -1
  685. package/dist/validation/fsm/transitions.js +0 -122
  686. package/dist/validation/fsm/transitions.js.map +0 -1
  687. package/dist/validation/fsm/validator.d.ts +0 -163
  688. package/dist/validation/fsm/validator.d.ts.map +0 -1
  689. package/dist/validation/fsm/validator.js +0 -205
  690. package/dist/validation/fsm/validator.js.map +0 -1
  691. package/dist/validation/index.d.ts +0 -23
  692. package/dist/validation/index.d.ts.map +0 -1
  693. package/dist/validation/index.js +0 -25
  694. package/dist/validation/index.js.map +0 -1
  695. package/dist/validation/types.d.ts +0 -136
  696. package/dist/validation/types.d.ts.map +0 -1
  697. package/dist/validation/types.js +0 -56
  698. package/dist/validation/types.js.map +0 -1
  699. package/dist/validation-schemas/codec-utils.d.ts +0 -188
  700. package/dist/validation-schemas/codec-utils.d.ts.map +0 -1
  701. package/dist/validation-schemas/codec-utils.js +0 -258
  702. package/dist/validation-schemas/codec-utils.js.map +0 -1
  703. package/dist/validation-schemas/config.d.ts +0 -99
  704. package/dist/validation-schemas/config.d.ts.map +0 -1
  705. package/dist/validation-schemas/config.js +0 -178
  706. package/dist/validation-schemas/config.js.map +0 -1
  707. package/dist/validation-schemas/doc-directive.d.ts +0 -195
  708. package/dist/validation-schemas/doc-directive.d.ts.map +0 -1
  709. package/dist/validation-schemas/doc-directive.js +0 -239
  710. package/dist/validation-schemas/doc-directive.js.map +0 -1
  711. package/dist/validation-schemas/dual-source.d.ts +0 -167
  712. package/dist/validation-schemas/dual-source.d.ts.map +0 -1
  713. package/dist/validation-schemas/dual-source.js +0 -168
  714. package/dist/validation-schemas/dual-source.js.map +0 -1
  715. package/dist/validation-schemas/export-info.d.ts +0 -53
  716. package/dist/validation-schemas/export-info.d.ts.map +0 -1
  717. package/dist/validation-schemas/export-info.js +0 -101
  718. package/dist/validation-schemas/export-info.js.map +0 -1
  719. package/dist/validation-schemas/extracted-pattern.d.ts +0 -351
  720. package/dist/validation-schemas/extracted-pattern.d.ts.map +0 -1
  721. package/dist/validation-schemas/extracted-pattern.js +0 -459
  722. package/dist/validation-schemas/extracted-pattern.js.map +0 -1
  723. package/dist/validation-schemas/extracted-shape.d.ts +0 -200
  724. package/dist/validation-schemas/extracted-shape.d.ts.map +0 -1
  725. package/dist/validation-schemas/extracted-shape.js +0 -182
  726. package/dist/validation-schemas/extracted-shape.js.map +0 -1
  727. package/dist/validation-schemas/feature.d.ts +0 -554
  728. package/dist/validation-schemas/feature.d.ts.map +0 -1
  729. package/dist/validation-schemas/feature.js +0 -262
  730. package/dist/validation-schemas/feature.js.map +0 -1
  731. package/dist/validation-schemas/index.d.ts +0 -15
  732. package/dist/validation-schemas/index.d.ts.map +0 -1
  733. package/dist/validation-schemas/index.js +0 -32
  734. package/dist/validation-schemas/index.js.map +0 -1
  735. package/dist/validation-schemas/lint.d.ts +0 -46
  736. package/dist/validation-schemas/lint.d.ts.map +0 -1
  737. package/dist/validation-schemas/lint.js +0 -45
  738. package/dist/validation-schemas/lint.js.map +0 -1
  739. package/dist/validation-schemas/master-dataset.d.ts +0 -8299
  740. package/dist/validation-schemas/master-dataset.d.ts.map +0 -1
  741. package/dist/validation-schemas/master-dataset.js +0 -275
  742. package/dist/validation-schemas/master-dataset.js.map +0 -1
  743. package/dist/validation-schemas/output-schemas.d.ts +0 -183
  744. package/dist/validation-schemas/output-schemas.d.ts.map +0 -1
  745. package/dist/validation-schemas/output-schemas.js +0 -149
  746. package/dist/validation-schemas/output-schemas.js.map +0 -1
  747. package/dist/validation-schemas/scenario-ref.d.ts +0 -80
  748. package/dist/validation-schemas/scenario-ref.d.ts.map +0 -1
  749. package/dist/validation-schemas/scenario-ref.js +0 -73
  750. package/dist/validation-schemas/scenario-ref.js.map +0 -1
  751. package/dist/validation-schemas/tag-registry.d.ts +0 -210
  752. package/dist/validation-schemas/tag-registry.d.ts.map +0 -1
  753. package/dist/validation-schemas/tag-registry.js +0 -248
  754. package/dist/validation-schemas/tag-registry.js.map +0 -1
  755. package/dist/validation-schemas/workflow-config.d.ts +0 -125
  756. package/dist/validation-schemas/workflow-config.d.ts.map +0 -1
  757. package/dist/validation-schemas/workflow-config.js +0 -138
  758. package/dist/validation-schemas/workflow-config.js.map +0 -1
@@ -1,63 +0,0 @@
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
@@ -1,88 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,114 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,356 +0,0 @@
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 * as crypto from 'node:crypto';
30
- // =============================================================================
31
- // Constants
32
- // =============================================================================
33
- /**
34
- * Source priority values (higher = more authoritative)
35
- */
36
- const SOURCE_PRIORITY = {
37
- typescript: 3, // .ts files
38
- decision: 2, // THIS DECISION markers
39
- feature: 1, // .feature files
40
- };
41
- /**
42
- * Length of fingerprint hex string to display.
43
- *
44
- * 16 hex characters = 64 bits provides sufficient collision resistance for
45
- * documentation deduplication. Birthday paradox collision probability is
46
- * less than 0.001% for up to 10,000 sections.
47
- */
48
- const FINGERPRINT_DISPLAY_LENGTH = 16;
49
- // =============================================================================
50
- // Helper Functions
51
- // =============================================================================
52
- /**
53
- * Normalize content for fingerprinting.
54
- * Strips whitespace variations to detect semantically identical content.
55
- */
56
- function normalizeForFingerprint(content) {
57
- return content
58
- .split('\n')
59
- .map((line) => line.trim())
60
- .filter((line) => line.length > 0)
61
- .join(' ')
62
- .replace(/\s+/g, ' ')
63
- .toLowerCase();
64
- }
65
- /**
66
- * Compute a content fingerprint using SHA-256.
67
- * Returns a 16-character hex string (64 bits).
68
- *
69
- * Note: 16 hex chars (64 bits) provides sufficient collision resistance for
70
- * documentation deduplication. Birthday paradox collision probability is
71
- * less than 0.001% for up to 10,000 sections, which exceeds expected usage.
72
- */
73
- export function computeFingerprint(content) {
74
- const normalized = normalizeForFingerprint(content);
75
- return crypto
76
- .createHash('sha256')
77
- .update(normalized)
78
- .digest('hex')
79
- .slice(0, FINGERPRINT_DISPLAY_LENGTH);
80
- }
81
- /**
82
- * Determine source type from file path.
83
- * Returns isUnknown=true for unrecognized file extensions.
84
- */
85
- function getSourceType(sourceFile) {
86
- if (sourceFile.endsWith('.ts')) {
87
- return { type: 'typescript', isUnknown: false };
88
- }
89
- if (sourceFile.toUpperCase().includes('THIS DECISION')) {
90
- return { type: 'decision', isUnknown: false };
91
- }
92
- if (sourceFile.endsWith('.feature')) {
93
- return { type: 'feature', isUnknown: false };
94
- }
95
- // Default to feature (lowest priority) for unknown types
96
- return { type: 'feature', isUnknown: true };
97
- }
98
- /**
99
- * Get priority value for a source file
100
- */
101
- function getSourcePriority(sourceFile) {
102
- const { type } = getSourceType(sourceFile);
103
- return SOURCE_PRIORITY[type] ?? 1;
104
- }
105
- /**
106
- * Count non-empty lines in content
107
- */
108
- function countLines(content) {
109
- return content.split('\n').filter((line) => line.trim().length > 0).length;
110
- }
111
- /**
112
- * Convert ExtractedSection to ContentBlock with original index tracking
113
- *
114
- * @param section - The extracted section to convert
115
- * @param index - Original index in the sections array (for precise removal)
116
- */
117
- function sectionToBlock(section, index) {
118
- return {
119
- header: section.section,
120
- body: section.content,
121
- source: section.sourceFile,
122
- fingerprint: computeFingerprint(section.content),
123
- lineCount: countLines(section.content),
124
- originalIndex: index,
125
- };
126
- }
127
- /**
128
- * Find duplicate content blocks by fingerprint.
129
- * Returns a map from fingerprint to all blocks with that fingerprint.
130
- */
131
- export function findDuplicates(blocks) {
132
- const groups = new Map();
133
- for (const block of blocks) {
134
- if (!block.fingerprint) {
135
- continue;
136
- }
137
- const existing = groups.get(block.fingerprint);
138
- if (existing) {
139
- existing.push(block);
140
- }
141
- else {
142
- groups.set(block.fingerprint, [block]);
143
- }
144
- }
145
- // Filter to only groups with duplicates
146
- const duplicates = new Map();
147
- for (const [fingerprint, group] of groups) {
148
- if (group.length > 1) {
149
- duplicates.set(fingerprint, group);
150
- }
151
- }
152
- return duplicates;
153
- }
154
- /**
155
- * Choose which block to keep from a set of duplicates.
156
- * Higher priority source wins; if equal, richer content (more lines) wins.
157
- *
158
- * Uses non-empty tuple type to guarantee at compile time that at least
159
- * one block exists. Callers must ensure the array is non-empty before calling.
160
- *
161
- * @param blocks - Non-empty array of content blocks (at least one element)
162
- * @returns The winning block
163
- */
164
- function chooseWinner(blocks) {
165
- const [first, ...rest] = blocks;
166
- let winner = first;
167
- for (const block of rest) {
168
- const winnerPriority = getSourcePriority(winner.source);
169
- const blockPriority = getSourcePriority(block.source);
170
- if (blockPriority > winnerPriority) {
171
- winner = block;
172
- }
173
- else if (blockPriority === winnerPriority && block.lineCount > winner.lineCount) {
174
- winner = block;
175
- }
176
- }
177
- return winner;
178
- }
179
- /**
180
- * Find sections with same header but different content (header conflicts)
181
- */
182
- function findHeaderConflicts(sections) {
183
- const byHeader = new Map();
184
- for (const section of sections) {
185
- const existing = byHeader.get(section.section);
186
- if (existing) {
187
- existing.push(section);
188
- }
189
- else {
190
- byHeader.set(section.section, [section]);
191
- }
192
- }
193
- // Filter to only headers with multiple sections AND different fingerprints
194
- const conflicts = new Map();
195
- for (const [header, group] of byHeader) {
196
- if (group.length > 1) {
197
- const fingerprints = new Set(group.map((s) => computeFingerprint(s.content)));
198
- if (fingerprints.size > 1) {
199
- conflicts.set(header, group);
200
- }
201
- }
202
- }
203
- return conflicts;
204
- }
205
- /**
206
- * Disambiguate headers by adding source suffix
207
- */
208
- function disambiguateHeader(section) {
209
- // Extract a short source name from the file path
210
- const sourceName = section.sourceFile
211
- .replace(/^.*\//, '') // Remove path
212
- .replace(/\.[^.]+$/, '') // Remove extension
213
- .replace(/[_]/g, '-') // Normalize underscores to hyphens
214
- .toLowerCase();
215
- return `${section.section} (from ${sourceName})`;
216
- }
217
- // =============================================================================
218
- // Main Function
219
- // =============================================================================
220
- /**
221
- * Deduplicate sections extracted from multiple sources.
222
- *
223
- * Algorithm:
224
- * 1. Convert sections to content blocks with fingerprints
225
- * 2. Find duplicate fingerprints
226
- * 3. For each duplicate group, keep highest priority source (or richest content)
227
- * 4. Handle header conflicts (same header, different content)
228
- * 5. Remove empty sections
229
- * 6. Preserve original order (first occurrence position)
230
- *
231
- * @param sections - Extracted sections to deduplicate
232
- * @param options - Deduplication options
233
- * @returns Deduplicated sections with merge info and warnings
234
- */
235
- export function deduplicateSections(sections, options) {
236
- const warnings = [];
237
- const mergedPairs = [];
238
- if (sections.length === 0) {
239
- return { sections: [], mergedPairs: [], warnings: [] };
240
- }
241
- // Check for unknown source types and warn (prevents silent data deprioritization)
242
- const seenUnknownExtensions = new Set();
243
- for (const section of sections) {
244
- const { isUnknown } = getSourceType(section.sourceFile);
245
- if (isUnknown) {
246
- const ext = section.sourceFile.slice(section.sourceFile.lastIndexOf('.'));
247
- // Only warn once per extension type to avoid flooding
248
- if (!seenUnknownExtensions.has(ext)) {
249
- seenUnknownExtensions.add(ext);
250
- const warning = {
251
- source: section.sourceFile,
252
- category: 'deduplication',
253
- message: `Unknown file type "${ext}" treated as feature (lowest priority)`,
254
- };
255
- warnings.push(warning);
256
- if (options?.warningCollector) {
257
- options.warningCollector.capture(warning);
258
- }
259
- }
260
- }
261
- }
262
- // Convert to content blocks with original indices for precise removal
263
- const blocks = sections.map((section, index) => sectionToBlock(section, index));
264
- // Find duplicates by fingerprint
265
- const duplicates = findDuplicates(blocks);
266
- // Track which sections to remove (by original index)
267
- const removeIndices = new Set();
268
- // Process each duplicate group
269
- for (const [_fingerprint, duplicateBlocks] of duplicates) {
270
- // Defensive guard: findDuplicates() should only return groups with 2+ blocks
271
- // (see filter at line 216), but we guard against invariant violations.
272
- if (duplicateBlocks.length === 0) {
273
- continue;
274
- }
275
- const winner = chooseWinner(duplicateBlocks);
276
- // Mark losers for removal using their original indices
277
- for (const block of duplicateBlocks) {
278
- if (block !== winner) {
279
- // Use the tracked original index for precise removal
280
- // This avoids mismatch when same file has duplicate headers
281
- const idx = block.originalIndex;
282
- if (idx !== undefined) {
283
- removeIndices.add(idx);
284
- mergedPairs.push({
285
- kept: winner,
286
- removed: block,
287
- });
288
- // Capture warning if collector provided
289
- if (options?.warningCollector) {
290
- options.warningCollector.capture({
291
- source: block.source,
292
- category: 'deduplication',
293
- message: `Duplicate content merged; kept version from ${winner.source}`,
294
- });
295
- }
296
- warnings.push({
297
- source: block.source,
298
- category: 'deduplication',
299
- message: `Duplicate content merged; kept version from ${winner.source}`,
300
- });
301
- }
302
- }
303
- }
304
- }
305
- // Build filtered section list (preserving order)
306
- // Explicitly type to ensure ExtractedSection compatibility
307
- let filteredSections = sections
308
- .filter((_, idx) => !removeIndices.has(idx))
309
- .map((s) => ({
310
- section: s.section,
311
- sourceFile: s.sourceFile,
312
- extractionMethod: s.extractionMethod,
313
- content: s.content,
314
- ...(s.shapes !== undefined && { shapes: s.shapes }),
315
- ...(s.docStrings !== undefined && { docStrings: s.docStrings }),
316
- }));
317
- // Handle header conflicts (same header, different content from different sources)
318
- const headerConflicts = findHeaderConflicts(filteredSections);
319
- for (const [header, conflictingSections] of headerConflicts) {
320
- // Disambiguate headers
321
- for (const section of conflictingSections) {
322
- const idx = filteredSections.findIndex((s) => s.section === header && s.sourceFile === section.sourceFile);
323
- const existing = idx !== -1 ? filteredSections[idx] : undefined;
324
- if (idx !== -1 && existing) {
325
- filteredSections[idx] = {
326
- section: disambiguateHeader(section),
327
- sourceFile: existing.sourceFile,
328
- extractionMethod: existing.extractionMethod,
329
- content: existing.content,
330
- ...(existing.shapes !== undefined && { shapes: existing.shapes }),
331
- ...(existing.docStrings !== undefined && { docStrings: existing.docStrings }),
332
- };
333
- }
334
- }
335
- }
336
- // Remove empty sections
337
- const emptySections = filteredSections.filter((s) => !s.content || s.content.trim().length === 0);
338
- for (const emptySection of emptySections) {
339
- const warning = {
340
- source: emptySection.sourceFile,
341
- category: 'deduplication',
342
- message: `Empty section "${emptySection.section}" removed`,
343
- };
344
- warnings.push(warning);
345
- if (options?.warningCollector) {
346
- options.warningCollector.capture(warning);
347
- }
348
- }
349
- filteredSections = filteredSections.filter((s) => s.content.trim().length > 0);
350
- return {
351
- sections: filteredSections,
352
- mergedPairs,
353
- warnings,
354
- };
355
- }
356
- //# sourceMappingURL=content-deduplicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-deduplicator.js","sourceRoot":"","sources":["../../src/generators/content-deduplicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAyEtC,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;GAEG;AACH,MAAM,eAAe,GAA2B;IAC9C,UAAU,EAAE,CAAC,EAAE,YAAY;IAC3B,QAAQ,EAAE,CAAC,EAAE,wBAAwB;IACrC,OAAO,EAAE,CAAC,EAAE,iBAAiB;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,uBAAuB,CAAC,OAAe;IAC9C,OAAO,OAAO;SACX,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,GAAG,CAAC;SACT,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,MAAM;SACV,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;AAC1C,CAAC;AAUD;;;GAGG;AACH,SAAS,aAAa,CAAC,UAAkB;IACvC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IACD,yDAAyD;IACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,OAAyB,EAAE,KAAa;IAC9D,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,OAAO;QACvB,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,MAAM,EAAE,OAAO,CAAC,UAAU;QAC1B,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;QACtC,aAAa,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;IACrD,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,YAAY,CAAC,MAAyC;IAC7D,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAEhC,IAAI,MAAM,GAAiB,KAAK,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,aAAa,GAAG,cAAc,EAAE,CAAC;YACnC,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,aAAa,KAAK,cAAc,IAAI,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClF,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,QAA4B;IACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEvD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IACxD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAyB;IACnD,iDAAiD;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;SAClC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc;SACnC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,mBAAmB;SAC3C,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,mCAAmC;SACxD,WAAW,EAAE,CAAC;IAEjB,OAAO,GAAG,OAAO,CAAC,OAAO,UAAU,UAAU,GAAG,CAAC;AACnD,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAqC,EACrC,OAA6B;IAE7B,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,kFAAkF;IAClF,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;IAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1E,sDAAsD;YACtD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,OAAO,GAAY;oBACvB,MAAM,EAAE,OAAO,CAAC,UAAU;oBAC1B,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,sBAAsB,GAAG,wCAAwC;iBAC3E,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;oBAC9B,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhF,iCAAiC;IACjC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAE1C,qDAAqD;IACrD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,+BAA+B;IAC/B,KAAK,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,IAAI,UAAU,EAAE,CAAC;QACzD,6EAA6E;QAC7E,uEAAuE;QACvE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,eAAoD,CAAC,CAAC;QAElF,uDAAuD;QACvD,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,qDAAqD;gBACrD,4DAA4D;gBAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC;gBAChC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvB,WAAW,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,KAAK;qBACf,CAAC,CAAC;oBAEH,wCAAwC;oBACxC,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;wBAC9B,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC;4BAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,QAAQ,EAAE,eAAe;4BACzB,OAAO,EAAE,+CAA+C,MAAM,CAAC,MAAM,EAAE;yBACxE,CAAC,CAAC;oBACL,CAAC;oBAED,QAAQ,CAAC,IAAI,CAAC;wBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,QAAQ,EAAE,eAAe;wBACzB,OAAO,EAAE,+CAA+C,MAAM,CAAC,MAAM,EAAE;qBACxE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,2DAA2D;IAC3D,IAAI,gBAAgB,GAAuB,QAAQ;SAChD,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC3C,GAAG,CACF,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC;QACxB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACnD,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;KAChE,CAAC,CACH,CAAC;IAEJ,kFAAkF;IAClF,MAAM,eAAe,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,eAAe,EAAE,CAAC;QAC5D,uBAAuB;QACvB,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CACnE,CAAC;YACF,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC3B,gBAAgB,CAAC,GAAG,CAAC,GAAG;oBACtB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC;oBACpC,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;oBAC3C,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACjE,GAAG,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;iBAC9E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAClG,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,OAAO,GAAY;YACvB,MAAM,EAAE,YAAY,CAAC,UAAU;YAC/B,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,kBAAkB,YAAY,CAAC,OAAO,WAAW;SAC3D,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvB,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC9B,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE/E,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,WAAW;QACX,QAAQ;KACT,CAAC;AACJ,CAAC"}