@poetic-ai/poetic 1.42.1-bootstrap.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 (781) hide show
  1. package/.github/SECURITY.md +47 -0
  2. package/.nvmrc +1 -0
  3. package/.poetic/README.md +37 -0
  4. package/.poetic/providers/catalog.json +12051 -0
  5. package/.poetic/providers/pricing.json +1272 -0
  6. package/.poetic/providers/registry.json +3369 -0
  7. package/CHANGELOG.md +552 -0
  8. package/CODE_OF_CONDUCT.md +40 -0
  9. package/CONTRIBUTING.md +23 -0
  10. package/INSTALL.md +454 -0
  11. package/LICENSE +21 -0
  12. package/README.md +474 -0
  13. package/dist/BasicOptimizationCompetitionRunner-5H5TBYO4.js +153 -0
  14. package/dist/ExecutionTracker-UVONC4C6.js +16 -0
  15. package/dist/OptimizationConfig-7DFY2TST.js +17 -0
  16. package/dist/OptimizationEngine-MXTSOSST.js +1597 -0
  17. package/dist/PromptStore-U6ZD3ZMQ.js +18 -0
  18. package/dist/actions-M3AESHFF.js +322 -0
  19. package/dist/agent-ingest-HO77TH26.js +53 -0
  20. package/dist/aggregator-DNCBINFO.js +12 -0
  21. package/dist/ai-judge-LDWHURKK.js +156 -0
  22. package/dist/allowlist-grounding-RO6HKUFI.js +16 -0
  23. package/dist/allowlist-utils-23V7TJ3G.js +28 -0
  24. package/dist/anchored-turn-service-GFYU6GCQ.js +489 -0
  25. package/dist/api-transport-FS3CQRMN.js +1087 -0
  26. package/dist/apply-completion-mode-JBT2CTQO.js +89 -0
  27. package/dist/artifact-migrator-23L45ISD.js +267 -0
  28. package/dist/ask-UYVZY7JH.js +135 -0
  29. package/dist/auth-CSQP5RHJ.js +67 -0
  30. package/dist/auth-E6XUNZ5M.js +68 -0
  31. package/dist/auth-KQLJPZ2E.js +134 -0
  32. package/dist/auth-OC4E6633.js +71 -0
  33. package/dist/auth-R3NQ2ZF5.js +78 -0
  34. package/dist/auth-S4CTX4GQ.js +44 -0
  35. package/dist/auth-YLH3S7EY.js +69 -0
  36. package/dist/auth-liveness-TDDEZY3T.js +46 -0
  37. package/dist/auto-optimizer-HA3T23SF.js +80 -0
  38. package/dist/autoloop-cleanup-JOGKTLWA.js +109 -0
  39. package/dist/autoloop-evidence-gates-ACB5YW5G.js +36 -0
  40. package/dist/autoloop-gate-policy-XZA5EQFN.js +175 -0
  41. package/dist/autoloop-helpers-EFJLBQUP.js +22 -0
  42. package/dist/autoloop-ledger-W7QO62PX.js +96 -0
  43. package/dist/autoloop-ledger-subscriber-Z5RW5EIE.js +162 -0
  44. package/dist/autoloop-run-defaults-FERGRZGP.js +19 -0
  45. package/dist/autoloop-run-lock-CT2NWSV3.js +197 -0
  46. package/dist/autoloop-success-OPR74YEX.js +85 -0
  47. package/dist/autoloop-termination-summary-RN75F422.js +58 -0
  48. package/dist/autoloop-trajectory-K5I45UBR.js +282 -0
  49. package/dist/autoloop-wall-clock-T7ZVIQOC.js +12 -0
  50. package/dist/autonomous-loop-controller-4QJMOIIN.js +4120 -0
  51. package/dist/backend-P3DAYRP7.js +29 -0
  52. package/dist/background-executor-CBN552V4.js +257 -0
  53. package/dist/backlog-execution-intent-U4XYPTV6.js +15 -0
  54. package/dist/backup-active-store-5WXG6SXT.js +17 -0
  55. package/dist/backup-telemetry-db-XGLXAA3N.js +254 -0
  56. package/dist/basic-competition-master-WXZHUT42.js +344 -0
  57. package/dist/branch-archive-manager-RP6FP3ZC.js +254 -0
  58. package/dist/branch-cleanup-manager-RSHAI7YR.js +20 -0
  59. package/dist/build-gate-YFASRB5Z.js +71 -0
  60. package/dist/change-summary-WY7J5TOX.js +33 -0
  61. package/dist/chunk-25QL3M3L.js +899 -0
  62. package/dist/chunk-2ABC6SEC.js +2626 -0
  63. package/dist/chunk-2AICM4P3.js +1763 -0
  64. package/dist/chunk-2AQUWJPW.js +225 -0
  65. package/dist/chunk-2DY5KNVM.js +276 -0
  66. package/dist/chunk-2QJ3H3L7.js +42 -0
  67. package/dist/chunk-2UH6VQRZ.js +328 -0
  68. package/dist/chunk-2VSQMRCB.js +18 -0
  69. package/dist/chunk-2XQXYBM2.js +130 -0
  70. package/dist/chunk-2YFUIER7.js +426 -0
  71. package/dist/chunk-2YXZCZTX.js +1160 -0
  72. package/dist/chunk-32VLDFRT.js +797 -0
  73. package/dist/chunk-34CNP2HB.js +148 -0
  74. package/dist/chunk-35P3W3JX.js +456 -0
  75. package/dist/chunk-36PEBZAF.js +18 -0
  76. package/dist/chunk-3733QTI7.js +6818 -0
  77. package/dist/chunk-3A5PDH5L.js +12513 -0
  78. package/dist/chunk-3AOKYKA7.js +22 -0
  79. package/dist/chunk-3BCUNHKF.js +475 -0
  80. package/dist/chunk-3C26DPFK.js +566 -0
  81. package/dist/chunk-3FLXLLB7.js +26 -0
  82. package/dist/chunk-3FOZ2VHV.js +100 -0
  83. package/dist/chunk-3G6FZCRF.js +106 -0
  84. package/dist/chunk-3JWNRJSB.js +736 -0
  85. package/dist/chunk-3LUMR3D3.js +156 -0
  86. package/dist/chunk-3M57DADF.js +44 -0
  87. package/dist/chunk-3S62LLWJ.js +543 -0
  88. package/dist/chunk-3VABAKT2.js +1784 -0
  89. package/dist/chunk-44N5WZZH.js +45 -0
  90. package/dist/chunk-45FPSA3B.js +125 -0
  91. package/dist/chunk-4BIPZBT7.js +791 -0
  92. package/dist/chunk-4BJ3O4RQ.js +929 -0
  93. package/dist/chunk-4BTDUT2S.js +42 -0
  94. package/dist/chunk-4CSS7WVI.js +143 -0
  95. package/dist/chunk-4CUY7AFY.js +247 -0
  96. package/dist/chunk-4HN6DF7V.js +1027 -0
  97. package/dist/chunk-4HXKHDNH.js +1064 -0
  98. package/dist/chunk-4KKI477Q.js +44 -0
  99. package/dist/chunk-4NA7FSTV.js +595 -0
  100. package/dist/chunk-4NXPXE62.js +84 -0
  101. package/dist/chunk-4SALLK63.js +9831 -0
  102. package/dist/chunk-4SHKPCGK.js +110 -0
  103. package/dist/chunk-4VJITV4P.js +445 -0
  104. package/dist/chunk-4W2NRXQL.js +1205 -0
  105. package/dist/chunk-4XICK3HN.js +784 -0
  106. package/dist/chunk-55EJVV3C.js +385 -0
  107. package/dist/chunk-5DLKYTQX.js +4003 -0
  108. package/dist/chunk-5EERLVZB.js +139 -0
  109. package/dist/chunk-5HDP7XZG.js +91 -0
  110. package/dist/chunk-5LAMRH4X.js +969 -0
  111. package/dist/chunk-5REDMNLZ.js +310 -0
  112. package/dist/chunk-5UCJARII.js +1984 -0
  113. package/dist/chunk-5WCQRDRB.js +588 -0
  114. package/dist/chunk-5WRLK5KW.js +700 -0
  115. package/dist/chunk-66AGFTBQ.js +131 -0
  116. package/dist/chunk-66CIO2SV.js +48 -0
  117. package/dist/chunk-6BM72ZMG.js +31 -0
  118. package/dist/chunk-6BTFXYRO.js +276 -0
  119. package/dist/chunk-6EDAJH2I.js +68 -0
  120. package/dist/chunk-6EQKFDBH.js +457 -0
  121. package/dist/chunk-6KMJKHIQ.js +2193 -0
  122. package/dist/chunk-6MFRHTRI.js +115 -0
  123. package/dist/chunk-6QMUKUHH.js +632 -0
  124. package/dist/chunk-6TZJRKNW.js +321 -0
  125. package/dist/chunk-6V7HGQFZ.js +20 -0
  126. package/dist/chunk-6Y5TWI7H.js +146 -0
  127. package/dist/chunk-6Y5U7UFY.js +91 -0
  128. package/dist/chunk-6ZLAK3XG.js +14 -0
  129. package/dist/chunk-72XCRQED.js +34 -0
  130. package/dist/chunk-72YTZMAM.js +589 -0
  131. package/dist/chunk-73NCTWKL.js +188 -0
  132. package/dist/chunk-77I6G4CO.js +1 -0
  133. package/dist/chunk-7D7QT3BE.js +688 -0
  134. package/dist/chunk-7DNSNKJV.js +78 -0
  135. package/dist/chunk-7FMJVYBS.js +307 -0
  136. package/dist/chunk-7GDRQBQC.js +419 -0
  137. package/dist/chunk-7IL4A2PP.js +948 -0
  138. package/dist/chunk-7NPSXSHO.js +975 -0
  139. package/dist/chunk-7PS6INZP.js +302 -0
  140. package/dist/chunk-7QCZSLBH.js +1 -0
  141. package/dist/chunk-7R2WLDOS.js +62 -0
  142. package/dist/chunk-7XV3QXLT.js +878 -0
  143. package/dist/chunk-A2WKSVX7.js +43 -0
  144. package/dist/chunk-A3YGID55.js +133 -0
  145. package/dist/chunk-A5MRWHMI.js +1604 -0
  146. package/dist/chunk-A722DEVA.js +14 -0
  147. package/dist/chunk-AG2Z2SUZ.js +554 -0
  148. package/dist/chunk-AHWAZ2MU.js +137 -0
  149. package/dist/chunk-AIAQ3HS3.js +119 -0
  150. package/dist/chunk-ALAB3PBR.js +2206 -0
  151. package/dist/chunk-APPNGGN7.js +365 -0
  152. package/dist/chunk-APV6MK5E.js +137 -0
  153. package/dist/chunk-AQNPGRWS.js +395 -0
  154. package/dist/chunk-ASEP3M2W.js +968 -0
  155. package/dist/chunk-AT4TNPWW.js +2931 -0
  156. package/dist/chunk-ATVKCSGT.js +250 -0
  157. package/dist/chunk-AX6GWE7V.js +47 -0
  158. package/dist/chunk-AZQILSNQ.js +1376 -0
  159. package/dist/chunk-B76KHLX6.js +13 -0
  160. package/dist/chunk-BAV2HJXS.js +194 -0
  161. package/dist/chunk-BBHRN366.js +89 -0
  162. package/dist/chunk-BCZAENOH.js +448 -0
  163. package/dist/chunk-BIGSACCY.js +19527 -0
  164. package/dist/chunk-BPYMCIVD.js +9243 -0
  165. package/dist/chunk-BSE4R6XD.js +322 -0
  166. package/dist/chunk-BVPWRDCO.js +2321 -0
  167. package/dist/chunk-BXI4NXL3.js +507 -0
  168. package/dist/chunk-C3L6YQ7P.js +147 -0
  169. package/dist/chunk-C57KJOUQ.js +121 -0
  170. package/dist/chunk-CCV7BPSY.js +118 -0
  171. package/dist/chunk-CD7ISXA4.js +826 -0
  172. package/dist/chunk-CE5OZBYY.js +21 -0
  173. package/dist/chunk-CFBIG37O.js +154 -0
  174. package/dist/chunk-CHQV73H5.js +408 -0
  175. package/dist/chunk-CJC6GZ46.js +457 -0
  176. package/dist/chunk-CJHRFSNY.js +924 -0
  177. package/dist/chunk-CKP2Q3TP.js +1905 -0
  178. package/dist/chunk-CLKSETWE.js +10 -0
  179. package/dist/chunk-CQM3A35X.js +844 -0
  180. package/dist/chunk-CSLAS5GW.js +4007 -0
  181. package/dist/chunk-CTLUBNCW.js +622 -0
  182. package/dist/chunk-CVMVZWG4.js +3544 -0
  183. package/dist/chunk-CYB6QDCT.js +263 -0
  184. package/dist/chunk-D5EP5D2W.js +26 -0
  185. package/dist/chunk-DC4ZYMXJ.js +115 -0
  186. package/dist/chunk-DCAVAABI.js +348 -0
  187. package/dist/chunk-DCYF7EKG.js +26 -0
  188. package/dist/chunk-DF5SLDE4.js +966 -0
  189. package/dist/chunk-DN7UMLF7.js +5678 -0
  190. package/dist/chunk-DSFM56OA.js +1203 -0
  191. package/dist/chunk-DTY4APYV.js +218 -0
  192. package/dist/chunk-E3NTPHEO.js +194 -0
  193. package/dist/chunk-E74LUIID.js +302 -0
  194. package/dist/chunk-EJ42BNGY.js +2904 -0
  195. package/dist/chunk-EJ4ZAWLV.js +305 -0
  196. package/dist/chunk-EJGCZGUF.js +1483 -0
  197. package/dist/chunk-EK2U3YEG.js +486 -0
  198. package/dist/chunk-ELMFYNV7.js +109 -0
  199. package/dist/chunk-ENRGKNR5.js +25 -0
  200. package/dist/chunk-EQGIDAUF.js +62 -0
  201. package/dist/chunk-EX3OM35G.js +20414 -0
  202. package/dist/chunk-F5JO7HAS.js +94 -0
  203. package/dist/chunk-F7ER6ANO.js +174 -0
  204. package/dist/chunk-FATUVIIN.js +374 -0
  205. package/dist/chunk-FC23CTXV.js +322 -0
  206. package/dist/chunk-FCNAS3W2.js +1033 -0
  207. package/dist/chunk-FD4ERYEG.js +22 -0
  208. package/dist/chunk-FDVZLG6Z.js +3104 -0
  209. package/dist/chunk-FEPIFY7D.js +511 -0
  210. package/dist/chunk-FEQ4HXL7.js +412 -0
  211. package/dist/chunk-FFH5HHJU.js +5351 -0
  212. package/dist/chunk-FH7WOJAE.js +79 -0
  213. package/dist/chunk-FKAUPHMR.js +96 -0
  214. package/dist/chunk-FRG57FPM.js +240 -0
  215. package/dist/chunk-FUVP64ER.js +31 -0
  216. package/dist/chunk-G2PTLLEL.js +284 -0
  217. package/dist/chunk-G35UYQ6Z.js +69 -0
  218. package/dist/chunk-G36W2T2S.js +1143 -0
  219. package/dist/chunk-G4THLFV3.js +148 -0
  220. package/dist/chunk-GAFJEYLK.js +29 -0
  221. package/dist/chunk-GCCAPO3S.js +118 -0
  222. package/dist/chunk-GG6KJYW6.js +85 -0
  223. package/dist/chunk-GHHFDU2U.js +55 -0
  224. package/dist/chunk-GHTZSQB7.js +57 -0
  225. package/dist/chunk-GJTWJNLV.js +1374 -0
  226. package/dist/chunk-GKN3HMN4.js +2809 -0
  227. package/dist/chunk-GNH3QGTL.js +1342 -0
  228. package/dist/chunk-GOAQ2I7Y.js +7000 -0
  229. package/dist/chunk-GSGD5E4C.js +30 -0
  230. package/dist/chunk-GXWAJQOJ.js +5011 -0
  231. package/dist/chunk-H2AYQIHW.js +224 -0
  232. package/dist/chunk-H6G7QRMQ.js +35 -0
  233. package/dist/chunk-H7JAGHZT.js +59 -0
  234. package/dist/chunk-HAC6EHZZ.js +79 -0
  235. package/dist/chunk-HE2KH6EQ.js +161 -0
  236. package/dist/chunk-HIHENQDX.js +66 -0
  237. package/dist/chunk-HIO33P3G.js +19 -0
  238. package/dist/chunk-HK4AQZSR.js +438 -0
  239. package/dist/chunk-HMVQIPH3.js +547 -0
  240. package/dist/chunk-HOYBYAOA.js +257 -0
  241. package/dist/chunk-HQLGXODD.js +123 -0
  242. package/dist/chunk-HQXYYUNY.js +1231 -0
  243. package/dist/chunk-HY3ESWCA.js +708 -0
  244. package/dist/chunk-I46EG2XQ.js +65 -0
  245. package/dist/chunk-I4NPDSCB.js +279 -0
  246. package/dist/chunk-I5WRT7ZR.js +514 -0
  247. package/dist/chunk-I6BL3PDH.js +1024 -0
  248. package/dist/chunk-IATQ7NBI.js +679 -0
  249. package/dist/chunk-IC7I6YIJ.js +301 -0
  250. package/dist/chunk-IDCSOZVN.js +78 -0
  251. package/dist/chunk-IEXU4RR6.js +5742 -0
  252. package/dist/chunk-IFCBYECK.js +112 -0
  253. package/dist/chunk-IFZCPEY2.js +66 -0
  254. package/dist/chunk-IKFP2KUR.js +48 -0
  255. package/dist/chunk-IP7BYVUV.js +338 -0
  256. package/dist/chunk-IRJ2I6KH.js +166 -0
  257. package/dist/chunk-IUXNGKA6.js +152 -0
  258. package/dist/chunk-IZYIQQ7X.js +53 -0
  259. package/dist/chunk-IZZK3H6I.js +2175 -0
  260. package/dist/chunk-J3J4P7RW.js +353 -0
  261. package/dist/chunk-J62KPGII.js +464 -0
  262. package/dist/chunk-J6P3FWWW.js +130 -0
  263. package/dist/chunk-JD6SIZED.js +712 -0
  264. package/dist/chunk-JEV6UI7H.js +537 -0
  265. package/dist/chunk-JKBHJQMT.js +434 -0
  266. package/dist/chunk-JLS65NUQ.js +14 -0
  267. package/dist/chunk-JOSYEJKY.js +141 -0
  268. package/dist/chunk-JPKSXKNB.js +94 -0
  269. package/dist/chunk-JQD5VYKR.js +483 -0
  270. package/dist/chunk-JSOWEFEQ.js +351 -0
  271. package/dist/chunk-JSWMRQYG.js +28 -0
  272. package/dist/chunk-K4XK7SGB.js +6783 -0
  273. package/dist/chunk-K54Y7MLK.js +160 -0
  274. package/dist/chunk-KAT4RXUT.js +521 -0
  275. package/dist/chunk-KDMKKIRK.js +103 -0
  276. package/dist/chunk-KM3F7SYE.js +702 -0
  277. package/dist/chunk-KNDYMVWN.js +102 -0
  278. package/dist/chunk-KNT72VR6.js +132 -0
  279. package/dist/chunk-KQEBSK3T.js +274 -0
  280. package/dist/chunk-KT6VHSPF.js +84 -0
  281. package/dist/chunk-KTMW65UX.js +14 -0
  282. package/dist/chunk-L4427KOE.js +26 -0
  283. package/dist/chunk-L6OM4A22.js +189 -0
  284. package/dist/chunk-L7E6XCRA.js +1042 -0
  285. package/dist/chunk-L7JZLXQL.js +173 -0
  286. package/dist/chunk-LAMKBTXX.js +40 -0
  287. package/dist/chunk-LDCF2MKN.js +132 -0
  288. package/dist/chunk-LEIIWPWQ.js +78 -0
  289. package/dist/chunk-LFTQVYBB.js +31 -0
  290. package/dist/chunk-LGHII5ET.js +23 -0
  291. package/dist/chunk-LH34OGSB.js +265 -0
  292. package/dist/chunk-LO3X5NLS.js +326 -0
  293. package/dist/chunk-LPITVM7M.js +339 -0
  294. package/dist/chunk-LR5IJIGV.js +810 -0
  295. package/dist/chunk-LUVKFFWR.js +315 -0
  296. package/dist/chunk-LWCBNGH6.js +35 -0
  297. package/dist/chunk-LWTN3WRV.js +260 -0
  298. package/dist/chunk-LZBBXYWF.js +1004 -0
  299. package/dist/chunk-M34PS4NE.js +2213 -0
  300. package/dist/chunk-M3HQYKQX.js +308 -0
  301. package/dist/chunk-MCPQNJMK.js +482 -0
  302. package/dist/chunk-MF5HP6XV.js +221 -0
  303. package/dist/chunk-MFADRRTR.js +112 -0
  304. package/dist/chunk-MN6PL4AN.js +120 -0
  305. package/dist/chunk-MQ4WA34C.js +206 -0
  306. package/dist/chunk-MTVZITQ2.js +185 -0
  307. package/dist/chunk-MWHF5V7U.js +223 -0
  308. package/dist/chunk-MWHLBPNU.js +211 -0
  309. package/dist/chunk-MWK5UZQ3.js +1068 -0
  310. package/dist/chunk-MYLH2S4G.js +64 -0
  311. package/dist/chunk-MZ5WYKNA.js +28 -0
  312. package/dist/chunk-N5DX4JAK.js +12 -0
  313. package/dist/chunk-NEDCMN7E.js +415 -0
  314. package/dist/chunk-NEQUQHOX.js +223 -0
  315. package/dist/chunk-NGK6PEOG.js +25 -0
  316. package/dist/chunk-NM6PMYY4.js +768 -0
  317. package/dist/chunk-NOZGR2QO.js +2373 -0
  318. package/dist/chunk-NP2V3L7K.js +226 -0
  319. package/dist/chunk-NPZJMUZ4.js +194 -0
  320. package/dist/chunk-NRLY536M.js +260 -0
  321. package/dist/chunk-NS33V3IM.js +51 -0
  322. package/dist/chunk-NWOYOA6H.js +378 -0
  323. package/dist/chunk-NWRUSEXG.js +322 -0
  324. package/dist/chunk-O6V4PNLO.js +63 -0
  325. package/dist/chunk-OGMSYL6J.js +227 -0
  326. package/dist/chunk-OIS7J26S.js +319 -0
  327. package/dist/chunk-OKBTRSZI.js +205 -0
  328. package/dist/chunk-OMX5VL43.js +79 -0
  329. package/dist/chunk-ON3G73BU.js +264 -0
  330. package/dist/chunk-OPYFYTWQ.js +220 -0
  331. package/dist/chunk-OQ6K46CK.js +1734 -0
  332. package/dist/chunk-OSDYVKHW.js +2440 -0
  333. package/dist/chunk-OUM5S64R.js +3429 -0
  334. package/dist/chunk-OWB7JXUS.js +751 -0
  335. package/dist/chunk-OYZYO7TV.js +47 -0
  336. package/dist/chunk-P47VN5F4.js +282 -0
  337. package/dist/chunk-P6VQROCO.js +594 -0
  338. package/dist/chunk-P7CQGPLS.js +30 -0
  339. package/dist/chunk-PA6BCSOX.js +2872 -0
  340. package/dist/chunk-PGSPX4SU.js +15 -0
  341. package/dist/chunk-PIKLF7BM.js +432 -0
  342. package/dist/chunk-PJWJ3SAV.js +22 -0
  343. package/dist/chunk-PKIFMV72.js +100 -0
  344. package/dist/chunk-PTH5E5XO.js +195 -0
  345. package/dist/chunk-PYITM4N2.js +79 -0
  346. package/dist/chunk-PZ5AY32C.js +10 -0
  347. package/dist/chunk-Q3RO7N35.js +45 -0
  348. package/dist/chunk-Q3WIC6GQ.js +2670 -0
  349. package/dist/chunk-QGJDMEOV.js +34 -0
  350. package/dist/chunk-QJYIHVXT.js +100 -0
  351. package/dist/chunk-QNOB37UH.js +58 -0
  352. package/dist/chunk-QOCOVLUH.js +462 -0
  353. package/dist/chunk-QTCJ5CC5.js +172 -0
  354. package/dist/chunk-QU6JQJMH.js +3063 -0
  355. package/dist/chunk-QVFV5IP2.js +232 -0
  356. package/dist/chunk-QVZMFDYG.js +29 -0
  357. package/dist/chunk-R2ZYWNW3.js +1581 -0
  358. package/dist/chunk-R4UWBC35.js +200 -0
  359. package/dist/chunk-R6W23LKN.js +254 -0
  360. package/dist/chunk-RAK5HOIJ.js +459 -0
  361. package/dist/chunk-RDFRCT64.js +168 -0
  362. package/dist/chunk-RE5VZDFQ.js +58 -0
  363. package/dist/chunk-RGROYC2G.js +638 -0
  364. package/dist/chunk-RGWHUI5E.js +68 -0
  365. package/dist/chunk-RHVG6UNL.js +205 -0
  366. package/dist/chunk-RI4EX2QE.js +18 -0
  367. package/dist/chunk-RIKFAWZF.js +71 -0
  368. package/dist/chunk-RJAAKDRX.js +17 -0
  369. package/dist/chunk-RSXSD4MH.js +1016 -0
  370. package/dist/chunk-RW7RVSDV.js +79 -0
  371. package/dist/chunk-RWREC3KJ.js +517 -0
  372. package/dist/chunk-RZY7RKM5.js +500 -0
  373. package/dist/chunk-S2MNWFAG.js +52 -0
  374. package/dist/chunk-S2VQCZO4.js +22 -0
  375. package/dist/chunk-S54MKU6V.js +117 -0
  376. package/dist/chunk-S77XPALC.js +239 -0
  377. package/dist/chunk-SCW4ZF6R.js +150 -0
  378. package/dist/chunk-SKHGYQ7W.js +405 -0
  379. package/dist/chunk-SNLBO4BF.js +247 -0
  380. package/dist/chunk-SP3LFU6B.js +60 -0
  381. package/dist/chunk-SQZRPY23.js +5181 -0
  382. package/dist/chunk-SSB5UQHA.js +4128 -0
  383. package/dist/chunk-STJOHHSF.js +605 -0
  384. package/dist/chunk-STV6LYYE.js +45 -0
  385. package/dist/chunk-SUN4OFTW.js +740 -0
  386. package/dist/chunk-SURZ2WFE.js +326 -0
  387. package/dist/chunk-SUZ7UYZH.js +1972 -0
  388. package/dist/chunk-SZ7DL357.js +1047 -0
  389. package/dist/chunk-T2SZELJL.js +624 -0
  390. package/dist/chunk-T6VPI2XP.js +10338 -0
  391. package/dist/chunk-TAJPCXSB.js +13 -0
  392. package/dist/chunk-TAOOYK3P.js +358 -0
  393. package/dist/chunk-TDSEX5CF.js +24 -0
  394. package/dist/chunk-TFTGP7Z7.js +174 -0
  395. package/dist/chunk-TGON4N4O.js +197 -0
  396. package/dist/chunk-TIBZPAD2.js +9924 -0
  397. package/dist/chunk-TK644IOG.js +1813 -0
  398. package/dist/chunk-TRSVUPCX.js +25 -0
  399. package/dist/chunk-TSPQONRT.js +4533 -0
  400. package/dist/chunk-TSXGRLPR.js +107 -0
  401. package/dist/chunk-TWYLVAS2.js +152 -0
  402. package/dist/chunk-U2S3YEX3.js +224 -0
  403. package/dist/chunk-U32HWI76.js +437 -0
  404. package/dist/chunk-U45RTRGY.js +818 -0
  405. package/dist/chunk-U62VCQGR.js +49 -0
  406. package/dist/chunk-UDMS5AD3.js +307 -0
  407. package/dist/chunk-UGX7GI37.js +94 -0
  408. package/dist/chunk-UH3JJSHK.js +1 -0
  409. package/dist/chunk-UHRBTZYY.js +208 -0
  410. package/dist/chunk-UHT2KRG5.js +193 -0
  411. package/dist/chunk-UI2F6DJ5.js +118 -0
  412. package/dist/chunk-UKMAFG7A.js +189 -0
  413. package/dist/chunk-UUH2RVKS.js +585 -0
  414. package/dist/chunk-UVBBFDFQ.js +270 -0
  415. package/dist/chunk-UXZF3B7T.js +75 -0
  416. package/dist/chunk-V6YLL5WA.js +3746 -0
  417. package/dist/chunk-V72RMBM4.js +48 -0
  418. package/dist/chunk-VBNCKCCI.js +16 -0
  419. package/dist/chunk-VCAUV5XQ.js +3679 -0
  420. package/dist/chunk-VDSH7O4Y.js +152 -0
  421. package/dist/chunk-VNSYKC25.js +24 -0
  422. package/dist/chunk-VTLNJQ44.js +133 -0
  423. package/dist/chunk-VV6HOXRC.js +302 -0
  424. package/dist/chunk-VVGEPBPS.js +218 -0
  425. package/dist/chunk-VXF4Q3FW.js +20 -0
  426. package/dist/chunk-W3ZGW3C5.js +331 -0
  427. package/dist/chunk-W4OMESPG.js +271 -0
  428. package/dist/chunk-WDUORIHF.js +877 -0
  429. package/dist/chunk-WDVTY4U6.js +148 -0
  430. package/dist/chunk-WGXYDLMX.js +4386 -0
  431. package/dist/chunk-WMPU2UOV.js +82 -0
  432. package/dist/chunk-WOEVVPDP.js +1125 -0
  433. package/dist/chunk-WTLMSPBQ.js +256 -0
  434. package/dist/chunk-X43NMU4Z.js +1124 -0
  435. package/dist/chunk-X5NTI5U5.js +368 -0
  436. package/dist/chunk-X6UIEADS.js +949 -0
  437. package/dist/chunk-XAONGNST.js +57 -0
  438. package/dist/chunk-XB5YLCLB.js +13 -0
  439. package/dist/chunk-XGYF2QMZ.js +351 -0
  440. package/dist/chunk-XHEKQENB.js +255 -0
  441. package/dist/chunk-XPHKYHO4.js +878 -0
  442. package/dist/chunk-XQD2B6BB.js +507 -0
  443. package/dist/chunk-XT2ZQVTC.js +558 -0
  444. package/dist/chunk-XUSRFFA7.js +1859 -0
  445. package/dist/chunk-XUXVDPSZ.js +50 -0
  446. package/dist/chunk-XV7NZL4B.js +57 -0
  447. package/dist/chunk-XXCGJGSQ.js +121 -0
  448. package/dist/chunk-XYGDZCB5.js +659 -0
  449. package/dist/chunk-XZAMZUX5.js +992 -0
  450. package/dist/chunk-XZE4XARH.js +563 -0
  451. package/dist/chunk-Y34DUC4A.js +1356 -0
  452. package/dist/chunk-Y3J4JMTU.js +61 -0
  453. package/dist/chunk-Y4RC2YFX.js +1270 -0
  454. package/dist/chunk-Y55LZN5U.js +52 -0
  455. package/dist/chunk-Y5677NDO.js +183 -0
  456. package/dist/chunk-YESZJFK6.js +220 -0
  457. package/dist/chunk-YGXKOBQQ.js +292 -0
  458. package/dist/chunk-YMX76IOS.js +31 -0
  459. package/dist/chunk-YOTXESEH.js +257 -0
  460. package/dist/chunk-YQAAKTVH.js +712 -0
  461. package/dist/chunk-YVORHQ2S.js +579 -0
  462. package/dist/chunk-YWNAHW24.js +1552 -0
  463. package/dist/chunk-Z476RATD.js +1689 -0
  464. package/dist/chunk-ZDTGECTN.js +235 -0
  465. package/dist/chunk-ZDTMICNY.js +316 -0
  466. package/dist/chunk-ZIPWI2LY.js +151 -0
  467. package/dist/chunk-ZIVYXF7A.js +2344 -0
  468. package/dist/chunk-ZX65UI5W.js +78 -0
  469. package/dist/chunk-ZYG7GGKO.js +218 -0
  470. package/dist/chunk-ZZZUL4OF.js +38 -0
  471. package/dist/cli-utils-HUOTBRM3.js +40 -0
  472. package/dist/cli-validation-WLXWLUJL.js +111 -0
  473. package/dist/commit-utils-3QV2P6RA.js +202 -0
  474. package/dist/compete-config-resolver-SNH3TT2Q.js +76 -0
  475. package/dist/compete-request-XWNPOARL.js +364 -0
  476. package/dist/compete-results-PAP67LDR.js +208 -0
  477. package/dist/competition-outcome-tracker-GOZXNAQU.js +38 -0
  478. package/dist/config-HWHUNA72.js +166 -0
  479. package/dist/config-audit-EL3GHXS7.js +360 -0
  480. package/dist/config-explain-TNILDEVJ.js +12 -0
  481. package/dist/config-loader-VPFPFO4B.js +38 -0
  482. package/dist/config-manager-L3VRNTSG.js +67 -0
  483. package/dist/config-validator-SIIQEOFQ.js +72 -0
  484. package/dist/cost-7CX37DU3.js +53 -0
  485. package/dist/coverage-orchestrator-MNKHD6YC.js +772 -0
  486. package/dist/coverage-scanner-YVD62MLH.js +12 -0
  487. package/dist/createCompetitionRunner-LJG6ZQSO.js +46 -0
  488. package/dist/data-migration-state-VJK64DLT.js +31 -0
  489. package/dist/db-migrator-XSEIOGWY.js +34 -0
  490. package/dist/discovery-JGYGDD25.js +25 -0
  491. package/dist/doctor-CGBCD7IQ.js +186 -0
  492. package/dist/domain-analyzer-DL6BDR2N.js +29 -0
  493. package/dist/ensure-initialized-4BY73HLE.js +52 -0
  494. package/dist/entry.js +940 -0
  495. package/dist/environment-IGVH5X53.js +81 -0
  496. package/dist/error-parser-core-PPZ36A4S.js +50 -0
  497. package/dist/escalation-ladder-NWY5BJ57.js +130 -0
  498. package/dist/evaluation-context-KMWDSDYD.js +35 -0
  499. package/dist/evidence-plan-resolver-YIVH76PU.js +85 -0
  500. package/dist/execution-data-writer-OHAQ7G5H.js +53 -0
  501. package/dist/execution-policy-applier-ZHD3DCF3.js +31 -0
  502. package/dist/execution-preflight-Z4Y64V3I.js +209 -0
  503. package/dist/execution-roles-KBH2MC3M.js +66 -0
  504. package/dist/exit-code-error-Z4SW2DVK.js +14 -0
  505. package/dist/external-temp-cleanup-N2RZH4QP.js +311 -0
  506. package/dist/factory-IYBMCZG7.js +149 -0
  507. package/dist/file-utils-XIVR2ZMA.js +47 -0
  508. package/dist/flywheel-autoloop-executor-R3KD2G4D.js +249 -0
  509. package/dist/flywheel-competition-executor-XCFGVJSK.js +259 -0
  510. package/dist/flywheel-executor-LTSIZN2L.js +369 -0
  511. package/dist/flywheel-git-isolation-CZ5YVVZY.js +48 -0
  512. package/dist/flywheel-manifest-5UC4VBMA.js +108 -0
  513. package/dist/flywheel-model-defaults-7CVKP53V.js +27 -0
  514. package/dist/flywheel-preflight-6E33DJDK.js +104 -0
  515. package/dist/flywheel-resume-7HELH7QS.js +23 -0
  516. package/dist/flywheel-safety-7U7DPOAP.js +28 -0
  517. package/dist/flywheel-scope-decision-ZHKF6ZIN.js +11 -0
  518. package/dist/get-telemetry-logger-AZ46EPRP.js +73 -0
  519. package/dist/git-worktree-IY6V6DUO.js +18 -0
  520. package/dist/github-pr-manager-4XUO2YTM.js +211 -0
  521. package/dist/guidance-profile-config-E7XJL2VP.js +117 -0
  522. package/dist/guidance-profile-renderer-QK2YMAAP.js +21 -0
  523. package/dist/index-query-4JEUKA44.js +31 -0
  524. package/dist/index.js +108644 -0
  525. package/dist/instructions-CM6THDV7.js +64 -0
  526. package/dist/invoke-provider-auth-V5TC5UDS.js +223 -0
  527. package/dist/judge-scoring.json +80 -0
  528. package/dist/judge-test.js +555 -0
  529. package/dist/lab-mode-OTWVHN63.js +39 -0
  530. package/dist/lab-utils-VA6VXNOV.js +23 -0
  531. package/dist/linux-host-class-UY4KVLFD.js +29 -0
  532. package/dist/llm-judge-executor-34YPIRJ7.js +133 -0
  533. package/dist/local-executor-LJJSCWZX.js +223 -0
  534. package/dist/logger-6PRYM56M.js +72 -0
  535. package/dist/loop-spec-XTLQAVZ7.js +191 -0
  536. package/dist/manager-2HJG5CLT.js +25 -0
  537. package/dist/matrix-prompt-builder-LHDTJ4TY.js +497 -0
  538. package/dist/matrix-result-parser-7W35EUOV.js +15 -0
  539. package/dist/metadata-HQ43NDEK.js +22 -0
  540. package/dist/model-invocations-db-QBO4Y7WZ.js +38 -0
  541. package/dist/monitor-MCI3F4PX.js +72 -0
  542. package/dist/next-HQKDXIIR.js +90 -0
  543. package/dist/next-JC3V2UCS.js +69 -0
  544. package/dist/optimization-config-resolver-QPSFLCJU.js +75 -0
  545. package/dist/package-3YCWIQQ5.js +10 -0
  546. package/dist/parallel-orchestrator-NL7YJJU2.js +297 -0
  547. package/dist/parallel-worker.js +279 -0
  548. package/dist/parse-git-status-PIAF3OTP.js +10 -0
  549. package/dist/path-security-ETTH6TZL.js +39 -0
  550. package/dist/pattern-bank-UNJR5ADV.js +15 -0
  551. package/dist/plan-backlog-list-fast-DZK24LSZ.js +270 -0
  552. package/dist/plan-backlog-show-fast-63GBBH6Q.js +406 -0
  553. package/dist/plan-sprint-list-fast-TJ6ZUF5E.js +162 -0
  554. package/dist/plan-sprint-status-fast-YWE5X3NG.js +208 -0
  555. package/dist/plan-task-status-fast-K22BTTBW.js +349 -0
  556. package/dist/plan-to-flywheel-VFGCPINA.js +456 -0
  557. package/dist/planning-backlog-Y6TIJYWU.js +319 -0
  558. package/dist/poetic-root-V5DNXEAE.js +17 -0
  559. package/dist/preflight-OPANWMME.js +12 -0
  560. package/dist/process-registry-PDZJPTAS.js +27 -0
  561. package/dist/process-scanner-C22SYXYD.js +22 -0
  562. package/dist/processes-KMQUD7HY.js +29 -0
  563. package/dist/processes-json-fast-IBDXZ6WW.js +135 -0
  564. package/dist/profile-2XP3FWH2.js +149 -0
  565. package/dist/prompts-EPAAAMMF.js +168 -0
  566. package/dist/protected-branches-RNTEX7ET.js +57 -0
  567. package/dist/provider-aware-resource-manager-QBTZJMNP.js +18 -0
  568. package/dist/provider-matrix-KWTYA5QV.js +154 -0
  569. package/dist/provider-matrix-renderer-MZDWKKID.js +139 -0
  570. package/dist/provider-output-forwarding-DERID3TP.js +30 -0
  571. package/dist/provider-registry-J5NRBJKI.js +128 -0
  572. package/dist/provider-temp-cleanup-KYGLF6YU.js +14 -0
  573. package/dist/prune-engine-Q6E2DXBN.js +451 -0
  574. package/dist/quality-gate-33SHK43X.js +70 -0
  575. package/dist/quickstart-E32SODTA.js +62 -0
  576. package/dist/readiness-REWW7OSV.js +96 -0
  577. package/dist/registry-N6L36RE2.js +153 -0
  578. package/dist/repair-helpers-TTV5FEF4.js +117 -0
  579. package/dist/repo-root-2IGD4H7X.js +22 -0
  580. package/dist/resolution-engine-LXQYDSKS.js +127 -0
  581. package/dist/resolve-provider-cli-O2P6XZBZ.js +35 -0
  582. package/dist/restore-telemetry-db-BQL6DTQF.js +360 -0
  583. package/dist/result-streamer-WEHW476R.js +19 -0
  584. package/dist/routing-events-DHPUZDDF.js +27 -0
  585. package/dist/routing-history-store-UWCEXAP3.js +46 -0
  586. package/dist/routing-planner-VGQU35QM.js +160 -0
  587. package/dist/run-poetic-tui-ZZXFDOQ4.js +13517 -0
  588. package/dist/run-simulation.js +376 -0
  589. package/dist/runner-2YPKOJ6A.js +1092 -0
  590. package/dist/runner-HEJJ65AJ.js +1571 -0
  591. package/dist/safety-OCC4KJJR.js +64 -0
  592. package/dist/safety-stanza-BSVE6OJU.js +60 -0
  593. package/dist/sandbox-3AG2WJLM.js +94 -0
  594. package/dist/sandbox-5JOFBS75.js +81 -0
  595. package/dist/schema-extensions.sql +234 -0
  596. package/dist/security-2KI5XNDG.js +17 -0
  597. package/dist/setup-bb-plugin-QAQWZCV5.js +738 -0
  598. package/dist/setup-claude-code-P7BTTSPO.js +317 -0
  599. package/dist/setup-temp-cleanup-GASCWZ2I.js +20 -0
  600. package/dist/shared-utils-D6U6UREP.js +37 -0
  601. package/dist/simple-artifact-goal-OTXNGZY6.js +25 -0
  602. package/dist/sprint-QGXLN3SO.js +338 -0
  603. package/dist/sprint-bridge-FNKQCJGL.js +68 -0
  604. package/dist/sprint-execution-service-4ELKNJDS.js +311 -0
  605. package/dist/sprint-manager-7TNCXCIX.js +91 -0
  606. package/dist/sqlite-wrapper-UDWCTNLJ.js +17 -0
  607. package/dist/stale-cleanup-orchestrator-H5XKGZP2.js +62 -0
  608. package/dist/storage-access-F6ALDN4S.js +22 -0
  609. package/dist/synthesis-TGQUVAW3.js +185 -0
  610. package/dist/task-classifier-DZIRBSS2.js +494 -0
  611. package/dist/task-list-fast-PJ2EXVZE.js +147 -0
  612. package/dist/task-manager-5742GMJK.js +93 -0
  613. package/dist/task-splitter-6MBXSWF6.js +79 -0
  614. package/dist/task-type-detector-OLVOMXZO.js +21 -0
  615. package/dist/task-type-resolver-4HG6TXFV.js +42 -0
  616. package/dist/telemetry-JX7EMNOZ.js +131 -0
  617. package/dist/telemetry-health-tracker-DMSSGBZ2.js +11 -0
  618. package/dist/telemetry-path-resolver-7ICSG276.js +28 -0
  619. package/dist/telemetry-reliability-2MLJ4J6B.js +125 -0
  620. package/dist/token-estimator-PDU345YE.js +37 -0
  621. package/dist/transports-3UEO6C5Y.js +255 -0
  622. package/dist/unified-cost-tracker-F3W5NMPG.js +35 -0
  623. package/dist/unified-state-cleanup-LJPF2BOW.js +276 -0
  624. package/dist/universal-cost-calculator-BAJV35GA.js +42 -0
  625. package/dist/user-agents-GHUGCSKN.js +22 -0
  626. package/dist/variant-delivery-state-XCOYVCM4.js +33 -0
  627. package/dist/variant-state-cleanup-QIEKRULB.js +280 -0
  628. package/dist/variant-success-PJXWE3ZV.js +12 -0
  629. package/dist/variant-worker-HPTUA37Z.js +4196 -0
  630. package/dist/variant-worker.js +24 -0
  631. package/dist/variants-2HDYZOCG.js +233 -0
  632. package/dist/verification-toolchains-VVKT3GBF.js +28 -0
  633. package/dist/verify-commands-5F6CJV4B.js +37 -0
  634. package/dist/warning-EGQGUUIO.js +12 -0
  635. package/dist/work-edge-RWEDWJZF.js +49 -0
  636. package/dist/work-item-writer-WHAVZXAY.js +19 -0
  637. package/dist/worker-AGWHD4D2.js +1435 -0
  638. package/dist/worker.js +19 -0
  639. package/dist/worktree-metrics-3DFUYVYE.js +26 -0
  640. package/dist/writeback-VZKHYHSN.js +44 -0
  641. package/docs/CLI_REFERENCE.md +7040 -0
  642. package/docs/PROVIDER_SETUP.md +1570 -0
  643. package/docs/README.md +96 -0
  644. package/docs/TROUBLESHOOTING.md +2232 -0
  645. package/docs/getting-started/QUICK_START.md +294 -0
  646. package/docs/getting-started/README.md +188 -0
  647. package/docs/getting-started/SETUP.md +52 -0
  648. package/docs/reference/AGENT_CONTEXT.md +38 -0
  649. package/docs/reference/PROVIDER_RELEASE_TIERS.md +34 -0
  650. package/docs/reference/README.md +381 -0
  651. package/docs/reference/SECURITY.md +262 -0
  652. package/integrations/bb-plugin-poetic/README.md +362 -0
  653. package/integrations/bb-plugin-poetic/app.css +341 -0
  654. package/integrations/bb-plugin-poetic/app.tsx +5059 -0
  655. package/integrations/bb-plugin-poetic/package.json +45 -0
  656. package/integrations/bb-plugin-poetic/server.ts +444 -0
  657. package/integrations/bb-plugin-poetic/src/adapter.ts +3312 -0
  658. package/integrations/bb-plugin-poetic/src/backlog-authoring-model.ts +150 -0
  659. package/integrations/bb-plugin-poetic/src/backlog-authoring-schema.ts +355 -0
  660. package/integrations/bb-plugin-poetic/src/backlog-authoring-service.ts +419 -0
  661. package/integrations/bb-plugin-poetic/src/backlog-authoring-view.ts +1026 -0
  662. package/integrations/bb-plugin-poetic/src/competition-defaults-schema.ts +122 -0
  663. package/integrations/bb-plugin-poetic/src/competition-defaults-service.ts +105 -0
  664. package/integrations/bb-plugin-poetic/src/competition-defaults-view.ts +138 -0
  665. package/integrations/bb-plugin-poetic/src/contract.ts +615 -0
  666. package/integrations/bb-plugin-poetic/src/finalize-model.ts +205 -0
  667. package/integrations/bb-plugin-poetic/src/finalize-schema.ts +158 -0
  668. package/integrations/bb-plugin-poetic/src/finalize-service.ts +382 -0
  669. package/integrations/bb-plugin-poetic/src/finalize-view.ts +159 -0
  670. package/integrations/bb-plugin-poetic/src/judge-operations-readback.ts +303 -0
  671. package/integrations/bb-plugin-poetic/src/judge-operations-schema.ts +33 -0
  672. package/integrations/bb-plugin-poetic/src/judge-operations-view.ts +459 -0
  673. package/integrations/bb-plugin-poetic/src/model.ts +1302 -0
  674. package/integrations/bb-plugin-poetic/src/monitor-service.ts +233 -0
  675. package/integrations/bb-plugin-poetic/src/panel-read-ux.ts +97 -0
  676. package/integrations/bb-plugin-poetic/src/patch-preview-schema.ts +166 -0
  677. package/integrations/bb-plugin-poetic/src/patch-preview-service.ts +480 -0
  678. package/integrations/bb-plugin-poetic/src/patch-preview-view.ts +109 -0
  679. package/integrations/bb-plugin-poetic/src/planning-readback.ts +204 -0
  680. package/integrations/bb-plugin-poetic/src/planning-service.ts +594 -0
  681. package/integrations/bb-plugin-poetic/src/planning-workspace-schema.ts +95 -0
  682. package/integrations/bb-plugin-poetic/src/planning-workspace.ts +323 -0
  683. package/integrations/bb-plugin-poetic/src/poll-handoff.ts +136 -0
  684. package/integrations/bb-plugin-poetic/src/project-target-server.ts +21 -0
  685. package/integrations/bb-plugin-poetic/src/project-target.ts +45 -0
  686. package/integrations/bb-plugin-poetic/src/reference-index.ts +192 -0
  687. package/integrations/bb-plugin-poetic/src/repository-schema.ts +30 -0
  688. package/integrations/bb-plugin-poetic/src/result-explorer-view.ts +597 -0
  689. package/integrations/bb-plugin-poetic/src/result-readback-model.ts +163 -0
  690. package/integrations/bb-plugin-poetic/src/result-readback-schema.ts +319 -0
  691. package/integrations/bb-plugin-poetic/src/result-readback-service.ts +333 -0
  692. package/integrations/bb-plugin-poetic/src/run-page-view.ts +177 -0
  693. package/integrations/bb-plugin-poetic/src/setup-config-schema.ts +291 -0
  694. package/integrations/bb-plugin-poetic/src/setup-config-service.ts +590 -0
  695. package/integrations/bb-plugin-poetic/src/setup-config-view.ts +413 -0
  696. package/integrations/bb-plugin-poetic/src/sprint-close-model.ts +150 -0
  697. package/integrations/bb-plugin-poetic/src/sprint-close-schema.ts +136 -0
  698. package/integrations/bb-plugin-poetic/src/sprint-close-service.ts +341 -0
  699. package/integrations/bb-plugin-poetic/src/sprint-close-view.ts +116 -0
  700. package/integrations/bb-plugin-poetic/src/sprint-composition-model.ts +714 -0
  701. package/integrations/bb-plugin-poetic/src/sprint-composition-readback.ts +231 -0
  702. package/integrations/bb-plugin-poetic/src/sprint-composition-schema.ts +601 -0
  703. package/integrations/bb-plugin-poetic/src/sprint-composition-service.ts +775 -0
  704. package/integrations/bb-plugin-poetic/src/sprint-composition-view.ts +1221 -0
  705. package/integrations/bb-plugin-poetic/src/task-authoring-model.ts +567 -0
  706. package/integrations/bb-plugin-poetic/src/task-authoring-schema.ts +635 -0
  707. package/integrations/bb-plugin-poetic/src/task-authoring-service.ts +842 -0
  708. package/integrations/bb-plugin-poetic/src/task-authoring-view.ts +1227 -0
  709. package/integrations/bb-plugin-poetic/src/task-detail-readback.ts +56 -0
  710. package/integrations/bb-plugin-poetic/src/task-detail-schema.ts +144 -0
  711. package/integrations/bb-plugin-poetic/src/task-navigation.ts +446 -0
  712. package/integrations/bb-plugin-poetic/src/workbench-route.ts +74 -0
  713. package/integrations/bb-plugin-poetic/tests/host-contract.test.ts +773 -0
  714. package/integrations/bb-plugin-poetic/tsconfig.json +18 -0
  715. package/integrations/bb-plugin-poetic/types/PROVENANCE.json +52 -0
  716. package/integrations/bb-plugin-poetic/types/bb-plugin-sdk-app.d.ts +1444 -0
  717. package/integrations/bb-plugin-poetic/types/bb-plugin-sdk.d.ts +13030 -0
  718. package/integrations/bb-plugin-poetic/vitest.host.config.ts +71 -0
  719. package/package.json +331 -0
  720. package/schemas/README.md +80 -0
  721. package/schemas/config-v1.schema.json +136 -0
  722. package/schemas/execution-config.schema.json +47 -0
  723. package/schemas/judge-scoring.schema.json +370 -0
  724. package/schemas/poetic.config.schema.json +2214 -0
  725. package/schemas/provider-config.schema.json +203 -0
  726. package/schemas/telemetry-config.schema.json +79 -0
  727. package/schemas/user-preferences.schema.json +141 -0
  728. package/scripts/assert-node-runtime.mjs +140 -0
  729. package/scripts/preflight-native.mjs +49 -0
  730. package/scripts/preinstall-node-check.mjs +78 -0
  731. package/scripts/setup-git-hooks.mjs +24 -0
  732. package/scripts/sync.sh +2722 -0
  733. package/scripts/write-node-launcher.sh +108 -0
  734. package/src/resources/gemini/slash-packs/default/plan.toml +15 -0
  735. package/src/resources/gemini/slash-packs/default/summary.toml +16 -0
  736. package/src/resources/gemini/slash-packs/default/tests.toml +16 -0
  737. package/templates/.poetic/README.md +37 -0
  738. package/templates/.poetic/agents/README.md +296 -0
  739. package/templates/.poetic/agents/api-documenter.md +147 -0
  740. package/templates/.poetic/agents/backend-architect.md +31 -0
  741. package/templates/.poetic/agents/code-reviewer.md +157 -0
  742. package/templates/.poetic/agents/data-scientist.md +179 -0
  743. package/templates/.poetic/agents/database-optimizer.md +145 -0
  744. package/templates/.poetic/agents/debugger.md +31 -0
  745. package/templates/.poetic/agents/deployment-engineer.md +164 -0
  746. package/templates/.poetic/agents/devops-troubleshooter.md +139 -0
  747. package/templates/.poetic/agents/frontend-developer.md +150 -0
  748. package/templates/.poetic/agents/javascript-pro.md +36 -0
  749. package/templates/.poetic/agents/performance-engineer.md +151 -0
  750. package/templates/.poetic/agents/python-pro.md +137 -0
  751. package/templates/.poetic/agents/test-automator.md +147 -0
  752. package/templates/.poetic/agents/typescript-pro.md +34 -0
  753. package/templates/.poetic/config/poetic.config.jsonc +69 -0
  754. package/templates/.poetic/config/project-context.template.json +6 -0
  755. package/templates/.poetic/config/task-type-aliases.presets/kanban.yaml +14 -0
  756. package/templates/.poetic/config/task-type-aliases.presets/scrum.yaml +17 -0
  757. package/templates/.poetic/config/task-type-aliases.presets/xp.yaml +12 -0
  758. package/templates/.poetic/config/task-type-aliases.yaml +28 -0
  759. package/templates/.poetic/gitignore.template +55 -0
  760. package/templates/.poetic/task-types/analysis.yaml +40 -0
  761. package/templates/.poetic/task-types/architecture.yaml +38 -0
  762. package/templates/.poetic/task-types/doc.yaml +35 -0
  763. package/templates/.poetic/task-types/feature.yaml +23 -0
  764. package/templates/.poetic/task-types/general.yaml +6 -0
  765. package/templates/.poetic/task-types/security.yaml +39 -0
  766. package/templates/AGENTS.template.md +99 -0
  767. package/templates/CLAUDE.template.md +1 -0
  768. package/templates/GEMINI.template.md +1 -0
  769. package/templates/builtin-workflows/code-review.yaml +73 -0
  770. package/templates/builtin-workflows/compete-streak.yaml +78 -0
  771. package/templates/builtin-workflows/hello-verify.yaml +10 -0
  772. package/templates/builtin-workflows/judge-regression.yaml +114 -0
  773. package/templates/builtin-workflows/skills/code-review/SKILL.md +60 -0
  774. package/templates/builtin-workflows/skills/hello-verify/SKILL.md +6 -0
  775. package/templates/guard-kit/GUARD_SETUP.md.template +255 -0
  776. package/templates/guard-kit/check.mjs.template +777 -0
  777. package/templates/guard-kit/config.json.template +6 -0
  778. package/templates/guard-kit/poetic-guard.yml.template +189 -0
  779. package/templates/profiles/README.md +56 -0
  780. package/templates/profiles/frontier-claude.json +27 -0
  781. package/templates/profiles/frontier-codex.json +26 -0
@@ -0,0 +1,818 @@
1
+ import {
2
+ parseJsonWithContext
3
+ } from "./chunk-QVZMFDYG.js";
4
+ import {
5
+ resolvePoeticDirFromContext
6
+ } from "./chunk-UI2F6DJ5.js";
7
+ import {
8
+ emitWarning
9
+ } from "./chunk-EJGCZGUF.js";
10
+
11
+ // src/core/storage/ExecutionTracker.ts
12
+ import crypto from "crypto";
13
+ import fs from "fs";
14
+ import path from "path";
15
+ import { fileURLToPath } from "url";
16
+ import Database from "better-sqlite3";
17
+
18
+ // src/core/storage/schema-migrations.ts
19
+ function tableExists(db, tableName) {
20
+ const row = db.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(tableName);
21
+ return row !== void 0;
22
+ }
23
+ function hasCompositePromptVersionFk(db) {
24
+ const rows = db.prepare("PRAGMA foreign_key_list(prompt_executions)").all();
25
+ const groups = /* @__PURE__ */ new Map();
26
+ for (const row of rows.filter((r) => r.table === "prompt_versions")) {
27
+ const group = groups.get(row.id) ?? [];
28
+ group.push(row);
29
+ groups.set(row.id, group);
30
+ }
31
+ return Array.from(groups.values()).some((group) => {
32
+ const mapping = new Map(group.map((row) => [row.from, row.to]));
33
+ return mapping.get("prompt_id") === "prompt_id" && mapping.get("version_id") === "id";
34
+ });
35
+ }
36
+ function supportsEphemeralExecutions(db) {
37
+ const rows = db.prepare("PRAGMA table_info(prompt_executions)").all();
38
+ const columns = new Map(rows.map((row) => [row.name, row]));
39
+ return columns.get("prompt_id")?.notnull === 0 && columns.get("version_id")?.notnull === 0 && columns.has("task_hash") && columns.has("input_provenance");
40
+ }
41
+ function columnNames(db, tableName) {
42
+ const rows = db.prepare(`PRAGMA table_info(${tableName})`).all();
43
+ return new Set(rows.map((row) => row.name));
44
+ }
45
+ function quoted(name) {
46
+ return `"${name.replaceAll('"', '""')}"`;
47
+ }
48
+ function buildSelectList(sourceColumns, columns) {
49
+ return columns.map((column) => sourceColumns.has(column.name) ? quoted(column.name) : column.fallback).join(", ");
50
+ }
51
+ var EXECUTION_COLUMNS = [
52
+ { name: "id", fallback: "''" },
53
+ { name: "prompt_id", fallback: "''" },
54
+ { name: "version_id", fallback: "''" },
55
+ { name: "task_hash", fallback: "'legacy:' || id" },
56
+ { name: "input_provenance", fallback: "'legacy'" },
57
+ { name: "execution_mode", fallback: "'compete'" },
58
+ { name: "variant_count", fallback: "1" },
59
+ { name: "started_at", fallback: "CURRENT_TIMESTAMP" },
60
+ { name: "completed_at", fallback: "NULL" },
61
+ { name: "duration_seconds", fallback: "NULL" },
62
+ { name: "status", fallback: "'completed'" },
63
+ { name: "winning_variant_id", fallback: "NULL" },
64
+ { name: "success_rate", fallback: "NULL" },
65
+ { name: "avg_completeness", fallback: "NULL" },
66
+ { name: "avg_code_delivery_rate", fallback: "NULL" },
67
+ { name: "avg_duration", fallback: "NULL" },
68
+ { name: "total_cost_usd", fallback: "NULL" },
69
+ { name: "total_tokens", fallback: "NULL" },
70
+ { name: "task_description", fallback: "NULL" },
71
+ { name: "task_complexity", fallback: "NULL" },
72
+ { name: "project_context", fallback: "NULL" },
73
+ { name: "created_at", fallback: "CURRENT_TIMESTAMP" },
74
+ { name: "updated_at", fallback: "CURRENT_TIMESTAMP" }
75
+ ];
76
+ var VARIANT_COLUMNS = [
77
+ { name: "id", fallback: "NULL" },
78
+ { name: "execution_id", fallback: "''" },
79
+ { name: "variant_name", fallback: "''" },
80
+ { name: "provider", fallback: "''" },
81
+ { name: "model", fallback: "NULL" },
82
+ { name: "success", fallback: "0" },
83
+ { name: "completeness", fallback: "NULL" },
84
+ { name: "code_delivered", fallback: "NULL" },
85
+ { name: "duration_seconds", fallback: "NULL" },
86
+ { name: "error_count", fallback: "0" },
87
+ { name: "warning_count", fallback: "0" },
88
+ { name: "test_results", fallback: "NULL" },
89
+ { name: "cost_usd", fallback: "NULL" },
90
+ { name: "tokens_used", fallback: "NULL" },
91
+ { name: "judge_score", fallback: "NULL" },
92
+ { name: "judge_feedback", fallback: "NULL" },
93
+ { name: "is_winner", fallback: "0" },
94
+ { name: "created_at", fallback: "CURRENT_TIMESTAMP" }
95
+ ];
96
+ var PROMPT_EXECUTION_VIEWS_SQL = `
97
+ CREATE VIEW IF NOT EXISTS v_prompt_execution_metrics AS
98
+ SELECT
99
+ pe.prompt_id,
100
+ pe.version_id,
101
+ COUNT(*) as total_executions,
102
+ SUM(CASE WHEN pe.status = 'completed' THEN 1 ELSE 0 END) as completed_executions,
103
+ AVG(pe.success_rate) as avg_success_rate,
104
+ AVG(pe.avg_completeness) as avg_completeness,
105
+ AVG(pe.avg_duration) as avg_duration,
106
+ SUM(pe.total_cost_usd) as total_cost,
107
+ MIN(pe.started_at) as first_execution,
108
+ MAX(pe.started_at) as last_execution,
109
+ COUNT(DISTINCT pe.execution_mode) as execution_modes_used
110
+ FROM prompt_executions pe
111
+ WHERE pe.status = 'completed'
112
+ GROUP BY pe.prompt_id, pe.version_id;
113
+
114
+ CREATE VIEW IF NOT EXISTS v_prompts_ready_for_optimization AS
115
+ SELECT
116
+ p.id as prompt_id,
117
+ p.name,
118
+ p.active_version_id,
119
+ COUNT(DISTINCT pe.id) as execution_count,
120
+ AVG(pe.success_rate) as avg_success_rate,
121
+ AVG(pe.avg_completeness) as avg_completeness,
122
+ MAX(pe.started_at) as last_execution,
123
+ CASE
124
+ WHEN COUNT(DISTINCT pe.id) >= 10 AND AVG(pe.success_rate) < 0.9 THEN 1
125
+ ELSE 0
126
+ END as optimization_recommended,
127
+ JULIANDAY('now') - JULIANDAY(
128
+ COALESCE(
129
+ (SELECT MAX(started_at) FROM prompt_optimization_cycles WHERE prompt_id = p.id),
130
+ p.created_at
131
+ )
132
+ ) as days_since_optimization
133
+ FROM prompts p
134
+ LEFT JOIN prompt_executions pe
135
+ ON p.id = pe.prompt_id AND p.active_version_id = pe.version_id
136
+ GROUP BY p.id, p.name, p.active_version_id, p.created_at
137
+ HAVING execution_count > 0;
138
+ `;
139
+ function ensurePromptExecutionViews(db) {
140
+ if (!tableExists(db, "prompt_executions") || !tableExists(db, "prompts")) return;
141
+ db.exec(PROMPT_EXECUTION_VIEWS_SQL);
142
+ }
143
+ function ensurePromptExecutionsCompositeForeignKey(db) {
144
+ if (!tableExists(db, "prompt_executions") || hasCompositePromptVersionFk(db) && supportsEphemeralExecutions(db)) {
145
+ return;
146
+ }
147
+ const hasVariantTable = tableExists(db, "prompt_execution_variants");
148
+ const executionSelect = buildSelectList(columnNames(db, "prompt_executions"), EXECUTION_COLUMNS);
149
+ const variantSelect = hasVariantTable ? buildSelectList(columnNames(db, "prompt_execution_variants"), VARIANT_COLUMNS) : "";
150
+ const foreignKeysEnabled = Number(db.pragma("foreign_keys", { simple: true })) === 1;
151
+ db.exec("PRAGMA foreign_keys = OFF");
152
+ try {
153
+ const migrate = db.transaction(() => {
154
+ db.exec(`
155
+ DROP VIEW IF EXISTS v_prompt_execution_metrics;
156
+ DROP VIEW IF EXISTS v_prompts_ready_for_optimization;
157
+ DROP TABLE IF EXISTS prompt_execution_variants_migration_old;
158
+ DROP TABLE IF EXISTS prompt_executions_migration_old;
159
+ ${hasVariantTable ? "ALTER TABLE prompt_execution_variants RENAME TO prompt_execution_variants_migration_old;" : ""}
160
+ ALTER TABLE prompt_executions RENAME TO prompt_executions_migration_old;
161
+
162
+ CREATE TABLE prompt_executions (
163
+ id TEXT PRIMARY KEY,
164
+ prompt_id TEXT,
165
+ version_id TEXT,
166
+ task_hash TEXT NOT NULL,
167
+ input_provenance TEXT NOT NULL DEFAULT 'stored-prompt',
168
+ execution_mode TEXT NOT NULL,
169
+ variant_count INTEGER DEFAULT 1,
170
+ started_at TEXT NOT NULL,
171
+ completed_at TEXT,
172
+ duration_seconds REAL,
173
+ status TEXT NOT NULL,
174
+ winning_variant_id TEXT,
175
+ success_rate REAL,
176
+ avg_completeness REAL,
177
+ avg_code_delivery_rate REAL,
178
+ avg_duration REAL,
179
+ total_cost_usd REAL,
180
+ total_tokens INTEGER,
181
+ task_description TEXT,
182
+ task_complexity TEXT,
183
+ project_context TEXT,
184
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP,
185
+ updated_at TEXT DEFAULT CURRENT_TIMESTAMP,
186
+ CHECK ((prompt_id IS NULL AND version_id IS NULL) OR
187
+ (prompt_id IS NOT NULL AND version_id IS NOT NULL)),
188
+ FOREIGN KEY (prompt_id) REFERENCES prompts(id) ON DELETE CASCADE,
189
+ FOREIGN KEY (prompt_id, version_id) REFERENCES prompt_versions(prompt_id, id) ON DELETE CASCADE
190
+ );
191
+
192
+ INSERT INTO prompt_executions (${EXECUTION_COLUMNS.map((c) => quoted(c.name)).join(", ")})
193
+ SELECT ${executionSelect} FROM prompt_executions_migration_old;
194
+
195
+ CREATE TABLE IF NOT EXISTS prompt_execution_variants (
196
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
197
+ execution_id TEXT NOT NULL,
198
+ variant_name TEXT NOT NULL,
199
+ provider TEXT NOT NULL,
200
+ model TEXT,
201
+ success INTEGER NOT NULL,
202
+ completeness REAL,
203
+ code_delivered INTEGER,
204
+ duration_seconds REAL,
205
+ error_count INTEGER DEFAULT 0,
206
+ warning_count INTEGER DEFAULT 0,
207
+ test_results TEXT,
208
+ cost_usd REAL,
209
+ tokens_used INTEGER,
210
+ judge_score REAL,
211
+ judge_feedback TEXT,
212
+ is_winner INTEGER DEFAULT 0,
213
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP,
214
+ FOREIGN KEY (execution_id) REFERENCES prompt_executions(id) ON DELETE CASCADE
215
+ );
216
+
217
+ ${hasVariantTable ? `INSERT INTO prompt_execution_variants (${VARIANT_COLUMNS.map((c) => quoted(c.name)).join(", ")})
218
+ SELECT ${variantSelect} FROM prompt_execution_variants_migration_old;` : ""}
219
+
220
+ DROP TABLE prompt_executions_migration_old;
221
+ DROP TABLE IF EXISTS prompt_execution_variants_migration_old;
222
+ CREATE INDEX IF NOT EXISTS idx_executions_prompt ON prompt_executions(prompt_id);
223
+ CREATE INDEX IF NOT EXISTS idx_executions_version ON prompt_executions(prompt_id, version_id);
224
+ CREATE INDEX IF NOT EXISTS idx_executions_status ON prompt_executions(status);
225
+ CREATE INDEX IF NOT EXISTS idx_executions_started ON prompt_executions(started_at DESC);
226
+ CREATE INDEX IF NOT EXISTS idx_executions_mode ON prompt_executions(execution_mode);
227
+ CREATE INDEX IF NOT EXISTS idx_variant_execution ON prompt_execution_variants(execution_id);
228
+ CREATE INDEX IF NOT EXISTS idx_variant_winner ON prompt_execution_variants(execution_id, is_winner);
229
+ CREATE INDEX IF NOT EXISTS idx_variant_provider ON prompt_execution_variants(provider, variant_name);
230
+ `);
231
+ ensurePromptExecutionViews(db);
232
+ });
233
+ migrate.immediate();
234
+ } finally {
235
+ db.exec(`PRAGMA foreign_keys = ${foreignKeysEnabled ? "ON" : "OFF"}`);
236
+ }
237
+ }
238
+
239
+ // src/core/storage/ExecutionTracker.ts
240
+ var __filename = fileURLToPath(import.meta.url);
241
+ var __dirname = path.dirname(__filename);
242
+ function asNumber(value) {
243
+ if (typeof value === "number") {
244
+ return Number.isFinite(value) ? value : 0;
245
+ }
246
+ if (typeof value === "string") {
247
+ const parsed = Number(value);
248
+ return Number.isFinite(parsed) ? parsed : 0;
249
+ }
250
+ return 0;
251
+ }
252
+ var ExecutionTracker = class {
253
+ poeticDir;
254
+ dbPath;
255
+ db;
256
+ ownsDb;
257
+ constructor(options = {}) {
258
+ this.poeticDir = resolvePoeticDirFromContext(options.poeticDir);
259
+ const dbDir = path.join(this.poeticDir, "prompts", "db");
260
+ if (options.db) {
261
+ this.db = options.db;
262
+ this.dbPath = this.db.name;
263
+ this.ownsDb = false;
264
+ } else {
265
+ if (!fs.existsSync(dbDir)) {
266
+ fs.mkdirSync(dbDir, { recursive: true });
267
+ }
268
+ this.dbPath = path.join(dbDir, "prompts.db");
269
+ this.db = new Database(this.dbPath);
270
+ this.ownsDb = true;
271
+ }
272
+ if (options.autoApplySchema !== false) {
273
+ this.applySchema();
274
+ }
275
+ }
276
+ /**
277
+ * Apply schema extensions to database.
278
+ *
279
+ * Bootstraps the canonical prompts / prompt_versions schema so that
280
+ * schema-extensions.sql foreign keys can be applied even when this tracker
281
+ * is the first writer to a fresh DB. The shape mirrors the canonical
282
+ * writers (src/prompts/store.ts and src/core/storage/PromptStore.ts:
283
+ * hash-and-file, composite PK on (prompt_id, id)). Older inline-content
284
+ * databases continue to be read via the writers' PRAGMA-driven detection.
285
+ */
286
+ applySchema() {
287
+ this.db.pragma("foreign_keys = ON");
288
+ this.db.exec(`
289
+ CREATE TABLE IF NOT EXISTS prompts (
290
+ id TEXT PRIMARY KEY,
291
+ name TEXT NOT NULL,
292
+ description TEXT NOT NULL DEFAULT '',
293
+ category TEXT NOT NULL DEFAULT 'adhoc',
294
+ status TEXT NOT NULL DEFAULT 'active',
295
+ variant TEXT,
296
+ tags TEXT NOT NULL DEFAULT '[]',
297
+ auto_opt_in INTEGER DEFAULT 0,
298
+ current_version TEXT NOT NULL DEFAULT '',
299
+ active_version_id TEXT,
300
+ created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
301
+ updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
302
+ archived_at TEXT,
303
+ usage_count INTEGER DEFAULT 0,
304
+ last_used_at TEXT,
305
+ UNIQUE(name, category)
306
+ );
307
+
308
+ CREATE INDEX IF NOT EXISTS idx_prompts_name ON prompts(name);
309
+ CREATE INDEX IF NOT EXISTS idx_prompts_category ON prompts(category);
310
+ CREATE INDEX IF NOT EXISTS idx_prompts_active_version ON prompts(active_version_id);
311
+
312
+ CREATE TABLE IF NOT EXISTS prompt_versions (
313
+ id TEXT NOT NULL,
314
+ prompt_id TEXT NOT NULL,
315
+ content_hash TEXT NOT NULL DEFAULT '',
316
+ changelog TEXT,
317
+ author TEXT,
318
+ is_active INTEGER DEFAULT 0,
319
+ is_generated INTEGER DEFAULT 0,
320
+ generation_model TEXT,
321
+ generation_prompt TEXT,
322
+ created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
323
+ activated_at TEXT,
324
+ deactivated_at TEXT,
325
+ parent_version_id TEXT,
326
+ mutation_type TEXT,
327
+ generated_by TEXT,
328
+ activated_by TEXT,
329
+ performance_score REAL,
330
+ PRIMARY KEY (prompt_id, id),
331
+ FOREIGN KEY (prompt_id) REFERENCES prompts(id) ON DELETE CASCADE
332
+ );
333
+
334
+ CREATE INDEX IF NOT EXISTS idx_versions_prompt ON prompt_versions(prompt_id);
335
+ CREATE INDEX IF NOT EXISTS idx_versions_active ON prompt_versions(prompt_id, is_active);
336
+ `);
337
+ const schemaPath = path.join(__dirname, "schema-extensions.sql");
338
+ if (fs.existsSync(schemaPath)) {
339
+ const schema = fs.readFileSync(schemaPath, "utf8");
340
+ this.db.exec(schema);
341
+ ensurePromptExecutionsCompositeForeignKey(this.db);
342
+ ensurePromptExecutionViews(this.db);
343
+ } else {
344
+ this.db.exec(`
345
+ CREATE TABLE IF NOT EXISTS prompt_executions (
346
+ id TEXT PRIMARY KEY,
347
+ prompt_id TEXT,
348
+ version_id TEXT,
349
+ task_hash TEXT NOT NULL,
350
+ input_provenance TEXT NOT NULL DEFAULT 'stored-prompt',
351
+ execution_mode TEXT NOT NULL,
352
+ variant_count INTEGER DEFAULT 1,
353
+ started_at TEXT NOT NULL,
354
+ completed_at TEXT,
355
+ duration_seconds REAL,
356
+ status TEXT NOT NULL,
357
+ winning_variant_id TEXT,
358
+ success_rate REAL,
359
+ avg_completeness REAL,
360
+ avg_code_delivery_rate REAL,
361
+ avg_duration REAL,
362
+ total_cost_usd REAL,
363
+ total_tokens INTEGER,
364
+ task_description TEXT,
365
+ task_complexity TEXT,
366
+ project_context TEXT,
367
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP,
368
+ updated_at TEXT DEFAULT CURRENT_TIMESTAMP,
369
+ CHECK ((prompt_id IS NULL AND version_id IS NULL) OR
370
+ (prompt_id IS NOT NULL AND version_id IS NOT NULL)),
371
+ FOREIGN KEY (prompt_id) REFERENCES prompts(id) ON DELETE CASCADE,
372
+ FOREIGN KEY (prompt_id, version_id) REFERENCES prompt_versions(prompt_id, id) ON DELETE CASCADE
373
+ );
374
+
375
+ CREATE INDEX IF NOT EXISTS idx_executions_prompt ON prompt_executions(prompt_id);
376
+ CREATE INDEX IF NOT EXISTS idx_executions_version ON prompt_executions(prompt_id, version_id);
377
+ CREATE INDEX IF NOT EXISTS idx_executions_status ON prompt_executions(status);
378
+
379
+ CREATE TABLE IF NOT EXISTS prompt_execution_variants (
380
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
381
+ execution_id TEXT NOT NULL,
382
+ variant_name TEXT NOT NULL,
383
+ provider TEXT NOT NULL,
384
+ model TEXT,
385
+ success INTEGER NOT NULL,
386
+ completeness REAL,
387
+ code_delivered INTEGER,
388
+ duration_seconds REAL,
389
+ error_count INTEGER DEFAULT 0,
390
+ warning_count INTEGER DEFAULT 0,
391
+ test_results TEXT,
392
+ cost_usd REAL,
393
+ tokens_used INTEGER,
394
+ judge_score REAL,
395
+ judge_feedback TEXT,
396
+ is_winner INTEGER DEFAULT 0,
397
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP,
398
+ FOREIGN KEY (execution_id) REFERENCES prompt_executions(id) ON DELETE CASCADE
399
+ );
400
+
401
+ CREATE INDEX IF NOT EXISTS idx_variant_execution ON prompt_execution_variants(execution_id);
402
+ `);
403
+ ensurePromptExecutionsCompositeForeignKey(this.db);
404
+ ensurePromptExecutionViews(this.db);
405
+ }
406
+ }
407
+ /**
408
+ * Start tracking a new execution
409
+ */
410
+ async startExecution(input) {
411
+ if (input.promptId === void 0 !== (input.versionId === void 0)) {
412
+ throw new Error("promptId and versionId must either both be provided or both be omitted");
413
+ }
414
+ const id = input.id ?? this.generateExecutionId();
415
+ const now = (/* @__PURE__ */ new Date()).toISOString();
416
+ const taskHash = input.taskHash ?? crypto.createHash("sha256").update(input.taskDescription ?? `${input.promptId ?? ""}:${input.versionId ?? ""}:${id}`).digest("hex");
417
+ const inputProvenance = input.inputProvenance ?? (input.promptId ? "stored-prompt" : "inline");
418
+ const stmt = this.db.prepare(`
419
+ ${input.id ? "INSERT OR IGNORE" : "INSERT"} INTO prompt_executions (
420
+ id, prompt_id, version_id, task_hash, input_provenance, execution_mode, variant_count,
421
+ started_at, status, task_description, task_complexity, project_context,
422
+ created_at, updated_at
423
+ )
424
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
425
+ `);
426
+ stmt.run(
427
+ id,
428
+ input.promptId ?? null,
429
+ input.versionId ?? null,
430
+ taskHash,
431
+ inputProvenance,
432
+ input.executionMode,
433
+ input.variantCount || 1,
434
+ now,
435
+ "running",
436
+ input.taskDescription || null,
437
+ input.taskComplexity || null,
438
+ input.projectContext ? JSON.stringify(input.projectContext) : null,
439
+ now,
440
+ now
441
+ );
442
+ const execution = this.getExecution(id);
443
+ if (!execution) {
444
+ throw new Error(`Failed to start execution ${id}`);
445
+ }
446
+ return execution;
447
+ }
448
+ /**
449
+ * Complete an execution with results
450
+ */
451
+ async completeExecution(executionId, result) {
452
+ const now = (/* @__PURE__ */ new Date()).toISOString();
453
+ const execution = this.getExecution(executionId);
454
+ if (!execution) {
455
+ throw new Error(`Execution ${executionId} not found`);
456
+ }
457
+ const durationSeconds = execution.startedAt ? (new Date(now).getTime() - new Date(execution.startedAt).getTime()) / 1e3 : void 0;
458
+ const stmt = this.db.prepare(`
459
+ UPDATE prompt_executions
460
+ SET
461
+ completed_at = ?,
462
+ duration_seconds = ?,
463
+ status = ?,
464
+ winning_variant_id = ?,
465
+ success_rate = ?,
466
+ avg_completeness = ?,
467
+ avg_code_delivery_rate = ?,
468
+ avg_duration = ?,
469
+ total_cost_usd = ?,
470
+ total_tokens = ?,
471
+ updated_at = ?
472
+ WHERE id = ?
473
+ `);
474
+ stmt.run(
475
+ now,
476
+ durationSeconds ?? null,
477
+ result.status,
478
+ result.winningVariantId ?? null,
479
+ result.successRate ?? null,
480
+ result.avgCompleteness ?? null,
481
+ result.avgCodeDeliveryRate ?? null,
482
+ result.avgDuration ?? null,
483
+ result.totalCostUsd ?? null,
484
+ result.totalTokens ?? null,
485
+ now,
486
+ executionId
487
+ );
488
+ }
489
+ /**
490
+ * Record a variant result
491
+ */
492
+ async recordVariant(input) {
493
+ const stmt = this.db.prepare(`
494
+ INSERT INTO prompt_execution_variants (
495
+ execution_id, variant_name, provider, model, success, completeness,
496
+ code_delivered, duration_seconds, error_count, warning_count,
497
+ test_results, cost_usd, tokens_used, judge_score, judge_feedback,
498
+ is_winner
499
+ )
500
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
501
+ `);
502
+ const result = stmt.run(
503
+ input.executionId,
504
+ input.variantName,
505
+ input.provider,
506
+ input.model ?? null,
507
+ input.success ? 1 : 0,
508
+ input.completeness ?? null,
509
+ input.codeDelivered ? 1 : 0,
510
+ input.durationSeconds ?? null,
511
+ input.errorCount || 0,
512
+ input.warningCount || 0,
513
+ input.testResults ? JSON.stringify(input.testResults) : null,
514
+ input.costUsd ?? null,
515
+ input.tokensUsed ?? null,
516
+ input.judgeScore ?? null,
517
+ input.judgeFeedback ?? null,
518
+ input.isWinner ? 1 : 0
519
+ );
520
+ return this.getVariant(Number(result.lastInsertRowid));
521
+ }
522
+ /**
523
+ * Get execution by ID
524
+ */
525
+ getExecution(id) {
526
+ const stmt = this.db.prepare("SELECT * FROM prompt_executions WHERE id = ?");
527
+ const row = stmt.get(id);
528
+ if (!row) {
529
+ return null;
530
+ }
531
+ return this.rowToExecution(row);
532
+ }
533
+ /**
534
+ * Get all executions for a prompt with optional pagination
535
+ * @param promptId The prompt ID
536
+ * @param versionId Optional version ID filter
537
+ * @param limit Maximum number of results (default: 1000, max: 1000)
538
+ * @param offset Number of results to skip (default: 0)
539
+ */
540
+ getExecutions(promptId, versionId, limit, offset) {
541
+ let query = "SELECT * FROM prompt_executions WHERE prompt_id = ?";
542
+ const params = [promptId];
543
+ if (versionId) {
544
+ query += " AND version_id = ?";
545
+ params.push(versionId);
546
+ }
547
+ query += " ORDER BY started_at DESC";
548
+ const actualLimit = Math.min(limit ?? 1e3, 1e3);
549
+ const actualOffset = offset ?? 0;
550
+ query += " LIMIT ? OFFSET ?";
551
+ params.push(actualLimit, actualOffset);
552
+ const stmt = this.db.prepare(query);
553
+ const rows = stmt.all(...params);
554
+ return rows.map((row) => this.rowToExecution(row));
555
+ }
556
+ /**
557
+ * Get variant results for an execution
558
+ */
559
+ getVariants(executionId) {
560
+ const stmt = this.db.prepare(
561
+ "SELECT * FROM prompt_execution_variants WHERE execution_id = ? ORDER BY judge_score DESC, completeness DESC"
562
+ );
563
+ const rows = stmt.all(executionId);
564
+ return rows.map((row) => this.rowToVariant(row));
565
+ }
566
+ /**
567
+ * Get variant by ID
568
+ */
569
+ getVariant(id) {
570
+ const stmt = this.db.prepare("SELECT * FROM prompt_execution_variants WHERE id = ?");
571
+ const row = stmt.get(id);
572
+ if (!row) {
573
+ return null;
574
+ }
575
+ return this.rowToVariant(row);
576
+ }
577
+ /**
578
+ * Get aggregated metrics for a prompt version
579
+ */
580
+ getMetrics(promptId, versionId) {
581
+ let query = `
582
+ SELECT
583
+ prompt_id,
584
+ version_id,
585
+ COUNT(*) as total_executions,
586
+ SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) as completed_executions,
587
+ AVG(success_rate) as avg_success_rate,
588
+ AVG(avg_completeness) as avg_completeness,
589
+ AVG(avg_code_delivery_rate) as avg_code_delivery_rate,
590
+ AVG(avg_duration) as avg_duration,
591
+ -- Population variance via the identity E[x^2] - E[x]^2.
592
+ -- SQLite has no built-in STDDEV; we compute std-dev in JS
593
+ -- (sqrt(max(variance, 0))) to clamp tiny negative floating-point
594
+ -- artifacts that occur when all sampled values are identical.
595
+ AVG(avg_completeness * avg_completeness) as avg_completeness_sq,
596
+ MIN(avg_completeness) as min_completeness,
597
+ MAX(avg_completeness) as max_completeness,
598
+ -- SUM skips NULL, so a partial subtotal is not a full total. Count known-cost
599
+ -- rows and expose totalCost only when every included execution has known cost.
600
+ SUM(total_cost_usd) as total_cost,
601
+ SUM(CASE WHEN total_cost_usd IS NOT NULL THEN 1 ELSE 0 END) as known_cost_executions,
602
+ MIN(started_at) as first_execution,
603
+ MAX(started_at) as last_execution,
604
+ COUNT(DISTINCT execution_mode) as execution_modes_used
605
+ FROM prompt_executions
606
+ WHERE prompt_id = ?
607
+ `;
608
+ const params = [promptId];
609
+ if (versionId) {
610
+ query += " AND version_id = ?";
611
+ params.push(versionId);
612
+ } else {
613
+ query += " GROUP BY prompt_id, version_id";
614
+ }
615
+ const stmt = this.db.prepare(query);
616
+ const row = stmt.get(...params);
617
+ if (!row || typeof row !== "object") {
618
+ return null;
619
+ }
620
+ const r = row;
621
+ const totalExecutions = asNumber(r.total_executions);
622
+ if (totalExecutions === 0) {
623
+ return null;
624
+ }
625
+ const avgCompleteness = asNumber(r.avg_completeness);
626
+ const avgCompletenessSq = asNumber(r.avg_completeness_sq);
627
+ const variance = Math.max(0, avgCompletenessSq - avgCompleteness * avgCompleteness);
628
+ const stdDevCompleteness = Math.sqrt(variance);
629
+ const knownCostExecutions = asNumber(r.known_cost_executions);
630
+ const totalCostStatus = knownCostExecutions === totalExecutions ? "complete" : "incomplete";
631
+ const totalCost = totalCostStatus === "complete" ? asNumber(r.total_cost) : void 0;
632
+ return {
633
+ promptId: r.prompt_id,
634
+ versionId: r.version_id,
635
+ totalExecutions,
636
+ completedExecutions: asNumber(r.completed_executions),
637
+ avgSuccessRate: asNumber(r.avg_success_rate),
638
+ avgCompleteness,
639
+ avgCodeDeliveryRate: asNumber(r.avg_code_delivery_rate),
640
+ avgDuration: asNumber(r.avg_duration),
641
+ minCompleteness: asNumber(r.min_completeness),
642
+ maxCompleteness: asNumber(r.max_completeness),
643
+ stdDevCompleteness,
644
+ ...totalCost !== void 0 ? { totalCost } : {},
645
+ totalCostStatus,
646
+ firstExecution: r.first_execution,
647
+ lastExecution: r.last_execution,
648
+ executionModesUsed: asNumber(r.execution_modes_used)
649
+ };
650
+ }
651
+ /**
652
+ * Check if prompt is ready for optimization
653
+ */
654
+ isReadyForOptimization(promptId, versionId) {
655
+ const metrics = this.getMetrics(promptId, versionId);
656
+ if (!metrics) {
657
+ return {
658
+ ready: false,
659
+ reason: "No executions recorded",
660
+ executionCount: 0,
661
+ avgSuccessRate: 0,
662
+ avgCompleteness: 0
663
+ };
664
+ }
665
+ const MIN_EXECUTIONS = 10;
666
+ const MIN_SUCCESS_RATE = 0.9;
667
+ const MIN_COMPLETENESS = 85;
668
+ if (metrics.totalExecutions < MIN_EXECUTIONS) {
669
+ return {
670
+ ready: false,
671
+ reason: `Need ${MIN_EXECUTIONS - metrics.totalExecutions} more executions`,
672
+ executionCount: metrics.totalExecutions,
673
+ avgSuccessRate: metrics.avgSuccessRate,
674
+ avgCompleteness: metrics.avgCompleteness
675
+ };
676
+ }
677
+ if (metrics.avgSuccessRate < MIN_SUCCESS_RATE || metrics.avgCompleteness < MIN_COMPLETENESS) {
678
+ return {
679
+ ready: true,
680
+ reason: "Performance below target",
681
+ executionCount: metrics.totalExecutions,
682
+ avgSuccessRate: metrics.avgSuccessRate,
683
+ avgCompleteness: metrics.avgCompleteness
684
+ };
685
+ }
686
+ return {
687
+ ready: false,
688
+ reason: "Performance meets target",
689
+ executionCount: metrics.totalExecutions,
690
+ avgSuccessRate: metrics.avgSuccessRate,
691
+ avgCompleteness: metrics.avgCompleteness
692
+ };
693
+ }
694
+ /**
695
+ * Close database connection (only if owned)
696
+ */
697
+ close() {
698
+ if (this.ownsDb) {
699
+ this.db.close();
700
+ }
701
+ }
702
+ // Private helpers
703
+ generateExecutionId() {
704
+ return `exec_${Date.now()}_${crypto.randomBytes(4).toString("hex")}`;
705
+ }
706
+ rowToExecution(row) {
707
+ const executionMode = row.execution_mode;
708
+ const status = row.status;
709
+ const taskComplexity = row.task_complexity;
710
+ let projectContext;
711
+ if (row.project_context) {
712
+ try {
713
+ const parsed = parseJsonWithContext(
714
+ row.project_context,
715
+ "ExecutionTracker.projectContext"
716
+ );
717
+ projectContext = parsed || {};
718
+ } catch (err) {
719
+ emitWarning(
720
+ "WS-003",
721
+ {
722
+ taskId: row.id,
723
+ subsystem: "storage",
724
+ executionPhase: "execution"
725
+ },
726
+ {
727
+ severity: "WARN" /* WARN */,
728
+ metadata: {
729
+ error: err instanceof Error ? err.message : String(err),
730
+ operation: "parseProjectContext"
731
+ }
732
+ }
733
+ );
734
+ }
735
+ }
736
+ return {
737
+ id: row.id,
738
+ promptId: row.prompt_id ?? void 0,
739
+ versionId: row.version_id ?? void 0,
740
+ taskHash: row.task_hash,
741
+ inputProvenance: row.input_provenance,
742
+ executionMode,
743
+ variantCount: row.variant_count,
744
+ startedAt: row.started_at,
745
+ completedAt: row.completed_at ?? void 0,
746
+ durationSeconds: row.duration_seconds ?? void 0,
747
+ status,
748
+ winningVariantId: row.winning_variant_id ?? void 0,
749
+ successRate: row.success_rate ?? void 0,
750
+ avgCompleteness: row.avg_completeness ?? void 0,
751
+ avgCodeDeliveryRate: row.avg_code_delivery_rate ?? void 0,
752
+ avgDuration: row.avg_duration ?? void 0,
753
+ totalCostUsd: row.total_cost_usd ?? void 0,
754
+ totalTokens: row.total_tokens ?? void 0,
755
+ taskDescription: row.task_description ?? void 0,
756
+ taskComplexity: taskComplexity || void 0,
757
+ projectContext,
758
+ createdAt: row.created_at,
759
+ updatedAt: row.updated_at
760
+ };
761
+ }
762
+ rowToVariant(row) {
763
+ let testResults;
764
+ if (row.test_results) {
765
+ try {
766
+ const parsed = parseJsonWithContext(
767
+ row.test_results,
768
+ "ExecutionTracker.testResults"
769
+ );
770
+ testResults = parsed || {};
771
+ } catch (err) {
772
+ emitWarning(
773
+ "WS-003",
774
+ {
775
+ taskId: row.execution_id,
776
+ subsystem: "storage",
777
+ executionPhase: "execution"
778
+ },
779
+ {
780
+ severity: "WARN" /* WARN */,
781
+ metadata: {
782
+ variantId: row.id,
783
+ error: err instanceof Error ? err.message : String(err),
784
+ operation: "parseTestResults"
785
+ }
786
+ }
787
+ );
788
+ }
789
+ }
790
+ return {
791
+ id: row.id,
792
+ executionId: row.execution_id,
793
+ variantName: row.variant_name,
794
+ provider: row.provider,
795
+ model: row.model ?? void 0,
796
+ success: row.success === 1,
797
+ completeness: row.completeness ?? void 0,
798
+ codeDelivered: row.code_delivered === 1,
799
+ durationSeconds: row.duration_seconds ?? void 0,
800
+ errorCount: row.error_count ?? 0,
801
+ warningCount: row.warning_count ?? 0,
802
+ testResults,
803
+ costUsd: row.cost_usd ?? void 0,
804
+ tokensUsed: row.tokens_used ?? void 0,
805
+ judgeScore: row.judge_score ?? void 0,
806
+ judgeFeedback: row.judge_feedback ?? void 0,
807
+ isWinner: row.is_winner === 1,
808
+ createdAt: row.created_at
809
+ };
810
+ }
811
+ };
812
+
813
+ export {
814
+ ensurePromptExecutionViews,
815
+ ensurePromptExecutionsCompositeForeignKey,
816
+ ExecutionTracker
817
+ };
818
+ //# sourceMappingURL=chunk-U45RTRGY.js.map