@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,1092 @@
1
+ import {
2
+ resolveGrokReasoningEffortLookupModel
3
+ } from "./chunk-AHWAZ2MU.js";
4
+ import {
5
+ GROK_CLI_PROBE_TIMEOUT_MS,
6
+ GROK_DONT_ASK_MIN_VERSION,
7
+ GROK_READ_ONLY_ALLOW_RULES,
8
+ allowsGrokBrowserAuth,
9
+ buildGrokArgv,
10
+ capturedStdoutHasTerminalEnvelope,
11
+ createGrokCliChildEnv,
12
+ createGrokTmuxCompletionSignal,
13
+ formatGrokStreamLineForDisplay,
14
+ grokCliSupportsDontAsk,
15
+ grokResolvedHasLockedReadOnlyPosture,
16
+ hasGrokHeadlessApiKey,
17
+ isStderrOnlyNoise,
18
+ metadata,
19
+ parseGrokOutput
20
+ } from "./chunk-Y34DUC4A.js";
21
+ import "./chunk-MYLH2S4G.js";
22
+ import {
23
+ runMockNative
24
+ } from "./chunk-P47VN5F4.js";
25
+ import {
26
+ DEFAULT_PROVIDER_CIRCUIT_BREAKER_OPTIONS,
27
+ RetryBudget,
28
+ assertWorkspaceRetryIsSafe,
29
+ captureWorkspaceRetryState,
30
+ executeWithResilience,
31
+ recordInvocationTiming,
32
+ reportTransportDecision,
33
+ resolveProviderTimeoutMs,
34
+ selectProviderExecutor
35
+ } from "./chunk-R2ZYWNW3.js";
36
+ import {
37
+ detectGitChangedFiles,
38
+ getGitStatusPaths
39
+ } from "./chunk-QJYIHVXT.js";
40
+ import "./chunk-4CUY7AFY.js";
41
+ import {
42
+ acquireRateLimitToken
43
+ } from "./chunk-MWK5UZQ3.js";
44
+ import "./chunk-MN6PL4AN.js";
45
+ import "./chunk-NS33V3IM.js";
46
+ import {
47
+ inferProviderFailurePhase,
48
+ recordProviderRunFailure,
49
+ recordProviderRunSuccess
50
+ } from "./chunk-UHRBTZYY.js";
51
+ import "./chunk-H2AYQIHW.js";
52
+ import {
53
+ resolveConfiguredProviderExecutionTransport
54
+ } from "./chunk-IZZK3H6I.js";
55
+ import "./chunk-25QL3M3L.js";
56
+ import "./chunk-VBNCKCCI.js";
57
+ import "./chunk-SZ7DL357.js";
58
+ import "./chunk-7DNSNKJV.js";
59
+ import {
60
+ resolveProviderStreamingEnabled
61
+ } from "./chunk-HIO33P3G.js";
62
+ import "./chunk-APV6MK5E.js";
63
+ import "./chunk-ZYG7GGKO.js";
64
+ import {
65
+ TMUX_COMPLETION_SIGNAL_GRACE_MS,
66
+ composeRawChunkObservers,
67
+ executeProviderCommand,
68
+ isNonEmptyRawChunk,
69
+ providerOutputTail,
70
+ redactProviderArgv
71
+ } from "./chunk-SQZRPY23.js";
72
+ import "./chunk-E3NTPHEO.js";
73
+ import "./chunk-4NXPXE62.js";
74
+ import "./chunk-4VJITV4P.js";
75
+ import "./chunk-GHHFDU2U.js";
76
+ import {
77
+ authFailureEvidence,
78
+ isAuthFailureError,
79
+ recordAuthOutcome
80
+ } from "./chunk-R6W23LKN.js";
81
+ import "./chunk-UH3JJSHK.js";
82
+ import "./chunk-FC23CTXV.js";
83
+ import "./chunk-36PEBZAF.js";
84
+ import {
85
+ resolveProviderCliCommand
86
+ } from "./chunk-SURZ2WFE.js";
87
+ import "./chunk-SP3LFU6B.js";
88
+ import "./chunk-R4UWBC35.js";
89
+ import "./chunk-2YFUIER7.js";
90
+ import "./chunk-T6VPI2XP.js";
91
+ import "./chunk-3733QTI7.js";
92
+ import "./chunk-J62KPGII.js";
93
+ import "./chunk-XAONGNST.js";
94
+ import "./chunk-GAFJEYLK.js";
95
+ import "./chunk-H6G7QRMQ.js";
96
+ import "./chunk-J6P3FWWW.js";
97
+ import "./chunk-YWNAHW24.js";
98
+ import "./chunk-IATQ7NBI.js";
99
+ import "./chunk-BSE4R6XD.js";
100
+ import {
101
+ applyWorkspaceMode,
102
+ resolveEffectiveMode
103
+ } from "./chunk-KAT4RXUT.js";
104
+ import "./chunk-JSWMRQYG.js";
105
+ import "./chunk-XGYF2QMZ.js";
106
+ import "./chunk-72YTZMAM.js";
107
+ import "./chunk-S2VQCZO4.js";
108
+ import "./chunk-WMPU2UOV.js";
109
+ import "./chunk-JQD5VYKR.js";
110
+ import "./chunk-XT2ZQVTC.js";
111
+ import "./chunk-YGXKOBQQ.js";
112
+ import "./chunk-V72RMBM4.js";
113
+ import "./chunk-ZDTGECTN.js";
114
+ import "./chunk-G36W2T2S.js";
115
+ import "./chunk-GKN3HMN4.js";
116
+ import "./chunk-QVZMFDYG.js";
117
+ import "./chunk-S54MKU6V.js";
118
+ import "./chunk-3S62LLWJ.js";
119
+ import "./chunk-45FPSA3B.js";
120
+ import {
121
+ emitTelemetryFallbackWarning
122
+ } from "./chunk-YMX76IOS.js";
123
+ import "./chunk-6Y5U7UFY.js";
124
+ import "./chunk-XV7NZL4B.js";
125
+ import "./chunk-CD7ISXA4.js";
126
+ import "./chunk-QGJDMEOV.js";
127
+ import "./chunk-6TZJRKNW.js";
128
+ import {
129
+ requireActivePolicyBoundary
130
+ } from "./chunk-2AICM4P3.js";
131
+ import "./chunk-5WCQRDRB.js";
132
+ import "./chunk-5WRLK5KW.js";
133
+ import {
134
+ mkPoeticTempDir
135
+ } from "./chunk-C57KJOUQ.js";
136
+ import "./chunk-DF5SLDE4.js";
137
+ import "./chunk-TGON4N4O.js";
138
+ import "./chunk-I5WRT7ZR.js";
139
+ import "./chunk-A3YGID55.js";
140
+ import "./chunk-5EERLVZB.js";
141
+ import "./chunk-XQD2B6BB.js";
142
+ import "./chunk-34CNP2HB.js";
143
+ import "./chunk-KNDYMVWN.js";
144
+ import "./chunk-RWREC3KJ.js";
145
+ import "./chunk-7R2WLDOS.js";
146
+ import "./chunk-LAMKBTXX.js";
147
+ import "./chunk-FD4ERYEG.js";
148
+ import "./chunk-KTMW65UX.js";
149
+ import "./chunk-GNH3QGTL.js";
150
+ import "./chunk-UDMS5AD3.js";
151
+ import "./chunk-MWHLBPNU.js";
152
+ import "./chunk-JLS65NUQ.js";
153
+ import "./chunk-TRSVUPCX.js";
154
+ import "./chunk-FKAUPHMR.js";
155
+ import "./chunk-TSXGRLPR.js";
156
+ import {
157
+ ProviderExecutionError
158
+ } from "./chunk-LUVKFFWR.js";
159
+ import "./chunk-ENRGKNR5.js";
160
+ import "./chunk-XB5YLCLB.js";
161
+ import "./chunk-QOCOVLUH.js";
162
+ import "./chunk-2VSQMRCB.js";
163
+ import {
164
+ logReasoningEffortResolution,
165
+ resolveReasoningEffort
166
+ } from "./chunk-ON3G73BU.js";
167
+ import "./chunk-3G6FZCRF.js";
168
+ import "./chunk-N5DX4JAK.js";
169
+ import "./chunk-4BIPZBT7.js";
170
+ import "./chunk-7GDRQBQC.js";
171
+ import "./chunk-PGSPX4SU.js";
172
+ import "./chunk-AT4TNPWW.js";
173
+ import "./chunk-GSGD5E4C.js";
174
+ import "./chunk-UI2F6DJ5.js";
175
+ import "./chunk-4BTDUT2S.js";
176
+ import "./chunk-L6OM4A22.js";
177
+ import "./chunk-G4THLFV3.js";
178
+ import "./chunk-RGWHUI5E.js";
179
+ import "./chunk-UUH2RVKS.js";
180
+ import "./chunk-LEIIWPWQ.js";
181
+ import "./chunk-L7JZLXQL.js";
182
+ import "./chunk-IZYIQQ7X.js";
183
+ import "./chunk-JPKSXKNB.js";
184
+ import "./chunk-TAJPCXSB.js";
185
+ import "./chunk-XZE4XARH.js";
186
+ import {
187
+ debugLog
188
+ } from "./chunk-EJGCZGUF.js";
189
+ import "./chunk-LPITVM7M.js";
190
+ import {
191
+ POETIC_ALLOW_MOCK_PROVIDERS,
192
+ POETIC_GROK_TRANSPORT_WATCHDOG,
193
+ POETIC_MINIMAL_PROMPTS,
194
+ POETIC_MOCK_PROVIDERS,
195
+ POETIC_SKIP_GROK,
196
+ readEnv,
197
+ readRawEnv
198
+ } from "./chunk-5DLKYTQX.js";
199
+ import "./chunk-PZ5AY32C.js";
200
+
201
+ // src/core/providers/grok/execution/runner.ts
202
+ import { rm, writeFile } from "fs/promises";
203
+ import path from "path";
204
+
205
+ // src/core/providers/grok/prompt-adapter.ts
206
+ function isMinimalPromptsEnabled() {
207
+ return readEnv(POETIC_MINIMAL_PROMPTS).value === true;
208
+ }
209
+ function resolveMode(options) {
210
+ if (isMinimalPromptsEnabled()) return "minimal";
211
+ return resolveEffectiveMode(
212
+ options.promptMode ?? null,
213
+ options.globalWorkspaceMode ?? null,
214
+ "grok"
215
+ );
216
+ }
217
+ function appendNativeSubagentGuidance(prompt, nativeSubagents) {
218
+ if (!nativeSubagents) {
219
+ return { prompt, applied: false };
220
+ }
221
+ const request = typeof nativeSubagents.count === "number" ? `Run ${nativeSubagents.count} native Grok subagents for this task.` : "Run a swarm of native Grok subagents for this task.";
222
+ const guidance = [
223
+ "",
224
+ "Provider-native subagents:",
225
+ request,
226
+ "Give the subagents disjoint responsibilities, ask them for concise findings or changes, then synthesize the final answer yourself.",
227
+ // Verified on grok 0.2.73: subagent count is not hard-capped, but only
228
+ // ~8 run simultaneously; extras queue and rate-limit retries increase.
229
+ "About 8 subagents run simultaneously; if you need more, launch them in waves of about 8 rather than all at once.",
230
+ "Do not run Poetic commands recursively."
231
+ ].join("\n");
232
+ return { prompt: `${prompt.trimEnd()}
233
+ ${guidance}`, applied: true };
234
+ }
235
+ function adaptPromptForGrok(prompt, options = {}) {
236
+ const mode = resolveMode(options);
237
+ const subagentResult = appendNativeSubagentGuidance(prompt, options.nativeSubagents);
238
+ const result = applyWorkspaceMode(subagentResult.prompt, {
239
+ mode,
240
+ provider: "GROK",
241
+ executionIntent: options.executionIntent ?? "code",
242
+ strategy: options.strategy ?? "conservative",
243
+ targetFiles: options.files,
244
+ projectRoot: options.projectRoot
245
+ });
246
+ const operations = [...result.operations];
247
+ if (subagentResult.applied) {
248
+ operations.push("Injected Grok native subagent request");
249
+ }
250
+ return {
251
+ original: prompt,
252
+ adapted: result.adapted,
253
+ mode: result.mode,
254
+ adaptations: operations,
255
+ promptFingerprint: result.adaptedHash,
256
+ finalPromptLength: result.lengths.adapted,
257
+ completionSignalVariant: result.completionSignalVariant
258
+ };
259
+ }
260
+
261
+ // src/core/providers/grok/transport-death-watchdog.ts
262
+ import { StringDecoder } from "string_decoder";
263
+ var TRANSPORT_CLOSE_PATTERN = /Transport channel closed, when Auth\(AuthorizationRequired\)/i;
264
+ var TOOL_OUTPUT_ERROR_PATTERN = /tool[_\s-]?output[_\s-]?error/i;
265
+ var DEFAULT_GROK_SPIRAL_TOOL_ERROR_THRESHOLD = 3;
266
+ var DEFAULT_GROK_SPIRAL_POST_CLOSE_LINE_WINDOW = 15;
267
+ function createGrokTransportDeathWatchdog(options) {
268
+ const threshold = Math.max(
269
+ 1,
270
+ options.toolErrorThreshold ?? DEFAULT_GROK_SPIRAL_TOOL_ERROR_THRESHOLD
271
+ );
272
+ const postCloseLineWindow = Math.max(
273
+ threshold,
274
+ options.postCloseLineWindow ?? DEFAULT_GROK_SPIRAL_POST_CLOSE_LINE_WINDOW
275
+ );
276
+ let transportCloseCount = 0;
277
+ let postTransportToolErrorCount = 0;
278
+ let linesSinceTransportClose = 0;
279
+ let armed = false;
280
+ let tripped = false;
281
+ let pendingPartialLine = "";
282
+ let decoder = new StringDecoder("utf8");
283
+ const snapshot = () => ({
284
+ transportCloseCount,
285
+ postTransportToolErrorCount,
286
+ threshold
287
+ });
288
+ const observeLine = (line) => {
289
+ if (TRANSPORT_CLOSE_PATTERN.test(line)) {
290
+ transportCloseCount += 1;
291
+ armed = true;
292
+ postTransportToolErrorCount = 0;
293
+ linesSinceTransportClose = 0;
294
+ return;
295
+ }
296
+ if (!armed) return;
297
+ linesSinceTransportClose += 1;
298
+ if (TOOL_OUTPUT_ERROR_PATTERN.test(line)) {
299
+ postTransportToolErrorCount += 1;
300
+ if (postTransportToolErrorCount >= threshold) {
301
+ tripped = true;
302
+ options.onSpiralDetected(snapshot());
303
+ return;
304
+ }
305
+ }
306
+ if (linesSinceTransportClose >= postCloseLineWindow) {
307
+ armed = false;
308
+ }
309
+ };
310
+ const observeText = (text) => {
311
+ if (tripped || !text) return;
312
+ const segments = (pendingPartialLine + text).split(/\r?\n/);
313
+ pendingPartialLine = segments.pop() ?? "";
314
+ for (const segment of segments) {
315
+ const line = segment.trim();
316
+ if (!line) continue;
317
+ observeLine(line);
318
+ if (tripped) return;
319
+ }
320
+ const partial = pendingPartialLine.trim();
321
+ if (partial && (TRANSPORT_CLOSE_PATTERN.test(partial) || TOOL_OUTPUT_ERROR_PATTERN.test(partial))) {
322
+ pendingPartialLine = "";
323
+ observeLine(partial);
324
+ }
325
+ };
326
+ const observe = (chunk) => {
327
+ if (tripped || !isNonEmptyRawChunk(chunk)) return;
328
+ if (typeof chunk === "string") {
329
+ const held = decoder.end();
330
+ decoder = new StringDecoder("utf8");
331
+ observeText(held + chunk);
332
+ return;
333
+ }
334
+ const text = decoder.write(Buffer.from(chunk));
335
+ observeText(text);
336
+ };
337
+ return {
338
+ observe,
339
+ hasTripped: () => tripped,
340
+ snapshot
341
+ };
342
+ }
343
+
344
+ // src/core/providers/grok/execution/runner.ts
345
+ function shouldStreamGrokOutput(outputFormat, env) {
346
+ if (outputFormat !== "streaming-json") return false;
347
+ return resolveProviderStreamingEnabled(env);
348
+ }
349
+ var GROK_DEADLINE_SAFETY_BUFFER_MS = 5e3;
350
+ var GROK_AUTHORITATIVE_STDOUT_CEILING_BYTES = 32 * 1024 * 1024;
351
+ function grokCategoryToRetryable(category) {
352
+ return category === "rate_limit" || category === "network";
353
+ }
354
+ function grokEditIntentRequiresMutation(options) {
355
+ if (options.allowEmptyResults === true) return false;
356
+ if (options.readOnlyWorkingDir === true) return false;
357
+ if (options.executionIntent === "analysis") return false;
358
+ return true;
359
+ }
360
+ function readGrokBuilderEnvString(env, key) {
361
+ const source = env ?? process.env;
362
+ const value = source[key];
363
+ if (typeof value !== "string") return void 0;
364
+ const trimmed = value.trim();
365
+ return trimmed.length > 0 ? trimmed : void 0;
366
+ }
367
+ function grokDontAskUnsupportedForEditMessage() {
368
+ return [
369
+ "[Grok] permissionMode=dontAsk is not supported for edit/mixed execution.",
370
+ "ProviderRunOptions has no allowRules channel for a bounded edit allowlist;",
371
+ "applying read-only allows would deny Edit and fail mid-run.",
372
+ "Use readOnlyWorkingDir or executionIntent=analysis for auto dontAsk inspect/search,",
373
+ "or omit permissionMode / unset POETIC_GROK_PERMISSION_MODE for headless edit (default --always-approve),",
374
+ "or set permissionMode=bypassPermissions when policy permits."
375
+ ].join(" ");
376
+ }
377
+ function throwGrokDontAskUnsupportedForEdit() {
378
+ throw new ProviderExecutionError(grokDontAskUnsupportedForEditMessage(), {
379
+ providerName: metadata.id,
380
+ retryable: false,
381
+ reason: "unsupported_permission_mode"
382
+ });
383
+ }
384
+ function throwGrokUnsupportedLockedReadOnlyPosture(source) {
385
+ const sourceNote = source === "explicit-dontAsk" ? "permissionMode=dontAsk" : "semantic auto-readonly / analysis (readOnlyWorkingDir or executionIntent=analysis)";
386
+ throw new ProviderExecutionError(
387
+ [
388
+ `[Grok] ${sourceNote} requires Grok CLI >= ${GROK_DONT_ASK_MIN_VERSION}`,
389
+ "for the locked native read-only permission posture",
390
+ "(dontAsk + inspect/search allows + --tools/--disallowed-tools/--deny).",
391
+ "The installed CLI version does not support this posture; upgrade grok.",
392
+ source === "auto-readonly" ? "Poetic will not fall back to default permissions + --always-approve for semantic auto-readonly runs." : "Upgrade grok or omit permissionMode."
393
+ ].join(" "),
394
+ {
395
+ providerName: metadata.id,
396
+ retryable: false,
397
+ reason: "unsupported_permission_mode"
398
+ }
399
+ );
400
+ }
401
+ function resolveGrokPermissionArgvInput(options) {
402
+ const lockPermissionMode = options.isReadOnlyRun;
403
+ const explicit = options.permissionMode;
404
+ if (explicit === "dontAsk" && !options.isReadOnlyRun) {
405
+ throwGrokDontAskUnsupportedForEdit();
406
+ }
407
+ if (explicit) {
408
+ if (explicit === "dontAsk") {
409
+ if (!options.supportsDontAsk) {
410
+ throwGrokUnsupportedLockedReadOnlyPosture("explicit-dontAsk");
411
+ }
412
+ return {
413
+ permissionMode: "dontAsk",
414
+ allowRules: GROK_READ_ONLY_ALLOW_RULES,
415
+ lockPermissionMode: true,
416
+ lockReadOnlyPosture: true
417
+ };
418
+ }
419
+ return {
420
+ permissionMode: explicit,
421
+ lockPermissionMode
422
+ };
423
+ }
424
+ if (options.isReadOnlyRun) {
425
+ if (!options.supportsDontAsk) {
426
+ throwGrokUnsupportedLockedReadOnlyPosture("auto-readonly");
427
+ }
428
+ return {
429
+ permissionMode: "dontAsk",
430
+ allowRules: GROK_READ_ONLY_ALLOW_RULES,
431
+ lockPermissionMode: true,
432
+ lockReadOnlyPosture: true
433
+ };
434
+ }
435
+ return { lockPermissionMode };
436
+ }
437
+ function isTerminationReason(reason) {
438
+ if (!reason) return false;
439
+ return reason === "hard_timeout" || reason === "idle_timeout" || reason === "timeout" || reason === "abort" || reason === "signal" || reason.startsWith("signal_") || reason.startsWith("plm_");
440
+ }
441
+ function isTimeoutTerminationReason(reason) {
442
+ if (!reason) return false;
443
+ return reason === "hard_timeout" || reason === "idle_timeout" || reason === "timeout" || reason === "plm_timeout";
444
+ }
445
+ function grokCategoryToReason(category) {
446
+ switch (category) {
447
+ case "auth":
448
+ return "auth";
449
+ case "fs_permission_denied":
450
+ return "fs_permission_denied";
451
+ case "model_rejection":
452
+ return "model_rejection";
453
+ case "max_turns_exceeded":
454
+ return "max_turns_exceeded";
455
+ case "provider_transport_failure":
456
+ return "provider_transport_failure";
457
+ case "rate_limit":
458
+ return "rate_limit";
459
+ case "network":
460
+ return "network";
461
+ case "runtime":
462
+ return "runtime";
463
+ default:
464
+ return "unknown";
465
+ }
466
+ }
467
+ function trySalvageCompletedGrokOutput(error, outputFormatIsJson) {
468
+ if (!outputFormatIsJson || !(error instanceof ProviderExecutionError)) {
469
+ return void 0;
470
+ }
471
+ if (typeof error.stdout !== "string" || error.stdout.trim().length === 0) {
472
+ return void 0;
473
+ }
474
+ if (!capturedStdoutHasTerminalEnvelope(error.stdout)) {
475
+ return void 0;
476
+ }
477
+ if (parseGrokOutput(error.stdout, error.stderr ?? "", 0).type !== "success") {
478
+ return void 0;
479
+ }
480
+ return {
481
+ stdout: error.stdout,
482
+ stderr: error.stderr ?? "",
483
+ exitCode: 0
484
+ };
485
+ }
486
+ async function recordRunTiming(options) {
487
+ await recordInvocationTiming({
488
+ providerId: metadata.id,
489
+ modelId: options.resolvedModel ?? options.model ?? metadata.defaultModel ?? "default",
490
+ timeRequestSentMs: options.startMs,
491
+ timeFirstTokenMs: options.firstOutputMs ?? null,
492
+ timeLastTokenMs: options.endMs,
493
+ tokensIn: options.tokensIn ?? null,
494
+ tokensOut: options.tokensOut ?? null,
495
+ status: options.status,
496
+ errorCode: options.errorCode ?? null,
497
+ env: options.env
498
+ });
499
+ }
500
+ function shouldSkipGrok() {
501
+ const value = readEnv(POETIC_SKIP_GROK).value;
502
+ return typeof value === "string" && value.trim().length > 0 && value !== "0";
503
+ }
504
+ function areMockProvidersAllowed(env) {
505
+ const raw = env?.POETIC_ALLOW_MOCK_PROVIDERS;
506
+ if (raw !== void 0) {
507
+ return !["", "0", "false", "no", "off"].includes(raw.trim().toLowerCase());
508
+ }
509
+ return readEnv(POETIC_ALLOW_MOCK_PROVIDERS).value === true;
510
+ }
511
+ function isGrokTransportWatchdogDisabled(env) {
512
+ const raw = env ? env.POETIC_GROK_TRANSPORT_WATCHDOG : readRawEnv(POETIC_GROK_TRANSPORT_WATCHDOG);
513
+ return typeof raw === "string" && raw.trim() === "0";
514
+ }
515
+ function combineAbortSignals(outer, inner) {
516
+ if (!outer) return inner;
517
+ if (!inner) return outer;
518
+ const anyFn = AbortSignal.any;
519
+ if (typeof anyFn === "function") {
520
+ return anyFn([outer, inner]);
521
+ }
522
+ const controller = new AbortController();
523
+ const onAbort = () => controller.abort();
524
+ if (outer.aborted || inner.aborted) {
525
+ controller.abort();
526
+ } else {
527
+ outer.addEventListener("abort", onAbort, { once: true });
528
+ inner.addEventListener("abort", onAbort, { once: true });
529
+ }
530
+ return controller.signal;
531
+ }
532
+ function recordGrokAuthOutcomeBestEffort(result, evidence, env) {
533
+ void recordAuthOutcome(metadata.id, result, evidence, { env }).catch(() => {
534
+ });
535
+ }
536
+ function attachGrokDiagnosticsToParsedError(parsedError, grokDiagnostics) {
537
+ if (parsedError && typeof parsedError === "object" && !Array.isArray(parsedError)) {
538
+ return {
539
+ ...parsedError,
540
+ grokDiagnostics
541
+ };
542
+ }
543
+ return {
544
+ type: "grok_automation_diagnostics",
545
+ grokDiagnostics
546
+ };
547
+ }
548
+ function withGrokDiagnosticsForExecutionError(error, grokDiagnostics) {
549
+ return new ProviderExecutionError(error.message, {
550
+ providerName: metadata.id,
551
+ retryable: error.retryable,
552
+ exitCode: error.exitCode,
553
+ statusCode: error.statusCode,
554
+ reason: error.reason,
555
+ idleTerminated: error.idleTerminated,
556
+ signal: error.signal,
557
+ terminationSource: error.terminationSource,
558
+ stdout: error.stdout,
559
+ stderr: error.stderr,
560
+ // The public fields above may already be truncated, and a stream size must
561
+ // never be re-derived from a truncated string. Forward the structured sizes.
562
+ streamBytes: { stdout: error.stdoutBytes, stderr: error.stderrBytes },
563
+ cause: error.cause,
564
+ parsedError: attachGrokDiagnosticsToParsedError(error.parsedError, {
565
+ ...grokDiagnostics,
566
+ failureStage: grokDiagnostics.failureStage ?? "task_execution"
567
+ })
568
+ });
569
+ }
570
+ async function writePromptToTempFile(prompt) {
571
+ const dir = await mkPoeticTempDir("grok");
572
+ const file = path.join(dir, "prompt.txt");
573
+ await writeFile(file, prompt, "utf8");
574
+ const cleanup = async () => {
575
+ try {
576
+ await rm(dir, { recursive: true, force: true });
577
+ } catch {
578
+ }
579
+ };
580
+ return { file, cleanup };
581
+ }
582
+ async function probeGrokCliVersionRaw(env) {
583
+ const { execa } = await import("execa");
584
+ const { command, prefixArgs } = resolveProviderCliCommand(metadata.id);
585
+ const result = await execa(command, [...prefixArgs, "--version"], {
586
+ reject: false,
587
+ timeout: GROK_CLI_PROBE_TIMEOUT_MS,
588
+ stdio: "pipe",
589
+ env,
590
+ extendEnv: true
591
+ });
592
+ if (result.exitCode !== 0) {
593
+ throw new Error(`grok --version exited ${result.exitCode}`);
594
+ }
595
+ return result.stdout ?? "";
596
+ }
597
+ async function runGrokNative(options) {
598
+ if (shouldSkipGrok()) {
599
+ const stderr = "Grok provider skipped via POETIC_SKIP_GROK";
600
+ return {
601
+ stdout: "",
602
+ stderr,
603
+ exitCode: 1,
604
+ skipped: true,
605
+ skipReason: "POETIC_SKIP_GROK",
606
+ commandPath: metadata.id,
607
+ argvRedacted: [],
608
+ stdoutTail: "",
609
+ stderrTail: providerOutputTail(stderr)
610
+ };
611
+ }
612
+ const mockProvidersEnabled = options.env?.POETIC_MOCK_PROVIDERS === "1" || readEnv(POETIC_MOCK_PROVIDERS).value === "1";
613
+ if (mockProvidersEnabled) {
614
+ emitTelemetryFallbackWarning("POETIC_MOCK_PROVIDERS enabled for Grok; responses are synthetic");
615
+ if (process.env.NODE_ENV === "production" && !areMockProvidersAllowed(options.env)) {
616
+ throw new Error(
617
+ "POETIC_MOCK_PROVIDERS is enabled in production without explicit allow; aborting to prevent synthetic responses."
618
+ );
619
+ }
620
+ return runMockNative({
621
+ ...options,
622
+ provider: metadata.id
623
+ });
624
+ }
625
+ const resolvedTimeoutMs = resolveProviderTimeoutMs(metadata.id, options.timeout);
626
+ await acquireRateLimitToken(metadata.id, options.model);
627
+ const { command, prefixArgs } = resolveProviderCliCommand(metadata.id);
628
+ const effectiveEnv = createGrokCliChildEnv(options.env);
629
+ const hasHeadlessApiKey = hasGrokHeadlessApiKey(effectiveEnv);
630
+ const allowsBrowserAuth = allowsGrokBrowserAuth(effectiveEnv);
631
+ const grokDiagnostics = {
632
+ hasHeadlessApiKey,
633
+ allowsBrowserAuth,
634
+ authCache: "not_checked",
635
+ authPath: hasHeadlessApiKey ? "api_key" : void 0
636
+ };
637
+ grokDiagnostics.authPath = hasHeadlessApiKey ? "api_key" : allowsBrowserAuth ? "browser_auth_probe" : "cli_auth_file_probe";
638
+ const effortLookupModel = options.modelReasoningEffort ? await resolveGrokReasoningEffortLookupModel(options.model) : options.model;
639
+ const reasoningResolution = options.modelReasoningEffort ? resolveReasoningEffort(metadata.id, options.modelReasoningEffort, true, effortLookupModel) : void 0;
640
+ if (reasoningResolution) {
641
+ logReasoningEffortResolution(reasoningResolution, metadata.id);
642
+ }
643
+ const workspaceModeRequested = options.workspaceMode ?? options.promptMode;
644
+ const adaptation = adaptPromptForGrok(options.prompt, {
645
+ executionIntent: options.executionIntent,
646
+ files: options.files,
647
+ strategy: options.strategy,
648
+ promptMode: workspaceModeRequested,
649
+ nativeSubagents: options.nativeSubagents,
650
+ projectRoot: options.workingDir
651
+ });
652
+ const workspaceModeApplied = adaptation.mode;
653
+ const baselineStatusPaths = await getGitStatusPaths(options.workingDir).catch(
654
+ () => /* @__PURE__ */ new Set()
655
+ );
656
+ const { file: promptFile, cleanup } = await writePromptToTempFile(adaptation.adapted);
657
+ let executionStartMs;
658
+ let firstOutputMs;
659
+ let mutationPolicyBoundary;
660
+ try {
661
+ const isReadOnlyRun = options.readOnlyWorkingDir === true || options.executionIntent === "analysis";
662
+ const envPermissionMode = readGrokBuilderEnvString(options.env, "POETIC_GROK_PERMISSION_MODE");
663
+ const mayUseDontAsk = options.permissionMode === "dontAsk" || envPermissionMode === "dontAsk" || isReadOnlyRun;
664
+ const supportsDontAsk = mayUseDontAsk ? await grokCliSupportsDontAsk(() => probeGrokCliVersionRaw(options.env)) : false;
665
+ const permissionInput = resolveGrokPermissionArgvInput({
666
+ permissionMode: options.permissionMode,
667
+ isReadOnlyRun,
668
+ supportsDontAsk
669
+ });
670
+ const grokReasoningEffort = reasoningResolution?.nativeParam === "max" ? void 0 : reasoningResolution?.nativeParam;
671
+ const { args, resolved } = buildGrokArgv({
672
+ promptFile,
673
+ model: options.model,
674
+ modelReasoningEffort: grokReasoningEffort,
675
+ env: options.env,
676
+ resumeSessionId: options.resumeSessionId,
677
+ // Version-gate only when dontAsk is in play; omit otherwise so non-dontAsk
678
+ // modes are unaffected by probe failures.
679
+ ...mayUseDontAsk ? { supportsDontAsk } : {},
680
+ ...permissionInput
681
+ });
682
+ const grokPlainOutputForcesHeadless = resolved.outputFormat === "plain" ? "grok plain output has no JSON terminal envelope for tmux-exec completion; using headless" : void 0;
683
+ if (!isReadOnlyRun && resolved.permissionMode === "dontAsk") {
684
+ throwGrokDontAskUnsupportedForEdit();
685
+ }
686
+ if (grokEditIntentRequiresMutation(options) && !resolved.alwaysApprove && resolved.permissionMode === "default") {
687
+ throw new ProviderExecutionError(
688
+ [
689
+ "[Grok] Edit run cannot proceed with auto-approve disabled.",
690
+ "Headless edit tool use requires --always-approve (default) or --permission-mode bypassPermissions.",
691
+ "Unset POETIC_GROK_AUTO_APPROVE / POETIC_GROK_ALWAYS_APPROVE, or set an explicit safe permission mode."
692
+ ].join(" "),
693
+ {
694
+ providerName: metadata.id,
695
+ retryable: false,
696
+ reason: "auto_approve_disabled",
697
+ parsedError: attachGrokDiagnosticsToParsedError(
698
+ {
699
+ type: "grok_auto_approve_disabled",
700
+ message: "Edit run with auto-approve disabled",
701
+ permissionMode: resolved.permissionMode
702
+ },
703
+ { ...grokDiagnostics, failureStage: "pre_execution_probe" }
704
+ )
705
+ }
706
+ );
707
+ }
708
+ if (resolved.alwaysApprove) {
709
+ mutationPolicyBoundary = requireActivePolicyBoundary(
710
+ "Grok",
711
+ "Grok automation bypass (--always-approve)",
712
+ metadata.id,
713
+ { env: options.env }
714
+ );
715
+ }
716
+ const hasLockedNativeReadOnlyPosture = grokResolvedHasLockedReadOnlyPosture(resolved);
717
+ if (resolved.permissionMode === "bypassPermissions" || resolved.permissionMode === "acceptEdits" || resolved.permissionMode === "auto" || resolved.permissionMode === "dontAsk" && !hasLockedNativeReadOnlyPosture) {
718
+ mutationPolicyBoundary = requireActivePolicyBoundary(
719
+ "Grok",
720
+ `Grok permission bypass (--permission-mode ${resolved.permissionMode})`,
721
+ metadata.id,
722
+ { env: options.env }
723
+ );
724
+ }
725
+ const finalArgs = [...prefixArgs, ...args];
726
+ const argvRedacted = redactProviderArgv(finalArgs);
727
+ const grokStreamOutput = shouldStreamGrokOutput(resolved.outputFormat, options.env);
728
+ const watchdogEnabled = !isGrokTransportWatchdogDisabled(options.env);
729
+ const requestedExecutionTransport = options.executionTransport ?? (options.nativeSubagents ? "tmux-exec" : void 0);
730
+ const { execute: executeGrokCommand } = await selectProviderExecutor({
731
+ provider: metadata.id,
732
+ requested: requestedExecutionTransport,
733
+ configured: resolveConfiguredProviderExecutionTransport(metadata.id, options.workingDir).value,
734
+ env: options.env,
735
+ executionIntent: options.executionIntent,
736
+ readOnlyWorkingDir: options.readOnlyWorkingDir,
737
+ forceHeadlessReason: grokPlainOutputForcesHeadless,
738
+ headless: executeProviderCommand,
739
+ onDecision: (decision) => reportTransportDecision(metadata.id, decision, debugLog)
740
+ });
741
+ const outputFormatIsJson = resolved.outputFormat === "json" || resolved.outputFormat === "streaming-json";
742
+ const wantsCompletionSignal = outputFormatIsJson;
743
+ executionStartMs = Date.now();
744
+ const retryBudget = options.retryBudget ?? new RetryBudget({ maxTotalAttempts: 6 });
745
+ const retryResult = await executeWithResilience(
746
+ async () => {
747
+ const attemptStartState = await captureWorkspaceRetryState(options.workingDir);
748
+ let executionTimeoutMs = resolvedTimeoutMs;
749
+ if (options.deadlineMs != null) {
750
+ const remaining = options.deadlineMs - Date.now() - GROK_DEADLINE_SAFETY_BUFFER_MS;
751
+ if (remaining <= 0) {
752
+ throw new ProviderExecutionError("Grok deadline exceeded before attempt start.", {
753
+ providerName: metadata.id,
754
+ retryable: false,
755
+ reason: "deadline_exhausted"
756
+ });
757
+ }
758
+ executionTimeoutMs = Math.max(1, Math.min(resolvedTimeoutMs, remaining));
759
+ }
760
+ firstOutputMs = void 0;
761
+ let spiralDiagnostics;
762
+ const watchdogController = new AbortController();
763
+ const watchdog = watchdogEnabled ? createGrokTransportDeathWatchdog({
764
+ onSpiralDetected: (diagnostics) => {
765
+ spiralDiagnostics = diagnostics;
766
+ watchdogController.abort();
767
+ }
768
+ }) : void 0;
769
+ const combinedAbortSignal = combineAbortSignals(
770
+ options.abortSignal,
771
+ watchdog ? watchdogController.signal : void 0
772
+ );
773
+ const completionSignal = wantsCompletionSignal ? createGrokTmuxCompletionSignal() : void 0;
774
+ const authoritativeStdoutParts = [];
775
+ let authoritativeStdoutBytes = 0;
776
+ let authoritativeStdoutOverflow = false;
777
+ const onStdoutChunk = (chunk) => {
778
+ if (authoritativeStdoutOverflow || !chunk) return;
779
+ const part = typeof chunk === "string" ? chunk.length === 0 ? Buffer.alloc(0) : Buffer.from(chunk, "utf8") : chunk.byteLength === 0 ? Buffer.alloc(0) : Buffer.from(chunk);
780
+ if (part.length === 0) return;
781
+ if (authoritativeStdoutBytes + part.length > GROK_AUTHORITATIVE_STDOUT_CEILING_BYTES) {
782
+ authoritativeStdoutOverflow = true;
783
+ return;
784
+ }
785
+ authoritativeStdoutParts.push(part);
786
+ authoritativeStdoutBytes += part.length;
787
+ };
788
+ let childResult;
789
+ try {
790
+ childResult = await executeGrokCommand({
791
+ command,
792
+ args: finalArgs,
793
+ workingDir: options.workingDir,
794
+ env: effectiveEnv,
795
+ timeout: executionTimeoutMs,
796
+ readOnlyWorkingDir: options.readOnlyWorkingDir,
797
+ abortSignal: combinedAbortSignal,
798
+ onData: options.onData,
799
+ onErrorData: options.onErrorData,
800
+ onFirstOutput: (timestampMs) => {
801
+ firstOutputMs ??= timestampMs;
802
+ },
803
+ // Compose invoke capture with Grok's authoritative stdout collector.
804
+ // Watchdog.observe accepts RawChunk and statefully decodes for
805
+ // pattern matching only; authoritative spool observers still get
806
+ // exact Buffer bytes via the same compose chain.
807
+ onStdoutChunk: composeRawChunkObservers(onStdoutChunk, options.onStdoutChunk),
808
+ onStderrChunk: composeRawChunkObservers(
809
+ watchdog ? watchdog.observe : void 0,
810
+ options.onStderrChunk
811
+ ),
812
+ ...completionSignal ? {
813
+ completionSignal,
814
+ completionSignalGraceMs: TMUX_COMPLETION_SIGNAL_GRACE_MS
815
+ } : {},
816
+ idleWarnMs: options.idleWarnMs,
817
+ idleKillMs: options.idleKillMs,
818
+ onActivity: options.onActivity,
819
+ metadata: {
820
+ id: metadata.id,
821
+ name: metadata.name,
822
+ installCommand: metadata.installCommand,
823
+ authHint: metadata.authHint,
824
+ docsPath: metadata.docsPath,
825
+ docsAnchor: metadata.docsAnchor
826
+ },
827
+ variantStrategy: options.strategy,
828
+ ...grokStreamOutput ? {
829
+ streamOutput: true,
830
+ formatLine: (line) => formatGrokStreamLineForDisplay(line)
831
+ } : {}
832
+ });
833
+ } catch (error) {
834
+ if (spiralDiagnostics) {
835
+ const salvaged = trySalvageCompletedGrokOutput(error, outputFormatIsJson);
836
+ if (salvaged) {
837
+ childResult = salvaged;
838
+ } else {
839
+ const underlying = error instanceof ProviderExecutionError ? error : void 0;
840
+ const failureDiagnostics = {
841
+ ...grokDiagnostics,
842
+ failureStage: "task_transport_watchdog",
843
+ probeCategory: "provider_transport_failure",
844
+ transportCloseCount: spiralDiagnostics.transportCloseCount,
845
+ postTransportToolErrorCount: spiralDiagnostics.postTransportToolErrorCount
846
+ };
847
+ throw new ProviderExecutionError(
848
+ `[Grok] Worker transport died (Auth(AuthorizationRequired)) and the agent spiraled on ${spiralDiagnostics.postTransportToolErrorCount} tool-output errors; aborted before the turn cap.`,
849
+ {
850
+ providerName: metadata.id,
851
+ retryable: false,
852
+ reason: "provider_transport_failure",
853
+ stdout: underlying?.stdout,
854
+ stderr: underlying?.stderr,
855
+ exitCode: underlying?.exitCode,
856
+ parsedError: attachGrokDiagnosticsToParsedError(void 0, failureDiagnostics)
857
+ }
858
+ );
859
+ }
860
+ } else {
861
+ const salvaged = trySalvageCompletedGrokOutput(error, outputFormatIsJson);
862
+ if (outputFormatIsJson && error instanceof ProviderExecutionError && isTimeoutTerminationReason(error.reason) && salvaged) {
863
+ childResult = salvaged;
864
+ } else if (error instanceof ProviderExecutionError && !isTerminationReason(error.reason) && error.terminationSource === void 0 && (error.stdout !== void 0 || error.stderr !== void 0)) {
865
+ childResult = {
866
+ stdout: error.stdout ?? "",
867
+ stderr: error.stderr ?? "",
868
+ exitCode: error.exitCode ?? 1
869
+ };
870
+ } else {
871
+ if (error instanceof ProviderExecutionError) {
872
+ const enriched = withGrokDiagnosticsForExecutionError(error, grokDiagnostics);
873
+ await assertWorkspaceRetryIsSafe({
874
+ providerId: metadata.id,
875
+ providerName: metadata.name,
876
+ workingDir: options.workingDir,
877
+ attemptStartState,
878
+ originalError: enriched,
879
+ retryable: enriched.retryable === true
880
+ });
881
+ throw enriched;
882
+ }
883
+ await assertWorkspaceRetryIsSafe({
884
+ providerId: metadata.id,
885
+ providerName: metadata.name,
886
+ workingDir: options.workingDir,
887
+ attemptStartState,
888
+ originalError: error,
889
+ retryable: error instanceof ProviderExecutionError && error.retryable === true
890
+ });
891
+ throw error;
892
+ }
893
+ }
894
+ }
895
+ if (authoritativeStdoutOverflow) {
896
+ const partial = authoritativeStdoutParts.length > 0 ? Buffer.concat(authoritativeStdoutParts).toString("utf8") : "";
897
+ const displayStdout = childResult.stdout ?? "";
898
+ throw new ProviderExecutionError(
899
+ `[Grok] Authoritative stdout capture exceeded ${GROK_AUTHORITATIVE_STDOUT_CEILING_BYTES} bytes; refusing to parse a truncated display tail as success.`,
900
+ {
901
+ providerName: metadata.id,
902
+ retryable: false,
903
+ reason: "output_truncated",
904
+ exitCode: typeof childResult.exitCode === "number" ? childResult.exitCode : 1,
905
+ stdout: partial.length > 0 ? partial : displayStdout,
906
+ stderr: childResult.stderr ?? "",
907
+ parsedError: attachGrokDiagnosticsToParsedError(
908
+ {
909
+ type: "grok_output_truncated",
910
+ ceilingBytes: GROK_AUTHORITATIVE_STDOUT_CEILING_BYTES
911
+ },
912
+ { ...grokDiagnostics, failureStage: "task_execution" }
913
+ )
914
+ }
915
+ );
916
+ }
917
+ const authoritativeStdout = authoritativeStdoutParts.length > 0 ? Buffer.concat(authoritativeStdoutParts).toString("utf8") : "";
918
+ const stdout2 = authoritativeStdout.length > 0 ? authoritativeStdout : childResult.stdout ?? "";
919
+ const stderr2 = childResult.stderr ?? "";
920
+ const exitCode2 = typeof childResult.exitCode === "number" ? childResult.exitCode : 1;
921
+ if (resolved.outputFormat === "plain") {
922
+ return { stdout: stdout2, stderr: stderr2, exitCode: exitCode2, parsed: void 0 };
923
+ }
924
+ const parsed2 = parseGrokOutput(stdout2, stderr2, exitCode2);
925
+ if (parsed2.type === "error") {
926
+ const failureDiagnostics = {
927
+ ...grokDiagnostics,
928
+ failureStage: "task_execution",
929
+ probeCategory: parsed2.category
930
+ };
931
+ const parsedError = new ProviderExecutionError(`[Grok] ${parsed2.message}`, {
932
+ providerName: metadata.id,
933
+ retryable: grokCategoryToRetryable(parsed2.category),
934
+ exitCode: exitCode2,
935
+ statusCode: parsed2.inner?.httpStatus,
936
+ reason: grokCategoryToReason(parsed2.category),
937
+ stdout: stdout2,
938
+ stderr: stderr2,
939
+ parsedError: attachGrokDiagnosticsToParsedError(parsed2, failureDiagnostics)
940
+ });
941
+ await assertWorkspaceRetryIsSafe({
942
+ providerId: metadata.id,
943
+ providerName: metadata.name,
944
+ workingDir: options.workingDir,
945
+ attemptStartState,
946
+ originalError: parsedError,
947
+ retryable: parsedError.retryable === true
948
+ });
949
+ throw parsedError;
950
+ }
951
+ return { stdout: stdout2, stderr: stderr2, exitCode: exitCode2, parsed: parsed2 };
952
+ },
953
+ {
954
+ providerName: metadata.name,
955
+ providerId: metadata.id,
956
+ operation: "execute_prompt",
957
+ maxAttempts: 3,
958
+ abortSignal: options.abortSignal,
959
+ retryBudget,
960
+ circuitBreakerOptions: DEFAULT_PROVIDER_CIRCUIT_BREAKER_OPTIONS,
961
+ fastRetryMode: process.env.NODE_ENV === "test" || process.env.VITEST === "true",
962
+ deadlineMs: options.deadlineMs ?? Date.now() + resolvedTimeoutMs,
963
+ minimumAttemptTimeMs: Math.min(resolvedTimeoutMs, 3e4),
964
+ retryWorktreeDir: options.workingDir
965
+ }
966
+ );
967
+ const { stdout, stderr, exitCode, parsed } = retryResult.result;
968
+ const effectiveExitCode = exitCode ?? 0;
969
+ const filesModified = await detectGitChangedFiles(options.workingDir, {
970
+ baselineStatusPaths
971
+ }).catch(() => []);
972
+ await recordRunTiming({
973
+ model: options.model,
974
+ resolvedModel: parsed?.type === "success" ? parsed.resolvedModel : void 0,
975
+ startMs: executionStartMs,
976
+ firstOutputMs,
977
+ endMs: Date.now(),
978
+ status: effectiveExitCode === 0 ? "success" : "error",
979
+ errorCode: effectiveExitCode === 0 ? void 0 : `exit_${effectiveExitCode}`,
980
+ tokensIn: parsed?.type === "success" ? parsed.tokenUsage?.inputTokens : void 0,
981
+ tokensOut: parsed?.type === "success" ? parsed.tokenUsage?.outputTokens : void 0,
982
+ env: options.env
983
+ });
984
+ if (effectiveExitCode === 0) {
985
+ recordProviderRunSuccess(metadata.id);
986
+ recordGrokAuthOutcomeBestEffort(
987
+ "ok",
988
+ { source: "provider-call", message: "Provider call succeeded" },
989
+ options.env
990
+ );
991
+ } else {
992
+ recordProviderRunFailure(metadata.id, {
993
+ severity: "normal",
994
+ phase: inferProviderFailurePhase({ exitCode: effectiveExitCode, stderr, stdout })
995
+ });
996
+ }
997
+ if (!parsed) {
998
+ return {
999
+ stdout,
1000
+ stderr,
1001
+ rawStdout: stdout,
1002
+ rawStderr: stderr,
1003
+ commandPath: command,
1004
+ argvRedacted,
1005
+ stdoutTail: providerOutputTail(stdout),
1006
+ stderrTail: providerOutputTail(stderr),
1007
+ exitCode,
1008
+ requestedReasoningEffort: reasoningResolution?.requestedLevel,
1009
+ effectiveReasoningEffort: reasoningResolution?.resolvedLevel,
1010
+ reasoningEffortOutcome: reasoningResolution?.outcome,
1011
+ workspaceMode: workspaceModeApplied,
1012
+ workspaceModeRequested,
1013
+ promptMode: workspaceModeApplied,
1014
+ promptModeRequested: workspaceModeRequested,
1015
+ promptFingerprint: adaptation.promptFingerprint,
1016
+ finalPromptLength: adaptation.finalPromptLength,
1017
+ completionSignalVariant: adaptation.completionSignalVariant,
1018
+ filesModified,
1019
+ grokDiagnostics,
1020
+ sandboxProvenance: mutationPolicyBoundary?.attestation.provenance,
1021
+ sandboxEvidence: mutationPolicyBoundary?.attestation.evidence
1022
+ };
1023
+ }
1024
+ const stderrWasAuthNoise = parsed.type === "success" && stderr.trim() && isStderrOnlyNoise(stderr);
1025
+ const visibleStdout = parsed.type === "success" ? parsed.text : stdout;
1026
+ const visibleStderr = stderrWasAuthNoise ? "" : stderr;
1027
+ return {
1028
+ stdout: visibleStdout,
1029
+ stderr: visibleStderr,
1030
+ rawStdout: stdout,
1031
+ rawStderr: stderr,
1032
+ commandPath: command,
1033
+ argvRedacted,
1034
+ stdoutTail: providerOutputTail(stdout),
1035
+ stderrTail: providerOutputTail(stderr),
1036
+ sessionId: parsed.type === "success" ? parsed.sessionId : void 0,
1037
+ resolvedModel: parsed.type === "success" ? parsed.resolvedModel : void 0,
1038
+ exitCode,
1039
+ requestedReasoningEffort: reasoningResolution?.requestedLevel,
1040
+ effectiveReasoningEffort: reasoningResolution?.resolvedLevel,
1041
+ reasoningEffortOutcome: reasoningResolution?.outcome,
1042
+ workspaceMode: workspaceModeApplied,
1043
+ workspaceModeRequested,
1044
+ promptMode: workspaceModeApplied,
1045
+ promptModeRequested: workspaceModeRequested,
1046
+ promptFingerprint: adaptation.promptFingerprint,
1047
+ finalPromptLength: adaptation.finalPromptLength,
1048
+ completionSignalVariant: adaptation.completionSignalVariant,
1049
+ tokenUsage: parsed.tokenUsage,
1050
+ filesModified,
1051
+ grokDiagnostics,
1052
+ sandboxProvenance: mutationPolicyBoundary?.attestation.provenance,
1053
+ sandboxEvidence: mutationPolicyBoundary?.attestation.evidence
1054
+ };
1055
+ } catch (error) {
1056
+ if (executionStartMs !== void 0) {
1057
+ const providerError2 = error instanceof ProviderExecutionError ? error : void 0;
1058
+ await recordRunTiming({
1059
+ model: options.model,
1060
+ startMs: executionStartMs,
1061
+ firstOutputMs,
1062
+ endMs: Date.now(),
1063
+ status: "error",
1064
+ errorCode: providerError2?.reason ?? "execution_failed",
1065
+ env: options.env
1066
+ });
1067
+ }
1068
+ const reason = error?.reason;
1069
+ if (reason === "auth" || isAuthFailureError(error)) {
1070
+ recordGrokAuthOutcomeBestEffort("failed", authFailureEvidence(error), options.env);
1071
+ }
1072
+ const providerError = error instanceof ProviderExecutionError ? error : void 0;
1073
+ recordProviderRunFailure(metadata.id, {
1074
+ severity: reason === "auth" || isAuthFailureError(error) ? "hard" : "normal",
1075
+ phase: inferProviderFailurePhase({
1076
+ error,
1077
+ exitCode: providerError?.exitCode,
1078
+ stderr: providerError?.stderr,
1079
+ stdout: providerError?.stdout
1080
+ })
1081
+ });
1082
+ throw error;
1083
+ } finally {
1084
+ await cleanup();
1085
+ }
1086
+ }
1087
+ export {
1088
+ runGrokNative,
1089
+ shouldSkipGrok,
1090
+ shouldStreamGrokOutput
1091
+ };
1092
+ //# sourceMappingURL=runner-2YPKOJ6A.js.map