@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,235 @@
1
+ import {
2
+ readCanonicalPoeticConfig,
3
+ selectedPoeticConfigCandidate
4
+ } from "./chunk-G36W2T2S.js";
5
+ import {
6
+ readDataMigrationMarker,
7
+ shouldUseGlobalTelemetry
8
+ } from "./chunk-CD7ISXA4.js";
9
+ import {
10
+ LabPathResolver
11
+ } from "./chunk-7GDRQBQC.js";
12
+ import {
13
+ getConfigPaths
14
+ } from "./chunk-L6OM4A22.js";
15
+ import {
16
+ getDataDir,
17
+ getGlobalTelemetryDir,
18
+ getProjectDataDir,
19
+ getStableRepoIdentity
20
+ } from "./chunk-UUH2RVKS.js";
21
+ import {
22
+ isPathWithin
23
+ } from "./chunk-XZE4XARH.js";
24
+ import {
25
+ POETIC_TELEMETRY_DB,
26
+ readEnv
27
+ } from "./chunk-5DLKYTQX.js";
28
+
29
+ // src/telemetry/telemetry-path-resolver.ts
30
+ import { execSync } from "child_process";
31
+ import fs2 from "fs";
32
+ import path2 from "path";
33
+
34
+ // src/utils/project-registry.ts
35
+ import fs from "fs";
36
+ import path from "path";
37
+ import Database from "better-sqlite3";
38
+ function getRegistryDbPath(dataDir = getDataDir()) {
39
+ return path.join(dataDir, "registry.db");
40
+ }
41
+ function openRegistryDb(dataDir = getDataDir()) {
42
+ fs.mkdirSync(dataDir, { recursive: true, mode: 448 });
43
+ const db = new Database(getRegistryDbPath(dataDir));
44
+ db.pragma("journal_mode = WAL");
45
+ db.pragma("synchronous = NORMAL");
46
+ db.exec(`
47
+ CREATE TABLE IF NOT EXISTS projects (
48
+ project_id TEXT PRIMARY KEY,
49
+ name TEXT NOT NULL,
50
+ git_common_dir TEXT NOT NULL,
51
+ first_seen TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
52
+ last_seen TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
53
+ );
54
+ `);
55
+ return db;
56
+ }
57
+ function upsertProjectRegistryEntry(entry, dataDir = getDataDir()) {
58
+ const db = openRegistryDb(dataDir);
59
+ try {
60
+ db.prepare(
61
+ `
62
+ INSERT INTO projects (project_id, name, git_common_dir)
63
+ VALUES (?, ?, ?)
64
+ ON CONFLICT(project_id) DO UPDATE SET
65
+ last_seen = CURRENT_TIMESTAMP,
66
+ name = excluded.name,
67
+ git_common_dir = excluded.git_common_dir
68
+ `
69
+ ).run(entry.projectId, entry.name, entry.gitCommonDir);
70
+ } finally {
71
+ db.close();
72
+ }
73
+ }
74
+
75
+ // src/telemetry/telemetry-path-resolver.ts
76
+ function isSameDirectory(left, right) {
77
+ const resolvedLeft = path2.resolve(left);
78
+ const resolvedRight = path2.resolve(right);
79
+ if (resolvedLeft === resolvedRight) {
80
+ return true;
81
+ }
82
+ try {
83
+ return fs2.realpathSync(resolvedLeft) === fs2.realpathSync(resolvedRight);
84
+ } catch {
85
+ return false;
86
+ }
87
+ }
88
+ function resolveRepoRootFromPoeticDir(poeticDir) {
89
+ const normalized = path2.resolve(poeticDir);
90
+ return path2.basename(normalized) === ".poetic" ? path2.dirname(normalized) : normalized;
91
+ }
92
+ var TelemetryPathResolver = class _TelemetryPathResolver {
93
+ static instance = null;
94
+ projectIdByRepoRoot = /* @__PURE__ */ new Map();
95
+ registryUpsertAttempted = /* @__PURE__ */ new Set();
96
+ static getInstance() {
97
+ if (!_TelemetryPathResolver.instance) {
98
+ _TelemetryPathResolver.instance = new _TelemetryPathResolver();
99
+ }
100
+ return _TelemetryPathResolver.instance;
101
+ }
102
+ resolveDbDir(poeticDir) {
103
+ const absolutePoeticDir = path2.resolve(poeticDir);
104
+ const telemetryDbOverride = readEnv(POETIC_TELEMETRY_DB).value;
105
+ if (telemetryDbOverride) {
106
+ const overridePath = path2.resolve(telemetryDbOverride);
107
+ return overridePath.endsWith(".db") ? path2.dirname(overridePath) : overridePath;
108
+ }
109
+ const configuredTelemetryDb = this.resolveConfiguredTelemetryDb(absolutePoeticDir);
110
+ if (configuredTelemetryDb) {
111
+ if (this.migrationSupersedesConfiguredDb(absolutePoeticDir, configuredTelemetryDb)) {
112
+ return path2.join(getGlobalTelemetryDir(), "db");
113
+ }
114
+ return configuredTelemetryDb.endsWith(".db") ? path2.dirname(configuredTelemetryDb) : configuredTelemetryDb;
115
+ }
116
+ if (shouldUseGlobalTelemetry(absolutePoeticDir)) {
117
+ return path2.join(getGlobalTelemetryDir(), "db");
118
+ }
119
+ const labResolver = LabPathResolver.getInstance();
120
+ return path2.join(labResolver.getTelemetryDir(absolutePoeticDir), "db");
121
+ }
122
+ resolveProjectDataDir(poeticDir) {
123
+ const repoRoot = this.resolveRepoRootFromPoeticDir(poeticDir);
124
+ return getProjectDataDir(repoRoot);
125
+ }
126
+ getProjectId(poeticDir, options = {}) {
127
+ const { register = true } = options;
128
+ const repoRoot = this.resolveRepoRootFromPoeticDir(poeticDir);
129
+ const cacheKey = path2.resolve(repoRoot);
130
+ const cached = this.projectIdByRepoRoot.get(cacheKey);
131
+ const projectId = cached ?? getStableRepoIdentity(repoRoot);
132
+ if (!cached) {
133
+ this.projectIdByRepoRoot.set(cacheKey, projectId);
134
+ }
135
+ if (register && !this.registryUpsertAttempted.has(projectId)) {
136
+ this.registryUpsertAttempted.add(projectId);
137
+ const gitCommonDir = this.resolveGitCommonDir(repoRoot);
138
+ try {
139
+ upsertProjectRegistryEntry({
140
+ projectId,
141
+ name: path2.basename(repoRoot),
142
+ gitCommonDir
143
+ });
144
+ } catch {
145
+ }
146
+ }
147
+ return projectId;
148
+ }
149
+ getDbContext() {
150
+ const labContext = LabPathResolver.getInstance().getContext();
151
+ if (!labContext) {
152
+ return { labId: null, labRunId: null };
153
+ }
154
+ return {
155
+ labId: labContext.labId,
156
+ labRunId: labContext.runId
157
+ };
158
+ }
159
+ resolveRepoRootFromPoeticDir(poeticDir) {
160
+ return resolveRepoRootFromPoeticDir(poeticDir);
161
+ }
162
+ /**
163
+ * True when a completed data migration should outrank a configured telemetry DB path.
164
+ *
165
+ * `poetic init` writes the repo-local default `.poetic/telemetry/db/variants.db` into
166
+ * generated configs, and `resolveConfiguredTelemetryDb` only ever returns repo-local
167
+ * paths. Honouring that after the migration has run would recreate the database inside
168
+ * the checkout and silently resume the repo-local/external divergence the migration
169
+ * just merged away -- while the completion marker suppresses any further advisory.
170
+ *
171
+ * Both conditions below are load-bearing, and neither may be relaxed to a bare
172
+ * "marker exists" check:
173
+ *
174
+ * 1. The configured path must be the directory the migration actually moved. A config
175
+ * pointing anywhere else (say `.poetic/custom/telemetry.db`) is not a migration
176
+ * target, so its database still holds the only copy of its rows; overriding it would
177
+ * abandon that data silently.
178
+ * 2. The marker must have been written against the currently resolved external root. If
179
+ * `POETIC_HOME`/`POETIC_DATA_DIR` changed, or the repo was moved with its marker,
180
+ * routing to today's root would write into an empty location while the migrated
181
+ * history stayed behind at the recorded one.
182
+ */
183
+ migrationSupersedesConfiguredDb(poeticDir, configuredTelemetryDb) {
184
+ const marker = readDataMigrationMarker(poeticDir);
185
+ if (!marker) {
186
+ return false;
187
+ }
188
+ const repoRoot = this.resolveRepoRootFromPoeticDir(poeticDir);
189
+ const migratedDbDir = path2.join(repoRoot, ".poetic", "telemetry", "db");
190
+ const configuredDbDir = configuredTelemetryDb.endsWith(".db") ? path2.dirname(configuredTelemetryDb) : configuredTelemetryDb;
191
+ if (path2.resolve(configuredDbDir) !== path2.resolve(migratedDbDir)) {
192
+ return false;
193
+ }
194
+ return isSameDirectory(marker.globalTelemetryDir, getGlobalTelemetryDir());
195
+ }
196
+ resolveConfiguredTelemetryDb(poeticDir) {
197
+ const repoRoot = this.resolveRepoRootFromPoeticDir(poeticDir);
198
+ const paths = getConfigPaths(repoRoot);
199
+ for (const configuredPath of [paths.projectConfigFile, paths.userConfigFile]) {
200
+ const configPath = selectedPoeticConfigCandidate(configuredPath);
201
+ const read = readCanonicalPoeticConfig(configPath);
202
+ if (read.status === "invalid") continue;
203
+ if (read.status === "missing") continue;
204
+ const database = read.config.telemetry?.database;
205
+ if (typeof database === "string" && database.trim() !== "") {
206
+ const resolved = path2.resolve(repoRoot, database);
207
+ if (isPathWithin(resolved, repoRoot)) {
208
+ return resolved;
209
+ }
210
+ }
211
+ }
212
+ return null;
213
+ }
214
+ resolveGitCommonDir(repoRoot) {
215
+ try {
216
+ const stdout = execSync("git rev-parse --git-common-dir", {
217
+ cwd: repoRoot,
218
+ stdio: ["ignore", "pipe", "ignore"],
219
+ timeout: 1500
220
+ }).toString().trim();
221
+ if (!stdout) {
222
+ return path2.join(repoRoot, ".git");
223
+ }
224
+ return path2.isAbsolute(stdout) ? stdout : path2.resolve(repoRoot, stdout);
225
+ } catch {
226
+ return path2.join(repoRoot, ".git");
227
+ }
228
+ }
229
+ };
230
+
231
+ export {
232
+ resolveRepoRootFromPoeticDir,
233
+ TelemetryPathResolver
234
+ };
235
+ //# sourceMappingURL=chunk-ZDTGECTN.js.map
@@ -0,0 +1,316 @@
1
+ import {
2
+ classifyDirtyEntriesForGuard,
3
+ formatDirtyGuardRefusal,
4
+ getGitStatusPorcelainZ,
5
+ parsePorcelainEntriesZ,
6
+ readInitCreatedRootFiles
7
+ } from "./chunk-HQLGXODD.js";
8
+ import {
9
+ SETUP_CHECK_READINESS_OPTIONS,
10
+ collectProviderReadinessGate
11
+ } from "./chunk-25QL3M3L.js";
12
+ import {
13
+ QUICK_START_GUIDE_URL
14
+ } from "./chunk-5EERLVZB.js";
15
+ import {
16
+ branchRoleLabel,
17
+ classifyBranchRole,
18
+ isProtectedPipelineBranch
19
+ } from "./chunk-XQD2B6BB.js";
20
+ import {
21
+ execGit
22
+ } from "./chunk-KNDYMVWN.js";
23
+ import {
24
+ sanitizeBranchSegment
25
+ } from "./chunk-TRSVUPCX.js";
26
+ import {
27
+ resolveCliRepoRoot
28
+ } from "./chunk-L7JZLXQL.js";
29
+
30
+ // src/cli/commands/quickstart.ts
31
+ import fs from "fs/promises";
32
+ import path from "path";
33
+ import chalk from "chalk";
34
+ import { Command } from "commander";
35
+ var DEFAULT_MARKER_FILE = "poetic-quickstart.md";
36
+ function optionEnabled(value) {
37
+ return value === true;
38
+ }
39
+ function writeStdout(line = "") {
40
+ process.stdout.write(`${line}
41
+ `);
42
+ }
43
+ function writeStderr(line = "") {
44
+ process.stderr.write(`${line}
45
+ `);
46
+ }
47
+ function taskLabel(parts) {
48
+ const joined = parts.join(" ").trim();
49
+ return joined.length > 0 ? joined : "poetic init quickstart";
50
+ }
51
+ function normalizeBranchName(input) {
52
+ const trimmed = input.trim();
53
+ if (!trimmed) return "fix/poetic-quickstart";
54
+ if (trimmed.includes("/")) {
55
+ return trimmed.split("/").map((segment) => sanitizeBranchSegment(segment) || "branch").join("/");
56
+ }
57
+ return `fix/${sanitizeBranchSegment(trimmed) || "poetic-quickstart"}`;
58
+ }
59
+ function branchNameFromTask(parts, explicitName) {
60
+ return normalizeBranchName(explicitName ?? taskLabel(parts));
61
+ }
62
+ async function git(args, repoRoot) {
63
+ const result = await execGit(args, { cwd: repoRoot });
64
+ return { exitCode: result.exitCode, stdout: result.stdout.trim() };
65
+ }
66
+ async function getCurrentBranch(repoRoot) {
67
+ const result = await git(["rev-parse", "--abbrev-ref", "HEAD"], repoRoot);
68
+ if (result.exitCode === 0 && result.stdout) {
69
+ return result.stdout;
70
+ }
71
+ const symbolic = await git(["symbolic-ref", "--short", "HEAD"], repoRoot);
72
+ if (symbolic.exitCode === 0 && symbolic.stdout) {
73
+ return symbolic.stdout;
74
+ }
75
+ return "HEAD";
76
+ }
77
+ async function branchExists(repoRoot, branch) {
78
+ const result = await git(["rev-parse", "--verify", `refs/heads/${branch}`], repoRoot);
79
+ return result.exitCode === 0;
80
+ }
81
+ async function validateBranchName(repoRoot, branch) {
82
+ if (isProtectedPipelineBranch(branch)) {
83
+ throw new Error(`Refusing to create protected branch '${branch}'.`);
84
+ }
85
+ const result = await git(["check-ref-format", "--branch", branch], repoRoot);
86
+ if (result.exitCode !== 0) {
87
+ throw new Error(`Invalid branch name '${branch}'. Try --branch-name fix/my-first-change.`);
88
+ }
89
+ }
90
+ async function allocateBranchName(repoRoot, preferredBranch) {
91
+ await validateBranchName(repoRoot, preferredBranch);
92
+ if (!await branchExists(repoRoot, preferredBranch)) {
93
+ return preferredBranch;
94
+ }
95
+ for (let index = 2; index <= 99; index += 1) {
96
+ const candidate = `${preferredBranch}-${index}`;
97
+ await validateBranchName(repoRoot, candidate);
98
+ if (!await branchExists(repoRoot, candidate)) {
99
+ return candidate;
100
+ }
101
+ }
102
+ throw new Error(`Unable to allocate a unique branch name from '${preferredBranch}'.`);
103
+ }
104
+ async function inspectGit(repoRoot) {
105
+ const insideWorkTree = await git(["rev-parse", "--is-inside-work-tree"], repoRoot);
106
+ const initialized = insideWorkTree.exitCode === 0 && insideWorkTree.stdout === "true";
107
+ const currentBranch = initialized ? await getCurrentBranch(repoRoot) : "HEAD";
108
+ if (!initialized) {
109
+ return {
110
+ currentBranch,
111
+ branchRole: classifyBranchRole(currentBranch),
112
+ clean: true,
113
+ initialized,
114
+ blocking: [],
115
+ ignoredResidue: []
116
+ };
117
+ }
118
+ const porcelainZ = await getGitStatusPorcelainZ(repoRoot);
119
+ const classification = classifyDirtyEntriesForGuard(
120
+ parsePorcelainEntriesZ(porcelainZ),
121
+ await readInitCreatedRootFiles(repoRoot)
122
+ );
123
+ return {
124
+ currentBranch,
125
+ branchRole: classifyBranchRole(currentBranch),
126
+ clean: classification.blocking.length === 0,
127
+ initialized,
128
+ blocking: classification.blocking,
129
+ ignoredResidue: classification.ignoredResidue
130
+ };
131
+ }
132
+ async function writeMarkerFile(repoRoot, branch, dryRun) {
133
+ const markerPath = path.join(repoRoot, DEFAULT_MARKER_FILE);
134
+ const relative = DEFAULT_MARKER_FILE;
135
+ const body = [
136
+ "# Poetic quickstart marker",
137
+ "",
138
+ `Branch: ${branch}`,
139
+ "This file was created by `poetic init quickstart --marker-file`.",
140
+ "It is not meant to be committed. Delete it after confirming local file edits work as expected.",
141
+ ""
142
+ ].join("\n");
143
+ try {
144
+ await fs.access(markerPath);
145
+ throw new Error(`${relative} already exists. Delete it first or choose a clean repository.`);
146
+ } catch (error) {
147
+ if (error.code !== "ENOENT") {
148
+ throw error;
149
+ }
150
+ }
151
+ if (!dryRun) {
152
+ await fs.writeFile(markerPath, body, "utf8");
153
+ }
154
+ }
155
+ function printReadiness(snapshot, repoRoot, branch, gate) {
156
+ writeStdout(chalk.bold("Poetic quickstart"));
157
+ writeStdout(`Repo: ${repoRoot}`);
158
+ writeStdout(`Current branch: ${snapshot.currentBranch}`);
159
+ writeStdout(`Branch role: ${branchRoleLabel(snapshot.branchRole)}`);
160
+ writeStdout(`Working tree: ${snapshot.clean ? "clean" : "has local changes"}`);
161
+ writeStdout(`Suggested working branch: ${branch}`);
162
+ writeStdout();
163
+ writeStdout("Provider readiness:");
164
+ writeStdout(
165
+ ` Gate: ${gate.gateLabel} (${gate.readyCount} ready of ${gate.providers.length} checked)`
166
+ );
167
+ for (const entry of gate.providers) {
168
+ const r = entry.readiness;
169
+ writeStdout(
170
+ ` ${r.displayName}: ${entry.parityLabel}` + (r.installCommand && entry.parityLabel === "missing" ? ` (install: ${r.installCommand})` : "")
171
+ );
172
+ }
173
+ if (gate.remediations.length > 0 && gate.readyCount === 0) {
174
+ writeStdout();
175
+ writeStdout("Remediation (no automatic installs):");
176
+ for (const line of gate.remediations.slice(0, 8)) {
177
+ writeStdout(` ${line}`);
178
+ }
179
+ }
180
+ }
181
+ function printGuidance(options) {
182
+ const branchCommand = options.createdBranch ? void 0 : `poetic init quickstart --branch --branch-name ${options.branch}`;
183
+ writeStdout();
184
+ writeStdout("Next steps:");
185
+ if (branchCommand) {
186
+ writeStdout(` ${branchCommand}`);
187
+ }
188
+ if (options.gate.readyCount === 0) {
189
+ writeStdout(" poetic provider setup --first-run");
190
+ } else {
191
+ writeStdout(" poetic provider list");
192
+ }
193
+ writeStdout(' poetic run task "<small task>"');
194
+ writeStdout(
195
+ ' poetic run competition "<small task>" --variant <provider>:conservative (judge scores / multi-variant)'
196
+ );
197
+ writeStdout(" poetic run competition apply <competition-id> (after competition)");
198
+ writeStdout(`Guide: ${QUICK_START_GUIDE_URL}`);
199
+ writeStdout();
200
+ if (options.dryRun) {
201
+ writeStdout("Dry run: no files or branches were changed.");
202
+ return;
203
+ }
204
+ if (options.createdBranch) {
205
+ writeStdout(`Created branch: ${options.branch}`);
206
+ }
207
+ if (options.markerFile) {
208
+ writeStdout(
209
+ options.wroteMarker ? `Created marker file: ${DEFAULT_MARKER_FILE}` : `Marker file planned: ${DEFAULT_MARKER_FILE}`
210
+ );
211
+ }
212
+ }
213
+ async function runQuickstart(taskParts, rawOptions) {
214
+ const repoRoot = resolveCliRepoRoot(process.cwd());
215
+ const wantsBranch = optionEnabled(rawOptions.branch);
216
+ const wantsMarkerFile = optionEnabled(rawOptions.markerFile);
217
+ const dryRun = optionEnabled(rawOptions.dryRun);
218
+ const snapshot = await inspectGit(repoRoot);
219
+ if (!snapshot.initialized) {
220
+ writeStdout(chalk.bold("Poetic quickstart"));
221
+ writeStdout(`Directory: ${repoRoot}`);
222
+ writeStdout("Git repository: not detected");
223
+ writeStdout();
224
+ writeStdout("Next steps:");
225
+ writeStdout(" cd /path/to/target-git-repo");
226
+ writeStdout(" poetic provider setup --first-run");
227
+ writeStdout(" poetic init quickstart");
228
+ writeStdout(`Guide: ${QUICK_START_GUIDE_URL}`);
229
+ writeStdout();
230
+ writeStdout("Poetic init quickstart runs from the git repository you want Poetic to change.");
231
+ process.exitCode = 1;
232
+ return;
233
+ }
234
+ const preferredBranch = branchNameFromTask(taskParts, rawOptions.branchName);
235
+ const branch = await allocateBranchName(repoRoot, preferredBranch);
236
+ const gate = await collectProviderReadinessGate({
237
+ readinessOptions: {
238
+ ...SETUP_CHECK_READINESS_OPTIONS,
239
+ // Keep the onboarding handoff identical to provider setup/context.
240
+ cliProbeMode: "execute",
241
+ authProbeMode: "passive"
242
+ },
243
+ requireAtLeastOneReady: true
244
+ });
245
+ printReadiness(snapshot, repoRoot, branch, gate);
246
+ if ((wantsBranch || wantsMarkerFile) && !snapshot.clean && !rawOptions.allowDirty) {
247
+ throw new Error(
248
+ formatDirtyGuardRefusal({
249
+ title: "Working tree has local changes.",
250
+ blocking: snapshot.blocking ?? [],
251
+ ignoredResidue: snapshot.ignoredResidue,
252
+ guidance: [
253
+ "Commit or stash blocking user changes first.",
254
+ "Pass --allow-dirty if you understand the risk.",
255
+ "Generated/runtime residue is ignored by this guard and is not deleted automatically."
256
+ ]
257
+ })
258
+ );
259
+ }
260
+ if (wantsMarkerFile && snapshot.branchRole === "protected" && !wantsBranch) {
261
+ throw new Error(
262
+ `Refusing to write ${DEFAULT_MARKER_FILE} on protected branch '${snapshot.currentBranch}'. Run with --branch --marker-file to create a safe working branch first.`
263
+ );
264
+ }
265
+ if (wantsMarkerFile && snapshot.branchRole === "detached" && !wantsBranch) {
266
+ throw new Error(
267
+ `Refusing to write ${DEFAULT_MARKER_FILE} in detached HEAD state. Run with --branch --marker-file to create a safe working branch first.`
268
+ );
269
+ }
270
+ let activeBranch = snapshot.currentBranch;
271
+ if (wantsBranch && !dryRun) {
272
+ const checkout = await git(["checkout", "-b", branch], repoRoot);
273
+ if (checkout.exitCode !== 0) {
274
+ throw new Error(`Failed to create branch '${branch}'.`);
275
+ }
276
+ activeBranch = branch;
277
+ } else if (wantsBranch) {
278
+ activeBranch = branch;
279
+ }
280
+ if (wantsMarkerFile) {
281
+ await writeMarkerFile(repoRoot, activeBranch, dryRun);
282
+ }
283
+ printGuidance({
284
+ branch,
285
+ createdBranch: wantsBranch && !dryRun,
286
+ markerFile: wantsMarkerFile,
287
+ wroteMarker: wantsMarkerFile && !dryRun,
288
+ dryRun,
289
+ gate
290
+ });
291
+ }
292
+ function createQuickstartCommand() {
293
+ const command = new Command("quickstart").description(
294
+ "Check readiness and guide a first safe local Poetic flow without running providers."
295
+ ).argument("[task...]", "Optional task text used to suggest a branch name").option("--dry-run", "Show the branch/file plan without changing the checkout").option("--branch", "Create and check out the suggested safe working branch").option(
296
+ "--branch-name <name>",
297
+ "Use a specific safe branch name; bare names are prefixed with fix/"
298
+ ).option(
299
+ "--marker-file",
300
+ `Create ${DEFAULT_MARKER_FILE} as a local marker file. Requires an explicit flag and never runs providers.`
301
+ ).option("--allow-dirty", "Allow branch/marker actions when local changes already exist").action(async (task, options) => {
302
+ try {
303
+ await runQuickstart(task, options);
304
+ } catch (error) {
305
+ writeStderr(`Error: ${error instanceof Error ? error.message : String(error)}`);
306
+ process.exitCode = 1;
307
+ }
308
+ });
309
+ return command;
310
+ }
311
+
312
+ export {
313
+ runQuickstart,
314
+ createQuickstartCommand
315
+ };
316
+ //# sourceMappingURL=chunk-ZDTMICNY.js.map
@@ -0,0 +1,151 @@
1
+ import {
2
+ SYSTEM_WRITE_PATH_PREFIXES,
3
+ isSystemWritePath
4
+ } from "./chunk-H2AYQIHW.js";
5
+ import {
6
+ companionTestCandidatePaths
7
+ } from "./chunk-UDMS5AD3.js";
8
+
9
+ // src/automation/allowlist-utils.ts
10
+ import { existsSync, readdirSync } from "fs";
11
+ import path from "path";
12
+ var adjacentAllowlistExpansionCache = /* @__PURE__ */ new Map();
13
+ function isPathAllowed(changedPath, allowlist) {
14
+ const normalizedChanged = normalizePath(changedPath);
15
+ for (const allowed of allowlist) {
16
+ const normalizedAllowed = normalizePath(allowed);
17
+ if (normalizedChanged === normalizedAllowed) {
18
+ return true;
19
+ }
20
+ if (normalizedAllowed.endsWith("/") && normalizedChanged.startsWith(normalizedAllowed)) {
21
+ return true;
22
+ }
23
+ if (normalizedChanged.endsWith("/") && normalizedAllowed.startsWith(normalizedChanged)) {
24
+ return true;
25
+ }
26
+ const parentDir = normalizedAllowed.includes("/") ? `${normalizedAllowed.slice(0, normalizedAllowed.lastIndexOf("/") + 1)}` : "";
27
+ if (parentDir.length > 0 && normalizedChanged === parentDir) {
28
+ return true;
29
+ }
30
+ }
31
+ return false;
32
+ }
33
+ function isPathDenied(changedPath, denylist) {
34
+ const normalizedChanged = normalizePath(changedPath);
35
+ for (const denied of denylist) {
36
+ const normalizedDenied = normalizePath(denied);
37
+ if (normalizedChanged === normalizedDenied) {
38
+ return true;
39
+ }
40
+ if (normalizedDenied.endsWith("/") && normalizedChanged.startsWith(normalizedDenied)) {
41
+ return true;
42
+ }
43
+ }
44
+ return false;
45
+ }
46
+ function normalizePath(filePath) {
47
+ const cleaned = filePath.replace(/^\.\//, "");
48
+ return path.normalize(cleaned).replace(/\\/g, "/");
49
+ }
50
+ function filterAllowedFiles(changedFiles, allowlist) {
51
+ return changedFiles.filter((file) => isPathAllowed(file, allowlist));
52
+ }
53
+ function findAllowlistViolations(changedFiles, allowlist) {
54
+ return changedFiles.filter((file) => !isPathAllowed(file, allowlist));
55
+ }
56
+ function expandAllowlistWithAdjacentTests(allowlist, repoRoot = process.cwd()) {
57
+ const cacheKey = `${path.resolve(repoRoot)}\0${allowlist.join("\0")}`;
58
+ const cached = adjacentAllowlistExpansionCache.get(cacheKey);
59
+ if (cached) {
60
+ return [...cached];
61
+ }
62
+ const expanded = [...allowlist];
63
+ const seen = new Set(allowlist);
64
+ for (const entry of allowlist) {
65
+ if (!entry.endsWith(".ts")) {
66
+ for (const candidate of companionTestCandidatePaths(entry)) {
67
+ if (!seen.has(candidate) && existsSync(path.resolve(repoRoot, candidate))) {
68
+ seen.add(candidate);
69
+ expanded.push(candidate);
70
+ }
71
+ }
72
+ continue;
73
+ }
74
+ if (!entry.startsWith("src/")) continue;
75
+ const basename = entry.replace(/\.ts$/, "").split("/").pop();
76
+ if (!basename) continue;
77
+ const relPath = entry.slice(4).replace(/\.ts$/, "");
78
+ const dir = entry.slice(0, entry.lastIndexOf("/") + 1);
79
+ const candidates = [];
80
+ const siblingTest = `${entry.replace(/\.ts$/, ".test.ts")}`;
81
+ if (existsSync(path.resolve(repoRoot, siblingTest))) {
82
+ candidates.push(siblingTest);
83
+ }
84
+ const dunderTest = `${dir}__tests__/${basename}.test.ts`;
85
+ if (existsSync(path.resolve(repoRoot, dunderTest))) {
86
+ candidates.push(dunderTest);
87
+ }
88
+ if (relPath.startsWith("cli/commands/")) {
89
+ candidates.push(`tests/cli/${basename}-command.test.ts`);
90
+ candidates.push(`tests/unit/cli/commands/${basename}-command-help.test.ts`);
91
+ }
92
+ if (relPath.startsWith("cli/")) {
93
+ candidates.push(`tests/unit/cli/${basename}.test.ts`);
94
+ }
95
+ candidates.push(`tests/unit/${relPath}.test.ts`);
96
+ const unitDir = path.resolve(repoRoot, "tests", "unit", path.dirname(relPath));
97
+ if (existsSync(unitDir)) {
98
+ try {
99
+ const entries = readdirSync(unitDir);
100
+ for (const candidate of entries) {
101
+ if (candidate.startsWith(`${basename}-`) && candidate.endsWith(".test.ts")) {
102
+ candidates.push(path.posix.join("tests", "unit", path.dirname(relPath), candidate));
103
+ }
104
+ }
105
+ } catch {
106
+ }
107
+ }
108
+ const companionCandidates = [
109
+ `${dir}types.ts`,
110
+ `${dir}interfaces.ts`,
111
+ `${dir}i-${basename}.ts`
112
+ ].filter((candidate) => candidate !== entry);
113
+ for (const candidate of companionCandidates) {
114
+ if (existsSync(path.resolve(repoRoot, candidate))) {
115
+ candidates.push(candidate);
116
+ }
117
+ }
118
+ for (const candidate of candidates) {
119
+ if (!seen.has(candidate)) {
120
+ seen.add(candidate);
121
+ expanded.push(candidate);
122
+ }
123
+ }
124
+ }
125
+ adjacentAllowlistExpansionCache.set(cacheKey, expanded);
126
+ return [...expanded];
127
+ }
128
+ function findDenylistViolations(changedFiles, denylist) {
129
+ return changedFiles.filter((file) => isPathDenied(file, denylist));
130
+ }
131
+ function isAllowlistEmpty(allowlist) {
132
+ return !allowlist || allowlist.length === 0;
133
+ }
134
+ var SYSTEM_WRITE_PATHS = SYSTEM_WRITE_PATH_PREFIXES;
135
+ function isSystemWritePath2(filePath) {
136
+ return isSystemWritePath(filePath);
137
+ }
138
+
139
+ export {
140
+ isPathAllowed,
141
+ isPathDenied,
142
+ normalizePath,
143
+ filterAllowedFiles,
144
+ findAllowlistViolations,
145
+ expandAllowlistWithAdjacentTests,
146
+ findDenylistViolations,
147
+ isAllowlistEmpty,
148
+ SYSTEM_WRITE_PATHS,
149
+ isSystemWritePath2 as isSystemWritePath
150
+ };
151
+ //# sourceMappingURL=chunk-ZIPWI2LY.js.map