@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
package/README.md ADDED
@@ -0,0 +1,204 @@
1
+ # @prodara/compiler
2
+
3
+ The core compilation engine, workflow orchestrator, and programmatic API for the Prodara spec-first language.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @prodara/compiler
9
+ ```
10
+
11
+ ## Overview
12
+
13
+ The compiler takes `.prd` specification files through a 15-phase pipeline:
14
+
15
+ 1. **Discovery** → **Lexing** → **Parsing** → **Binding** → **Type Checking** → **Semantic Validation**
16
+ 2. **Graph Building** → **Graph Validation** → **Constitution Resolution**
17
+ 3. **Diffing** → **Impact Propagation** → **Planning**
18
+ 4. **Incremental Spec** → **Workflow Engine** → **Review/Fix Loop** → **Verification**
19
+
20
+ ## Programmatic API
21
+
22
+ ```typescript
23
+ import { compile, buildGraph, serializeGraph, formatDiagnosticsJson } from '@prodara/compiler';
24
+
25
+ const result = compile('./my-project');
26
+
27
+ if (result.diagnostics.hasErrors) {
28
+ console.error(formatDiagnosticsJson(result.diagnostics));
29
+ } else {
30
+ console.log(serializeGraph(result.graph!));
31
+ }
32
+ ```
33
+
34
+ See the [root README](../../README.md) for the full API reference.
35
+
36
+ ## Customization
37
+
38
+ ### Custom Reviewers
39
+
40
+ Drop `.md` files in `.prodara/reviewers/` to create custom reviewer agents. The filename becomes the reviewer name (e.g., `performance.md` → `performance` reviewer).
41
+
42
+ ```typescript
43
+ import { discoverCustomReviewers, loadReviewerPrompt } from '@prodara/compiler';
44
+
45
+ // Discover all custom reviewers in .prodara/reviewers/
46
+ const customs = await discoverCustomReviewers('/path/to/project');
47
+
48
+ // Load a specific reviewer prompt
49
+ const prompt = await loadReviewerPrompt(
50
+ { promptPath: '.prodara/reviewers/performance.md' },
51
+ '/path/to/project',
52
+ );
53
+ ```
54
+
55
+ Alternatively, set `reviewers.{name}.promptPath` in `prodara.config.json` to point to any `.md` file.
56
+
57
+ ### Constitution
58
+
59
+ A project-level constitution provides global instructions injected into all AI prompts:
60
+
61
+ ```typescript
62
+ import { loadConstitution } from '@prodara/compiler';
63
+
64
+ // Loads from config.constitution.path or .prodara/constitution.md
65
+ const text = await loadConstitution(resolvedConfig, '/path/to/project');
66
+ ```
67
+
68
+ Configure in `prodara.config.json`:
69
+
70
+ ```json
71
+ {
72
+ "constitution": {
73
+ "path": ".prodara/constitution.md"
74
+ }
75
+ }
76
+ ```
77
+
78
+ ### Template Overrides
79
+
80
+ Override any built-in template with a local `.md` file:
81
+
82
+ ```json
83
+ {
84
+ "templateOverrides": {
85
+ "phase:implement": ".prodara/templates/implement.md"
86
+ }
87
+ }
88
+ ```
89
+
90
+ ### Per-Artifact Rules
91
+
92
+ Define rules that are injected into phase templates for specific artifact types:
93
+
94
+ ```json
95
+ {
96
+ "artifactRules": {
97
+ "proposal": ["Must include acceptance criteria", "Max 200 words"],
98
+ "design": ["Include sequence diagrams"]
99
+ }
100
+ }
101
+ ```
102
+
103
+ ### Pre-Review Loop
104
+
105
+ Run reviewers *before* implementation to catch spec-level issues early. Disabled by default:
106
+
107
+ ```json
108
+ {
109
+ "preReview": {
110
+ "enabled": true,
111
+ "maxIterations": 2,
112
+ "fixSeverity": ["critical", "error"]
113
+ }
114
+ }
115
+ ```
116
+
117
+ Skip at runtime with the `noPreReview` pipeline option. The `postReview` key is accepted as a backward-compatible alias for `reviewFix`.
118
+ ```
119
+
120
+ ### Exploration, Help & Party Mode
121
+
122
+ Three interactive templates for AI agent collaboration:
123
+
124
+ - **Explore** (`/prodara:explore <topic>`) — Read-only investigation of a topic within the product graph. Analyzes modules, entities, and relationships without modifying files.
125
+ - **Help** (`/prodara:help`) — Contextual guidance based on project state. Detects .prd files, build artifacts, and provides recommendations.
126
+ - **Party** (`/prodara:party <topic>`) — Multi-perspective discussion from configured reviewer agents. Each perspective provides analysis, followed by a synthesis.
127
+
128
+ ### Design Documents & Onboarding
129
+
130
+ - **Design** (`/prodara:design <change>`) — Generates a per-change design document with technical approach, affected modules, predicted file changes, risk assessment, and architecture decisions.
131
+ - **Onboard** (`/prodara:onboard`) — Interactive onboarding guide that detects project state (empty, basic, complete) and provides step-by-step guidance tailored to your current setup.
132
+
133
+ ## Slash Commands
134
+
135
+ `prodara init --ai <agent>` generates slash command files for 26 supported AI agents. Commands are organized into four categories:
136
+
137
+ | Category | Commands |
138
+ |---|---|
139
+ | **Workflow** | `build`, `validate`, `constitution`, `specify`, `plan`, `implement`, `clarify`, `review`, `propose`, `explore`, `party` |
140
+ | **Spec-edit** | `add-module`, `add-entity`, `add-workflow`, `add-screen`, `add-policy`, `rename`, `move` |
141
+ | **Query** | `explain`, `why`, `graph`, `diff`, `drift`, `analyze`, `checklist` |
142
+ | **Management** | `help`, `onboard`, `extensions`, `presets` |
143
+
144
+ 29 commands are generated per agent, each adapted to the agent's file format (`.md`, `.prompt.md`, `.mdc`, etc.).
145
+
146
+ ### Extension Marketplace
147
+
148
+ Search, install, and remove extensions and presets via npm:
149
+
150
+ ```typescript
151
+ import { searchMarketplace, npmInstall, npmRemove } from '@prodara/compiler';
152
+
153
+ // Search for extensions or presets
154
+ const extensions = searchMarketplace('auth', 'extension');
155
+ const presets = searchMarketplace('saas', 'preset');
156
+
157
+ // Install/remove
158
+ npmInstall('prodara-extension-auth', process.cwd());
159
+ npmRemove('prodara-extension-auth', process.cwd());
160
+ ```
161
+
162
+ Convention: extensions are named `prodara-extension-{name}`, presets `prodara-preset-{name}`.
163
+
164
+ ### Custom Workflows
165
+
166
+ Define named workflow schemas in `.prodara.yaml`:
167
+
168
+ ```yaml
169
+ workflows:
170
+ default:
171
+ phases: [specify, clarify, plan, implement, review, verify]
172
+ fast:
173
+ phases: [plan, implement, verify]
174
+ reviewBefore: [security]
175
+ strict:
176
+ phases: [specify, clarify, plan, implement, review, verify]
177
+ reviewBefore: [architecture, security]
178
+ reviewAfter: [quality, testQuality]
179
+ ```
180
+
181
+ Each workflow defines its phase sequence and optional `reviewBefore`/`reviewAfter` gates. The `default` workflow is used when none is specified.
182
+
183
+ ## CLI
184
+
185
+ When installed as a project dependency, provides a local `prodara` binary:
186
+
187
+ ```bash
188
+ npx prodara build
189
+ npx prodara validate --format json
190
+ npx prodara graph --output build/graph.json
191
+ npx prodara test
192
+ ```
193
+
194
+ ## Testing
195
+
196
+ ```bash
197
+ npm test # 985 tests
198
+ npm run test:coverage # Enforces 100% coverage
199
+ npm run typecheck # Zero errors
200
+ ```
201
+
202
+ ## License
203
+
204
+ MIT
@@ -0,0 +1,10 @@
1
+ import type { AgentDriver, AgentRequest, AgentResponse, AgentPlatform, PromptFileOutput } from './types.js';
2
+ export declare class PromptFileDriver implements AgentDriver {
3
+ readonly platform: AgentPlatform;
4
+ private readonly root;
5
+ constructor(platform: AgentPlatform, root: string);
6
+ execute(request: AgentRequest): Promise<AgentResponse>;
7
+ generatePromptFile(request: AgentRequest): PromptFileOutput;
8
+ }
9
+ export declare function createDriver(platform: AgentPlatform, root: string): AgentDriver;
10
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EAEb,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAsBpB,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM;IAK3C,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAyB5D,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB;CAU5D;AA+DD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAM/E"}
@@ -0,0 +1,122 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Agent Driver
3
+ // ---------------------------------------------------------------------------
4
+ // Platform-agnostic agent orchestration. Supports prompt-file drivers (IDE)
5
+ // and direct API drivers (headless/CI).
6
+ import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
7
+ import { join, dirname } from 'node:path';
8
+ // ---------------------------------------------------------------------------
9
+ // Prompt File Driver — writes prompt files for IDE-based agents
10
+ // ---------------------------------------------------------------------------
11
+ const PLATFORM_PATHS = {
12
+ copilot: '.github/prompts',
13
+ claude: '.claude/commands',
14
+ cursor: '.cursor/rules',
15
+ opencode: '.opencode/agent',
16
+ codex: '.codex',
17
+ };
18
+ const PLATFORM_EXTENSIONS = {
19
+ copilot: '.prompt.md',
20
+ claude: '.md',
21
+ cursor: '.mdc',
22
+ opencode: '.md',
23
+ codex: '.md',
24
+ };
25
+ export class PromptFileDriver {
26
+ platform;
27
+ root;
28
+ constructor(platform, root) {
29
+ this.platform = platform;
30
+ this.root = root;
31
+ }
32
+ async execute(request) {
33
+ const start = Date.now();
34
+ const output = this.generatePromptFile(request);
35
+ // Write the prompt file
36
+ const dir = dirname(output.path);
37
+ if (!existsSync(dir)) {
38
+ mkdirSync(dir, { recursive: true });
39
+ }
40
+ writeFileSync(output.path, output.content, 'utf-8');
41
+ const metadata = {
42
+ platform: this.platform,
43
+ duration_ms: Date.now() - start,
44
+ tokens_used: null,
45
+ model: null,
46
+ };
47
+ return {
48
+ content: output.content,
49
+ status: 'success',
50
+ metadata,
51
+ };
52
+ }
53
+ generatePromptFile(request) {
54
+ /* v8 ignore next 2 -- all known platforms are in the maps; fallback is defensive */
55
+ const dirName = PLATFORM_PATHS[this.platform] ?? '.prodara/prompts';
56
+ const ext = PLATFORM_EXTENSIONS[this.platform] ?? '.md';
57
+ const fileName = `prodara-${request.capability}${ext}`;
58
+ const path = join(this.root, dirName, fileName);
59
+ const content = formatPromptForPlatform(this.platform, request);
60
+ return { path, content };
61
+ }
62
+ }
63
+ // ---------------------------------------------------------------------------
64
+ // Prompt formatting
65
+ // ---------------------------------------------------------------------------
66
+ function formatPromptForPlatform(platform, request) {
67
+ const sections = [];
68
+ // Platform-specific frontmatter
69
+ if (platform === 'copilot') {
70
+ sections.push('---');
71
+ sections.push(`mode: ${request.capability}`);
72
+ sections.push('tools: []');
73
+ sections.push('---');
74
+ sections.push('');
75
+ }
76
+ else if (platform === 'cursor') {
77
+ sections.push('---');
78
+ sections.push(`description: Prodara ${request.capability} phase`);
79
+ sections.push('globs: ["**/*.prd"]');
80
+ sections.push('---');
81
+ sections.push('');
82
+ }
83
+ // Main prompt
84
+ sections.push(request.prompt);
85
+ // Context sections
86
+ if (request.context.constitution) {
87
+ sections.push('');
88
+ sections.push('## Constitution');
89
+ sections.push('');
90
+ sections.push(request.context.constitution);
91
+ }
92
+ if (request.context.graphSlice) {
93
+ sections.push('');
94
+ sections.push('## Graph Context');
95
+ sections.push('');
96
+ sections.push(request.context.graphSlice);
97
+ }
98
+ if (request.context.governance) {
99
+ sections.push('');
100
+ sections.push('## Governance Rules');
101
+ sections.push('');
102
+ sections.push(request.context.governance);
103
+ }
104
+ for (const [key, value] of Object.entries(request.context.additionalContext)) {
105
+ sections.push('');
106
+ sections.push(`## ${key}`);
107
+ sections.push('');
108
+ sections.push(value);
109
+ }
110
+ return sections.join('\n');
111
+ }
112
+ // ---------------------------------------------------------------------------
113
+ // Driver factory
114
+ // ---------------------------------------------------------------------------
115
+ export function createDriver(platform, root) {
116
+ if (platform === 'api') {
117
+ // API driver placeholder — will be implemented in C4
118
+ throw new Error('API driver not yet implemented. Use --headless with a configured API key.');
119
+ }
120
+ return new PromptFileDriver(platform, root);
121
+ }
122
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { AgentDriver, AgentRequest, AgentResponse, AgentPlatform } from './types.js';
2
+ import type { ApiProvider } from '../config/config.js';
3
+ export interface ApiClientConfig {
4
+ readonly provider: ApiProvider;
5
+ readonly apiKey: string;
6
+ readonly model: string;
7
+ readonly baseUrl?: string;
8
+ readonly maxRetries?: number;
9
+ readonly timeoutMs?: number;
10
+ }
11
+ export interface ChatMessage {
12
+ readonly role: 'system' | 'user' | 'assistant';
13
+ readonly content: string;
14
+ }
15
+ interface ChatCompletionResult {
16
+ readonly content: string;
17
+ readonly model: string;
18
+ readonly tokens_used: number;
19
+ }
20
+ export declare function chatCompletion(config: ApiClientConfig, messages: readonly ChatMessage[]): Promise<ChatCompletionResult>;
21
+ export declare class ApiDriver implements AgentDriver {
22
+ readonly platform: AgentPlatform;
23
+ private readonly config;
24
+ constructor(config: ApiClientConfig);
25
+ execute(request: AgentRequest): Promise<AgentResponse>;
26
+ }
27
+ export declare function createApiDriver(config: ApiClientConfig): ApiDriver;
28
+ export {};
29
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/agent/api-client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AACzG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAyDD,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAwD/B;AAMD,qBAAa,SAAU,YAAW,WAAW;IAC3C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,EAAE,eAAe;IAI7B,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CA+C7D;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAElE"}
@@ -0,0 +1,167 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Prodara Compiler — Headless API Client
3
+ // ---------------------------------------------------------------------------
4
+ // Minimal HTTP client for OpenAI and Anthropic chat completion APIs.
5
+ // Uses Node.js built-in fetch (no external dependencies).
6
+ // Supports retry with exponential backoff.
7
+ // ---------------------------------------------------------------------------
8
+ // Provider endpoints
9
+ // ---------------------------------------------------------------------------
10
+ const DEFAULT_URLS = {
11
+ openai: 'https://api.openai.com/v1/chat/completions',
12
+ anthropic: 'https://api.anthropic.com/v1/messages',
13
+ };
14
+ const DEFAULT_MODELS = {
15
+ openai: 'gpt-4o',
16
+ anthropic: 'claude-sonnet-4-20250514',
17
+ };
18
+ // ---------------------------------------------------------------------------
19
+ // Internal: build request body per provider
20
+ // ---------------------------------------------------------------------------
21
+ function buildOpenAIBody(messages, model) {
22
+ return JSON.stringify({ model, messages, temperature: 0 });
23
+ }
24
+ function buildAnthropicBody(messages, model) {
25
+ const system = messages.find((m) => m.role === 'system')?.content ?? '';
26
+ const userMessages = messages
27
+ .filter((m) => m.role !== 'system')
28
+ .map((m) => ({ role: m.role, content: m.content }));
29
+ return JSON.stringify({ model, system, messages: userMessages, max_tokens: 4096 });
30
+ }
31
+ // ---------------------------------------------------------------------------
32
+ // Internal: parse response per provider
33
+ // ---------------------------------------------------------------------------
34
+ function parseOpenAIResponse(data) {
35
+ const choices = data['choices'];
36
+ const content = choices?.[0]?.message?.content ?? '';
37
+ const usage = data['usage'];
38
+ const model = typeof data['model'] === 'string' ? data['model'] : '';
39
+ return { content, model, tokens_used: usage?.total_tokens ?? 0 };
40
+ }
41
+ function parseAnthropicResponse(data) {
42
+ const contentArr = data['content'];
43
+ const content = contentArr?.find((c) => c.type === 'text')?.text ?? '';
44
+ const usage = data['usage'];
45
+ const tokens = (usage?.input_tokens ?? 0) + (usage?.output_tokens ?? 0);
46
+ const model = typeof data['model'] === 'string' ? data['model'] : '';
47
+ return { content, model, tokens_used: tokens };
48
+ }
49
+ // ---------------------------------------------------------------------------
50
+ // Core: send chat completion request with retry
51
+ // ---------------------------------------------------------------------------
52
+ export async function chatCompletion(config, messages) {
53
+ const url = config.baseUrl ?? DEFAULT_URLS[config.provider];
54
+ const model = config.model || DEFAULT_MODELS[config.provider];
55
+ const maxRetries = config.maxRetries ?? 3;
56
+ const timeoutMs = config.timeoutMs ?? 60_000;
57
+ const body = config.provider === 'openai'
58
+ ? buildOpenAIBody(messages, model)
59
+ : buildAnthropicBody(messages, model);
60
+ const headers = { 'Content-Type': 'application/json' };
61
+ if (config.provider === 'openai') {
62
+ headers['Authorization'] = `Bearer ${config.apiKey}`;
63
+ }
64
+ else {
65
+ headers['x-api-key'] = config.apiKey;
66
+ headers['anthropic-version'] = '2023-06-01';
67
+ }
68
+ let lastError = null;
69
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
70
+ if (attempt > 0) {
71
+ const delay = Math.min(1000 * Math.pow(2, attempt - 1), 8000);
72
+ await sleep(delay);
73
+ }
74
+ try {
75
+ const controller = new AbortController();
76
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
77
+ const response = await fetch(url, {
78
+ method: 'POST',
79
+ headers,
80
+ body,
81
+ signal: controller.signal,
82
+ });
83
+ clearTimeout(timer);
84
+ if (!response.ok) {
85
+ const text = await response.text();
86
+ throw new Error(`API ${response.status}: ${text.slice(0, 200)}`);
87
+ }
88
+ const data = (await response.json());
89
+ return config.provider === 'openai'
90
+ ? parseOpenAIResponse(data)
91
+ : parseAnthropicResponse(data);
92
+ }
93
+ catch (err) {
94
+ lastError = err instanceof Error ? err : new Error(String(err));
95
+ if (attempt === maxRetries - 1)
96
+ break;
97
+ }
98
+ }
99
+ throw lastError ?? /* v8 ignore next */ new Error('API request failed');
100
+ }
101
+ // ---------------------------------------------------------------------------
102
+ // ApiDriver — implements AgentDriver for headless/CI use
103
+ // ---------------------------------------------------------------------------
104
+ export class ApiDriver {
105
+ platform = 'api';
106
+ config;
107
+ constructor(config) {
108
+ this.config = config;
109
+ }
110
+ async execute(request) {
111
+ const start = Date.now();
112
+ const messages = [];
113
+ // System message: constitution + governance
114
+ const systemParts = [];
115
+ if (request.context.constitution) {
116
+ systemParts.push(`# Constitution\n\n${request.context.constitution}`);
117
+ }
118
+ if (request.context.governance) {
119
+ systemParts.push(`# Governance\n\n${request.context.governance}`);
120
+ }
121
+ if (systemParts.length > 0) {
122
+ messages.push({ role: 'system', content: systemParts.join('\n\n') });
123
+ }
124
+ // User message: prompt + graph context
125
+ const userParts = [request.prompt];
126
+ if (request.context.graphSlice) {
127
+ userParts.push(`\n\n# Graph Context\n\n${request.context.graphSlice}`);
128
+ }
129
+ for (const [key, value] of Object.entries(request.context.additionalContext)) {
130
+ userParts.push(`\n\n# ${key}\n\n${value}`);
131
+ }
132
+ messages.push({ role: 'user', content: userParts.join('') });
133
+ try {
134
+ const result = await chatCompletion(this.config, messages);
135
+ const metadata = {
136
+ platform: 'api',
137
+ duration_ms: Date.now() - start,
138
+ tokens_used: result.tokens_used,
139
+ model: result.model,
140
+ };
141
+ return { content: result.content, status: 'success', metadata };
142
+ }
143
+ catch (err) {
144
+ const metadata = {
145
+ platform: 'api',
146
+ duration_ms: Date.now() - start,
147
+ tokens_used: null,
148
+ model: null,
149
+ };
150
+ const message = err instanceof Error ? err.message : /* v8 ignore next */ String(err);
151
+ return { content: message, status: 'error', metadata };
152
+ }
153
+ }
154
+ }
155
+ // ---------------------------------------------------------------------------
156
+ // Factory
157
+ // ---------------------------------------------------------------------------
158
+ export function createApiDriver(config) {
159
+ return new ApiDriver(config);
160
+ }
161
+ // ---------------------------------------------------------------------------
162
+ // Helpers
163
+ // ---------------------------------------------------------------------------
164
+ function sleep(ms) {
165
+ return new Promise((resolve) => setTimeout(resolve, ms));
166
+ }
167
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/agent/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { PromptFileDriver, createDriver } from './agent.js';
2
+ export { ApiDriver, createApiDriver, chatCompletion } from './api-client.js';
3
+ export type { ApiClientConfig, ChatMessage } from './api-client.js';
4
+ export type { AgentDriver, AgentRequest, AgentResponse, AgentPlatform, AgentCapability, AgentStatus, AgentContext, AgentMetadata, PromptFileOutput, } from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { PromptFileDriver, createDriver } from './agent.js';
2
+ export { ApiDriver, createApiDriver, chatCompletion } from './api-client.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { ProductGraph } from '../graph/graph-types.js';
2
+ import type { IncrementalSpec } from '../incremental/types.js';
3
+ import type { ReviewerAgent } from '../reviewers/reviewer.js';
4
+ import type { ReviewFinding } from '../reviewers/types.js';
5
+ import type { GraphSlice } from '../generator/contracts.js';
6
+ export type PartyRole = 'architect' | 'security' | 'developer' | 'qa' | 'ux';
7
+ export interface PartyAgent {
8
+ readonly role: PartyRole;
9
+ readonly reviewer: ReviewerAgent;
10
+ }
11
+ export interface PartyConfig {
12
+ readonly agents: readonly PartyAgent[];
13
+ readonly coordinationMode: 'sequential' | 'parallel';
14
+ readonly maxRounds: number;
15
+ }
16
+ export interface PartyRound {
17
+ readonly roundNumber: number;
18
+ readonly agentResults: readonly PartyAgentResult[];
19
+ readonly consensusReached: boolean;
20
+ }
21
+ export interface PartyAgentResult {
22
+ readonly role: PartyRole;
23
+ readonly findings: readonly ReviewFinding[];
24
+ }
25
+ export interface PartyResult {
26
+ readonly rounds: readonly PartyRound[];
27
+ readonly finalConsensus: boolean;
28
+ readonly totalFindings: number;
29
+ }
30
+ /**
31
+ * Get the graph slices relevant to a party role.
32
+ */
33
+ export declare function getSlicesForRole(graph: ProductGraph, role: PartyRole): readonly GraphSlice[];
34
+ /**
35
+ * Run a party-mode review session.
36
+ *
37
+ * Each round:
38
+ * 1. Each agent reviews the full graph (agents are reviewers with role context)
39
+ * 2. Findings are collected
40
+ * 3. Consensus is checked — no new critical/error findings → done
41
+ * 4. If max rounds reached → stop
42
+ */
43
+ export declare function runParty(graph: ProductGraph, spec: IncrementalSpec, config: PartyConfig): PartyResult;
44
+ /**
45
+ * Format party results for human output.
46
+ */
47
+ export declare function formatPartyHuman(result: PartyResult): string;
48
+ //# sourceMappingURL=party.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"party.d.ts","sourceRoot":"","sources":["../../src/agent/party.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAO3E,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,gBAAgB,EAAE,YAAY,GAAG,UAAU,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAcD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,UAAU,EAAE,CAE5F;AAMD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,WAAW,GAClB,WAAW,CA6Bb;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAsB5D"}