@poetic-ai/poetic 1.42.1-bootstrap.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/SECURITY.md +47 -0
- package/.nvmrc +1 -0
- package/.poetic/README.md +37 -0
- package/.poetic/providers/catalog.json +12051 -0
- package/.poetic/providers/pricing.json +1272 -0
- package/.poetic/providers/registry.json +3369 -0
- package/CHANGELOG.md +552 -0
- package/CODE_OF_CONDUCT.md +40 -0
- package/CONTRIBUTING.md +23 -0
- package/INSTALL.md +454 -0
- package/LICENSE +21 -0
- package/README.md +474 -0
- package/dist/BasicOptimizationCompetitionRunner-5H5TBYO4.js +153 -0
- package/dist/ExecutionTracker-UVONC4C6.js +16 -0
- package/dist/OptimizationConfig-7DFY2TST.js +17 -0
- package/dist/OptimizationEngine-MXTSOSST.js +1597 -0
- package/dist/PromptStore-U6ZD3ZMQ.js +18 -0
- package/dist/actions-M3AESHFF.js +322 -0
- package/dist/agent-ingest-HO77TH26.js +53 -0
- package/dist/aggregator-DNCBINFO.js +12 -0
- package/dist/ai-judge-LDWHURKK.js +156 -0
- package/dist/allowlist-grounding-RO6HKUFI.js +16 -0
- package/dist/allowlist-utils-23V7TJ3G.js +28 -0
- package/dist/anchored-turn-service-GFYU6GCQ.js +489 -0
- package/dist/api-transport-FS3CQRMN.js +1087 -0
- package/dist/apply-completion-mode-JBT2CTQO.js +89 -0
- package/dist/artifact-migrator-23L45ISD.js +267 -0
- package/dist/ask-UYVZY7JH.js +135 -0
- package/dist/auth-CSQP5RHJ.js +67 -0
- package/dist/auth-E6XUNZ5M.js +68 -0
- package/dist/auth-KQLJPZ2E.js +134 -0
- package/dist/auth-OC4E6633.js +71 -0
- package/dist/auth-R3NQ2ZF5.js +78 -0
- package/dist/auth-S4CTX4GQ.js +44 -0
- package/dist/auth-YLH3S7EY.js +69 -0
- package/dist/auth-liveness-TDDEZY3T.js +46 -0
- package/dist/auto-optimizer-HA3T23SF.js +80 -0
- package/dist/autoloop-cleanup-JOGKTLWA.js +109 -0
- package/dist/autoloop-evidence-gates-ACB5YW5G.js +36 -0
- package/dist/autoloop-gate-policy-XZA5EQFN.js +175 -0
- package/dist/autoloop-helpers-EFJLBQUP.js +22 -0
- package/dist/autoloop-ledger-W7QO62PX.js +96 -0
- package/dist/autoloop-ledger-subscriber-Z5RW5EIE.js +162 -0
- package/dist/autoloop-run-defaults-FERGRZGP.js +19 -0
- package/dist/autoloop-run-lock-CT2NWSV3.js +197 -0
- package/dist/autoloop-success-OPR74YEX.js +85 -0
- package/dist/autoloop-termination-summary-RN75F422.js +58 -0
- package/dist/autoloop-trajectory-K5I45UBR.js +282 -0
- package/dist/autoloop-wall-clock-T7ZVIQOC.js +12 -0
- package/dist/autonomous-loop-controller-4QJMOIIN.js +4120 -0
- package/dist/backend-P3DAYRP7.js +29 -0
- package/dist/background-executor-CBN552V4.js +257 -0
- package/dist/backlog-execution-intent-U4XYPTV6.js +15 -0
- package/dist/backup-active-store-5WXG6SXT.js +17 -0
- package/dist/backup-telemetry-db-XGLXAA3N.js +254 -0
- package/dist/basic-competition-master-WXZHUT42.js +344 -0
- package/dist/branch-archive-manager-RP6FP3ZC.js +254 -0
- package/dist/branch-cleanup-manager-RSHAI7YR.js +20 -0
- package/dist/build-gate-YFASRB5Z.js +71 -0
- package/dist/change-summary-WY7J5TOX.js +33 -0
- package/dist/chunk-25QL3M3L.js +899 -0
- package/dist/chunk-2ABC6SEC.js +2626 -0
- package/dist/chunk-2AICM4P3.js +1763 -0
- package/dist/chunk-2AQUWJPW.js +225 -0
- package/dist/chunk-2DY5KNVM.js +276 -0
- package/dist/chunk-2QJ3H3L7.js +42 -0
- package/dist/chunk-2UH6VQRZ.js +328 -0
- package/dist/chunk-2VSQMRCB.js +18 -0
- package/dist/chunk-2XQXYBM2.js +130 -0
- package/dist/chunk-2YFUIER7.js +426 -0
- package/dist/chunk-2YXZCZTX.js +1160 -0
- package/dist/chunk-32VLDFRT.js +797 -0
- package/dist/chunk-34CNP2HB.js +148 -0
- package/dist/chunk-35P3W3JX.js +456 -0
- package/dist/chunk-36PEBZAF.js +18 -0
- package/dist/chunk-3733QTI7.js +6818 -0
- package/dist/chunk-3A5PDH5L.js +12513 -0
- package/dist/chunk-3AOKYKA7.js +22 -0
- package/dist/chunk-3BCUNHKF.js +475 -0
- package/dist/chunk-3C26DPFK.js +566 -0
- package/dist/chunk-3FLXLLB7.js +26 -0
- package/dist/chunk-3FOZ2VHV.js +100 -0
- package/dist/chunk-3G6FZCRF.js +106 -0
- package/dist/chunk-3JWNRJSB.js +736 -0
- package/dist/chunk-3LUMR3D3.js +156 -0
- package/dist/chunk-3M57DADF.js +44 -0
- package/dist/chunk-3S62LLWJ.js +543 -0
- package/dist/chunk-3VABAKT2.js +1784 -0
- package/dist/chunk-44N5WZZH.js +45 -0
- package/dist/chunk-45FPSA3B.js +125 -0
- package/dist/chunk-4BIPZBT7.js +791 -0
- package/dist/chunk-4BJ3O4RQ.js +929 -0
- package/dist/chunk-4BTDUT2S.js +42 -0
- package/dist/chunk-4CSS7WVI.js +143 -0
- package/dist/chunk-4CUY7AFY.js +247 -0
- package/dist/chunk-4HN6DF7V.js +1027 -0
- package/dist/chunk-4HXKHDNH.js +1064 -0
- package/dist/chunk-4KKI477Q.js +44 -0
- package/dist/chunk-4NA7FSTV.js +595 -0
- package/dist/chunk-4NXPXE62.js +84 -0
- package/dist/chunk-4SALLK63.js +9831 -0
- package/dist/chunk-4SHKPCGK.js +110 -0
- package/dist/chunk-4VJITV4P.js +445 -0
- package/dist/chunk-4W2NRXQL.js +1205 -0
- package/dist/chunk-4XICK3HN.js +784 -0
- package/dist/chunk-55EJVV3C.js +385 -0
- package/dist/chunk-5DLKYTQX.js +4003 -0
- package/dist/chunk-5EERLVZB.js +139 -0
- package/dist/chunk-5HDP7XZG.js +91 -0
- package/dist/chunk-5LAMRH4X.js +969 -0
- package/dist/chunk-5REDMNLZ.js +310 -0
- package/dist/chunk-5UCJARII.js +1984 -0
- package/dist/chunk-5WCQRDRB.js +588 -0
- package/dist/chunk-5WRLK5KW.js +700 -0
- package/dist/chunk-66AGFTBQ.js +131 -0
- package/dist/chunk-66CIO2SV.js +48 -0
- package/dist/chunk-6BM72ZMG.js +31 -0
- package/dist/chunk-6BTFXYRO.js +276 -0
- package/dist/chunk-6EDAJH2I.js +68 -0
- package/dist/chunk-6EQKFDBH.js +457 -0
- package/dist/chunk-6KMJKHIQ.js +2193 -0
- package/dist/chunk-6MFRHTRI.js +115 -0
- package/dist/chunk-6QMUKUHH.js +632 -0
- package/dist/chunk-6TZJRKNW.js +321 -0
- package/dist/chunk-6V7HGQFZ.js +20 -0
- package/dist/chunk-6Y5TWI7H.js +146 -0
- package/dist/chunk-6Y5U7UFY.js +91 -0
- package/dist/chunk-6ZLAK3XG.js +14 -0
- package/dist/chunk-72XCRQED.js +34 -0
- package/dist/chunk-72YTZMAM.js +589 -0
- package/dist/chunk-73NCTWKL.js +188 -0
- package/dist/chunk-77I6G4CO.js +1 -0
- package/dist/chunk-7D7QT3BE.js +688 -0
- package/dist/chunk-7DNSNKJV.js +78 -0
- package/dist/chunk-7FMJVYBS.js +307 -0
- package/dist/chunk-7GDRQBQC.js +419 -0
- package/dist/chunk-7IL4A2PP.js +948 -0
- package/dist/chunk-7NPSXSHO.js +975 -0
- package/dist/chunk-7PS6INZP.js +302 -0
- package/dist/chunk-7QCZSLBH.js +1 -0
- package/dist/chunk-7R2WLDOS.js +62 -0
- package/dist/chunk-7XV3QXLT.js +878 -0
- package/dist/chunk-A2WKSVX7.js +43 -0
- package/dist/chunk-A3YGID55.js +133 -0
- package/dist/chunk-A5MRWHMI.js +1604 -0
- package/dist/chunk-A722DEVA.js +14 -0
- package/dist/chunk-AG2Z2SUZ.js +554 -0
- package/dist/chunk-AHWAZ2MU.js +137 -0
- package/dist/chunk-AIAQ3HS3.js +119 -0
- package/dist/chunk-ALAB3PBR.js +2206 -0
- package/dist/chunk-APPNGGN7.js +365 -0
- package/dist/chunk-APV6MK5E.js +137 -0
- package/dist/chunk-AQNPGRWS.js +395 -0
- package/dist/chunk-ASEP3M2W.js +968 -0
- package/dist/chunk-AT4TNPWW.js +2931 -0
- package/dist/chunk-ATVKCSGT.js +250 -0
- package/dist/chunk-AX6GWE7V.js +47 -0
- package/dist/chunk-AZQILSNQ.js +1376 -0
- package/dist/chunk-B76KHLX6.js +13 -0
- package/dist/chunk-BAV2HJXS.js +194 -0
- package/dist/chunk-BBHRN366.js +89 -0
- package/dist/chunk-BCZAENOH.js +448 -0
- package/dist/chunk-BIGSACCY.js +19527 -0
- package/dist/chunk-BPYMCIVD.js +9243 -0
- package/dist/chunk-BSE4R6XD.js +322 -0
- package/dist/chunk-BVPWRDCO.js +2321 -0
- package/dist/chunk-BXI4NXL3.js +507 -0
- package/dist/chunk-C3L6YQ7P.js +147 -0
- package/dist/chunk-C57KJOUQ.js +121 -0
- package/dist/chunk-CCV7BPSY.js +118 -0
- package/dist/chunk-CD7ISXA4.js +826 -0
- package/dist/chunk-CE5OZBYY.js +21 -0
- package/dist/chunk-CFBIG37O.js +154 -0
- package/dist/chunk-CHQV73H5.js +408 -0
- package/dist/chunk-CJC6GZ46.js +457 -0
- package/dist/chunk-CJHRFSNY.js +924 -0
- package/dist/chunk-CKP2Q3TP.js +1905 -0
- package/dist/chunk-CLKSETWE.js +10 -0
- package/dist/chunk-CQM3A35X.js +844 -0
- package/dist/chunk-CSLAS5GW.js +4007 -0
- package/dist/chunk-CTLUBNCW.js +622 -0
- package/dist/chunk-CVMVZWG4.js +3544 -0
- package/dist/chunk-CYB6QDCT.js +263 -0
- package/dist/chunk-D5EP5D2W.js +26 -0
- package/dist/chunk-DC4ZYMXJ.js +115 -0
- package/dist/chunk-DCAVAABI.js +348 -0
- package/dist/chunk-DCYF7EKG.js +26 -0
- package/dist/chunk-DF5SLDE4.js +966 -0
- package/dist/chunk-DN7UMLF7.js +5678 -0
- package/dist/chunk-DSFM56OA.js +1203 -0
- package/dist/chunk-DTY4APYV.js +218 -0
- package/dist/chunk-E3NTPHEO.js +194 -0
- package/dist/chunk-E74LUIID.js +302 -0
- package/dist/chunk-EJ42BNGY.js +2904 -0
- package/dist/chunk-EJ4ZAWLV.js +305 -0
- package/dist/chunk-EJGCZGUF.js +1483 -0
- package/dist/chunk-EK2U3YEG.js +486 -0
- package/dist/chunk-ELMFYNV7.js +109 -0
- package/dist/chunk-ENRGKNR5.js +25 -0
- package/dist/chunk-EQGIDAUF.js +62 -0
- package/dist/chunk-EX3OM35G.js +20414 -0
- package/dist/chunk-F5JO7HAS.js +94 -0
- package/dist/chunk-F7ER6ANO.js +174 -0
- package/dist/chunk-FATUVIIN.js +374 -0
- package/dist/chunk-FC23CTXV.js +322 -0
- package/dist/chunk-FCNAS3W2.js +1033 -0
- package/dist/chunk-FD4ERYEG.js +22 -0
- package/dist/chunk-FDVZLG6Z.js +3104 -0
- package/dist/chunk-FEPIFY7D.js +511 -0
- package/dist/chunk-FEQ4HXL7.js +412 -0
- package/dist/chunk-FFH5HHJU.js +5351 -0
- package/dist/chunk-FH7WOJAE.js +79 -0
- package/dist/chunk-FKAUPHMR.js +96 -0
- package/dist/chunk-FRG57FPM.js +240 -0
- package/dist/chunk-FUVP64ER.js +31 -0
- package/dist/chunk-G2PTLLEL.js +284 -0
- package/dist/chunk-G35UYQ6Z.js +69 -0
- package/dist/chunk-G36W2T2S.js +1143 -0
- package/dist/chunk-G4THLFV3.js +148 -0
- package/dist/chunk-GAFJEYLK.js +29 -0
- package/dist/chunk-GCCAPO3S.js +118 -0
- package/dist/chunk-GG6KJYW6.js +85 -0
- package/dist/chunk-GHHFDU2U.js +55 -0
- package/dist/chunk-GHTZSQB7.js +57 -0
- package/dist/chunk-GJTWJNLV.js +1374 -0
- package/dist/chunk-GKN3HMN4.js +2809 -0
- package/dist/chunk-GNH3QGTL.js +1342 -0
- package/dist/chunk-GOAQ2I7Y.js +7000 -0
- package/dist/chunk-GSGD5E4C.js +30 -0
- package/dist/chunk-GXWAJQOJ.js +5011 -0
- package/dist/chunk-H2AYQIHW.js +224 -0
- package/dist/chunk-H6G7QRMQ.js +35 -0
- package/dist/chunk-H7JAGHZT.js +59 -0
- package/dist/chunk-HAC6EHZZ.js +79 -0
- package/dist/chunk-HE2KH6EQ.js +161 -0
- package/dist/chunk-HIHENQDX.js +66 -0
- package/dist/chunk-HIO33P3G.js +19 -0
- package/dist/chunk-HK4AQZSR.js +438 -0
- package/dist/chunk-HMVQIPH3.js +547 -0
- package/dist/chunk-HOYBYAOA.js +257 -0
- package/dist/chunk-HQLGXODD.js +123 -0
- package/dist/chunk-HQXYYUNY.js +1231 -0
- package/dist/chunk-HY3ESWCA.js +708 -0
- package/dist/chunk-I46EG2XQ.js +65 -0
- package/dist/chunk-I4NPDSCB.js +279 -0
- package/dist/chunk-I5WRT7ZR.js +514 -0
- package/dist/chunk-I6BL3PDH.js +1024 -0
- package/dist/chunk-IATQ7NBI.js +679 -0
- package/dist/chunk-IC7I6YIJ.js +301 -0
- package/dist/chunk-IDCSOZVN.js +78 -0
- package/dist/chunk-IEXU4RR6.js +5742 -0
- package/dist/chunk-IFCBYECK.js +112 -0
- package/dist/chunk-IFZCPEY2.js +66 -0
- package/dist/chunk-IKFP2KUR.js +48 -0
- package/dist/chunk-IP7BYVUV.js +338 -0
- package/dist/chunk-IRJ2I6KH.js +166 -0
- package/dist/chunk-IUXNGKA6.js +152 -0
- package/dist/chunk-IZYIQQ7X.js +53 -0
- package/dist/chunk-IZZK3H6I.js +2175 -0
- package/dist/chunk-J3J4P7RW.js +353 -0
- package/dist/chunk-J62KPGII.js +464 -0
- package/dist/chunk-J6P3FWWW.js +130 -0
- package/dist/chunk-JD6SIZED.js +712 -0
- package/dist/chunk-JEV6UI7H.js +537 -0
- package/dist/chunk-JKBHJQMT.js +434 -0
- package/dist/chunk-JLS65NUQ.js +14 -0
- package/dist/chunk-JOSYEJKY.js +141 -0
- package/dist/chunk-JPKSXKNB.js +94 -0
- package/dist/chunk-JQD5VYKR.js +483 -0
- package/dist/chunk-JSOWEFEQ.js +351 -0
- package/dist/chunk-JSWMRQYG.js +28 -0
- package/dist/chunk-K4XK7SGB.js +6783 -0
- package/dist/chunk-K54Y7MLK.js +160 -0
- package/dist/chunk-KAT4RXUT.js +521 -0
- package/dist/chunk-KDMKKIRK.js +103 -0
- package/dist/chunk-KM3F7SYE.js +702 -0
- package/dist/chunk-KNDYMVWN.js +102 -0
- package/dist/chunk-KNT72VR6.js +132 -0
- package/dist/chunk-KQEBSK3T.js +274 -0
- package/dist/chunk-KT6VHSPF.js +84 -0
- package/dist/chunk-KTMW65UX.js +14 -0
- package/dist/chunk-L4427KOE.js +26 -0
- package/dist/chunk-L6OM4A22.js +189 -0
- package/dist/chunk-L7E6XCRA.js +1042 -0
- package/dist/chunk-L7JZLXQL.js +173 -0
- package/dist/chunk-LAMKBTXX.js +40 -0
- package/dist/chunk-LDCF2MKN.js +132 -0
- package/dist/chunk-LEIIWPWQ.js +78 -0
- package/dist/chunk-LFTQVYBB.js +31 -0
- package/dist/chunk-LGHII5ET.js +23 -0
- package/dist/chunk-LH34OGSB.js +265 -0
- package/dist/chunk-LO3X5NLS.js +326 -0
- package/dist/chunk-LPITVM7M.js +339 -0
- package/dist/chunk-LR5IJIGV.js +810 -0
- package/dist/chunk-LUVKFFWR.js +315 -0
- package/dist/chunk-LWCBNGH6.js +35 -0
- package/dist/chunk-LWTN3WRV.js +260 -0
- package/dist/chunk-LZBBXYWF.js +1004 -0
- package/dist/chunk-M34PS4NE.js +2213 -0
- package/dist/chunk-M3HQYKQX.js +308 -0
- package/dist/chunk-MCPQNJMK.js +482 -0
- package/dist/chunk-MF5HP6XV.js +221 -0
- package/dist/chunk-MFADRRTR.js +112 -0
- package/dist/chunk-MN6PL4AN.js +120 -0
- package/dist/chunk-MQ4WA34C.js +206 -0
- package/dist/chunk-MTVZITQ2.js +185 -0
- package/dist/chunk-MWHF5V7U.js +223 -0
- package/dist/chunk-MWHLBPNU.js +211 -0
- package/dist/chunk-MWK5UZQ3.js +1068 -0
- package/dist/chunk-MYLH2S4G.js +64 -0
- package/dist/chunk-MZ5WYKNA.js +28 -0
- package/dist/chunk-N5DX4JAK.js +12 -0
- package/dist/chunk-NEDCMN7E.js +415 -0
- package/dist/chunk-NEQUQHOX.js +223 -0
- package/dist/chunk-NGK6PEOG.js +25 -0
- package/dist/chunk-NM6PMYY4.js +768 -0
- package/dist/chunk-NOZGR2QO.js +2373 -0
- package/dist/chunk-NP2V3L7K.js +226 -0
- package/dist/chunk-NPZJMUZ4.js +194 -0
- package/dist/chunk-NRLY536M.js +260 -0
- package/dist/chunk-NS33V3IM.js +51 -0
- package/dist/chunk-NWOYOA6H.js +378 -0
- package/dist/chunk-NWRUSEXG.js +322 -0
- package/dist/chunk-O6V4PNLO.js +63 -0
- package/dist/chunk-OGMSYL6J.js +227 -0
- package/dist/chunk-OIS7J26S.js +319 -0
- package/dist/chunk-OKBTRSZI.js +205 -0
- package/dist/chunk-OMX5VL43.js +79 -0
- package/dist/chunk-ON3G73BU.js +264 -0
- package/dist/chunk-OPYFYTWQ.js +220 -0
- package/dist/chunk-OQ6K46CK.js +1734 -0
- package/dist/chunk-OSDYVKHW.js +2440 -0
- package/dist/chunk-OUM5S64R.js +3429 -0
- package/dist/chunk-OWB7JXUS.js +751 -0
- package/dist/chunk-OYZYO7TV.js +47 -0
- package/dist/chunk-P47VN5F4.js +282 -0
- package/dist/chunk-P6VQROCO.js +594 -0
- package/dist/chunk-P7CQGPLS.js +30 -0
- package/dist/chunk-PA6BCSOX.js +2872 -0
- package/dist/chunk-PGSPX4SU.js +15 -0
- package/dist/chunk-PIKLF7BM.js +432 -0
- package/dist/chunk-PJWJ3SAV.js +22 -0
- package/dist/chunk-PKIFMV72.js +100 -0
- package/dist/chunk-PTH5E5XO.js +195 -0
- package/dist/chunk-PYITM4N2.js +79 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-Q3RO7N35.js +45 -0
- package/dist/chunk-Q3WIC6GQ.js +2670 -0
- package/dist/chunk-QGJDMEOV.js +34 -0
- package/dist/chunk-QJYIHVXT.js +100 -0
- package/dist/chunk-QNOB37UH.js +58 -0
- package/dist/chunk-QOCOVLUH.js +462 -0
- package/dist/chunk-QTCJ5CC5.js +172 -0
- package/dist/chunk-QU6JQJMH.js +3063 -0
- package/dist/chunk-QVFV5IP2.js +232 -0
- package/dist/chunk-QVZMFDYG.js +29 -0
- package/dist/chunk-R2ZYWNW3.js +1581 -0
- package/dist/chunk-R4UWBC35.js +200 -0
- package/dist/chunk-R6W23LKN.js +254 -0
- package/dist/chunk-RAK5HOIJ.js +459 -0
- package/dist/chunk-RDFRCT64.js +168 -0
- package/dist/chunk-RE5VZDFQ.js +58 -0
- package/dist/chunk-RGROYC2G.js +638 -0
- package/dist/chunk-RGWHUI5E.js +68 -0
- package/dist/chunk-RHVG6UNL.js +205 -0
- package/dist/chunk-RI4EX2QE.js +18 -0
- package/dist/chunk-RIKFAWZF.js +71 -0
- package/dist/chunk-RJAAKDRX.js +17 -0
- package/dist/chunk-RSXSD4MH.js +1016 -0
- package/dist/chunk-RW7RVSDV.js +79 -0
- package/dist/chunk-RWREC3KJ.js +517 -0
- package/dist/chunk-RZY7RKM5.js +500 -0
- package/dist/chunk-S2MNWFAG.js +52 -0
- package/dist/chunk-S2VQCZO4.js +22 -0
- package/dist/chunk-S54MKU6V.js +117 -0
- package/dist/chunk-S77XPALC.js +239 -0
- package/dist/chunk-SCW4ZF6R.js +150 -0
- package/dist/chunk-SKHGYQ7W.js +405 -0
- package/dist/chunk-SNLBO4BF.js +247 -0
- package/dist/chunk-SP3LFU6B.js +60 -0
- package/dist/chunk-SQZRPY23.js +5181 -0
- package/dist/chunk-SSB5UQHA.js +4128 -0
- package/dist/chunk-STJOHHSF.js +605 -0
- package/dist/chunk-STV6LYYE.js +45 -0
- package/dist/chunk-SUN4OFTW.js +740 -0
- package/dist/chunk-SURZ2WFE.js +326 -0
- package/dist/chunk-SUZ7UYZH.js +1972 -0
- package/dist/chunk-SZ7DL357.js +1047 -0
- package/dist/chunk-T2SZELJL.js +624 -0
- package/dist/chunk-T6VPI2XP.js +10338 -0
- package/dist/chunk-TAJPCXSB.js +13 -0
- package/dist/chunk-TAOOYK3P.js +358 -0
- package/dist/chunk-TDSEX5CF.js +24 -0
- package/dist/chunk-TFTGP7Z7.js +174 -0
- package/dist/chunk-TGON4N4O.js +197 -0
- package/dist/chunk-TIBZPAD2.js +9924 -0
- package/dist/chunk-TK644IOG.js +1813 -0
- package/dist/chunk-TRSVUPCX.js +25 -0
- package/dist/chunk-TSPQONRT.js +4533 -0
- package/dist/chunk-TSXGRLPR.js +107 -0
- package/dist/chunk-TWYLVAS2.js +152 -0
- package/dist/chunk-U2S3YEX3.js +224 -0
- package/dist/chunk-U32HWI76.js +437 -0
- package/dist/chunk-U45RTRGY.js +818 -0
- package/dist/chunk-U62VCQGR.js +49 -0
- package/dist/chunk-UDMS5AD3.js +307 -0
- package/dist/chunk-UGX7GI37.js +94 -0
- package/dist/chunk-UH3JJSHK.js +1 -0
- package/dist/chunk-UHRBTZYY.js +208 -0
- package/dist/chunk-UHT2KRG5.js +193 -0
- package/dist/chunk-UI2F6DJ5.js +118 -0
- package/dist/chunk-UKMAFG7A.js +189 -0
- package/dist/chunk-UUH2RVKS.js +585 -0
- package/dist/chunk-UVBBFDFQ.js +270 -0
- package/dist/chunk-UXZF3B7T.js +75 -0
- package/dist/chunk-V6YLL5WA.js +3746 -0
- package/dist/chunk-V72RMBM4.js +48 -0
- package/dist/chunk-VBNCKCCI.js +16 -0
- package/dist/chunk-VCAUV5XQ.js +3679 -0
- package/dist/chunk-VDSH7O4Y.js +152 -0
- package/dist/chunk-VNSYKC25.js +24 -0
- package/dist/chunk-VTLNJQ44.js +133 -0
- package/dist/chunk-VV6HOXRC.js +302 -0
- package/dist/chunk-VVGEPBPS.js +218 -0
- package/dist/chunk-VXF4Q3FW.js +20 -0
- package/dist/chunk-W3ZGW3C5.js +331 -0
- package/dist/chunk-W4OMESPG.js +271 -0
- package/dist/chunk-WDUORIHF.js +877 -0
- package/dist/chunk-WDVTY4U6.js +148 -0
- package/dist/chunk-WGXYDLMX.js +4386 -0
- package/dist/chunk-WMPU2UOV.js +82 -0
- package/dist/chunk-WOEVVPDP.js +1125 -0
- package/dist/chunk-WTLMSPBQ.js +256 -0
- package/dist/chunk-X43NMU4Z.js +1124 -0
- package/dist/chunk-X5NTI5U5.js +368 -0
- package/dist/chunk-X6UIEADS.js +949 -0
- package/dist/chunk-XAONGNST.js +57 -0
- package/dist/chunk-XB5YLCLB.js +13 -0
- package/dist/chunk-XGYF2QMZ.js +351 -0
- package/dist/chunk-XHEKQENB.js +255 -0
- package/dist/chunk-XPHKYHO4.js +878 -0
- package/dist/chunk-XQD2B6BB.js +507 -0
- package/dist/chunk-XT2ZQVTC.js +558 -0
- package/dist/chunk-XUSRFFA7.js +1859 -0
- package/dist/chunk-XUXVDPSZ.js +50 -0
- package/dist/chunk-XV7NZL4B.js +57 -0
- package/dist/chunk-XXCGJGSQ.js +121 -0
- package/dist/chunk-XYGDZCB5.js +659 -0
- package/dist/chunk-XZAMZUX5.js +992 -0
- package/dist/chunk-XZE4XARH.js +563 -0
- package/dist/chunk-Y34DUC4A.js +1356 -0
- package/dist/chunk-Y3J4JMTU.js +61 -0
- package/dist/chunk-Y4RC2YFX.js +1270 -0
- package/dist/chunk-Y55LZN5U.js +52 -0
- package/dist/chunk-Y5677NDO.js +183 -0
- package/dist/chunk-YESZJFK6.js +220 -0
- package/dist/chunk-YGXKOBQQ.js +292 -0
- package/dist/chunk-YMX76IOS.js +31 -0
- package/dist/chunk-YOTXESEH.js +257 -0
- package/dist/chunk-YQAAKTVH.js +712 -0
- package/dist/chunk-YVORHQ2S.js +579 -0
- package/dist/chunk-YWNAHW24.js +1552 -0
- package/dist/chunk-Z476RATD.js +1689 -0
- package/dist/chunk-ZDTGECTN.js +235 -0
- package/dist/chunk-ZDTMICNY.js +316 -0
- package/dist/chunk-ZIPWI2LY.js +151 -0
- package/dist/chunk-ZIVYXF7A.js +2344 -0
- package/dist/chunk-ZX65UI5W.js +78 -0
- package/dist/chunk-ZYG7GGKO.js +218 -0
- package/dist/chunk-ZZZUL4OF.js +38 -0
- package/dist/cli-utils-HUOTBRM3.js +40 -0
- package/dist/cli-validation-WLXWLUJL.js +111 -0
- package/dist/commit-utils-3QV2P6RA.js +202 -0
- package/dist/compete-config-resolver-SNH3TT2Q.js +76 -0
- package/dist/compete-request-XWNPOARL.js +364 -0
- package/dist/compete-results-PAP67LDR.js +208 -0
- package/dist/competition-outcome-tracker-GOZXNAQU.js +38 -0
- package/dist/config-HWHUNA72.js +166 -0
- package/dist/config-audit-EL3GHXS7.js +360 -0
- package/dist/config-explain-TNILDEVJ.js +12 -0
- package/dist/config-loader-VPFPFO4B.js +38 -0
- package/dist/config-manager-L3VRNTSG.js +67 -0
- package/dist/config-validator-SIIQEOFQ.js +72 -0
- package/dist/cost-7CX37DU3.js +53 -0
- package/dist/coverage-orchestrator-MNKHD6YC.js +772 -0
- package/dist/coverage-scanner-YVD62MLH.js +12 -0
- package/dist/createCompetitionRunner-LJG6ZQSO.js +46 -0
- package/dist/data-migration-state-VJK64DLT.js +31 -0
- package/dist/db-migrator-XSEIOGWY.js +34 -0
- package/dist/discovery-JGYGDD25.js +25 -0
- package/dist/doctor-CGBCD7IQ.js +186 -0
- package/dist/domain-analyzer-DL6BDR2N.js +29 -0
- package/dist/ensure-initialized-4BY73HLE.js +52 -0
- package/dist/entry.js +940 -0
- package/dist/environment-IGVH5X53.js +81 -0
- package/dist/error-parser-core-PPZ36A4S.js +50 -0
- package/dist/escalation-ladder-NWY5BJ57.js +130 -0
- package/dist/evaluation-context-KMWDSDYD.js +35 -0
- package/dist/evidence-plan-resolver-YIVH76PU.js +85 -0
- package/dist/execution-data-writer-OHAQ7G5H.js +53 -0
- package/dist/execution-policy-applier-ZHD3DCF3.js +31 -0
- package/dist/execution-preflight-Z4Y64V3I.js +209 -0
- package/dist/execution-roles-KBH2MC3M.js +66 -0
- package/dist/exit-code-error-Z4SW2DVK.js +14 -0
- package/dist/external-temp-cleanup-N2RZH4QP.js +311 -0
- package/dist/factory-IYBMCZG7.js +149 -0
- package/dist/file-utils-XIVR2ZMA.js +47 -0
- package/dist/flywheel-autoloop-executor-R3KD2G4D.js +249 -0
- package/dist/flywheel-competition-executor-XCFGVJSK.js +259 -0
- package/dist/flywheel-executor-LTSIZN2L.js +369 -0
- package/dist/flywheel-git-isolation-CZ5YVVZY.js +48 -0
- package/dist/flywheel-manifest-5UC4VBMA.js +108 -0
- package/dist/flywheel-model-defaults-7CVKP53V.js +27 -0
- package/dist/flywheel-preflight-6E33DJDK.js +104 -0
- package/dist/flywheel-resume-7HELH7QS.js +23 -0
- package/dist/flywheel-safety-7U7DPOAP.js +28 -0
- package/dist/flywheel-scope-decision-ZHKF6ZIN.js +11 -0
- package/dist/get-telemetry-logger-AZ46EPRP.js +73 -0
- package/dist/git-worktree-IY6V6DUO.js +18 -0
- package/dist/github-pr-manager-4XUO2YTM.js +211 -0
- package/dist/guidance-profile-config-E7XJL2VP.js +117 -0
- package/dist/guidance-profile-renderer-QK2YMAAP.js +21 -0
- package/dist/index-query-4JEUKA44.js +31 -0
- package/dist/index.js +108644 -0
- package/dist/instructions-CM6THDV7.js +64 -0
- package/dist/invoke-provider-auth-V5TC5UDS.js +223 -0
- package/dist/judge-scoring.json +80 -0
- package/dist/judge-test.js +555 -0
- package/dist/lab-mode-OTWVHN63.js +39 -0
- package/dist/lab-utils-VA6VXNOV.js +23 -0
- package/dist/linux-host-class-UY4KVLFD.js +29 -0
- package/dist/llm-judge-executor-34YPIRJ7.js +133 -0
- package/dist/local-executor-LJJSCWZX.js +223 -0
- package/dist/logger-6PRYM56M.js +72 -0
- package/dist/loop-spec-XTLQAVZ7.js +191 -0
- package/dist/manager-2HJG5CLT.js +25 -0
- package/dist/matrix-prompt-builder-LHDTJ4TY.js +497 -0
- package/dist/matrix-result-parser-7W35EUOV.js +15 -0
- package/dist/metadata-HQ43NDEK.js +22 -0
- package/dist/model-invocations-db-QBO4Y7WZ.js +38 -0
- package/dist/monitor-MCI3F4PX.js +72 -0
- package/dist/next-HQKDXIIR.js +90 -0
- package/dist/next-JC3V2UCS.js +69 -0
- package/dist/optimization-config-resolver-QPSFLCJU.js +75 -0
- package/dist/package-3YCWIQQ5.js +10 -0
- package/dist/parallel-orchestrator-NL7YJJU2.js +297 -0
- package/dist/parallel-worker.js +279 -0
- package/dist/parse-git-status-PIAF3OTP.js +10 -0
- package/dist/path-security-ETTH6TZL.js +39 -0
- package/dist/pattern-bank-UNJR5ADV.js +15 -0
- package/dist/plan-backlog-list-fast-DZK24LSZ.js +270 -0
- package/dist/plan-backlog-show-fast-63GBBH6Q.js +406 -0
- package/dist/plan-sprint-list-fast-TJ6ZUF5E.js +162 -0
- package/dist/plan-sprint-status-fast-YWE5X3NG.js +208 -0
- package/dist/plan-task-status-fast-K22BTTBW.js +349 -0
- package/dist/plan-to-flywheel-VFGCPINA.js +456 -0
- package/dist/planning-backlog-Y6TIJYWU.js +319 -0
- package/dist/poetic-root-V5DNXEAE.js +17 -0
- package/dist/preflight-OPANWMME.js +12 -0
- package/dist/process-registry-PDZJPTAS.js +27 -0
- package/dist/process-scanner-C22SYXYD.js +22 -0
- package/dist/processes-KMQUD7HY.js +29 -0
- package/dist/processes-json-fast-IBDXZ6WW.js +135 -0
- package/dist/profile-2XP3FWH2.js +149 -0
- package/dist/prompts-EPAAAMMF.js +168 -0
- package/dist/protected-branches-RNTEX7ET.js +57 -0
- package/dist/provider-aware-resource-manager-QBTZJMNP.js +18 -0
- package/dist/provider-matrix-KWTYA5QV.js +154 -0
- package/dist/provider-matrix-renderer-MZDWKKID.js +139 -0
- package/dist/provider-output-forwarding-DERID3TP.js +30 -0
- package/dist/provider-registry-J5NRBJKI.js +128 -0
- package/dist/provider-temp-cleanup-KYGLF6YU.js +14 -0
- package/dist/prune-engine-Q6E2DXBN.js +451 -0
- package/dist/quality-gate-33SHK43X.js +70 -0
- package/dist/quickstart-E32SODTA.js +62 -0
- package/dist/readiness-REWW7OSV.js +96 -0
- package/dist/registry-N6L36RE2.js +153 -0
- package/dist/repair-helpers-TTV5FEF4.js +117 -0
- package/dist/repo-root-2IGD4H7X.js +22 -0
- package/dist/resolution-engine-LXQYDSKS.js +127 -0
- package/dist/resolve-provider-cli-O2P6XZBZ.js +35 -0
- package/dist/restore-telemetry-db-BQL6DTQF.js +360 -0
- package/dist/result-streamer-WEHW476R.js +19 -0
- package/dist/routing-events-DHPUZDDF.js +27 -0
- package/dist/routing-history-store-UWCEXAP3.js +46 -0
- package/dist/routing-planner-VGQU35QM.js +160 -0
- package/dist/run-poetic-tui-ZZXFDOQ4.js +13517 -0
- package/dist/run-simulation.js +376 -0
- package/dist/runner-2YPKOJ6A.js +1092 -0
- package/dist/runner-HEJJ65AJ.js +1571 -0
- package/dist/safety-OCC4KJJR.js +64 -0
- package/dist/safety-stanza-BSVE6OJU.js +60 -0
- package/dist/sandbox-3AG2WJLM.js +94 -0
- package/dist/sandbox-5JOFBS75.js +81 -0
- package/dist/schema-extensions.sql +234 -0
- package/dist/security-2KI5XNDG.js +17 -0
- package/dist/setup-bb-plugin-QAQWZCV5.js +738 -0
- package/dist/setup-claude-code-P7BTTSPO.js +317 -0
- package/dist/setup-temp-cleanup-GASCWZ2I.js +20 -0
- package/dist/shared-utils-D6U6UREP.js +37 -0
- package/dist/simple-artifact-goal-OTXNGZY6.js +25 -0
- package/dist/sprint-QGXLN3SO.js +338 -0
- package/dist/sprint-bridge-FNKQCJGL.js +68 -0
- package/dist/sprint-execution-service-4ELKNJDS.js +311 -0
- package/dist/sprint-manager-7TNCXCIX.js +91 -0
- package/dist/sqlite-wrapper-UDWCTNLJ.js +17 -0
- package/dist/stale-cleanup-orchestrator-H5XKGZP2.js +62 -0
- package/dist/storage-access-F6ALDN4S.js +22 -0
- package/dist/synthesis-TGQUVAW3.js +185 -0
- package/dist/task-classifier-DZIRBSS2.js +494 -0
- package/dist/task-list-fast-PJ2EXVZE.js +147 -0
- package/dist/task-manager-5742GMJK.js +93 -0
- package/dist/task-splitter-6MBXSWF6.js +79 -0
- package/dist/task-type-detector-OLVOMXZO.js +21 -0
- package/dist/task-type-resolver-4HG6TXFV.js +42 -0
- package/dist/telemetry-JX7EMNOZ.js +131 -0
- package/dist/telemetry-health-tracker-DMSSGBZ2.js +11 -0
- package/dist/telemetry-path-resolver-7ICSG276.js +28 -0
- package/dist/telemetry-reliability-2MLJ4J6B.js +125 -0
- package/dist/token-estimator-PDU345YE.js +37 -0
- package/dist/transports-3UEO6C5Y.js +255 -0
- package/dist/unified-cost-tracker-F3W5NMPG.js +35 -0
- package/dist/unified-state-cleanup-LJPF2BOW.js +276 -0
- package/dist/universal-cost-calculator-BAJV35GA.js +42 -0
- package/dist/user-agents-GHUGCSKN.js +22 -0
- package/dist/variant-delivery-state-XCOYVCM4.js +33 -0
- package/dist/variant-state-cleanup-QIEKRULB.js +280 -0
- package/dist/variant-success-PJXWE3ZV.js +12 -0
- package/dist/variant-worker-HPTUA37Z.js +4196 -0
- package/dist/variant-worker.js +24 -0
- package/dist/variants-2HDYZOCG.js +233 -0
- package/dist/verification-toolchains-VVKT3GBF.js +28 -0
- package/dist/verify-commands-5F6CJV4B.js +37 -0
- package/dist/warning-EGQGUUIO.js +12 -0
- package/dist/work-edge-RWEDWJZF.js +49 -0
- package/dist/work-item-writer-WHAVZXAY.js +19 -0
- package/dist/worker-AGWHD4D2.js +1435 -0
- package/dist/worker.js +19 -0
- package/dist/worktree-metrics-3DFUYVYE.js +26 -0
- package/dist/writeback-VZKHYHSN.js +44 -0
- package/docs/CLI_REFERENCE.md +7040 -0
- package/docs/PROVIDER_SETUP.md +1570 -0
- package/docs/README.md +96 -0
- package/docs/TROUBLESHOOTING.md +2232 -0
- package/docs/getting-started/QUICK_START.md +294 -0
- package/docs/getting-started/README.md +188 -0
- package/docs/getting-started/SETUP.md +52 -0
- package/docs/reference/AGENT_CONTEXT.md +38 -0
- package/docs/reference/PROVIDER_RELEASE_TIERS.md +34 -0
- package/docs/reference/README.md +381 -0
- package/docs/reference/SECURITY.md +262 -0
- package/integrations/bb-plugin-poetic/README.md +362 -0
- package/integrations/bb-plugin-poetic/app.css +341 -0
- package/integrations/bb-plugin-poetic/app.tsx +5059 -0
- package/integrations/bb-plugin-poetic/package.json +45 -0
- package/integrations/bb-plugin-poetic/server.ts +444 -0
- package/integrations/bb-plugin-poetic/src/adapter.ts +3312 -0
- package/integrations/bb-plugin-poetic/src/backlog-authoring-model.ts +150 -0
- package/integrations/bb-plugin-poetic/src/backlog-authoring-schema.ts +355 -0
- package/integrations/bb-plugin-poetic/src/backlog-authoring-service.ts +419 -0
- package/integrations/bb-plugin-poetic/src/backlog-authoring-view.ts +1026 -0
- package/integrations/bb-plugin-poetic/src/competition-defaults-schema.ts +122 -0
- package/integrations/bb-plugin-poetic/src/competition-defaults-service.ts +105 -0
- package/integrations/bb-plugin-poetic/src/competition-defaults-view.ts +138 -0
- package/integrations/bb-plugin-poetic/src/contract.ts +615 -0
- package/integrations/bb-plugin-poetic/src/finalize-model.ts +205 -0
- package/integrations/bb-plugin-poetic/src/finalize-schema.ts +158 -0
- package/integrations/bb-plugin-poetic/src/finalize-service.ts +382 -0
- package/integrations/bb-plugin-poetic/src/finalize-view.ts +159 -0
- package/integrations/bb-plugin-poetic/src/judge-operations-readback.ts +303 -0
- package/integrations/bb-plugin-poetic/src/judge-operations-schema.ts +33 -0
- package/integrations/bb-plugin-poetic/src/judge-operations-view.ts +459 -0
- package/integrations/bb-plugin-poetic/src/model.ts +1302 -0
- package/integrations/bb-plugin-poetic/src/monitor-service.ts +233 -0
- package/integrations/bb-plugin-poetic/src/panel-read-ux.ts +97 -0
- package/integrations/bb-plugin-poetic/src/patch-preview-schema.ts +166 -0
- package/integrations/bb-plugin-poetic/src/patch-preview-service.ts +480 -0
- package/integrations/bb-plugin-poetic/src/patch-preview-view.ts +109 -0
- package/integrations/bb-plugin-poetic/src/planning-readback.ts +204 -0
- package/integrations/bb-plugin-poetic/src/planning-service.ts +594 -0
- package/integrations/bb-plugin-poetic/src/planning-workspace-schema.ts +95 -0
- package/integrations/bb-plugin-poetic/src/planning-workspace.ts +323 -0
- package/integrations/bb-plugin-poetic/src/poll-handoff.ts +136 -0
- package/integrations/bb-plugin-poetic/src/project-target-server.ts +21 -0
- package/integrations/bb-plugin-poetic/src/project-target.ts +45 -0
- package/integrations/bb-plugin-poetic/src/reference-index.ts +192 -0
- package/integrations/bb-plugin-poetic/src/repository-schema.ts +30 -0
- package/integrations/bb-plugin-poetic/src/result-explorer-view.ts +597 -0
- package/integrations/bb-plugin-poetic/src/result-readback-model.ts +163 -0
- package/integrations/bb-plugin-poetic/src/result-readback-schema.ts +319 -0
- package/integrations/bb-plugin-poetic/src/result-readback-service.ts +333 -0
- package/integrations/bb-plugin-poetic/src/run-page-view.ts +177 -0
- package/integrations/bb-plugin-poetic/src/setup-config-schema.ts +291 -0
- package/integrations/bb-plugin-poetic/src/setup-config-service.ts +590 -0
- package/integrations/bb-plugin-poetic/src/setup-config-view.ts +413 -0
- package/integrations/bb-plugin-poetic/src/sprint-close-model.ts +150 -0
- package/integrations/bb-plugin-poetic/src/sprint-close-schema.ts +136 -0
- package/integrations/bb-plugin-poetic/src/sprint-close-service.ts +341 -0
- package/integrations/bb-plugin-poetic/src/sprint-close-view.ts +116 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-model.ts +714 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-readback.ts +231 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-schema.ts +601 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-service.ts +775 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-view.ts +1221 -0
- package/integrations/bb-plugin-poetic/src/task-authoring-model.ts +567 -0
- package/integrations/bb-plugin-poetic/src/task-authoring-schema.ts +635 -0
- package/integrations/bb-plugin-poetic/src/task-authoring-service.ts +842 -0
- package/integrations/bb-plugin-poetic/src/task-authoring-view.ts +1227 -0
- package/integrations/bb-plugin-poetic/src/task-detail-readback.ts +56 -0
- package/integrations/bb-plugin-poetic/src/task-detail-schema.ts +144 -0
- package/integrations/bb-plugin-poetic/src/task-navigation.ts +446 -0
- package/integrations/bb-plugin-poetic/src/workbench-route.ts +74 -0
- package/integrations/bb-plugin-poetic/tests/host-contract.test.ts +773 -0
- package/integrations/bb-plugin-poetic/tsconfig.json +18 -0
- package/integrations/bb-plugin-poetic/types/PROVENANCE.json +52 -0
- package/integrations/bb-plugin-poetic/types/bb-plugin-sdk-app.d.ts +1444 -0
- package/integrations/bb-plugin-poetic/types/bb-plugin-sdk.d.ts +13030 -0
- package/integrations/bb-plugin-poetic/vitest.host.config.ts +71 -0
- package/package.json +331 -0
- package/schemas/README.md +80 -0
- package/schemas/config-v1.schema.json +136 -0
- package/schemas/execution-config.schema.json +47 -0
- package/schemas/judge-scoring.schema.json +370 -0
- package/schemas/poetic.config.schema.json +2214 -0
- package/schemas/provider-config.schema.json +203 -0
- package/schemas/telemetry-config.schema.json +79 -0
- package/schemas/user-preferences.schema.json +141 -0
- package/scripts/assert-node-runtime.mjs +140 -0
- package/scripts/preflight-native.mjs +49 -0
- package/scripts/preinstall-node-check.mjs +78 -0
- package/scripts/setup-git-hooks.mjs +24 -0
- package/scripts/sync.sh +2722 -0
- package/scripts/write-node-launcher.sh +108 -0
- package/src/resources/gemini/slash-packs/default/plan.toml +15 -0
- package/src/resources/gemini/slash-packs/default/summary.toml +16 -0
- package/src/resources/gemini/slash-packs/default/tests.toml +16 -0
- package/templates/.poetic/README.md +37 -0
- package/templates/.poetic/agents/README.md +296 -0
- package/templates/.poetic/agents/api-documenter.md +147 -0
- package/templates/.poetic/agents/backend-architect.md +31 -0
- package/templates/.poetic/agents/code-reviewer.md +157 -0
- package/templates/.poetic/agents/data-scientist.md +179 -0
- package/templates/.poetic/agents/database-optimizer.md +145 -0
- package/templates/.poetic/agents/debugger.md +31 -0
- package/templates/.poetic/agents/deployment-engineer.md +164 -0
- package/templates/.poetic/agents/devops-troubleshooter.md +139 -0
- package/templates/.poetic/agents/frontend-developer.md +150 -0
- package/templates/.poetic/agents/javascript-pro.md +36 -0
- package/templates/.poetic/agents/performance-engineer.md +151 -0
- package/templates/.poetic/agents/python-pro.md +137 -0
- package/templates/.poetic/agents/test-automator.md +147 -0
- package/templates/.poetic/agents/typescript-pro.md +34 -0
- package/templates/.poetic/config/poetic.config.jsonc +69 -0
- package/templates/.poetic/config/project-context.template.json +6 -0
- package/templates/.poetic/config/task-type-aliases.presets/kanban.yaml +14 -0
- package/templates/.poetic/config/task-type-aliases.presets/scrum.yaml +17 -0
- package/templates/.poetic/config/task-type-aliases.presets/xp.yaml +12 -0
- package/templates/.poetic/config/task-type-aliases.yaml +28 -0
- package/templates/.poetic/gitignore.template +55 -0
- package/templates/.poetic/task-types/analysis.yaml +40 -0
- package/templates/.poetic/task-types/architecture.yaml +38 -0
- package/templates/.poetic/task-types/doc.yaml +35 -0
- package/templates/.poetic/task-types/feature.yaml +23 -0
- package/templates/.poetic/task-types/general.yaml +6 -0
- package/templates/.poetic/task-types/security.yaml +39 -0
- package/templates/AGENTS.template.md +99 -0
- package/templates/CLAUDE.template.md +1 -0
- package/templates/GEMINI.template.md +1 -0
- package/templates/builtin-workflows/code-review.yaml +73 -0
- package/templates/builtin-workflows/compete-streak.yaml +78 -0
- package/templates/builtin-workflows/hello-verify.yaml +10 -0
- package/templates/builtin-workflows/judge-regression.yaml +114 -0
- package/templates/builtin-workflows/skills/code-review/SKILL.md +60 -0
- package/templates/builtin-workflows/skills/hello-verify/SKILL.md +6 -0
- package/templates/guard-kit/GUARD_SETUP.md.template +255 -0
- package/templates/guard-kit/check.mjs.template +777 -0
- package/templates/guard-kit/config.json.template +6 -0
- package/templates/guard-kit/poetic-guard.yml.template +189 -0
- package/templates/profiles/README.md +56 -0
- package/templates/profiles/frontier-claude.json +27 -0
- package/templates/profiles/frontier-codex.json +26 -0
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
import {
|
|
2
|
+
classifyFailureEnvelope
|
|
3
|
+
} from "./chunk-NWRUSEXG.js";
|
|
4
|
+
import {
|
|
5
|
+
runSemanticPrompt
|
|
6
|
+
} from "./chunk-G2PTLLEL.js";
|
|
7
|
+
import {
|
|
8
|
+
signalCoordinator
|
|
9
|
+
} from "./chunk-72YTZMAM.js";
|
|
10
|
+
import {
|
|
11
|
+
parseJsonWithContext
|
|
12
|
+
} from "./chunk-QVZMFDYG.js";
|
|
13
|
+
import {
|
|
14
|
+
mkPoeticTempDirSync
|
|
15
|
+
} from "./chunk-C57KJOUQ.js";
|
|
16
|
+
import {
|
|
17
|
+
atomicWriteJson
|
|
18
|
+
} from "./chunk-A3YGID55.js";
|
|
19
|
+
import {
|
|
20
|
+
getRuntimeEnv
|
|
21
|
+
} from "./chunk-ENRGKNR5.js";
|
|
22
|
+
import {
|
|
23
|
+
mergeExecutionContextEnvOverrides
|
|
24
|
+
} from "./chunk-UI2F6DJ5.js";
|
|
25
|
+
import {
|
|
26
|
+
debugLog,
|
|
27
|
+
emitWarning
|
|
28
|
+
} from "./chunk-EJGCZGUF.js";
|
|
29
|
+
import {
|
|
30
|
+
POETIC_ALLOW_MOCK_PROVIDERS,
|
|
31
|
+
POETIC_MOCK_PROVIDERS,
|
|
32
|
+
readEnv
|
|
33
|
+
} from "./chunk-5DLKYTQX.js";
|
|
34
|
+
|
|
35
|
+
// src/core/safety/recursion-tracker.ts
|
|
36
|
+
import { chmodSync, existsSync, rmSync, unlinkSync } from "fs";
|
|
37
|
+
import { chmod, mkdir, readFile, rm, unlink } from "fs/promises";
|
|
38
|
+
import { join } from "path";
|
|
39
|
+
var RecursionTracker = class {
|
|
40
|
+
stateDir;
|
|
41
|
+
stateFile;
|
|
42
|
+
maxDepth;
|
|
43
|
+
currentState = null;
|
|
44
|
+
previousStateFile;
|
|
45
|
+
cleanupHandlers = [];
|
|
46
|
+
/**
|
|
47
|
+
* Number of live, unbalanced `enter()` calls in THIS process. The tracker is a
|
|
48
|
+
* per-process singleton, so overlapping in-process competitions share one
|
|
49
|
+
* instance. Only the FIRST `enter()`
|
|
50
|
+
* establishes the depth/state file and only the LAST `exit()` tears it down;
|
|
51
|
+
* intermediate calls just adjust this count. This makes enter()/exit() safe to
|
|
52
|
+
* call from independent concurrent invocations without one clearing another's
|
|
53
|
+
* state. NOTE: the cross-PROCESS recursion DEPTH (the exponential-spawn guard)
|
|
54
|
+
* is unchanged — it is still derived once, on the first entry, from the parent
|
|
55
|
+
* state file; this counter only governs local teardown ordering.
|
|
56
|
+
*/
|
|
57
|
+
activeEntries = 0;
|
|
58
|
+
/**
|
|
59
|
+
* Single-flight guard for first-entry establishment. The first concurrent
|
|
60
|
+
* `enter()` that finds no `currentState` runs the establishment work (read
|
|
61
|
+
* parent state file → derive depth → write our state file → set the child env
|
|
62
|
+
* pointer) exactly once; any other entrant that arrives while it is in flight
|
|
63
|
+
* awaits THIS promise instead of re-deriving depth. Without it, two concurrent
|
|
64
|
+
* first entries would both pass the `currentState === null` check and the
|
|
65
|
+
* second could read the first's just-written state file as its "parent",
|
|
66
|
+
* inflating depth to 1 for same-process concurrency. Cleared once settled so a
|
|
67
|
+
* later entry can retry if establishment failed.
|
|
68
|
+
*/
|
|
69
|
+
establishmentInFlight = null;
|
|
70
|
+
constructor(maxDepth = 2) {
|
|
71
|
+
this.stateDir = mkPoeticTempDirSync("recursion");
|
|
72
|
+
chmodSync(this.stateDir, 448);
|
|
73
|
+
this.stateFile = join(this.stateDir, `recursion-${process.pid}.json`);
|
|
74
|
+
this.maxDepth = maxDepth;
|
|
75
|
+
this.registerCleanupHandlers();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Initialize recursion tracking for this process.
|
|
79
|
+
* Checks if we're exceeding recursion limits.
|
|
80
|
+
*
|
|
81
|
+
* @throws Error if recursion depth exceeded
|
|
82
|
+
* @returns Current depth after increment
|
|
83
|
+
*/
|
|
84
|
+
async enter() {
|
|
85
|
+
this.activeEntries += 1;
|
|
86
|
+
try {
|
|
87
|
+
if (this.currentState) {
|
|
88
|
+
return this.currentState.depth;
|
|
89
|
+
}
|
|
90
|
+
if (!this.establishmentInFlight) {
|
|
91
|
+
this.establishmentInFlight = this.establish();
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const state = await this.establishmentInFlight;
|
|
95
|
+
return state.depth;
|
|
96
|
+
} finally {
|
|
97
|
+
this.establishmentInFlight = null;
|
|
98
|
+
}
|
|
99
|
+
} catch (err) {
|
|
100
|
+
this.activeEntries -= 1;
|
|
101
|
+
throw err;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* One-time first-entry establishment: read the parent state file, derive this
|
|
106
|
+
* process's depth, enforce the recursion limit, persist our state, and point
|
|
107
|
+
* children at it. Runs at most once concurrently (guarded by
|
|
108
|
+
* `establishmentInFlight`); the result is shared by all concurrent first
|
|
109
|
+
* entrants so they observe the same depth.
|
|
110
|
+
*/
|
|
111
|
+
async establish() {
|
|
112
|
+
await this.ensureStateDir();
|
|
113
|
+
const parentStateFile = getRuntimeEnv("POETIC_RECURSION_STATE_FILE");
|
|
114
|
+
let parentState = null;
|
|
115
|
+
if (parentStateFile) {
|
|
116
|
+
try {
|
|
117
|
+
const content = await readFile(parentStateFile, "utf8");
|
|
118
|
+
parentState = parseJsonWithContext(content, "parent recursion state file");
|
|
119
|
+
} catch (_err) {
|
|
120
|
+
parentState = null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const currentDepth = parentState ? parentState.depth + 1 : 0;
|
|
124
|
+
if (currentDepth >= this.maxDepth) {
|
|
125
|
+
throw new Error(
|
|
126
|
+
`Alert: RECURSION LIMIT EXCEEDED
|
|
127
|
+
|
|
128
|
+
Maximum recursion depth: ${this.maxDepth}
|
|
129
|
+
Current depth: ${currentDepth}
|
|
130
|
+
Parent PIDs: ${parentState?.parentPids.join(" \u2192 ") || "none"}
|
|
131
|
+
|
|
132
|
+
This safety limit prevents exponential process growth that could crash your system.
|
|
133
|
+
Poetic detected nested parallel execution or recursive task spawning.
|
|
134
|
+
|
|
135
|
+
Solution:
|
|
136
|
+
- Use --fan-out only at the top level, not in sub-agents
|
|
137
|
+
- Check if your task accidentally spawns nested Poetic commands
|
|
138
|
+
- Increase limit with POETIC_MAX_RECURSION_DEPTH env var (not recommended)
|
|
139
|
+
`
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
const state = {
|
|
143
|
+
depth: currentDepth,
|
|
144
|
+
maxDepth: this.maxDepth,
|
|
145
|
+
parentPids: [...parentState?.parentPids || [], process.pid],
|
|
146
|
+
timestamp: Date.now()
|
|
147
|
+
};
|
|
148
|
+
this.currentState = state;
|
|
149
|
+
await atomicWriteJson(this.stateFile, state);
|
|
150
|
+
this.previousStateFile = parentStateFile;
|
|
151
|
+
mergeExecutionContextEnvOverrides({
|
|
152
|
+
POETIC_RECURSION_STATE_FILE: this.stateFile
|
|
153
|
+
});
|
|
154
|
+
return state;
|
|
155
|
+
}
|
|
156
|
+
/** Active state-file pointer to propagate to child execution contexts. */
|
|
157
|
+
getStateFilePath() {
|
|
158
|
+
return this.currentState ? this.stateFile : void 0;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Clean up recursion state for this process.
|
|
162
|
+
* Called automatically on process exit.
|
|
163
|
+
*
|
|
164
|
+
* Ref-counted: balances one `enter()`. When more than one live entry remains
|
|
165
|
+
* (concurrent/nested in-process invocations), this only decrements the count
|
|
166
|
+
* and returns WITHOUT tearing down, so one invocation cannot clear state that
|
|
167
|
+
* another still depends on. Only the last balancing `exit()` removes the state
|
|
168
|
+
* file and restores the parent env pointer.
|
|
169
|
+
*
|
|
170
|
+
* @param opts.force - Tear down immediately regardless of the live-entry count
|
|
171
|
+
* (used by full-reset and signal/process-exit cleanup, where the whole
|
|
172
|
+
* process is being reset or terminated). Default false.
|
|
173
|
+
*/
|
|
174
|
+
async exit(opts) {
|
|
175
|
+
if (!opts?.force && this.activeEntries > 1) {
|
|
176
|
+
this.activeEntries -= 1;
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
this.activeEntries = 0;
|
|
180
|
+
this.establishmentInFlight = null;
|
|
181
|
+
if (this.currentState) {
|
|
182
|
+
mergeExecutionContextEnvOverrides({
|
|
183
|
+
POETIC_RECURSION_STATE_FILE: this.previousStateFile
|
|
184
|
+
});
|
|
185
|
+
this.previousStateFile = void 0;
|
|
186
|
+
}
|
|
187
|
+
if (this.stateFile) {
|
|
188
|
+
try {
|
|
189
|
+
await unlink(this.stateFile);
|
|
190
|
+
} catch (err) {
|
|
191
|
+
const code = err?.code;
|
|
192
|
+
if (code === "ENOENT") {
|
|
193
|
+
this.currentState = null;
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
emitWarning(
|
|
197
|
+
"WS-003",
|
|
198
|
+
{
|
|
199
|
+
subsystem: "safety",
|
|
200
|
+
executionPhase: "cleanup"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
severity: "WARN" /* WARN */,
|
|
204
|
+
metadata: {
|
|
205
|
+
error: err instanceof Error ? err.message : String(err),
|
|
206
|
+
operation: "cleanupRecursionState",
|
|
207
|
+
stateFile: this.stateFile
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
this.currentState = null;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Get current recursion depth.
|
|
217
|
+
* Returns 0 if not yet entered.
|
|
218
|
+
*/
|
|
219
|
+
getDepth() {
|
|
220
|
+
return this.currentState?.depth ?? 0;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get maximum allowed recursion depth.
|
|
224
|
+
*/
|
|
225
|
+
getMaxDepth() {
|
|
226
|
+
return this.maxDepth;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get parent process PIDs for debugging.
|
|
230
|
+
*/
|
|
231
|
+
getParentPids() {
|
|
232
|
+
return this.currentState?.parentPids ?? [];
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Check if we can safely spawn child processes.
|
|
236
|
+
* Returns true if we're below recursion limit.
|
|
237
|
+
*/
|
|
238
|
+
canSpawnChildren() {
|
|
239
|
+
const currentDepth = this.currentState?.depth ?? 0;
|
|
240
|
+
return currentDepth < this.maxDepth - 1;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Ensure state directory exists with secure permissions.
|
|
244
|
+
*/
|
|
245
|
+
async ensureStateDir() {
|
|
246
|
+
if (!existsSync(this.stateDir)) {
|
|
247
|
+
await mkdir(this.stateDir, { recursive: true });
|
|
248
|
+
await chmod(this.stateDir, 448);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Register cleanup handlers for process exit.
|
|
253
|
+
*/
|
|
254
|
+
registerCleanupHandlers() {
|
|
255
|
+
signalCoordinator.register("RecursionTracker", async () => {
|
|
256
|
+
await this.exit({ force: true });
|
|
257
|
+
});
|
|
258
|
+
const exitHandler = () => {
|
|
259
|
+
if (this.stateFile && existsSync(this.stateFile)) {
|
|
260
|
+
try {
|
|
261
|
+
unlinkSync(this.stateFile);
|
|
262
|
+
} catch {
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
process.on("exit", exitHandler);
|
|
267
|
+
this.cleanupHandlers = [() => process.off("exit", exitHandler)];
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Clean up resources and remove event listeners.
|
|
271
|
+
* Also removes the temporary directory created in constructor.
|
|
272
|
+
*/
|
|
273
|
+
close() {
|
|
274
|
+
for (const cleanup of this.cleanupHandlers) {
|
|
275
|
+
try {
|
|
276
|
+
cleanup();
|
|
277
|
+
} catch (_error) {
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
this.cleanupHandlers = [];
|
|
281
|
+
if (this.stateDir && existsSync(this.stateDir)) {
|
|
282
|
+
try {
|
|
283
|
+
rmSync(this.stateDir, { recursive: true, force: true });
|
|
284
|
+
} catch (_error) {
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Async cleanup for temporary directory.
|
|
290
|
+
* Preferred over close() when async context is available.
|
|
291
|
+
*/
|
|
292
|
+
async closeAsync() {
|
|
293
|
+
for (const cleanup of this.cleanupHandlers) {
|
|
294
|
+
try {
|
|
295
|
+
cleanup();
|
|
296
|
+
} catch (_error) {
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
this.cleanupHandlers = [];
|
|
300
|
+
if (this.stateDir && existsSync(this.stateDir)) {
|
|
301
|
+
try {
|
|
302
|
+
await rm(this.stateDir, { recursive: true, force: true });
|
|
303
|
+
} catch (_error) {
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
var _globalRecursionTracker = null;
|
|
309
|
+
var DEFAULT_MAX_RECURSION_DEPTH = 2;
|
|
310
|
+
function parseMaxRecursionDepthEnv(value) {
|
|
311
|
+
if (value === void 0) {
|
|
312
|
+
return DEFAULT_MAX_RECURSION_DEPTH;
|
|
313
|
+
}
|
|
314
|
+
const normalized = value.trim();
|
|
315
|
+
if (!/^\d+$/.test(normalized)) {
|
|
316
|
+
return DEFAULT_MAX_RECURSION_DEPTH;
|
|
317
|
+
}
|
|
318
|
+
const parsed = Number(normalized);
|
|
319
|
+
return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : DEFAULT_MAX_RECURSION_DEPTH;
|
|
320
|
+
}
|
|
321
|
+
function resolveMaxRecursionDepth(override) {
|
|
322
|
+
if (override !== void 0) {
|
|
323
|
+
return Number.isSafeInteger(override) ? override : DEFAULT_MAX_RECURSION_DEPTH;
|
|
324
|
+
}
|
|
325
|
+
return parseMaxRecursionDepthEnv(getRuntimeEnv("POETIC_MAX_RECURSION_DEPTH"));
|
|
326
|
+
}
|
|
327
|
+
function getGlobalRecursionTracker(maxDepth) {
|
|
328
|
+
if (!_globalRecursionTracker) {
|
|
329
|
+
const depth = resolveMaxRecursionDepth(maxDepth);
|
|
330
|
+
_globalRecursionTracker = new RecursionTracker(depth);
|
|
331
|
+
}
|
|
332
|
+
return _globalRecursionTracker;
|
|
333
|
+
}
|
|
334
|
+
async function resetGlobalRecursionTracker() {
|
|
335
|
+
if (_globalRecursionTracker) {
|
|
336
|
+
await _globalRecursionTracker.exit({ force: true });
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
var globalRecursionTracker = new Proxy({}, {
|
|
340
|
+
get(_target, prop) {
|
|
341
|
+
if (prop === "reset") {
|
|
342
|
+
return resetGlobalRecursionTracker;
|
|
343
|
+
}
|
|
344
|
+
const tracker = getGlobalRecursionTracker();
|
|
345
|
+
const value = tracker[prop];
|
|
346
|
+
return typeof value === "function" ? value.bind(tracker) : value;
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
// src/orchestrator/autoloop-recovery.ts
|
|
351
|
+
var TERMINAL_ENVIRONMENT_FAILURES = /* @__PURE__ */ new Set([
|
|
352
|
+
"auth_unavailable",
|
|
353
|
+
"cli_missing",
|
|
354
|
+
"quota_exhausted",
|
|
355
|
+
"model_unavailable",
|
|
356
|
+
"sandbox_denied",
|
|
357
|
+
"invalid_configuration"
|
|
358
|
+
]);
|
|
359
|
+
var TRANSIENT_FAILURES = /* @__PURE__ */ new Set([
|
|
360
|
+
"idle_terminated",
|
|
361
|
+
"startup_timeout",
|
|
362
|
+
"transport_error",
|
|
363
|
+
"output_malformed",
|
|
364
|
+
"rate_limited"
|
|
365
|
+
]);
|
|
366
|
+
function isPositiveClassification(failure) {
|
|
367
|
+
return failure.confidence === "high" && (failure.evidenceSource === "typed" || failure.evidenceSource === "parsed");
|
|
368
|
+
}
|
|
369
|
+
function deriveDirectAutoloopRecovery(failure, options = {}) {
|
|
370
|
+
if (failure.category === "user_cancelled" && isPositiveClassification(failure)) {
|
|
371
|
+
return "operator_stop";
|
|
372
|
+
}
|
|
373
|
+
if (options.deliveryRescueEligible === true) {
|
|
374
|
+
return "delivery_rescue";
|
|
375
|
+
}
|
|
376
|
+
if (isPositiveClassification(failure) && TERMINAL_ENVIRONMENT_FAILURES.has(failure.category)) {
|
|
377
|
+
return "terminal_stop";
|
|
378
|
+
}
|
|
379
|
+
if (isPositiveClassification(failure) && TRANSIENT_FAILURES.has(failure.category) && failure.retryable === true && failure.mutationState === "none-observed") {
|
|
380
|
+
return "transport_retry";
|
|
381
|
+
}
|
|
382
|
+
return "agent_correction";
|
|
383
|
+
}
|
|
384
|
+
function serializeDirectAutoloopFailureRecovery(failure, disposition) {
|
|
385
|
+
return {
|
|
386
|
+
schemaVersion: 1,
|
|
387
|
+
failure: {
|
|
388
|
+
category: failure.category,
|
|
389
|
+
evidenceSource: failure.evidenceSource,
|
|
390
|
+
executionPhase: failure.executionPhase,
|
|
391
|
+
mutationState: failure.mutationState,
|
|
392
|
+
retryable: failure.retryable,
|
|
393
|
+
failoverEligible: failure.failoverEligible,
|
|
394
|
+
confidence: failure.confidence
|
|
395
|
+
},
|
|
396
|
+
recovery: { disposition }
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
var DirectAutoloopExecutionFailure = class extends Error {
|
|
400
|
+
failureEnvelope;
|
|
401
|
+
constructor(error, failureEnvelope, detail = "") {
|
|
402
|
+
super(`${error.message}${detail}`, { cause: error });
|
|
403
|
+
this.name = "DirectAutoloopExecutionFailure";
|
|
404
|
+
this.failureEnvelope = failureEnvelope;
|
|
405
|
+
}
|
|
406
|
+
};
|
|
407
|
+
function createDirectAutoloopCancellationFailure(error, executionPhase, mutationState = executionPhase === "post-run" ? "none-observed" : "unknown") {
|
|
408
|
+
return new DirectAutoloopExecutionFailure(
|
|
409
|
+
error,
|
|
410
|
+
classifyFailureEnvelope(
|
|
411
|
+
{ reason: "cancelled", message: error.message },
|
|
412
|
+
{ executionPhase, mutationState }
|
|
413
|
+
)
|
|
414
|
+
);
|
|
415
|
+
}
|
|
416
|
+
function createDirectAutoloopProviderFailure(error, filesModifiedCount, changedFilesReadable, detail = "") {
|
|
417
|
+
const mutationState = filesModifiedCount > 0 ? "observed" : changedFilesReadable ? "none-observed" : "unknown";
|
|
418
|
+
return new DirectAutoloopExecutionFailure(
|
|
419
|
+
error,
|
|
420
|
+
classifyFailureEnvelope(error, { executionPhase: "post-run", mutationState }),
|
|
421
|
+
detail
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
function getCarriedDirectAutoloopFailureEnvelope(error) {
|
|
425
|
+
return error instanceof DirectAutoloopExecutionFailure ? error.failureEnvelope : void 0;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
// src/core/validation/semantic-progress-rater.ts
|
|
429
|
+
function clampTimeoutToDeadline(configuredTimeoutMs, deadlineMs) {
|
|
430
|
+
if (deadlineMs == null) {
|
|
431
|
+
return configuredTimeoutMs;
|
|
432
|
+
}
|
|
433
|
+
const remainingMs = Math.max(0, deadlineMs - Date.now());
|
|
434
|
+
if (configuredTimeoutMs == null) {
|
|
435
|
+
return remainingMs;
|
|
436
|
+
}
|
|
437
|
+
return Math.min(configuredTimeoutMs, remainingMs);
|
|
438
|
+
}
|
|
439
|
+
function generateProgressPrompt(task, gitDiff) {
|
|
440
|
+
return `You are evaluating whether code changes move closer to completing a task.
|
|
441
|
+
|
|
442
|
+
Task: ${task}
|
|
443
|
+
|
|
444
|
+
Git Diff:
|
|
445
|
+
\`\`\`diff
|
|
446
|
+
${gitDiff}
|
|
447
|
+
\`\`\`
|
|
448
|
+
|
|
449
|
+
Questions:
|
|
450
|
+
1. Do these changes move closer to completing the task? (yes/no)
|
|
451
|
+
2. Confidence (0-100%): How confident are you in this assessment?
|
|
452
|
+
3. Brief reasoning (1-2 sentences)
|
|
453
|
+
|
|
454
|
+
Respond in this exact format:
|
|
455
|
+
MOVED_CLOSER: yes|no
|
|
456
|
+
CONFIDENCE: 0-100
|
|
457
|
+
REASONING: your brief explanation`;
|
|
458
|
+
}
|
|
459
|
+
function parseProgressResponse(responseText) {
|
|
460
|
+
const movedCloserMatch = responseText.match(/MOVED_CLOSER:\s*(yes|no)/i);
|
|
461
|
+
if (!movedCloserMatch?.[1]) {
|
|
462
|
+
throw new Error("Semantic progress response missing MOVED_CLOSER field");
|
|
463
|
+
}
|
|
464
|
+
const movedCloser = movedCloserMatch[1].toLowerCase() === "yes";
|
|
465
|
+
const confidenceMatch = responseText.match(/CONFIDENCE:\s*(\d+)/);
|
|
466
|
+
if (!confidenceMatch?.[1]) {
|
|
467
|
+
throw new Error("Semantic progress response missing CONFIDENCE field");
|
|
468
|
+
}
|
|
469
|
+
const confidencePercent = Number.parseInt(confidenceMatch[1], 10);
|
|
470
|
+
if (!Number.isFinite(confidencePercent) || confidencePercent < 0 || confidencePercent > 100) {
|
|
471
|
+
throw new Error(`Semantic progress response CONFIDENCE out of range: ${confidenceMatch[1]}`);
|
|
472
|
+
}
|
|
473
|
+
const confidence = Math.max(0, Math.min(1, confidencePercent / 100));
|
|
474
|
+
const reasoningMatch = responseText.match(/REASONING:\s*(.+?)(?:\n|$)/s);
|
|
475
|
+
const reasoning = reasoningMatch?.[1]?.trim() || "No reasoning provided";
|
|
476
|
+
return {
|
|
477
|
+
movedCloser,
|
|
478
|
+
confidence,
|
|
479
|
+
reasoning
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
async function rateProgress(task, gitDiff, options = {}) {
|
|
483
|
+
debugLog("[ProgressRater] Evaluating progress for task...");
|
|
484
|
+
debugLog(`[ProgressRater] Task: ${task.substring(0, 100)}...`);
|
|
485
|
+
debugLog(`[ProgressRater] Diff size: ${gitDiff.length} characters`);
|
|
486
|
+
if (!gitDiff || gitDiff.trim().length === 0) {
|
|
487
|
+
debugLog("[ProgressRater] Empty git diff - no progress made");
|
|
488
|
+
return {
|
|
489
|
+
movedCloser: false,
|
|
490
|
+
confidence: 1,
|
|
491
|
+
reasoning: "No changes made (empty git diff)"
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
if (!task || task.trim().length === 0) {
|
|
495
|
+
debugLog("[ProgressRater] Empty task - cannot evaluate progress");
|
|
496
|
+
return {
|
|
497
|
+
movedCloser: false,
|
|
498
|
+
confidence: 0.5,
|
|
499
|
+
reasoning: "Cannot evaluate progress without task description"
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
if (options.abortSignal?.aborted) {
|
|
503
|
+
throw new Error("Semantic progress evaluation aborted before provider launch");
|
|
504
|
+
}
|
|
505
|
+
if (options.deadlineMs !== void 0 && options.deadlineMs <= Date.now()) {
|
|
506
|
+
throw new Error("Semantic progress evaluation deadline exhausted before provider launch");
|
|
507
|
+
}
|
|
508
|
+
if (readEnv(POETIC_MOCK_PROVIDERS).value === "1" && readEnv(POETIC_ALLOW_MOCK_PROVIDERS).value === true) {
|
|
509
|
+
debugLog("[ProgressRater] Mock provider mode - accepting non-empty diff as progress");
|
|
510
|
+
return {
|
|
511
|
+
movedCloser: true,
|
|
512
|
+
confidence: 0.95,
|
|
513
|
+
reasoning: "Mock provider mode accepted a non-empty diff as semantic progress"
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
if (!options.provider || !options.workingDir) {
|
|
517
|
+
throw new Error(
|
|
518
|
+
"rateProgress requires provider and workingDir when evaluating non-empty inputs"
|
|
519
|
+
);
|
|
520
|
+
}
|
|
521
|
+
const prompt = generateProgressPrompt(task, gitDiff);
|
|
522
|
+
const timeoutMs = clampTimeoutToDeadline(options.timeoutMs, options.deadlineMs);
|
|
523
|
+
if (options.deadlineMs !== void 0 && timeoutMs === 0) {
|
|
524
|
+
throw new Error("Semantic progress evaluation deadline exhausted before provider launch");
|
|
525
|
+
}
|
|
526
|
+
const providerResult = await runSemanticPrompt({
|
|
527
|
+
provider: options.provider,
|
|
528
|
+
prompt,
|
|
529
|
+
workingDir: options.workingDir,
|
|
530
|
+
profile: options.profile,
|
|
531
|
+
model: options.model,
|
|
532
|
+
timeoutMs,
|
|
533
|
+
deadlineMs: options.deadlineMs,
|
|
534
|
+
abortSignal: options.abortSignal,
|
|
535
|
+
workspaceMode: options.workspaceMode,
|
|
536
|
+
allowedTools: options.allowedTools,
|
|
537
|
+
tools: options.tools,
|
|
538
|
+
disallowedTools: options.disallowedTools,
|
|
539
|
+
executionIntent: "analysis"
|
|
540
|
+
});
|
|
541
|
+
const stdout = (providerResult.stdout ?? "").trim();
|
|
542
|
+
if (!stdout) {
|
|
543
|
+
throw new Error("Semantic progress provider returned empty output");
|
|
544
|
+
}
|
|
545
|
+
const result = parseProgressResponse(stdout);
|
|
546
|
+
debugLog(
|
|
547
|
+
`[ProgressRater] Result: ${result.movedCloser ? "moved closer" : "no progress"} (confidence: ${result.confidence.toFixed(2)})`
|
|
548
|
+
);
|
|
549
|
+
debugLog(`[ProgressRater] Reasoning: ${result.reasoning}`);
|
|
550
|
+
return result;
|
|
551
|
+
}
|
|
552
|
+
function isSignificantProgress(result, minConfidence = 0.7) {
|
|
553
|
+
return result.movedCloser && result.confidence >= minConfidence;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
export {
|
|
557
|
+
globalRecursionTracker,
|
|
558
|
+
deriveDirectAutoloopRecovery,
|
|
559
|
+
serializeDirectAutoloopFailureRecovery,
|
|
560
|
+
createDirectAutoloopCancellationFailure,
|
|
561
|
+
createDirectAutoloopProviderFailure,
|
|
562
|
+
getCarriedDirectAutoloopFailureEnvelope,
|
|
563
|
+
rateProgress,
|
|
564
|
+
isSignificantProgress
|
|
565
|
+
};
|
|
566
|
+
//# sourceMappingURL=chunk-3C26DPFK.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createEngineMetadata
|
|
3
|
+
} from "./chunk-GHHFDU2U.js";
|
|
4
|
+
|
|
5
|
+
// src/core/providers/opencode/metadata.ts
|
|
6
|
+
var metadata = createEngineMetadata(
|
|
7
|
+
{
|
|
8
|
+
id: "opencode",
|
|
9
|
+
name: "OpenCode",
|
|
10
|
+
description: "Open source AI coding agent via OpenCode CLI",
|
|
11
|
+
cliCommand: "opencode",
|
|
12
|
+
cliBinary: "opencode",
|
|
13
|
+
installCommand: "curl -fsSL https://opencode.ai/install | bash",
|
|
14
|
+
authHint: "opencode auth login",
|
|
15
|
+
setupCommand: "poetic provider setup --providers opencode",
|
|
16
|
+
docsPath: "docs/PROVIDER_SETUP.md",
|
|
17
|
+
docsAnchor: "opencode-cli",
|
|
18
|
+
experimental: false
|
|
19
|
+
},
|
|
20
|
+
["installCommand", "experimental"]
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
metadata
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=chunk-3FLXLLB7.js.map
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getDefaultPaths
|
|
3
|
+
} from "./chunk-UUH2RVKS.js";
|
|
4
|
+
import {
|
|
5
|
+
emitWarning
|
|
6
|
+
} from "./chunk-EJGCZGUF.js";
|
|
7
|
+
|
|
8
|
+
// src/core/steering/user-agents.ts
|
|
9
|
+
import { createHash as createHash2 } from "crypto";
|
|
10
|
+
import { existsSync, readFileSync, statSync } from "fs";
|
|
11
|
+
import { join } from "path";
|
|
12
|
+
|
|
13
|
+
// src/core/steering/template.ts
|
|
14
|
+
import { createHash } from "crypto";
|
|
15
|
+
var DEFAULT_USER_AGENTS_TEMPLATE = `# Poetic Global Instructions
|
|
16
|
+
|
|
17
|
+
These instructions are injected by Poetic for provider runs on this machine.
|
|
18
|
+
Keep them short, durable, and broadly applicable across repositories.
|
|
19
|
+
|
|
20
|
+
- Read existing code before modifying it. Check for existing helpers and local patterns.
|
|
21
|
+
- Prefer standard well-known solutions. Avoid adding algorithmic or data-structure complexity for small inputs unless the task explicitly justifies it.
|
|
22
|
+
`;
|
|
23
|
+
var DEFAULT_USER_AGENTS_TEMPLATE_SHA256 = createHash("sha256").update(DEFAULT_USER_AGENTS_TEMPLATE).digest("hex");
|
|
24
|
+
|
|
25
|
+
// src/core/steering/user-agents.ts
|
|
26
|
+
var unreadableWarnings = /* @__PURE__ */ new Set();
|
|
27
|
+
var cachedUserGlobal = null;
|
|
28
|
+
function sha256Text(text) {
|
|
29
|
+
return createHash2("sha256").update(text).digest("hex");
|
|
30
|
+
}
|
|
31
|
+
function byteLength(text) {
|
|
32
|
+
return Buffer.byteLength(text, "utf8");
|
|
33
|
+
}
|
|
34
|
+
function getUserAgentsPath() {
|
|
35
|
+
const override = process.env.POETIC_AGENTS_FILE?.trim();
|
|
36
|
+
if (override) return override;
|
|
37
|
+
return join(getDefaultPaths().userConfigDir, "AGENTS.md");
|
|
38
|
+
}
|
|
39
|
+
function warnUnreadableAgentsFile(path, error) {
|
|
40
|
+
if (unreadableWarnings.has(path)) return;
|
|
41
|
+
unreadableWarnings.add(path);
|
|
42
|
+
emitWarning(
|
|
43
|
+
"CFG-001",
|
|
44
|
+
{
|
|
45
|
+
taskId: "runtime-steering",
|
|
46
|
+
subsystem: "steering",
|
|
47
|
+
executionPhase: "setup"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
severity: "WARN" /* WARN */,
|
|
51
|
+
metadata: {
|
|
52
|
+
operation: "loadUserGlobalAgents",
|
|
53
|
+
path,
|
|
54
|
+
error: error instanceof Error ? error.message : String(error)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
function loadUserGlobalAgentsFile() {
|
|
60
|
+
const path = getUserAgentsPath();
|
|
61
|
+
if (!existsSync(path)) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const stats = statSync(path);
|
|
66
|
+
if (!stats.isFile()) {
|
|
67
|
+
throw new Error("Path exists but is not a regular file");
|
|
68
|
+
}
|
|
69
|
+
if (cachedUserGlobal?.path === path && cachedUserGlobal.mtimeMs === stats.mtimeMs) {
|
|
70
|
+
return cachedUserGlobal.loaded;
|
|
71
|
+
}
|
|
72
|
+
const text = readFileSync(path, "utf8");
|
|
73
|
+
const sha256 = sha256Text(text);
|
|
74
|
+
const loaded = {
|
|
75
|
+
text,
|
|
76
|
+
source: {
|
|
77
|
+
kind: "user-global",
|
|
78
|
+
path,
|
|
79
|
+
mtime: stats.mtimeMs,
|
|
80
|
+
sha256,
|
|
81
|
+
bytes: byteLength(text),
|
|
82
|
+
editedByUser: sha256 !== DEFAULT_USER_AGENTS_TEMPLATE_SHA256
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
cachedUserGlobal = { path, mtimeMs: stats.mtimeMs, loaded };
|
|
86
|
+
return loaded;
|
|
87
|
+
} catch (error) {
|
|
88
|
+
warnUnreadableAgentsFile(path, error);
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export {
|
|
94
|
+
DEFAULT_USER_AGENTS_TEMPLATE,
|
|
95
|
+
sha256Text,
|
|
96
|
+
byteLength,
|
|
97
|
+
getUserAgentsPath,
|
|
98
|
+
loadUserGlobalAgentsFile
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=chunk-3FOZ2VHV.js.map
|