@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,438 @@
1
+ import {
2
+ classifyIntent,
3
+ inferActivity
4
+ } from "./chunk-4RCCF5BR.js";
5
+ import {
6
+ extractExplicitFileTargets
7
+ } from "./chunk-VX3UMWB7.js";
8
+ import {
9
+ getProjectReferencePathExtensions,
10
+ isProjectSourcePath,
11
+ isProjectTestPath
12
+ } from "./chunk-UDMS5AD3.js";
13
+
14
+ // src/planning/enhancement-template-data.ts
15
+ var ENHANCEMENT_TEMPLATES = {
16
+ scope: {
17
+ title: "Define scope and touchpoints",
18
+ why: "Scope boundaries reduce drift and keep solutions comparable.",
19
+ hint: "Add a short Scope section (in scope / out of scope) to reduce drift.",
20
+ copyPaste: `Affects: CLI argument parsing, backlog file I/O
21
+
22
+ In scope:
23
+ - ...
24
+
25
+ Out of scope:
26
+ - ...`
27
+ },
28
+ acceptance: {
29
+ title: "Define done-when criteria",
30
+ why: "Clear exit criteria prevent scope creep and clarify success.",
31
+ hint: 'Consider adding a short "Done when\u2026" checklist to define completion.',
32
+ copyPaste: `Done when:
33
+ - [ ] Primary requirement met
34
+ - [ ] Tests pass
35
+ - [ ] No regressions`
36
+ },
37
+ reproducibility: {
38
+ title: "Make the bug reproducible",
39
+ why: "Steps to reproduce cut debugging time by 50%.",
40
+ hint: "Consider adding steps to reproduce plus expected vs actual behavior.",
41
+ copyPaste: `## Reproduction
42
+ Steps:
43
+ 1.
44
+
45
+ Expected:
46
+ Actual:`
47
+ },
48
+ research: {
49
+ title: "Frame the research questions",
50
+ why: "Specific questions converge faster than open exploration.",
51
+ hint: "Consider adding 1\u20133 research questions and the expected deliverable format.",
52
+ copyPaste: `Questions to answer:
53
+ - What approaches exist?
54
+ - What are the trade-offs?
55
+
56
+ Deliverable: Comparison table or recommendation`
57
+ },
58
+ adr: {
59
+ title: "Structure as an ADR",
60
+ why: "ADR format ensures all stakeholder concerns are addressed.",
61
+ hint: "Consider structuring this as an ADR (Context/Decision/Alternatives/Consequences).",
62
+ copyPaste: `## Context
63
+ ...
64
+
65
+ ## Decision
66
+ ...
67
+
68
+ ## Alternatives Considered
69
+ ...
70
+
71
+ ## Consequences
72
+ ...`
73
+ },
74
+ audience: {
75
+ title: "Define your audience",
76
+ why: "Knowing the reader shapes tone, depth, and structure.",
77
+ hint: "Consider defining the intended audience and assumed prior knowledge.",
78
+ copyPaste: `Audience: [developers/users/architects]
79
+ Prior knowledge assumed: [...]`
80
+ },
81
+ testing: {
82
+ title: "Outline the test plan",
83
+ why: "A test plan upfront ensures comprehensive coverage.",
84
+ hint: "Consider outlining the test plan (unit/integration/edge cases).",
85
+ copyPaste: `Test coverage:
86
+ - [ ] Unit tests for core logic
87
+ - [ ] Integration tests for boundaries
88
+ - [ ] Edge cases: [...]`
89
+ },
90
+ constraints: {
91
+ title: "Set explicit constraints",
92
+ why: "Constraints prevent over-engineering and scope creep.",
93
+ hint: 'Consider adding explicit constraints (in-scope/out-of-scope) to reduce drift. Use "Out of scope:" (not FILE:) for exclusions.',
94
+ copyPaste: `Constraints:
95
+ - Do not introduce regressions outside the areas this item explicitly targets
96
+ - Out of scope: (specify directories or concerns not to touch)`
97
+ }
98
+ };
99
+
100
+ // src/planning/task-body-parser.ts
101
+ function parseTaskBody(body) {
102
+ const result = {
103
+ description: "",
104
+ subtasks: [],
105
+ notes: "",
106
+ fileMarkers: [],
107
+ rawBody: body
108
+ };
109
+ const descriptionLines = [];
110
+ const subtaskLines = [];
111
+ const notesLines = [];
112
+ let currentSection = "ignored";
113
+ let sawCanonicalSection = false;
114
+ const classifyCanonicalHeading = (heading) => {
115
+ const normalized = heading.toLowerCase().trim();
116
+ if (normalized.startsWith("description")) return "description";
117
+ if (normalized.startsWith("subtasks") || normalized.startsWith("checklist")) return "subtasks";
118
+ if (normalized.startsWith("notes")) return "notes";
119
+ if (normalized.startsWith("activity")) return "ignored";
120
+ return null;
121
+ };
122
+ for (const line of body.split("\n")) {
123
+ const headingMatch = line.match(/^##\s+(.+)$/);
124
+ if (headingMatch) {
125
+ const nextSection = classifyCanonicalHeading(headingMatch[1] ?? "");
126
+ if (nextSection) {
127
+ sawCanonicalSection = true;
128
+ currentSection = nextSection;
129
+ continue;
130
+ }
131
+ if (currentSection === "description") {
132
+ descriptionLines.push(line);
133
+ continue;
134
+ }
135
+ }
136
+ if (currentSection === "description") {
137
+ descriptionLines.push(line);
138
+ } else if (currentSection === "subtasks") {
139
+ subtaskLines.push(line);
140
+ } else if (currentSection === "notes") {
141
+ notesLines.push(line);
142
+ }
143
+ }
144
+ result.description = descriptionLines.join("\n").trim();
145
+ result.notes = notesLines.join("\n").trim();
146
+ if (!result.description && !sawCanonicalSection) {
147
+ result.description = extractUnstructuredDescription(body);
148
+ }
149
+ const subtaskContent = subtaskLines.join("\n").trim();
150
+ const bullets = subtaskContent.match(/^[-*]\s+\[?[x ]?\]?\s*(.+)$/gm);
151
+ if (bullets) {
152
+ result.subtasks = bullets.map((b) => b.replace(/^[-*]\s+\[?[x ]?\]?\s*/, "").trim());
153
+ }
154
+ result.fileMarkers = [...new Set(extractFileMarkers(body))];
155
+ return result;
156
+ }
157
+ function isMetadataLine(line) {
158
+ const trimmed = line.trim();
159
+ if (!trimmed) return false;
160
+ if (/^#\s+Task:/i.test(trimmed)) return true;
161
+ if (/^\*\*(?:Sprint|Status|Estimated|Plan Artifact|Plan Stage)\*\*:/i.test(trimmed)) {
162
+ return true;
163
+ }
164
+ if (/^(?:Sprint|Status|Estimated|Priority|Assignee|Plan Artifact|Plan Stage):\s*/i.test(trimmed)) {
165
+ return true;
166
+ }
167
+ return false;
168
+ }
169
+ function extractUnstructuredDescription(body) {
170
+ const lines = body.split("\n");
171
+ const descriptionLines = [];
172
+ for (const line of lines) {
173
+ if (isMetadataLine(line)) continue;
174
+ descriptionLines.push(line);
175
+ }
176
+ return descriptionLines.join("\n").trim();
177
+ }
178
+ function buildPromptFromTask(task, body) {
179
+ const description = body.description || "No description provided.";
180
+ const fileMarkers = Array.isArray(body.fileMarkers) ? body.fileMarkers : [];
181
+ const fileBlock = fileMarkers.length > 0 ? `
182
+
183
+ ${fileMarkers.map((file) => `FILE: ${file}`).join("\n")}` : "";
184
+ const subtasks = Array.isArray(task.subtasks) ? task.subtasks : [];
185
+ const checklist = subtasks.length > 0 ? subtasks.map((st) => `- [ ] ${st.text}`).join("\n") : "(No subtasks defined)";
186
+ return `# Task: ${task.title}
187
+
188
+ ${description}
189
+ ${fileBlock}
190
+
191
+ ## Checklist
192
+ ${checklist}
193
+ `;
194
+ }
195
+ function extractFileMarkers(description) {
196
+ return extractExplicitFileTargets(description);
197
+ }
198
+
199
+ // src/planning/task-creation-nudges.ts
200
+ function getEnhancementPriorities(category, activity) {
201
+ if (activity === "debugging") {
202
+ return ["reproducibility", "scope", "acceptance"];
203
+ }
204
+ if (activity === "planning") {
205
+ return ["constraints", "acceptance", "scope"];
206
+ }
207
+ if (activity === "architecture") {
208
+ return ["adr", "constraints", "scope"];
209
+ }
210
+ if (activity === "research") {
211
+ return ["research", "constraints", "acceptance"];
212
+ }
213
+ if (category === "analyze") {
214
+ return ["acceptance", "constraints", "scope"];
215
+ }
216
+ if (activity === "design") {
217
+ return ["constraints", "scope", "acceptance"];
218
+ }
219
+ if (category === "document") {
220
+ return ["audience", "scope", "acceptance"];
221
+ }
222
+ if (category === "test") {
223
+ return ["testing", "scope", "acceptance"];
224
+ }
225
+ return ["scope", "acceptance", "testing"];
226
+ }
227
+ var PATH_REFERENCE_EXTENSION_ALTERNATION = getProjectReferencePathExtensions().map((ext) => ext.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|");
228
+ var FILE_PATH_LIKE = new RegExp(
229
+ String.raw`\b(?:[./~]|[a-zA-Z0-9_-]+\/)[a-zA-Z0-9_./-]+\.(?:${PATH_REFERENCE_EXTENSION_ALTERNATION})(?![\w-])`
230
+ );
231
+ function mentionsTestFileReference(text) {
232
+ const pathTokens = (text.match(/[\w./+-]+/g) ?? []).map((token) => token.replace(/[.,]+$/, "")).filter((token) => token.includes("."));
233
+ return pathTokens.some((token) => isProjectTestPath(token) && isProjectSourcePath(token));
234
+ }
235
+ function hasAcceptanceCriteria(text) {
236
+ if (/- \[[ xX]\]/.test(text)) return true;
237
+ if (/^\s*acceptance\s*:/im.test(text)) return true;
238
+ if (/^\s*#{1,6}\s*acceptance\b/im.test(text)) return true;
239
+ if (/(acceptance\s+criteria|done\s+when|definition\s+of\s+done)\b/i.test(text)) return true;
240
+ if (/\b(must|should)\b/i.test(text) && /\n/.test(text)) return true;
241
+ if (/\btests?\s+pass\b/i.test(text) || /\b(no|without)\s+regressions?\b/i.test(text)) return true;
242
+ return false;
243
+ }
244
+ var SCOPE_LANGUAGE = /\b(?:in\s+scope|out\s+of\s+scope|scope\b|touchpoints?|affected\s+(?:areas?|components?)|components?|modules?|services?)\b/i;
245
+ function hasScopeSignal(text) {
246
+ if (extractFileMarkers(text).length > 0) return true;
247
+ if (FILE_PATH_LIKE.test(text)) return true;
248
+ if (SCOPE_LANGUAGE.test(text)) return true;
249
+ return false;
250
+ }
251
+ function looksMultiConcern(title) {
252
+ const normalized = title.trim();
253
+ if (normalized.length < 18) return false;
254
+ if (/\s+\+\s+/.test(normalized)) return true;
255
+ if (/\s+and\s+/i.test(normalized)) return true;
256
+ if (/,/.test(normalized)) return true;
257
+ return false;
258
+ }
259
+ function hasResearchFraming(text) {
260
+ if (/\b(output|deliverable|format|return)\b\s*:/i.test(text)) return true;
261
+ if (/\?/.test(text)) return true;
262
+ if (/^\s*[-*]\s*(what|why|how)\b/im.test(text)) return true;
263
+ return false;
264
+ }
265
+ function applyMultiConcernBias(title, priorities) {
266
+ if (!looksMultiConcern(title)) return priorities;
267
+ if (priorities.includes("constraints")) return priorities;
268
+ const next = [...priorities];
269
+ if (next.length > 0) next[next.length - 1] = "constraints";
270
+ return next;
271
+ }
272
+ function hasReproducibility(text) {
273
+ if (/\b(reproduction|repro(?:duce)?|steps?\s+to\s+reproduce)\b/i.test(text)) return true;
274
+ if (/\b(expected|actual)\s*:/i.test(text)) return true;
275
+ if (/^\s*\d+\.\s+.*\b(then|next|after|result(?:ing|s)?)\b/im.test(text)) return true;
276
+ return false;
277
+ }
278
+ function hasAdrStructure(text) {
279
+ const adrSections = ["context", "decision", "alternatives", "consequences", "status"];
280
+ let canonicalCount = 0;
281
+ for (const section of adrSections) {
282
+ if (new RegExp(`^##?\\s*${section}\\b`, "im").test(text)) {
283
+ canonicalCount++;
284
+ }
285
+ }
286
+ if (canonicalCount >= 2) return true;
287
+ const hasContextOrRationale = /^##?\s*(context|rationale|motivation|background|why)\b/im.test(
288
+ text
289
+ );
290
+ const hasDecisionOrGoal = /^##?\s*(decision|goal|objective|summary|proposal)\b/im.test(text);
291
+ const hasTradeoffSignal = /^##?\s*(alternatives|consequences|trade-?offs?|risks?|out\s+of\s+scope)\b/im.test(text) || /\b(alternatives?\s+considered|pros?\s+(?:and|&)\s+cons?)\b/i.test(text);
292
+ return hasContextOrRationale && hasDecisionOrGoal && hasTradeoffSignal;
293
+ }
294
+ function hasAudienceDefinition(text) {
295
+ if (/\b(audience|reader|user|developer|target)\s*:/i.test(text)) return true;
296
+ if (/\b(intended\s+for|written\s+for|aimed\s+at)\b/i.test(text)) return true;
297
+ return false;
298
+ }
299
+ var AUTOMATED_TEST_VOCABULARY = /\b(?:tests?\s+cover(?:ing)?|unit|integration|e2e|vitest|jest|playwright|cypress|npm\s+run\s+test|npx\s+vitest|pytest|go\s+test|cargo\s+test|rspec|xctest|junit|phpunit|gradle\s+test|mvn\s+test|dotnet\s+test)\b/i;
300
+ function hasTestPlan(text) {
301
+ if (/\b(test\s+plan|test\s+coverage|coverage\s+plan)\b/i.test(text)) return true;
302
+ if (/\b(unit|integration|e2e)\s+test/i.test(text) && /- \[[ xX]?\]/.test(text)) return true;
303
+ if (/^\s*#{1,6}\s*how\s+to\s+verify\b/im.test(text) && AUTOMATED_TEST_VOCABULARY.test(text)) {
304
+ return true;
305
+ }
306
+ if (/\btests?\s+cover(?:ing)?\b/i.test(text)) return true;
307
+ if (mentionsTestFileReference(text)) return true;
308
+ return false;
309
+ }
310
+ function hasConstraints(text) {
311
+ if (/\b(constraint|out\s+of\s+scope|scope\s*:|boundary|limitation)\b/i.test(text)) return true;
312
+ if (/\b(must\s+not|should\s+not|won't|will\s+not)\b/i.test(text)) return true;
313
+ return false;
314
+ }
315
+ function hasSignalForEnhancement(text, kind) {
316
+ switch (kind) {
317
+ case "scope":
318
+ return hasScopeSignal(text);
319
+ case "acceptance":
320
+ return hasAcceptanceCriteria(text);
321
+ case "reproducibility":
322
+ return hasReproducibility(text);
323
+ case "research":
324
+ return hasResearchFraming(text);
325
+ case "adr":
326
+ return hasAdrStructure(text);
327
+ case "audience":
328
+ return hasAudienceDefinition(text);
329
+ case "testing":
330
+ return hasTestPlan(text);
331
+ case "constraints":
332
+ return hasConstraints(text);
333
+ default:
334
+ return false;
335
+ }
336
+ }
337
+ function buildEnhancement(kind) {
338
+ const template = ENHANCEMENT_TEMPLATES[kind];
339
+ return {
340
+ kind,
341
+ title: template.title,
342
+ why: template.why,
343
+ copyPaste: template.copyPaste
344
+ };
345
+ }
346
+ function suggestNextCommands(input) {
347
+ const commands = [];
348
+ if (input.itemKind === "backlog") {
349
+ commands.push(`poetic backlog review ${input.id}`);
350
+ commands.push(`poetic sprint add-task <sprint-id> ${input.id} --estimate <hours>`);
351
+ return commands;
352
+ }
353
+ commands.push(`poetic task start ${input.id}`);
354
+ if (typeof input.sprintId === "string" && input.sprintId.length > 0) {
355
+ commands.push(`poetic task list ${input.sprintId}`);
356
+ }
357
+ if (input.category === "test") {
358
+ commands.push(`poetic run ${input.id}`);
359
+ }
360
+ return commands;
361
+ }
362
+ function buildQuickReply(enhancements) {
363
+ if (enhancements.length === 0) return "";
364
+ const blocks = enhancements.map((e) => e.copyPaste.trim()).filter((b) => b.length > 0);
365
+ if (blocks.length === 0) return "";
366
+ return `Spec enhancement set (optional):
367
+
368
+ ${blocks.join("\n\n")}`.trim();
369
+ }
370
+ function generateEnhancements(input) {
371
+ const title = input.title.trim();
372
+ const description = (input.description ?? "").trim();
373
+ const prompt = description.length > 0 ? `${title}
374
+
375
+ ${description}` : title;
376
+ const classification = classifyIntent(prompt);
377
+ const activity = inferActivity(prompt, classification.category);
378
+ const priorities = applyMultiConcernBias(
379
+ title,
380
+ getEnhancementPriorities(classification.category, activity)
381
+ );
382
+ const enhancements = [];
383
+ for (const kind of priorities) {
384
+ if (enhancements.length >= 3) break;
385
+ if (!hasSignalForEnhancement(prompt, kind)) {
386
+ enhancements.push(buildEnhancement(kind));
387
+ }
388
+ }
389
+ const id = input.id ?? "<item-id>";
390
+ const itemKind = input.itemKind ?? "backlog";
391
+ const nextCommands = suggestNextCommands({
392
+ itemKind,
393
+ id,
394
+ category: classification.category,
395
+ sprintId: input.sprintId
396
+ });
397
+ const quickReply = buildQuickReply(enhancements);
398
+ const intent = {
399
+ category: classification.category,
400
+ activity,
401
+ confidence: classification.confidence
402
+ };
403
+ return { intent, enhancements, quickReply, nextCommands };
404
+ }
405
+ function toPersistedFormat(enhancements) {
406
+ return enhancements.map((enhancement) => ({
407
+ kind: enhancement.kind,
408
+ snippet: enhancement.copyPaste
409
+ }));
410
+ }
411
+ function toEnhancementSet(guidance) {
412
+ return {
413
+ version: 1,
414
+ intent: guidance.intent,
415
+ enhancements: toPersistedFormat(guidance.enhancements)
416
+ };
417
+ }
418
+ function fromPersistedFormat(persisted) {
419
+ return persisted.filter((p) => p.kind in ENHANCEMENT_TEMPLATES).map((p) => ({
420
+ ...buildEnhancement(p.kind),
421
+ copyPaste: p.snippet
422
+ // Use persisted snippet (may have been customized)
423
+ }));
424
+ }
425
+ function hintsFromEnhancements(enhancements) {
426
+ return enhancements.map((enhancement) => ENHANCEMENT_TEMPLATES[enhancement.kind]?.hint).filter((hint) => Boolean(hint));
427
+ }
428
+
429
+ export {
430
+ parseTaskBody,
431
+ buildPromptFromTask,
432
+ generateEnhancements,
433
+ toPersistedFormat,
434
+ toEnhancementSet,
435
+ fromPersistedFormat,
436
+ hintsFromEnhancements
437
+ };
438
+ //# sourceMappingURL=chunk-LIVJ6266.js.map
@@ -0,0 +1,276 @@
1
+ import {
2
+ TelemetryLogger
3
+ } from "./chunk-CKNX3TTP.js";
4
+ import {
5
+ debugLog
6
+ } from "./chunk-EJGCZGUF.js";
7
+
8
+ // src/core/providers/claude/execution/environment.ts
9
+ import { randomBytes } from "crypto";
10
+ import fs from "fs";
11
+ import os from "os";
12
+ import path from "path";
13
+ var cachedRestrictedEnvCheck = null;
14
+ var cachedRestrictedEnvCheckTimestamp = null;
15
+ var RESTRICTED_ENV_CACHE_TTL_MS = 3e5;
16
+ function _resetRestrictedEnvCache() {
17
+ cachedRestrictedEnvCheck = null;
18
+ cachedRestrictedEnvCheckTimestamp = null;
19
+ }
20
+ function isRestrictedEnvironment() {
21
+ const now = Date.now();
22
+ if (cachedRestrictedEnvCheck !== null && cachedRestrictedEnvCheckTimestamp !== null && now - cachedRestrictedEnvCheckTimestamp < RESTRICTED_ENV_CACHE_TTL_MS) {
23
+ return cachedRestrictedEnvCheck;
24
+ }
25
+ const homeDir = os.homedir();
26
+ const claudeDir = path.join(homeDir, ".claude");
27
+ try {
28
+ if (fs.existsSync(claudeDir)) {
29
+ const testFile = path.join(claudeDir, `.poetic-write-test-${process.pid}`);
30
+ try {
31
+ fs.writeFileSync(testFile, "", { mode: 384 });
32
+ fs.unlinkSync(testFile);
33
+ cachedRestrictedEnvCheck = false;
34
+ cachedRestrictedEnvCheckTimestamp = now;
35
+ return false;
36
+ } catch {
37
+ cachedRestrictedEnvCheck = true;
38
+ cachedRestrictedEnvCheckTimestamp = now;
39
+ return true;
40
+ }
41
+ }
42
+ try {
43
+ fs.accessSync(homeDir, fs.constants.W_OK);
44
+ cachedRestrictedEnvCheck = false;
45
+ cachedRestrictedEnvCheckTimestamp = now;
46
+ return false;
47
+ } catch {
48
+ cachedRestrictedEnvCheck = true;
49
+ cachedRestrictedEnvCheckTimestamp = now;
50
+ return true;
51
+ }
52
+ } catch {
53
+ cachedRestrictedEnvCheck = true;
54
+ cachedRestrictedEnvCheckTimestamp = now;
55
+ return true;
56
+ }
57
+ }
58
+ var cachedFallbackConfigDir = null;
59
+ var cachedFallbackConfigDirIdentity = null;
60
+ var fallbackConfigDirTeardown = null;
61
+ var FALLBACK_CREDENTIAL_FILES = [".claude.json", "credentials.json", ".credentials.json"];
62
+ var FALLBACK_SETTINGS_FILES = ["settings.json", "settings.local.json"];
63
+ function _resetClaudeFallbackConfigDir() {
64
+ cachedFallbackConfigDir = null;
65
+ cachedFallbackConfigDirIdentity = null;
66
+ if (fallbackConfigDirTeardown !== null) {
67
+ process.removeListener("exit", fallbackConfigDirTeardown);
68
+ fallbackConfigDirTeardown = null;
69
+ }
70
+ }
71
+ function getClaudeFallbackConfigDir() {
72
+ if (cachedFallbackConfigDir !== null) {
73
+ if (isUsableFallbackConfigDir(cachedFallbackConfigDir)) {
74
+ return cachedFallbackConfigDir;
75
+ }
76
+ discardFallbackConfigDirCopies(cachedFallbackConfigDir);
77
+ }
78
+ const created = fs.mkdtempSync(path.join(os.tmpdir(), "poetic-claude-config-"));
79
+ fs.chmodSync(created, 448);
80
+ const createdStats = fs.lstatSync(created);
81
+ cachedFallbackConfigDir = created;
82
+ cachedFallbackConfigDirIdentity = { dev: createdStats.dev, ino: createdStats.ino };
83
+ scheduleFallbackConfigDirRemoval();
84
+ return created;
85
+ }
86
+ function isCreatedFallbackConfigDir(dir) {
87
+ const identity = cachedFallbackConfigDirIdentity;
88
+ if (identity === null) {
89
+ return false;
90
+ }
91
+ try {
92
+ const stats = fs.lstatSync(dir);
93
+ return stats.isDirectory() && stats.dev === identity.dev && stats.ino === identity.ino;
94
+ } catch {
95
+ return false;
96
+ }
97
+ }
98
+ function isUsableFallbackConfigDir(dir) {
99
+ if (!isCreatedFallbackConfigDir(dir)) {
100
+ return false;
101
+ }
102
+ try {
103
+ return (fs.lstatSync(dir).mode & 511) === 448;
104
+ } catch {
105
+ return false;
106
+ }
107
+ }
108
+ function scheduleFallbackConfigDirRemoval() {
109
+ if (fallbackConfigDirTeardown !== null) {
110
+ return;
111
+ }
112
+ const teardown = () => {
113
+ if (cachedFallbackConfigDir !== null) {
114
+ discardFallbackConfigDirCopies(cachedFallbackConfigDir);
115
+ }
116
+ };
117
+ fallbackConfigDirTeardown = teardown;
118
+ process.once("exit", teardown);
119
+ }
120
+ function discardFallbackConfigDirCopies(dir) {
121
+ if (!isCreatedFallbackConfigDir(dir)) {
122
+ return;
123
+ }
124
+ for (const file of [...FALLBACK_CREDENTIAL_FILES, ...FALLBACK_SETTINGS_FILES]) {
125
+ try {
126
+ fs.unlinkSync(path.join(dir, file));
127
+ } catch {
128
+ }
129
+ }
130
+ try {
131
+ fs.rmdirSync(dir);
132
+ } catch {
133
+ }
134
+ }
135
+ function copyClaudeCredentials(fallbackDir) {
136
+ const homeDir = os.homedir();
137
+ const claudeDir = path.join(homeDir, ".claude");
138
+ function verifyCopiedFilePermissions(fileLabel, destPath, warnOnMismatch) {
139
+ try {
140
+ const stats = fs.statSync(destPath);
141
+ const actualMode = stats.mode & 511;
142
+ if (actualMode !== 384) {
143
+ const message = `[Claude] ${fileLabel} has permissions ${actualMode.toString(8)} (expected 0600)`;
144
+ if (warnOnMismatch) {
145
+ console.warn(`${message}. This may be a security risk.`);
146
+ } else {
147
+ debugLog(message);
148
+ }
149
+ } else {
150
+ debugLog(`[Claude] ${fileLabel} synced (permissions verified: 0600)`);
151
+ }
152
+ } catch (verifyErr) {
153
+ if (warnOnMismatch) {
154
+ console.warn(
155
+ `[Claude] Warning: Could not verify permissions for ${fileLabel}: ${verifyErr}`
156
+ );
157
+ }
158
+ }
159
+ }
160
+ function shouldSyncSourceToFallback(srcPath, destPath) {
161
+ if (!fs.existsSync(srcPath)) {
162
+ return false;
163
+ }
164
+ if (!fs.existsSync(destPath)) {
165
+ return true;
166
+ }
167
+ try {
168
+ const srcStat = fs.statSync(srcPath);
169
+ const destStat = fs.statSync(destPath);
170
+ return srcStat.mtimeMs > destStat.mtimeMs || srcStat.size !== destStat.size;
171
+ } catch {
172
+ return true;
173
+ }
174
+ }
175
+ function syncFileToFallback(file, opts) {
176
+ const srcPath = path.join(claudeDir, file);
177
+ const destPath = path.join(fallbackDir, file);
178
+ if (!shouldSyncSourceToFallback(srcPath, destPath)) {
179
+ return;
180
+ }
181
+ const existedBefore = fs.existsSync(destPath);
182
+ const tmpSuffix = randomBytes(6).toString("hex");
183
+ const tmpPath = `${destPath}.tmp-${process.pid}-${tmpSuffix}`;
184
+ try {
185
+ const content = fs.readFileSync(srcPath, "utf-8");
186
+ fs.writeFileSync(tmpPath, content, { mode: 384 });
187
+ fs.renameSync(tmpPath, destPath);
188
+ verifyCopiedFilePermissions(file, destPath, opts.warnOnPermissionMismatch);
189
+ debugLog(`[Claude] ${existedBefore ? "Updated" : "Copied"} ${opts.logLabel}: ${file}`);
190
+ } catch (err) {
191
+ debugLog(`[Claude] Could not sync ${file}: ${err}`);
192
+ try {
193
+ if (fs.existsSync(tmpPath)) {
194
+ fs.unlinkSync(tmpPath);
195
+ }
196
+ } catch {
197
+ }
198
+ }
199
+ }
200
+ for (const file of FALLBACK_CREDENTIAL_FILES) {
201
+ syncFileToFallback(file, {
202
+ warnOnPermissionMismatch: true,
203
+ logLabel: "credentials"
204
+ });
205
+ }
206
+ for (const file of FALLBACK_SETTINGS_FILES) {
207
+ syncFileToFallback(file, {
208
+ warnOnPermissionMismatch: false,
209
+ logLabel: "settings"
210
+ });
211
+ }
212
+ }
213
+ function ensureClaudeConfigDir(env) {
214
+ if (process.env.CLAUDE_CONFIG_DIR || env.CLAUDE_CONFIG_DIR) {
215
+ return env;
216
+ }
217
+ if (!isRestrictedEnvironment()) {
218
+ return env;
219
+ }
220
+ let fallbackDir;
221
+ try {
222
+ fallbackDir = getClaudeFallbackConfigDir();
223
+ } catch (err) {
224
+ console.warn(
225
+ `[Claude] Warning: Cannot create fallback config dir under ${os.tmpdir()}: ${err}`
226
+ );
227
+ return env;
228
+ }
229
+ try {
230
+ copyClaudeCredentials(fallbackDir);
231
+ } catch (err) {
232
+ debugLog(`[Claude] Warning: Could not copy credentials: ${err}`);
233
+ }
234
+ console.warn(
235
+ `[Claude] Detected restricted environment (cannot write to ~/.claude). Using fallback config dir: ${fallbackDir}`
236
+ );
237
+ try {
238
+ TelemetryLogger.getInstance().logEvent("claude_config_dir_fallback", {
239
+ fallbackDir,
240
+ reason: "restricted_environment"
241
+ });
242
+ } catch {
243
+ }
244
+ return {
245
+ ...env,
246
+ CLAUDE_CONFIG_DIR: fallbackDir
247
+ };
248
+ }
249
+ var CLAUDE_READ_ONLY_CHAT_DISALLOWED_TOOLS = [
250
+ "Write",
251
+ "Edit",
252
+ "MultiEdit",
253
+ "NotebookEdit",
254
+ "Bash"
255
+ ];
256
+ function applyClaudeReadOnlyChatEnv(env) {
257
+ return {
258
+ ...env,
259
+ POETIC_FEATURE_ENABLE_CLAUDE_ENHANCED: "1",
260
+ POETIC_CLAUDE_ENHANCED_TOOLS_PROFILE: "readonly",
261
+ POETIC_CLAUDE_ENHANCED_PERMISSION_MODE: env?.POETIC_CLAUDE_ENHANCED_PERMISSION_MODE ?? "dontAsk",
262
+ POETIC_CLAUDE_ENHANCED_RESTRICT_TOOLS: "1",
263
+ POETIC_CLAUDE_ENHANCED_USE_SUBAGENTS: "0",
264
+ POETIC_CLAUDE_ENHANCED_DISALLOWED_TOOLS: CLAUDE_READ_ONLY_CHAT_DISALLOWED_TOOLS.join(","),
265
+ POETIC_CLAUDE_SANDBOX_READONLY_WORKING_DIR: "1"
266
+ };
267
+ }
268
+
269
+ export {
270
+ _resetRestrictedEnvCache,
271
+ isRestrictedEnvironment,
272
+ _resetClaudeFallbackConfigDir,
273
+ ensureClaudeConfigDir,
274
+ applyClaudeReadOnlyChatEnv
275
+ };
276
+ //# sourceMappingURL=chunk-LKRAR3IH.js.map