@prodara/compiler 0.1.0

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 (494) hide show
  1. package/README.md +204 -0
  2. package/dist/agent/agent.d.ts +10 -0
  3. package/dist/agent/agent.d.ts.map +1 -0
  4. package/dist/agent/agent.js +122 -0
  5. package/dist/agent/agent.js.map +1 -0
  6. package/dist/agent/api-client.d.ts +29 -0
  7. package/dist/agent/api-client.d.ts.map +1 -0
  8. package/dist/agent/api-client.js +167 -0
  9. package/dist/agent/api-client.js.map +1 -0
  10. package/dist/agent/index.d.ts +5 -0
  11. package/dist/agent/index.d.ts.map +1 -0
  12. package/dist/agent/index.js +3 -0
  13. package/dist/agent/index.js.map +1 -0
  14. package/dist/agent/party.d.ts +48 -0
  15. package/dist/agent/party.d.ts.map +1 -0
  16. package/dist/agent/party.js +79 -0
  17. package/dist/agent/party.js.map +1 -0
  18. package/dist/agent/types.d.ts +35 -0
  19. package/dist/agent/types.d.ts.map +1 -0
  20. package/dist/agent/types.js +5 -0
  21. package/dist/agent/types.js.map +1 -0
  22. package/dist/audit/audit.d.ts +32 -0
  23. package/dist/audit/audit.d.ts.map +1 -0
  24. package/dist/audit/audit.js +120 -0
  25. package/dist/audit/audit.js.map +1 -0
  26. package/dist/audit/index.d.ts +3 -0
  27. package/dist/audit/index.d.ts.map +1 -0
  28. package/dist/audit/index.js +2 -0
  29. package/dist/audit/index.js.map +1 -0
  30. package/dist/audit/types.d.ts +25 -0
  31. package/dist/audit/types.d.ts.map +1 -0
  32. package/dist/audit/types.js +5 -0
  33. package/dist/audit/types.js.map +1 -0
  34. package/dist/binder/binder.d.ts +34 -0
  35. package/dist/binder/binder.d.ts.map +1 -0
  36. package/dist/binder/binder.js +202 -0
  37. package/dist/binder/binder.js.map +1 -0
  38. package/dist/binder/index.d.ts +3 -0
  39. package/dist/binder/index.d.ts.map +1 -0
  40. package/dist/binder/index.js +2 -0
  41. package/dist/binder/index.js.map +1 -0
  42. package/dist/build-state/build-state.d.ts +40 -0
  43. package/dist/build-state/build-state.d.ts.map +1 -0
  44. package/dist/build-state/build-state.js +180 -0
  45. package/dist/build-state/build-state.js.map +1 -0
  46. package/dist/build-state/index.d.ts +3 -0
  47. package/dist/build-state/index.d.ts.map +1 -0
  48. package/dist/build-state/index.js +2 -0
  49. package/dist/build-state/index.js.map +1 -0
  50. package/dist/checker/index.d.ts +5 -0
  51. package/dist/checker/index.d.ts.map +1 -0
  52. package/dist/checker/index.js +3 -0
  53. package/dist/checker/index.js.map +1 -0
  54. package/dist/checker/type-checker.d.ts +8 -0
  55. package/dist/checker/type-checker.d.ts.map +1 -0
  56. package/dist/checker/type-checker.js +136 -0
  57. package/dist/checker/type-checker.js.map +1 -0
  58. package/dist/checker/validator.d.ts +8 -0
  59. package/dist/checker/validator.d.ts.map +1 -0
  60. package/dist/checker/validator.js +251 -0
  61. package/dist/checker/validator.js.map +1 -0
  62. package/dist/cli/agent-setup.d.ts +27 -0
  63. package/dist/cli/agent-setup.d.ts.map +1 -0
  64. package/dist/cli/agent-setup.js +829 -0
  65. package/dist/cli/agent-setup.js.map +1 -0
  66. package/dist/cli/analyze.d.ts +28 -0
  67. package/dist/cli/analyze.d.ts.map +1 -0
  68. package/dist/cli/analyze.js +188 -0
  69. package/dist/cli/analyze.js.map +1 -0
  70. package/dist/cli/checklist.d.ts +27 -0
  71. package/dist/cli/checklist.d.ts.map +1 -0
  72. package/dist/cli/checklist.js +153 -0
  73. package/dist/cli/checklist.js.map +1 -0
  74. package/dist/cli/compile.d.ts +26 -0
  75. package/dist/cli/compile.d.ts.map +1 -0
  76. package/dist/cli/compile.js +112 -0
  77. package/dist/cli/compile.js.map +1 -0
  78. package/dist/cli/dashboard.d.ts +19 -0
  79. package/dist/cli/dashboard.d.ts.map +1 -0
  80. package/dist/cli/dashboard.js +73 -0
  81. package/dist/cli/dashboard.js.map +1 -0
  82. package/dist/cli/explain.d.ts +23 -0
  83. package/dist/cli/explain.d.ts.map +1 -0
  84. package/dist/cli/explain.js +144 -0
  85. package/dist/cli/explain.js.map +1 -0
  86. package/dist/cli/git.d.ts +14 -0
  87. package/dist/cli/git.d.ts.map +1 -0
  88. package/dist/cli/git.js +44 -0
  89. package/dist/cli/git.js.map +1 -0
  90. package/dist/cli/lifecycle.d.ts +28 -0
  91. package/dist/cli/lifecycle.d.ts.map +1 -0
  92. package/dist/cli/lifecycle.js +82 -0
  93. package/dist/cli/lifecycle.js.map +1 -0
  94. package/dist/cli/main.d.ts +10 -0
  95. package/dist/cli/main.d.ts.map +1 -0
  96. package/dist/cli/main.js +1072 -0
  97. package/dist/cli/main.js.map +1 -0
  98. package/dist/cli/notify.d.ts +13 -0
  99. package/dist/cli/notify.d.ts.map +1 -0
  100. package/dist/cli/notify.js +36 -0
  101. package/dist/cli/notify.js.map +1 -0
  102. package/dist/cli/starters.d.ts +12 -0
  103. package/dist/cli/starters.d.ts.map +1 -0
  104. package/dist/cli/starters.js +439 -0
  105. package/dist/cli/starters.js.map +1 -0
  106. package/dist/config/config.d.ts +194 -0
  107. package/dist/config/config.d.ts.map +1 -0
  108. package/dist/config/config.js +434 -0
  109. package/dist/config/config.js.map +1 -0
  110. package/dist/config/index.d.ts +3 -0
  111. package/dist/config/index.d.ts.map +1 -0
  112. package/dist/config/index.js +5 -0
  113. package/dist/config/index.js.map +1 -0
  114. package/dist/diagnostics/diagnostic.d.ts +44 -0
  115. package/dist/diagnostics/diagnostic.d.ts.map +1 -0
  116. package/dist/diagnostics/diagnostic.js +44 -0
  117. package/dist/diagnostics/diagnostic.js.map +1 -0
  118. package/dist/diagnostics/index.d.ts +4 -0
  119. package/dist/diagnostics/index.d.ts.map +1 -0
  120. package/dist/diagnostics/index.js +3 -0
  121. package/dist/diagnostics/index.js.map +1 -0
  122. package/dist/diagnostics/reporter.d.ts +43 -0
  123. package/dist/diagnostics/reporter.d.ts.map +1 -0
  124. package/dist/diagnostics/reporter.js +74 -0
  125. package/dist/diagnostics/reporter.js.map +1 -0
  126. package/dist/discovery/discovery.d.ts +6 -0
  127. package/dist/discovery/discovery.d.ts.map +1 -0
  128. package/dist/discovery/discovery.js +66 -0
  129. package/dist/discovery/discovery.js.map +1 -0
  130. package/dist/discovery/index.d.ts +2 -0
  131. package/dist/discovery/index.d.ts.map +1 -0
  132. package/dist/discovery/index.js +2 -0
  133. package/dist/discovery/index.js.map +1 -0
  134. package/dist/doc-gen/doc-gen-types.d.ts +174 -0
  135. package/dist/doc-gen/doc-gen-types.d.ts.map +1 -0
  136. package/dist/doc-gen/doc-gen-types.js +7 -0
  137. package/dist/doc-gen/doc-gen-types.js.map +1 -0
  138. package/dist/doc-gen/doc-renderer.d.ts +17 -0
  139. package/dist/doc-gen/doc-renderer.d.ts.map +1 -0
  140. package/dist/doc-gen/doc-renderer.js +65 -0
  141. package/dist/doc-gen/doc-renderer.js.map +1 -0
  142. package/dist/doc-gen/format-helpers.d.ts +18 -0
  143. package/dist/doc-gen/format-helpers.d.ts.map +1 -0
  144. package/dist/doc-gen/format-helpers.js +92 -0
  145. package/dist/doc-gen/format-helpers.js.map +1 -0
  146. package/dist/doc-gen/index.d.ts +5 -0
  147. package/dist/doc-gen/index.d.ts.map +1 -0
  148. package/dist/doc-gen/index.js +5 -0
  149. package/dist/doc-gen/index.js.map +1 -0
  150. package/dist/doc-gen/link-resolver.d.ts +10 -0
  151. package/dist/doc-gen/link-resolver.d.ts.map +1 -0
  152. package/dist/doc-gen/link-resolver.js +87 -0
  153. package/dist/doc-gen/link-resolver.js.map +1 -0
  154. package/dist/doc-gen/mermaid-renderers.d.ts +12 -0
  155. package/dist/doc-gen/mermaid-renderers.d.ts.map +1 -0
  156. package/dist/doc-gen/mermaid-renderers.js +197 -0
  157. package/dist/doc-gen/mermaid-renderers.js.map +1 -0
  158. package/dist/doc-gen/module-renderer.d.ts +6 -0
  159. package/dist/doc-gen/module-renderer.d.ts.map +1 -0
  160. package/dist/doc-gen/module-renderer.js +54 -0
  161. package/dist/doc-gen/module-renderer.js.map +1 -0
  162. package/dist/doc-gen/product-renderer.d.ts +6 -0
  163. package/dist/doc-gen/product-renderer.d.ts.map +1 -0
  164. package/dist/doc-gen/product-renderer.js +101 -0
  165. package/dist/doc-gen/product-renderer.js.map +1 -0
  166. package/dist/doc-gen/section-renderers.d.ts +20 -0
  167. package/dist/doc-gen/section-renderers.d.ts.map +1 -0
  168. package/dist/doc-gen/section-renderers.js +357 -0
  169. package/dist/doc-gen/section-renderers.js.map +1 -0
  170. package/dist/doc-gen/string-resolver.d.ts +8 -0
  171. package/dist/doc-gen/string-resolver.d.ts.map +1 -0
  172. package/dist/doc-gen/string-resolver.js +47 -0
  173. package/dist/doc-gen/string-resolver.js.map +1 -0
  174. package/dist/doc-gen/surface-ascii.d.ts +7 -0
  175. package/dist/doc-gen/surface-ascii.d.ts.map +1 -0
  176. package/dist/doc-gen/surface-ascii.js +87 -0
  177. package/dist/doc-gen/surface-ascii.js.map +1 -0
  178. package/dist/drift/drift.d.ts +16 -0
  179. package/dist/drift/drift.d.ts.map +1 -0
  180. package/dist/drift/drift.js +149 -0
  181. package/dist/drift/drift.js.map +1 -0
  182. package/dist/drift/index.d.ts +3 -0
  183. package/dist/drift/index.d.ts.map +1 -0
  184. package/dist/drift/index.js +2 -0
  185. package/dist/drift/index.js.map +1 -0
  186. package/dist/extensions/index.d.ts +6 -0
  187. package/dist/extensions/index.d.ts.map +1 -0
  188. package/dist/extensions/index.js +7 -0
  189. package/dist/extensions/index.js.map +1 -0
  190. package/dist/extensions/loader.d.ts +21 -0
  191. package/dist/extensions/loader.d.ts.map +1 -0
  192. package/dist/extensions/loader.js +101 -0
  193. package/dist/extensions/loader.js.map +1 -0
  194. package/dist/extensions/marketplace.d.ts +22 -0
  195. package/dist/extensions/marketplace.d.ts.map +1 -0
  196. package/dist/extensions/marketplace.js +40 -0
  197. package/dist/extensions/marketplace.js.map +1 -0
  198. package/dist/extensions/registry.d.ts +45 -0
  199. package/dist/extensions/registry.d.ts.map +1 -0
  200. package/dist/extensions/registry.js +82 -0
  201. package/dist/extensions/registry.js.map +1 -0
  202. package/dist/extensions/types.d.ts +41 -0
  203. package/dist/extensions/types.d.ts.map +1 -0
  204. package/dist/extensions/types.js +5 -0
  205. package/dist/extensions/types.js.map +1 -0
  206. package/dist/generator/contracts.d.ts +67 -0
  207. package/dist/generator/contracts.d.ts.map +1 -0
  208. package/dist/generator/contracts.js +94 -0
  209. package/dist/generator/contracts.js.map +1 -0
  210. package/dist/generator/index.d.ts +3 -0
  211. package/dist/generator/index.d.ts.map +1 -0
  212. package/dist/generator/index.js +2 -0
  213. package/dist/generator/index.js.map +1 -0
  214. package/dist/governance/governance.d.ts +24 -0
  215. package/dist/governance/governance.d.ts.map +1 -0
  216. package/dist/governance/governance.js +238 -0
  217. package/dist/governance/governance.js.map +1 -0
  218. package/dist/governance/index.d.ts +3 -0
  219. package/dist/governance/index.d.ts.map +1 -0
  220. package/dist/governance/index.js +2 -0
  221. package/dist/governance/index.js.map +1 -0
  222. package/dist/governance/types.d.ts +14 -0
  223. package/dist/governance/types.d.ts.map +1 -0
  224. package/dist/governance/types.js +5 -0
  225. package/dist/governance/types.js.map +1 -0
  226. package/dist/graph/builder.d.ts +10 -0
  227. package/dist/graph/builder.d.ts.map +1 -0
  228. package/dist/graph/builder.js +573 -0
  229. package/dist/graph/builder.js.map +1 -0
  230. package/dist/graph/graph-types.d.ts +64 -0
  231. package/dist/graph/graph-types.d.ts.map +1 -0
  232. package/dist/graph/graph-types.js +29 -0
  233. package/dist/graph/graph-types.js.map +1 -0
  234. package/dist/graph/index.d.ts +8 -0
  235. package/dist/graph/index.d.ts.map +1 -0
  236. package/dist/graph/index.js +5 -0
  237. package/dist/graph/index.js.map +1 -0
  238. package/dist/graph/serializer.d.ts +9 -0
  239. package/dist/graph/serializer.d.ts.map +1 -0
  240. package/dist/graph/serializer.js +31 -0
  241. package/dist/graph/serializer.js.map +1 -0
  242. package/dist/graph/validator.d.ts +14 -0
  243. package/dist/graph/validator.d.ts.map +1 -0
  244. package/dist/graph/validator.js +96 -0
  245. package/dist/graph/validator.js.map +1 -0
  246. package/dist/implement/implement.d.ts +30 -0
  247. package/dist/implement/implement.d.ts.map +1 -0
  248. package/dist/implement/implement.js +299 -0
  249. package/dist/implement/implement.js.map +1 -0
  250. package/dist/implement/index.d.ts +3 -0
  251. package/dist/implement/index.d.ts.map +1 -0
  252. package/dist/implement/index.js +2 -0
  253. package/dist/implement/index.js.map +1 -0
  254. package/dist/implement/types.d.ts +41 -0
  255. package/dist/implement/types.d.ts.map +1 -0
  256. package/dist/implement/types.js +5 -0
  257. package/dist/implement/types.js.map +1 -0
  258. package/dist/incremental/incremental-spec.d.ts +12 -0
  259. package/dist/incremental/incremental-spec.d.ts.map +1 -0
  260. package/dist/incremental/incremental-spec.js +100 -0
  261. package/dist/incremental/incremental-spec.js.map +1 -0
  262. package/dist/incremental/index.d.ts +3 -0
  263. package/dist/incremental/index.d.ts.map +1 -0
  264. package/dist/incremental/index.js +5 -0
  265. package/dist/incremental/index.js.map +1 -0
  266. package/dist/incremental/types.d.ts +28 -0
  267. package/dist/incremental/types.d.ts.map +1 -0
  268. package/dist/incremental/types.js +7 -0
  269. package/dist/incremental/types.js.map +1 -0
  270. package/dist/index.d.ts +106 -0
  271. package/dist/index.d.ts.map +1 -0
  272. package/dist/index.js +106 -0
  273. package/dist/index.js.map +1 -0
  274. package/dist/lexer/index.d.ts +6 -0
  275. package/dist/lexer/index.d.ts.map +1 -0
  276. package/dist/lexer/index.js +5 -0
  277. package/dist/lexer/index.js.map +1 -0
  278. package/dist/lexer/keywords.d.ts +3 -0
  279. package/dist/lexer/keywords.d.ts.map +1 -0
  280. package/dist/lexer/keywords.js +142 -0
  281. package/dist/lexer/keywords.js.map +1 -0
  282. package/dist/lexer/lexer.d.ts +19 -0
  283. package/dist/lexer/lexer.d.ts.map +1 -0
  284. package/dist/lexer/lexer.js +286 -0
  285. package/dist/lexer/lexer.js.map +1 -0
  286. package/dist/lexer/source.d.ts +13 -0
  287. package/dist/lexer/source.d.ts.map +1 -0
  288. package/dist/lexer/source.js +59 -0
  289. package/dist/lexer/source.js.map +1 -0
  290. package/dist/lexer/tokens.d.ts +157 -0
  291. package/dist/lexer/tokens.d.ts.map +1 -0
  292. package/dist/lexer/tokens.js +173 -0
  293. package/dist/lexer/tokens.js.map +1 -0
  294. package/dist/orchestrator/index.d.ts +5 -0
  295. package/dist/orchestrator/index.d.ts.map +1 -0
  296. package/dist/orchestrator/index.js +3 -0
  297. package/dist/orchestrator/index.js.map +1 -0
  298. package/dist/orchestrator/orchestrator.d.ts +14 -0
  299. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  300. package/dist/orchestrator/orchestrator.js +129 -0
  301. package/dist/orchestrator/orchestrator.js.map +1 -0
  302. package/dist/orchestrator/pipeline.d.ts +31 -0
  303. package/dist/orchestrator/pipeline.d.ts.map +1 -0
  304. package/dist/orchestrator/pipeline.js +290 -0
  305. package/dist/orchestrator/pipeline.js.map +1 -0
  306. package/dist/orchestrator/types.d.ts +60 -0
  307. package/dist/orchestrator/types.d.ts.map +1 -0
  308. package/dist/orchestrator/types.js +8 -0
  309. package/dist/orchestrator/types.js.map +1 -0
  310. package/dist/parser/ast.d.ts +502 -0
  311. package/dist/parser/ast.d.ts.map +1 -0
  312. package/dist/parser/ast.js +7 -0
  313. package/dist/parser/ast.js.map +1 -0
  314. package/dist/parser/expressions.d.ts +18 -0
  315. package/dist/parser/expressions.d.ts.map +1 -0
  316. package/dist/parser/expressions.js +230 -0
  317. package/dist/parser/expressions.js.map +1 -0
  318. package/dist/parser/index.d.ts +4 -0
  319. package/dist/parser/index.d.ts.map +1 -0
  320. package/dist/parser/index.js +2 -0
  321. package/dist/parser/index.js.map +1 -0
  322. package/dist/parser/parser.d.ts +83 -0
  323. package/dist/parser/parser.d.ts.map +1 -0
  324. package/dist/parser/parser.js +2149 -0
  325. package/dist/parser/parser.js.map +1 -0
  326. package/dist/planner/differ.d.ts +4 -0
  327. package/dist/planner/differ.d.ts.map +1 -0
  328. package/dist/planner/differ.js +96 -0
  329. package/dist/planner/differ.js.map +1 -0
  330. package/dist/planner/index.d.ts +7 -0
  331. package/dist/planner/index.d.ts.map +1 -0
  332. package/dist/planner/index.js +5 -0
  333. package/dist/planner/index.js.map +1 -0
  334. package/dist/planner/plan-types.d.ts +26 -0
  335. package/dist/planner/plan-types.d.ts.map +1 -0
  336. package/dist/planner/plan-types.js +5 -0
  337. package/dist/planner/plan-types.js.map +1 -0
  338. package/dist/planner/planner.d.ts +8 -0
  339. package/dist/planner/planner.d.ts.map +1 -0
  340. package/dist/planner/planner.js +83 -0
  341. package/dist/planner/planner.js.map +1 -0
  342. package/dist/planner/propagator.d.ts +4 -0
  343. package/dist/planner/propagator.d.ts.map +1 -0
  344. package/dist/planner/propagator.js +45 -0
  345. package/dist/planner/propagator.js.map +1 -0
  346. package/dist/planner/semantic-diff.d.ts +27 -0
  347. package/dist/planner/semantic-diff.d.ts.map +1 -0
  348. package/dist/planner/semantic-diff.js +253 -0
  349. package/dist/planner/semantic-diff.js.map +1 -0
  350. package/dist/presets/index.d.ts +3 -0
  351. package/dist/presets/index.d.ts.map +1 -0
  352. package/dist/presets/index.js +5 -0
  353. package/dist/presets/index.js.map +1 -0
  354. package/dist/presets/loader.d.ts +28 -0
  355. package/dist/presets/loader.d.ts.map +1 -0
  356. package/dist/presets/loader.js +99 -0
  357. package/dist/presets/loader.js.map +1 -0
  358. package/dist/presets/types.d.ts +21 -0
  359. package/dist/presets/types.d.ts.map +1 -0
  360. package/dist/presets/types.js +5 -0
  361. package/dist/presets/types.js.map +1 -0
  362. package/dist/proposal/index.d.ts +3 -0
  363. package/dist/proposal/index.d.ts.map +1 -0
  364. package/dist/proposal/index.js +7 -0
  365. package/dist/proposal/index.js.map +1 -0
  366. package/dist/proposal/proposal.d.ts +9 -0
  367. package/dist/proposal/proposal.d.ts.map +1 -0
  368. package/dist/proposal/proposal.js +169 -0
  369. package/dist/proposal/proposal.js.map +1 -0
  370. package/dist/proposal/types.d.ts +15 -0
  371. package/dist/proposal/types.d.ts.map +1 -0
  372. package/dist/proposal/types.js +5 -0
  373. package/dist/proposal/types.js.map +1 -0
  374. package/dist/registry/index.d.ts +3 -0
  375. package/dist/registry/index.d.ts.map +1 -0
  376. package/dist/registry/index.js +2 -0
  377. package/dist/registry/index.js.map +1 -0
  378. package/dist/registry/resolution.d.ts +39 -0
  379. package/dist/registry/resolution.d.ts.map +1 -0
  380. package/dist/registry/resolution.js +70 -0
  381. package/dist/registry/resolution.js.map +1 -0
  382. package/dist/reviewers/adversarial.d.ts +3 -0
  383. package/dist/reviewers/adversarial.d.ts.map +1 -0
  384. package/dist/reviewers/adversarial.js +111 -0
  385. package/dist/reviewers/adversarial.js.map +1 -0
  386. package/dist/reviewers/architecture.d.ts +3 -0
  387. package/dist/reviewers/architecture.d.ts.map +1 -0
  388. package/dist/reviewers/architecture.js +71 -0
  389. package/dist/reviewers/architecture.js.map +1 -0
  390. package/dist/reviewers/code-quality.d.ts +3 -0
  391. package/dist/reviewers/code-quality.d.ts.map +1 -0
  392. package/dist/reviewers/code-quality.js +72 -0
  393. package/dist/reviewers/code-quality.js.map +1 -0
  394. package/dist/reviewers/edge-case.d.ts +3 -0
  395. package/dist/reviewers/edge-case.d.ts.map +1 -0
  396. package/dist/reviewers/edge-case.js +107 -0
  397. package/dist/reviewers/edge-case.js.map +1 -0
  398. package/dist/reviewers/index.d.ts +21 -0
  399. package/dist/reviewers/index.d.ts.map +1 -0
  400. package/dist/reviewers/index.js +39 -0
  401. package/dist/reviewers/index.js.map +1 -0
  402. package/dist/reviewers/prompt-loader.d.ts +24 -0
  403. package/dist/reviewers/prompt-loader.d.ts.map +1 -0
  404. package/dist/reviewers/prompt-loader.js +67 -0
  405. package/dist/reviewers/prompt-loader.js.map +1 -0
  406. package/dist/reviewers/quality.d.ts +3 -0
  407. package/dist/reviewers/quality.d.ts.map +1 -0
  408. package/dist/reviewers/quality.js +76 -0
  409. package/dist/reviewers/quality.js.map +1 -0
  410. package/dist/reviewers/reviewer.d.ts +39 -0
  411. package/dist/reviewers/reviewer.d.ts.map +1 -0
  412. package/dist/reviewers/reviewer.js +149 -0
  413. package/dist/reviewers/reviewer.js.map +1 -0
  414. package/dist/reviewers/security.d.ts +3 -0
  415. package/dist/reviewers/security.d.ts.map +1 -0
  416. package/dist/reviewers/security.js +87 -0
  417. package/dist/reviewers/security.js.map +1 -0
  418. package/dist/reviewers/specification.d.ts +3 -0
  419. package/dist/reviewers/specification.d.ts.map +1 -0
  420. package/dist/reviewers/specification.js +79 -0
  421. package/dist/reviewers/specification.js.map +1 -0
  422. package/dist/reviewers/test-quality.d.ts +3 -0
  423. package/dist/reviewers/test-quality.d.ts.map +1 -0
  424. package/dist/reviewers/test-quality.js +88 -0
  425. package/dist/reviewers/test-quality.js.map +1 -0
  426. package/dist/reviewers/types.d.ts +32 -0
  427. package/dist/reviewers/types.d.ts.map +1 -0
  428. package/dist/reviewers/types.js +5 -0
  429. package/dist/reviewers/types.js.map +1 -0
  430. package/dist/reviewers/ux.d.ts +3 -0
  431. package/dist/reviewers/ux.d.ts.map +1 -0
  432. package/dist/reviewers/ux.js +94 -0
  433. package/dist/reviewers/ux.js.map +1 -0
  434. package/dist/runtime/index.d.ts +3 -0
  435. package/dist/runtime/index.d.ts.map +1 -0
  436. package/dist/runtime/index.js +2 -0
  437. package/dist/runtime/index.js.map +1 -0
  438. package/dist/runtime/resolution.d.ts +30 -0
  439. package/dist/runtime/resolution.d.ts.map +1 -0
  440. package/dist/runtime/resolution.js +59 -0
  441. package/dist/runtime/resolution.js.map +1 -0
  442. package/dist/testing/index.d.ts +3 -0
  443. package/dist/testing/index.d.ts.map +1 -0
  444. package/dist/testing/index.js +2 -0
  445. package/dist/testing/index.js.map +1 -0
  446. package/dist/testing/test-runner.d.ts +18 -0
  447. package/dist/testing/test-runner.d.ts.map +1 -0
  448. package/dist/testing/test-runner.js +131 -0
  449. package/dist/testing/test-runner.js.map +1 -0
  450. package/dist/types.d.ts +36 -0
  451. package/dist/types.d.ts.map +1 -0
  452. package/dist/types.js +127 -0
  453. package/dist/types.js.map +1 -0
  454. package/dist/validation/index.d.ts +3 -0
  455. package/dist/validation/index.d.ts.map +1 -0
  456. package/dist/validation/index.js +2 -0
  457. package/dist/validation/index.js.map +1 -0
  458. package/dist/validation/types.d.ts +16 -0
  459. package/dist/validation/types.d.ts.map +1 -0
  460. package/dist/validation/types.js +5 -0
  461. package/dist/validation/types.js.map +1 -0
  462. package/dist/validation/validation.d.ts +8 -0
  463. package/dist/validation/validation.d.ts.map +1 -0
  464. package/dist/validation/validation.js +101 -0
  465. package/dist/validation/validation.js.map +1 -0
  466. package/dist/verification/index.d.ts +3 -0
  467. package/dist/verification/index.d.ts.map +1 -0
  468. package/dist/verification/index.js +5 -0
  469. package/dist/verification/index.js.map +1 -0
  470. package/dist/verification/types.d.ts +14 -0
  471. package/dist/verification/types.d.ts.map +1 -0
  472. package/dist/verification/types.js +5 -0
  473. package/dist/verification/types.js.map +1 -0
  474. package/dist/verification/verify.d.ts +7 -0
  475. package/dist/verification/verify.d.ts.map +1 -0
  476. package/dist/verification/verify.js +127 -0
  477. package/dist/verification/verify.js.map +1 -0
  478. package/dist/workflow/clarify.d.ts +7 -0
  479. package/dist/workflow/clarify.d.ts.map +1 -0
  480. package/dist/workflow/clarify.js +165 -0
  481. package/dist/workflow/clarify.js.map +1 -0
  482. package/dist/workflow/engine.d.ts +19 -0
  483. package/dist/workflow/engine.d.ts.map +1 -0
  484. package/dist/workflow/engine.js +265 -0
  485. package/dist/workflow/engine.js.map +1 -0
  486. package/dist/workflow/index.d.ts +6 -0
  487. package/dist/workflow/index.d.ts.map +1 -0
  488. package/dist/workflow/index.js +7 -0
  489. package/dist/workflow/index.js.map +1 -0
  490. package/dist/workflow/types.d.ts +95 -0
  491. package/dist/workflow/types.d.ts.map +1 -0
  492. package/dist/workflow/types.js +18 -0
  493. package/dist/workflow/types.js.map +1 -0
  494. package/package.json +63 -0
@@ -0,0 +1,127 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Verification
3
+ // ---------------------------------------------------------------------------
4
+ // Post-build verification: checks that the Product Graph is consistent,
5
+ // all plan tasks are addressed, spec tests pass, and constitution policies
6
+ // are represented. This runs after the full workflow completes.
7
+ import { collectAllNodeIds } from '../graph/graph-types.js';
8
+ // ---------------------------------------------------------------------------
9
+ // Main entry point
10
+ // ---------------------------------------------------------------------------
11
+ export function verify(graph, spec, workflow, reviewCycles) {
12
+ const checks = [];
13
+ checkGraphIntegrity(graph, checks);
14
+ checkTasksCovered(spec, checks);
15
+ checkWorkflowPassed(workflow, checks);
16
+ checkReviewAcceptance(reviewCycles, checks);
17
+ checkConstitutionPresence(graph, checks);
18
+ const passCount = checks.filter((c) => c.severity === 'pass').length;
19
+ const failCount = checks.filter((c) => c.severity === 'fail').length;
20
+ const warnCount = checks.filter((c) => c.severity === 'warn').length;
21
+ return {
22
+ passed: failCount === 0,
23
+ checks,
24
+ passCount,
25
+ failCount,
26
+ warnCount,
27
+ };
28
+ }
29
+ // ---------------------------------------------------------------------------
30
+ // Individual checks
31
+ // ---------------------------------------------------------------------------
32
+ function checkGraphIntegrity(graph, checks) {
33
+ const allIds = collectAllNodeIds(graph);
34
+ // All edge endpoints exist
35
+ let orphanEdges = 0;
36
+ for (const edge of graph.edges) {
37
+ if (!allIds.has(edge.from) || !allIds.has(edge.to))
38
+ orphanEdges++;
39
+ }
40
+ if (orphanEdges === 0) {
41
+ checks.push({ name: 'graph_edges_valid', severity: 'pass', message: 'All edge endpoints reference existing nodes' });
42
+ }
43
+ else {
44
+ checks.push({ name: 'graph_edges_valid', severity: 'fail', message: `${orphanEdges} edge(s) reference non-existent nodes` });
45
+ }
46
+ // Product lists all modules
47
+ const declaredIds = new Set(graph.product.modules);
48
+ const actualIds = new Set(graph.modules.map((m) => m.id));
49
+ const missing = [...declaredIds].filter((id) => !actualIds.has(id));
50
+ const unlisted = [...actualIds].filter((id) => !declaredIds.has(id));
51
+ if (missing.length === 0 && unlisted.length === 0) {
52
+ checks.push({ name: 'modules_consistent', severity: 'pass', message: 'Product module list matches actual modules' });
53
+ }
54
+ else {
55
+ if (missing.length > 0) {
56
+ checks.push({ name: 'modules_consistent', severity: 'fail', message: `Product references missing modules: ${missing.join(', ')}` });
57
+ }
58
+ if (unlisted.length > 0) {
59
+ checks.push({ name: 'modules_consistent', severity: 'warn', message: `Modules not listed in product: ${unlisted.join(', ')}` });
60
+ }
61
+ }
62
+ }
63
+ function checkTasksCovered(spec, checks) {
64
+ const removeCount = spec.tasks.filter((t) => t.action === 'remove').length;
65
+ const generateCount = spec.tasks.filter((t) => t.action === 'generate' || t.action === 'regenerate').length;
66
+ const verifyCount = spec.tasks.filter((t) => t.action === 'verify').length;
67
+ if (spec.tasks.length === 0) {
68
+ checks.push({ name: 'tasks_present', severity: 'pass', message: 'No tasks required (clean state)' });
69
+ }
70
+ else {
71
+ checks.push({
72
+ name: 'tasks_present',
73
+ severity: 'pass',
74
+ message: `${spec.tasks.length} task(s): ${generateCount} generate, ${removeCount} remove, ${verifyCount} verify`,
75
+ });
76
+ }
77
+ }
78
+ function checkWorkflowPassed(workflow, checks) {
79
+ if (workflow.ok) {
80
+ checks.push({ name: 'workflow_phases', severity: 'pass', message: `All ${workflow.phases.length} workflow phases completed` });
81
+ }
82
+ else {
83
+ const failed = workflow.phases.filter((p) => !p.ok).map((p) => p.phase);
84
+ checks.push({ name: 'workflow_phases', severity: 'fail', message: `Workflow phases failed: ${failed.join(', ')}` });
85
+ }
86
+ }
87
+ function checkReviewAcceptance(cycles, checks) {
88
+ if (cycles.length === 0) {
89
+ checks.push({ name: 'review_acceptance', severity: 'warn', message: 'No review cycles were run' });
90
+ return;
91
+ }
92
+ const lastCycle = cycles[cycles.length - 1];
93
+ if (lastCycle.accepted) {
94
+ checks.push({
95
+ name: 'review_acceptance',
96
+ severity: 'pass',
97
+ message: `Review accepted after ${cycles.length} cycle(s)`,
98
+ });
99
+ }
100
+ else {
101
+ checks.push({
102
+ name: 'review_acceptance',
103
+ severity: 'fail',
104
+ message: `Review not accepted after ${cycles.length} cycle(s): ${lastCycle.criticalCount} critical, ${lastCycle.errorCount} errors`,
105
+ });
106
+ }
107
+ }
108
+ function checkConstitutionPresence(graph, checks) {
109
+ let constitutionCount = 0;
110
+ for (const mod of graph.modules) {
111
+ const constitutions = getNodeArray(mod, 'constitutions');
112
+ constitutionCount += constitutions.length;
113
+ }
114
+ if (constitutionCount > 0) {
115
+ checks.push({ name: 'constitution_present', severity: 'pass', message: `${constitutionCount} constitution(s) defined` });
116
+ }
117
+ else {
118
+ checks.push({ name: 'constitution_present', severity: 'warn', message: 'No constitutions defined — consider adding governance policies' });
119
+ }
120
+ }
121
+ function getNodeArray(mod, category) {
122
+ const val = mod[category];
123
+ if (!Array.isArray(val))
124
+ return [];
125
+ return val;
126
+ }
127
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/verification/verify.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAC9E,wEAAwE;AACxE,2EAA2E;AAC3E,gEAAgE;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,UAAU,MAAM,CACpB,KAAmB,EACnB,IAAqB,EACrB,QAAwB,EACxB,YAA0C;IAE1C,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC5C,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAErE,OAAO;QACL,MAAM,EAAE,SAAS,KAAK,CAAC;QACvB,MAAM;QACN,SAAS;QACT,SAAS;QACT,SAAS;KACV,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,KAAmB,EAAE,MAA2B;IAC3E,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAExC,2BAA2B;IAC3B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,WAAW,EAAE,CAAC;IACpE,CAAC;IAED,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;IACvH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,uCAAuC,EAAE,CAAC,CAAC;IAC/H,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAErE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAC;IACvH,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,uCAAuC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtI,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kCAAkC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAClI,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAqB,EAAE,MAA2B;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,MAAM,CAAC;IAC5G,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAE3E,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;IACvG,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,aAAa,aAAa,cAAc,WAAW,YAAY,WAAW,SAAS;SACjH,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAwB,EAAE,MAA2B;IAChF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,4BAA4B,EAAE,CAAC,CAAC;IACjI,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAoC,EACpC,MAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC7C,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,yBAAyB,MAAM,CAAC,MAAM,WAAW;SAC3D,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,6BAA6B,MAAM,CAAC,MAAM,cAAc,SAAS,CAAC,aAAa,cAAc,SAAS,CAAC,UAAU,SAAS;SACpI,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAmB,EAAE,MAA2B;IACjF,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACzD,iBAAiB,IAAI,aAAa,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,0BAA0B,EAAE,CAAC,CAAC;IAC3H,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAC,CAAC;IAC7I,CAAC;AACH,CAAC;AAWD,SAAS,YAAY,CAAC,GAAe,EAAE,QAAgB;IACrD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,GAA2B,CAAC;AACrC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ProductGraph } from '../graph/graph-types.js';
2
+ import type { IncrementalSpec } from '../incremental/types.js';
3
+ import type { ResolvedClarifyConfig, AmbiguityThreshold } from '../config/config.js';
4
+ import type { ClarifyOutput, ClarifyQuestion, PhaseResult, AutoClarifyResult } from './types.js';
5
+ export declare function runClarifyPhase(graph: ProductGraph, spec: IncrementalSpec, config: ResolvedClarifyConfig): PhaseResult<ClarifyOutput>;
6
+ export declare function autoResolveClarifications(questions: readonly ClarifyQuestion[], threshold: AmbiguityThreshold, graph: ProductGraph): AutoClarifyResult;
7
+ //# sourceMappingURL=clarify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clarify.d.ts","sourceRoot":"","sources":["../../src/workflow/clarify.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAoB,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAsC,WAAW,EAAE,iBAAiB,EAAoB,MAAM,YAAY,CAAC;AAMvJ,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,qBAAqB,GAC5B,WAAW,CAAC,aAAa,CAAC,CAiB5B;AA2HD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE,YAAY,GAClB,iBAAiB,CAiBnB"}
@@ -0,0 +1,165 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Clarify Phase
3
+ // ---------------------------------------------------------------------------
4
+ // Generates prioritized clarification questions by analyzing the Product
5
+ // Graph for ambiguities, missing constructs, and incomplete definitions.
6
+ import { priorityRank } from '../config/config.js';
7
+ // ---------------------------------------------------------------------------
8
+ // Main entry point
9
+ // ---------------------------------------------------------------------------
10
+ export function runClarifyPhase(graph, spec, config) {
11
+ const allQuestions = generateQuestions(graph, spec);
12
+ const minRank = priorityRank(config.minimumQuestionPriority);
13
+ const filtered = allQuestions.filter((q) => priorityRank(q.priority) >= minRank);
14
+ const limited = filtered.slice(0, config.maxQuestions);
15
+ return {
16
+ phase: 'clarify',
17
+ ok: true,
18
+ data: {
19
+ questions: limited,
20
+ filteredCount: limited.length,
21
+ totalCount: allQuestions.length,
22
+ },
23
+ warnings: [],
24
+ };
25
+ }
26
+ // ---------------------------------------------------------------------------
27
+ // Question generators
28
+ // ---------------------------------------------------------------------------
29
+ function generateQuestions(graph, _spec) {
30
+ const questions = [];
31
+ let nextId = 1;
32
+ for (const mod of graph.modules) {
33
+ // Empty modules → what should they contain?
34
+ const entities = getNodeArray(mod, 'entities');
35
+ const workflows = getNodeArray(mod, 'workflows');
36
+ if (entities.length === 0 && workflows.length === 0) {
37
+ questions.push(makeQuestion(nextId++, 'medium', 'empty_module', mod.id, `Module "${mod.name}" has no entities or workflows. What domain constructs should it contain?`, 'low'));
38
+ }
39
+ // Entities without identity fields → which field is the ID?
40
+ for (const entity of entities) {
41
+ const fields = getFields(entity);
42
+ const hasId = fields.some((f) => f === 'id' || f.endsWith('_id'));
43
+ if (!hasId && fields.length > 0) {
44
+ questions.push(makeQuestion(nextId++, 'high', 'missing_field', entity.id, `Entity "${entity.name}" in module "${mod.name}" has no obvious identity field. Which field uniquely identifies it?`, 'high'));
45
+ }
46
+ }
47
+ // Workflows without authorization
48
+ for (const wf of getNodeArray(mod, 'workflows')) {
49
+ const hasAuth = graph.edges.some((e) => e.from === wf.id && e.kind === 'authorized_as');
50
+ if (!hasAuth) {
51
+ questions.push(makeQuestion(nextId++, 'high', 'missing_authorization', wf.id, `Workflow "${wf.name}" in module "${mod.name}" has no authorization. Who should be allowed to trigger it?`, 'medium'));
52
+ }
53
+ }
54
+ // Surfaces without actions
55
+ for (const surface of getNodeArray(mod, 'surfaces')) {
56
+ const hasAction = graph.edges.some((e) => e.from === surface.id && e.kind === 'exposes_action');
57
+ if (!hasAction) {
58
+ questions.push(makeQuestion(nextId++, 'medium', 'missing_action', surface.id, `Surface "${surface.name}" in module "${mod.name}" has no exposed actions. What can the user do here?`, 'low'));
59
+ }
60
+ }
61
+ // Unresolved imports
62
+ for (const imp of mod.imports) {
63
+ const found = graph.modules.some((m) => m.name === imp.from);
64
+ if (!found) {
65
+ questions.push(makeQuestion(nextId++, 'critical', 'unresolved_import', mod.id, `Module "${mod.name}" imports "${imp.symbol}" from "${imp.from}" which cannot be resolved. Is this an external dependency or a typo?`, 'low'));
66
+ }
67
+ }
68
+ }
69
+ return questions;
70
+ }
71
+ // ---------------------------------------------------------------------------
72
+ // Helpers
73
+ // ---------------------------------------------------------------------------
74
+ function makeQuestion(id, priority, category, nodeId, question, confidence = 'medium') {
75
+ return { id: `q${id}`, priority, category, nodeId, question, confidence };
76
+ }
77
+ function getNodeArray(mod, category) {
78
+ const val = mod[category];
79
+ if (!Array.isArray(val))
80
+ return [];
81
+ return val;
82
+ }
83
+ function getFields(entity) {
84
+ const raw = entity;
85
+ const fields = raw['fields'];
86
+ if (!Array.isArray(fields))
87
+ return [];
88
+ return fields
89
+ .filter((f) => typeof f === 'object' && f !== null && 'name' in f)
90
+ .map((f) => f.name);
91
+ }
92
+ // ---------------------------------------------------------------------------
93
+ // Auto-clarify — resolve questions the system can answer automatically
94
+ // ---------------------------------------------------------------------------
95
+ const confidenceRank = {
96
+ low: 0,
97
+ medium: 1,
98
+ high: 2,
99
+ };
100
+ const thresholdRank = {
101
+ low: 0,
102
+ medium: 1,
103
+ high: 2,
104
+ };
105
+ export function autoResolveClarifications(questions, threshold, graph) {
106
+ const minRank = thresholdRank[threshold];
107
+ const autoResolved = [];
108
+ const needsInput = [];
109
+ for (const q of questions) {
110
+ if (confidenceRank[q.confidence] >= minRank) {
111
+ const answer = deriveAnswer(q, graph);
112
+ if (answer !== null) {
113
+ autoResolved.push({ question: q, answer: answer.answer, reason: answer.reason });
114
+ continue;
115
+ }
116
+ }
117
+ needsInput.push(q);
118
+ }
119
+ return { autoResolved, needsInput };
120
+ }
121
+ function deriveAnswer(q, graph) {
122
+ switch (q.category) {
123
+ case 'empty_module': {
124
+ // Suggest based on module name if it hints at a domain
125
+ const mod = graph.modules.find((m) => m.id === q.nodeId);
126
+ if (mod) {
127
+ return {
128
+ answer: `Add domain entities and workflows appropriate for the "${mod.name}" module.`,
129
+ reason: `Module "${mod.name}" exists but is empty; standard practice is to define at least one entity.`,
130
+ };
131
+ }
132
+ return null;
133
+ }
134
+ case 'missing_field': {
135
+ return {
136
+ answer: 'Add an "id" field of type "uuid" as the primary identifier.',
137
+ reason: 'Convention: every entity should have an explicit identity field; "id: uuid" is the standard default.',
138
+ };
139
+ }
140
+ case 'missing_authorization': {
141
+ return {
142
+ answer: 'Restrict to authenticated users by default.',
143
+ reason: 'Security best practice: workflows should require authentication unless explicitly public.',
144
+ };
145
+ }
146
+ case 'missing_action': {
147
+ const surface = graph.modules
148
+ .flatMap((m) => (m['surfaces'] ?? []))
149
+ .find((s) => s.id === q.nodeId);
150
+ if (surface) {
151
+ return {
152
+ answer: `Add at least one user action to surface "${surface.name}".`,
153
+ reason: 'A surface without actions provides no interactivity.',
154
+ };
155
+ }
156
+ return null;
157
+ }
158
+ case 'unresolved_import':
159
+ // Cannot safely auto-resolve — could be a typo or missing dependency
160
+ return null;
161
+ default:
162
+ return null;
163
+ }
164
+ }
165
+ //# sourceMappingURL=clarify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clarify.js","sourceRoot":"","sources":["../../src/workflow/clarify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ProductGraph } from '../graph/graph-types.js';
2
+ import type { IncrementalSpec } from '../incremental/types.js';
3
+ import type { ResolvedConfig } from '../config/config.js';
4
+ import type { PhaseResult, SpecifyOutput, PlanOutput, TasksOutput, AnalyzeOutput, ImplementOutput } from './types.js';
5
+ export interface WorkflowResult {
6
+ readonly phases: readonly PhaseResult[];
7
+ readonly ok: boolean;
8
+ }
9
+ /**
10
+ * Run all workflow phases in sequence, producing structured outputs for
11
+ * each phase. The full pipeline: specify → clarify → plan → tasks → analyze → implement.
12
+ */
13
+ export declare function runWorkflow(graph: ProductGraph, spec: IncrementalSpec, config: ResolvedConfig): WorkflowResult;
14
+ export declare function runSpecifyPhase(_graph: ProductGraph, spec: IncrementalSpec): PhaseResult<SpecifyOutput>;
15
+ export declare function runPlanPhase(graph: ProductGraph, spec: IncrementalSpec): PhaseResult<PlanOutput>;
16
+ export declare function runTasksPhase(graph: ProductGraph, spec: IncrementalSpec): PhaseResult<TasksOutput>;
17
+ export declare function runAnalyzePhase(graph: ProductGraph, spec: IncrementalSpec): PhaseResult<AnalyzeOutput>;
18
+ export declare function runImplementPhase(graph: ProductGraph, spec: IncrementalSpec): PhaseResult<ImplementOutput>;
19
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EAEb,UAAU,EAEV,WAAW,EAEX,aAAa,EAEb,eAAe,EAEhB,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,cAAc,GACrB,cAAc,CAYhB;AAMD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,aAAa,CAAC,CAuC5B;AAiBD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,UAAU,CAAC,CA4BzB;AAMD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,WAAW,CAAC,CAqC1B;AAMD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,aAAa,CAAC,CAoC5B;AAMD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,GACpB,WAAW,CAAC,eAAe,CAAC,CA2B9B"}
@@ -0,0 +1,265 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Workflow Phase Engine
3
+ // ---------------------------------------------------------------------------
4
+ // Deterministic phase orchestrator. Each phase analyzes the Product Graph
5
+ // and IncrementalSpec to produce structured data that external agents consume.
6
+ // No AI or generative work is performed — all outputs are rule-based.
7
+ import { runClarifyPhase } from './clarify.js';
8
+ /**
9
+ * Run all workflow phases in sequence, producing structured outputs for
10
+ * each phase. The full pipeline: specify → clarify → plan → tasks → analyze → implement.
11
+ */
12
+ export function runWorkflow(graph, spec, config) {
13
+ const phases = [];
14
+ phases.push(runSpecifyPhase(graph, spec));
15
+ phases.push(runClarifyPhase(graph, spec, config.phases.clarify));
16
+ phases.push(runPlanPhase(graph, spec));
17
+ phases.push(runTasksPhase(graph, spec));
18
+ phases.push(runAnalyzePhase(graph, spec));
19
+ phases.push(runImplementPhase(graph, spec));
20
+ const ok = phases.every((p) => p.ok);
21
+ return { phases, ok };
22
+ }
23
+ // ---------------------------------------------------------------------------
24
+ // Specify phase — describe what changed and what's affected
25
+ // ---------------------------------------------------------------------------
26
+ export function runSpecifyPhase(_graph, spec) {
27
+ const added = [];
28
+ const removed = [];
29
+ const modified = [];
30
+ const impacted = [];
31
+ for (const c of spec.changes) {
32
+ const entry = {
33
+ nodeId: c.nodeId,
34
+ nodeKind: c.nodeKind,
35
+ module: c.module,
36
+ description: describeChange(c.changeKind, c.nodeId),
37
+ };
38
+ if (c.changeKind === 'added')
39
+ added.push(entry);
40
+ else if (c.changeKind === 'removed')
41
+ removed.push(entry);
42
+ else
43
+ modified.push(entry);
44
+ }
45
+ for (const i of spec.impacts) {
46
+ impacted.push({
47
+ nodeId: i.nodeId,
48
+ nodeKind: i.nodeKind,
49
+ module: i.module,
50
+ description: `Impacted via ${i.via}: ${i.reason}`,
51
+ });
52
+ }
53
+ return {
54
+ phase: 'specify',
55
+ ok: true,
56
+ data: {
57
+ affectedModules: [...spec.summary.affectedModules],
58
+ addedNodes: added,
59
+ removedNodes: removed,
60
+ modifiedNodes: modified,
61
+ impactedNodes: impacted,
62
+ },
63
+ warnings: [],
64
+ };
65
+ }
66
+ function describeChange(changeKind, nodeId) {
67
+ switch (changeKind) {
68
+ case 'added': return `New node "${nodeId}" added`;
69
+ case 'removed': return `Node "${nodeId}" removed`;
70
+ case 'renamed': return `Node "${nodeId}" renamed`;
71
+ case 'structurally_changed': return `Node "${nodeId}" structure changed`;
72
+ case 'behaviorally_changed': return `Node "${nodeId}" behavior changed`;
73
+ case 'policy_changed': return `Node "${nodeId}" policy changed`;
74
+ }
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Plan phase — produce implementation steps from incremental spec tasks
78
+ // ---------------------------------------------------------------------------
79
+ export function runPlanPhase(graph, spec) {
80
+ const meta = buildNodeMetaMap(graph);
81
+ const steps = [];
82
+ for (const task of spec.tasks) {
83
+ const m = meta.get(task.nodeId);
84
+ const deps = findDependencies(graph, task.nodeId);
85
+ steps.push({
86
+ stepId: `step_${task.taskId}`,
87
+ taskId: task.taskId,
88
+ nodeId: task.nodeId,
89
+ action: task.action,
90
+ module: m?.module ?? '',
91
+ nodeKind: m?.kind ?? 'unknown',
92
+ description: task.reason,
93
+ dependsOn: deps
94
+ .filter((d) => spec.tasks.some((t) => t.nodeId === d))
95
+ .map((d) => `step_${spec.tasks.find((t) => t.nodeId === d).taskId}`),
96
+ });
97
+ }
98
+ return {
99
+ phase: 'plan',
100
+ ok: true,
101
+ data: { steps },
102
+ warnings: [],
103
+ };
104
+ }
105
+ // ---------------------------------------------------------------------------
106
+ // Tasks phase — topological ordering of tasks
107
+ // ---------------------------------------------------------------------------
108
+ export function runTasksPhase(graph, spec) {
109
+ const meta = buildNodeMetaMap(graph);
110
+ // Build task dependency graph
111
+ const taskNodeIds = new Set(spec.tasks.map((t) => t.nodeId));
112
+ const taskDeps = new Map();
113
+ for (const task of spec.tasks) {
114
+ const deps = findDependencies(graph, task.nodeId)
115
+ .filter((d) => taskNodeIds.has(d) && d !== task.nodeId);
116
+ taskDeps.set(task.taskId, deps
117
+ .map((d) => spec.tasks.find((t) => t.nodeId === d).taskId));
118
+ }
119
+ // Topological sort (Kahn's algorithm)
120
+ const ordered = topologicalSort(spec.tasks.map((t) => t.taskId), taskDeps);
121
+ const orderedTasks = spec.tasks.map((task) => {
122
+ const order = ordered.indexOf(task.taskId);
123
+ const blockedBy = taskDeps.get(task.taskId);
124
+ return {
125
+ taskId: task.taskId,
126
+ order,
127
+ nodeId: task.nodeId,
128
+ action: task.action,
129
+ module: meta.get(task.nodeId)?.module ?? '',
130
+ blocked: false,
131
+ blockedBy,
132
+ };
133
+ }).sort((a, b) => a.order - b.order);
134
+ return {
135
+ phase: 'tasks',
136
+ ok: true,
137
+ data: { orderedTasks },
138
+ warnings: [],
139
+ };
140
+ }
141
+ // ---------------------------------------------------------------------------
142
+ // Analyze phase — risk and dependency analysis
143
+ // ---------------------------------------------------------------------------
144
+ export function runAnalyzePhase(graph, spec) {
145
+ const analyses = [];
146
+ for (const task of spec.tasks) {
147
+ const inbound = graph.edges.filter((e) => e.to === task.nodeId);
148
+ const outbound = graph.edges.filter((e) => e.from === task.nodeId);
149
+ const riskFactors = [];
150
+ if (task.action === 'remove')
151
+ riskFactors.push('removal');
152
+ if (inbound.length > 5)
153
+ riskFactors.push('high_inbound_edges');
154
+ if (outbound.length > 5)
155
+ riskFactors.push('high_outbound_edges');
156
+ // Check if node is an entity (higher risk changes)
157
+ const isEntity = spec.changes.some((c) => c.nodeId === task.nodeId && c.nodeKind === 'entity');
158
+ if (isEntity && task.action === 'regenerate')
159
+ riskFactors.push('entity_modification');
160
+ const riskLevel = riskFactors.length >= 3 ? 'high' : riskFactors.length >= 1 ? 'medium' : 'low';
161
+ analyses.push({
162
+ taskId: task.taskId,
163
+ nodeId: task.nodeId,
164
+ riskLevel,
165
+ riskFactors,
166
+ dependencyCount: outbound.length,
167
+ dependentCount: inbound.length,
168
+ });
169
+ }
170
+ return {
171
+ phase: 'analyze',
172
+ ok: true,
173
+ data: { analyses },
174
+ warnings: [],
175
+ };
176
+ }
177
+ // ---------------------------------------------------------------------------
178
+ // Implement phase — generate task instructions
179
+ // ---------------------------------------------------------------------------
180
+ export function runImplementPhase(graph, spec) {
181
+ const meta = buildNodeMetaMap(graph);
182
+ const instructions = [];
183
+ for (const task of spec.tasks) {
184
+ const m = meta.get(task.nodeId);
185
+ const related = graph.edges
186
+ .filter((e) => e.from === task.nodeId || e.to === task.nodeId)
187
+ .map((e) => `${e.from} -[${e.kind}]-> ${e.to}`);
188
+ instructions.push({
189
+ taskId: task.taskId,
190
+ nodeId: task.nodeId,
191
+ module: m?.module ?? '',
192
+ action: task.action,
193
+ nodeKind: m?.kind ?? 'unknown',
194
+ context: task.reason,
195
+ relatedEdges: related,
196
+ });
197
+ }
198
+ return {
199
+ phase: 'implement',
200
+ ok: true,
201
+ data: { instructions },
202
+ warnings: [],
203
+ };
204
+ }
205
+ function buildNodeMetaMap(graph) {
206
+ const map = new Map();
207
+ map.set('product', { kind: 'product', module: '' });
208
+ for (const mod of graph.modules) {
209
+ map.set(mod.id, { kind: 'module', module: mod.name });
210
+ for (const [, value] of Object.entries(mod)) {
211
+ if (Array.isArray(value)) {
212
+ for (const item of value) {
213
+ if (typeof item === 'object' && item !== null && 'id' in item && 'kind' in item) {
214
+ const typed = item;
215
+ map.set(typed.id, { kind: typed.kind, module: mod.name });
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ return map;
222
+ }
223
+ function findDependencies(graph, nodeId) {
224
+ return graph.edges
225
+ .filter((e) => e.from === nodeId)
226
+ .map((e) => e.to);
227
+ }
228
+ function topologicalSort(nodes, blockedBy) {
229
+ // Build reverse adjacency: prerequisite → nodes it unblocks
230
+ const unblocks = new Map();
231
+ const inDegree = new Map();
232
+ for (const n of nodes)
233
+ inDegree.set(n, 0);
234
+ for (const [node, prereqs] of blockedBy) {
235
+ inDegree.set(node, inDegree.get(node) + prereqs.length);
236
+ for (const p of prereqs) {
237
+ if (!unblocks.has(p))
238
+ unblocks.set(p, []);
239
+ unblocks.get(p).push(node);
240
+ }
241
+ }
242
+ const queue = [];
243
+ for (const [n, deg] of inDegree) {
244
+ if (deg === 0)
245
+ queue.push(n);
246
+ }
247
+ const result = [];
248
+ while (queue.length > 0) {
249
+ const current = queue.shift();
250
+ result.push(current);
251
+ for (const dep of unblocks.get(current) ?? []) {
252
+ const newDeg = inDegree.get(dep) - 1;
253
+ inDegree.set(dep, newDeg);
254
+ if (newDeg === 0)
255
+ queue.push(dep);
256
+ }
257
+ }
258
+ // If there are remaining nodes (cycle), append them
259
+ for (const n of nodes) {
260
+ if (!result.includes(n))
261
+ result.push(n);
262
+ }
263
+ return result;
264
+ }
265
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAC9E,0EAA0E;AAC1E,+EAA+E;AAC/E,sEAAsE;AAmBtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAW/C;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,KAAmB,EACnB,IAAqB,EACrB,MAAsB;IAEtB,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5C,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC;AAED,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAE9E,MAAM,UAAU,eAAe,CAC7B,MAAoB,EACpB,IAAqB;IAErB,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAqB;YAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;SACpD,CAAC;QACF,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3C,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YACpD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,WAAW,EAAE,gBAAgB,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE;SAClD,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE;YACJ,eAAe,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAClD,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,OAAO;YACrB,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,QAAQ;SACxB;QACD,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAsB,EAAE,MAAc;IAC5D,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,CAAC,OAAO,aAAa,MAAM,SAAS,CAAC;QAClD,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,MAAM,WAAW,CAAC;QAClD,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,MAAM,WAAW,CAAC;QAClD,KAAK,sBAAsB,CAAC,CAAC,OAAO,SAAS,MAAM,qBAAqB,CAAC;QACzE,KAAK,sBAAsB,CAAC,CAAC,OAAO,SAAS,MAAM,oBAAoB,CAAC;QACxE,KAAK,gBAAgB,CAAC,CAAC,OAAO,SAAS,MAAM,kBAAkB,CAAC;IAClE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,IAAqB;IAErB,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE;YACvB,QAAQ,EAAE,CAAC,EAAE,IAAI,IAAI,SAAS;YAC9B,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,SAAS,EAAE,IAAI;iBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;iBACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAE,CAAC,MAAM,EAAE,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM;QACb,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,EAAE,KAAK,EAAE;QACf,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAE9E,MAAM,UAAU,aAAa,CAC3B,KAAmB,EACnB,IAAqB;IAErB,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAErC,8BAA8B;IAC9B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;aAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,sCAAsC;IACtC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE3E,MAAM,YAAY,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC;QAC7C,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE;YAC3C,OAAO,EAAE,KAAK;YACd,SAAS;SACV,CAAC;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAErC,OAAO;QACL,KAAK,EAAE,OAAO;QACd,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,EAAE,YAAY,EAAE;QACtB,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,IAAqB;IAErB,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEjE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAC3D,CAAC;QACF,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY;YAAE,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QAEhG,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS;YACT,WAAW;YACX,eAAe,EAAE,QAAQ,CAAC,MAAM;YAChC,cAAc,EAAE,OAAO,CAAC,MAAM;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,EAAE,QAAQ,EAAE;QAClB,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,MAAM,UAAU,iBAAiB,CAC/B,KAAmB,EACnB,IAAqB;IAErB,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC;aAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAElD,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,CAAC,EAAE,IAAI,IAAI,SAAS;YAC9B,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,EAAE,YAAY,EAAE;QACtB,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAWD,SAAS,gBAAgB,CAAC,KAAmB;IAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBAChF,MAAM,KAAK,GAAG,IAAoC,CAAC;wBACnD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAmB,EAAE,MAAc;IAC3D,OAAO,KAAK,CAAC,KAAK;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CACtB,KAAwB,EACxB,SAAgC;IAEhC,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;QACxC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,GAAG,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC;YACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1B,IAAI,MAAM,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type { PhaseKind, PhaseResult, SpecifyOutput, SpecifyNodeEntry, ClarifyOutput, ClarifyQuestion, ClarifyCategory, ClarifyConfidence, AutoClarifyResult, ResolvedQuestion, PlanOutput, PlanStep, TasksOutput, OrderedTask, AnalyzeOutput, TaskAnalysis, ImplementOutput, ImplementInstruction, } from './types.js';
2
+ export { PHASE_KINDS } from './types.js';
3
+ export { runClarifyPhase, autoResolveClarifications } from './clarify.js';
4
+ export type { WorkflowResult } from './engine.js';
5
+ export { runWorkflow, runSpecifyPhase, runPlanPhase, runTasksPhase, runAnalyzePhase, runImplementPhase, } from './engine.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,aAAa,CAAC"}