@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.
Files changed (800) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/LICENSE +25 -0
  3. package/LICENSE-MCP +62 -0
  4. package/README.md +147 -0
  5. package/dist/api/arch-queries.d.ts +95 -0
  6. package/dist/api/arch-queries.d.ts.map +1 -0
  7. package/dist/api/arch-queries.js +310 -0
  8. package/dist/api/arch-queries.js.map +1 -0
  9. package/dist/api/context-assembler.d.ts +124 -0
  10. package/dist/api/context-assembler.d.ts.map +1 -0
  11. package/dist/api/context-assembler.js +472 -0
  12. package/dist/api/context-assembler.js.map +1 -0
  13. package/dist/api/context-formatter.d.ts +26 -0
  14. package/dist/api/context-formatter.d.ts.map +1 -0
  15. package/dist/api/context-formatter.js +183 -0
  16. package/dist/api/context-formatter.js.map +1 -0
  17. package/dist/api/coverage-analyzer.d.ts +38 -0
  18. package/dist/api/coverage-analyzer.d.ts.map +1 -0
  19. package/dist/api/coverage-analyzer.js +117 -0
  20. package/dist/api/coverage-analyzer.js.map +1 -0
  21. package/dist/api/fuzzy-match.d.ts +75 -0
  22. package/dist/api/fuzzy-match.d.ts.map +1 -0
  23. package/dist/api/fuzzy-match.js +150 -0
  24. package/dist/api/fuzzy-match.js.map +1 -0
  25. package/dist/api/handoff-generator.d.ts +45 -0
  26. package/dist/api/handoff-generator.d.ts.map +1 -0
  27. package/dist/api/handoff-generator.js +139 -0
  28. package/dist/api/handoff-generator.js.map +1 -0
  29. package/dist/api/index.d.ts +61 -0
  30. package/dist/api/index.d.ts.map +1 -0
  31. package/dist/api/index.js +54 -0
  32. package/dist/api/index.js.map +1 -0
  33. package/dist/api/pattern-helpers.d.ts +51 -0
  34. package/dist/api/pattern-helpers.d.ts.map +1 -0
  35. package/dist/api/pattern-helpers.js +84 -0
  36. package/dist/api/pattern-helpers.js.map +1 -0
  37. package/dist/api/process-state.d.ts +224 -0
  38. package/dist/api/process-state.d.ts.map +1 -0
  39. package/dist/api/process-state.js +308 -0
  40. package/dist/api/process-state.js.map +1 -0
  41. package/dist/api/rules-query.d.ts +60 -0
  42. package/dist/api/rules-query.d.ts.map +1 -0
  43. package/dist/api/rules-query.js +154 -0
  44. package/dist/api/rules-query.js.map +1 -0
  45. package/dist/api/scope-validator.d.ts +56 -0
  46. package/dist/api/scope-validator.d.ts.map +1 -0
  47. package/dist/api/scope-validator.js +293 -0
  48. package/dist/api/scope-validator.js.map +1 -0
  49. package/dist/api/stub-resolver.d.ts +117 -0
  50. package/dist/api/stub-resolver.d.ts.map +1 -0
  51. package/dist/api/stub-resolver.js +154 -0
  52. package/dist/api/stub-resolver.js.map +1 -0
  53. package/dist/api/summarize.d.ts +75 -0
  54. package/dist/api/summarize.d.ts.map +1 -0
  55. package/dist/api/summarize.js +97 -0
  56. package/dist/api/summarize.js.map +1 -0
  57. package/dist/api/types.d.ts +221 -0
  58. package/dist/api/types.d.ts.map +1 -0
  59. package/dist/api/types.js +57 -0
  60. package/dist/api/types.js.map +1 -0
  61. package/dist/cache/file-cache.d.ts +72 -0
  62. package/dist/cache/file-cache.d.ts.map +1 -0
  63. package/dist/cache/file-cache.js +80 -0
  64. package/dist/cache/file-cache.js.map +1 -0
  65. package/dist/cache/index.d.ts +5 -0
  66. package/dist/cache/index.d.ts.map +1 -0
  67. package/dist/cache/index.js +5 -0
  68. package/dist/cache/index.js.map +1 -0
  69. package/dist/cli/cli-schema.d.ts +83 -0
  70. package/dist/cli/cli-schema.d.ts.map +1 -0
  71. package/dist/cli/cli-schema.js +505 -0
  72. package/dist/cli/cli-schema.js.map +1 -0
  73. package/dist/cli/dataset-cache.d.ts +66 -0
  74. package/dist/cli/dataset-cache.d.ts.map +1 -0
  75. package/dist/cli/dataset-cache.js +179 -0
  76. package/dist/cli/dataset-cache.js.map +1 -0
  77. package/dist/cli/error-handler.d.ts +84 -0
  78. package/dist/cli/error-handler.d.ts.map +1 -0
  79. package/dist/cli/error-handler.js +197 -0
  80. package/dist/cli/error-handler.js.map +1 -0
  81. package/dist/cli/generate-docs.d.ts +30 -0
  82. package/dist/cli/generate-docs.d.ts.map +1 -0
  83. package/dist/cli/generate-docs.js +370 -0
  84. package/dist/cli/generate-docs.js.map +1 -0
  85. package/dist/cli/lint-patterns.d.ts +57 -0
  86. package/dist/cli/lint-patterns.d.ts.map +1 -0
  87. package/dist/cli/lint-patterns.js +257 -0
  88. package/dist/cli/lint-patterns.js.map +1 -0
  89. package/dist/cli/lint-process.d.ts +54 -0
  90. package/dist/cli/lint-process.d.ts.map +1 -0
  91. package/dist/cli/lint-process.js +319 -0
  92. package/dist/cli/lint-process.js.map +1 -0
  93. package/dist/cli/lint-steps.d.ts +32 -0
  94. package/dist/cli/lint-steps.d.ts.map +1 -0
  95. package/dist/cli/lint-steps.js +172 -0
  96. package/dist/cli/lint-steps.js.map +1 -0
  97. package/dist/cli/mcp-server.d.ts +22 -0
  98. package/dist/cli/mcp-server.d.ts.map +1 -0
  99. package/dist/cli/mcp-server.js +57 -0
  100. package/dist/cli/mcp-server.js.map +1 -0
  101. package/dist/cli/output-pipeline.d.ts +130 -0
  102. package/dist/cli/output-pipeline.d.ts.map +1 -0
  103. package/dist/cli/output-pipeline.js +234 -0
  104. package/dist/cli/output-pipeline.js.map +1 -0
  105. package/dist/cli/process-api.d.ts +37 -0
  106. package/dist/cli/process-api.d.ts.map +1 -0
  107. package/dist/cli/process-api.js +1550 -0
  108. package/dist/cli/process-api.js.map +1 -0
  109. package/dist/cli/repl.d.ts +38 -0
  110. package/dist/cli/repl.d.ts.map +1 -0
  111. package/dist/cli/repl.js +239 -0
  112. package/dist/cli/repl.js.map +1 -0
  113. package/dist/cli/validate-patterns.d.ts +115 -0
  114. package/dist/cli/validate-patterns.d.ts.map +1 -0
  115. package/dist/cli/validate-patterns.js +707 -0
  116. package/dist/cli/validate-patterns.js.map +1 -0
  117. package/dist/cli/version.d.ts +35 -0
  118. package/dist/cli/version.d.ts.map +1 -0
  119. package/dist/cli/version.js +64 -0
  120. package/dist/cli/version.js.map +1 -0
  121. package/dist/config/config-loader.d.ts +167 -0
  122. package/dist/config/config-loader.d.ts.map +1 -0
  123. package/dist/config/config-loader.js +294 -0
  124. package/dist/config/config-loader.js.map +1 -0
  125. package/dist/config/defaults.d.ts +92 -0
  126. package/dist/config/defaults.d.ts.map +1 -0
  127. package/dist/config/defaults.js +103 -0
  128. package/dist/config/defaults.js.map +1 -0
  129. package/dist/config/define-config.d.ts +37 -0
  130. package/dist/config/define-config.d.ts.map +1 -0
  131. package/dist/config/define-config.js +38 -0
  132. package/dist/config/define-config.js.map +1 -0
  133. package/dist/config/factory.d.ts +79 -0
  134. package/dist/config/factory.d.ts.map +1 -0
  135. package/dist/config/factory.js +116 -0
  136. package/dist/config/factory.js.map +1 -0
  137. package/dist/config/index.d.ts +45 -0
  138. package/dist/config/index.d.ts.map +1 -0
  139. package/dist/config/index.js +48 -0
  140. package/dist/config/index.js.map +1 -0
  141. package/dist/config/merge-sources.d.ts +47 -0
  142. package/dist/config/merge-sources.d.ts.map +1 -0
  143. package/dist/config/merge-sources.js +61 -0
  144. package/dist/config/merge-sources.js.map +1 -0
  145. package/dist/config/presets.d.ts +115 -0
  146. package/dist/config/presets.d.ts.map +1 -0
  147. package/dist/config/presets.js +119 -0
  148. package/dist/config/presets.js.map +1 -0
  149. package/dist/config/project-config-schema.d.ts +192 -0
  150. package/dist/config/project-config-schema.d.ts.map +1 -0
  151. package/dist/config/project-config-schema.js +231 -0
  152. package/dist/config/project-config-schema.js.map +1 -0
  153. package/dist/config/project-config.d.ts +229 -0
  154. package/dist/config/project-config.d.ts.map +1 -0
  155. package/dist/config/project-config.js +37 -0
  156. package/dist/config/project-config.js.map +1 -0
  157. package/dist/config/regex-builders.d.ts +49 -0
  158. package/dist/config/regex-builders.d.ts.map +1 -0
  159. package/dist/config/regex-builders.js +85 -0
  160. package/dist/config/regex-builders.js.map +1 -0
  161. package/dist/config/resolve-config.d.ts +65 -0
  162. package/dist/config/resolve-config.d.ts.map +1 -0
  163. package/dist/config/resolve-config.js +150 -0
  164. package/dist/config/resolve-config.js.map +1 -0
  165. package/dist/config/types.d.ts +81 -0
  166. package/dist/config/types.d.ts.map +1 -0
  167. package/dist/config/types.js +22 -0
  168. package/dist/config/types.js.map +1 -0
  169. package/dist/config/workflow-loader.d.ts +90 -0
  170. package/dist/config/workflow-loader.d.ts.map +1 -0
  171. package/dist/config/workflow-loader.js +167 -0
  172. package/dist/config/workflow-loader.js.map +1 -0
  173. package/dist/extractor/doc-extractor.d.ts +233 -0
  174. package/dist/extractor/doc-extractor.d.ts.map +1 -0
  175. package/dist/extractor/doc-extractor.js +481 -0
  176. package/dist/extractor/doc-extractor.js.map +1 -0
  177. package/dist/extractor/dual-source-extractor.d.ts +161 -0
  178. package/dist/extractor/dual-source-extractor.d.ts.map +1 -0
  179. package/dist/extractor/dual-source-extractor.js +407 -0
  180. package/dist/extractor/dual-source-extractor.js.map +1 -0
  181. package/dist/extractor/gherkin-extractor.d.ts +170 -0
  182. package/dist/extractor/gherkin-extractor.d.ts.map +1 -0
  183. package/dist/extractor/gherkin-extractor.js +543 -0
  184. package/dist/extractor/gherkin-extractor.js.map +1 -0
  185. package/dist/extractor/index.d.ts +7 -0
  186. package/dist/extractor/index.d.ts.map +1 -0
  187. package/dist/extractor/index.js +11 -0
  188. package/dist/extractor/index.js.map +1 -0
  189. package/dist/extractor/layer-inference.d.ts +66 -0
  190. package/dist/extractor/layer-inference.d.ts.map +1 -0
  191. package/dist/extractor/layer-inference.js +93 -0
  192. package/dist/extractor/layer-inference.js.map +1 -0
  193. package/dist/extractor/shape-extractor.d.ts +79 -0
  194. package/dist/extractor/shape-extractor.d.ts.map +1 -0
  195. package/dist/extractor/shape-extractor.js +966 -0
  196. package/dist/extractor/shape-extractor.js.map +1 -0
  197. package/dist/generators/built-in/cli-recipe-generator.d.ts +30 -0
  198. package/dist/generators/built-in/cli-recipe-generator.d.ts.map +1 -0
  199. package/dist/generators/built-in/cli-recipe-generator.js +155 -0
  200. package/dist/generators/built-in/cli-recipe-generator.js.map +1 -0
  201. package/dist/generators/built-in/codec-generators.d.ts +29 -0
  202. package/dist/generators/built-in/codec-generators.d.ts.map +1 -0
  203. package/dist/generators/built-in/codec-generators.js +195 -0
  204. package/dist/generators/built-in/codec-generators.js.map +1 -0
  205. package/dist/generators/built-in/decision-doc-generator.d.ts +204 -0
  206. package/dist/generators/built-in/decision-doc-generator.d.ts.map +1 -0
  207. package/dist/generators/built-in/decision-doc-generator.js +654 -0
  208. package/dist/generators/built-in/decision-doc-generator.js.map +1 -0
  209. package/dist/generators/built-in/design-review-generator.d.ts +26 -0
  210. package/dist/generators/built-in/design-review-generator.d.ts.map +1 -0
  211. package/dist/generators/built-in/design-review-generator.js +94 -0
  212. package/dist/generators/built-in/design-review-generator.js.map +1 -0
  213. package/dist/generators/built-in/index.d.ts +22 -0
  214. package/dist/generators/built-in/index.d.ts.map +1 -0
  215. package/dist/generators/built-in/index.js +23 -0
  216. package/dist/generators/built-in/index.js.map +1 -0
  217. package/dist/generators/built-in/process-api-reference-generator.d.ts +18 -0
  218. package/dist/generators/built-in/process-api-reference-generator.d.ts.map +1 -0
  219. package/dist/generators/built-in/process-api-reference-generator.js +85 -0
  220. package/dist/generators/built-in/process-api-reference-generator.js.map +1 -0
  221. package/dist/generators/built-in/reference-generators.d.ts +51 -0
  222. package/dist/generators/built-in/reference-generators.d.ts.map +1 -0
  223. package/dist/generators/built-in/reference-generators.js +320 -0
  224. package/dist/generators/built-in/reference-generators.js.map +1 -0
  225. package/dist/generators/codec-based.d.ts +63 -0
  226. package/dist/generators/codec-based.d.ts.map +1 -0
  227. package/dist/generators/codec-based.js +88 -0
  228. package/dist/generators/codec-based.js.map +1 -0
  229. package/dist/generators/content-deduplicator.d.ts +114 -0
  230. package/dist/generators/content-deduplicator.d.ts.map +1 -0
  231. package/dist/generators/content-deduplicator.js +356 -0
  232. package/dist/generators/content-deduplicator.js.map +1 -0
  233. package/dist/generators/index.d.ts +50 -0
  234. package/dist/generators/index.d.ts.map +1 -0
  235. package/dist/generators/index.js +54 -0
  236. package/dist/generators/index.js.map +1 -0
  237. package/dist/generators/orchestrator.d.ts +265 -0
  238. package/dist/generators/orchestrator.d.ts.map +1 -0
  239. package/dist/generators/orchestrator.js +570 -0
  240. package/dist/generators/orchestrator.js.map +1 -0
  241. package/dist/generators/pipeline/build-pipeline.d.ts +131 -0
  242. package/dist/generators/pipeline/build-pipeline.d.ts.map +1 -0
  243. package/dist/generators/pipeline/build-pipeline.js +248 -0
  244. package/dist/generators/pipeline/build-pipeline.js.map +1 -0
  245. package/dist/generators/pipeline/context-inference.d.ts +55 -0
  246. package/dist/generators/pipeline/context-inference.d.ts.map +1 -0
  247. package/dist/generators/pipeline/context-inference.js +76 -0
  248. package/dist/generators/pipeline/context-inference.js.map +1 -0
  249. package/dist/generators/pipeline/index.d.ts +27 -0
  250. package/dist/generators/pipeline/index.d.ts.map +1 -0
  251. package/dist/generators/pipeline/index.js +34 -0
  252. package/dist/generators/pipeline/index.js.map +1 -0
  253. package/dist/generators/pipeline/merge-patterns.d.ts +33 -0
  254. package/dist/generators/pipeline/merge-patterns.d.ts.map +1 -0
  255. package/dist/generators/pipeline/merge-patterns.js +50 -0
  256. package/dist/generators/pipeline/merge-patterns.js.map +1 -0
  257. package/dist/generators/pipeline/relationship-resolver.d.ts +47 -0
  258. package/dist/generators/pipeline/relationship-resolver.d.ts.map +1 -0
  259. package/dist/generators/pipeline/relationship-resolver.js +132 -0
  260. package/dist/generators/pipeline/relationship-resolver.js.map +1 -0
  261. package/dist/generators/pipeline/sequence-utils.d.ts +49 -0
  262. package/dist/generators/pipeline/sequence-utils.d.ts.map +1 -0
  263. package/dist/generators/pipeline/sequence-utils.js +235 -0
  264. package/dist/generators/pipeline/sequence-utils.js.map +1 -0
  265. package/dist/generators/pipeline/transform-dataset.d.ts +82 -0
  266. package/dist/generators/pipeline/transform-dataset.d.ts.map +1 -0
  267. package/dist/generators/pipeline/transform-dataset.js +355 -0
  268. package/dist/generators/pipeline/transform-dataset.js.map +1 -0
  269. package/dist/generators/pipeline/transform-types.d.ts +96 -0
  270. package/dist/generators/pipeline/transform-types.d.ts.map +1 -0
  271. package/dist/generators/pipeline/transform-types.js +18 -0
  272. package/dist/generators/pipeline/transform-types.js.map +1 -0
  273. package/dist/generators/registry.d.ts +64 -0
  274. package/dist/generators/registry.d.ts.map +1 -0
  275. package/dist/generators/registry.js +77 -0
  276. package/dist/generators/registry.js.map +1 -0
  277. package/dist/generators/source-mapper.d.ts +143 -0
  278. package/dist/generators/source-mapper.d.ts.map +1 -0
  279. package/dist/generators/source-mapper.js +602 -0
  280. package/dist/generators/source-mapper.js.map +1 -0
  281. package/dist/generators/source-mapping-validator.d.ts +118 -0
  282. package/dist/generators/source-mapping-validator.d.ts.map +1 -0
  283. package/dist/generators/source-mapping-validator.js +334 -0
  284. package/dist/generators/source-mapping-validator.js.map +1 -0
  285. package/dist/generators/types.d.ts +104 -0
  286. package/dist/generators/types.d.ts.map +1 -0
  287. package/dist/generators/types.js +5 -0
  288. package/dist/generators/types.js.map +1 -0
  289. package/dist/generators/warning-collector.d.ts +144 -0
  290. package/dist/generators/warning-collector.d.ts.map +1 -0
  291. package/dist/generators/warning-collector.js +166 -0
  292. package/dist/generators/warning-collector.js.map +1 -0
  293. package/dist/git/branch-diff.d.ts +44 -0
  294. package/dist/git/branch-diff.d.ts.map +1 -0
  295. package/dist/git/branch-diff.js +57 -0
  296. package/dist/git/branch-diff.js.map +1 -0
  297. package/dist/git/helpers.d.ts +46 -0
  298. package/dist/git/helpers.d.ts.map +1 -0
  299. package/dist/git/helpers.js +67 -0
  300. package/dist/git/helpers.js.map +1 -0
  301. package/dist/git/index.d.ts +18 -0
  302. package/dist/git/index.d.ts.map +1 -0
  303. package/dist/git/index.js +18 -0
  304. package/dist/git/index.js.map +1 -0
  305. package/dist/git/name-status.d.ts +32 -0
  306. package/dist/git/name-status.d.ts.map +1 -0
  307. package/dist/git/name-status.js +66 -0
  308. package/dist/git/name-status.js.map +1 -0
  309. package/dist/index.d.ts +107 -0
  310. package/dist/index.d.ts.map +1 -0
  311. package/dist/index.js +122 -0
  312. package/dist/index.js.map +1 -0
  313. package/dist/lint/engine.d.ts +113 -0
  314. package/dist/lint/engine.d.ts.map +1 -0
  315. package/dist/lint/engine.js +228 -0
  316. package/dist/lint/engine.js.map +1 -0
  317. package/dist/lint/index.d.ts +26 -0
  318. package/dist/lint/index.d.ts.map +1 -0
  319. package/dist/lint/index.js +24 -0
  320. package/dist/lint/index.js.map +1 -0
  321. package/dist/lint/process-guard/decider.d.ts +166 -0
  322. package/dist/lint/process-guard/decider.d.ts.map +1 -0
  323. package/dist/lint/process-guard/decider.js +412 -0
  324. package/dist/lint/process-guard/decider.js.map +1 -0
  325. package/dist/lint/process-guard/derive-state.d.ts +96 -0
  326. package/dist/lint/process-guard/derive-state.d.ts.map +1 -0
  327. package/dist/lint/process-guard/derive-state.js +368 -0
  328. package/dist/lint/process-guard/derive-state.js.map +1 -0
  329. package/dist/lint/process-guard/detect-changes.d.ts +109 -0
  330. package/dist/lint/process-guard/detect-changes.d.ts.map +1 -0
  331. package/dist/lint/process-guard/detect-changes.js +487 -0
  332. package/dist/lint/process-guard/detect-changes.js.map +1 -0
  333. package/dist/lint/process-guard/index.d.ts +35 -0
  334. package/dist/lint/process-guard/index.d.ts.map +1 -0
  335. package/dist/lint/process-guard/index.js +39 -0
  336. package/dist/lint/process-guard/index.js.map +1 -0
  337. package/dist/lint/process-guard/types.d.ts +255 -0
  338. package/dist/lint/process-guard/types.d.ts.map +1 -0
  339. package/dist/lint/process-guard/types.js +31 -0
  340. package/dist/lint/process-guard/types.js.map +1 -0
  341. package/dist/lint/rules.d.ts +147 -0
  342. package/dist/lint/rules.d.ts.map +1 -0
  343. package/dist/lint/rules.js +289 -0
  344. package/dist/lint/rules.js.map +1 -0
  345. package/dist/lint/steps/cross-checks.d.ts +66 -0
  346. package/dist/lint/steps/cross-checks.d.ts.map +1 -0
  347. package/dist/lint/steps/cross-checks.js +290 -0
  348. package/dist/lint/steps/cross-checks.js.map +1 -0
  349. package/dist/lint/steps/feature-checks.d.ts +78 -0
  350. package/dist/lint/steps/feature-checks.d.ts.map +1 -0
  351. package/dist/lint/steps/feature-checks.js +279 -0
  352. package/dist/lint/steps/feature-checks.js.map +1 -0
  353. package/dist/lint/steps/index.d.ts +22 -0
  354. package/dist/lint/steps/index.d.ts.map +1 -0
  355. package/dist/lint/steps/index.js +26 -0
  356. package/dist/lint/steps/index.js.map +1 -0
  357. package/dist/lint/steps/pair-resolver.d.ts +29 -0
  358. package/dist/lint/steps/pair-resolver.d.ts.map +1 -0
  359. package/dist/lint/steps/pair-resolver.js +76 -0
  360. package/dist/lint/steps/pair-resolver.js.map +1 -0
  361. package/dist/lint/steps/runner.d.ts +28 -0
  362. package/dist/lint/steps/runner.d.ts.map +1 -0
  363. package/dist/lint/steps/runner.js +143 -0
  364. package/dist/lint/steps/runner.js.map +1 -0
  365. package/dist/lint/steps/step-checks.d.ts +41 -0
  366. package/dist/lint/steps/step-checks.d.ts.map +1 -0
  367. package/dist/lint/steps/step-checks.js +164 -0
  368. package/dist/lint/steps/step-checks.js.map +1 -0
  369. package/dist/lint/steps/types.d.ts +95 -0
  370. package/dist/lint/steps/types.d.ts.map +1 -0
  371. package/dist/lint/steps/types.js +79 -0
  372. package/dist/lint/steps/types.js.map +1 -0
  373. package/dist/lint/steps/utils.d.ts +22 -0
  374. package/dist/lint/steps/utils.d.ts.map +1 -0
  375. package/dist/lint/steps/utils.js +57 -0
  376. package/dist/lint/steps/utils.js.map +1 -0
  377. package/dist/mcp/file-watcher.d.ts +24 -0
  378. package/dist/mcp/file-watcher.d.ts.map +1 -0
  379. package/dist/mcp/file-watcher.js +75 -0
  380. package/dist/mcp/file-watcher.js.map +1 -0
  381. package/dist/mcp/index.d.ts +19 -0
  382. package/dist/mcp/index.d.ts.map +1 -0
  383. package/dist/mcp/index.js +21 -0
  384. package/dist/mcp/index.js.map +1 -0
  385. package/dist/mcp/pipeline-session.d.ts +33 -0
  386. package/dist/mcp/pipeline-session.d.ts.map +1 -0
  387. package/dist/mcp/pipeline-session.js +149 -0
  388. package/dist/mcp/pipeline-session.js.map +1 -0
  389. package/dist/mcp/server.d.ts +28 -0
  390. package/dist/mcp/server.d.ts.map +1 -0
  391. package/dist/mcp/server.js +197 -0
  392. package/dist/mcp/server.js.map +1 -0
  393. package/dist/mcp/tool-registry.d.ts +4 -0
  394. package/dist/mcp/tool-registry.d.ts.map +1 -0
  395. package/dist/mcp/tool-registry.js +525 -0
  396. package/dist/mcp/tool-registry.js.map +1 -0
  397. package/dist/renderable/codecs/adr.d.ts +4730 -0
  398. package/dist/renderable/codecs/adr.d.ts.map +1 -0
  399. package/dist/renderable/codecs/adr.js +590 -0
  400. package/dist/renderable/codecs/adr.js.map +1 -0
  401. package/dist/renderable/codecs/architecture.d.ts +4760 -0
  402. package/dist/renderable/codecs/architecture.d.ts.map +1 -0
  403. package/dist/renderable/codecs/architecture.js +524 -0
  404. package/dist/renderable/codecs/architecture.js.map +1 -0
  405. package/dist/renderable/codecs/business-rules.d.ts +4777 -0
  406. package/dist/renderable/codecs/business-rules.d.ts.map +1 -0
  407. package/dist/renderable/codecs/business-rules.js +648 -0
  408. package/dist/renderable/codecs/business-rules.js.map +1 -0
  409. package/dist/renderable/codecs/claude-module.d.ts +4710 -0
  410. package/dist/renderable/codecs/claude-module.d.ts.map +1 -0
  411. package/dist/renderable/codecs/claude-module.js +214 -0
  412. package/dist/renderable/codecs/claude-module.js.map +1 -0
  413. package/dist/renderable/codecs/composite.d.ts +84 -0
  414. package/dist/renderable/codecs/composite.d.ts.map +1 -0
  415. package/dist/renderable/codecs/composite.js +124 -0
  416. package/dist/renderable/codecs/composite.js.map +1 -0
  417. package/dist/renderable/codecs/convention-extractor.d.ts +105 -0
  418. package/dist/renderable/codecs/convention-extractor.d.ts.map +1 -0
  419. package/dist/renderable/codecs/convention-extractor.js +353 -0
  420. package/dist/renderable/codecs/convention-extractor.js.map +1 -0
  421. package/dist/renderable/codecs/decision-doc.d.ts +308 -0
  422. package/dist/renderable/codecs/decision-doc.d.ts.map +1 -0
  423. package/dist/renderable/codecs/decision-doc.js +485 -0
  424. package/dist/renderable/codecs/decision-doc.js.map +1 -0
  425. package/dist/renderable/codecs/design-review.d.ts +55 -0
  426. package/dist/renderable/codecs/design-review.d.ts.map +1 -0
  427. package/dist/renderable/codecs/design-review.js +532 -0
  428. package/dist/renderable/codecs/design-review.js.map +1 -0
  429. package/dist/renderable/codecs/diagram-utils.d.ts +62 -0
  430. package/dist/renderable/codecs/diagram-utils.d.ts.map +1 -0
  431. package/dist/renderable/codecs/diagram-utils.js +70 -0
  432. package/dist/renderable/codecs/diagram-utils.js.map +1 -0
  433. package/dist/renderable/codecs/helpers.d.ts +553 -0
  434. package/dist/renderable/codecs/helpers.d.ts.map +1 -0
  435. package/dist/renderable/codecs/helpers.js +913 -0
  436. package/dist/renderable/codecs/helpers.js.map +1 -0
  437. package/dist/renderable/codecs/index-codec.d.ts +4714 -0
  438. package/dist/renderable/codecs/index-codec.d.ts.map +1 -0
  439. package/dist/renderable/codecs/index-codec.js +250 -0
  440. package/dist/renderable/codecs/index-codec.js.map +1 -0
  441. package/dist/renderable/codecs/index.d.ts +46 -0
  442. package/dist/renderable/codecs/index.d.ts.map +1 -0
  443. package/dist/renderable/codecs/index.js +70 -0
  444. package/dist/renderable/codecs/index.js.map +1 -0
  445. package/dist/renderable/codecs/patterns.d.ts +4757 -0
  446. package/dist/renderable/codecs/patterns.d.ts.map +1 -0
  447. package/dist/renderable/codecs/patterns.js +462 -0
  448. package/dist/renderable/codecs/patterns.js.map +1 -0
  449. package/dist/renderable/codecs/planning.d.ts +14055 -0
  450. package/dist/renderable/codecs/planning.d.ts.map +1 -0
  451. package/dist/renderable/codecs/planning.js +449 -0
  452. package/dist/renderable/codecs/planning.js.map +1 -0
  453. package/dist/renderable/codecs/pr-changes.d.ts +4742 -0
  454. package/dist/renderable/codecs/pr-changes.d.ts.map +1 -0
  455. package/dist/renderable/codecs/pr-changes.js +425 -0
  456. package/dist/renderable/codecs/pr-changes.js.map +1 -0
  457. package/dist/renderable/codecs/reference.d.ts +215 -0
  458. package/dist/renderable/codecs/reference.d.ts.map +1 -0
  459. package/dist/renderable/codecs/reference.js +1578 -0
  460. package/dist/renderable/codecs/reference.js.map +1 -0
  461. package/dist/renderable/codecs/reporting.d.ts +14026 -0
  462. package/dist/renderable/codecs/reporting.d.ts.map +1 -0
  463. package/dist/renderable/codecs/reporting.js +365 -0
  464. package/dist/renderable/codecs/reporting.js.map +1 -0
  465. package/dist/renderable/codecs/requirements.d.ts +4743 -0
  466. package/dist/renderable/codecs/requirements.d.ts.map +1 -0
  467. package/dist/renderable/codecs/requirements.js +428 -0
  468. package/dist/renderable/codecs/requirements.js.map +1 -0
  469. package/dist/renderable/codecs/session.d.ts +9410 -0
  470. package/dist/renderable/codecs/session.d.ts.map +1 -0
  471. package/dist/renderable/codecs/session.js +848 -0
  472. package/dist/renderable/codecs/session.js.map +1 -0
  473. package/dist/renderable/codecs/shape-matcher.d.ts +54 -0
  474. package/dist/renderable/codecs/shape-matcher.d.ts.map +1 -0
  475. package/dist/renderable/codecs/shape-matcher.js +106 -0
  476. package/dist/renderable/codecs/shape-matcher.js.map +1 -0
  477. package/dist/renderable/codecs/shared-schema.d.ts +44 -0
  478. package/dist/renderable/codecs/shared-schema.d.ts.map +1 -0
  479. package/dist/renderable/codecs/shared-schema.js +43 -0
  480. package/dist/renderable/codecs/shared-schema.js.map +1 -0
  481. package/dist/renderable/codecs/taxonomy.d.ts +4733 -0
  482. package/dist/renderable/codecs/taxonomy.d.ts.map +1 -0
  483. package/dist/renderable/codecs/taxonomy.js +570 -0
  484. package/dist/renderable/codecs/taxonomy.js.map +1 -0
  485. package/dist/renderable/codecs/timeline.d.ts +14094 -0
  486. package/dist/renderable/codecs/timeline.d.ts.map +1 -0
  487. package/dist/renderable/codecs/timeline.js +906 -0
  488. package/dist/renderable/codecs/timeline.js.map +1 -0
  489. package/dist/renderable/codecs/types/base.d.ts +81 -0
  490. package/dist/renderable/codecs/types/base.d.ts.map +1 -0
  491. package/dist/renderable/codecs/types/base.js +56 -0
  492. package/dist/renderable/codecs/types/base.js.map +1 -0
  493. package/dist/renderable/codecs/types/index.d.ts +5 -0
  494. package/dist/renderable/codecs/types/index.d.ts.map +1 -0
  495. package/dist/renderable/codecs/types/index.js +5 -0
  496. package/dist/renderable/codecs/types/index.js.map +1 -0
  497. package/dist/renderable/codecs/validation-rules.d.ts +4773 -0
  498. package/dist/renderable/codecs/validation-rules.d.ts.map +1 -0
  499. package/dist/renderable/codecs/validation-rules.js +537 -0
  500. package/dist/renderable/codecs/validation-rules.js.map +1 -0
  501. package/dist/renderable/generate.d.ts +338 -0
  502. package/dist/renderable/generate.d.ts.map +1 -0
  503. package/dist/renderable/generate.js +437 -0
  504. package/dist/renderable/generate.js.map +1 -0
  505. package/dist/renderable/index.d.ts +36 -0
  506. package/dist/renderable/index.d.ts.map +1 -0
  507. package/dist/renderable/index.js +58 -0
  508. package/dist/renderable/index.js.map +1 -0
  509. package/dist/renderable/load-preamble.d.ts +56 -0
  510. package/dist/renderable/load-preamble.d.ts.map +1 -0
  511. package/dist/renderable/load-preamble.js +298 -0
  512. package/dist/renderable/load-preamble.js.map +1 -0
  513. package/dist/renderable/render.d.ts +61 -0
  514. package/dist/renderable/render.d.ts.map +1 -0
  515. package/dist/renderable/render.js +346 -0
  516. package/dist/renderable/render.js.map +1 -0
  517. package/dist/renderable/schema.d.ts +194 -0
  518. package/dist/renderable/schema.d.ts.map +1 -0
  519. package/dist/renderable/schema.js +197 -0
  520. package/dist/renderable/schema.js.map +1 -0
  521. package/dist/renderable/utils.d.ts +146 -0
  522. package/dist/renderable/utils.d.ts.map +1 -0
  523. package/dist/renderable/utils.js +362 -0
  524. package/dist/renderable/utils.js.map +1 -0
  525. package/dist/scanner/ast-parser.d.ts +75 -0
  526. package/dist/scanner/ast-parser.d.ts.map +1 -0
  527. package/dist/scanner/ast-parser.js +835 -0
  528. package/dist/scanner/ast-parser.js.map +1 -0
  529. package/dist/scanner/gherkin-ast-parser.d.ts +166 -0
  530. package/dist/scanner/gherkin-ast-parser.d.ts.map +1 -0
  531. package/dist/scanner/gherkin-ast-parser.js +507 -0
  532. package/dist/scanner/gherkin-ast-parser.js.map +1 -0
  533. package/dist/scanner/gherkin-scanner.d.ts +106 -0
  534. package/dist/scanner/gherkin-scanner.d.ts.map +1 -0
  535. package/dist/scanner/gherkin-scanner.js +149 -0
  536. package/dist/scanner/gherkin-scanner.js.map +1 -0
  537. package/dist/scanner/index.d.ts +85 -0
  538. package/dist/scanner/index.d.ts.map +1 -0
  539. package/dist/scanner/index.js +102 -0
  540. package/dist/scanner/index.js.map +1 -0
  541. package/dist/scanner/pattern-scanner.d.ts +83 -0
  542. package/dist/scanner/pattern-scanner.d.ts.map +1 -0
  543. package/dist/scanner/pattern-scanner.js +110 -0
  544. package/dist/scanner/pattern-scanner.js.map +1 -0
  545. package/dist/taxonomy/categories.d.ts +47 -0
  546. package/dist/taxonomy/categories.d.ts.map +1 -0
  547. package/dist/taxonomy/categories.js +175 -0
  548. package/dist/taxonomy/categories.js.map +1 -0
  549. package/dist/taxonomy/claude-section-values.d.ts +12 -0
  550. package/dist/taxonomy/claude-section-values.d.ts.map +1 -0
  551. package/dist/taxonomy/claude-section-values.js +17 -0
  552. package/dist/taxonomy/claude-section-values.js.map +1 -0
  553. package/dist/taxonomy/conventions.d.ts +13 -0
  554. package/dist/taxonomy/conventions.d.ts.map +1 -0
  555. package/dist/taxonomy/conventions.js +27 -0
  556. package/dist/taxonomy/conventions.js.map +1 -0
  557. package/dist/taxonomy/deliverable-status.d.ts +99 -0
  558. package/dist/taxonomy/deliverable-status.d.ts.map +1 -0
  559. package/dist/taxonomy/deliverable-status.js +131 -0
  560. package/dist/taxonomy/deliverable-status.js.map +1 -0
  561. package/dist/taxonomy/format-types.d.ts +17 -0
  562. package/dist/taxonomy/format-types.d.ts.map +1 -0
  563. package/dist/taxonomy/format-types.js +23 -0
  564. package/dist/taxonomy/format-types.js.map +1 -0
  565. package/dist/taxonomy/generator-options.d.ts +67 -0
  566. package/dist/taxonomy/generator-options.d.ts.map +1 -0
  567. package/dist/taxonomy/generator-options.js +75 -0
  568. package/dist/taxonomy/generator-options.js.map +1 -0
  569. package/dist/taxonomy/hierarchy-levels.d.ts +23 -0
  570. package/dist/taxonomy/hierarchy-levels.d.ts.map +1 -0
  571. package/dist/taxonomy/hierarchy-levels.js +22 -0
  572. package/dist/taxonomy/hierarchy-levels.js.map +1 -0
  573. package/dist/taxonomy/index.d.ts +35 -0
  574. package/dist/taxonomy/index.d.ts.map +1 -0
  575. package/dist/taxonomy/index.js +56 -0
  576. package/dist/taxonomy/index.js.map +1 -0
  577. package/dist/taxonomy/layer-types.d.ts +22 -0
  578. package/dist/taxonomy/layer-types.d.ts.map +1 -0
  579. package/dist/taxonomy/layer-types.js +28 -0
  580. package/dist/taxonomy/layer-types.js.map +1 -0
  581. package/dist/taxonomy/normalized-status.d.ts +99 -0
  582. package/dist/taxonomy/normalized-status.d.ts.map +1 -0
  583. package/dist/taxonomy/normalized-status.js +113 -0
  584. package/dist/taxonomy/normalized-status.js.map +1 -0
  585. package/dist/taxonomy/registry-builder.d.ts +104 -0
  586. package/dist/taxonomy/registry-builder.d.ts.map +1 -0
  587. package/dist/taxonomy/registry-builder.js +561 -0
  588. package/dist/taxonomy/registry-builder.js.map +1 -0
  589. package/dist/taxonomy/risk-levels.d.ts +16 -0
  590. package/dist/taxonomy/risk-levels.d.ts.map +1 -0
  591. package/dist/taxonomy/risk-levels.js +15 -0
  592. package/dist/taxonomy/risk-levels.js.map +1 -0
  593. package/dist/taxonomy/severity-types.d.ts +6 -0
  594. package/dist/taxonomy/severity-types.d.ts.map +1 -0
  595. package/dist/taxonomy/severity-types.js +5 -0
  596. package/dist/taxonomy/severity-types.js.map +1 -0
  597. package/dist/taxonomy/status-values.d.ts +39 -0
  598. package/dist/taxonomy/status-values.d.ts.map +1 -0
  599. package/dist/taxonomy/status-values.js +42 -0
  600. package/dist/taxonomy/status-values.js.map +1 -0
  601. package/dist/types/branded.d.ts +89 -0
  602. package/dist/types/branded.d.ts.map +1 -0
  603. package/dist/types/branded.js +57 -0
  604. package/dist/types/branded.js.map +1 -0
  605. package/dist/types/errors.d.ts +342 -0
  606. package/dist/types/errors.d.ts.map +1 -0
  607. package/dist/types/errors.js +251 -0
  608. package/dist/types/errors.js.map +1 -0
  609. package/dist/types/index.d.ts +41 -0
  610. package/dist/types/index.d.ts.map +1 -0
  611. package/dist/types/index.js +5 -0
  612. package/dist/types/index.js.map +1 -0
  613. package/dist/types/result.d.ts +78 -0
  614. package/dist/types/result.d.ts.map +1 -0
  615. package/dist/types/result.js +78 -0
  616. package/dist/types/result.js.map +1 -0
  617. package/dist/utils/collection-utils.d.ts +49 -0
  618. package/dist/utils/collection-utils.d.ts.map +1 -0
  619. package/dist/utils/collection-utils.js +58 -0
  620. package/dist/utils/collection-utils.js.map +1 -0
  621. package/dist/utils/id-utils.d.ts +46 -0
  622. package/dist/utils/id-utils.d.ts.map +1 -0
  623. package/dist/utils/id-utils.js +51 -0
  624. package/dist/utils/id-utils.js.map +1 -0
  625. package/dist/utils/index.d.ts +21 -0
  626. package/dist/utils/index.d.ts.map +1 -0
  627. package/dist/utils/index.js +21 -0
  628. package/dist/utils/index.js.map +1 -0
  629. package/dist/utils/string-utils.d.ts +150 -0
  630. package/dist/utils/string-utils.d.ts.map +1 -0
  631. package/dist/utils/string-utils.js +281 -0
  632. package/dist/utils/string-utils.js.map +1 -0
  633. package/dist/validation/anti-patterns.d.ts +134 -0
  634. package/dist/validation/anti-patterns.d.ts.map +1 -0
  635. package/dist/validation/anti-patterns.js +307 -0
  636. package/dist/validation/anti-patterns.js.map +1 -0
  637. package/dist/validation/dod-validator.d.ts +94 -0
  638. package/dist/validation/dod-validator.d.ts.map +1 -0
  639. package/dist/validation/dod-validator.js +198 -0
  640. package/dist/validation/dod-validator.js.map +1 -0
  641. package/dist/validation/fsm/index.d.ts +59 -0
  642. package/dist/validation/fsm/index.d.ts.map +1 -0
  643. package/dist/validation/fsm/index.js +64 -0
  644. package/dist/validation/fsm/index.js.map +1 -0
  645. package/dist/validation/fsm/states.d.ts +93 -0
  646. package/dist/validation/fsm/states.d.ts.map +1 -0
  647. package/dist/validation/fsm/states.js +98 -0
  648. package/dist/validation/fsm/states.js.map +1 -0
  649. package/dist/validation/fsm/transitions.d.ts +100 -0
  650. package/dist/validation/fsm/transitions.d.ts.map +1 -0
  651. package/dist/validation/fsm/transitions.js +122 -0
  652. package/dist/validation/fsm/transitions.js.map +1 -0
  653. package/dist/validation/fsm/validator.d.ts +163 -0
  654. package/dist/validation/fsm/validator.d.ts.map +1 -0
  655. package/dist/validation/fsm/validator.js +205 -0
  656. package/dist/validation/fsm/validator.js.map +1 -0
  657. package/dist/validation/index.d.ts +23 -0
  658. package/dist/validation/index.d.ts.map +1 -0
  659. package/dist/validation/index.js +25 -0
  660. package/dist/validation/index.js.map +1 -0
  661. package/dist/validation/types.d.ts +136 -0
  662. package/dist/validation/types.d.ts.map +1 -0
  663. package/dist/validation/types.js +56 -0
  664. package/dist/validation/types.js.map +1 -0
  665. package/dist/validation-schemas/codec-utils.d.ts +188 -0
  666. package/dist/validation-schemas/codec-utils.d.ts.map +1 -0
  667. package/dist/validation-schemas/codec-utils.js +258 -0
  668. package/dist/validation-schemas/codec-utils.js.map +1 -0
  669. package/dist/validation-schemas/config.d.ts +99 -0
  670. package/dist/validation-schemas/config.d.ts.map +1 -0
  671. package/dist/validation-schemas/config.js +178 -0
  672. package/dist/validation-schemas/config.js.map +1 -0
  673. package/dist/validation-schemas/doc-directive.d.ts +195 -0
  674. package/dist/validation-schemas/doc-directive.d.ts.map +1 -0
  675. package/dist/validation-schemas/doc-directive.js +239 -0
  676. package/dist/validation-schemas/doc-directive.js.map +1 -0
  677. package/dist/validation-schemas/dual-source.d.ts +167 -0
  678. package/dist/validation-schemas/dual-source.d.ts.map +1 -0
  679. package/dist/validation-schemas/dual-source.js +168 -0
  680. package/dist/validation-schemas/dual-source.js.map +1 -0
  681. package/dist/validation-schemas/export-info.d.ts +53 -0
  682. package/dist/validation-schemas/export-info.d.ts.map +1 -0
  683. package/dist/validation-schemas/export-info.js +101 -0
  684. package/dist/validation-schemas/export-info.js.map +1 -0
  685. package/dist/validation-schemas/extracted-pattern.d.ts +351 -0
  686. package/dist/validation-schemas/extracted-pattern.d.ts.map +1 -0
  687. package/dist/validation-schemas/extracted-pattern.js +459 -0
  688. package/dist/validation-schemas/extracted-pattern.js.map +1 -0
  689. package/dist/validation-schemas/extracted-shape.d.ts +200 -0
  690. package/dist/validation-schemas/extracted-shape.d.ts.map +1 -0
  691. package/dist/validation-schemas/extracted-shape.js +182 -0
  692. package/dist/validation-schemas/extracted-shape.js.map +1 -0
  693. package/dist/validation-schemas/feature.d.ts +554 -0
  694. package/dist/validation-schemas/feature.d.ts.map +1 -0
  695. package/dist/validation-schemas/feature.js +262 -0
  696. package/dist/validation-schemas/feature.js.map +1 -0
  697. package/dist/validation-schemas/index.d.ts +15 -0
  698. package/dist/validation-schemas/index.d.ts.map +1 -0
  699. package/dist/validation-schemas/index.js +32 -0
  700. package/dist/validation-schemas/index.js.map +1 -0
  701. package/dist/validation-schemas/lint.d.ts +46 -0
  702. package/dist/validation-schemas/lint.d.ts.map +1 -0
  703. package/dist/validation-schemas/lint.js +45 -0
  704. package/dist/validation-schemas/lint.js.map +1 -0
  705. package/dist/validation-schemas/master-dataset.d.ts +8299 -0
  706. package/dist/validation-schemas/master-dataset.d.ts.map +1 -0
  707. package/dist/validation-schemas/master-dataset.js +275 -0
  708. package/dist/validation-schemas/master-dataset.js.map +1 -0
  709. package/dist/validation-schemas/output-schemas.d.ts +183 -0
  710. package/dist/validation-schemas/output-schemas.d.ts.map +1 -0
  711. package/dist/validation-schemas/output-schemas.js +149 -0
  712. package/dist/validation-schemas/output-schemas.js.map +1 -0
  713. package/dist/validation-schemas/scenario-ref.d.ts +80 -0
  714. package/dist/validation-schemas/scenario-ref.d.ts.map +1 -0
  715. package/dist/validation-schemas/scenario-ref.js +73 -0
  716. package/dist/validation-schemas/scenario-ref.js.map +1 -0
  717. package/dist/validation-schemas/tag-registry.d.ts +210 -0
  718. package/dist/validation-schemas/tag-registry.d.ts.map +1 -0
  719. package/dist/validation-schemas/tag-registry.js +248 -0
  720. package/dist/validation-schemas/tag-registry.js.map +1 -0
  721. package/dist/validation-schemas/workflow-config.d.ts +125 -0
  722. package/dist/validation-schemas/workflow-config.d.ts.map +1 -0
  723. package/dist/validation-schemas/workflow-config.js +138 -0
  724. package/dist/validation-schemas/workflow-config.js.map +1 -0
  725. package/docs/ANNOTATION-GUIDE.md +271 -0
  726. package/docs/ARCHITECTURE.md +1636 -0
  727. package/docs/CONFIGURATION.md +337 -0
  728. package/docs/DOCS-GAP-ANALYSIS.md +811 -0
  729. package/docs/GHERKIN-PATTERNS.md +366 -0
  730. package/docs/INDEX.md +345 -0
  731. package/docs/MCP-SETUP.md +140 -0
  732. package/docs/METHODOLOGY.md +240 -0
  733. package/docs/PROCESS-API.md +65 -0
  734. package/docs/PROCESS-GUARD.md +341 -0
  735. package/docs/SESSION-GUIDES.md +391 -0
  736. package/docs/TAXONOMY.md +106 -0
  737. package/docs/VALIDATION.md +418 -0
  738. package/docs-live/ARCHITECTURE.md +362 -0
  739. package/docs-live/BUSINESS-RULES.md +24 -0
  740. package/docs-live/CHANGELOG-GENERATED.md +375 -0
  741. package/docs-live/DECISIONS.md +78 -0
  742. package/docs-live/INDEX.md +231 -0
  743. package/docs-live/PRODUCT-AREAS.md +255 -0
  744. package/docs-live/TAXONOMY.md +202 -0
  745. package/docs-live/VALIDATION-RULES.md +119 -0
  746. package/docs-live/_claude-md/annotation/annotation-overview.md +26 -0
  747. package/docs-live/_claude-md/annotation/annotation-reference.md +213 -0
  748. package/docs-live/_claude-md/architecture/architecture-codecs.md +160 -0
  749. package/docs-live/_claude-md/architecture/architecture-types.md +32 -0
  750. package/docs-live/_claude-md/architecture/reference-sample.md +162 -0
  751. package/docs-live/_claude-md/authoring/gherkin-authoring-guide.md +245 -0
  752. package/docs-live/_claude-md/configuration/configuration-guide.md +216 -0
  753. package/docs-live/_claude-md/configuration/configuration-overview.md +37 -0
  754. package/docs-live/_claude-md/core-types/core-types-overview.md +20 -0
  755. package/docs-live/_claude-md/data-api/data-api-overview.md +39 -0
  756. package/docs-live/_claude-md/generation/generation-overview.md +30 -0
  757. package/docs-live/_claude-md/process/process-overview.md +127 -0
  758. package/docs-live/_claude-md/validation/process-guard.md +185 -0
  759. package/docs-live/_claude-md/validation/validation-overview.md +37 -0
  760. package/docs-live/_claude-md/validation/validation-tools-guide.md +242 -0
  761. package/docs-live/_claude-md/workflow/session-workflow-guide.md +141 -0
  762. package/docs-live/business-rules/annotation.md +1462 -0
  763. package/docs-live/business-rules/configuration.md +465 -0
  764. package/docs-live/business-rules/core-types.md +531 -0
  765. package/docs-live/business-rules/data-api.md +1403 -0
  766. package/docs-live/business-rules/generation.md +4726 -0
  767. package/docs-live/business-rules/process.md +122 -0
  768. package/docs-live/business-rules/validation.md +998 -0
  769. package/docs-live/decisions/adr-001-taxonomy-canonical-values.md +197 -0
  770. package/docs-live/decisions/adr-002-gherkin-only-testing.md +57 -0
  771. package/docs-live/decisions/adr-003-source-first-pattern-architecture.md +147 -0
  772. package/docs-live/decisions/adr-004-session-workflow-commands.md +137 -0
  773. package/docs-live/decisions/adr-005-codec-based-markdown-rendering.md +150 -0
  774. package/docs-live/decisions/adr-006-single-read-model-architecture.md +136 -0
  775. package/docs-live/decisions/adr-021-doc-generation-proof-of-concept.md +489 -0
  776. package/docs-live/product-areas/ANNOTATION.md +591 -0
  777. package/docs-live/product-areas/CONFIGURATION.md +1048 -0
  778. package/docs-live/product-areas/CORE-TYPES.md +221 -0
  779. package/docs-live/product-areas/DATA-API.md +850 -0
  780. package/docs-live/product-areas/GENERATION.md +1200 -0
  781. package/docs-live/product-areas/PROCESS.md +351 -0
  782. package/docs-live/product-areas/VALIDATION.md +1135 -0
  783. package/docs-live/reference/ANNOTATION-REFERENCE.md +232 -0
  784. package/docs-live/reference/ARCHITECTURE-CODECS.md +675 -0
  785. package/docs-live/reference/ARCHITECTURE-TYPES.md +436 -0
  786. package/docs-live/reference/CONFIGURATION-GUIDE.md +235 -0
  787. package/docs-live/reference/GHERKIN-AUTHORING-GUIDE.md +270 -0
  788. package/docs-live/reference/PROCESS-API-RECIPES.md +476 -0
  789. package/docs-live/reference/PROCESS-API-REFERENCE.md +63 -0
  790. package/docs-live/reference/PROCESS-GUARD-REFERENCE.md +258 -0
  791. package/docs-live/reference/REFERENCE-SAMPLE.md +1135 -0
  792. package/docs-live/reference/SESSION-WORKFLOW-GUIDE.md +384 -0
  793. package/docs-live/reference/VALIDATION-TOOLS-GUIDE.md +263 -0
  794. package/docs-live/taxonomy/categories.md +33 -0
  795. package/docs-live/taxonomy/format-types.md +67 -0
  796. package/docs-live/taxonomy/metadata-tags.md +693 -0
  797. package/docs-live/validation/error-catalog.md +78 -0
  798. package/docs-live/validation/fsm-transitions.md +50 -0
  799. package/docs-live/validation/protection-levels.md +51 -0
  800. package/package.json +233 -0
@@ -0,0 +1,570 @@
1
+ /**
2
+ * @architect
3
+ * @architect-core @architect-infra
4
+ * @architect-pattern Documentation Generation Orchestrator
5
+ * @architect-status completed
6
+ * @architect-arch-role service
7
+ * @architect-arch-context generator
8
+ * @architect-arch-layer application
9
+ * @architect-uses Pattern Scanner, Doc Extractor, Gherkin Scanner, Gherkin Extractor, Generator Registry, JSON Output Codec
10
+ * @architect-used-by CLI, Programmatic API
11
+ * @architect-usecase "When running full documentation generation pipeline"
12
+ * @architect-usecase "When merging TypeScript and Gherkin patterns"
13
+ * @architect-convention pipeline-architecture
14
+ *
15
+ * ## Orchestrator Pipeline Responsibilities
16
+ *
17
+ * **Invariant:** The orchestrator is the integration boundary for full docs generation:
18
+ * it delegates dataset construction to the shared pipeline, then executes codecs and
19
+ * writes files.
20
+ *
21
+ * **Rationale:** Splitting orchestration into dataset construction (shared) and output
22
+ * execution (orchestrator-owned) keeps Data API and validation consumers aligned on one
23
+ * read-model path while preserving generator-specific output handling.
24
+ *
25
+ * ## Steps 1-8 via buildMasterDataset()
26
+ *
27
+ * Steps 1-8 (config load, TypeScript/Gherkin scan + extraction, merge, hierarchy
28
+ * derivation, workflow load, and `transformToMasterDataset`) are delegated to
29
+ * `buildMasterDataset()`.
30
+ *
31
+ * ## Steps 9-10: Codec Execution and File Writing
32
+ *
33
+ * After dataset creation, the orchestrator owns Step 9 (codec execution per generator,
34
+ * output rendering, additional file fan-out) and Step 10 (path validation, overwrite
35
+ * policy, and persisted file writes).
36
+ *
37
+ * ### When to Use
38
+ *
39
+ * - Running complete documentation generation programmatically
40
+ * - Integrating doc generation into build scripts
41
+ * - Testing the full pipeline without CLI overhead
42
+ */
43
+ import * as path from 'path';
44
+ import * as fs from 'fs/promises';
45
+ import { createJsonOutputCodec, RegistryMetadataOutputSchema, } from '../validation-schemas/index.js';
46
+ import { mergeSourcesForGenerator } from '../config/merge-sources.js';
47
+ import { DEFAULT_CONTEXT_INFERENCE_RULES } from '../config/defaults.js';
48
+ import { generatorRegistry } from './registry.js';
49
+ import { Result as R } from '../types/index.js';
50
+ import { buildMasterDataset } from './pipeline/index.js';
51
+ import { getChangedFilesList } from '../git/index.js';
52
+ import { registerReferenceGenerators } from './built-in/reference-generators.js';
53
+ /**
54
+ * Codec for serializing registry metadata to JSON
55
+ */
56
+ const RegistryMetadataCodec = createJsonOutputCodec(RegistryMetadataOutputSchema);
57
+ /**
58
+ * Validate that a file path resolves within a base directory.
59
+ *
60
+ * Prevents path traversal attacks where a malicious file path like "../../../etc/passwd"
61
+ * could escape the intended output directory.
62
+ *
63
+ * @param filePath - Relative file path to validate
64
+ * @param baseDir - Base directory that the path must stay within
65
+ * @returns true if resolved path is within baseDir, false otherwise
66
+ */
67
+ function isPathWithinDir(filePath, baseDir) {
68
+ const resolvedPath = path.resolve(baseDir, filePath);
69
+ const normalizedBase = path.resolve(baseDir) + path.sep;
70
+ return resolvedPath.startsWith(normalizedBase) || resolvedPath === path.resolve(baseDir);
71
+ }
72
+ /**
73
+ * Generate documentation from TypeScript source code
74
+ *
75
+ * Orchestrates the complete pipeline:
76
+ * 1. Load tag registry
77
+ * 2. Scan source files for @architect directives
78
+ * 3. Extract patterns from directives
79
+ * 4. Run specified generators
80
+ * 5. Write output files
81
+ *
82
+ * @param options - Generation options
83
+ * @returns Result with patterns, files, and any errors/warnings
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * import { generateDocumentation } from '@libar-dev/architect/generators';
88
+ * import '@libar-dev/architect/generators/built-in';
89
+ *
90
+ * const result = await generateDocumentation({
91
+ * input: ['src/**\/*.ts'],
92
+ * baseDir: process.cwd(),
93
+ * outputDir: 'docs',
94
+ * generators: ['patterns'],
95
+ * overwrite: true
96
+ * });
97
+ *
98
+ * console.log(`Generated ${result.files.length} files`);
99
+ * console.log(`Extracted ${result.patterns.length} patterns`);
100
+ * ```
101
+ */
102
+ export async function generateDocumentation(options) {
103
+ const errors = [];
104
+ const warnings = [];
105
+ const generatedFiles = [];
106
+ // Resolve base directory
107
+ const baseDir = path.resolve(options.baseDir);
108
+ // DD-6: Normalize features (string | string[] | null → string[])
109
+ const features = options.features === null || options.features === undefined
110
+ ? []
111
+ : typeof options.features === 'string'
112
+ ? [options.features]
113
+ : options.features;
114
+ // Merge context inference rules: user rules take precedence (prepended to defaults)
115
+ const mergedContextRules = options.contextInferenceRules
116
+ ? [...options.contextInferenceRules, ...DEFAULT_CONTEXT_INFERENCE_RULES]
117
+ : undefined; // let factory use defaults
118
+ // DD-6: Delegate 8-step pipeline to shared factory
119
+ const pipelineResult = await buildMasterDataset({
120
+ input: options.input,
121
+ features,
122
+ baseDir,
123
+ mergeConflictStrategy: 'fatal',
124
+ ...(options.exclude !== undefined ? { exclude: options.exclude } : {}),
125
+ ...(options.workflowPath !== null && options.workflowPath !== undefined
126
+ ? { workflowPath: options.workflowPath }
127
+ : {}),
128
+ ...(mergedContextRules !== undefined ? { contextInferenceRules: mergedContextRules } : {}),
129
+ includeValidation: false, // DD-3: orchestrator doesn't need validation
130
+ failOnScanErrors: false, // DD-5: orchestrator collects errors as warnings
131
+ });
132
+ if (!pipelineResult.ok) {
133
+ return R.err(`Pipeline error [${pipelineResult.error.step}]: ${pipelineResult.error.message}`);
134
+ }
135
+ // DD-6: Extract values from pipeline result
136
+ const { dataset: masterDataset } = pipelineResult.value;
137
+ const allPatterns = masterDataset.patterns;
138
+ const registry = masterDataset.tagRegistry;
139
+ const workflow = masterDataset.workflow;
140
+ // DD-1: Map PipelineWarning[] → GenerationWarning[]
141
+ for (const pw of pipelineResult.value.warnings) {
142
+ warnings.push({
143
+ type: pw.type === 'gherkin-parse' ? 'scan' : pw.type,
144
+ message: pw.message,
145
+ ...(pw.count !== undefined ? { count: pw.count } : {}),
146
+ ...(pw.details !== undefined ? { details: [...pw.details] } : {}),
147
+ });
148
+ }
149
+ // Step 9: Build codec options
150
+ // Start with user-provided options, then overlay computed options
151
+ let codecOptions = options.codecOptions;
152
+ // Compute PR Changes options if that generator is requested
153
+ if (options.generators.some((g) => g.trim() === 'pr-changes')) {
154
+ // Use explicit changedFiles if provided, otherwise detect from git
155
+ let changedFiles = options.changedFiles;
156
+ if (!changedFiles && options.gitDiffBase) {
157
+ const detectionResult = getChangedFilesList(baseDir, options.gitDiffBase);
158
+ if (detectionResult.ok) {
159
+ // Filter for relevant file types (source, tests, specs, features)
160
+ changedFiles = detectionResult.value.filter((f) => f.endsWith('.ts') ||
161
+ f.endsWith('.tsx') ||
162
+ f.endsWith('.feature') ||
163
+ f.endsWith('.feature.md'));
164
+ }
165
+ else {
166
+ warnings.push({
167
+ type: 'config',
168
+ message: `Git diff detection failed: ${detectionResult.error.message}. PR Changes will show all patterns.`,
169
+ });
170
+ }
171
+ }
172
+ codecOptions = {
173
+ ...codecOptions,
174
+ 'pr-changes': {
175
+ changedFiles: changedFiles ?? [],
176
+ releaseFilter: options.releaseFilter ?? '',
177
+ includeDeliverables: true,
178
+ includeReviewChecklist: true,
179
+ includeDependencies: true,
180
+ includeBusinessValue: true,
181
+ sortBy: 'phase',
182
+ },
183
+ };
184
+ }
185
+ // Step 10: Run generators
186
+ for (const generatorName of options.generators) {
187
+ const trimmedName = generatorName.trim();
188
+ // Get generator from registry
189
+ const generator = generatorRegistry.get(trimmedName);
190
+ if (!generator) {
191
+ errors.push({
192
+ type: 'generator',
193
+ message: `Unknown generator: "${trimmedName}". Available: ${generatorRegistry.available().join(', ')}`,
194
+ generator: trimmedName,
195
+ });
196
+ continue; // Skip this generator, try others
197
+ }
198
+ // Build generator context with pre-computed masterDataset and codec options
199
+ const context = {
200
+ baseDir,
201
+ outputDir: options.outputDir,
202
+ registry,
203
+ masterDataset,
204
+ ...(workflow !== undefined ? { workflow } : {}),
205
+ ...(codecOptions !== undefined ? { codecOptions } : {}),
206
+ };
207
+ // Generate files with merged patterns (TypeScript + Gherkin)
208
+ let output;
209
+ try {
210
+ output = await generator.generate(allPatterns, context);
211
+ }
212
+ catch (error) {
213
+ errors.push({
214
+ type: 'generator',
215
+ message: `Generator "${trimmedName}" failed: ${error instanceof Error ? error.message : String(error)}`,
216
+ generator: trimmedName,
217
+ });
218
+ continue; // Skip this generator
219
+ }
220
+ // Write files
221
+ for (const file of output.files) {
222
+ const fullPath = path.join(options.outputDir, file.path);
223
+ // Security: Validate path stays within output directory (prevent path traversal)
224
+ if (!isPathWithinDir(file.path, options.outputDir)) {
225
+ errors.push({
226
+ type: 'file-write',
227
+ message: `Path traversal attempt blocked: ${file.path}`,
228
+ filePath: file.path,
229
+ generator: trimmedName,
230
+ });
231
+ continue;
232
+ }
233
+ const dir = path.dirname(fullPath);
234
+ // Check if file exists and overwrite is disabled
235
+ let fileExists = false;
236
+ try {
237
+ await fs.access(fullPath);
238
+ fileExists = true;
239
+ }
240
+ catch {
241
+ // File doesn't exist
242
+ }
243
+ if (fileExists && options.overwrite !== true) {
244
+ // Skip writing, but record in result
245
+ generatedFiles.push({
246
+ path: file.path,
247
+ fullPath,
248
+ content: file.content,
249
+ generator: trimmedName,
250
+ written: false,
251
+ });
252
+ warnings.push({
253
+ type: 'overwrite-skipped',
254
+ message: `Skipped ${file.path} (exists, use overwrite: true to replace)`,
255
+ filePath: file.path,
256
+ });
257
+ continue;
258
+ }
259
+ // Write file
260
+ try {
261
+ await fs.mkdir(dir, { recursive: true });
262
+ await fs.writeFile(fullPath, file.content, 'utf-8');
263
+ generatedFiles.push({
264
+ path: file.path,
265
+ fullPath,
266
+ content: file.content,
267
+ generator: trimmedName,
268
+ written: true,
269
+ });
270
+ }
271
+ catch (error) {
272
+ errors.push({
273
+ type: 'file-write',
274
+ message: `Failed to write ${file.path}: ${error instanceof Error ? error.message : String(error)}`,
275
+ filePath: file.path,
276
+ generator: trimmedName,
277
+ });
278
+ }
279
+ }
280
+ // Write metadata (registry.json) if provided
281
+ if (output.metadata) {
282
+ const metadataPath = path.join(options.outputDir, 'registry.json');
283
+ // Serialize using codec for type-safe validation
284
+ const serializeResult = RegistryMetadataCodec.serialize(output.metadata, 'registry.json');
285
+ if (!serializeResult.ok) {
286
+ errors.push({
287
+ type: 'file-write',
288
+ message: `Failed to serialize registry.json: ${serializeResult.error.message}`,
289
+ filePath: 'registry.json',
290
+ generator: trimmedName,
291
+ });
292
+ }
293
+ else {
294
+ try {
295
+ await fs.writeFile(metadataPath, serializeResult.value, 'utf-8');
296
+ generatedFiles.push({
297
+ path: 'registry.json',
298
+ fullPath: metadataPath,
299
+ content: serializeResult.value,
300
+ generator: trimmedName,
301
+ written: true,
302
+ });
303
+ }
304
+ catch (error) {
305
+ errors.push({
306
+ type: 'file-write',
307
+ message: `Failed to write registry.json: ${error instanceof Error ? error.message : String(error)}`,
308
+ filePath: 'registry.json',
309
+ generator: trimmedName,
310
+ });
311
+ }
312
+ }
313
+ }
314
+ // Handle file cleanup (for session file lifecycle management)
315
+ if (output.filesToDelete && output.filesToDelete.length > 0) {
316
+ for (const fileToDelete of output.filesToDelete) {
317
+ // Security: Validate path stays within output directory (prevent path traversal)
318
+ if (!isPathWithinDir(fileToDelete, options.outputDir)) {
319
+ warnings.push({
320
+ type: 'cleanup',
321
+ message: `Path traversal blocked in cleanup: ${fileToDelete}`,
322
+ filePath: fileToDelete,
323
+ });
324
+ continue;
325
+ }
326
+ const fullPath = path.join(options.outputDir, fileToDelete);
327
+ try {
328
+ await fs.unlink(fullPath);
329
+ // Track deletion as a warning for visibility
330
+ warnings.push({
331
+ type: 'cleanup',
332
+ message: `Cleaned up orphaned file: ${fileToDelete}`,
333
+ filePath: fileToDelete,
334
+ });
335
+ }
336
+ catch (unlinkError) {
337
+ // ENOENT is not an error - file was already deleted
338
+ if (unlinkError.code !== 'ENOENT') {
339
+ warnings.push({
340
+ type: 'cleanup',
341
+ message: `Failed to clean up ${fileToDelete}: ${unlinkError instanceof Error ? unlinkError.message : String(unlinkError)}`,
342
+ filePath: fileToDelete,
343
+ });
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ // Clean up orphaned session files after generation
350
+ // Identify session files that were written (to preserve them)
351
+ const sessionFileRegex = /^sessions\/phase-\d+[a-z]?\.md$/;
352
+ const writtenSessionFiles = new Set(generatedFiles
353
+ .filter((f) => f.written && sessionFileRegex.test(f.path))
354
+ .map((f) => path.basename(f.path)));
355
+ // If any session files were written, clean up orphaned ones
356
+ if (writtenSessionFiles.size > 0 || options.generators.some((g) => g.includes('session'))) {
357
+ const cleanupResult = await cleanupOrphanedSessionFiles(options.outputDir, 'sessions/', writtenSessionFiles);
358
+ // Add cleanup results to warnings for visibility
359
+ for (const deletedFile of cleanupResult.deleted) {
360
+ warnings.push({
361
+ type: 'scan',
362
+ message: `Cleaned up orphaned session file: ${deletedFile}`,
363
+ filePath: deletedFile,
364
+ });
365
+ }
366
+ for (const cleanupError of cleanupResult.errors) {
367
+ warnings.push({
368
+ type: 'scan',
369
+ message: `Session cleanup warning: ${cleanupError}`,
370
+ });
371
+ }
372
+ }
373
+ // Return result with merged patterns
374
+ return R.ok({
375
+ patterns: allPatterns,
376
+ files: generatedFiles,
377
+ registry,
378
+ errors,
379
+ warnings,
380
+ });
381
+ }
382
+ /**
383
+ * Clean up orphaned session files in a directory.
384
+ *
385
+ * Deletes session files (phase-*.md) that are not in the preserve list.
386
+ * This is used to clean up stale session files when phases complete.
387
+ *
388
+ * @param outputDir - Base output directory
389
+ * @param sessionsDir - Subdirectory containing session files (e.g., "sessions/")
390
+ * @param preserveFiles - Set of file basenames to preserve (e.g., "phase-39.md")
391
+ * @returns Result with deleted files and any errors
392
+ *
393
+ * @example
394
+ * ```typescript
395
+ * const result = await cleanupOrphanedSessionFiles(
396
+ * "/output",
397
+ * "sessions/",
398
+ * new Set(["phase-39.md"]) // Keep active phase
399
+ * );
400
+ * console.log(`Deleted ${result.deleted.length} orphaned files`);
401
+ * ```
402
+ */
403
+ export async function cleanupOrphanedSessionFiles(outputDir, sessionsDir, preserveFiles) {
404
+ const dirPath = path.join(outputDir, sessionsDir);
405
+ const deleted = [];
406
+ const errors = [];
407
+ try {
408
+ const existingFiles = await fs.readdir(dirPath);
409
+ for (const file of existingFiles) {
410
+ // Only process session files matching phase-*.md pattern
411
+ if (!/^phase-\d+[a-z]?\.md$/.test(file)) {
412
+ continue;
413
+ }
414
+ // Skip files in preserve list
415
+ if (preserveFiles.has(file)) {
416
+ continue;
417
+ }
418
+ // Delete orphaned file
419
+ const fullPath = path.join(dirPath, file);
420
+ try {
421
+ await fs.unlink(fullPath);
422
+ deleted.push(path.join(sessionsDir, file));
423
+ }
424
+ catch (unlinkError) {
425
+ errors.push(`Failed to delete ${file}: ${unlinkError instanceof Error ? unlinkError.message : String(unlinkError)}`);
426
+ }
427
+ }
428
+ }
429
+ catch (readdirError) {
430
+ // Directory doesn't exist - nothing to clean (not an error)
431
+ if (readdirError.code !== 'ENOENT') {
432
+ errors.push(`Failed to read ${sessionsDir}: ${readdirError instanceof Error ? readdirError.message : String(readdirError)}`);
433
+ }
434
+ }
435
+ return { deleted, errors };
436
+ }
437
+ /**
438
+ * Groups generators by their effective source config and output directory.
439
+ *
440
+ * Generators that share the same resolved sources (after applying per-generator
441
+ * overrides) AND the same output directory are batched together to minimize
442
+ * redundant pipeline scans.
443
+ *
444
+ * @param generatorNames - Names of generators to group
445
+ * @param baseSources - Base resolved sources from project config
446
+ * @param baseOutput - Base resolved output config
447
+ * @param overrides - Per-generator source and output overrides
448
+ * @returns Array of generator groups, each runnable as a single pipeline call
449
+ */
450
+ function groupGenerators(generatorNames, baseSources, baseOutput, overrides) {
451
+ const groupMap = new Map();
452
+ for (const name of generatorNames) {
453
+ const effective = mergeSourcesForGenerator(baseSources, name, overrides);
454
+ const outputDir = overrides[name]?.outputDirectory ?? baseOutput.directory;
455
+ const key = JSON.stringify({ sources: effective, outputDir });
456
+ const existing = groupMap.get(key);
457
+ if (existing !== undefined) {
458
+ existing.generators.push(name);
459
+ }
460
+ else {
461
+ groupMap.set(key, { generators: [name], sources: effective, outputDirectory: outputDir });
462
+ }
463
+ }
464
+ return [...groupMap.values()];
465
+ }
466
+ /**
467
+ * Merges results from multiple pipeline runs into a single GenerateResult.
468
+ *
469
+ * Patterns and files are concatenated from all runs. The registry from
470
+ * the first run is used (all runs share the same config, so registries
471
+ * are identical). Errors and warnings are aggregated.
472
+ *
473
+ * @param results - Array of GenerateResult from individual pipeline runs
474
+ * @returns A single merged GenerateResult
475
+ */
476
+ function mergeGenerateResults(results) {
477
+ // Caller guarantees results.length >= 2, so first element always exists
478
+ const firstResult = results[0];
479
+ if (firstResult === undefined) {
480
+ // Unreachable: only called with 2+ results, but satisfies strictNullChecks
481
+ throw new Error('mergeGenerateResults called with empty results array');
482
+ }
483
+ return {
484
+ patterns: results.flatMap((r) => r.patterns),
485
+ files: results.flatMap((r) => r.files),
486
+ registry: firstResult.registry,
487
+ errors: results.flatMap((r) => r.errors),
488
+ warnings: results.flatMap((r) => r.warnings),
489
+ };
490
+ }
491
+ /**
492
+ * Generate documentation from a fully resolved config.
493
+ *
494
+ * Groups generators by their effective source config, then calls
495
+ * `generateDocumentation()` once per group. This reuses all existing
496
+ * pipeline logic while minimizing redundant file scans.
497
+ *
498
+ * @param config - Fully resolved configuration (from `loadProjectConfig()`)
499
+ * @param options - Optional overrides for generators, git diff, and release filter
500
+ * @returns Result with merged patterns, files, errors, and warnings from all groups
501
+ *
502
+ * @example
503
+ * ```typescript
504
+ * import { generateFromConfig } from '@libar-dev/architect/generators';
505
+ * import { loadProjectConfig } from '@libar-dev/architect/config';
506
+ *
507
+ * const config = await loadProjectConfig(process.cwd());
508
+ * const result = await generateFromConfig(config, {
509
+ * generators: ['patterns', 'roadmap'],
510
+ * });
511
+ * ```
512
+ */
513
+ export async function generateFromConfig(config, options) {
514
+ const generatorNames = options?.generators ?? config.project.generators;
515
+ if (generatorNames.length === 0) {
516
+ return R.err('No generators specified');
517
+ }
518
+ // Register reference generators from config (explicit opt-in).
519
+ // Done here (not at import time) because configs are user-provided.
520
+ // Check both meta-generators: configs are partitioned by productArea presence.
521
+ if (config.project.referenceDocConfigs.length > 0 &&
522
+ !generatorRegistry.has('reference-docs') &&
523
+ !generatorRegistry.has('product-area-docs')) {
524
+ registerReferenceGenerators(generatorRegistry, config.project.referenceDocConfigs);
525
+ }
526
+ // Group generators by effective source config to minimize scans.
527
+ // Generators sharing the same sources and output directory are batched
528
+ // into one generateDocumentation() call.
529
+ const groups = groupGenerators(generatorNames, config.project.sources, config.project.output, config.project.generatorOverrides);
530
+ // Run each group through the existing pipeline
531
+ const allResults = [];
532
+ for (const group of groups) {
533
+ // Merge codec options: config-level → runtime options (runtime takes precedence)
534
+ const mergedCodecOptions = config.project.codecOptions !== undefined || options?.codecOptions !== undefined
535
+ ? { ...config.project.codecOptions, ...options?.codecOptions }
536
+ : undefined;
537
+ const generateOptions = {
538
+ input: [...group.sources.typescript],
539
+ baseDir: process.cwd(),
540
+ outputDir: group.outputDirectory,
541
+ generators: [...group.generators],
542
+ overwrite: config.project.output.overwrite,
543
+ ...(group.sources.features.length > 0 && { features: [...group.sources.features] }),
544
+ ...(group.sources.exclude.length > 0 && { exclude: [...group.sources.exclude] }),
545
+ ...(config.project.workflowPath !== null && { workflowPath: config.project.workflowPath }),
546
+ contextInferenceRules: [...config.project.contextInferenceRules],
547
+ ...(options?.gitDiffBase !== undefined && { gitDiffBase: options.gitDiffBase }),
548
+ ...(options?.changedFiles !== undefined && { changedFiles: [...options.changedFiles] }),
549
+ ...(options?.releaseFilter !== undefined && { releaseFilter: options.releaseFilter }),
550
+ ...(mergedCodecOptions !== undefined && { codecOptions: mergedCodecOptions }),
551
+ };
552
+ const result = await generateDocumentation(generateOptions);
553
+ if (!result.ok) {
554
+ return result;
555
+ }
556
+ allResults.push(result.value);
557
+ }
558
+ // Merge results from all groups
559
+ // allResults is guaranteed non-empty because generatorNames.length > 0
560
+ // and each group produces exactly one result (or we return early on error)
561
+ if (allResults.length === 1) {
562
+ const singleResult = allResults[0];
563
+ if (singleResult === undefined) {
564
+ return R.err('Unexpected empty results after successful generation');
565
+ }
566
+ return R.ok(singleResult);
567
+ }
568
+ return R.ok(mergeGenerateResults(allResults));
569
+ }
570
+ //# sourceMappingURL=orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/generators/orchestrator.ts"],"names":[],"mappings":"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"}