@poetic-ai/poetic 1.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-JIMGP3LY.js +1597 -0
- package/dist/PromptStore-U6ZD3ZMQ.js +18 -0
- package/dist/actions-LUJPINLJ.js +322 -0
- package/dist/agent-ingest-3DJUJ7FU.js +53 -0
- package/dist/aggregator-DNCBINFO.js +12 -0
- package/dist/ai-judge-5QT5QJVU.js +156 -0
- package/dist/allowlist-grounding-RO6HKUFI.js +16 -0
- package/dist/allowlist-utils-23V7TJ3G.js +28 -0
- package/dist/anchored-turn-service-JULUCUIK.js +489 -0
- package/dist/api-transport-4TYTNLTJ.js +1087 -0
- package/dist/apply-completion-mode-AW2MOS3R.js +89 -0
- package/dist/artifact-migrator-23L45ISD.js +267 -0
- package/dist/ask-HWVV6QFR.js +135 -0
- package/dist/auth-5KEDKAPP.js +67 -0
- package/dist/auth-7TT3JINV.js +78 -0
- package/dist/auth-E6XUNZ5M.js +68 -0
- package/dist/auth-H3XDZE22.js +134 -0
- package/dist/auth-OC4E6633.js +71 -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-VPRWOWGU.js +80 -0
- package/dist/autoloop-cleanup-JOGKTLWA.js +109 -0
- package/dist/autoloop-evidence-gates-PCDALGVJ.js +38 -0
- package/dist/autoloop-gate-policy-Z7FVJVXV.js +175 -0
- package/dist/autoloop-helpers-2KTK43GL.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-J2VKKBXQ.js +85 -0
- package/dist/autoloop-termination-summary-RN75F422.js +58 -0
- package/dist/autoloop-trajectory-XFIEXP5Z.js +282 -0
- package/dist/autoloop-wall-clock-T7ZVIQOC.js +12 -0
- package/dist/autonomous-loop-controller-PW4XVFGQ.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-VCSBJVRN.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-YHGRB4QB.js +71 -0
- package/dist/change-summary-WY7J5TOX.js +33 -0
- package/dist/chunk-23A26CSN.js +123 -0
- package/dist/chunk-27UTJD3M.js +265 -0
- package/dist/chunk-2A5CILN3.js +310 -0
- package/dist/chunk-2AQUWJPW.js +225 -0
- package/dist/chunk-2BZ53J6J.js +2344 -0
- package/dist/chunk-2DY5KNVM.js +276 -0
- package/dist/chunk-2EIA4RBE.js +659 -0
- package/dist/chunk-2IUXIGQD.js +1064 -0
- package/dist/chunk-2N42MS2Z.js +2193 -0
- package/dist/chunk-2QJ3H3L7.js +42 -0
- package/dist/chunk-2QLYTVYX.js +791 -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-34CNP2HB.js +148 -0
- package/dist/chunk-35P3W3JX.js +456 -0
- package/dist/chunk-36PEBZAF.js +18 -0
- package/dist/chunk-3AOKYKA7.js +22 -0
- package/dist/chunk-3BCUNHKF.js +475 -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-3M57DADF.js +44 -0
- package/dist/chunk-3S62LLWJ.js +543 -0
- package/dist/chunk-3ZPQLGV7.js +2904 -0
- package/dist/chunk-44N5WZZH.js +45 -0
- package/dist/chunk-45FPSA3B.js +125 -0
- package/dist/chunk-4BJ3O4RQ.js +929 -0
- package/dist/chunk-4BOP7T6L.js +2321 -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-4GSN5O5J.js +62 -0
- package/dist/chunk-4HN6DF7V.js +1027 -0
- package/dist/chunk-4IAPOG5V.js +415 -0
- package/dist/chunk-4IYIZQWV.js +48 -0
- package/dist/chunk-4NXPXE62.js +84 -0
- package/dist/chunk-4RCCF5BR.js +712 -0
- package/dist/chunk-4V7NAQ4R.js +19527 -0
- package/dist/chunk-4VJITV4P.js +445 -0
- package/dist/chunk-4YX7J6QL.js +1859 -0
- package/dist/chunk-527OBWQB.js +338 -0
- package/dist/chunk-5D4A7E3D.js +448 -0
- package/dist/chunk-5DLKYTQX.js +4003 -0
- package/dist/chunk-5EERLVZB.js +139 -0
- package/dist/chunk-5H72XE4H.js +256 -0
- package/dist/chunk-5HDP7XZG.js +91 -0
- package/dist/chunk-5LAMRH4X.js +969 -0
- package/dist/chunk-5LTN43AS.js +1972 -0
- package/dist/chunk-5RBHQYDB.js +2206 -0
- package/dist/chunk-5WCQRDRB.js +588 -0
- package/dist/chunk-5WRLK5KW.js +700 -0
- package/dist/chunk-5ZCXC23G.js +595 -0
- package/dist/chunk-6BM72ZMG.js +31 -0
- package/dist/chunk-6EDAJH2I.js +68 -0
- package/dist/chunk-6EQKFDBH.js +457 -0
- package/dist/chunk-6MFRHTRI.js +115 -0
- package/dist/chunk-6TZJRKNW.js +321 -0
- package/dist/chunk-6V7HGQFZ.js +20 -0
- package/dist/chunk-6VWVO2TU.js +3746 -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-73BBJOKA.js +263 -0
- package/dist/chunk-73NCTWKL.js +188 -0
- package/dist/chunk-77I6G4CO.js +1 -0
- package/dist/chunk-7DHRDWFS.js +3104 -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-7GPCEFUV.js +270 -0
- package/dist/chunk-7IL4A2PP.js +948 -0
- package/dist/chunk-7MMLMXO6.js +3679 -0
- package/dist/chunk-7QCZSLBH.js +1 -0
- package/dist/chunk-7R2WLDOS.js +62 -0
- package/dist/chunk-7T7RUJI7.js +949 -0
- package/dist/chunk-A2WKSVX7.js +43 -0
- package/dist/chunk-A3YGID55.js +133 -0
- package/dist/chunk-A722DEVA.js +14 -0
- package/dist/chunk-ACDIT7OP.js +1376 -0
- package/dist/chunk-ACKIPAOJ.js +302 -0
- package/dist/chunk-APPNGGN7.js +365 -0
- package/dist/chunk-APV6MK5E.js +137 -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-AURFMVCD.js +899 -0
- package/dist/chunk-AX6GWE7V.js +47 -0
- package/dist/chunk-AY5EWJPF.js +385 -0
- package/dist/chunk-BAV2HJXS.js +194 -0
- package/dist/chunk-BBHRN366.js +89 -0
- package/dist/chunk-BBPSTTPA.js +1004 -0
- package/dist/chunk-BDATUDDJ.js +992 -0
- package/dist/chunk-BKE5PG5L.js +20414 -0
- package/dist/chunk-BLPHWMDK.js +797 -0
- package/dist/chunk-BSE4R6XD.js +322 -0
- package/dist/chunk-BXGMAU4A.js +396 -0
- package/dist/chunk-BXI4NXL3.js +507 -0
- package/dist/chunk-BZU2O43F.js +1125 -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-CJC6GZ46.js +457 -0
- package/dist/chunk-CKCDGXIV.js +408 -0
- package/dist/chunk-CKNX3TTP.js +10338 -0
- package/dist/chunk-CLKSETWE.js +10 -0
- package/dist/chunk-CP7H3HSP.js +1552 -0
- package/dist/chunk-CPLEWXNZ.js +66 -0
- package/dist/chunk-CQM3A35X.js +844 -0
- package/dist/chunk-CS6P76D3.js +103 -0
- package/dist/chunk-CTLUBNCW.js +622 -0
- package/dist/chunk-CUSRN6RJ.js +632 -0
- package/dist/chunk-D5EP5D2W.js +26 -0
- package/dist/chunk-D5RYINO7.js +412 -0
- package/dist/chunk-DBFS4HMH.js +751 -0
- package/dist/chunk-DC4ZYMXJ.js +115 -0
- package/dist/chunk-DCBZP442.js +9243 -0
- package/dist/chunk-DCYF7EKG.js +26 -0
- package/dist/chunk-DDMAFNUK.js +5351 -0
- package/dist/chunk-DF5SLDE4.js +966 -0
- package/dist/chunk-DJFW7SMX.js +348 -0
- package/dist/chunk-DQFLLBJW.js +121 -0
- package/dist/chunk-DSFM56OA.js +1203 -0
- package/dist/chunk-DTY4APYV.js +218 -0
- package/dist/chunk-DXH5JBRS.js +437 -0
- package/dist/chunk-E3NTPHEO.js +194 -0
- package/dist/chunk-E74LUIID.js +302 -0
- package/dist/chunk-EI57M5BI.js +194 -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-ETYDXCK7.js +679 -0
- package/dist/chunk-EYRH3W74.js +239 -0
- package/dist/chunk-F23DIWNN.js +1024 -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-FD4ERYEG.js +22 -0
- package/dist/chunk-FH7WOJAE.js +79 -0
- package/dist/chunk-FHOWVDF5.js +1342 -0
- package/dist/chunk-FKAUPHMR.js +96 -0
- package/dist/chunk-FONNFJXA.js +137 -0
- package/dist/chunk-FQ7FSZRW.js +75 -0
- package/dist/chunk-FRG57FPM.js +240 -0
- package/dist/chunk-FUVP64ER.js +31 -0
- package/dist/chunk-FYOILAN5.js +6818 -0
- package/dist/chunk-G35UYQ6Z.js +69 -0
- package/dist/chunk-G36W2T2S.js +1143 -0
- package/dist/chunk-G3L2L5XZ.js +49 -0
- package/dist/chunk-G4THLFV3.js +148 -0
- package/dist/chunk-GAFJEYLK.js +29 -0
- package/dist/chunk-GFGYB2ZU.js +1689 -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-GK37ILCX.js +1231 -0
- package/dist/chunk-GKN3HMN4.js +2809 -0
- package/dist/chunk-GNVDBVJP.js +156 -0
- package/dist/chunk-GPEL3FBM.js +924 -0
- package/dist/chunk-GPSNGPZS.js +1604 -0
- package/dist/chunk-GSGD5E4C.js +30 -0
- package/dist/chunk-GSUQJJXQ.js +331 -0
- package/dist/chunk-GSV226X6.js +110 -0
- package/dist/chunk-H2AYQIHW.js +224 -0
- package/dist/chunk-H66DXFS5.js +1374 -0
- package/dist/chunk-H6G7QRMQ.js +35 -0
- package/dist/chunk-H7JAGHZT.js +59 -0
- package/dist/chunk-H7ZEFECA.js +316 -0
- package/dist/chunk-HAC6EHZZ.js +79 -0
- package/dist/chunk-HIO33P3G.js +19 -0
- package/dist/chunk-HMVQIPH3.js +547 -0
- package/dist/chunk-HOYBYAOA.js +257 -0
- package/dist/chunk-HX5P3CSP.js +1784 -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-IC7I6YIJ.js +301 -0
- package/dist/chunk-IDCSOZVN.js +78 -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-IRFBN336.js +878 -0
- package/dist/chunk-IUXNGKA6.js +152 -0
- package/dist/chunk-IV2RVAN7.js +1356 -0
- package/dist/chunk-IZYIQQ7X.js +53 -0
- package/dist/chunk-J3UUR7DE.js +210 -0
- package/dist/chunk-J54VUAY2.js +566 -0
- package/dist/chunk-J62KPGII.js +464 -0
- package/dist/chunk-J6P3FWWW.js +130 -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-JQNJB2BB.js +2440 -0
- package/dist/chunk-JRVNSWSQ.js +2626 -0
- package/dist/chunk-JSWMRQYG.js +28 -0
- package/dist/chunk-JZKNBBIB.js +152 -0
- package/dist/chunk-K54Y7MLK.js +160 -0
- package/dist/chunk-K65546RE.js +183 -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-KP6YILMU.js +482 -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-KZ5CJVBP.js +1813 -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-LG3PDRTR.js +2872 -0
- package/dist/chunk-LGHII5ET.js +23 -0
- package/dist/chunk-LH5QY22X.js +1205 -0
- package/dist/chunk-LIVJ6266.js +438 -0
- package/dist/chunk-LKRAR3IH.js +276 -0
- package/dist/chunk-LO23NABI.js +3063 -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-LRGMHROI.js +79 -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-M3HQYKQX.js +308 -0
- package/dist/chunk-M6GVSPEH.js +1016 -0
- package/dist/chunk-MF5HP6XV.js +221 -0
- package/dist/chunk-MHLCBZJB.js +328 -0
- package/dist/chunk-MN6PL4AN.js +120 -0
- package/dist/chunk-MOEY65Z6.js +5678 -0
- package/dist/chunk-MQ4WA34C.js +206 -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-N4VTRA7K.js +131 -0
- package/dist/chunk-N5DX4JAK.js +12 -0
- package/dist/chunk-N65O4XTH.js +5011 -0
- package/dist/chunk-NEQUQHOX.js +223 -0
- package/dist/chunk-NGK6PEOG.js +25 -0
- package/dist/chunk-NJVD4PWE.js +1033 -0
- package/dist/chunk-NM6PMYY4.js +768 -0
- package/dist/chunk-NN4PJDHP.js +708 -0
- package/dist/chunk-NP2V3L7K.js +226 -0
- package/dist/chunk-NRLY536M.js +260 -0
- package/dist/chunk-NRNE225N.js +1270 -0
- package/dist/chunk-NS2K2GTP.js +605 -0
- package/dist/chunk-NS33V3IM.js +51 -0
- package/dist/chunk-NSHASMZZ.js +71 -0
- package/dist/chunk-NWOYOA6H.js +378 -0
- package/dist/chunk-NWRUSEXG.js +322 -0
- package/dist/chunk-NZGDAWIP.js +1905 -0
- package/dist/chunk-O47UOKU3.js +395 -0
- package/dist/chunk-O4G2W3ST.js +9831 -0
- package/dist/chunk-O6V4PNLO.js +63 -0
- package/dist/chunk-OA4GPILI.js +624 -0
- package/dist/chunk-OGMSYL6J.js +227 -0
- package/dist/chunk-OIS7J26S.js +319 -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-OYZYO7TV.js +47 -0
- package/dist/chunk-OZ4REHIN.js +4386 -0
- package/dist/chunk-P47VN5F4.js +282 -0
- package/dist/chunk-P5I4X7A7.js +353 -0
- package/dist/chunk-P6VQROCO.js +594 -0
- package/dist/chunk-P7CQGPLS.js +30 -0
- package/dist/chunk-PCAGC5MR.js +1763 -0
- package/dist/chunk-PFTQBXS6.js +5181 -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-PL37JDNA.js +189 -0
- package/dist/chunk-PTH5E5XO.js +195 -0
- package/dist/chunk-PW6AXLQC.js +4128 -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-Q5XIXSHX.js +271 -0
- package/dist/chunk-QGJDMEOV.js +34 -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-QVFV5IP2.js +232 -0
- package/dist/chunk-QVZMFDYG.js +29 -0
- package/dist/chunk-R35PEUKH.js +511 -0
- package/dist/chunk-R4UWBC35.js +200 -0
- package/dist/chunk-R6MLCREW.js +44 -0
- package/dist/chunk-R6W23LKN.js +254 -0
- package/dist/chunk-R7XDDX2A.js +4007 -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-RJAAKDRX.js +17 -0
- package/dist/chunk-ROMHOSMQ.js +185 -0
- package/dist/chunk-RWREC3KJ.js +517 -0
- package/dist/chunk-RYNETRDJ.js +118 -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-S5OIDFRM.js +302 -0
- package/dist/chunk-SCW4ZF6R.js +150 -0
- package/dist/chunk-SLS2N4PH.js +2213 -0
- package/dist/chunk-SNLBO4BF.js +247 -0
- package/dist/chunk-SP3LFU6B.js +60 -0
- package/dist/chunk-SQQTDDQA.js +537 -0
- package/dist/chunk-STV6LYYE.js +45 -0
- package/dist/chunk-SURZ2WFE.js +326 -0
- package/dist/chunk-SZ7DL357.js +1047 -0
- package/dist/chunk-T5E4NQCM.js +5742 -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-TGQZHDY2.js +2373 -0
- package/dist/chunk-TJJZ2OKV.js +6783 -0
- package/dist/chunk-TRSVUPCX.js +25 -0
- package/dist/chunk-TSXGRLPR.js +107 -0
- package/dist/chunk-U2S3YEX3.js +224 -0
- package/dist/chunk-U45RTRGY.js +818 -0
- package/dist/chunk-U6C3VVWS.js +13 -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-UMAKSB4Z.js +284 -0
- package/dist/chunk-UR2IBGIM.js +521 -0
- package/dist/chunk-UUH2RVKS.js +585 -0
- package/dist/chunk-UVJ4PJDK.js +4533 -0
- package/dist/chunk-V53UG2OT.js +9924 -0
- package/dist/chunk-V72RMBM4.js +48 -0
- package/dist/chunk-VBNCKCCI.js +16 -0
- package/dist/chunk-VNSYKC25.js +24 -0
- package/dist/chunk-VPHVFK4A.js +1984 -0
- package/dist/chunk-VTLNJQ44.js +133 -0
- package/dist/chunk-VTW7HP3R.js +100 -0
- package/dist/chunk-VVGEPBPS.js +218 -0
- package/dist/chunk-VVLLL7I4.js +166 -0
- package/dist/chunk-VX3UMWB7.js +483 -0
- package/dist/chunk-VXF4Q3FW.js +20 -0
- package/dist/chunk-W3JMT2YY.js +712 -0
- package/dist/chunk-WDUORIHF.js +877 -0
- package/dist/chunk-WDVTY4U6.js +148 -0
- package/dist/chunk-WIFZCHEG.js +12566 -0
- package/dist/chunk-WIRN3F75.js +736 -0
- package/dist/chunk-WMPU2UOV.js +82 -0
- package/dist/chunk-WTOKKE2V.js +784 -0
- package/dist/chunk-WX5IRLF6.js +740 -0
- package/dist/chunk-WZ6U3O7I.js +1581 -0
- package/dist/chunk-XAONGNST.js +57 -0
- package/dist/chunk-XB5YLCLB.js +13 -0
- package/dist/chunk-XEP5NQ5Y.js +688 -0
- package/dist/chunk-XGYF2QMZ.js +351 -0
- package/dist/chunk-XHEKQENB.js +255 -0
- package/dist/chunk-XNO4FM6X.js +1124 -0
- package/dist/chunk-XPHKYHO4.js +878 -0
- package/dist/chunk-XPK2I4NC.js +405 -0
- package/dist/chunk-XPU2XADL.js +2175 -0
- package/dist/chunk-XQD2B6BB.js +507 -0
- package/dist/chunk-XT2ZQVTC.js +558 -0
- package/dist/chunk-XTXJGGUV.js +351 -0
- package/dist/chunk-XUXVDPSZ.js +50 -0
- package/dist/chunk-XV7NZL4B.js +57 -0
- package/dist/chunk-XZE4XARH.js +563 -0
- package/dist/chunk-XZYR5EDO.js +152 -0
- package/dist/chunk-Y3J4JMTU.js +61 -0
- package/dist/chunk-Y55LZN5U.js +52 -0
- package/dist/chunk-Y5VN7DMP.js +112 -0
- package/dist/chunk-Y67VAHN4.js +459 -0
- package/dist/chunk-YAXSKEUH.js +3544 -0
- package/dist/chunk-YB3JD4E6.js +975 -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-YTYIEZQY.js +119 -0
- package/dist/chunk-YVORHQ2S.js +579 -0
- package/dist/chunk-Z2CUQDAR.js +3429 -0
- package/dist/chunk-Z2KYOFHS.js +7000 -0
- package/dist/chunk-Z6PC7QX6.js +161 -0
- package/dist/chunk-ZDTGECTN.js +235 -0
- package/dist/chunk-ZIPWI2LY.js +151 -0
- package/dist/chunk-ZSKKMTQJ.js +554 -0
- package/dist/chunk-ZTT5IVPY.js +1160 -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-IXL26KJT.js +40 -0
- package/dist/cli-validation-WLXWLUJL.js +111 -0
- package/dist/commit-utils-P7CRJF5N.js +202 -0
- package/dist/compete-config-resolver-R5ULXMYH.js +76 -0
- package/dist/compete-request-62JESVET.js +364 -0
- package/dist/compete-results-QEPG6FZX.js +208 -0
- package/dist/competition-outcome-tracker-R32OOZ43.js +38 -0
- package/dist/config-JCOKXOQT.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-7T4E2BQO.js +67 -0
- package/dist/config-validator-KKOHOW7O.js +72 -0
- package/dist/cost-YC42XUF3.js +53 -0
- package/dist/coverage-orchestrator-CISNKJC2.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-GJOYE7AE.js +186 -0
- package/dist/domain-analyzer-AWF3RP6E.js +29 -0
- package/dist/ensure-initialized-744DIZEZ.js +52 -0
- package/dist/entry.js +940 -0
- package/dist/environment-YS45U5ZI.js +81 -0
- package/dist/error-parser-core-PPZ36A4S.js +50 -0
- package/dist/escalation-ladder-MKTCEGSA.js +130 -0
- package/dist/evaluation-context-KV4GZNN7.js +35 -0
- package/dist/evidence-plan-resolver-GBSYSAPX.js +85 -0
- package/dist/execution-data-writer-3ODTBDLH.js +53 -0
- package/dist/execution-policy-applier-ZHD3DCF3.js +31 -0
- package/dist/execution-preflight-Z4Y64V3I.js +209 -0
- package/dist/execution-roles-R3DPPMD3.js +66 -0
- package/dist/exit-code-error-Z4SW2DVK.js +14 -0
- package/dist/external-temp-cleanup-N2RZH4QP.js +311 -0
- package/dist/factory-XBN7DFIM.js +149 -0
- package/dist/file-utils-XIVR2ZMA.js +47 -0
- package/dist/flywheel-autoloop-executor-UILGOFFK.js +249 -0
- package/dist/flywheel-competition-executor-JOBEXTRB.js +259 -0
- package/dist/flywheel-executor-6JFLA6J5.js +369 -0
- package/dist/flywheel-git-isolation-UC5NIEVU.js +48 -0
- package/dist/flywheel-manifest-5UC4VBMA.js +108 -0
- package/dist/flywheel-model-defaults-7CVKP53V.js +27 -0
- package/dist/flywheel-preflight-XEY5SHM6.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-DPVWWIYY.js +73 -0
- package/dist/git-worktree-IY6V6DUO.js +18 -0
- package/dist/github-pr-manager-4LXEKJTA.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 +108661 -0
- package/dist/instructions-6BURLQJC.js +64 -0
- package/dist/invoke-provider-auth-GRUYP44M.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-BJRFLGK4.js +23 -0
- package/dist/linux-host-class-UY4KVLFD.js +29 -0
- package/dist/llm-judge-executor-F7Z3HO77.js +133 -0
- package/dist/local-executor-CEHWE2PL.js +223 -0
- package/dist/logger-33TR6EE5.js +72 -0
- package/dist/loop-spec-XTLQAVZ7.js +191 -0
- package/dist/manager-2HJG5CLT.js +25 -0
- package/dist/matrix-prompt-builder-6UDN5X3F.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-XGYBG2DW.js +72 -0
- package/dist/next-PB5ZXZKB.js +90 -0
- package/dist/next-ZBDK725T.js +69 -0
- package/dist/optimization-config-resolver-O6WKR47U.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-VAGYBV3J.js +270 -0
- package/dist/plan-backlog-show-fast-SG2CZPW3.js +406 -0
- package/dist/plan-sprint-list-fast-LURAX47V.js +162 -0
- package/dist/plan-sprint-status-fast-FJAODCHD.js +208 -0
- package/dist/plan-task-status-fast-HNYBMQI4.js +349 -0
- package/dist/plan-to-flywheel-Z4U3GWPN.js +456 -0
- package/dist/planning-backlog-3CQ5QQBQ.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-SE5EVXAP.js +149 -0
- package/dist/prompts-WZZPGWBX.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-N5X57V3Y.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-YRHMQAEI.js +70 -0
- package/dist/quickstart-FIRLKGJI.js +62 -0
- package/dist/readiness-VZTMSG6J.js +96 -0
- package/dist/registry-YODFY77A.js +153 -0
- package/dist/repair-helpers-TTV5FEF4.js +117 -0
- package/dist/repo-root-2IGD4H7X.js +22 -0
- package/dist/resolution-engine-D6TX6FRG.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-F5WQEUOM.js +160 -0
- package/dist/run-poetic-tui-J6LWRJUP.js +13517 -0
- package/dist/run-simulation.js +376 -0
- package/dist/runner-CS2TNGHA.js +1092 -0
- package/dist/runner-HHH7ZN2Z.js +1571 -0
- package/dist/safety-OCC4KJJR.js +64 -0
- package/dist/safety-stanza-7SV3HGG3.js +60 -0
- package/dist/sandbox-32QXJEMV.js +81 -0
- package/dist/sandbox-RSO7VP6V.js +94 -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-UIXPYOXQ.js +338 -0
- package/dist/sprint-bridge-4BHMSC3M.js +68 -0
- package/dist/sprint-execution-service-2B7WHL5L.js +311 -0
- package/dist/sprint-manager-IDQUDNQI.js +91 -0
- package/dist/sqlite-wrapper-UDWCTNLJ.js +17 -0
- package/dist/stale-cleanup-orchestrator-XWXV7KCZ.js +62 -0
- package/dist/storage-access-F6ALDN4S.js +22 -0
- package/dist/synthesis-XD6EDVHF.js +185 -0
- package/dist/task-classifier-LNLXSHOM.js +494 -0
- package/dist/task-list-fast-PTMA4LUC.js +147 -0
- package/dist/task-manager-XAT7GOWB.js +93 -0
- package/dist/task-splitter-U7DJ7W6A.js +79 -0
- package/dist/task-type-detector-OLVOMXZO.js +21 -0
- package/dist/task-type-resolver-KKNQYSB4.js +42 -0
- package/dist/telemetry-5HWBBXLX.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-XUOZNZZ6.js +125 -0
- package/dist/token-estimator-MEQUL3EJ.js +37 -0
- package/dist/transports-KNSSV2V4.js +255 -0
- package/dist/unified-cost-tracker-4TFRBVPR.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-KLRNG6XA.js +33 -0
- package/dist/variant-state-cleanup-MZGGLQAJ.js +280 -0
- package/dist/variant-success-PJXWE3ZV.js +12 -0
- package/dist/variant-worker-KUWKBLAH.js +4196 -0
- package/dist/variant-worker.js +24 -0
- package/dist/variants-JE2FSAQS.js +233 -0
- package/dist/verification-toolchains-V24UHW6Q.js +28 -0
- package/dist/verify-commands-H3DTCSGI.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-7SA2VS2Y.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 +7042 -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/npm-shrinkwrap.json +4950 -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,554 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeProviderForEstimator
|
|
3
|
+
} from "./chunk-LWCBNGH6.js";
|
|
4
|
+
import {
|
|
5
|
+
stripPoeticContextBlocks
|
|
6
|
+
} from "./chunk-VX3UMWB7.js";
|
|
7
|
+
import {
|
|
8
|
+
ModelMetadataResolver,
|
|
9
|
+
findOpencodeFallbackContextWindow,
|
|
10
|
+
getOpencodeCatalogEntry,
|
|
11
|
+
isExactCompatibilityMatch,
|
|
12
|
+
resolveOpencodeContextWindow
|
|
13
|
+
} from "./chunk-XT2ZQVTC.js";
|
|
14
|
+
import {
|
|
15
|
+
splitClaudeModelContextSuffix
|
|
16
|
+
} from "./chunk-MWHLBPNU.js";
|
|
17
|
+
|
|
18
|
+
// src/orchestrator/token-estimator.ts
|
|
19
|
+
var UTILIZATION_WARN_PERCENT = 80;
|
|
20
|
+
var UTILIZATION_SPLIT_PERCENT = 85;
|
|
21
|
+
var CONTEXT_WINDOWS = {
|
|
22
|
+
// Provider marker for normalization; Claude context windows return early
|
|
23
|
+
// through ProviderRegistry so model metadata stays in providers.yaml.
|
|
24
|
+
claude: {},
|
|
25
|
+
// Provider marker for normalization; Codex context windows return early
|
|
26
|
+
// through ProviderRegistry so model metadata stays in providers.yaml.
|
|
27
|
+
codex: {},
|
|
28
|
+
// Compatibility-only estimator bucket for OpenAI-family model names.
|
|
29
|
+
// This is not a runnable Poetic provider; Codex owns OpenAI-backed CLI execution.
|
|
30
|
+
openai: {},
|
|
31
|
+
// Provider marker for normalization; Gemini context windows return early
|
|
32
|
+
// through ProviderRegistry so model metadata stays in providers.yaml.
|
|
33
|
+
gemini: {},
|
|
34
|
+
// Provider marker for normalization; Cursor context windows resolve through
|
|
35
|
+
// ProviderRegistry first and keep conservative fallbacks for legacy aliases.
|
|
36
|
+
cursor: {},
|
|
37
|
+
// Provider marker for normalization; OpenCode context windows return early
|
|
38
|
+
// through the provider catalog so runtime and estimator share one fallback table.
|
|
39
|
+
opencode: {},
|
|
40
|
+
// Provider marker for normalization; Copilot context windows return early
|
|
41
|
+
// through ProviderRegistry, with legacy fallbacks for removed aliases.
|
|
42
|
+
copilot: {}
|
|
43
|
+
};
|
|
44
|
+
function lookupProviderEntry(table, provider) {
|
|
45
|
+
return Object.hasOwn(table, provider) ? table[provider] : void 0;
|
|
46
|
+
}
|
|
47
|
+
function isKnownEstimatorProviderInput(provider) {
|
|
48
|
+
const normalizedProvider = (provider || "").toLowerCase().trim();
|
|
49
|
+
if (!normalizedProvider) return false;
|
|
50
|
+
if (normalizedProvider in CONTEXT_WINDOWS) return true;
|
|
51
|
+
return ESTIMATOR_PROVIDER_ALIASES.has(normalizedProvider);
|
|
52
|
+
}
|
|
53
|
+
var DEFAULT_CONTEXT_WINDOW = 128e3;
|
|
54
|
+
var GPT_FAMILY = "gpt";
|
|
55
|
+
var CLAUDE_FAMILY = "claude";
|
|
56
|
+
var ESTIMATOR_PROVIDER_ALIASES = /* @__PURE__ */ new Set(["anthropic", "google", "github", "opencode"]);
|
|
57
|
+
var OPENAI_TOKENIZER_PROVIDERS = /* @__PURE__ */ new Set([
|
|
58
|
+
"codex",
|
|
59
|
+
"openai",
|
|
60
|
+
"copilot"
|
|
61
|
+
]);
|
|
62
|
+
var CLAUDE_TOKENIZER_PROVIDERS = /* @__PURE__ */ new Set(["claude"]);
|
|
63
|
+
var GPT_4_TIKTOKEN_MODEL = [GPT_FAMILY, "4"].join("-");
|
|
64
|
+
var GPT_4_TURBO_MODEL = [GPT_FAMILY, "4", "turbo"].join("-");
|
|
65
|
+
var GPT_4_TURBO_PREVIEW_TIKTOKEN_MODEL = [GPT_FAMILY, "4", "turbo", "preview"].join("-");
|
|
66
|
+
var GPT_4O_TIKTOKEN_MODEL = `${GPT_FAMILY}-4o`;
|
|
67
|
+
var GPT_4O_MINI_TIKTOKEN_MODEL = `${GPT_FAMILY}-4o-mini`;
|
|
68
|
+
var GPT_3_5_TURBO_TIKTOKEN_MODEL = `${GPT_FAMILY}-3.5-turbo`;
|
|
69
|
+
var GPT_3_5_TIKTOKEN_ALIAS = `${GPT_FAMILY}-3.5`;
|
|
70
|
+
var GPT_5_TIKTOKEN_ALIAS = [GPT_FAMILY, "5"].join("-");
|
|
71
|
+
var GPT_5_CODEX_MINI_TIKTOKEN_ALIAS = [GPT_FAMILY, "5", "codex", "mini"].join("-");
|
|
72
|
+
var CLAUDE_OPUS_4_1_COMPAT_MODEL = [CLAUDE_FAMILY, "opus", "4", "1"].join("-");
|
|
73
|
+
var CLAUDE_3_OPUS_COMPAT_MODEL = [CLAUDE_FAMILY, "3", "opus"].join("-");
|
|
74
|
+
var CLAUDE_3_SONNET_COMPAT_MODEL = [CLAUDE_FAMILY, "3", "sonnet"].join("-");
|
|
75
|
+
var CLAUDE_3_HAIKU_COMPAT_MODEL = [CLAUDE_FAMILY, "3", "haiku"].join("-");
|
|
76
|
+
var CLAUDE_LEGACY_CONTEXT_WINDOWS = {
|
|
77
|
+
[CLAUDE_OPUS_4_1_COMPAT_MODEL]: 2e5,
|
|
78
|
+
"sonnet-4": 2e5,
|
|
79
|
+
"sonnet-3-5": 2e5,
|
|
80
|
+
"sonnet-3": 2e5,
|
|
81
|
+
[CLAUDE_3_OPUS_COMPAT_MODEL]: 2e5,
|
|
82
|
+
[CLAUDE_3_SONNET_COMPAT_MODEL]: 2e5,
|
|
83
|
+
[CLAUDE_3_HAIKU_COMPAT_MODEL]: 2e5
|
|
84
|
+
};
|
|
85
|
+
var CODEX_LEGACY_CONTEXT_WINDOWS = {
|
|
86
|
+
codex: 8e3
|
|
87
|
+
};
|
|
88
|
+
var COPILOT_LEGACY_CONTEXT_WINDOWS = {
|
|
89
|
+
[GPT_4_TIKTOKEN_MODEL]: 128e3,
|
|
90
|
+
[GPT_3_5_TURBO_TIKTOKEN_MODEL]: 16e3
|
|
91
|
+
};
|
|
92
|
+
function normalizeModelKey(model) {
|
|
93
|
+
return model.trim().toLowerCase();
|
|
94
|
+
}
|
|
95
|
+
function findFallbackContextWindowMatch(model, windows) {
|
|
96
|
+
const normalizedModel = normalizeModelKey(model);
|
|
97
|
+
if (normalizedModel === "") {
|
|
98
|
+
return void 0;
|
|
99
|
+
}
|
|
100
|
+
const exactMatch = windows[normalizedModel];
|
|
101
|
+
if (exactMatch !== void 0) {
|
|
102
|
+
return { contextWindow: exactMatch, exact: true };
|
|
103
|
+
}
|
|
104
|
+
for (const [knownModel, contextWindow] of Object.entries(windows)) {
|
|
105
|
+
if (normalizedModel.includes(knownModel) || knownModel.includes(normalizedModel)) {
|
|
106
|
+
return { contextWindow, exact: false };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return void 0;
|
|
110
|
+
}
|
|
111
|
+
var DEFAULT_CHARS_PER_TOKEN = 4;
|
|
112
|
+
var HEURISTIC_CHARS_PER_TOKEN = {
|
|
113
|
+
// Gemini uses similar tokenization to GPT-4 (~4 chars per token)
|
|
114
|
+
gemini: 4
|
|
115
|
+
};
|
|
116
|
+
var MODEL_CONFIDENCE_RESOLVERS = {
|
|
117
|
+
openai: (_provider, model) => getOpenAiCompatibilityConfidence(model) ?? 0.3,
|
|
118
|
+
opencode: (_provider, model) => getOpencodeCatalogConfidence(model) ?? 0.3,
|
|
119
|
+
cursor: (_provider, model) => normalizeModelKey(model) === "auto" ? 0.8 : void 0,
|
|
120
|
+
claude: (provider, model) => {
|
|
121
|
+
const legacyConfidence = getLegacyContextConfidence(model, CLAUDE_LEGACY_CONTEXT_WINDOWS);
|
|
122
|
+
if (legacyConfidence === 1) {
|
|
123
|
+
return legacyConfidence;
|
|
124
|
+
}
|
|
125
|
+
const registryConfidence = getProviderRegistryModelConfidence(provider, model);
|
|
126
|
+
if (registryConfidence !== void 0) {
|
|
127
|
+
return registryConfidence;
|
|
128
|
+
}
|
|
129
|
+
return legacyConfidence;
|
|
130
|
+
},
|
|
131
|
+
codex: (_provider, model) => CODEX_LEGACY_CONTEXT_WINDOWS[normalizeModelKey(model)] !== void 0 ? 0.9 : void 0,
|
|
132
|
+
copilot: (provider, model) => {
|
|
133
|
+
const exactLegacyConfidence = COPILOT_LEGACY_CONTEXT_WINDOWS[normalizeModelKey(model)] !== void 0 ? 0.9 : void 0;
|
|
134
|
+
if (exactLegacyConfidence !== void 0) {
|
|
135
|
+
return exactLegacyConfidence;
|
|
136
|
+
}
|
|
137
|
+
const registryConfidence = getProviderRegistryModelConfidence(provider, model);
|
|
138
|
+
if (registryConfidence !== void 0) {
|
|
139
|
+
return registryConfidence;
|
|
140
|
+
}
|
|
141
|
+
return getLegacyContextConfidence(model, COPILOT_LEGACY_CONTEXT_WINDOWS, 0.9) ?? 0.3;
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
var CONTEXT_WINDOW_RESOLVERS = {
|
|
145
|
+
opencode: (model) => resolveOpencodeContextWindow(model, DEFAULT_CONTEXT_WINDOW),
|
|
146
|
+
claude: (model) => {
|
|
147
|
+
const baseModel = splitClaudeModelContextSuffix(model).base;
|
|
148
|
+
return CLAUDE_LEGACY_CONTEXT_WINDOWS[normalizeModelKey(baseModel)];
|
|
149
|
+
},
|
|
150
|
+
codex: (model) => CODEX_LEGACY_CONTEXT_WINDOWS[normalizeModelKey(model)],
|
|
151
|
+
copilot: (model) => COPILOT_LEGACY_CONTEXT_WINDOWS[normalizeModelKey(model)]
|
|
152
|
+
};
|
|
153
|
+
var PROVIDER_OVERHEAD_PROFILES = {
|
|
154
|
+
claude: {
|
|
155
|
+
systemPromptTokens: 1500,
|
|
156
|
+
outputReservePercent: 0.3
|
|
157
|
+
// 30% for Claude's verbose outputs
|
|
158
|
+
},
|
|
159
|
+
codex: {
|
|
160
|
+
systemPromptTokens: 800,
|
|
161
|
+
outputReservePercent: 0.25
|
|
162
|
+
},
|
|
163
|
+
openai: {
|
|
164
|
+
systemPromptTokens: 800,
|
|
165
|
+
outputReservePercent: 0.25
|
|
166
|
+
},
|
|
167
|
+
gemini: {
|
|
168
|
+
systemPromptTokens: 1e3,
|
|
169
|
+
outputReservePercent: 0.25
|
|
170
|
+
},
|
|
171
|
+
cursor: {
|
|
172
|
+
systemPromptTokens: 1e3,
|
|
173
|
+
outputReservePercent: 0.25
|
|
174
|
+
},
|
|
175
|
+
opencode: {
|
|
176
|
+
systemPromptTokens: 1e3,
|
|
177
|
+
outputReservePercent: 0.25
|
|
178
|
+
},
|
|
179
|
+
copilot: {
|
|
180
|
+
systemPromptTokens: 800,
|
|
181
|
+
outputReservePercent: 0.25
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
var GUESSED_MODEL_MATCH_CONFIDENCE = 0.4;
|
|
185
|
+
function isGuessedModelMatch(resolved, substringMatched) {
|
|
186
|
+
if (!resolved) return false;
|
|
187
|
+
if (resolved.matchType === "fuzzy") return true;
|
|
188
|
+
return resolved.matchType === "fallback" && substringMatched;
|
|
189
|
+
}
|
|
190
|
+
function getProviderRegistryModelConfidence(provider, model) {
|
|
191
|
+
const resolved = ModelMetadataResolver.resolveModel(provider, model, { allowFuzzy: true });
|
|
192
|
+
if (!resolved) return void 0;
|
|
193
|
+
return resolved.matchType === "fuzzy" ? GUESSED_MODEL_MATCH_CONFIDENCE : 1;
|
|
194
|
+
}
|
|
195
|
+
function getLegacyContextConfidence(model, windows, exactConfidence = 1) {
|
|
196
|
+
const match = findFallbackContextWindowMatch(model, windows);
|
|
197
|
+
if (!match) {
|
|
198
|
+
return void 0;
|
|
199
|
+
}
|
|
200
|
+
return match.exact ? exactConfidence : GUESSED_MODEL_MATCH_CONFIDENCE;
|
|
201
|
+
}
|
|
202
|
+
function getOpenAiCompatibilityConfidence(model) {
|
|
203
|
+
const resolved = ModelMetadataResolver.resolveModel("openai", model, {
|
|
204
|
+
allowFallback: true,
|
|
205
|
+
allowFuzzy: true
|
|
206
|
+
});
|
|
207
|
+
if (!resolved) return void 0;
|
|
208
|
+
return isGuessedModelMatch(resolved, isExactCompatibilityMatch("openai", model) === false) ? GUESSED_MODEL_MATCH_CONFIDENCE : 1;
|
|
209
|
+
}
|
|
210
|
+
function getOpencodeCatalogConfidence(model) {
|
|
211
|
+
const catalogEntry = getOpencodeCatalogEntry(model);
|
|
212
|
+
if (catalogEntry.source === "registry") {
|
|
213
|
+
return 1;
|
|
214
|
+
}
|
|
215
|
+
const fallbackMatch = findOpencodeFallbackContextWindow(model);
|
|
216
|
+
if (fallbackMatch) {
|
|
217
|
+
return fallbackMatch.exact ? 0.9 : GUESSED_MODEL_MATCH_CONFIDENCE;
|
|
218
|
+
}
|
|
219
|
+
return void 0;
|
|
220
|
+
}
|
|
221
|
+
var DEFAULT_THRESHOLD_PERCENT = 0.65;
|
|
222
|
+
var TokenEstimator = class {
|
|
223
|
+
// tiktoken is a declared dependency; assume available at runtime.
|
|
224
|
+
// estimateOpenAITokens / estimateClaudeTokens each contain their own try/catch
|
|
225
|
+
// that falls back to chars/4 or chars/3.5 if the dynamic import fails.
|
|
226
|
+
tiketokenAvailable = true;
|
|
227
|
+
encodingCache = /* @__PURE__ */ new Map();
|
|
228
|
+
/**
|
|
229
|
+
* Analyze task to determine if splitting is needed
|
|
230
|
+
*
|
|
231
|
+
* @param prompt - Task description
|
|
232
|
+
* @param provider - Target provider ID (e.g., 'claude', 'openai', or a config-defined provider)
|
|
233
|
+
* @param model - Target model (e.g., 'claude-sonnet-4-5', 'gpt-4')
|
|
234
|
+
* @returns Decomposition decision with token analysis
|
|
235
|
+
*/
|
|
236
|
+
async analyzeTask(prompt, provider, model) {
|
|
237
|
+
const normalizedProvider = normalizeProviderForEstimator(provider, model);
|
|
238
|
+
const inputProviderKnown = isKnownEstimatorProviderInput(provider);
|
|
239
|
+
const promptForEstimation = stripPoeticInjectedContext(prompt);
|
|
240
|
+
const estimatedTokens = await this.estimateTokens(
|
|
241
|
+
promptForEstimation,
|
|
242
|
+
normalizedProvider,
|
|
243
|
+
model
|
|
244
|
+
);
|
|
245
|
+
const contextWindow = this.getContextWindow(normalizedProvider, model);
|
|
246
|
+
const thresholdTokens = this.getRecommendedThreshold(normalizedProvider, model);
|
|
247
|
+
const overhead = this.getContextOverhead(normalizedProvider, model);
|
|
248
|
+
const utilizationPercent = estimatedTokens / contextWindow * 100;
|
|
249
|
+
const adjustedUtilizationPercent = (estimatedTokens + overhead.total) / contextWindow * 100;
|
|
250
|
+
const estimationConfidence = inputProviderKnown ? this.getModelConfidence(normalizedProvider, model) : 0.5;
|
|
251
|
+
const validationMetadata = this.computeValidationMetadata(
|
|
252
|
+
promptForEstimation,
|
|
253
|
+
utilizationPercent
|
|
254
|
+
);
|
|
255
|
+
if (utilizationPercent < 60) {
|
|
256
|
+
return {
|
|
257
|
+
shouldSplit: false,
|
|
258
|
+
reason: "within-threshold",
|
|
259
|
+
estimatedTokens,
|
|
260
|
+
contextWindow,
|
|
261
|
+
utilizationPercent,
|
|
262
|
+
thresholdTokens,
|
|
263
|
+
adjustedUtilizationPercent,
|
|
264
|
+
overhead,
|
|
265
|
+
estimationConfidence,
|
|
266
|
+
validationMetadata
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
const strategy = this.selectSplitStrategy(
|
|
270
|
+
promptForEstimation,
|
|
271
|
+
estimatedTokens,
|
|
272
|
+
thresholdTokens
|
|
273
|
+
);
|
|
274
|
+
return {
|
|
275
|
+
shouldSplit: true,
|
|
276
|
+
reason: "exceeds-threshold",
|
|
277
|
+
estimatedTokens,
|
|
278
|
+
contextWindow,
|
|
279
|
+
utilizationPercent,
|
|
280
|
+
thresholdTokens,
|
|
281
|
+
strategy,
|
|
282
|
+
adjustedUtilizationPercent,
|
|
283
|
+
overhead,
|
|
284
|
+
estimationConfidence,
|
|
285
|
+
validationMetadata
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Compute validation metadata for autoloop gate selection
|
|
290
|
+
*
|
|
291
|
+
* Provides hints about quality gate policy based on task characteristics:
|
|
292
|
+
* - Simple tasks with low token utilization → deterministic gates only (fast CI)
|
|
293
|
+
* - Complex tasks or high utilization → all gates (comprehensive verification)
|
|
294
|
+
*
|
|
295
|
+
* @param prompt - Task description
|
|
296
|
+
* @param utilizationPercent - Context window utilization percentage
|
|
297
|
+
* @returns Validation metadata with policy recommendation
|
|
298
|
+
*/
|
|
299
|
+
computeValidationMetadata(prompt, utilizationPercent) {
|
|
300
|
+
const rationale = [];
|
|
301
|
+
if (utilizationPercent < 40) {
|
|
302
|
+
rationale.push("Low complexity task (< 40% context usage)");
|
|
303
|
+
rationale.push("Recommend deterministic gates only for fast CI velocity");
|
|
304
|
+
return {
|
|
305
|
+
recommendedGatePolicy: "deterministic",
|
|
306
|
+
rationale
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
const complexitySignals = [
|
|
310
|
+
"refactor",
|
|
311
|
+
"architecture",
|
|
312
|
+
"breaking change",
|
|
313
|
+
"migration",
|
|
314
|
+
"security"
|
|
315
|
+
];
|
|
316
|
+
const isComplex = complexitySignals.some(
|
|
317
|
+
(signal) => prompt.toLowerCase().includes(signal.toLowerCase())
|
|
318
|
+
);
|
|
319
|
+
if (isComplex || utilizationPercent >= 40) {
|
|
320
|
+
rationale.push(
|
|
321
|
+
isComplex ? "Complex task detected (refactor/architecture/migration)" : "High complexity task (\u2265 40% context usage)"
|
|
322
|
+
);
|
|
323
|
+
rationale.push("Recommend all gates for comprehensive verification");
|
|
324
|
+
return {
|
|
325
|
+
recommendedGatePolicy: "all",
|
|
326
|
+
rationale
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
rationale.push("Default to deterministic gates for CI velocity");
|
|
330
|
+
return {
|
|
331
|
+
recommendedGatePolicy: "deterministic",
|
|
332
|
+
rationale
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Estimate token count for text
|
|
337
|
+
*
|
|
338
|
+
* @param text - Text to analyze
|
|
339
|
+
* @param provider - Target provider
|
|
340
|
+
* @param model - Target model
|
|
341
|
+
* @returns Estimated token count
|
|
342
|
+
*/
|
|
343
|
+
async estimateTokens(text, provider, model) {
|
|
344
|
+
if (OPENAI_TOKENIZER_PROVIDERS.has(provider)) {
|
|
345
|
+
return this.estimateOpenAITokens(text, model);
|
|
346
|
+
}
|
|
347
|
+
if (CLAUDE_TOKENIZER_PROVIDERS.has(provider)) {
|
|
348
|
+
return this.estimateClaudeTokens(text, model);
|
|
349
|
+
}
|
|
350
|
+
const charsPerToken = lookupProviderEntry(HEURISTIC_CHARS_PER_TOKEN, provider) ?? DEFAULT_CHARS_PER_TOKEN;
|
|
351
|
+
return Math.ceil(text.length / charsPerToken);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Estimate tokens using OpenAI's tiktoken
|
|
355
|
+
* Falls back to character-based approximation if tiktoken unavailable
|
|
356
|
+
*/
|
|
357
|
+
async estimateOpenAITokens(text, model) {
|
|
358
|
+
if (!this.tiketokenAvailable) {
|
|
359
|
+
return Math.ceil(text.length / 4);
|
|
360
|
+
}
|
|
361
|
+
try {
|
|
362
|
+
const { encoding_for_model } = await import("tiktoken");
|
|
363
|
+
const modelMap = {
|
|
364
|
+
[GPT_4_TIKTOKEN_MODEL]: GPT_4_TIKTOKEN_MODEL,
|
|
365
|
+
[GPT_4_TURBO_MODEL]: GPT_4_TURBO_PREVIEW_TIKTOKEN_MODEL,
|
|
366
|
+
[GPT_4O_TIKTOKEN_MODEL]: GPT_4O_TIKTOKEN_MODEL,
|
|
367
|
+
[GPT_4O_MINI_TIKTOKEN_MODEL]: GPT_4O_MINI_TIKTOKEN_MODEL,
|
|
368
|
+
[GPT_3_5_TURBO_TIKTOKEN_MODEL]: GPT_3_5_TURBO_TIKTOKEN_MODEL,
|
|
369
|
+
[GPT_3_5_TIKTOKEN_ALIAS]: GPT_3_5_TURBO_TIKTOKEN_MODEL,
|
|
370
|
+
[GPT_5_CODEX_MINI_TIKTOKEN_ALIAS]: GPT_4_TIKTOKEN_MODEL,
|
|
371
|
+
// Use GPT-4 tokenizer for Codex
|
|
372
|
+
[GPT_5_TIKTOKEN_ALIAS]: GPT_4_TIKTOKEN_MODEL,
|
|
373
|
+
codex: GPT_4_TIKTOKEN_MODEL
|
|
374
|
+
};
|
|
375
|
+
const tiketokenModel = modelMap[model] || GPT_4_TIKTOKEN_MODEL;
|
|
376
|
+
const cacheKey = tiketokenModel;
|
|
377
|
+
let encoding = this.encodingCache.get(cacheKey);
|
|
378
|
+
if (!encoding) {
|
|
379
|
+
encoding = encoding_for_model(
|
|
380
|
+
tiketokenModel
|
|
381
|
+
);
|
|
382
|
+
this.encodingCache.set(cacheKey, encoding);
|
|
383
|
+
}
|
|
384
|
+
const tokens = encoding.encode(text);
|
|
385
|
+
return tokens.length;
|
|
386
|
+
} catch {
|
|
387
|
+
return Math.ceil(text.length / 4);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Estimate tokens for Claude models using tiktoken cl100k_base.
|
|
392
|
+
* Falls back to chars/3.5 if tiktoken is unavailable.
|
|
393
|
+
*/
|
|
394
|
+
async estimateClaudeTokens(text, _model) {
|
|
395
|
+
if (!this.tiketokenAvailable) {
|
|
396
|
+
return Math.ceil(text.length / 3.5);
|
|
397
|
+
}
|
|
398
|
+
try {
|
|
399
|
+
const { get_encoding } = await import("tiktoken");
|
|
400
|
+
const cacheKey = "cl100k_base";
|
|
401
|
+
let encoding = this.encodingCache.get(cacheKey);
|
|
402
|
+
if (!encoding) {
|
|
403
|
+
encoding = get_encoding("cl100k_base");
|
|
404
|
+
this.encodingCache.set(cacheKey, encoding);
|
|
405
|
+
}
|
|
406
|
+
const tokens = encoding.encode(text);
|
|
407
|
+
return tokens.length;
|
|
408
|
+
} catch {
|
|
409
|
+
return Math.ceil(text.length / 3.5);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Get confidence score for a provider and model
|
|
414
|
+
*
|
|
415
|
+
* @param provider - Provider ID
|
|
416
|
+
* @param model - Model identifier
|
|
417
|
+
* @returns Confidence score (0.0-1.0)
|
|
418
|
+
*/
|
|
419
|
+
getModelConfidence(provider, model) {
|
|
420
|
+
const resolverConfidence = lookupProviderEntry(MODEL_CONFIDENCE_RESOLVERS, provider)?.(
|
|
421
|
+
provider,
|
|
422
|
+
model
|
|
423
|
+
);
|
|
424
|
+
if (resolverConfidence !== void 0) {
|
|
425
|
+
return resolverConfidence;
|
|
426
|
+
}
|
|
427
|
+
return getProviderRegistryModelConfidence(provider, model) ?? 0.3;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Get context window size for provider and model
|
|
431
|
+
*
|
|
432
|
+
* @param provider - Provider ID
|
|
433
|
+
* @param model - Model identifier
|
|
434
|
+
* @returns Context window in tokens
|
|
435
|
+
*/
|
|
436
|
+
getContextWindow(provider, model) {
|
|
437
|
+
const resolvedWindow = lookupProviderEntry(CONTEXT_WINDOW_RESOLVERS, provider)?.(model);
|
|
438
|
+
if (resolvedWindow !== void 0) {
|
|
439
|
+
return resolvedWindow;
|
|
440
|
+
}
|
|
441
|
+
try {
|
|
442
|
+
return ModelMetadataResolver.getContextWindow(provider, model, {
|
|
443
|
+
allowFallback: true,
|
|
444
|
+
allowFuzzy: true
|
|
445
|
+
}) ?? DEFAULT_CONTEXT_WINDOW;
|
|
446
|
+
} catch {
|
|
447
|
+
return DEFAULT_CONTEXT_WINDOW;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Get recommended threshold in tokens (65% of context window)
|
|
452
|
+
*
|
|
453
|
+
* @param provider - Provider ID
|
|
454
|
+
* @param model - Model identifier
|
|
455
|
+
* @returns Recommended threshold in tokens
|
|
456
|
+
*/
|
|
457
|
+
getRecommendedThreshold(provider, model) {
|
|
458
|
+
const contextWindow = this.getContextWindow(provider, model);
|
|
459
|
+
return Math.floor(contextWindow * DEFAULT_THRESHOLD_PERCENT);
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Calculate context overhead for a provider and model
|
|
463
|
+
*
|
|
464
|
+
* Conservative overhead estimates:
|
|
465
|
+
* - Claude: 1500 tokens system, 30% output reserve
|
|
466
|
+
* - Codex/OpenAI: 800 tokens system, 25% output reserve
|
|
467
|
+
* - Gemini: 1000 tokens system, 25% output reserve
|
|
468
|
+
* - Other providers: 1000 tokens system, 25% output reserve
|
|
469
|
+
* - Always add 5% safety margin
|
|
470
|
+
*
|
|
471
|
+
* @param provider - Provider ID
|
|
472
|
+
* @param model - Model identifier
|
|
473
|
+
* @returns Token overhead breakdown
|
|
474
|
+
*/
|
|
475
|
+
getContextOverhead(provider, model) {
|
|
476
|
+
const contextWindow = this.getContextWindow(provider, model);
|
|
477
|
+
const profile = lookupProviderEntry(PROVIDER_OVERHEAD_PROFILES, provider) || {
|
|
478
|
+
systemPromptTokens: 1e3,
|
|
479
|
+
outputReservePercent: 0.25
|
|
480
|
+
};
|
|
481
|
+
const systemPrompt = profile.systemPromptTokens;
|
|
482
|
+
const outputReservePercent = profile.outputReservePercent;
|
|
483
|
+
const outputReserve = Math.floor(contextWindow * outputReservePercent);
|
|
484
|
+
const safetyMargin = Math.floor(contextWindow * 0.05);
|
|
485
|
+
const total = systemPrompt + outputReserve + safetyMargin;
|
|
486
|
+
return {
|
|
487
|
+
systemPrompt,
|
|
488
|
+
outputReserve,
|
|
489
|
+
safetyMargin,
|
|
490
|
+
total
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Select best split strategy based on task content and token count
|
|
495
|
+
*
|
|
496
|
+
* @param prompt - Task description
|
|
497
|
+
* @param estimatedTokens - Estimated token count
|
|
498
|
+
* @param threshold - Recommended threshold
|
|
499
|
+
* @returns Recommended split strategy
|
|
500
|
+
*/
|
|
501
|
+
selectSplitStrategy(prompt, estimatedTokens, threshold) {
|
|
502
|
+
const sampleText = prompt.length > 5e3 ? prompt.slice(0, 5e3) : prompt;
|
|
503
|
+
const fileMatches = sampleText.match(
|
|
504
|
+
/([a-zA-Z0-9_\-/]+\.(?:ts|js|tsx|jsx|py|java|go|rs|cpp|c|h))\b/g
|
|
505
|
+
);
|
|
506
|
+
if (fileMatches && fileMatches.length > 1) {
|
|
507
|
+
return "file-based";
|
|
508
|
+
}
|
|
509
|
+
const firstLine = sampleText.split("\n")[0] || "";
|
|
510
|
+
const colonPattern = /^(.+?):\s*(.+)$/;
|
|
511
|
+
const colonMatch = firstLine.match(colonPattern);
|
|
512
|
+
if (colonMatch) {
|
|
513
|
+
const featureList = colonMatch[2] || "";
|
|
514
|
+
const features = featureList.split(/\s*,\s*|\s+and\s+/i);
|
|
515
|
+
if (features.length > 1) {
|
|
516
|
+
return "feature-based";
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
if (estimatedTokens > threshold * 2) {
|
|
520
|
+
return "sequential";
|
|
521
|
+
}
|
|
522
|
+
return "semantic";
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Free cached encodings
|
|
526
|
+
*/
|
|
527
|
+
cleanup() {
|
|
528
|
+
for (const encoding of this.encodingCache.values()) {
|
|
529
|
+
try {
|
|
530
|
+
encoding.free?.();
|
|
531
|
+
} catch {
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
this.encodingCache.clear();
|
|
535
|
+
}
|
|
536
|
+
};
|
|
537
|
+
function stripPoeticInjectedContext(prompt) {
|
|
538
|
+
if (!prompt) return "";
|
|
539
|
+
let text = stripPoeticContextBlocks(String(prompt));
|
|
540
|
+
const toolPolicySplit = text.split(/\n---\n\n/);
|
|
541
|
+
if (toolPolicySplit.length > 1 && /##\s*Tool Usage Policy/i.test(toolPolicySplit[0] ?? "")) {
|
|
542
|
+
text = toolPolicySplit.slice(1).join("\n---\n\n");
|
|
543
|
+
}
|
|
544
|
+
text = text.replace(/(^|\n)\s*FILE TARGETS:\s*\n(?:\s*[-•]\s+[^\n]+\n?)+/gi, "\n");
|
|
545
|
+
return text;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
export {
|
|
549
|
+
UTILIZATION_WARN_PERCENT,
|
|
550
|
+
UTILIZATION_SPLIT_PERCENT,
|
|
551
|
+
DEFAULT_THRESHOLD_PERCENT,
|
|
552
|
+
TokenEstimator
|
|
553
|
+
};
|
|
554
|
+
//# sourceMappingURL=chunk-ZSKKMTQJ.js.map
|