@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,353 @@
1
+ /**
2
+ * Convention Extractor
3
+ *
4
+ * Filters MasterDataset for patterns tagged with `@architect-convention`
5
+ * and extracts convention content as structured data for reference codec
6
+ * composition. Supports two sources:
7
+ *
8
+ * - **Gherkin**: Extracts from `Rule:` blocks on the pattern's `rules` array
9
+ * - **TypeScript**: Decomposes JSDoc `directive.description` by `## Heading`
10
+ * sections, parsing each section for structured annotations
11
+ *
12
+ * Both sources produce the same `ConventionRuleContent` output, enabling
13
+ * Gherkin and TypeScript convention content to merge in the same bundle.
14
+ *
15
+ * @see CodecDrivenReferenceGeneration spec
16
+ * @see ReferenceDocShowcase spec
17
+ */
18
+ import { table } from '../schema.js';
19
+ import { parseBusinessRuleAnnotations } from './helpers.js';
20
+ // ============================================================================
21
+ // Table Extraction from Description Text
22
+ // ============================================================================
23
+ /**
24
+ * Extract markdown tables from description text.
25
+ *
26
+ * Identifies lines starting and ending with `|` as table rows,
27
+ * groups consecutive table lines, and parses headers + data rows.
28
+ */
29
+ export function extractTablesFromDescription(description) {
30
+ if (!description)
31
+ return [];
32
+ const lines = description.split('\n');
33
+ const tables = [];
34
+ let currentTableLines = [];
35
+ for (const line of lines) {
36
+ const trimmed = line.trim();
37
+ if (trimmed.startsWith('|') && trimmed.endsWith('|')) {
38
+ currentTableLines.push(trimmed);
39
+ }
40
+ else if (currentTableLines.length > 0) {
41
+ // End of a table block — parse it
42
+ const parsed = parseTableLines(currentTableLines);
43
+ if (parsed)
44
+ tables.push(parsed);
45
+ currentTableLines = [];
46
+ }
47
+ }
48
+ // Handle table at end of text
49
+ if (currentTableLines.length > 0) {
50
+ const parsed = parseTableLines(currentTableLines);
51
+ if (parsed)
52
+ tables.push(parsed);
53
+ }
54
+ return tables;
55
+ }
56
+ /**
57
+ * Extract markdown tables from description text and return as SectionBlock tables.
58
+ *
59
+ * Adapter that wraps `extractTablesFromDescription` for codecs that need
60
+ * `SectionBlock[]` output instead of `ConventionTable[]`.
61
+ */
62
+ export function extractTablesAsSectionBlocks(description) {
63
+ const conventionTables = extractTablesFromDescription(description);
64
+ return conventionTables.map((ct) => {
65
+ const headers = [...ct.headers];
66
+ const rows = ct.rows.map((row) => headers.map((h) => row[h] ?? ''));
67
+ return table(headers, rows);
68
+ });
69
+ }
70
+ /**
71
+ * Parse a group of table lines into structured data.
72
+ *
73
+ * Supports both markdown tables (header + separator + data rows) and
74
+ * Gherkin-style tables (header + data rows, no separator). Returns null
75
+ * if insufficient rows.
76
+ */
77
+ function parseTableLines(lines) {
78
+ // Need at least header + 1 data row
79
+ if (lines.length < 2)
80
+ return null;
81
+ const headerLine = lines[0];
82
+ if (!headerLine)
83
+ return null;
84
+ const headers = splitMarkdownTableRow(headerLine);
85
+ // Detect whether line 2 is a markdown separator row (| --- | --- |)
86
+ const secondLine = lines[1];
87
+ if (!secondLine)
88
+ return null;
89
+ const secondCells = splitMarkdownTableRow(secondLine);
90
+ const hasSeparator = secondCells.every((cell) => /^[\s:-]+$/.test(cell));
91
+ // Data rows start after separator (markdown) or immediately after header (Gherkin)
92
+ const dataStart = hasSeparator ? 2 : 1;
93
+ const rows = [];
94
+ for (let i = dataStart; i < lines.length; i++) {
95
+ const dataLine = lines[i];
96
+ if (!dataLine)
97
+ continue;
98
+ const cells = splitMarkdownTableRow(dataLine);
99
+ const row = {};
100
+ for (let j = 0; j < headers.length; j++) {
101
+ const header = headers[j];
102
+ if (header) {
103
+ row[header] = cells[j] ?? '';
104
+ }
105
+ }
106
+ rows.push(row);
107
+ }
108
+ return { headers, rows };
109
+ }
110
+ /**
111
+ * Split a markdown table row into cells while preserving escaped pipe content.
112
+ *
113
+ * Markdown table rows use `|` as delimiters. Content pipes must be escaped
114
+ * as `\|` and should remain part of the parsed cell value.
115
+ */
116
+ function splitMarkdownTableRow(line) {
117
+ const cells = [];
118
+ let current = '';
119
+ for (let i = 0; i < line.length; i++) {
120
+ const char = line[i] ?? '';
121
+ const next = line[i + 1];
122
+ if (char === '\\' && next === '|') {
123
+ current += '|';
124
+ i++;
125
+ continue;
126
+ }
127
+ if (char === '|') {
128
+ cells.push(current.trim());
129
+ current = '';
130
+ continue;
131
+ }
132
+ current += char;
133
+ }
134
+ cells.push(current.trim());
135
+ return cells.slice(1, -1);
136
+ }
137
+ // ============================================================================
138
+ // Rule Content Extraction
139
+ // ============================================================================
140
+ /**
141
+ * Build a ConventionRuleContent from raw text and a rule name.
142
+ *
143
+ * Shared helper used by both Gherkin Rule: block extraction and
144
+ * TypeScript JSDoc description decomposition.
145
+ */
146
+ function buildRuleContentFromText(text, ruleName) {
147
+ const annotations = parseBusinessRuleAnnotations(text);
148
+ const tables = extractTablesFromDescription(text);
149
+ return {
150
+ ruleName,
151
+ ...(annotations.invariant !== undefined && { invariant: annotations.invariant }),
152
+ ...(annotations.rationale !== undefined && { rationale: annotations.rationale }),
153
+ ...(annotations.verifiedBy !== undefined && {
154
+ verifiedBy: annotations.verifiedBy,
155
+ }),
156
+ tables,
157
+ ...(annotations.codeExamples !== undefined &&
158
+ annotations.codeExamples.length > 0 && {
159
+ codeExamples: annotations.codeExamples,
160
+ }),
161
+ narrative: annotations.remainingContent ?? '',
162
+ };
163
+ }
164
+ /**
165
+ * Extract structured convention content from a Gherkin business rule.
166
+ */
167
+ function extractConventionRuleContent(rule) {
168
+ return buildRuleContentFromText(rule.description, rule.name);
169
+ }
170
+ // ============================================================================
171
+ // TypeScript JSDoc Description Decomposition
172
+ // ============================================================================
173
+ /**
174
+ * Extract convention rules from a TypeScript JSDoc description.
175
+ *
176
+ * Decomposes the description by `## Heading` sections into individual
177
+ * convention rules. Each heading becomes a rule name; the content below it
178
+ * (until the next `## ` or end) is parsed through `parseBusinessRuleAnnotations()`.
179
+ *
180
+ * If no `## ` headings exist, treats the entire description as a single rule.
181
+ *
182
+ * @param description - The JSDoc description text
183
+ * @param patternName - Fallback rule name when no ## headings exist
184
+ * @returns Array of ConventionRuleContent
185
+ */
186
+ function extractConventionRulesFromDescription(description, patternName) {
187
+ if (!description || description.trim().length === 0)
188
+ return [];
189
+ // Split by ## headings (level 2 only, not ### or deeper)
190
+ // Allow optional leading whitespace for DocString content
191
+ const headingPattern = /^\s*## (?!#)(.+)$/gm;
192
+ const headings = [];
193
+ let match;
194
+ while ((match = headingPattern.exec(description)) !== null) {
195
+ const captured = match[1];
196
+ if (captured) {
197
+ headings.push({
198
+ name: captured.trim(),
199
+ index: match.index,
200
+ matchEnd: match.index + match[0].length,
201
+ });
202
+ }
203
+ }
204
+ if (headings.length === 0) {
205
+ // No headings: treat entire description as single rule
206
+ return [buildRuleContentFromText(description, patternName)];
207
+ }
208
+ const rules = [];
209
+ for (let i = 0; i < headings.length; i++) {
210
+ const heading = headings[i];
211
+ if (!heading)
212
+ continue;
213
+ const nextIndex = i + 1 < headings.length ? (headings[i + 1]?.index ?? description.length) : description.length;
214
+ // Content starts after the heading match (match includes the full "## Name" line)
215
+ // Use matchEnd instead of indexOf('\n', heading.index) because \s* in the regex
216
+ // can consume leading newlines, making heading.index point to those newlines
217
+ const contentStart = heading.matchEnd < description.length ? heading.matchEnd + 1 : description.length;
218
+ const content = description.slice(contentStart, nextIndex).trim();
219
+ if (content.length > 0) {
220
+ rules.push(buildRuleContentFromText(content, heading.name));
221
+ }
222
+ }
223
+ return rules;
224
+ }
225
+ // ============================================================================
226
+ // Extraction Function
227
+ // ============================================================================
228
+ /**
229
+ * Extracts convention content from MasterDataset.
230
+ *
231
+ * Filters patterns tagged with `@architect-convention` matching the
232
+ * requested tag values. For Gherkin-sourced patterns, extracts from
233
+ * Rule: blocks. For TypeScript-sourced patterns (no rules array),
234
+ * decomposes the JSDoc description by ## headings.
235
+ *
236
+ * @param dataset - The MasterDataset containing all extracted patterns
237
+ * @param conventionTags - Convention tag values to filter by
238
+ * @returns Array of ConventionBundles, one per requested tag value
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const conventions = extractConventions(dataset, ['fsm-rules', 'testing-policy']);
243
+ * // conventions[0].conventionTag === 'fsm-rules'
244
+ * // conventions[0].rules[0].ruleName === 'FSM Transitions'
245
+ * // conventions[0].rules[0].tables[0].headers === ['From', 'To', 'Condition']
246
+ * ```
247
+ */
248
+ export function extractConventions(dataset, conventionTags) {
249
+ if (conventionTags.length === 0)
250
+ return [];
251
+ const tagSet = new Set(conventionTags);
252
+ // Build a map of conventionTag -> { sourceDecisions, rules }
253
+ const bundles = new Map();
254
+ // Initialize bundles for all requested tags
255
+ for (const tag of conventionTags) {
256
+ bundles.set(tag, { sourceDecisions: [], rules: [] });
257
+ }
258
+ // Filter patterns that have convention tags matching our request
259
+ for (const pattern of dataset.patterns) {
260
+ if (!pattern.convention || pattern.convention.length === 0)
261
+ continue;
262
+ // Check if this pattern has any of the requested convention tags
263
+ const matchingTags = pattern.convention.filter((t) => tagSet.has(t));
264
+ if (matchingTags.length === 0)
265
+ continue;
266
+ // Extract rule content from Gherkin Rule: blocks or TypeScript JSDoc description
267
+ let ruleContents;
268
+ if (pattern.rules && pattern.rules.length > 0) {
269
+ // Gherkin source: extract from Rule: blocks
270
+ ruleContents = pattern.rules.map(extractConventionRuleContent);
271
+ }
272
+ else if (pattern.directive.description) {
273
+ // TypeScript source: decompose JSDoc description by ## headings
274
+ ruleContents = extractConventionRulesFromDescription(pattern.directive.description, pattern.name);
275
+ }
276
+ else {
277
+ ruleContents = [];
278
+ }
279
+ // Only add to bundles if rules were extracted
280
+ if (ruleContents.length === 0)
281
+ continue;
282
+ for (const tag of matchingTags) {
283
+ const bundle = bundles.get(tag);
284
+ if (bundle) {
285
+ bundle.sourceDecisions.push(pattern.name);
286
+ bundle.rules.push(...ruleContents);
287
+ }
288
+ }
289
+ }
290
+ // Convert map to array, preserving requested order
291
+ const result = [];
292
+ for (const tag of conventionTags) {
293
+ const bundle = bundles.get(tag);
294
+ if (!bundle)
295
+ continue;
296
+ if (bundle.rules.length === 0 && bundle.sourceDecisions.length === 0)
297
+ continue;
298
+ result.push({
299
+ conventionTag: tag,
300
+ sourceDecisions: bundle.sourceDecisions,
301
+ rules: bundle.rules,
302
+ });
303
+ }
304
+ return result;
305
+ }
306
+ /**
307
+ * Extract convention bundles from pre-filtered patterns.
308
+ *
309
+ * DD-1 (CrossCuttingDocumentInclusion): Used by the include-tag pass to
310
+ * build convention content from patterns selected by include tag rather
311
+ * than by conventionTags filter. Groups output by each pattern's convention
312
+ * tag values.
313
+ *
314
+ * @param patterns - Pre-filtered patterns that have convention content
315
+ * @returns Array of ConventionBundles
316
+ */
317
+ export function extractConventionsFromPatterns(patterns) {
318
+ const bundles = new Map();
319
+ for (const pattern of patterns) {
320
+ if (!pattern.convention || pattern.convention.length === 0)
321
+ continue;
322
+ let ruleContents;
323
+ if (pattern.rules && pattern.rules.length > 0) {
324
+ ruleContents = pattern.rules.map(extractConventionRuleContent);
325
+ }
326
+ else if (pattern.directive.description) {
327
+ ruleContents = extractConventionRulesFromDescription(pattern.directive.description, pattern.name);
328
+ }
329
+ else {
330
+ ruleContents = [];
331
+ }
332
+ if (ruleContents.length === 0)
333
+ continue;
334
+ for (const tag of pattern.convention) {
335
+ const bundle = bundles.get(tag) ?? { sourceDecisions: [], rules: [] };
336
+ bundle.sourceDecisions.push(pattern.name);
337
+ bundle.rules.push(...ruleContents);
338
+ bundles.set(tag, bundle);
339
+ }
340
+ }
341
+ const result = [];
342
+ for (const [tag, bundle] of bundles) {
343
+ if (bundle.rules.length === 0)
344
+ continue;
345
+ result.push({
346
+ conventionTag: tag,
347
+ sourceDecisions: bundle.sourceDecisions,
348
+ rules: bundle.rules,
349
+ });
350
+ }
351
+ return result;
352
+ }
353
+ //# sourceMappingURL=convention-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convention-extractor.js","sourceRoot":"","sources":["../../../src/renderable/codecs/convention-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,308 @@
1
+ /**
2
+ * @architect
3
+ * @architect-core
4
+ * @architect-pattern DecisionDocCodec
5
+ * @architect-status completed
6
+ * @architect-arch-role projection
7
+ * @architect-arch-context renderer
8
+ * @architect-arch-layer application
9
+ *
10
+ * ## Decision Doc Codec
11
+ *
12
+ * Parses decision documents (ADR/PDR in .feature format) and extracts content
13
+ * for documentation generation. Provides parsing utilities for source mapping
14
+ * tables, self-reference markers, and rule block extraction.
15
+ *
16
+ * ### When to Use
17
+ *
18
+ * - When extracting content from decision documents for doc generation
19
+ * - When parsing Rule: blocks for Context/Decision/Consequences sections
20
+ * - When extracting DocStrings (fenced code blocks) with language tags
21
+ * - When parsing source mapping tables from decision descriptions
22
+ *
23
+ * ### Source Mapping Table Format
24
+ *
25
+ * ```
26
+ * | Section | Source File | Extraction Method |
27
+ * | Intro & Context | THIS DECISION | Decision rule description |
28
+ * | API Types | src/types.ts | @extract-shapes tag |
29
+ * ```
30
+ *
31
+ * ### Self-Reference Markers
32
+ *
33
+ * - `THIS DECISION` - Extract from the current decision document
34
+ * - `THIS DECISION (Rule: X)` - Extract specific Rule: block
35
+ * - `THIS DECISION (DocString)` - Extract fenced code blocks
36
+ */
37
+ import type { BusinessRule } from '../../validation-schemas/extracted-pattern.js';
38
+ import { type PartitionedRules } from './helpers.js';
39
+ import type { SectionBlock, CodeBlock } from '../schema.js';
40
+ /**
41
+ * Entry in a source mapping table
42
+ *
43
+ * Defines how a documentation section is assembled from source files.
44
+ */
45
+ export interface SourceMappingEntry {
46
+ /** Target section heading in generated doc (e.g., "Intro & Context", "API Types") */
47
+ section: string;
48
+ /** Path to source file or self-reference marker (e.g., "src/types.ts", "THIS DECISION") */
49
+ sourceFile: string;
50
+ /** How to extract content from source (e.g., "@extract-shapes", "Rule blocks") */
51
+ extractionMethod: string;
52
+ }
53
+ /**
54
+ * Partitioned rules from a decision document.
55
+ * Re-exported from helpers for convenience.
56
+ */
57
+ export type PartitionedDecisionRules = PartitionedRules;
58
+ /**
59
+ * Extracted DocString with language tag
60
+ */
61
+ export interface ExtractedDocString {
62
+ /** Language tag from the fenced code block (e.g., "typescript", "bash") */
63
+ language: string;
64
+ /** Content of the DocString */
65
+ content: string;
66
+ }
67
+ /**
68
+ * Result of parsing a self-reference marker
69
+ *
70
+ * Identifies whether the reference points to:
71
+ * - The entire document (`document`)
72
+ * - A specific Rule: block (`rule` with name)
73
+ * - DocStrings in the document (`docstring`)
74
+ */
75
+ export interface SelfReferenceResult {
76
+ /** Type of self-reference */
77
+ type: 'document' | 'rule' | 'docstring';
78
+ /** Name of the rule block (only for type: 'rule') */
79
+ name?: string;
80
+ }
81
+ /**
82
+ * Parsed content from a decision document
83
+ *
84
+ * Contains all extracted content from ADR/PDR feature files including:
85
+ * - Partitioned rules (Context/Decision/Consequences)
86
+ * - DocStrings with language tags
87
+ * - Source mapping entries
88
+ */
89
+ export interface DecisionDocContent {
90
+ /** Pattern name from the decision document */
91
+ patternName: string;
92
+ /** Feature description text (before any rules) */
93
+ description: string;
94
+ /** Partitioned rules by semantic category */
95
+ rules: PartitionedDecisionRules;
96
+ /** Extracted DocStrings with language tags */
97
+ docStrings: ExtractedDocString[];
98
+ /** Source mapping entries parsed from tables */
99
+ sourceMappings: SourceMappingEntry[];
100
+ }
101
+ /**
102
+ * Self-reference marker indicating content should be extracted from current document
103
+ */
104
+ export declare const SELF_REFERENCE_MARKER = "THIS DECISION";
105
+ /**
106
+ * Pattern for self-reference with specific Rule: block
107
+ * Matches: "THIS DECISION (Rule: SomeName)"
108
+ */
109
+ export declare const SELF_REFERENCE_RULE_PATTERN: RegExp;
110
+ /**
111
+ * Pattern for self-reference to DocStrings
112
+ * Matches: "THIS DECISION (DocString)"
113
+ */
114
+ export declare const SELF_REFERENCE_DOCSTRING_PATTERN: RegExp;
115
+ /**
116
+ * Partition decision rules by semantic prefix
117
+ *
118
+ * Wrapper around shared partitionRulesByPrefix that doesn't warn about "other" rules.
119
+ * Decision docs may have additional rules like "Proof of Concept" or "Expected Output"
120
+ * that are valid but don't fit the standard ADR sections.
121
+ *
122
+ * @param rules - Business rules from the extracted pattern
123
+ * @param _patternName - Pattern name for context (unused, kept for API compatibility)
124
+ * @returns Partitioned rules by category
125
+ */
126
+ export declare function partitionDecisionRules(rules: readonly BusinessRule[] | undefined, _patternName?: string): PartitionedDecisionRules;
127
+ /**
128
+ * Extract DocStrings (fenced code blocks) from text content
129
+ *
130
+ * Supports two formats:
131
+ * - Gherkin DocStrings: """language\ncontent\n"""
132
+ * - Markdown code fences: ```language\ncontent\n```
133
+ *
134
+ * @param text - Text content that may contain DocStrings
135
+ * @returns Array of extracted DocStrings with language tags
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * const docStrings = extractDocStrings(`
140
+ * Some text...
141
+ *
142
+ * """bash
143
+ * npm install
144
+ * """
145
+ *
146
+ * More text...
147
+ *
148
+ * """typescript
149
+ * const x = 1;
150
+ * """
151
+ * `);
152
+ * // Returns: [
153
+ * // { language: 'bash', content: 'npm install' },
154
+ * // { language: 'typescript', content: 'const x = 1;' }
155
+ * // ]
156
+ * ```
157
+ */
158
+ export declare function extractDocStrings(text: string): ExtractedDocString[];
159
+ /**
160
+ * Extract DocStrings from business rules
161
+ *
162
+ * Iterates through rule descriptions and extracts all embedded DocStrings.
163
+ *
164
+ * @param rules - Business rules to extract DocStrings from
165
+ * @returns Array of extracted DocStrings with language tags
166
+ */
167
+ export declare function extractDocStringsFromRules(rules: readonly BusinessRule[] | undefined): ExtractedDocString[];
168
+ /**
169
+ * Parse a source mapping table from markdown text
170
+ *
171
+ * Expected format:
172
+ * ```
173
+ * | Section | Source File | Extraction Method |
174
+ * | Intro & Context | THIS DECISION (Rule: Context above) | Decision rule description |
175
+ * | API Types | src/types.ts | @extract-shapes tag |
176
+ * ```
177
+ *
178
+ * The table must have headers: Section, Source File (or Source), Extraction Method (or Extraction)
179
+ *
180
+ * @param text - Text content that may contain a source mapping table
181
+ * @returns Array of source mapping entries, empty if no table found
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * const mappings = parseSourceMappingTable(`
186
+ * **Source Mapping for Process Guard:**
187
+ *
188
+ * | Section | Source File | Extraction Method |
189
+ * | Intro & Context | THIS DECISION | Decision rule description |
190
+ * | API Types | src/types.ts | @extract-shapes tag |
191
+ * `);
192
+ * // Returns: [
193
+ * // { section: 'Intro & Context', sourceFile: 'THIS DECISION', extractionMethod: 'Decision rule description' },
194
+ * // { section: 'API Types', sourceFile: 'src/types.ts', extractionMethod: '@extract-shapes tag' }
195
+ * // ]
196
+ * ```
197
+ */
198
+ export declare function parseSourceMappingTable(text: string): SourceMappingEntry[];
199
+ /**
200
+ * Parse source mapping tables from business rules
201
+ *
202
+ * Searches through rule descriptions for source mapping tables.
203
+ *
204
+ * @param rules - Business rules to search for source mapping tables
205
+ * @returns Array of source mapping entries from all rules
206
+ */
207
+ export declare function parseSourceMappingsFromRules(rules: readonly BusinessRule[] | undefined): SourceMappingEntry[];
208
+ /**
209
+ * Check if a source file reference is a self-reference
210
+ *
211
+ * @param sourceFile - The source file path to check
212
+ * @returns True if the reference is to the current decision document, false for null/undefined
213
+ */
214
+ export declare function isSelfReference(sourceFile: string): boolean;
215
+ /**
216
+ * Parse a self-reference to extract the referenced element
217
+ *
218
+ * @param sourceFile - The source file reference to parse
219
+ * @returns Object with type and optional name, or null if not a self-reference
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * parseSelfReference('THIS DECISION');
224
+ * // Returns: { type: 'document' }
225
+ *
226
+ * parseSelfReference('THIS DECISION (Rule: Context above)');
227
+ * // Returns: { type: 'rule', name: 'Context above' }
228
+ *
229
+ * parseSelfReference('THIS DECISION (DocString)');
230
+ * // Returns: { type: 'docstring' }
231
+ *
232
+ * parseSelfReference('src/types.ts');
233
+ * // Returns: null
234
+ * ```
235
+ */
236
+ export declare function parseSelfReference(sourceFile: string): SelfReferenceResult | null;
237
+ /**
238
+ * Find a specific rule by name (flexible matching)
239
+ *
240
+ * Matching strategy (in order):
241
+ * 1. Exact match on full name
242
+ * 2. Rule name contains search term
243
+ * 3. Both start with the same word (e.g., "Context above" matches "Context - ...")
244
+ *
245
+ * @param rules - Rules to search
246
+ * @param ruleName - Name to search for (case-insensitive)
247
+ * @returns The matching rule or undefined
248
+ */
249
+ export declare function findRuleByName(rules: readonly BusinessRule[] | undefined, ruleName: string): BusinessRule | undefined;
250
+ /**
251
+ * Extract content from a rule's description
252
+ *
253
+ * Returns the description text with DocStrings parsed as code blocks.
254
+ *
255
+ * @param rule - The rule to extract content from
256
+ * @returns Array of SectionBlocks representing the rule content
257
+ */
258
+ export declare function extractRuleContent(rule: BusinessRule): SectionBlock[];
259
+ /**
260
+ * Parse a complete decision document
261
+ *
262
+ * Extracts all relevant content from an ADR/PDR pattern including:
263
+ * - Partitioned rules (Context/Decision/Consequences/Other)
264
+ * - DocStrings with language tags
265
+ * - Source mapping entries
266
+ *
267
+ * @param patternName - The pattern name
268
+ * @param description - The feature description
269
+ * @param rules - Business rules from the pattern
270
+ * @returns Parsed decision document content
271
+ *
272
+ * @example
273
+ * ```typescript
274
+ * const content = parseDecisionDocument(
275
+ * 'DocGenerationProofOfConcept',
276
+ * pattern.directive.description ?? '',
277
+ * pattern.rules
278
+ * );
279
+ * ```
280
+ */
281
+ export declare function parseDecisionDocument(patternName: string, description: string, rules: readonly BusinessRule[] | undefined): DecisionDocContent;
282
+ /**
283
+ * Known extraction methods and their descriptions
284
+ */
285
+ export declare const EXTRACTION_METHODS: {
286
+ readonly DECISION_RULE_DESCRIPTION: "Decision rule description";
287
+ readonly EXTRACT_SHAPES: "@extract-shapes tag";
288
+ readonly RULE_BLOCKS: "Rule blocks";
289
+ readonly SCENARIO_OUTLINE_EXAMPLES: "Scenario Outline Examples";
290
+ readonly JSDOC_SECTION: "JSDoc section";
291
+ readonly CREATE_VIOLATION_PATTERNS: "createViolation() patterns";
292
+ readonly FENCED_CODE_BLOCK: "Fenced code block";
293
+ };
294
+ /**
295
+ * Normalize an extraction method string to a known type
296
+ *
297
+ * @param method - The extraction method string from the source mapping
298
+ * @returns Normalized method key or 'unknown'
299
+ */
300
+ export declare function normalizeExtractionMethod(method: string): keyof typeof EXTRACTION_METHODS | 'unknown';
301
+ /**
302
+ * Convert ExtractedDocStrings to CodeBlock SectionBlocks
303
+ *
304
+ * @param docStrings - Extracted DocStrings
305
+ * @returns Array of CodeBlock sections
306
+ */
307
+ export declare function docStringsToCodeBlocks(docStrings: ExtractedDocString[]): CodeBlock[];
308
+ //# sourceMappingURL=decision-doc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-doc.d.ts","sourceRoot":"","sources":["../../../src/renderable/codecs/decision-doc.ts"],"names":[],"mappings":"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"}