@poetic-ai/poetic 1.42.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 (782) 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-JIMGP3LY.js +1597 -0
  17. package/dist/PromptStore-U6ZD3ZMQ.js +18 -0
  18. package/dist/actions-LUJPINLJ.js +322 -0
  19. package/dist/agent-ingest-3DJUJ7FU.js +53 -0
  20. package/dist/aggregator-DNCBINFO.js +12 -0
  21. package/dist/ai-judge-5QT5QJVU.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-JULUCUIK.js +489 -0
  25. package/dist/api-transport-4TYTNLTJ.js +1087 -0
  26. package/dist/apply-completion-mode-AW2MOS3R.js +89 -0
  27. package/dist/artifact-migrator-23L45ISD.js +267 -0
  28. package/dist/ask-HWVV6QFR.js +135 -0
  29. package/dist/auth-5KEDKAPP.js +67 -0
  30. package/dist/auth-7TT3JINV.js +78 -0
  31. package/dist/auth-E6XUNZ5M.js +68 -0
  32. package/dist/auth-H3XDZE22.js +134 -0
  33. package/dist/auth-OC4E6633.js +71 -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-VPRWOWGU.js +80 -0
  38. package/dist/autoloop-cleanup-JOGKTLWA.js +109 -0
  39. package/dist/autoloop-evidence-gates-PCDALGVJ.js +38 -0
  40. package/dist/autoloop-gate-policy-Z7FVJVXV.js +175 -0
  41. package/dist/autoloop-helpers-2KTK43GL.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-J2VKKBXQ.js +85 -0
  47. package/dist/autoloop-termination-summary-RN75F422.js +58 -0
  48. package/dist/autoloop-trajectory-XFIEXP5Z.js +282 -0
  49. package/dist/autoloop-wall-clock-T7ZVIQOC.js +12 -0
  50. package/dist/autonomous-loop-controller-PW4XVFGQ.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-VCSBJVRN.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-YHGRB4QB.js +71 -0
  60. package/dist/change-summary-WY7J5TOX.js +33 -0
  61. package/dist/chunk-23A26CSN.js +123 -0
  62. package/dist/chunk-27UTJD3M.js +265 -0
  63. package/dist/chunk-2A5CILN3.js +310 -0
  64. package/dist/chunk-2AQUWJPW.js +225 -0
  65. package/dist/chunk-2BZ53J6J.js +2344 -0
  66. package/dist/chunk-2DY5KNVM.js +276 -0
  67. package/dist/chunk-2EIA4RBE.js +659 -0
  68. package/dist/chunk-2IUXIGQD.js +1064 -0
  69. package/dist/chunk-2N42MS2Z.js +2193 -0
  70. package/dist/chunk-2QJ3H3L7.js +42 -0
  71. package/dist/chunk-2QLYTVYX.js +791 -0
  72. package/dist/chunk-2VSQMRCB.js +18 -0
  73. package/dist/chunk-2XQXYBM2.js +130 -0
  74. package/dist/chunk-2YFUIER7.js +426 -0
  75. package/dist/chunk-34CNP2HB.js +148 -0
  76. package/dist/chunk-35P3W3JX.js +456 -0
  77. package/dist/chunk-36PEBZAF.js +18 -0
  78. package/dist/chunk-3AOKYKA7.js +22 -0
  79. package/dist/chunk-3BCUNHKF.js +475 -0
  80. package/dist/chunk-3FLXLLB7.js +26 -0
  81. package/dist/chunk-3FOZ2VHV.js +100 -0
  82. package/dist/chunk-3G6FZCRF.js +106 -0
  83. package/dist/chunk-3M57DADF.js +44 -0
  84. package/dist/chunk-3S62LLWJ.js +543 -0
  85. package/dist/chunk-3ZPQLGV7.js +2904 -0
  86. package/dist/chunk-44N5WZZH.js +45 -0
  87. package/dist/chunk-45FPSA3B.js +125 -0
  88. package/dist/chunk-4BJ3O4RQ.js +929 -0
  89. package/dist/chunk-4BOP7T6L.js +2321 -0
  90. package/dist/chunk-4BTDUT2S.js +42 -0
  91. package/dist/chunk-4CSS7WVI.js +143 -0
  92. package/dist/chunk-4CUY7AFY.js +247 -0
  93. package/dist/chunk-4GSN5O5J.js +62 -0
  94. package/dist/chunk-4HN6DF7V.js +1027 -0
  95. package/dist/chunk-4IAPOG5V.js +415 -0
  96. package/dist/chunk-4IYIZQWV.js +48 -0
  97. package/dist/chunk-4NXPXE62.js +84 -0
  98. package/dist/chunk-4RCCF5BR.js +712 -0
  99. package/dist/chunk-4V7NAQ4R.js +19527 -0
  100. package/dist/chunk-4VJITV4P.js +445 -0
  101. package/dist/chunk-4YX7J6QL.js +1859 -0
  102. package/dist/chunk-527OBWQB.js +338 -0
  103. package/dist/chunk-5D4A7E3D.js +448 -0
  104. package/dist/chunk-5DLKYTQX.js +4003 -0
  105. package/dist/chunk-5EERLVZB.js +139 -0
  106. package/dist/chunk-5H72XE4H.js +256 -0
  107. package/dist/chunk-5HDP7XZG.js +91 -0
  108. package/dist/chunk-5LAMRH4X.js +969 -0
  109. package/dist/chunk-5LTN43AS.js +1972 -0
  110. package/dist/chunk-5RBHQYDB.js +2206 -0
  111. package/dist/chunk-5WCQRDRB.js +588 -0
  112. package/dist/chunk-5WRLK5KW.js +700 -0
  113. package/dist/chunk-5ZCXC23G.js +595 -0
  114. package/dist/chunk-6BM72ZMG.js +31 -0
  115. package/dist/chunk-6EDAJH2I.js +68 -0
  116. package/dist/chunk-6EQKFDBH.js +457 -0
  117. package/dist/chunk-6MFRHTRI.js +115 -0
  118. package/dist/chunk-6TZJRKNW.js +321 -0
  119. package/dist/chunk-6V7HGQFZ.js +20 -0
  120. package/dist/chunk-6VWVO2TU.js +3746 -0
  121. package/dist/chunk-6Y5TWI7H.js +146 -0
  122. package/dist/chunk-6Y5U7UFY.js +91 -0
  123. package/dist/chunk-6ZLAK3XG.js +14 -0
  124. package/dist/chunk-72XCRQED.js +34 -0
  125. package/dist/chunk-72YTZMAM.js +589 -0
  126. package/dist/chunk-73BBJOKA.js +263 -0
  127. package/dist/chunk-73NCTWKL.js +188 -0
  128. package/dist/chunk-77I6G4CO.js +1 -0
  129. package/dist/chunk-7DHRDWFS.js +3104 -0
  130. package/dist/chunk-7DNSNKJV.js +78 -0
  131. package/dist/chunk-7FMJVYBS.js +307 -0
  132. package/dist/chunk-7GDRQBQC.js +419 -0
  133. package/dist/chunk-7GPCEFUV.js +270 -0
  134. package/dist/chunk-7IL4A2PP.js +948 -0
  135. package/dist/chunk-7MMLMXO6.js +3679 -0
  136. package/dist/chunk-7QCZSLBH.js +1 -0
  137. package/dist/chunk-7R2WLDOS.js +62 -0
  138. package/dist/chunk-7T7RUJI7.js +949 -0
  139. package/dist/chunk-A2WKSVX7.js +43 -0
  140. package/dist/chunk-A3YGID55.js +133 -0
  141. package/dist/chunk-A722DEVA.js +14 -0
  142. package/dist/chunk-ACDIT7OP.js +1376 -0
  143. package/dist/chunk-ACKIPAOJ.js +302 -0
  144. package/dist/chunk-APPNGGN7.js +365 -0
  145. package/dist/chunk-APV6MK5E.js +137 -0
  146. package/dist/chunk-ASEP3M2W.js +968 -0
  147. package/dist/chunk-AT4TNPWW.js +2931 -0
  148. package/dist/chunk-ATVKCSGT.js +250 -0
  149. package/dist/chunk-AURFMVCD.js +899 -0
  150. package/dist/chunk-AX6GWE7V.js +47 -0
  151. package/dist/chunk-AY5EWJPF.js +385 -0
  152. package/dist/chunk-BAV2HJXS.js +194 -0
  153. package/dist/chunk-BBHRN366.js +89 -0
  154. package/dist/chunk-BBPSTTPA.js +1004 -0
  155. package/dist/chunk-BDATUDDJ.js +992 -0
  156. package/dist/chunk-BKE5PG5L.js +20414 -0
  157. package/dist/chunk-BLPHWMDK.js +797 -0
  158. package/dist/chunk-BSE4R6XD.js +322 -0
  159. package/dist/chunk-BXGMAU4A.js +396 -0
  160. package/dist/chunk-BXI4NXL3.js +507 -0
  161. package/dist/chunk-BZU2O43F.js +1125 -0
  162. package/dist/chunk-C3L6YQ7P.js +147 -0
  163. package/dist/chunk-C57KJOUQ.js +121 -0
  164. package/dist/chunk-CCV7BPSY.js +118 -0
  165. package/dist/chunk-CD7ISXA4.js +826 -0
  166. package/dist/chunk-CE5OZBYY.js +21 -0
  167. package/dist/chunk-CFBIG37O.js +154 -0
  168. package/dist/chunk-CJC6GZ46.js +457 -0
  169. package/dist/chunk-CKCDGXIV.js +408 -0
  170. package/dist/chunk-CKNX3TTP.js +10338 -0
  171. package/dist/chunk-CLKSETWE.js +10 -0
  172. package/dist/chunk-CP7H3HSP.js +1552 -0
  173. package/dist/chunk-CPLEWXNZ.js +66 -0
  174. package/dist/chunk-CQM3A35X.js +844 -0
  175. package/dist/chunk-CS6P76D3.js +103 -0
  176. package/dist/chunk-CTLUBNCW.js +622 -0
  177. package/dist/chunk-CUSRN6RJ.js +632 -0
  178. package/dist/chunk-D5EP5D2W.js +26 -0
  179. package/dist/chunk-D5RYINO7.js +412 -0
  180. package/dist/chunk-DBFS4HMH.js +751 -0
  181. package/dist/chunk-DC4ZYMXJ.js +115 -0
  182. package/dist/chunk-DCBZP442.js +9243 -0
  183. package/dist/chunk-DCYF7EKG.js +26 -0
  184. package/dist/chunk-DDMAFNUK.js +5351 -0
  185. package/dist/chunk-DF5SLDE4.js +966 -0
  186. package/dist/chunk-DJFW7SMX.js +348 -0
  187. package/dist/chunk-DQFLLBJW.js +121 -0
  188. package/dist/chunk-DSFM56OA.js +1203 -0
  189. package/dist/chunk-DTY4APYV.js +218 -0
  190. package/dist/chunk-DXH5JBRS.js +437 -0
  191. package/dist/chunk-E3NTPHEO.js +194 -0
  192. package/dist/chunk-E74LUIID.js +302 -0
  193. package/dist/chunk-EI57M5BI.js +194 -0
  194. package/dist/chunk-EJ4ZAWLV.js +305 -0
  195. package/dist/chunk-EJGCZGUF.js +1483 -0
  196. package/dist/chunk-EK2U3YEG.js +486 -0
  197. package/dist/chunk-ELMFYNV7.js +109 -0
  198. package/dist/chunk-ENRGKNR5.js +25 -0
  199. package/dist/chunk-ETYDXCK7.js +679 -0
  200. package/dist/chunk-EYRH3W74.js +239 -0
  201. package/dist/chunk-F23DIWNN.js +1024 -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-FD4ERYEG.js +22 -0
  207. package/dist/chunk-FH7WOJAE.js +79 -0
  208. package/dist/chunk-FHOWVDF5.js +1342 -0
  209. package/dist/chunk-FKAUPHMR.js +96 -0
  210. package/dist/chunk-FONNFJXA.js +137 -0
  211. package/dist/chunk-FQ7FSZRW.js +75 -0
  212. package/dist/chunk-FRG57FPM.js +240 -0
  213. package/dist/chunk-FUVP64ER.js +31 -0
  214. package/dist/chunk-FYOILAN5.js +6818 -0
  215. package/dist/chunk-G35UYQ6Z.js +69 -0
  216. package/dist/chunk-G36W2T2S.js +1143 -0
  217. package/dist/chunk-G3L2L5XZ.js +49 -0
  218. package/dist/chunk-G4THLFV3.js +148 -0
  219. package/dist/chunk-GAFJEYLK.js +29 -0
  220. package/dist/chunk-GFGYB2ZU.js +1689 -0
  221. package/dist/chunk-GG6KJYW6.js +85 -0
  222. package/dist/chunk-GHHFDU2U.js +55 -0
  223. package/dist/chunk-GHTZSQB7.js +57 -0
  224. package/dist/chunk-GK37ILCX.js +1231 -0
  225. package/dist/chunk-GKN3HMN4.js +2809 -0
  226. package/dist/chunk-GNVDBVJP.js +156 -0
  227. package/dist/chunk-GPEL3FBM.js +924 -0
  228. package/dist/chunk-GPSNGPZS.js +1604 -0
  229. package/dist/chunk-GSGD5E4C.js +30 -0
  230. package/dist/chunk-GSUQJJXQ.js +331 -0
  231. package/dist/chunk-GSV226X6.js +110 -0
  232. package/dist/chunk-H2AYQIHW.js +224 -0
  233. package/dist/chunk-H66DXFS5.js +1374 -0
  234. package/dist/chunk-H6G7QRMQ.js +35 -0
  235. package/dist/chunk-H7JAGHZT.js +59 -0
  236. package/dist/chunk-H7ZEFECA.js +316 -0
  237. package/dist/chunk-HAC6EHZZ.js +79 -0
  238. package/dist/chunk-HIO33P3G.js +19 -0
  239. package/dist/chunk-HMVQIPH3.js +547 -0
  240. package/dist/chunk-HOYBYAOA.js +257 -0
  241. package/dist/chunk-HX5P3CSP.js +1784 -0
  242. package/dist/chunk-I46EG2XQ.js +65 -0
  243. package/dist/chunk-I4NPDSCB.js +279 -0
  244. package/dist/chunk-I5WRT7ZR.js +514 -0
  245. package/dist/chunk-IC7I6YIJ.js +301 -0
  246. package/dist/chunk-IDCSOZVN.js +78 -0
  247. package/dist/chunk-IFCBYECK.js +112 -0
  248. package/dist/chunk-IFZCPEY2.js +66 -0
  249. package/dist/chunk-IKFP2KUR.js +48 -0
  250. package/dist/chunk-IRFBN336.js +878 -0
  251. package/dist/chunk-IUXNGKA6.js +152 -0
  252. package/dist/chunk-IV2RVAN7.js +1356 -0
  253. package/dist/chunk-IZYIQQ7X.js +53 -0
  254. package/dist/chunk-J3UUR7DE.js +210 -0
  255. package/dist/chunk-J54VUAY2.js +566 -0
  256. package/dist/chunk-J62KPGII.js +464 -0
  257. package/dist/chunk-J6P3FWWW.js +130 -0
  258. package/dist/chunk-JKBHJQMT.js +434 -0
  259. package/dist/chunk-JLS65NUQ.js +14 -0
  260. package/dist/chunk-JOSYEJKY.js +141 -0
  261. package/dist/chunk-JPKSXKNB.js +94 -0
  262. package/dist/chunk-JQNJB2BB.js +2440 -0
  263. package/dist/chunk-JRVNSWSQ.js +2626 -0
  264. package/dist/chunk-JSWMRQYG.js +28 -0
  265. package/dist/chunk-JZKNBBIB.js +152 -0
  266. package/dist/chunk-K54Y7MLK.js +160 -0
  267. package/dist/chunk-K65546RE.js +183 -0
  268. package/dist/chunk-KM3F7SYE.js +702 -0
  269. package/dist/chunk-KNDYMVWN.js +102 -0
  270. package/dist/chunk-KNT72VR6.js +132 -0
  271. package/dist/chunk-KP6YILMU.js +482 -0
  272. package/dist/chunk-KQEBSK3T.js +274 -0
  273. package/dist/chunk-KT6VHSPF.js +84 -0
  274. package/dist/chunk-KTMW65UX.js +14 -0
  275. package/dist/chunk-KZ5CJVBP.js +1813 -0
  276. package/dist/chunk-L4427KOE.js +26 -0
  277. package/dist/chunk-L6OM4A22.js +189 -0
  278. package/dist/chunk-L7E6XCRA.js +1042 -0
  279. package/dist/chunk-L7JZLXQL.js +173 -0
  280. package/dist/chunk-LAMKBTXX.js +40 -0
  281. package/dist/chunk-LDCF2MKN.js +132 -0
  282. package/dist/chunk-LEIIWPWQ.js +78 -0
  283. package/dist/chunk-LFTQVYBB.js +31 -0
  284. package/dist/chunk-LG3PDRTR.js +2872 -0
  285. package/dist/chunk-LGHII5ET.js +23 -0
  286. package/dist/chunk-LH5QY22X.js +1205 -0
  287. package/dist/chunk-LIVJ6266.js +438 -0
  288. package/dist/chunk-LKRAR3IH.js +276 -0
  289. package/dist/chunk-LO23NABI.js +3063 -0
  290. package/dist/chunk-LO3X5NLS.js +326 -0
  291. package/dist/chunk-LPITVM7M.js +339 -0
  292. package/dist/chunk-LR5IJIGV.js +810 -0
  293. package/dist/chunk-LRGMHROI.js +79 -0
  294. package/dist/chunk-LUVKFFWR.js +315 -0
  295. package/dist/chunk-LWCBNGH6.js +35 -0
  296. package/dist/chunk-LWTN3WRV.js +260 -0
  297. package/dist/chunk-M3HQYKQX.js +308 -0
  298. package/dist/chunk-M6GVSPEH.js +1016 -0
  299. package/dist/chunk-MF5HP6XV.js +221 -0
  300. package/dist/chunk-MHLCBZJB.js +328 -0
  301. package/dist/chunk-MN6PL4AN.js +120 -0
  302. package/dist/chunk-MOEY65Z6.js +5678 -0
  303. package/dist/chunk-MQ4WA34C.js +206 -0
  304. package/dist/chunk-MWHF5V7U.js +223 -0
  305. package/dist/chunk-MWHLBPNU.js +211 -0
  306. package/dist/chunk-MWK5UZQ3.js +1068 -0
  307. package/dist/chunk-MYLH2S4G.js +64 -0
  308. package/dist/chunk-MZ5WYKNA.js +28 -0
  309. package/dist/chunk-N4VTRA7K.js +131 -0
  310. package/dist/chunk-N5DX4JAK.js +12 -0
  311. package/dist/chunk-N65O4XTH.js +5011 -0
  312. package/dist/chunk-NEQUQHOX.js +223 -0
  313. package/dist/chunk-NGK6PEOG.js +25 -0
  314. package/dist/chunk-NJVD4PWE.js +1033 -0
  315. package/dist/chunk-NM6PMYY4.js +768 -0
  316. package/dist/chunk-NN4PJDHP.js +708 -0
  317. package/dist/chunk-NP2V3L7K.js +226 -0
  318. package/dist/chunk-NRLY536M.js +260 -0
  319. package/dist/chunk-NRNE225N.js +1270 -0
  320. package/dist/chunk-NS2K2GTP.js +605 -0
  321. package/dist/chunk-NS33V3IM.js +51 -0
  322. package/dist/chunk-NSHASMZZ.js +71 -0
  323. package/dist/chunk-NWOYOA6H.js +378 -0
  324. package/dist/chunk-NWRUSEXG.js +322 -0
  325. package/dist/chunk-NZGDAWIP.js +1905 -0
  326. package/dist/chunk-O47UOKU3.js +395 -0
  327. package/dist/chunk-O4G2W3ST.js +9831 -0
  328. package/dist/chunk-O6V4PNLO.js +63 -0
  329. package/dist/chunk-OA4GPILI.js +624 -0
  330. package/dist/chunk-OGMSYL6J.js +227 -0
  331. package/dist/chunk-OIS7J26S.js +319 -0
  332. package/dist/chunk-OMX5VL43.js +79 -0
  333. package/dist/chunk-ON3G73BU.js +264 -0
  334. package/dist/chunk-OPYFYTWQ.js +220 -0
  335. package/dist/chunk-OQ6K46CK.js +1734 -0
  336. package/dist/chunk-OYZYO7TV.js +47 -0
  337. package/dist/chunk-OZ4REHIN.js +4386 -0
  338. package/dist/chunk-P47VN5F4.js +282 -0
  339. package/dist/chunk-P5I4X7A7.js +353 -0
  340. package/dist/chunk-P6VQROCO.js +594 -0
  341. package/dist/chunk-P7CQGPLS.js +30 -0
  342. package/dist/chunk-PCAGC5MR.js +1763 -0
  343. package/dist/chunk-PFTQBXS6.js +5181 -0
  344. package/dist/chunk-PGSPX4SU.js +15 -0
  345. package/dist/chunk-PIKLF7BM.js +432 -0
  346. package/dist/chunk-PJWJ3SAV.js +22 -0
  347. package/dist/chunk-PKIFMV72.js +100 -0
  348. package/dist/chunk-PL37JDNA.js +189 -0
  349. package/dist/chunk-PTH5E5XO.js +195 -0
  350. package/dist/chunk-PW6AXLQC.js +4128 -0
  351. package/dist/chunk-PYITM4N2.js +79 -0
  352. package/dist/chunk-PZ5AY32C.js +10 -0
  353. package/dist/chunk-Q3RO7N35.js +45 -0
  354. package/dist/chunk-Q3WIC6GQ.js +2670 -0
  355. package/dist/chunk-Q5XIXSHX.js +271 -0
  356. package/dist/chunk-QGJDMEOV.js +34 -0
  357. package/dist/chunk-QNOB37UH.js +58 -0
  358. package/dist/chunk-QOCOVLUH.js +462 -0
  359. package/dist/chunk-QTCJ5CC5.js +172 -0
  360. package/dist/chunk-QVFV5IP2.js +232 -0
  361. package/dist/chunk-QVZMFDYG.js +29 -0
  362. package/dist/chunk-R35PEUKH.js +511 -0
  363. package/dist/chunk-R4UWBC35.js +200 -0
  364. package/dist/chunk-R6MLCREW.js +44 -0
  365. package/dist/chunk-R6W23LKN.js +254 -0
  366. package/dist/chunk-R7XDDX2A.js +4007 -0
  367. package/dist/chunk-RDFRCT64.js +168 -0
  368. package/dist/chunk-RE5VZDFQ.js +58 -0
  369. package/dist/chunk-RGROYC2G.js +638 -0
  370. package/dist/chunk-RGWHUI5E.js +68 -0
  371. package/dist/chunk-RHVG6UNL.js +205 -0
  372. package/dist/chunk-RI4EX2QE.js +18 -0
  373. package/dist/chunk-RJAAKDRX.js +17 -0
  374. package/dist/chunk-ROMHOSMQ.js +185 -0
  375. package/dist/chunk-RWREC3KJ.js +517 -0
  376. package/dist/chunk-RYNETRDJ.js +118 -0
  377. package/dist/chunk-RZY7RKM5.js +500 -0
  378. package/dist/chunk-S2MNWFAG.js +52 -0
  379. package/dist/chunk-S2VQCZO4.js +22 -0
  380. package/dist/chunk-S54MKU6V.js +117 -0
  381. package/dist/chunk-S5OIDFRM.js +302 -0
  382. package/dist/chunk-SCW4ZF6R.js +150 -0
  383. package/dist/chunk-SLS2N4PH.js +2213 -0
  384. package/dist/chunk-SNLBO4BF.js +247 -0
  385. package/dist/chunk-SP3LFU6B.js +60 -0
  386. package/dist/chunk-SQQTDDQA.js +537 -0
  387. package/dist/chunk-STV6LYYE.js +45 -0
  388. package/dist/chunk-SURZ2WFE.js +326 -0
  389. package/dist/chunk-SZ7DL357.js +1047 -0
  390. package/dist/chunk-T5E4NQCM.js +5742 -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-TGQZHDY2.js +2373 -0
  397. package/dist/chunk-TJJZ2OKV.js +6783 -0
  398. package/dist/chunk-TRSVUPCX.js +25 -0
  399. package/dist/chunk-TSXGRLPR.js +107 -0
  400. package/dist/chunk-U2S3YEX3.js +224 -0
  401. package/dist/chunk-U45RTRGY.js +818 -0
  402. package/dist/chunk-U6C3VVWS.js +13 -0
  403. package/dist/chunk-UDMS5AD3.js +307 -0
  404. package/dist/chunk-UGX7GI37.js +94 -0
  405. package/dist/chunk-UH3JJSHK.js +1 -0
  406. package/dist/chunk-UHRBTZYY.js +208 -0
  407. package/dist/chunk-UHT2KRG5.js +193 -0
  408. package/dist/chunk-UI2F6DJ5.js +118 -0
  409. package/dist/chunk-UMAKSB4Z.js +284 -0
  410. package/dist/chunk-UR2IBGIM.js +521 -0
  411. package/dist/chunk-UUH2RVKS.js +585 -0
  412. package/dist/chunk-UVJ4PJDK.js +4533 -0
  413. package/dist/chunk-V53UG2OT.js +9924 -0
  414. package/dist/chunk-V72RMBM4.js +48 -0
  415. package/dist/chunk-VBNCKCCI.js +16 -0
  416. package/dist/chunk-VNSYKC25.js +24 -0
  417. package/dist/chunk-VPHVFK4A.js +1984 -0
  418. package/dist/chunk-VTLNJQ44.js +133 -0
  419. package/dist/chunk-VTW7HP3R.js +100 -0
  420. package/dist/chunk-VVGEPBPS.js +218 -0
  421. package/dist/chunk-VVLLL7I4.js +166 -0
  422. package/dist/chunk-VX3UMWB7.js +483 -0
  423. package/dist/chunk-VXF4Q3FW.js +20 -0
  424. package/dist/chunk-W3JMT2YY.js +712 -0
  425. package/dist/chunk-WDUORIHF.js +877 -0
  426. package/dist/chunk-WDVTY4U6.js +148 -0
  427. package/dist/chunk-WIFZCHEG.js +12566 -0
  428. package/dist/chunk-WIRN3F75.js +736 -0
  429. package/dist/chunk-WMPU2UOV.js +82 -0
  430. package/dist/chunk-WTOKKE2V.js +784 -0
  431. package/dist/chunk-WX5IRLF6.js +740 -0
  432. package/dist/chunk-WZ6U3O7I.js +1581 -0
  433. package/dist/chunk-XAONGNST.js +57 -0
  434. package/dist/chunk-XB5YLCLB.js +13 -0
  435. package/dist/chunk-XEP5NQ5Y.js +688 -0
  436. package/dist/chunk-XGYF2QMZ.js +351 -0
  437. package/dist/chunk-XHEKQENB.js +255 -0
  438. package/dist/chunk-XNO4FM6X.js +1124 -0
  439. package/dist/chunk-XPHKYHO4.js +878 -0
  440. package/dist/chunk-XPK2I4NC.js +405 -0
  441. package/dist/chunk-XPU2XADL.js +2175 -0
  442. package/dist/chunk-XQD2B6BB.js +507 -0
  443. package/dist/chunk-XT2ZQVTC.js +558 -0
  444. package/dist/chunk-XTXJGGUV.js +351 -0
  445. package/dist/chunk-XUXVDPSZ.js +50 -0
  446. package/dist/chunk-XV7NZL4B.js +57 -0
  447. package/dist/chunk-XZE4XARH.js +563 -0
  448. package/dist/chunk-XZYR5EDO.js +152 -0
  449. package/dist/chunk-Y3J4JMTU.js +61 -0
  450. package/dist/chunk-Y55LZN5U.js +52 -0
  451. package/dist/chunk-Y5VN7DMP.js +112 -0
  452. package/dist/chunk-Y67VAHN4.js +459 -0
  453. package/dist/chunk-YAXSKEUH.js +3544 -0
  454. package/dist/chunk-YB3JD4E6.js +975 -0
  455. package/dist/chunk-YESZJFK6.js +220 -0
  456. package/dist/chunk-YGXKOBQQ.js +292 -0
  457. package/dist/chunk-YMX76IOS.js +31 -0
  458. package/dist/chunk-YOTXESEH.js +257 -0
  459. package/dist/chunk-YTYIEZQY.js +119 -0
  460. package/dist/chunk-YVORHQ2S.js +579 -0
  461. package/dist/chunk-Z2CUQDAR.js +3429 -0
  462. package/dist/chunk-Z2KYOFHS.js +7000 -0
  463. package/dist/chunk-Z6PC7QX6.js +161 -0
  464. package/dist/chunk-ZDTGECTN.js +235 -0
  465. package/dist/chunk-ZIPWI2LY.js +151 -0
  466. package/dist/chunk-ZSKKMTQJ.js +554 -0
  467. package/dist/chunk-ZTT5IVPY.js +1160 -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-IXL26KJT.js +40 -0
  472. package/dist/cli-validation-WLXWLUJL.js +111 -0
  473. package/dist/commit-utils-P7CRJF5N.js +202 -0
  474. package/dist/compete-config-resolver-R5ULXMYH.js +76 -0
  475. package/dist/compete-request-62JESVET.js +364 -0
  476. package/dist/compete-results-QEPG6FZX.js +208 -0
  477. package/dist/competition-outcome-tracker-R32OOZ43.js +38 -0
  478. package/dist/config-JCOKXOQT.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-7T4E2BQO.js +67 -0
  483. package/dist/config-validator-KKOHOW7O.js +72 -0
  484. package/dist/cost-YC42XUF3.js +53 -0
  485. package/dist/coverage-orchestrator-CISNKJC2.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-GJOYE7AE.js +186 -0
  492. package/dist/domain-analyzer-AWF3RP6E.js +29 -0
  493. package/dist/ensure-initialized-744DIZEZ.js +52 -0
  494. package/dist/entry.js +940 -0
  495. package/dist/environment-YS45U5ZI.js +81 -0
  496. package/dist/error-parser-core-PPZ36A4S.js +50 -0
  497. package/dist/escalation-ladder-MKTCEGSA.js +130 -0
  498. package/dist/evaluation-context-KV4GZNN7.js +35 -0
  499. package/dist/evidence-plan-resolver-GBSYSAPX.js +85 -0
  500. package/dist/execution-data-writer-3ODTBDLH.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-R3DPPMD3.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-XBN7DFIM.js +149 -0
  507. package/dist/file-utils-XIVR2ZMA.js +47 -0
  508. package/dist/flywheel-autoloop-executor-UILGOFFK.js +249 -0
  509. package/dist/flywheel-competition-executor-JOBEXTRB.js +259 -0
  510. package/dist/flywheel-executor-6JFLA6J5.js +369 -0
  511. package/dist/flywheel-git-isolation-UC5NIEVU.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-XEY5SHM6.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-DPVWWIYY.js +73 -0
  519. package/dist/git-worktree-IY6V6DUO.js +18 -0
  520. package/dist/github-pr-manager-4LXEKJTA.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 +108661 -0
  525. package/dist/instructions-6BURLQJC.js +64 -0
  526. package/dist/invoke-provider-auth-GRUYP44M.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-BJRFLGK4.js +23 -0
  531. package/dist/linux-host-class-UY4KVLFD.js +29 -0
  532. package/dist/llm-judge-executor-F7Z3HO77.js +133 -0
  533. package/dist/local-executor-CEHWE2PL.js +223 -0
  534. package/dist/logger-33TR6EE5.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-6UDN5X3F.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-XGYBG2DW.js +72 -0
  542. package/dist/next-PB5ZXZKB.js +90 -0
  543. package/dist/next-ZBDK725T.js +69 -0
  544. package/dist/optimization-config-resolver-O6WKR47U.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-VAGYBV3J.js +270 -0
  552. package/dist/plan-backlog-show-fast-SG2CZPW3.js +406 -0
  553. package/dist/plan-sprint-list-fast-LURAX47V.js +162 -0
  554. package/dist/plan-sprint-status-fast-FJAODCHD.js +208 -0
  555. package/dist/plan-task-status-fast-HNYBMQI4.js +349 -0
  556. package/dist/plan-to-flywheel-Z4U3GWPN.js +456 -0
  557. package/dist/planning-backlog-3CQ5QQBQ.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-SE5EVXAP.js +149 -0
  565. package/dist/prompts-WZZPGWBX.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-N5X57V3Y.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-YRHMQAEI.js +70 -0
  575. package/dist/quickstart-FIRLKGJI.js +62 -0
  576. package/dist/readiness-VZTMSG6J.js +96 -0
  577. package/dist/registry-YODFY77A.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-D6TX6FRG.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-F5WQEUOM.js +160 -0
  587. package/dist/run-poetic-tui-J6LWRJUP.js +13517 -0
  588. package/dist/run-simulation.js +376 -0
  589. package/dist/runner-CS2TNGHA.js +1092 -0
  590. package/dist/runner-HHH7ZN2Z.js +1571 -0
  591. package/dist/safety-OCC4KJJR.js +64 -0
  592. package/dist/safety-stanza-7SV3HGG3.js +60 -0
  593. package/dist/sandbox-32QXJEMV.js +81 -0
  594. package/dist/sandbox-RSO7VP6V.js +94 -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-UIXPYOXQ.js +338 -0
  603. package/dist/sprint-bridge-4BHMSC3M.js +68 -0
  604. package/dist/sprint-execution-service-2B7WHL5L.js +311 -0
  605. package/dist/sprint-manager-IDQUDNQI.js +91 -0
  606. package/dist/sqlite-wrapper-UDWCTNLJ.js +17 -0
  607. package/dist/stale-cleanup-orchestrator-XWXV7KCZ.js +62 -0
  608. package/dist/storage-access-F6ALDN4S.js +22 -0
  609. package/dist/synthesis-XD6EDVHF.js +185 -0
  610. package/dist/task-classifier-LNLXSHOM.js +494 -0
  611. package/dist/task-list-fast-PTMA4LUC.js +147 -0
  612. package/dist/task-manager-XAT7GOWB.js +93 -0
  613. package/dist/task-splitter-U7DJ7W6A.js +79 -0
  614. package/dist/task-type-detector-OLVOMXZO.js +21 -0
  615. package/dist/task-type-resolver-KKNQYSB4.js +42 -0
  616. package/dist/telemetry-5HWBBXLX.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-XUOZNZZ6.js +125 -0
  620. package/dist/token-estimator-MEQUL3EJ.js +37 -0
  621. package/dist/transports-KNSSV2V4.js +255 -0
  622. package/dist/unified-cost-tracker-4TFRBVPR.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-KLRNG6XA.js +33 -0
  627. package/dist/variant-state-cleanup-MZGGLQAJ.js +280 -0
  628. package/dist/variant-success-PJXWE3ZV.js +12 -0
  629. package/dist/variant-worker-KUWKBLAH.js +4196 -0
  630. package/dist/variant-worker.js +24 -0
  631. package/dist/variants-JE2FSAQS.js +233 -0
  632. package/dist/verification-toolchains-V24UHW6Q.js +28 -0
  633. package/dist/verify-commands-H3DTCSGI.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-7SA2VS2Y.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 +7042 -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/npm-shrinkwrap.json +4950 -0
  720. package/package.json +331 -0
  721. package/schemas/README.md +80 -0
  722. package/schemas/config-v1.schema.json +136 -0
  723. package/schemas/execution-config.schema.json +47 -0
  724. package/schemas/judge-scoring.schema.json +370 -0
  725. package/schemas/poetic.config.schema.json +2214 -0
  726. package/schemas/provider-config.schema.json +203 -0
  727. package/schemas/telemetry-config.schema.json +79 -0
  728. package/schemas/user-preferences.schema.json +141 -0
  729. package/scripts/assert-node-runtime.mjs +140 -0
  730. package/scripts/preflight-native.mjs +49 -0
  731. package/scripts/preinstall-node-check.mjs +78 -0
  732. package/scripts/setup-git-hooks.mjs +24 -0
  733. package/scripts/sync.sh +2722 -0
  734. package/scripts/write-node-launcher.sh +108 -0
  735. package/src/resources/gemini/slash-packs/default/plan.toml +15 -0
  736. package/src/resources/gemini/slash-packs/default/summary.toml +16 -0
  737. package/src/resources/gemini/slash-packs/default/tests.toml +16 -0
  738. package/templates/.poetic/README.md +37 -0
  739. package/templates/.poetic/agents/README.md +296 -0
  740. package/templates/.poetic/agents/api-documenter.md +147 -0
  741. package/templates/.poetic/agents/backend-architect.md +31 -0
  742. package/templates/.poetic/agents/code-reviewer.md +157 -0
  743. package/templates/.poetic/agents/data-scientist.md +179 -0
  744. package/templates/.poetic/agents/database-optimizer.md +145 -0
  745. package/templates/.poetic/agents/debugger.md +31 -0
  746. package/templates/.poetic/agents/deployment-engineer.md +164 -0
  747. package/templates/.poetic/agents/devops-troubleshooter.md +139 -0
  748. package/templates/.poetic/agents/frontend-developer.md +150 -0
  749. package/templates/.poetic/agents/javascript-pro.md +36 -0
  750. package/templates/.poetic/agents/performance-engineer.md +151 -0
  751. package/templates/.poetic/agents/python-pro.md +137 -0
  752. package/templates/.poetic/agents/test-automator.md +147 -0
  753. package/templates/.poetic/agents/typescript-pro.md +34 -0
  754. package/templates/.poetic/config/poetic.config.jsonc +69 -0
  755. package/templates/.poetic/config/project-context.template.json +6 -0
  756. package/templates/.poetic/config/task-type-aliases.presets/kanban.yaml +14 -0
  757. package/templates/.poetic/config/task-type-aliases.presets/scrum.yaml +17 -0
  758. package/templates/.poetic/config/task-type-aliases.presets/xp.yaml +12 -0
  759. package/templates/.poetic/config/task-type-aliases.yaml +28 -0
  760. package/templates/.poetic/gitignore.template +55 -0
  761. package/templates/.poetic/task-types/analysis.yaml +40 -0
  762. package/templates/.poetic/task-types/architecture.yaml +38 -0
  763. package/templates/.poetic/task-types/doc.yaml +35 -0
  764. package/templates/.poetic/task-types/feature.yaml +23 -0
  765. package/templates/.poetic/task-types/general.yaml +6 -0
  766. package/templates/.poetic/task-types/security.yaml +39 -0
  767. package/templates/AGENTS.template.md +99 -0
  768. package/templates/CLAUDE.template.md +1 -0
  769. package/templates/GEMINI.template.md +1 -0
  770. package/templates/builtin-workflows/code-review.yaml +73 -0
  771. package/templates/builtin-workflows/compete-streak.yaml +78 -0
  772. package/templates/builtin-workflows/hello-verify.yaml +10 -0
  773. package/templates/builtin-workflows/judge-regression.yaml +114 -0
  774. package/templates/builtin-workflows/skills/code-review/SKILL.md +60 -0
  775. package/templates/builtin-workflows/skills/hello-verify/SKILL.md +6 -0
  776. package/templates/guard-kit/GUARD_SETUP.md.template +255 -0
  777. package/templates/guard-kit/check.mjs.template +777 -0
  778. package/templates/guard-kit/config.json.template +6 -0
  779. package/templates/guard-kit/poetic-guard.yml.template +189 -0
  780. package/templates/profiles/README.md +56 -0
  781. package/templates/profiles/frontier-claude.json +27 -0
  782. package/templates/profiles/frontier-codex.json +26 -0
@@ -0,0 +1,1483 @@
1
+ import {
2
+ sanitizeArgvForLogging,
3
+ sanitizeError,
4
+ sanitizeString
5
+ } from "./chunk-LPITVM7M.js";
6
+ import {
7
+ POETIC_COST_DEBUG,
8
+ POETIC_DEBUG,
9
+ POETIC_DEBUG_PATHS,
10
+ POETIC_DEBUG_SIGNALS,
11
+ POETIC_DEBUG_TELEMETRY,
12
+ POETIC_DEBUG_TEST_DETECTION,
13
+ POETIC_DEBUG_TIMEOUT,
14
+ POETIC_JSON_OUTPUT,
15
+ POETIC_OUTPUT_JSON,
16
+ POETIC_QUIET,
17
+ POETIC_WARNINGS_CONSOLE_LEVEL,
18
+ readEnv
19
+ } from "./chunk-5DLKYTQX.js";
20
+
21
+ // src/core/debug.ts
22
+ function isDebugMode() {
23
+ return readEnv(POETIC_DEBUG).value ?? false;
24
+ }
25
+ function isTelemetryDebug() {
26
+ return readEnv(POETIC_DEBUG_TELEMETRY).value ?? false;
27
+ }
28
+ function isPathDebug() {
29
+ return readEnv(POETIC_DEBUG_PATHS).value ?? false;
30
+ }
31
+ function isTimeoutDebug() {
32
+ return (readEnv(POETIC_DEBUG_TIMEOUT).value ?? false) || isDebugMode();
33
+ }
34
+ function isSignalDebug() {
35
+ return readEnv(POETIC_DEBUG_SIGNALS).value ?? false;
36
+ }
37
+ function isTestDetectionDebug() {
38
+ return readEnv(POETIC_DEBUG_TEST_DETECTION).value ?? false;
39
+ }
40
+ function isCostDebug() {
41
+ return readEnv(POETIC_COST_DEBUG).value || isDebugMode();
42
+ }
43
+ function isVerboseOrDebug(verbose) {
44
+ return verbose === true || isDebugMode();
45
+ }
46
+ function sanitizeDebugArg(value, seen = /* @__PURE__ */ new WeakSet()) {
47
+ if (typeof value === "string") {
48
+ return sanitizeString(value);
49
+ }
50
+ if (value instanceof Error) {
51
+ return sanitizeError(value);
52
+ }
53
+ if (Array.isArray(value)) {
54
+ if (value.every((item) => typeof item === "string")) {
55
+ return sanitizeArgvForLogging(value);
56
+ }
57
+ return value.map((item) => sanitizeDebugArg(item, seen));
58
+ }
59
+ if (typeof value !== "object" || value === null) {
60
+ return value;
61
+ }
62
+ if (seen.has(value)) {
63
+ return "[Circular]";
64
+ }
65
+ seen.add(value);
66
+ const sanitized = {};
67
+ for (const [key, item] of Object.entries(value)) {
68
+ sanitized[sanitizeString(key)] = sanitizeDebugArg(item, seen);
69
+ }
70
+ seen.delete(value);
71
+ return sanitized;
72
+ }
73
+ function debugLog(message, ...args) {
74
+ if (isDebugMode()) {
75
+ const sanitizedMessage = sanitizeString(message);
76
+ if (args.length > 0) {
77
+ console.error(`[DEBUG] ${sanitizedMessage}`, ...args.map((arg) => sanitizeDebugArg(arg)));
78
+ } else {
79
+ console.error(`[DEBUG] ${sanitizedMessage}`);
80
+ }
81
+ }
82
+ }
83
+ function telemetryDebugLog(message, ...args) {
84
+ if (isTelemetryDebug()) {
85
+ const sanitizedMessage = sanitizeString(message);
86
+ if (args.length > 0) {
87
+ console.error(
88
+ `[TELEMETRY-DEBUG] ${sanitizedMessage}`,
89
+ ...args.map((arg) => sanitizeDebugArg(arg))
90
+ );
91
+ } else {
92
+ console.error(`[TELEMETRY-DEBUG] ${sanitizedMessage}`);
93
+ }
94
+ }
95
+ }
96
+
97
+ // src/core/warnings/emit.ts
98
+ import { AsyncLocalStorage } from "async_hooks";
99
+
100
+ // src/core/warnings/registry.ts
101
+ var WARNING_REGISTRY = {
102
+ // ========================================================================
103
+ // WORKSPACE EDITS (WS-xxx)
104
+ // ========================================================================
105
+ "WS-001": {
106
+ code: "WS-001",
107
+ severity: "INFO" /* INFO */,
108
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
109
+ description: "Workspace edit emitted but not applied (provider lacks edit support)",
110
+ commonCauses: [
111
+ "Provider in analysis-only mode",
112
+ "Provider does not support workspace edits",
113
+ "Dry-run mode enabled"
114
+ ],
115
+ recoveryMechanism: "Edits captured in telemetry for manual review",
116
+ expectedRecoveryRate: 100,
117
+ actionRequired: false,
118
+ diagnosticProcedure: 'Check provider capabilities: workspaceEditSupport should be "patch-protocol"'
119
+ },
120
+ "WS-002": {
121
+ code: "WS-002",
122
+ severity: "WARN" /* WARN */,
123
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
124
+ description: "Workspace warning umbrella code (legacy - use WS-002A/WS-002B/WS-002D/WS-002E/WS-002F/WS-002G)",
125
+ commonCauses: ["Permission denied", "File locked by another process", "Disk full"],
126
+ recoveryMechanism: "Retry with temporary file + atomic rename",
127
+ expectedRecoveryRate: 95,
128
+ actionRequired: false,
129
+ diagnosticProcedure: "Check file permissions and disk space"
130
+ },
131
+ "WS-002A": {
132
+ code: "WS-002A",
133
+ severity: "WARN" /* WARN */,
134
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
135
+ description: "Workspace file write failed, retrying with backup strategy",
136
+ commonCauses: ["Permission denied", "File locked by another process", "Disk full"],
137
+ recoveryMechanism: "Retry with temporary file + atomic rename",
138
+ expectedRecoveryRate: 95,
139
+ actionRequired: false,
140
+ diagnosticProcedure: "Check file permissions and disk space"
141
+ },
142
+ "WS-002B": {
143
+ code: "WS-002B",
144
+ severity: "WARN" /* WARN */,
145
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
146
+ description: "Workspace edits recovered from stdout fallback channel",
147
+ commonCauses: [
148
+ "Provider emitted brace-encoded edits in stdout instead of file channel",
149
+ "Partial protocol mismatch in workspace edit output"
150
+ ],
151
+ recoveryMechanism: "Parsed fallback stdout edits and continued execution",
152
+ expectedRecoveryRate: 100,
153
+ actionRequired: false,
154
+ diagnosticProcedure: "Inspect provider output channel and prefer file-based edits.jsonl protocol"
155
+ },
156
+ "WS-002D": {
157
+ code: "WS-002D",
158
+ severity: "WARN" /* WARN */,
159
+ category: "performance" /* PERFORMANCE */,
160
+ description: "Task tracking state conflict or missing task context",
161
+ commonCauses: [
162
+ "Duplicate task start/update calls",
163
+ "Concurrent updates referencing unknown task IDs",
164
+ "Out-of-order telemetry event delivery"
165
+ ],
166
+ recoveryMechanism: "Operation skipped while tracker remains available",
167
+ expectedRecoveryRate: 100,
168
+ actionRequired: false,
169
+ diagnosticProcedure: "Review task lifecycle ordering and telemetry event sequencing"
170
+ },
171
+ "WS-002E": {
172
+ code: "WS-002E",
173
+ severity: "WARN" /* WARN */,
174
+ category: "configuration" /* CONFIGURATION */,
175
+ description: "Worktree/provider setup filesystem operation failed (non-fatal)",
176
+ commonCauses: [
177
+ "Unable to create provider config directory",
178
+ "Failed to copy provider snapshot/config files",
179
+ "Filesystem permission or transient IO contention"
180
+ ],
181
+ recoveryMechanism: "Continue execution with degraded setup",
182
+ expectedRecoveryRate: 80,
183
+ actionRequired: false,
184
+ diagnosticProcedure: "Check setup metadata paths and verify filesystem permissions"
185
+ },
186
+ "WS-002F": {
187
+ code: "WS-002F",
188
+ severity: "WARN" /* WARN */,
189
+ category: "configuration" /* CONFIGURATION */,
190
+ description: "Feature flag storage temp-file cleanup failed",
191
+ commonCauses: ["Temp file locked", "Permission denied", "Concurrent cleanup race"],
192
+ recoveryMechanism: "Best-effort cleanup deferred to next run",
193
+ expectedRecoveryRate: 90,
194
+ actionRequired: false,
195
+ diagnosticProcedure: "Inspect feature flag temp paths and concurrent writers"
196
+ },
197
+ "WS-002G": {
198
+ code: "WS-002G",
199
+ severity: "WARN" /* WARN */,
200
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
201
+ description: "Planning metadata parse/load warning for tech debt item",
202
+ commonCauses: ["Malformed markdown frontmatter", "Unexpected planning metadata schema"],
203
+ recoveryMechanism: "Skipped unreadable item and continued listing",
204
+ expectedRecoveryRate: 100,
205
+ actionRequired: false,
206
+ diagnosticProcedure: "Validate planning markdown metadata schema for the reported file"
207
+ },
208
+ "WS-003": {
209
+ code: "WS-003",
210
+ severity: "ERROR" /* ERROR */,
211
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
212
+ description: "Edit operation failed after all retry attempts",
213
+ commonCauses: ["Persistent permission issues", "Invalid file path", "Filesystem error"],
214
+ recoveryMechanism: void 0,
215
+ expectedRecoveryRate: 0,
216
+ actionRequired: true,
217
+ diagnosticProcedure: "Review variant execution logs and filesystem state"
218
+ },
219
+ "WS-004": {
220
+ code: "WS-004",
221
+ severity: "WARN" /* WARN */,
222
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
223
+ description: "Workspace edits emitted but not all were applied (legacy code, use WS-004A/WS-004B)",
224
+ commonCauses: [
225
+ "Unsafe file paths (absolute paths, parent traversal)",
226
+ "Excluded files (node_modules, .git, etc.)",
227
+ "Invalid edit operations",
228
+ "File permission issues"
229
+ ],
230
+ recoveryMechanism: "Applied valid edits, rejected unsafe ones",
231
+ expectedRecoveryRate: 100,
232
+ actionRequired: false,
233
+ diagnosticProcedure: "Check telemetry for workspace_edits_emitted vs workspace_edits_applied delta"
234
+ },
235
+ "WS-004A": {
236
+ code: "WS-004A",
237
+ severity: "WARN" /* WARN */,
238
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
239
+ description: "Stale workspace edit file detected and ignored",
240
+ commonCauses: [
241
+ "Edit file from previous run still present",
242
+ "Worktree cloned with stale edits.jsonl tracked in git",
243
+ "Race condition between runs"
244
+ ],
245
+ recoveryMechanism: "Stale file deleted, no edits from this source applied",
246
+ expectedRecoveryRate: 100,
247
+ actionRequired: false,
248
+ diagnosticProcedure: "Check if .poetic/edits.jsonl is tracked in git (should be gitignored)"
249
+ },
250
+ "WS-004B": {
251
+ code: "WS-004B",
252
+ severity: "WARN" /* WARN */,
253
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
254
+ description: "Some workspace edits were rejected during validation",
255
+ commonCauses: [
256
+ "Unsafe file paths (absolute paths, parent traversal)",
257
+ "Excluded files (node_modules, .git, etc.)",
258
+ "Invalid edit operations",
259
+ "File permission issues"
260
+ ],
261
+ recoveryMechanism: "Applied valid edits, rejected unsafe ones",
262
+ expectedRecoveryRate: 100,
263
+ actionRequired: false,
264
+ diagnosticProcedure: "Check telemetry metadata for editsEmitted, editsApplied, and editsRejected counts"
265
+ },
266
+ "WS-004C": {
267
+ code: "WS-004C",
268
+ severity: "ERROR" /* ERROR */,
269
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
270
+ description: "Provider failed to emit workspace edits despite FILE: targets and code intent",
271
+ commonCauses: [
272
+ "Provider parsed FILE: spec but emitted zero workspace edits",
273
+ "Protocol mismatch: provider emits prose-wrapped or diff-format output instead of clean JSONL",
274
+ "Provider treats task as analysis despite code intent",
275
+ "Missing .poetic/edits.jsonl file or empty git diff"
276
+ ],
277
+ recoveryMechanism: "None - provider failed to emit any workspace edits for FILE: targets",
278
+ expectedRecoveryRate: 0,
279
+ actionRequired: true,
280
+ diagnosticProcedure: 'Check workspaceEditsRequested (should be > 0), filesChanged (should be > 0), and executionIntent (should be "code"); verify .poetic/edits.jsonl exists; review provider output format'
281
+ },
282
+ "WS-004E": {
283
+ code: "WS-004E",
284
+ severity: "INFO" /* INFO */,
285
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
286
+ description: "Workspace edit matched FILE target using fuzzy path matching",
287
+ commonCauses: [
288
+ "User specified FILE: greet.ts but provider output src/utils/greet.ts",
289
+ "User specified FILE: ./src/foo.ts but provider output src/foo.ts",
290
+ "Path normalization differences between user input and provider output"
291
+ ],
292
+ recoveryMechanism: "Fuzzy match accepted; edit applied successfully",
293
+ expectedRecoveryRate: 100,
294
+ actionRequired: false,
295
+ diagnosticProcedure: "Review fuzzy match details in metadata (targetPath, editPath, matchType)"
296
+ },
297
+ "WS-004F": {
298
+ code: "WS-004F",
299
+ severity: "WARN" /* WARN */,
300
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
301
+ description: "No git-detected changes matched FILE targets",
302
+ commonCauses: [
303
+ "Provider ignored FILE targets and made no relevant edits",
304
+ "Task was answered as analysis/planning despite code intent",
305
+ "Worktree changes were reverted or never written",
306
+ "FILE targets did not match repository paths"
307
+ ],
308
+ recoveryMechanism: "None - no on-target changes detected for FILE targets",
309
+ expectedRecoveryRate: 0,
310
+ actionRequired: false,
311
+ diagnosticProcedure: "Inspect metadata (fileTargets, gitChanges, attemptedEdits) and provider output; verify FILE targets are correct and the task intent is code"
312
+ },
313
+ "WS-006": {
314
+ code: "WS-006",
315
+ severity: "ERROR" /* ERROR */,
316
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
317
+ description: "Files in git status do not exist on disk",
318
+ commonCauses: [
319
+ "Worktree corruption or cleanup race condition",
320
+ "Git index out of sync with filesystem",
321
+ "File deletion between status check and validation",
322
+ "Filesystem mount issue"
323
+ ],
324
+ recoveryMechanism: void 0,
325
+ expectedRecoveryRate: 0,
326
+ actionRequired: true,
327
+ diagnosticProcedure: "Check worktree integrity with git fsck; verify filesystem mount status; review cleanup timing"
328
+ },
329
+ "WS-007": {
330
+ code: "WS-007",
331
+ severity: "ERROR" /* ERROR */,
332
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
333
+ description: "Workspace write rejected due to empty or missing file contents",
334
+ commonCauses: [
335
+ "Provider emitted an empty writeFile payload",
336
+ "Provider omitted the contents field for a writeFile edit",
337
+ "Provider produced a stub declaration without a corresponding fill write",
338
+ "Tool/protocol failure truncated the write payload before application"
339
+ ],
340
+ recoveryMechanism: void 0,
341
+ expectedRecoveryRate: 0,
342
+ actionRequired: true,
343
+ diagnosticProcedure: "Inspect workspace edit payloads for empty or missing contents; verify the provider emitted full file content; review `.poetic/edits.jsonl` or provider tool output"
344
+ },
345
+ "WS-008": {
346
+ code: "WS-008",
347
+ severity: "WARN" /* WARN */,
348
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
349
+ description: "Preflight: FILE: targets reference non-existent files",
350
+ commonCauses: [
351
+ "FILE: specification references files that do not exist",
352
+ "Typo in file path",
353
+ "Task describes modifying a file that should be created",
354
+ "Function/file was renamed or moved"
355
+ ],
356
+ recoveryMechanism: "Add (create) annotation to paths for new files, or correct path to existing file",
357
+ expectedRecoveryRate: 80,
358
+ actionRequired: false,
359
+ diagnosticProcedure: "Verify FILE: paths exist; use (create) annotation for new files; check for typos"
360
+ },
361
+ "WS-009": {
362
+ code: "WS-009",
363
+ severity: "WARN" /* WARN */,
364
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
365
+ description: "FILE: target was created instead of modified (fabrication detected)",
366
+ commonCauses: [
367
+ "Provider created a new file instead of modifying existing code",
368
+ "Task specified modifying a function/file that does not exist",
369
+ "Provider misunderstood the task and fabricated a solution",
370
+ "FILE: path typo causing creation of new file with similar name"
371
+ ],
372
+ recoveryMechanism: "Verify FILE: targets exist before execution; use correct function/file names",
373
+ expectedRecoveryRate: 50,
374
+ actionRequired: true,
375
+ diagnosticProcedure: "Check git status for ?? (untracked) files; verify task intent was modification not creation"
376
+ },
377
+ "WS-010": {
378
+ code: "WS-010",
379
+ severity: "ERROR" /* ERROR */,
380
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
381
+ description: "Workspace write rejected due to placeholder file contents",
382
+ commonCauses: [
383
+ 'Provider emitted placeholder text like "(modified content)" instead of real file contents',
384
+ 'Provider returned a sentinel such as "[FULL_FILE_CONTENT_*]" or "<FILE_CONTENT>"',
385
+ "Provider failed mid-edit and produced a stub response"
386
+ ],
387
+ recoveryMechanism: 'Retry provider with strict "full file contents only" requirement; verify edits.jsonl',
388
+ expectedRecoveryRate: 70,
389
+ actionRequired: true,
390
+ diagnosticProcedure: "Inspect .poetic/edits.jsonl for placeholder payloads; verify the target file was not truncated; re-run with stricter prompt/tooling"
391
+ },
392
+ "WS-011": {
393
+ code: "WS-011",
394
+ severity: "WARN" /* WARN */,
395
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
396
+ description: "Workspace write rejected due to suspiciously short stub content",
397
+ commonCauses: [
398
+ 'Provider produced an incomplete stub like "// TODO" for an existing file',
399
+ "Provider attempted to write a minimal placeholder export/module stub",
400
+ "Provider truncation or tool failure returned partial output"
401
+ ],
402
+ recoveryMechanism: "Retry provider; require full file content and forbid placeholders/stubs",
403
+ expectedRecoveryRate: 60,
404
+ actionRequired: false,
405
+ diagnosticProcedure: "Check whether the file should be small/new; inspect provider output for truncation; verify git diff for unintended file wipes"
406
+ },
407
+ "WS-012": {
408
+ code: "WS-012",
409
+ severity: "ERROR" /* ERROR */,
410
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
411
+ description: "FILE: targets specified but files do not exist on disk",
412
+ commonCauses: [
413
+ "Provider failed to create target files",
414
+ "Path mismatch between FILE: spec and provider output",
415
+ "File write failed silently",
416
+ "Provider ignored FILE: specification"
417
+ ],
418
+ recoveryMechanism: void 0,
419
+ expectedRecoveryRate: 0,
420
+ actionRequired: true,
421
+ diagnosticProcedure: "Check provider logs for file creation; verify FILE: paths are relative; review provider FILE: specification support"
422
+ },
423
+ "WS-201": {
424
+ code: "WS-201",
425
+ severity: "WARN" /* WARN */,
426
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
427
+ description: "Off-target edits were corrected or flagged during FILE target enforcement",
428
+ commonCauses: [
429
+ "Provider attempted edits outside requested FILE targets",
430
+ "FILE target path mismatch or normalization differences",
431
+ "Git-detected changes leaked outside target scope during execution"
432
+ ],
433
+ recoveryMechanism: "Off-target edits dropped, reverted, or flagged based on enforcement policy",
434
+ expectedRecoveryRate: 100,
435
+ actionRequired: false,
436
+ diagnosticProcedure: "Inspect correctionStage, action, enforcementPath, and affected file metadata against requested FILE targets"
437
+ },
438
+ "WS-202": {
439
+ code: "WS-202",
440
+ severity: "WARN" /* WARN */,
441
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
442
+ description: "Provider reported file changes but git evidence was empty",
443
+ commonCauses: [
444
+ "Provider reported file modifications that never landed on disk",
445
+ "Worktree or git status changed between provider execution and validation",
446
+ "Provider/native runner overstated modified file evidence"
447
+ ],
448
+ recoveryMechanism: "Execution continued with degraded confidence in provider file-change signal",
449
+ expectedRecoveryRate: 0,
450
+ actionRequired: false,
451
+ diagnosticProcedure: "Compare provider-reported files with git status, commit movement, and FILE target matches"
452
+ },
453
+ "WS-203": {
454
+ code: "WS-203",
455
+ severity: "INFO" /* INFO */,
456
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
457
+ description: "Workspace edits were applied but produced no git diff",
458
+ commonCauses: [
459
+ "Edits were no-ops (writing identical content)",
460
+ "Edits normalized formatting to the existing file state",
461
+ "Workspace edits landed in paths excluded from git change evidence"
462
+ ],
463
+ recoveryMechanism: void 0,
464
+ expectedRecoveryRate: 0,
465
+ actionRequired: false,
466
+ diagnosticProcedure: "Compare workspace_edits_applied to git diff evidence and provider-reported modified files"
467
+ },
468
+ // ========================================================================
469
+ // EXECUTION BOUNDARY (EB-xxx)
470
+ // ========================================================================
471
+ "EB-001": {
472
+ code: "EB-001",
473
+ description: "Execution boundary triggered (idle, ceiling, or progress stagnation)",
474
+ severity: "WARN" /* WARN */,
475
+ category: "performance" /* PERFORMANCE */,
476
+ commonCauses: [
477
+ "Agent idle beyond configured threshold (no stdout/CPU activity)",
478
+ "Hard ceiling reached for workload class",
479
+ "Progress stagnation: no meaningful change across consecutive checks"
480
+ ],
481
+ recoveryMechanism: "Execution terminated; results up to boundary are preserved",
482
+ expectedRecoveryRate: 100,
483
+ actionRequired: false,
484
+ diagnosticProcedure: "Check trigger field in metadata (idle/ceiling/progress); review elapsedMs vs effectiveCeilingMs; inspect source for the boundary owner"
485
+ },
486
+ // ========================================================================
487
+ // GIT VALIDATION (GIT-xxx)
488
+ // ========================================================================
489
+ "GIT-001": {
490
+ code: "GIT-001",
491
+ severity: "ERROR" /* ERROR */,
492
+ category: "validation" /* VALIDATION */,
493
+ description: "Success reported but git shows zero tracked file changes",
494
+ commonCauses: [
495
+ "Provider emitted empty workspace edits",
496
+ "Provider wrote only files under gitignored paths",
497
+ "Analysis-only output when code was expected",
498
+ "Provider bug or misconfiguration",
499
+ "Git worktree sync issue"
500
+ ],
501
+ recoveryMechanism: void 0,
502
+ expectedRecoveryRate: 0,
503
+ actionRequired: true,
504
+ diagnosticProcedure: "Check workspaceEditsApplied vs filesChanged; inspect ignoredPaths metadata; verify executionIntent (should not be analysis); review provider logs"
505
+ },
506
+ // ========================================================================
507
+ // PROVIDER EXECUTION (PR-xxx)
508
+ // ========================================================================
509
+ "PR-001": {
510
+ code: "PR-001",
511
+ severity: "ERROR" /* ERROR */,
512
+ category: "provider_execution" /* PROVIDER_EXECUTION */,
513
+ description: "Provider execution failed with non-zero exit code",
514
+ commonCauses: ["Provider internal error", "API timeout", "Invalid configuration"],
515
+ recoveryMechanism: "Fallback to alternative provider if configured",
516
+ expectedRecoveryRate: 30,
517
+ actionRequired: true,
518
+ diagnosticProcedure: "Check provider logs and API status"
519
+ },
520
+ "PR-002": {
521
+ code: "PR-002",
522
+ severity: "WARN" /* WARN */,
523
+ category: "provider_execution" /* PROVIDER_EXECUTION */,
524
+ description: "Provider execution timed out, using partial results",
525
+ commonCauses: ["Network latency", "Large task complexity", "Provider overload"],
526
+ recoveryMechanism: "Return partial results, mark as incomplete",
527
+ expectedRecoveryRate: 70,
528
+ actionRequired: false,
529
+ diagnosticProcedure: "Review task complexity and provider latency metrics"
530
+ },
531
+ "PR-003": {
532
+ code: "PR-003",
533
+ severity: "INFO" /* INFO */,
534
+ category: "provider_execution" /* PROVIDER_EXECUTION */,
535
+ description: "Provider API rate limit approaching",
536
+ commonCauses: ["High request volume", "Aggressive retry policy"],
537
+ recoveryMechanism: "Throttle requests and backoff",
538
+ expectedRecoveryRate: 100,
539
+ actionRequired: false,
540
+ diagnosticProcedure: "Review rate limit configuration and request patterns"
541
+ },
542
+ "PR-004": {
543
+ code: "PR-004",
544
+ severity: "WARN" /* WARN */,
545
+ category: "provider_execution" /* PROVIDER_EXECUTION */,
546
+ description: "Provider API rate limit exceeded",
547
+ commonCauses: ["Provider hard quota reached", "Burst traffic above allowed rate"],
548
+ recoveryMechanism: "Honor retry-after hints and reduce concurrency",
549
+ expectedRecoveryRate: 90,
550
+ actionRequired: false,
551
+ diagnosticProcedure: "Inspect provider 429 responses and adjust concurrency/backoff"
552
+ },
553
+ "PR-007": {
554
+ code: "PR-007",
555
+ severity: "INFO" /* INFO */,
556
+ category: "provider_execution" /* PROVIDER_EXECUTION */,
557
+ description: "Provider capability mismatch: requested feature not supported or fell back",
558
+ commonCauses: [
559
+ "Reasoning effort requested but provider CLI does not support it",
560
+ "Requested effort level fell back to a lower tier or was ignored",
561
+ "Provider version predates the capability"
562
+ ],
563
+ recoveryMechanism: "Execution continues without the requested capability",
564
+ expectedRecoveryRate: 100,
565
+ actionRequired: false,
566
+ diagnosticProcedure: "Check requestedReasoningEffort vs effectiveReasoningEffort in metadata; upgrade provider CLI or omit the effort flag"
567
+ },
568
+ "PR-006": {
569
+ code: "PR-006",
570
+ severity: "INFO" /* INFO */,
571
+ category: "provider_execution" /* PROVIDER_EXECUTION */,
572
+ description: "Provider output format drift detected (metadata gap, missing signal, or parse fallback)",
573
+ commonCauses: [
574
+ "CLI output schema changed between provider versions",
575
+ "Token usage fields renamed or removed in JSONL stream",
576
+ "Completion signal JSON absent from provider stdout",
577
+ "JSONL parse failed and raw stdout fallback was used"
578
+ ],
579
+ recoveryMechanism: "Execution continues with degraded metadata; check provider CLI version",
580
+ expectedRecoveryRate: 100,
581
+ actionRequired: false,
582
+ diagnosticProcedure: "Inspect metadata.field and metadata.detail for the affected output field; update the parser if the CLI format has changed"
583
+ },
584
+ "PR-005": {
585
+ code: "PR-005",
586
+ severity: "WARN" /* WARN */,
587
+ category: "provider_execution" /* PROVIDER_EXECUTION */,
588
+ description: "Competitive variant terminated due to zero file progress within threshold",
589
+ commonCauses: [
590
+ "Provider analyzing code without writing changes (stuck in planning phase)",
591
+ "Provider encountered internal error without surfacing exit code",
592
+ "Task complexity too high for the configured timeout budget"
593
+ ],
594
+ recoveryMechanism: "Variant aborted early; competition continues with remaining variants",
595
+ expectedRecoveryRate: 80,
596
+ actionRequired: false,
597
+ diagnosticProcedure: "Increase POETIC_ZERO_PROGRESS_KILL_MS or review provider logs for stuck analysis loops"
598
+ },
599
+ // ========================================================================
600
+ // PROMPT MODE (PM-xxx)
601
+ // ========================================================================
602
+ "PM-001": {
603
+ code: "PM-001",
604
+ severity: "WARN" /* WARN */,
605
+ category: "provider_execution" /* PROVIDER_EXECUTION */,
606
+ description: "Requested workspace mode did not match the mode applied by the execution path",
607
+ commonCauses: [
608
+ "Provider native runner did not receive workspaceMode option",
609
+ "Provider prompt adapter disabled via *_LOCAL_VERTICAL_SLICE=0",
610
+ "Workspace mode not supported by provider/runner (fallback to passthrough)"
611
+ ],
612
+ recoveryMechanism: "Run continues with applied mode; mismatch is recorded for audit",
613
+ expectedRecoveryRate: 100,
614
+ actionRequired: false,
615
+ diagnosticProcedure: "Inspect workspaceModeRequested vs workspaceMode in variant result; ensure provider adapter is enabled and workspaceMode is propagated to runner"
616
+ },
617
+ // ========================================================================
618
+ // AUTHENTICATION (AUTH-xxx)
619
+ // ========================================================================
620
+ "AUTH-001": {
621
+ code: "AUTH-001",
622
+ severity: "ERROR" /* ERROR */,
623
+ category: "configuration" /* CONFIGURATION */,
624
+ description: "AI judge authentication failed at execution time",
625
+ commonCauses: ["Claude CLI not authenticated", "Claude CLI not installed"],
626
+ recoveryMechanism: "Run `claude` and complete /login (or set CLAUDE_CODE_OAUTH_TOKEN via `claude setup-token`)",
627
+ expectedRecoveryRate: 100,
628
+ actionRequired: true,
629
+ diagnosticProcedure: "Authenticate Claude CLI: run `claude` and complete /login"
630
+ },
631
+ // ========================================================================
632
+ // VALIDATION (VAL-xxx)
633
+ // ========================================================================
634
+ "VAL-001": {
635
+ code: "VAL-001",
636
+ severity: "WARN" /* WARN */,
637
+ category: "validation" /* VALIDATION */,
638
+ description: "AI judge evaluation unavailable or failed (legacy - use specific VAL-001X codes)",
639
+ commonCauses: [
640
+ "Breaking changes introduced",
641
+ "Flaky tests",
642
+ "Invalid test configuration",
643
+ "Judge credentials not configured",
644
+ "Judge execution error"
645
+ ],
646
+ recoveryMechanism: void 0,
647
+ expectedRecoveryRate: 0,
648
+ actionRequired: true,
649
+ diagnosticProcedure: "Review test failures and variant changes; check AUTH-001 for credential issues"
650
+ },
651
+ "VAL-001A": {
652
+ code: "VAL-001A",
653
+ severity: "WARN" /* WARN */,
654
+ category: "validation" /* VALIDATION */,
655
+ description: "AI judge evaluation timed out",
656
+ commonCauses: [
657
+ "Judge execution exceeded timeout",
658
+ "Network latency to AI provider",
659
+ "Large number of variants to evaluate"
660
+ ],
661
+ recoveryMechanism: "Fall back to algorithmic selection",
662
+ expectedRecoveryRate: 100,
663
+ actionRequired: false,
664
+ diagnosticProcedure: "Check network connectivity; consider increasing timeout or reducing variant count"
665
+ },
666
+ "VAL-001B": {
667
+ code: "VAL-001B",
668
+ severity: "ERROR" /* ERROR */,
669
+ category: "validation" /* VALIDATION */,
670
+ description: "AI judge evaluation runtime error",
671
+ commonCauses: [
672
+ "Judge execution threw exception",
673
+ "Invalid response from AI provider",
674
+ "Configuration error",
675
+ "Unexpected input format"
676
+ ],
677
+ recoveryMechanism: "Fall back to algorithmic selection",
678
+ expectedRecoveryRate: 100,
679
+ actionRequired: true,
680
+ diagnosticProcedure: "Check judge logs for exception details; verify AI provider configuration"
681
+ },
682
+ "VAL-001C": {
683
+ code: "VAL-001C",
684
+ severity: "INFO" /* INFO */,
685
+ category: "validation" /* VALIDATION */,
686
+ description: "No variants to evaluate",
687
+ commonCauses: [
688
+ "All variants filtered out",
689
+ "No variants provided to judge",
690
+ "Empty competition"
691
+ ],
692
+ recoveryMechanism: void 0,
693
+ expectedRecoveryRate: 0,
694
+ actionRequired: false,
695
+ diagnosticProcedure: "Verify variant execution completed successfully; check filtering criteria"
696
+ },
697
+ "VAL-001D": {
698
+ code: "VAL-001D",
699
+ severity: "ERROR" /* ERROR */,
700
+ category: "validation" /* VALIDATION */,
701
+ description: "Judge result parsing failure",
702
+ commonCauses: [
703
+ "Malformed JSON in judge response",
704
+ "Unexpected response structure",
705
+ "Missing required fields",
706
+ "Type mismatch in parsed data"
707
+ ],
708
+ recoveryMechanism: "Fall back to algorithmic selection",
709
+ expectedRecoveryRate: 90,
710
+ actionRequired: true,
711
+ diagnosticProcedure: "Check judge response format; verify AI provider output matches expected schema"
712
+ },
713
+ "VAL-001E": {
714
+ code: "VAL-001E",
715
+ severity: "INFO" /* INFO */,
716
+ category: "validation" /* VALIDATION */,
717
+ description: "Judge telemetry logging failed (non-critical)",
718
+ commonCauses: [
719
+ "Database write failed",
720
+ "Telemetry system unavailable",
721
+ "Invalid telemetry data format"
722
+ ],
723
+ recoveryMechanism: "Judge evaluation continues without telemetry",
724
+ expectedRecoveryRate: 100,
725
+ actionRequired: false,
726
+ diagnosticProcedure: "Check database connectivity; verify telemetry configuration"
727
+ },
728
+ "VAL-001F": {
729
+ code: "VAL-001F",
730
+ severity: "INFO" /* INFO */,
731
+ category: "validation" /* VALIDATION */,
732
+ description: "Bandit state save failed (non-critical)",
733
+ commonCauses: ["Database write failed", "State file inaccessible", "Invalid state format"],
734
+ recoveryMechanism: "Evaluation continues; learning state not persisted",
735
+ expectedRecoveryRate: 100,
736
+ actionRequired: false,
737
+ diagnosticProcedure: "Check database connectivity and filesystem permissions; verify state serialization"
738
+ },
739
+ "VAL-001G": {
740
+ code: "VAL-001G",
741
+ severity: "WARN" /* WARN */,
742
+ category: "validation" /* VALIDATION */,
743
+ description: "Judge evaluation approaching timeout budget",
744
+ commonCauses: [
745
+ "Large diff or prompt payload",
746
+ "High variant count",
747
+ "Provider latency variance",
748
+ "Insufficient timeout budget for current workload"
749
+ ],
750
+ recoveryMechanism: "Evaluation may still complete; increase budget/deadline if warnings persist",
751
+ expectedRecoveryRate: 100,
752
+ actionRequired: false,
753
+ diagnosticProcedure: "Inspect utilization metadata and recent judge durations; tune budget scaling or timeout settings"
754
+ },
755
+ "VAL-002": {
756
+ code: "VAL-002",
757
+ severity: "WARN" /* WARN */,
758
+ category: "validation" /* VALIDATION */,
759
+ description: "Linting errors detected but not blocking",
760
+ commonCauses: ["Code style violations", "Type errors", "Unused imports"],
761
+ recoveryMechanism: "Auto-fix with linter if configured",
762
+ expectedRecoveryRate: 80,
763
+ actionRequired: false,
764
+ diagnosticProcedure: "Run linter with --fix flag"
765
+ },
766
+ "VAL-003": {
767
+ code: "VAL-003",
768
+ severity: "WARN" /* WARN */,
769
+ category: "validation" /* VALIDATION */,
770
+ description: "Build succeeded with warnings",
771
+ commonCauses: ["Deprecated API usage", "Type mismatches", "Unused variables"],
772
+ recoveryMechanism: void 0,
773
+ expectedRecoveryRate: 0,
774
+ actionRequired: false,
775
+ diagnosticProcedure: "Review build output for warnings"
776
+ },
777
+ "VAL-004": {
778
+ code: "VAL-004",
779
+ severity: "WARN" /* WARN */,
780
+ category: "validation" /* VALIDATION */,
781
+ description: "Variant key exclusion during canonical map construction",
782
+ commonCauses: [
783
+ "Variant key contained invalid or empty segments",
784
+ "Duplicate canonical key after normalization"
785
+ ],
786
+ recoveryMechanism: "Normalized variants proceed with the canonical key; excluded variants are dropped from judge evaluation",
787
+ expectedRecoveryRate: 100,
788
+ actionRequired: false,
789
+ diagnosticProcedure: "Check compete output for normalization preview; verify variant --variant flags match provider model resolution"
790
+ },
791
+ "CTX-001": {
792
+ code: "CTX-001",
793
+ severity: "WARN" /* WARN */,
794
+ category: "validation" /* VALIDATION */,
795
+ description: "Analysis context injection failed for dependency-aware subtask",
796
+ commonCauses: [
797
+ "Missing dependency artifacts",
798
+ "Artifact read or parse error",
799
+ "Subtask dependency metadata mismatch"
800
+ ],
801
+ recoveryMechanism: "Subtask executes without injected dependency context (degraded but non-blocking)",
802
+ expectedRecoveryRate: 100,
803
+ actionRequired: false,
804
+ diagnosticProcedure: "Check dependency artifact files under .poetic/artifacts and verify subtask dependency IDs"
805
+ },
806
+ "SEM-000": {
807
+ code: "SEM-000",
808
+ severity: "WARN" /* WARN */,
809
+ category: "validation" /* VALIDATION */,
810
+ description: "Semantic validation enabled but no provider configured; skipping",
811
+ commonCauses: [
812
+ "Semantic checks enabled without setting semanticCheck.provider",
813
+ "Provider config not loaded or missing for selected provider"
814
+ ],
815
+ recoveryMechanism: "Proceed without semantic validation (graceful degradation)",
816
+ expectedRecoveryRate: 100,
817
+ actionRequired: false,
818
+ diagnosticProcedure: "Configure semanticCheck.provider (and credentials) or disable --autoloop-semantic-check"
819
+ },
820
+ "SEM-001": {
821
+ code: "SEM-001",
822
+ severity: "WARN" /* WARN */,
823
+ category: "validation" /* VALIDATION */,
824
+ description: "Semantic progress evaluation failed; skipping semantic validation",
825
+ commonCauses: [
826
+ "Provider execution error (auth, timeout, rate limit)",
827
+ "Provider output could not be parsed",
828
+ "Semantic evaluator runtime error"
829
+ ],
830
+ recoveryMechanism: "Proceed without semantic validation (graceful degradation)",
831
+ expectedRecoveryRate: 100,
832
+ actionRequired: false,
833
+ diagnosticProcedure: "Check provider auth and logs; retry with a different provider or disable --autoloop-semantic-check"
834
+ },
835
+ "SEM-002": {
836
+ code: "SEM-002",
837
+ severity: "WARN" /* WARN */,
838
+ category: "validation" /* VALIDATION */,
839
+ description: "Semantic acceptance criteria evaluation failed; skipping semantic validation",
840
+ commonCauses: [
841
+ "Provider execution error (auth, timeout, rate limit)",
842
+ "Provider output could not be parsed",
843
+ "Acceptance criteria prompt returned malformed JSON"
844
+ ],
845
+ recoveryMechanism: "Proceed without semantic validation (graceful degradation)",
846
+ expectedRecoveryRate: 100,
847
+ actionRequired: false,
848
+ diagnosticProcedure: "Check provider auth and logs; retry or disable --autoloop-semantic-check"
849
+ },
850
+ "VE-001": {
851
+ code: "VE-001",
852
+ severity: "INFO" /* INFO */,
853
+ category: "validation" /* VALIDATION */,
854
+ description: "Opportunistic verification evidence observed during execution",
855
+ commonCauses: ["Test, typecheck, lint, or diff signal was already produced by a run"],
856
+ recoveryMechanism: void 0,
857
+ expectedRecoveryRate: 100,
858
+ actionRequired: false,
859
+ diagnosticProcedure: "Use telemetry metadata for offline analysis; this signal must not gate execution"
860
+ },
861
+ // ========================================================================
862
+ // PERFORMANCE (PERF-xxx)
863
+ // ========================================================================
864
+ "PERF-001": {
865
+ code: "PERF-001",
866
+ severity: "WARN" /* WARN */,
867
+ category: "performance" /* PERFORMANCE */,
868
+ description: "Variant execution exceeded time budget",
869
+ commonCauses: ["Task complexity", "Provider latency", "Resource constraints"],
870
+ recoveryMechanism: "Continue execution, flag for review",
871
+ expectedRecoveryRate: 100,
872
+ actionRequired: false,
873
+ diagnosticProcedure: "Review execution timeline and provider metrics"
874
+ },
875
+ "PERF-002": {
876
+ code: "PERF-002",
877
+ severity: "INFO" /* INFO */,
878
+ category: "performance" /* PERFORMANCE */,
879
+ description: "Memory usage approaching threshold",
880
+ commonCauses: ["Large file processing", "Memory leak", "Excessive caching"],
881
+ recoveryMechanism: "Trigger garbage collection",
882
+ expectedRecoveryRate: 90,
883
+ actionRequired: false,
884
+ diagnosticProcedure: "Profile memory usage and check for leaks"
885
+ },
886
+ "PERF-003": {
887
+ code: "PERF-003",
888
+ severity: "INFO" /* INFO */,
889
+ category: "performance" /* PERFORMANCE */,
890
+ description: "Repair loop skipped to avoid expensive no-op retries",
891
+ commonCauses: [
892
+ "FILE: targets were missing, and the provider asked for clarification (no edits)",
893
+ "Task references a symbol/file that does not exist"
894
+ ],
895
+ recoveryMechanism: "Fix FILE: targets (or mark with (create)) and re-run; otherwise answer the clarification question and retry",
896
+ expectedRecoveryRate: 95,
897
+ actionRequired: false,
898
+ diagnosticProcedure: "Check WS-008/WS-009 warnings and provider output; verify referenced symbols/files exist before repairing"
899
+ },
900
+ "PERF-004": {
901
+ code: "PERF-004",
902
+ severity: "WARN" /* WARN */,
903
+ category: "performance" /* PERFORMANCE */,
904
+ description: "Process timeout escalation triggered by ProcessLimiter",
905
+ commonCauses: [
906
+ "Provider or child process exceeded its allotted runtime",
907
+ "Delegated execution stalled before producing a final response",
908
+ "Subprocess ignored graceful termination and required escalation"
909
+ ],
910
+ recoveryMechanism: "ProcessLimiter sends terminateDelegate/SIGTERM/SIGKILL and untracks orphans",
911
+ expectedRecoveryRate: 95,
912
+ actionRequired: false,
913
+ diagnosticProcedure: "Inspect timeoutMs, processDescription, and stage metadata; compare provider runtime against configured limits"
914
+ },
915
+ // ========================================================================
916
+ // CONFIGURATION (CFG-xxx)
917
+ // ========================================================================
918
+ "CFG-001": {
919
+ code: "CFG-001",
920
+ severity: "WARN" /* WARN */,
921
+ category: "configuration" /* CONFIGURATION */,
922
+ description: "Configuration issue; using fallback behavior",
923
+ commonCauses: [
924
+ "Rejected or missing environment value",
925
+ "Invalid key or path format",
926
+ "Optional config not set"
927
+ ],
928
+ recoveryMechanism: "Fallback to alternative provider or default path",
929
+ expectedRecoveryRate: 80,
930
+ actionRequired: true,
931
+ diagnosticProcedure: "Check environment variables and provider configuration"
932
+ },
933
+ "CFG-002": {
934
+ code: "CFG-002",
935
+ severity: "INFO" /* INFO */,
936
+ category: "configuration" /* CONFIGURATION */,
937
+ description: "Using default configuration value",
938
+ commonCauses: ["Configuration not specified", "Config file not found"],
939
+ recoveryMechanism: void 0,
940
+ expectedRecoveryRate: 100,
941
+ actionRequired: false,
942
+ diagnosticProcedure: "Review configuration documentation"
943
+ },
944
+ "CFG-003": {
945
+ code: "CFG-003",
946
+ severity: "ERROR" /* ERROR */,
947
+ category: "configuration" /* CONFIGURATION */,
948
+ description: "Invalid configuration value, cannot proceed",
949
+ commonCauses: ["Type mismatch", "Value out of range", "Invalid format"],
950
+ recoveryMechanism: void 0,
951
+ expectedRecoveryRate: 0,
952
+ actionRequired: true,
953
+ diagnosticProcedure: "Validate configuration against schema"
954
+ },
955
+ "CFG-004": {
956
+ code: "CFG-004",
957
+ severity: "WARN" /* WARN */,
958
+ category: "configuration" /* CONFIGURATION */,
959
+ description: "Using packaged provider catalog defaults",
960
+ commonCauses: ["No project provider policy override", "Project provider policy unavailable"],
961
+ recoveryMechanism: "Load the digest-checked provider catalog shipped with the CLI",
962
+ expectedRecoveryRate: 100,
963
+ actionRequired: false,
964
+ diagnosticProcedure: "Run 'poetic provider list' to inspect the effective catalog"
965
+ },
966
+ "CFG-005": {
967
+ code: "CFG-005",
968
+ severity: "WARN" /* WARN */,
969
+ category: "configuration" /* CONFIGURATION */,
970
+ description: 'Ambiguous 3-part variant interpreted as provider:model:strategy. Prefer 4-part "provider:model:strategy:mode" or 2-part "provider:strategy" to be explicit.',
971
+ commonCauses: [
972
+ "User specified provider:X:strategy where X is not a registered strategy name",
973
+ "Variant could be interpreted as provider:strategy:mode with a different second token"
974
+ ],
975
+ recoveryMechanism: "Use 4-part form (provider:model:strategy:mode) or 2-part form (provider:strategy) to eliminate ambiguity",
976
+ expectedRecoveryRate: 100,
977
+ actionRequired: false,
978
+ diagnosticProcedure: "Rewrite as provider:model:strategy:mode (e.g. claude:sonnet:conservative:local) or as provider:strategy (e.g. claude:conservative). Run 'poetic explain strategies' for available strategies."
979
+ },
980
+ "CFG-006": {
981
+ code: "CFG-006",
982
+ severity: "WARN" /* WARN */,
983
+ category: "configuration" /* CONFIGURATION */,
984
+ description: "Cleanup threshold matches all worktrees",
985
+ commonCauses: ["Cleanup command was run with --max-age 0", "Cleanup TTL was set to zero"],
986
+ recoveryMechanism: "Cleanup still applies age floor and dirty/uninspectable safety gates",
987
+ expectedRecoveryRate: 100,
988
+ actionRequired: false,
989
+ diagnosticProcedure: "Use cleanup dry-run output to verify candidates before running with --execute."
990
+ },
991
+ "CFG-007": {
992
+ code: "CFG-007",
993
+ severity: "WARN" /* WARN */,
994
+ category: "configuration" /* CONFIGURATION */,
995
+ description: "Provider model override differs from registry default",
996
+ commonCauses: [
997
+ "Project or user config intentionally pins a provider model",
998
+ "Provider registry default changed after the config file was written"
999
+ ],
1000
+ recoveryMechanism: "Configured override remains in effect",
1001
+ expectedRecoveryRate: 100,
1002
+ actionRequired: false,
1003
+ diagnosticProcedure: "Review provider model overrides and remove them when registry defaults should apply"
1004
+ },
1005
+ "CFG-008": {
1006
+ code: "CFG-008",
1007
+ severity: "WARN" /* WARN */,
1008
+ category: "configuration" /* CONFIGURATION */,
1009
+ description: "Provider not found in registry; falling back to default",
1010
+ commonCauses: [
1011
+ "Configured provider name is misspelled or unknown",
1012
+ "Provider was removed from the registry"
1013
+ ],
1014
+ recoveryMechanism: "Resolution returns 'auto' so execution can continue",
1015
+ expectedRecoveryRate: 100,
1016
+ actionRequired: false,
1017
+ diagnosticProcedure: "Run poetic config validate to confirm the provider name; check providers.yaml for the canonical list."
1018
+ },
1019
+ "CFG-009": {
1020
+ code: "CFG-009",
1021
+ severity: "WARN" /* WARN */,
1022
+ category: "configuration" /* CONFIGURATION */,
1023
+ description: "Legacy JavaScript config file ignored",
1024
+ commonCauses: ["Project or user config still uses poetic.config.js or poetic.config.mjs"],
1025
+ recoveryMechanism: "JSONC config remains canonical; legacy JavaScript config is not loaded",
1026
+ expectedRecoveryRate: 100,
1027
+ actionRequired: true,
1028
+ diagnosticProcedure: "Move settings into poetic.config.jsonc, then remove the legacy JavaScript config file."
1029
+ },
1030
+ "CFG-010": {
1031
+ code: "CFG-010",
1032
+ severity: "WARN" /* WARN */,
1033
+ category: "configuration" /* CONFIGURATION */,
1034
+ description: "POETIC_ROOT and POETIC_REPO point at different local roots; POETIC_ROOT wins",
1035
+ commonCauses: [
1036
+ "Shell profile or wrapper exports both root override variables",
1037
+ "A lane worktree run inherited POETIC_ROOT from another checkout",
1038
+ "Operator intended POETIC_REPO targeting but POETIC_ROOT is still set"
1039
+ ],
1040
+ recoveryMechanism: "Repo-root resolution continues with POETIC_ROOT precedence",
1041
+ expectedRecoveryRate: 100,
1042
+ actionRequired: true,
1043
+ diagnosticProcedure: "Unset one override or make both variables point at the same checkout before running write commands."
1044
+ },
1045
+ "CFG-011": {
1046
+ code: "CFG-011",
1047
+ severity: "WARN" /* WARN */,
1048
+ category: "configuration" /* CONFIGURATION */,
1049
+ description: "User config could not be read; configured model aliases were skipped",
1050
+ commonCauses: [
1051
+ "poetic.config.jsonc has a syntax error",
1052
+ "A provider block contains a key the config schema does not allow",
1053
+ "The config file is present but unreadable"
1054
+ ],
1055
+ recoveryMechanism: "Model resolution continues using registry and project defaults",
1056
+ expectedRecoveryRate: 100,
1057
+ actionRequired: true,
1058
+ diagnosticProcedure: "Run 'poetic config validate' to see the parse or schema error, fix the file, then re-run."
1059
+ },
1060
+ "CFG-LEGACY": {
1061
+ code: "CFG-LEGACY",
1062
+ severity: "WARN" /* WARN */,
1063
+ category: "configuration" /* CONFIGURATION */,
1064
+ description: "Deprecated config file found and ignored",
1065
+ commonCauses: [
1066
+ "A legacy defaults.yaml or poetic.json file is still present",
1067
+ "POETIC_DEFAULTS_PATH points at an old config file"
1068
+ ],
1069
+ recoveryMechanism: "Canonical poetic.config.jsonc files remain in effect",
1070
+ expectedRecoveryRate: 100,
1071
+ actionRequired: true,
1072
+ diagnosticProcedure: "Move settings into the appropriate poetic.config.jsonc file, then remove the deprecated config file."
1073
+ },
1074
+ "CFG-LOAD-ERR": {
1075
+ code: "CFG-LOAD-ERR",
1076
+ severity: "ERROR" /* ERROR */,
1077
+ category: "configuration" /* CONFIGURATION */,
1078
+ description: "Configuration loading failed",
1079
+ commonCauses: ["Unreadable configuration file", "Unexpected configuration loader error"],
1080
+ recoveryMechanism: "Fallback to default configuration when no explicit invalid config is present",
1081
+ expectedRecoveryRate: 80,
1082
+ actionRequired: true,
1083
+ diagnosticProcedure: "Inspect the reported configuration path and loader error, then run poetic config validate"
1084
+ },
1085
+ // FILE: warning disabled per A/B test results (2026-02-02)
1086
+ // Changed from WARN to INFO - FILE: specification is no longer enforced.
1087
+ // To re-enable: change severity back to WarningSeverity.WARN
1088
+ "CUR-001": {
1089
+ code: "CUR-001",
1090
+ severity: "INFO" /* INFO */,
1091
+ category: "configuration" /* CONFIGURATION */,
1092
+ description: "Cursor variant without FILE: specification (informational)",
1093
+ commonCauses: ["Cursor used without FILE/FILES markers in prompt"],
1094
+ // 2026-02-02: FILE: specification no longer required per A/B test results.
1095
+ // Previously advisory; now purely informational.
1096
+ recoveryMechanism: "FILE: specification is optional - no action required",
1097
+ expectedRecoveryRate: 100,
1098
+ // No enforcement, always recovers
1099
+ actionRequired: false,
1100
+ diagnosticProcedure: "FILE: specification is optional. Add FILE/FILES entries only if disambiguation is needed."
1101
+ },
1102
+ "JDG-001": {
1103
+ code: "JDG-001",
1104
+ severity: "INFO" /* INFO */,
1105
+ category: "validation" /* VALIDATION */,
1106
+ description: "Judge evaluation completed, no winner declared (expected outcome)",
1107
+ commonCauses: [
1108
+ "All variants scored below confidence threshold",
1109
+ "Margin between top variants too narrow",
1110
+ "Intentional baseline fallback"
1111
+ ],
1112
+ recoveryMechanism: "Review variant scores; this is often expected behavior for close competitions",
1113
+ expectedRecoveryRate: 100,
1114
+ actionRequired: false,
1115
+ diagnosticProcedure: "Check variant scores in telemetry; verify threshold and margin settings"
1116
+ },
1117
+ "JDG-010": {
1118
+ code: "JDG-010",
1119
+ severity: "INFO" /* INFO */,
1120
+ category: "validation" /* VALIDATION */,
1121
+ description: "Judge CLI not available (skipping AI-powered evaluation)",
1122
+ commonCauses: [
1123
+ "Claude CLI not installed",
1124
+ "Claude CLI not accessible in PATH",
1125
+ "CLI version check timed out"
1126
+ ],
1127
+ recoveryMechanism: "Install Claude CLI: npm install -g @anthropic-ai/claude-code. Winner selection falls back to algorithmic heuristic.",
1128
+ expectedRecoveryRate: 100,
1129
+ actionRequired: false,
1130
+ diagnosticProcedure: "Run `claude --version` to verify CLI installation and accessibility"
1131
+ },
1132
+ "JDG-011": {
1133
+ code: "JDG-011",
1134
+ severity: "WARN" /* WARN */,
1135
+ category: "configuration" /* CONFIGURATION */,
1136
+ description: "Judge provider CLI installed but a recent authentication failure is cached",
1137
+ commonCauses: [
1138
+ "Provider CLI logged in previously but the session/token expired",
1139
+ "Provider credentials were revoked or rotated",
1140
+ "A prior provider call failed authentication and was cached by auth-liveness"
1141
+ ],
1142
+ recoveryMechanism: "Re-authenticate the judge provider CLI (see the provider auth note), then retry; judge selection otherwise falls back to algorithmic heuristics.",
1143
+ expectedRecoveryRate: 100,
1144
+ actionRequired: false,
1145
+ diagnosticProcedure: "Run `poetic doctor --probe --refresh` after re-authenticating to clear the cached auth failure."
1146
+ },
1147
+ "TEL-001": {
1148
+ code: "TEL-001",
1149
+ severity: "WARN" /* WARN */,
1150
+ category: "validation" /* VALIDATION */,
1151
+ description: "Judge telemetry or state persistence failed (non-blocking)",
1152
+ commonCauses: ["Database write failed", "State file inaccessible", "Event emission error"],
1153
+ recoveryMechanism: "Judge evaluation continues; telemetry data may be incomplete",
1154
+ expectedRecoveryRate: 100,
1155
+ actionRequired: false,
1156
+ diagnosticProcedure: "Check database connectivity and filesystem permissions; review telemetry logs"
1157
+ },
1158
+ "JDG-002": {
1159
+ code: "JDG-002",
1160
+ severity: "WARN" /* WARN */,
1161
+ category: "configuration" /* CONFIGURATION */,
1162
+ description: "AI judge CLI unavailable or unhealthy",
1163
+ commonCauses: [
1164
+ "Claude CLI installed but failing (auth, rate limits, network)",
1165
+ "Claude CLI on PATH but cannot execute headless",
1166
+ "Stale or corrupted Claude CLI installation"
1167
+ ],
1168
+ recoveryMechanism: "Fallback to alternative judge providers (Gemini, OpenAI)",
1169
+ expectedRecoveryRate: 100,
1170
+ actionRequired: true,
1171
+ diagnosticProcedure: "Run `claude --version` to verify availability and check stderr for the failing command"
1172
+ },
1173
+ "JDG-003": {
1174
+ code: "JDG-003",
1175
+ severity: "WARN" /* WARN */,
1176
+ category: "configuration" /* CONFIGURATION */,
1177
+ description: "multi-agent judge is experimental: it does not yet evaluate as reliably as the ai and multi-lens judges, costs more to run, and depends on Claude/Task/sandbox availability; it runs only when explicitly selected and is ordered last for fallback promotion",
1178
+ commonCauses: [
1179
+ "multi-agent included in --judge-run / --ai-judge-run",
1180
+ "--judge-primary or --ai-judge-primary set to multi-agent",
1181
+ "--judge multi-agent selected"
1182
+ ],
1183
+ recoveryMechanism: "No action required; rely on the ai and multi-lens judges for dependable winner selection",
1184
+ expectedRecoveryRate: 100,
1185
+ actionRequired: false,
1186
+ diagnosticProcedure: "Remove multi-agent from the judge run set or primary selection to silence this notice"
1187
+ },
1188
+ "JUDGE-001": {
1189
+ code: "JUDGE-001",
1190
+ severity: "WARN" /* WARN */,
1191
+ category: "validation" /* VALIDATION */,
1192
+ description: "Multi-Lens judge scoring collapse detected",
1193
+ commonCauses: [
1194
+ "All non-winner variants receiving identical or near-identical scores",
1195
+ "Insufficient score variance to meaningfully rank variants",
1196
+ "Multi-Lens LLM arbitration returning undifferentiated scores",
1197
+ "Core Lens dominating with identical metrics across variants"
1198
+ ],
1199
+ recoveryMechanism: "Diagnostic data logged for analysis; consider retrying with different temperature or comparing against AI/Multi-Agent judges",
1200
+ expectedRecoveryRate: 70,
1201
+ actionRequired: false,
1202
+ diagnosticProcedure: "Check scoringCollapseDetection in metadata; review coefficient of variation and unique score counts; inspect Multi-Lens LLM output for differentiation"
1203
+ },
1204
+ // ========================================================================
1205
+ // FLYWHEEL MERGE (FM-xxx)
1206
+ // ========================================================================
1207
+ "FM-001": {
1208
+ code: "FM-001",
1209
+ severity: "WARN" /* WARN */,
1210
+ category: "validation" /* VALIDATION */,
1211
+ description: "Flywheel merge task-status sync skipped or incomplete",
1212
+ commonCauses: [
1213
+ "One or more task status transitions failed (e.g. ENOENT, invalid status)",
1214
+ "Task file missing or moved since workflow execution",
1215
+ "Sprint ID mismatch between manifest and task file"
1216
+ ],
1217
+ recoveryMechanism: "Merge succeeded; task status updates can be applied manually via poetic task update",
1218
+ expectedRecoveryRate: 80,
1219
+ actionRequired: false,
1220
+ diagnosticProcedure: "Inspect taskSyncFailures in merge result; check tasksFailed and failedTaskIds metadata; verify task files exist in the sprint directory"
1221
+ },
1222
+ "FM-002": {
1223
+ code: "FM-002",
1224
+ severity: "WARN" /* WARN */,
1225
+ category: "validation" /* VALIDATION */,
1226
+ description: "Sprint workflow result is missing task transition artifacts",
1227
+ commonCauses: [
1228
+ "Lifecycle callback drain did not persist transitions",
1229
+ "Workflow result was written before any stage result existed",
1230
+ "Older workflow result format without top-level taskTransitions"
1231
+ ],
1232
+ recoveryMechanism: "Merge succeeded; task status updates can be applied manually via poetic task update",
1233
+ expectedRecoveryRate: 80,
1234
+ actionRequired: false,
1235
+ diagnosticProcedure: "Inspect the workflow result JSON for taskTransitions; check sprint-bridge callback logs and task status history"
1236
+ },
1237
+ // ========================================================================
1238
+ // PLANNING WRITEBACK (WB-xxx)
1239
+ // ========================================================================
1240
+ "WB-001": {
1241
+ code: "WB-001",
1242
+ severity: "WARN" /* WARN */,
1243
+ category: "workspace_edits" /* WORKSPACE_EDITS */,
1244
+ description: "Planning writeback retry exhausted and entry was moved to dead-letter queue",
1245
+ commonCauses: [
1246
+ "Target work item file was deleted or moved",
1247
+ "File permissions prevent appending activity",
1248
+ "Persistent filesystem error during writeback retry"
1249
+ ],
1250
+ recoveryMechanism: "Dead-letter entry preserves the activity for manual replay or inspection",
1251
+ expectedRecoveryRate: 70,
1252
+ actionRequired: false,
1253
+ diagnosticProcedure: "Inspect .poetic/writeback-dead-letter.jsonl and verify the target itemPath exists and is writable"
1254
+ }
1255
+ };
1256
+ function getWarningDefinition(code) {
1257
+ return WARNING_REGISTRY[code];
1258
+ }
1259
+
1260
+ // src/core/warnings/warning-factory.ts
1261
+ var WarningFactory = class _WarningFactory {
1262
+ /**
1263
+ * Create a structured warning from a warning code.
1264
+ *
1265
+ * Retrieves warning definition from registry and merges with runtime context
1266
+ * and options. Returns immutable frozen warning object.
1267
+ *
1268
+ * @param code - Warning code (e.g., 'WS-001', 'PR-042')
1269
+ * @param context - Execution context at time of warning
1270
+ * @param options - Optional overrides for severity, category, metadata, etc.
1271
+ * @returns Immutable structured warning
1272
+ *
1273
+ * @example
1274
+ * const warning = WarningFactory.create('WS-001', {
1275
+ * taskId: 'abc123',
1276
+ * subsystem: 'workspace-edits'
1277
+ * });
1278
+ */
1279
+ static create(code, context, options = {}) {
1280
+ const definition = getWarningDefinition(code);
1281
+ if (!definition) {
1282
+ return _WarningFactory.createUnknownWarning(code, context, options);
1283
+ }
1284
+ const warning = {
1285
+ code,
1286
+ severity: options.severity ?? definition.severity,
1287
+ category: options.category ?? definition.category,
1288
+ message: definition.description,
1289
+ timestamp: Date.now(),
1290
+ context: {
1291
+ subsystem: context.subsystem ?? "unknown",
1292
+ taskId: context.taskId,
1293
+ provider: context.provider,
1294
+ strategy: context.strategy,
1295
+ variant: context.variant,
1296
+ executionPhase: context.executionPhase
1297
+ },
1298
+ metadata: options.metadata,
1299
+ recovered: options.recovered,
1300
+ recoveryMechanism: options.recoveryMechanism ?? definition.recoveryMechanism
1301
+ };
1302
+ return Object.freeze(warning);
1303
+ }
1304
+ /**
1305
+ * Create warning for unknown code (fallback).
1306
+ *
1307
+ * Used when warning code is not found in registry. Creates a generic
1308
+ * warning with minimal metadata to ensure emission never fails.
1309
+ *
1310
+ * @param code - Unknown warning code
1311
+ * @param context - Execution context
1312
+ * @param options - Optional overrides
1313
+ * @returns Immutable structured warning
1314
+ *
1315
+ * @internal
1316
+ */
1317
+ static createUnknownWarning(code, context, options) {
1318
+ return Object.freeze({
1319
+ code,
1320
+ severity: options.severity ?? "WARN" /* WARN */,
1321
+ category: options.category ?? "configuration" /* CONFIGURATION */,
1322
+ message: `Unknown warning code: ${code}`,
1323
+ timestamp: Date.now(),
1324
+ context: {
1325
+ subsystem: context.subsystem ?? "unknown",
1326
+ taskId: context.taskId,
1327
+ provider: context.provider,
1328
+ strategy: context.strategy,
1329
+ variant: context.variant,
1330
+ executionPhase: context.executionPhase
1331
+ },
1332
+ metadata: options.metadata,
1333
+ recovered: options.recovered,
1334
+ recoveryMechanism: options.recoveryMechanism
1335
+ });
1336
+ }
1337
+ /**
1338
+ * Create custom warning (for ad-hoc warnings not in registry).
1339
+ *
1340
+ * Use this for one-off warnings that don't warrant a registry entry.
1341
+ * For recurring warnings, add to registry instead.
1342
+ *
1343
+ * @param severity - Warning severity level
1344
+ * @param category - Warning category
1345
+ * @param message - Human-readable warning message
1346
+ * @param context - Execution context
1347
+ * @param options - Optional metadata and recovery info
1348
+ * @returns Immutable structured warning
1349
+ *
1350
+ * @example
1351
+ * const warning = WarningFactory.createCustom(
1352
+ * WarningSeverity.WARN,
1353
+ * WarningCategory.VALIDATION,
1354
+ * 'Custom validation failed: field X is invalid',
1355
+ * { subsystem: 'validator', taskId: 'abc123' }
1356
+ * );
1357
+ */
1358
+ static createCustom(severity, category, message, context, options = {}) {
1359
+ return Object.freeze({
1360
+ code: "CUSTOM",
1361
+ severity,
1362
+ category,
1363
+ message,
1364
+ timestamp: Date.now(),
1365
+ context: {
1366
+ subsystem: context.subsystem ?? "unknown",
1367
+ taskId: context.taskId,
1368
+ provider: context.provider,
1369
+ strategy: context.strategy,
1370
+ variant: context.variant,
1371
+ executionPhase: context.executionPhase
1372
+ },
1373
+ metadata: options.metadata,
1374
+ recovered: options.recovered,
1375
+ recoveryMechanism: options.recoveryMechanism
1376
+ });
1377
+ }
1378
+ };
1379
+
1380
+ // src/core/warnings/emit.ts
1381
+ function getWarningConsoleLevel() {
1382
+ return readEnv(POETIC_WARNINGS_CONSOLE_LEVEL).value;
1383
+ }
1384
+ function isWarningConsoleQuietRequested() {
1385
+ return readEnv(POETIC_QUIET).value === true;
1386
+ }
1387
+ function isWarningConsoleJsonRequested() {
1388
+ return readEnv(POETIC_OUTPUT_JSON).value === true || readEnv(POETIC_JSON_OUTPUT).value === true;
1389
+ }
1390
+ function shouldLogWarningToConsole(severity) {
1391
+ if (process.env.POETIC_WARNINGS_CONSOLE === "false") return false;
1392
+ if ((isWarningConsoleQuietRequested() || isWarningConsoleJsonRequested()) && severity !== "ERROR") {
1393
+ return false;
1394
+ }
1395
+ const level = getWarningConsoleLevel();
1396
+ if (level === "silent") return false;
1397
+ if (severity === "ERROR") return true;
1398
+ if (level === "error") return false;
1399
+ if (severity === "WARN") return true;
1400
+ if (level === "warn") return false;
1401
+ return true;
1402
+ }
1403
+ function shouldIncludeWarningMetadata() {
1404
+ if (isDebugMode()) return true;
1405
+ if (process.env.POETIC_WARNINGS_CONSOLE_METADATA === "1") return true;
1406
+ return getWarningConsoleLevel() === "info";
1407
+ }
1408
+ var globalCollector = null;
1409
+ var collectorScopeStorage = new AsyncLocalStorage();
1410
+ function setGlobalWarningCollector(collector) {
1411
+ const scope = collectorScopeStorage.getStore();
1412
+ if (scope) {
1413
+ scope.collector = collector;
1414
+ return;
1415
+ }
1416
+ globalCollector = collector;
1417
+ }
1418
+ function runWithWarningCollectorScope(fn, options = {}) {
1419
+ return collectorScopeStorage.run(
1420
+ {
1421
+ collector: null,
1422
+ suppressNonErrorConsole: options.suppressNonErrorConsole ?? false
1423
+ },
1424
+ fn
1425
+ );
1426
+ }
1427
+ function getGlobalWarningCollector() {
1428
+ const scope = collectorScopeStorage.getStore();
1429
+ if (scope) {
1430
+ return scope.collector;
1431
+ }
1432
+ return globalCollector;
1433
+ }
1434
+ function isConsoleSuppressedByScope(warning) {
1435
+ return warning.severity !== "ERROR" && collectorScopeStorage.getStore()?.suppressNonErrorConsole === true;
1436
+ }
1437
+ function emitWarning(code, context, options = {}) {
1438
+ const warning = WarningFactory.create(code, context, options);
1439
+ const activeCollector = getGlobalWarningCollector();
1440
+ if (activeCollector) {
1441
+ activeCollector.add(warning);
1442
+ }
1443
+ if (!options.skipConsole && !isConsoleSuppressedByScope(warning) && shouldLogWarningToConsole(warning.severity)) {
1444
+ const level = warning.severity === "ERROR" ? "error" : "warn";
1445
+ const metadataSuffix = shouldIncludeWarningMetadata() && warning.metadata && Object.keys(warning.metadata).length > 0 ? ` metadata: ${JSON.stringify(warning.metadata)}` : "";
1446
+ const compactSuffix = metadataSuffix.length === 0 && warning.code === "WS-003" && warning.metadata && typeof warning.metadata === "object" && typeof warning.metadata.worktreeName === "string" ? ` (${warning.metadata.worktreeName})` : "";
1447
+ console[level](`[${warning.code}] ${warning.message}${metadataSuffix}${compactSuffix}`);
1448
+ }
1449
+ return warning;
1450
+ }
1451
+ function emitCustomWarning(severity, category, message, context, options = {}) {
1452
+ const warning = WarningFactory.createCustom(severity, category, message, context, options);
1453
+ const activeCollector = getGlobalWarningCollector();
1454
+ if (activeCollector) {
1455
+ activeCollector.add(warning);
1456
+ }
1457
+ if (!options.skipConsole && !isConsoleSuppressedByScope(warning) && shouldLogWarningToConsole(warning.severity)) {
1458
+ const level = warning.severity === "ERROR" ? "error" : "warn";
1459
+ const metadataSuffix = shouldIncludeWarningMetadata() && warning.metadata && Object.keys(warning.metadata).length > 0 ? ` metadata: ${JSON.stringify(warning.metadata)}` : "";
1460
+ console[level](`[${warning.code}] ${warning.message}${metadataSuffix}`);
1461
+ }
1462
+ return warning;
1463
+ }
1464
+
1465
+ export {
1466
+ isDebugMode,
1467
+ isTelemetryDebug,
1468
+ isPathDebug,
1469
+ isTimeoutDebug,
1470
+ isSignalDebug,
1471
+ isTestDetectionDebug,
1472
+ isCostDebug,
1473
+ isVerboseOrDebug,
1474
+ debugLog,
1475
+ telemetryDebugLog,
1476
+ WARNING_REGISTRY,
1477
+ WarningFactory,
1478
+ setGlobalWarningCollector,
1479
+ runWithWarningCollectorScope,
1480
+ emitWarning,
1481
+ emitCustomWarning
1482
+ };
1483
+ //# sourceMappingURL=chunk-EJGCZGUF.js.map