@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,226 @@
|
|
|
1
|
+
// src/utils/planning-validation.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
var TaskIdSchema = z.string().min(1, "Task ID cannot be empty").max(100, "Task ID too long (max 100 characters)").regex(
|
|
4
|
+
/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/,
|
|
5
|
+
"Task ID contains invalid characters. Only alphanumeric, dots, hyphens, and underscores allowed"
|
|
6
|
+
).refine((id) => {
|
|
7
|
+
if (id.includes("..") || id.includes("/") || id.includes("\\")) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
if (id.includes("\0")) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}, "Task ID contains dangerous characters");
|
|
15
|
+
var SprintNameSchema = z.string().min(1, "Sprint name cannot be empty").max(50, "Sprint name too long (max 50 characters)").regex(/^[a-zA-Z0-9]/, "Sprint name must start with an alphanumeric character").refine(
|
|
16
|
+
(name) => !name.includes("..") && !name.includes("/") && !name.includes("\\") && !Array.from(name).some((character) => {
|
|
17
|
+
const codePoint = character.charCodeAt(0);
|
|
18
|
+
return codePoint <= 31 || codePoint === 127;
|
|
19
|
+
}),
|
|
20
|
+
"Sprint name contains invalid characters"
|
|
21
|
+
);
|
|
22
|
+
var PrioritySchema = z.enum(["P0", "P1", "P2", "P3"]).describe("Priority must be P0 (critical), P1 (high), P2 (medium), or P3 (low)");
|
|
23
|
+
var SeveritySchema = z.enum(["critical", "high", "medium", "low"]).describe("Severity must be: critical, high, medium, or low");
|
|
24
|
+
var EffortSchema = z.enum(["low", "medium", "high"]).describe("Effort must be: low, medium, or high");
|
|
25
|
+
var TaskStatusSchema = z.enum(["todo", "in_progress", "review", "done", "blocked"]).describe("Status must be: todo, in_progress, review, done, or blocked");
|
|
26
|
+
var BacklogStatusSchema = z.enum(["inbox", "reviewed", "archived", "done"]).describe("Status must be: inbox, reviewed, archived, or done");
|
|
27
|
+
var StoryPointsSchema = z.number().int("Story points must be an integer").min(1, "Story points must be at least 1").max(100, "Story points cannot exceed 100").refine((val) => {
|
|
28
|
+
const fibonacci = [1, 2, 3, 5, 8, 13, 21, 34, 55, 89];
|
|
29
|
+
return fibonacci.includes(val) || val <= 100;
|
|
30
|
+
}, "Story points should follow Fibonacci sequence or be reasonable values");
|
|
31
|
+
var ComplexitySchema = z.number().min(0, "Complexity cannot be negative").max(1, "Complexity cannot exceed 1.0").refine((val) => !Number.isNaN(val), "Complexity must be a valid number");
|
|
32
|
+
var EstimatedHoursSchema = z.number().positive("Estimated hours must be positive").max(200, "Estimated hours cannot exceed 200 (consider breaking down the task)");
|
|
33
|
+
var ExpectedRuntimeMinutesSchema = z.number().positive("Expected runtime minutes must be positive").max(1440, "Expected runtime cannot exceed 1440 minutes (24h); consider breaking down the item");
|
|
34
|
+
var DateSchema = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Date must be in YYYY-MM-DD format").refine((date) => {
|
|
35
|
+
const match = date.match(/^(\d{4})-(\d{2})-(\d{2})$/);
|
|
36
|
+
if (!match) return false;
|
|
37
|
+
const year = Number.parseInt(match[1] ?? "", 10);
|
|
38
|
+
const month = Number.parseInt(match[2] ?? "", 10);
|
|
39
|
+
const day = Number.parseInt(match[3] ?? "", 10);
|
|
40
|
+
if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) return false;
|
|
41
|
+
const parsed = new Date(Date.UTC(year, month - 1, day));
|
|
42
|
+
if (Number.isNaN(parsed.getTime())) return false;
|
|
43
|
+
if (parsed.getUTCFullYear() !== year) return false;
|
|
44
|
+
if (parsed.getUTCMonth() !== month - 1) return false;
|
|
45
|
+
if (parsed.getUTCDate() !== day) return false;
|
|
46
|
+
return true;
|
|
47
|
+
}, "Invalid date");
|
|
48
|
+
var DomainSchema = z.enum([
|
|
49
|
+
"general",
|
|
50
|
+
"architecture",
|
|
51
|
+
"database",
|
|
52
|
+
"performance",
|
|
53
|
+
"testing",
|
|
54
|
+
"dependencies",
|
|
55
|
+
"security",
|
|
56
|
+
"infrastructure",
|
|
57
|
+
"ui",
|
|
58
|
+
"api"
|
|
59
|
+
]).describe(
|
|
60
|
+
"Invalid domain. Must be one of: general, architecture, database, performance, testing, dependencies, security, infrastructure, ui, api"
|
|
61
|
+
);
|
|
62
|
+
var ImpactScoreSchema = z.number().min(1, "Impact score must be at least 1").max(10, "Impact score cannot exceed 10").int("Impact score must be an integer");
|
|
63
|
+
var SafeTaskDescriptionSchema = z.string().min(1, "Description cannot be empty").max(5e3, "Description too long (max 5000 characters)").transform((desc) => desc.trim()).refine((desc) => {
|
|
64
|
+
if (desc.includes("\0")) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
const dangerousPatterns = /(\$\(.*\)|`.*`|;.*&|&&|\|\|)/;
|
|
68
|
+
if (dangerousPatterns.test(desc)) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}, "Description contains potentially dangerous characters");
|
|
73
|
+
var CheckpointPathSchema = z.string().min(1, "Checkpoint path cannot be empty").refine((path) => {
|
|
74
|
+
if (!path.endsWith(".json")) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
if (path.includes("..")) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
if (path.startsWith("/") && !path.startsWith(process.cwd())) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
if (path.includes("\0")) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return true;
|
|
87
|
+
}, "Invalid checkpoint file path");
|
|
88
|
+
var CheckpointResumePathSchema = z.string().min(1, "Checkpoint path cannot be empty").refine((path) => {
|
|
89
|
+
if (!path.endsWith(".json")) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
if (path.includes("..")) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
if (path.includes("\0")) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
}, "Invalid checkpoint file path");
|
|
100
|
+
var PlanningQueryTypeSchema = z.enum(["backlog", "debt", "sprint", "task", "parking"]).describe("Query type must be: backlog, debt, sprint, task, or parking");
|
|
101
|
+
var OutputFormatSchema = z.enum(["table", "json", "markdown", "yaml"]).describe("Output format must be: table, json, markdown, or yaml");
|
|
102
|
+
var SchedulingOptionSchema = z.enum(["immediate", "current-sprint", "next-sprint", "backlog"]).describe("Scheduling option must be: immediate, current-sprint, next-sprint, or backlog");
|
|
103
|
+
var AgentCountSchema = z.number().int("Agent count must be an integer").min(1, "At least one agent is required").max(10, "Maximum 10 agents allowed for safety");
|
|
104
|
+
var BacklogAddInputSchema = z.object({
|
|
105
|
+
title: z.string().min(3, "Title must be at least 3 characters").max(200, "Title too long (max 200 characters)").transform((t) => t.trim()).refine((t) => t.length >= 3, "Title cannot be blank or whitespace-only"),
|
|
106
|
+
desc: z.string().max(5e3).optional(),
|
|
107
|
+
body: z.string().optional(),
|
|
108
|
+
bodyFile: z.string().optional(),
|
|
109
|
+
priority: PrioritySchema.optional(),
|
|
110
|
+
type: z.string().max(50).optional(),
|
|
111
|
+
workType: z.string().max(50).optional(),
|
|
112
|
+
tags: z.array(z.string().min(1).max(50)).max(20).optional(),
|
|
113
|
+
status: z.enum(["inbox", "reviewed"]).optional(),
|
|
114
|
+
complexity: z.number().min(0).max(1).optional(),
|
|
115
|
+
domain: DomainSchema.optional(),
|
|
116
|
+
expectedRuntime: ExpectedRuntimeMinutesSchema.optional(),
|
|
117
|
+
force: z.boolean().optional(),
|
|
118
|
+
sync: z.boolean().optional()
|
|
119
|
+
});
|
|
120
|
+
var BacklogOptionsSchema = z.object({
|
|
121
|
+
desc: z.string().optional(),
|
|
122
|
+
body: z.string().optional(),
|
|
123
|
+
// New: Full markdown body content
|
|
124
|
+
type: z.string().optional(),
|
|
125
|
+
// New: CLI --type option
|
|
126
|
+
tags: z.array(z.string()).optional(),
|
|
127
|
+
// New: CLI --tags option
|
|
128
|
+
complexity: ComplexitySchema.optional(),
|
|
129
|
+
domain: DomainSchema.optional(),
|
|
130
|
+
priority: PrioritySchema.optional(),
|
|
131
|
+
reason: z.string().max(500).optional(),
|
|
132
|
+
reconsider: DateSchema.optional(),
|
|
133
|
+
title: z.string().max(200).optional(),
|
|
134
|
+
status: BacklogStatusSchema.optional(),
|
|
135
|
+
// Updated: includes new statuses
|
|
136
|
+
approve: z.boolean().optional()
|
|
137
|
+
}).strict();
|
|
138
|
+
var TaskOptionsSchema = z.object({
|
|
139
|
+
sprint: SprintNameSchema.optional(),
|
|
140
|
+
priority: PrioritySchema.optional(),
|
|
141
|
+
status: TaskStatusSchema.optional(),
|
|
142
|
+
on: TaskIdSchema.optional(),
|
|
143
|
+
// for dependencies
|
|
144
|
+
force: z.boolean().optional(),
|
|
145
|
+
estimate: EstimatedHoursSchema.optional(),
|
|
146
|
+
expectedRuntime: ExpectedRuntimeMinutesSchema.optional(),
|
|
147
|
+
split: z.boolean().optional()
|
|
148
|
+
}).strict();
|
|
149
|
+
var SprintOptionsSchema = z.object({
|
|
150
|
+
name: SprintNameSchema.optional(),
|
|
151
|
+
start: DateSchema.optional(),
|
|
152
|
+
end: DateSchema.optional(),
|
|
153
|
+
goal: z.string().max(500).optional(),
|
|
154
|
+
hours: EstimatedHoursSchema.optional(),
|
|
155
|
+
current: z.boolean().optional(),
|
|
156
|
+
archived: z.boolean().optional(),
|
|
157
|
+
estimate: EstimatedHoursSchema.optional(),
|
|
158
|
+
priority: PrioritySchema.optional(),
|
|
159
|
+
split: z.boolean().optional()
|
|
160
|
+
}).strict();
|
|
161
|
+
var DebtOptionsSchema = z.object({
|
|
162
|
+
severity: SeveritySchema.optional(),
|
|
163
|
+
effort: EffortSchema.optional(),
|
|
164
|
+
impact: ImpactScoreSchema.optional(),
|
|
165
|
+
blocking: z.boolean().optional(),
|
|
166
|
+
parallelizable: z.boolean().optional(),
|
|
167
|
+
domain: DomainSchema.optional(),
|
|
168
|
+
executeBy: DateSchema.optional(),
|
|
169
|
+
targetDate: DateSchema.optional(),
|
|
170
|
+
rootCause: z.string().max(1e3).optional(),
|
|
171
|
+
hours: EstimatedHoursSchema.optional(),
|
|
172
|
+
expectedRuntime: ExpectedRuntimeMinutesSchema.optional(),
|
|
173
|
+
complexity: ComplexitySchema.optional(),
|
|
174
|
+
priority: z.boolean().optional(),
|
|
175
|
+
archived: z.boolean().optional()
|
|
176
|
+
}).strict();
|
|
177
|
+
var ParkingOptionsSchema = z.object({
|
|
178
|
+
reason: z.string().min(1).max(500),
|
|
179
|
+
reviewDate: DateSchema.optional(),
|
|
180
|
+
backlogId: TaskIdSchema.optional(),
|
|
181
|
+
complexity: ComplexitySchema.optional(),
|
|
182
|
+
hours: EstimatedHoursSchema.optional(),
|
|
183
|
+
current: z.boolean().optional(),
|
|
184
|
+
archived: z.boolean().optional(),
|
|
185
|
+
overdueReview: z.boolean().optional()
|
|
186
|
+
}).strict();
|
|
187
|
+
var PlanningOptionsSchema = z.object({
|
|
188
|
+
path: CheckpointPathSchema.optional(),
|
|
189
|
+
fix: z.boolean().optional(),
|
|
190
|
+
staged: z.boolean().optional(),
|
|
191
|
+
regenerate: z.boolean().optional(),
|
|
192
|
+
type: PlanningQueryTypeSchema.optional(),
|
|
193
|
+
status: z.string().optional(),
|
|
194
|
+
priority: PrioritySchema.optional(),
|
|
195
|
+
severity: SeveritySchema.optional(),
|
|
196
|
+
format: OutputFormatSchema.optional(),
|
|
197
|
+
json: z.boolean().optional()
|
|
198
|
+
}).strict();
|
|
199
|
+
var MonitorOptionsSchema = z.object({
|
|
200
|
+
json: z.boolean().optional(),
|
|
201
|
+
follow: z.boolean().optional(),
|
|
202
|
+
interval: z.number().min(1).max(300).optional(),
|
|
203
|
+
detailed: z.boolean().optional()
|
|
204
|
+
}).strict();
|
|
205
|
+
var PlanningCheckpointOptionsSchema = z.object({
|
|
206
|
+
agents: AgentCountSchema.optional(),
|
|
207
|
+
output: z.string().optional(),
|
|
208
|
+
resume: CheckpointResumePathSchema.optional()
|
|
209
|
+
}).strict();
|
|
210
|
+
|
|
211
|
+
export {
|
|
212
|
+
TaskIdSchema,
|
|
213
|
+
SprintNameSchema,
|
|
214
|
+
PrioritySchema,
|
|
215
|
+
EstimatedHoursSchema,
|
|
216
|
+
ExpectedRuntimeMinutesSchema,
|
|
217
|
+
DateSchema,
|
|
218
|
+
SafeTaskDescriptionSchema,
|
|
219
|
+
CheckpointResumePathSchema,
|
|
220
|
+
BacklogAddInputSchema,
|
|
221
|
+
BacklogOptionsSchema,
|
|
222
|
+
DebtOptionsSchema,
|
|
223
|
+
PlanningOptionsSchema,
|
|
224
|
+
PlanningCheckpointOptionsSchema
|
|
225
|
+
};
|
|
226
|
+
//# sourceMappingURL=chunk-NP2V3L7K.js.map
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import {
|
|
2
|
+
extractExplicitVerificationCommands,
|
|
3
|
+
hasExplicitVerificationIntent
|
|
4
|
+
} from "./chunk-OKBTRSZI.js";
|
|
5
|
+
import {
|
|
6
|
+
parseSimpleArtifactGoal
|
|
7
|
+
} from "./chunk-OGMSYL6J.js";
|
|
8
|
+
import {
|
|
9
|
+
detectExplicitNoEditDirective
|
|
10
|
+
} from "./chunk-JOSYEJKY.js";
|
|
11
|
+
|
|
12
|
+
// src/core/loop/autoloop-gate-policy.ts
|
|
13
|
+
var DEFAULT_AUTOLOOP_QUALITY_GATES_MODE = "fast";
|
|
14
|
+
function analyzeAutoloopTaskIntent(taskDescription) {
|
|
15
|
+
const explicitVerificationCommands = extractExplicitVerificationCommands(taskDescription);
|
|
16
|
+
return {
|
|
17
|
+
readOnlyAutoloopIntent: detectExplicitNoEditDirective(taskDescription),
|
|
18
|
+
simpleArtifactGoal: parseSimpleArtifactGoal(taskDescription),
|
|
19
|
+
explicitVerificationCommands,
|
|
20
|
+
explicitVerificationIntent: hasExplicitVerificationIntent(taskDescription) || explicitVerificationCommands.length > 0
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function suppressInferredQualityGatesForSimpleArtifact(intent, options) {
|
|
24
|
+
return !options.runQualityGates && intent.simpleArtifactGoal !== void 0 && !intent.explicitVerificationIntent;
|
|
25
|
+
}
|
|
26
|
+
function shouldAutoDetectAutoloopQualityGates(intent, options) {
|
|
27
|
+
return !options.disableQualityGates && !options.runQualityGates && !intent.readOnlyAutoloopIntent && !suppressInferredQualityGatesForSimpleArtifact(intent, options);
|
|
28
|
+
}
|
|
29
|
+
function resolveAutoloopGatePolicy(input) {
|
|
30
|
+
const { intent, options, corePatch, autoGates } = input;
|
|
31
|
+
const notes = [];
|
|
32
|
+
const suppressForSimpleArtifact = suppressInferredQualityGatesForSimpleArtifact(intent, options);
|
|
33
|
+
let runQualityGates = options.runQualityGates ?? false;
|
|
34
|
+
let qualityGatesMode = options.qualityGatesMode;
|
|
35
|
+
if (shouldAutoDetectAutoloopQualityGates(intent, options)) {
|
|
36
|
+
if (autoGates?.enabled) {
|
|
37
|
+
runQualityGates = true;
|
|
38
|
+
qualityGatesMode = autoGates.mode ?? "fast";
|
|
39
|
+
notes.push({
|
|
40
|
+
tone: "info",
|
|
41
|
+
message: "Quality gates auto-enabled (detected typecheck script)"
|
|
42
|
+
});
|
|
43
|
+
} else {
|
|
44
|
+
notes.push({
|
|
45
|
+
tone: "detail",
|
|
46
|
+
message: "Quality gates not auto-enabled (no typecheck script detected)"
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
} else if (intent.readOnlyAutoloopIntent && !options.disableQualityGates && !options.runQualityGates) {
|
|
50
|
+
runQualityGates = false;
|
|
51
|
+
notes.push({
|
|
52
|
+
tone: "detail",
|
|
53
|
+
message: "Quality gates not auto-enabled (explicit no-edit intent)"
|
|
54
|
+
});
|
|
55
|
+
} else if (suppressForSimpleArtifact && !options.disableQualityGates) {
|
|
56
|
+
runQualityGates = false;
|
|
57
|
+
notes.push({
|
|
58
|
+
tone: "detail",
|
|
59
|
+
message: "Quality gates not auto-enabled (simple artifact task)"
|
|
60
|
+
});
|
|
61
|
+
} else if (options.disableQualityGates) {
|
|
62
|
+
runQualityGates = false;
|
|
63
|
+
notes.push({ tone: "detail", message: "Quality gates explicitly disabled" });
|
|
64
|
+
}
|
|
65
|
+
if (runQualityGates && !qualityGatesMode) {
|
|
66
|
+
qualityGatesMode = DEFAULT_AUTOLOOP_QUALITY_GATES_MODE;
|
|
67
|
+
}
|
|
68
|
+
let validationMode = options.validationMode ?? input.defaultValidationMode;
|
|
69
|
+
if (corePatch?.validationMode && options.validationMode === void 0) {
|
|
70
|
+
validationMode = corePatch.validationMode;
|
|
71
|
+
}
|
|
72
|
+
if (intent.simpleArtifactGoal !== void 0 && options.validationMode === void 0 && !intent.explicitVerificationIntent) {
|
|
73
|
+
validationMode = "none";
|
|
74
|
+
}
|
|
75
|
+
if (!options.disableQualityGates && intent.explicitVerificationIntent && intent.explicitVerificationCommands.length > 0) {
|
|
76
|
+
runQualityGates = true;
|
|
77
|
+
if (!qualityGatesMode) {
|
|
78
|
+
qualityGatesMode = DEFAULT_AUTOLOOP_QUALITY_GATES_MODE;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const useAIJudge = options.useAIJudge ?? false;
|
|
82
|
+
if (validationMode === "deterministic" && !qualityGatesMode && runQualityGates) {
|
|
83
|
+
qualityGatesMode = "fast";
|
|
84
|
+
notes.push({
|
|
85
|
+
tone: "info",
|
|
86
|
+
message: 'Quality gates mode defaulted to "fast" for deterministic validation'
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
runQualityGates,
|
|
91
|
+
qualityGatePolicy: runQualityGates ? "enabled" : options.disableQualityGates === true ? "explicitly_disabled" : "not_configured",
|
|
92
|
+
qualityGatesMode,
|
|
93
|
+
validationMode,
|
|
94
|
+
useAIJudge,
|
|
95
|
+
suppressInferredQualityGatesForSimpleArtifact: suppressForSimpleArtifact,
|
|
96
|
+
deterministicConflict: validationMode === "deterministic" && !runQualityGates,
|
|
97
|
+
notes
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
var NO_OP_WITH_PASSING_GATES_DETAIL = "no_op_with_passing_gates";
|
|
101
|
+
var DUPLICATE_CHANGE_WITH_PASSING_GATES_DETAIL = "duplicate_change_with_passing_gates";
|
|
102
|
+
var PASSING_GATES_RESCUABLE_TERMINATION_CODES = /* @__PURE__ */ new Set([
|
|
103
|
+
"no_op_loop",
|
|
104
|
+
"duplicate_change_loop"
|
|
105
|
+
]);
|
|
106
|
+
function iterationIsSubstantive(input) {
|
|
107
|
+
if (typeof input.completeness === "number" && input.completeness > 0) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
return (input.changedFiles?.length ?? 0) > 0;
|
|
111
|
+
}
|
|
112
|
+
function iterationPassedAllEnabledChecks(iteration, enabled) {
|
|
113
|
+
if (!iteration.success) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
if (enabled.qualityGates) {
|
|
117
|
+
const gates = iteration.qualityGates;
|
|
118
|
+
if (!gates || gates.length === 0) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
for (const gate of gates) {
|
|
122
|
+
if (gate.skipped === true) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
if (gate.passed) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (gate.isRegression === false) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (enabled.customGates) {
|
|
135
|
+
const customGates = iteration.customGateResults;
|
|
136
|
+
if (!customGates || customGates.length === 0) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
for (const gate of customGates) {
|
|
140
|
+
if (gate.skipped === true) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
if (!gate.passed && gate.isRegression !== false) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (iteration.requirements?.enabled && !iteration.requirements.passed) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
function findMostRecentSubstantiveIteration(iterations) {
|
|
154
|
+
for (let index = iterations.length - 1; index >= 0; index -= 1) {
|
|
155
|
+
const iteration = iterations[index];
|
|
156
|
+
if (iteration?.substantive) {
|
|
157
|
+
return iteration;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return void 0;
|
|
161
|
+
}
|
|
162
|
+
function resolveNoOpWithPassingGatesTermination(input) {
|
|
163
|
+
if (input.noOpTerminationCode === null || !PASSING_GATES_RESCUABLE_TERMINATION_CODES.has(input.noOpTerminationCode)) {
|
|
164
|
+
return { kind: "failure" };
|
|
165
|
+
}
|
|
166
|
+
if (!input.enabled.qualityGates && !input.enabled.customGates) {
|
|
167
|
+
return { kind: "failure" };
|
|
168
|
+
}
|
|
169
|
+
const substantive = findMostRecentSubstantiveIteration(input.iterations);
|
|
170
|
+
if (!substantive || !iterationPassedAllEnabledChecks(substantive, input.enabled)) {
|
|
171
|
+
return { kind: "failure" };
|
|
172
|
+
}
|
|
173
|
+
const detail = input.noOpTerminationCode === "duplicate_change_loop" ? DUPLICATE_CHANGE_WITH_PASSING_GATES_DETAIL : NO_OP_WITH_PASSING_GATES_DETAIL;
|
|
174
|
+
return {
|
|
175
|
+
kind: "success",
|
|
176
|
+
reason: "deterministic_complete",
|
|
177
|
+
detail
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export {
|
|
182
|
+
DEFAULT_AUTOLOOP_QUALITY_GATES_MODE,
|
|
183
|
+
analyzeAutoloopTaskIntent,
|
|
184
|
+
suppressInferredQualityGatesForSimpleArtifact,
|
|
185
|
+
shouldAutoDetectAutoloopQualityGates,
|
|
186
|
+
resolveAutoloopGatePolicy,
|
|
187
|
+
NO_OP_WITH_PASSING_GATES_DETAIL,
|
|
188
|
+
DUPLICATE_CHANGE_WITH_PASSING_GATES_DETAIL,
|
|
189
|
+
iterationIsSubstantive,
|
|
190
|
+
iterationPassedAllEnabledChecks,
|
|
191
|
+
findMostRecentSubstantiveIteration,
|
|
192
|
+
resolveNoOpWithPassingGatesTermination
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=chunk-NPZJMUZ4.js.map
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseProviderAuth,
|
|
3
|
+
loadProviderCredentialsConfig,
|
|
4
|
+
resolveCredential
|
|
5
|
+
} from "./chunk-4VJITV4P.js";
|
|
6
|
+
import {
|
|
7
|
+
createEngineMetadata
|
|
8
|
+
} from "./chunk-GHHFDU2U.js";
|
|
9
|
+
import {
|
|
10
|
+
__export
|
|
11
|
+
} from "./chunk-PZ5AY32C.js";
|
|
12
|
+
|
|
13
|
+
// src/core/providers/gemini/auth.ts
|
|
14
|
+
var auth_exports = {};
|
|
15
|
+
__export(auth_exports, {
|
|
16
|
+
clearAuth: () => clearAuth,
|
|
17
|
+
ensureAuth: () => ensureAuth,
|
|
18
|
+
getApiKeyPath: () => getApiKeyPath,
|
|
19
|
+
getGeminiAuthPaths: () => getGeminiAuthPaths,
|
|
20
|
+
getGeminiCliSelectedAuthType: () => getGeminiCliSelectedAuthType,
|
|
21
|
+
getResolvedGeminiApiKey: () => getResolvedGeminiApiKey,
|
|
22
|
+
isAuthenticated: () => isAuthenticated,
|
|
23
|
+
isAuthenticatedTriState: () => isAuthenticatedTriState,
|
|
24
|
+
isGeminiCliOAuthSelected: () => isGeminiCliOAuthSelected,
|
|
25
|
+
nextAuthMenuAction: () => nextAuthMenuAction,
|
|
26
|
+
resolveGeminiConfigDir: () => resolveGeminiConfigDir
|
|
27
|
+
});
|
|
28
|
+
import { existsSync } from "fs";
|
|
29
|
+
import { homedir } from "os";
|
|
30
|
+
import * as path from "path";
|
|
31
|
+
|
|
32
|
+
// src/core/providers/gemini/metadata.ts
|
|
33
|
+
var metadata = createEngineMetadata(
|
|
34
|
+
{
|
|
35
|
+
id: "gemini",
|
|
36
|
+
name: "Gemini",
|
|
37
|
+
description: "Authenticate with Google Gemini AI",
|
|
38
|
+
cliCommand: "gemini",
|
|
39
|
+
cliBinary: "gemini",
|
|
40
|
+
installCommand: "npm install -g @google/gemini-cli",
|
|
41
|
+
authHint: "export GOOGLE_API_KEY=... # or GEMINI_API_KEY",
|
|
42
|
+
setupCommand: "poetic provider setup --providers gemini",
|
|
43
|
+
docsPath: "docs/PROVIDER_SETUP.md",
|
|
44
|
+
docsAnchor: "gemini-cli",
|
|
45
|
+
experimental: true
|
|
46
|
+
},
|
|
47
|
+
["experimental"]
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
// src/core/providers/gemini/auth.ts
|
|
51
|
+
var GeminiAuth = class extends BaseProviderAuth {
|
|
52
|
+
metadata = metadata;
|
|
53
|
+
defaultConfigSubdir = "gemini";
|
|
54
|
+
configDirEnvVar = "GEMINI_CONFIG_DIR";
|
|
55
|
+
/**
|
|
56
|
+
* Environment variables for Gemini credentials
|
|
57
|
+
*/
|
|
58
|
+
getCredentialEnvVars() {
|
|
59
|
+
return ["GEMINI_API_KEY", "GOOGLE_API_KEY"];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolves the Gemini config directory
|
|
63
|
+
*/
|
|
64
|
+
resolveConfigDir(options) {
|
|
65
|
+
if (options?.geminiConfigDir !== void 0) {
|
|
66
|
+
return super.resolveConfigDir({
|
|
67
|
+
...options,
|
|
68
|
+
configDir: options.geminiConfigDir
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
const { profile: _profile, ...restOptions } = options ?? {};
|
|
72
|
+
return super.resolveConfigDir(restOptions);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Convert GeminiAuthOptions to base options with CLI credentials
|
|
76
|
+
*/
|
|
77
|
+
toBaseOptions(options) {
|
|
78
|
+
if (!options) return {};
|
|
79
|
+
return {
|
|
80
|
+
...options,
|
|
81
|
+
cliCredentials: options.apiKey ? {
|
|
82
|
+
apiKey: options.apiKey
|
|
83
|
+
} : options.cliCredentials
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
getAuthFilePath(configDir) {
|
|
87
|
+
return path.join(configDir, ".api_key");
|
|
88
|
+
}
|
|
89
|
+
getAuthPaths(configDir) {
|
|
90
|
+
return [
|
|
91
|
+
this.getAuthFilePath(configDir),
|
|
92
|
+
path.join(configDir, ".gemini.json"),
|
|
93
|
+
path.join(configDir, ".gemini.json.backup")
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
async createPlaceholder(configDir) {
|
|
97
|
+
const authPath = this.getAuthFilePath(configDir);
|
|
98
|
+
const path2 = await import("path");
|
|
99
|
+
const { mkdir, writeFile } = await import("fs/promises");
|
|
100
|
+
const dir = path2.dirname(authPath);
|
|
101
|
+
await mkdir(dir, { recursive: true });
|
|
102
|
+
await writeFile(authPath, "mock-api-key", { encoding: "utf8" });
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Best-effort check for whether Gemini is authenticated.
|
|
106
|
+
*
|
|
107
|
+
* Uses multi-source credential resolution with priority:
|
|
108
|
+
* 1. CLI args (--api-key)
|
|
109
|
+
* 2. Config file (.api_key or OAuth)
|
|
110
|
+
* 3. Environment variables (GEMINI_API_KEY, GOOGLE_API_KEY)
|
|
111
|
+
*
|
|
112
|
+
* This is used only for UX (e.g. "login" vs "logout" prompts). It does NOT
|
|
113
|
+
* gate normal execution – the runners always attempt to invoke the Gemini
|
|
114
|
+
* CLI and let it report authentication errors directly.
|
|
115
|
+
*/
|
|
116
|
+
async isAuthenticated(options) {
|
|
117
|
+
const baseOptions = this.toBaseOptions(options);
|
|
118
|
+
const baseResult = await super.isAuthenticated(baseOptions);
|
|
119
|
+
if (baseResult) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
const explicitConfigDir = options?.configDir !== void 0 || options?.geminiConfigDir !== void 0;
|
|
123
|
+
const oauthPath = path.join(homedir(), ".gemini", "oauth_creds.json");
|
|
124
|
+
if (!explicitConfigDir && existsSync(oauthPath)) {
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
const config = loadProviderCredentialsConfig();
|
|
128
|
+
const configFileApiKey = config?.gemini?.apiKey ?? null;
|
|
129
|
+
const resolvedApiKey = resolveCredential({
|
|
130
|
+
cliOverride: options?.apiKey,
|
|
131
|
+
configFileValue: configFileApiKey,
|
|
132
|
+
envValue: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY || void 0
|
|
133
|
+
});
|
|
134
|
+
if (resolvedApiKey) {
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
const configDir = this.resolveConfigDir(options);
|
|
138
|
+
const apiKeyPath = this.getAuthFilePath(configDir);
|
|
139
|
+
try {
|
|
140
|
+
const { stat } = await import("fs/promises");
|
|
141
|
+
await stat(apiKeyPath);
|
|
142
|
+
return true;
|
|
143
|
+
} catch {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Run Gemini-specific authentication.
|
|
149
|
+
*
|
|
150
|
+
* For local development the recommended path is to use the native CLI's
|
|
151
|
+
* OAuth-based login flow:
|
|
152
|
+
*
|
|
153
|
+
* gemini auth login
|
|
154
|
+
*
|
|
155
|
+
* Environment variable API keys remain supported for CI or non-interactive
|
|
156
|
+
* environments but are not required for normal use.
|
|
157
|
+
*/
|
|
158
|
+
async runAuthCommand(_configDir) {
|
|
159
|
+
console.error("\n");
|
|
160
|
+
console.error(` Info: ${this.metadata.name} Authentication Required`);
|
|
161
|
+
console.error("");
|
|
162
|
+
console.error("\nPoetic uses the native Gemini CLI for authentication.");
|
|
163
|
+
console.error("The recommended setup is OAuth via the CLI:\n");
|
|
164
|
+
console.error(" gemini auth login\n");
|
|
165
|
+
console.error("\nFor non-interactive environments (CI, servers), you may instead set:");
|
|
166
|
+
console.error(" export GEMINI_API_KEY=<your-api-key>\n");
|
|
167
|
+
console.error("\n");
|
|
168
|
+
throw new Error("Gemini authentication is not configured.");
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
var geminiAuth = new GeminiAuth();
|
|
172
|
+
function resolveGeminiConfigDir(options) {
|
|
173
|
+
return geminiAuth.resolveConfigDir(options);
|
|
174
|
+
}
|
|
175
|
+
function getApiKeyPath(configDir) {
|
|
176
|
+
return path.join(configDir, ".api_key");
|
|
177
|
+
}
|
|
178
|
+
function getGeminiAuthPaths(configDir) {
|
|
179
|
+
return [
|
|
180
|
+
getApiKeyPath(configDir),
|
|
181
|
+
path.join(configDir, ".gemini.json"),
|
|
182
|
+
path.join(configDir, ".gemini.json.backup")
|
|
183
|
+
];
|
|
184
|
+
}
|
|
185
|
+
async function isAuthenticated(options) {
|
|
186
|
+
return geminiAuth.isAuthenticated(options);
|
|
187
|
+
}
|
|
188
|
+
async function isAuthenticatedTriState(_options) {
|
|
189
|
+
return "unknown";
|
|
190
|
+
}
|
|
191
|
+
async function ensureAuth(options) {
|
|
192
|
+
return geminiAuth.ensureAuth(options);
|
|
193
|
+
}
|
|
194
|
+
async function clearAuth(options) {
|
|
195
|
+
return geminiAuth.clearAuth(options);
|
|
196
|
+
}
|
|
197
|
+
async function nextAuthMenuAction(options) {
|
|
198
|
+
return geminiAuth.nextAuthMenuAction(options);
|
|
199
|
+
}
|
|
200
|
+
function getResolvedGeminiApiKey(options) {
|
|
201
|
+
const cliOverride = options?.apiKey ?? options?.env?.GEMINI_API_KEY ?? options?.env?.GOOGLE_API_KEY ?? null;
|
|
202
|
+
const config = loadProviderCredentialsConfig();
|
|
203
|
+
const configFileValue = config?.gemini?.apiKey ?? null;
|
|
204
|
+
return resolveCredential({
|
|
205
|
+
cliOverride,
|
|
206
|
+
configFileValue,
|
|
207
|
+
envValue: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY || void 0
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
function resolveGeminiNativeSettingsDir(options, env = process.env) {
|
|
211
|
+
if (options?.geminiConfigDir !== void 0) {
|
|
212
|
+
return options.geminiConfigDir;
|
|
213
|
+
}
|
|
214
|
+
const cliHome = env.GEMINI_CLI_HOME;
|
|
215
|
+
if (cliHome && cliHome.trim().length > 0) {
|
|
216
|
+
return cliHome.trim();
|
|
217
|
+
}
|
|
218
|
+
return path.join(env.HOME || homedir(), ".gemini");
|
|
219
|
+
}
|
|
220
|
+
async function getGeminiCliSelectedAuthType(options, env) {
|
|
221
|
+
const configDir = resolveGeminiNativeSettingsDir(options, env);
|
|
222
|
+
const settingsPath = path.join(configDir, "settings.json");
|
|
223
|
+
try {
|
|
224
|
+
const { readFile } = await import("fs/promises");
|
|
225
|
+
const raw = await readFile(settingsPath, "utf8");
|
|
226
|
+
const parsed = JSON.parse(String(raw));
|
|
227
|
+
const selectedType = parsed.security?.auth?.selectedType;
|
|
228
|
+
if (typeof selectedType === "string" && selectedType.trim().length > 0) {
|
|
229
|
+
return selectedType.trim();
|
|
230
|
+
}
|
|
231
|
+
const legacyMethod = parsed.auth?.method;
|
|
232
|
+
if (typeof legacyMethod === "string" && legacyMethod.trim().length > 0) {
|
|
233
|
+
return legacyMethod.trim();
|
|
234
|
+
}
|
|
235
|
+
} catch {
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
async function isGeminiCliOAuthSelected(options, env) {
|
|
241
|
+
const selectedType = await getGeminiCliSelectedAuthType(options, env);
|
|
242
|
+
return selectedType?.toLowerCase().startsWith("oauth") === true;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
export {
|
|
246
|
+
metadata,
|
|
247
|
+
resolveGeminiConfigDir,
|
|
248
|
+
getApiKeyPath,
|
|
249
|
+
getGeminiAuthPaths,
|
|
250
|
+
isAuthenticated,
|
|
251
|
+
isAuthenticatedTriState,
|
|
252
|
+
ensureAuth,
|
|
253
|
+
clearAuth,
|
|
254
|
+
nextAuthMenuAction,
|
|
255
|
+
getResolvedGeminiApiKey,
|
|
256
|
+
getGeminiCliSelectedAuthType,
|
|
257
|
+
isGeminiCliOAuthSelected,
|
|
258
|
+
auth_exports
|
|
259
|
+
};
|
|
260
|
+
//# sourceMappingURL=chunk-NRLY536M.js.map
|