@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,818 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseJsonWithContext
|
|
3
|
+
} from "./chunk-QVZMFDYG.js";
|
|
4
|
+
import {
|
|
5
|
+
resolvePoeticDirFromContext
|
|
6
|
+
} from "./chunk-UI2F6DJ5.js";
|
|
7
|
+
import {
|
|
8
|
+
emitWarning
|
|
9
|
+
} from "./chunk-EJGCZGUF.js";
|
|
10
|
+
|
|
11
|
+
// src/core/storage/ExecutionTracker.ts
|
|
12
|
+
import crypto from "crypto";
|
|
13
|
+
import fs from "fs";
|
|
14
|
+
import path from "path";
|
|
15
|
+
import { fileURLToPath } from "url";
|
|
16
|
+
import Database from "better-sqlite3";
|
|
17
|
+
|
|
18
|
+
// src/core/storage/schema-migrations.ts
|
|
19
|
+
function tableExists(db, tableName) {
|
|
20
|
+
const row = db.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?").get(tableName);
|
|
21
|
+
return row !== void 0;
|
|
22
|
+
}
|
|
23
|
+
function hasCompositePromptVersionFk(db) {
|
|
24
|
+
const rows = db.prepare("PRAGMA foreign_key_list(prompt_executions)").all();
|
|
25
|
+
const groups = /* @__PURE__ */ new Map();
|
|
26
|
+
for (const row of rows.filter((r) => r.table === "prompt_versions")) {
|
|
27
|
+
const group = groups.get(row.id) ?? [];
|
|
28
|
+
group.push(row);
|
|
29
|
+
groups.set(row.id, group);
|
|
30
|
+
}
|
|
31
|
+
return Array.from(groups.values()).some((group) => {
|
|
32
|
+
const mapping = new Map(group.map((row) => [row.from, row.to]));
|
|
33
|
+
return mapping.get("prompt_id") === "prompt_id" && mapping.get("version_id") === "id";
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function supportsEphemeralExecutions(db) {
|
|
37
|
+
const rows = db.prepare("PRAGMA table_info(prompt_executions)").all();
|
|
38
|
+
const columns = new Map(rows.map((row) => [row.name, row]));
|
|
39
|
+
return columns.get("prompt_id")?.notnull === 0 && columns.get("version_id")?.notnull === 0 && columns.has("task_hash") && columns.has("input_provenance");
|
|
40
|
+
}
|
|
41
|
+
function columnNames(db, tableName) {
|
|
42
|
+
const rows = db.prepare(`PRAGMA table_info(${tableName})`).all();
|
|
43
|
+
return new Set(rows.map((row) => row.name));
|
|
44
|
+
}
|
|
45
|
+
function quoted(name) {
|
|
46
|
+
return `"${name.replaceAll('"', '""')}"`;
|
|
47
|
+
}
|
|
48
|
+
function buildSelectList(sourceColumns, columns) {
|
|
49
|
+
return columns.map((column) => sourceColumns.has(column.name) ? quoted(column.name) : column.fallback).join(", ");
|
|
50
|
+
}
|
|
51
|
+
var EXECUTION_COLUMNS = [
|
|
52
|
+
{ name: "id", fallback: "''" },
|
|
53
|
+
{ name: "prompt_id", fallback: "''" },
|
|
54
|
+
{ name: "version_id", fallback: "''" },
|
|
55
|
+
{ name: "task_hash", fallback: "'legacy:' || id" },
|
|
56
|
+
{ name: "input_provenance", fallback: "'legacy'" },
|
|
57
|
+
{ name: "execution_mode", fallback: "'compete'" },
|
|
58
|
+
{ name: "variant_count", fallback: "1" },
|
|
59
|
+
{ name: "started_at", fallback: "CURRENT_TIMESTAMP" },
|
|
60
|
+
{ name: "completed_at", fallback: "NULL" },
|
|
61
|
+
{ name: "duration_seconds", fallback: "NULL" },
|
|
62
|
+
{ name: "status", fallback: "'completed'" },
|
|
63
|
+
{ name: "winning_variant_id", fallback: "NULL" },
|
|
64
|
+
{ name: "success_rate", fallback: "NULL" },
|
|
65
|
+
{ name: "avg_completeness", fallback: "NULL" },
|
|
66
|
+
{ name: "avg_code_delivery_rate", fallback: "NULL" },
|
|
67
|
+
{ name: "avg_duration", fallback: "NULL" },
|
|
68
|
+
{ name: "total_cost_usd", fallback: "NULL" },
|
|
69
|
+
{ name: "total_tokens", fallback: "NULL" },
|
|
70
|
+
{ name: "task_description", fallback: "NULL" },
|
|
71
|
+
{ name: "task_complexity", fallback: "NULL" },
|
|
72
|
+
{ name: "project_context", fallback: "NULL" },
|
|
73
|
+
{ name: "created_at", fallback: "CURRENT_TIMESTAMP" },
|
|
74
|
+
{ name: "updated_at", fallback: "CURRENT_TIMESTAMP" }
|
|
75
|
+
];
|
|
76
|
+
var VARIANT_COLUMNS = [
|
|
77
|
+
{ name: "id", fallback: "NULL" },
|
|
78
|
+
{ name: "execution_id", fallback: "''" },
|
|
79
|
+
{ name: "variant_name", fallback: "''" },
|
|
80
|
+
{ name: "provider", fallback: "''" },
|
|
81
|
+
{ name: "model", fallback: "NULL" },
|
|
82
|
+
{ name: "success", fallback: "0" },
|
|
83
|
+
{ name: "completeness", fallback: "NULL" },
|
|
84
|
+
{ name: "code_delivered", fallback: "NULL" },
|
|
85
|
+
{ name: "duration_seconds", fallback: "NULL" },
|
|
86
|
+
{ name: "error_count", fallback: "0" },
|
|
87
|
+
{ name: "warning_count", fallback: "0" },
|
|
88
|
+
{ name: "test_results", fallback: "NULL" },
|
|
89
|
+
{ name: "cost_usd", fallback: "NULL" },
|
|
90
|
+
{ name: "tokens_used", fallback: "NULL" },
|
|
91
|
+
{ name: "judge_score", fallback: "NULL" },
|
|
92
|
+
{ name: "judge_feedback", fallback: "NULL" },
|
|
93
|
+
{ name: "is_winner", fallback: "0" },
|
|
94
|
+
{ name: "created_at", fallback: "CURRENT_TIMESTAMP" }
|
|
95
|
+
];
|
|
96
|
+
var PROMPT_EXECUTION_VIEWS_SQL = `
|
|
97
|
+
CREATE VIEW IF NOT EXISTS v_prompt_execution_metrics AS
|
|
98
|
+
SELECT
|
|
99
|
+
pe.prompt_id,
|
|
100
|
+
pe.version_id,
|
|
101
|
+
COUNT(*) as total_executions,
|
|
102
|
+
SUM(CASE WHEN pe.status = 'completed' THEN 1 ELSE 0 END) as completed_executions,
|
|
103
|
+
AVG(pe.success_rate) as avg_success_rate,
|
|
104
|
+
AVG(pe.avg_completeness) as avg_completeness,
|
|
105
|
+
AVG(pe.avg_duration) as avg_duration,
|
|
106
|
+
SUM(pe.total_cost_usd) as total_cost,
|
|
107
|
+
MIN(pe.started_at) as first_execution,
|
|
108
|
+
MAX(pe.started_at) as last_execution,
|
|
109
|
+
COUNT(DISTINCT pe.execution_mode) as execution_modes_used
|
|
110
|
+
FROM prompt_executions pe
|
|
111
|
+
WHERE pe.status = 'completed'
|
|
112
|
+
GROUP BY pe.prompt_id, pe.version_id;
|
|
113
|
+
|
|
114
|
+
CREATE VIEW IF NOT EXISTS v_prompts_ready_for_optimization AS
|
|
115
|
+
SELECT
|
|
116
|
+
p.id as prompt_id,
|
|
117
|
+
p.name,
|
|
118
|
+
p.active_version_id,
|
|
119
|
+
COUNT(DISTINCT pe.id) as execution_count,
|
|
120
|
+
AVG(pe.success_rate) as avg_success_rate,
|
|
121
|
+
AVG(pe.avg_completeness) as avg_completeness,
|
|
122
|
+
MAX(pe.started_at) as last_execution,
|
|
123
|
+
CASE
|
|
124
|
+
WHEN COUNT(DISTINCT pe.id) >= 10 AND AVG(pe.success_rate) < 0.9 THEN 1
|
|
125
|
+
ELSE 0
|
|
126
|
+
END as optimization_recommended,
|
|
127
|
+
JULIANDAY('now') - JULIANDAY(
|
|
128
|
+
COALESCE(
|
|
129
|
+
(SELECT MAX(started_at) FROM prompt_optimization_cycles WHERE prompt_id = p.id),
|
|
130
|
+
p.created_at
|
|
131
|
+
)
|
|
132
|
+
) as days_since_optimization
|
|
133
|
+
FROM prompts p
|
|
134
|
+
LEFT JOIN prompt_executions pe
|
|
135
|
+
ON p.id = pe.prompt_id AND p.active_version_id = pe.version_id
|
|
136
|
+
GROUP BY p.id, p.name, p.active_version_id, p.created_at
|
|
137
|
+
HAVING execution_count > 0;
|
|
138
|
+
`;
|
|
139
|
+
function ensurePromptExecutionViews(db) {
|
|
140
|
+
if (!tableExists(db, "prompt_executions") || !tableExists(db, "prompts")) return;
|
|
141
|
+
db.exec(PROMPT_EXECUTION_VIEWS_SQL);
|
|
142
|
+
}
|
|
143
|
+
function ensurePromptExecutionsCompositeForeignKey(db) {
|
|
144
|
+
if (!tableExists(db, "prompt_executions") || hasCompositePromptVersionFk(db) && supportsEphemeralExecutions(db)) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const hasVariantTable = tableExists(db, "prompt_execution_variants");
|
|
148
|
+
const executionSelect = buildSelectList(columnNames(db, "prompt_executions"), EXECUTION_COLUMNS);
|
|
149
|
+
const variantSelect = hasVariantTable ? buildSelectList(columnNames(db, "prompt_execution_variants"), VARIANT_COLUMNS) : "";
|
|
150
|
+
const foreignKeysEnabled = Number(db.pragma("foreign_keys", { simple: true })) === 1;
|
|
151
|
+
db.exec("PRAGMA foreign_keys = OFF");
|
|
152
|
+
try {
|
|
153
|
+
const migrate = db.transaction(() => {
|
|
154
|
+
db.exec(`
|
|
155
|
+
DROP VIEW IF EXISTS v_prompt_execution_metrics;
|
|
156
|
+
DROP VIEW IF EXISTS v_prompts_ready_for_optimization;
|
|
157
|
+
DROP TABLE IF EXISTS prompt_execution_variants_migration_old;
|
|
158
|
+
DROP TABLE IF EXISTS prompt_executions_migration_old;
|
|
159
|
+
${hasVariantTable ? "ALTER TABLE prompt_execution_variants RENAME TO prompt_execution_variants_migration_old;" : ""}
|
|
160
|
+
ALTER TABLE prompt_executions RENAME TO prompt_executions_migration_old;
|
|
161
|
+
|
|
162
|
+
CREATE TABLE prompt_executions (
|
|
163
|
+
id TEXT PRIMARY KEY,
|
|
164
|
+
prompt_id TEXT,
|
|
165
|
+
version_id TEXT,
|
|
166
|
+
task_hash TEXT NOT NULL,
|
|
167
|
+
input_provenance TEXT NOT NULL DEFAULT 'stored-prompt',
|
|
168
|
+
execution_mode TEXT NOT NULL,
|
|
169
|
+
variant_count INTEGER DEFAULT 1,
|
|
170
|
+
started_at TEXT NOT NULL,
|
|
171
|
+
completed_at TEXT,
|
|
172
|
+
duration_seconds REAL,
|
|
173
|
+
status TEXT NOT NULL,
|
|
174
|
+
winning_variant_id TEXT,
|
|
175
|
+
success_rate REAL,
|
|
176
|
+
avg_completeness REAL,
|
|
177
|
+
avg_code_delivery_rate REAL,
|
|
178
|
+
avg_duration REAL,
|
|
179
|
+
total_cost_usd REAL,
|
|
180
|
+
total_tokens INTEGER,
|
|
181
|
+
task_description TEXT,
|
|
182
|
+
task_complexity TEXT,
|
|
183
|
+
project_context TEXT,
|
|
184
|
+
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
|
185
|
+
updated_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
|
186
|
+
CHECK ((prompt_id IS NULL AND version_id IS NULL) OR
|
|
187
|
+
(prompt_id IS NOT NULL AND version_id IS NOT NULL)),
|
|
188
|
+
FOREIGN KEY (prompt_id) REFERENCES prompts(id) ON DELETE CASCADE,
|
|
189
|
+
FOREIGN KEY (prompt_id, version_id) REFERENCES prompt_versions(prompt_id, id) ON DELETE CASCADE
|
|
190
|
+
);
|
|
191
|
+
|
|
192
|
+
INSERT INTO prompt_executions (${EXECUTION_COLUMNS.map((c) => quoted(c.name)).join(", ")})
|
|
193
|
+
SELECT ${executionSelect} FROM prompt_executions_migration_old;
|
|
194
|
+
|
|
195
|
+
CREATE TABLE IF NOT EXISTS prompt_execution_variants (
|
|
196
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
197
|
+
execution_id TEXT NOT NULL,
|
|
198
|
+
variant_name TEXT NOT NULL,
|
|
199
|
+
provider TEXT NOT NULL,
|
|
200
|
+
model TEXT,
|
|
201
|
+
success INTEGER NOT NULL,
|
|
202
|
+
completeness REAL,
|
|
203
|
+
code_delivered INTEGER,
|
|
204
|
+
duration_seconds REAL,
|
|
205
|
+
error_count INTEGER DEFAULT 0,
|
|
206
|
+
warning_count INTEGER DEFAULT 0,
|
|
207
|
+
test_results TEXT,
|
|
208
|
+
cost_usd REAL,
|
|
209
|
+
tokens_used INTEGER,
|
|
210
|
+
judge_score REAL,
|
|
211
|
+
judge_feedback TEXT,
|
|
212
|
+
is_winner INTEGER DEFAULT 0,
|
|
213
|
+
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
|
214
|
+
FOREIGN KEY (execution_id) REFERENCES prompt_executions(id) ON DELETE CASCADE
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
${hasVariantTable ? `INSERT INTO prompt_execution_variants (${VARIANT_COLUMNS.map((c) => quoted(c.name)).join(", ")})
|
|
218
|
+
SELECT ${variantSelect} FROM prompt_execution_variants_migration_old;` : ""}
|
|
219
|
+
|
|
220
|
+
DROP TABLE prompt_executions_migration_old;
|
|
221
|
+
DROP TABLE IF EXISTS prompt_execution_variants_migration_old;
|
|
222
|
+
CREATE INDEX IF NOT EXISTS idx_executions_prompt ON prompt_executions(prompt_id);
|
|
223
|
+
CREATE INDEX IF NOT EXISTS idx_executions_version ON prompt_executions(prompt_id, version_id);
|
|
224
|
+
CREATE INDEX IF NOT EXISTS idx_executions_status ON prompt_executions(status);
|
|
225
|
+
CREATE INDEX IF NOT EXISTS idx_executions_started ON prompt_executions(started_at DESC);
|
|
226
|
+
CREATE INDEX IF NOT EXISTS idx_executions_mode ON prompt_executions(execution_mode);
|
|
227
|
+
CREATE INDEX IF NOT EXISTS idx_variant_execution ON prompt_execution_variants(execution_id);
|
|
228
|
+
CREATE INDEX IF NOT EXISTS idx_variant_winner ON prompt_execution_variants(execution_id, is_winner);
|
|
229
|
+
CREATE INDEX IF NOT EXISTS idx_variant_provider ON prompt_execution_variants(provider, variant_name);
|
|
230
|
+
`);
|
|
231
|
+
ensurePromptExecutionViews(db);
|
|
232
|
+
});
|
|
233
|
+
migrate.immediate();
|
|
234
|
+
} finally {
|
|
235
|
+
db.exec(`PRAGMA foreign_keys = ${foreignKeysEnabled ? "ON" : "OFF"}`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// src/core/storage/ExecutionTracker.ts
|
|
240
|
+
var __filename = fileURLToPath(import.meta.url);
|
|
241
|
+
var __dirname = path.dirname(__filename);
|
|
242
|
+
function asNumber(value) {
|
|
243
|
+
if (typeof value === "number") {
|
|
244
|
+
return Number.isFinite(value) ? value : 0;
|
|
245
|
+
}
|
|
246
|
+
if (typeof value === "string") {
|
|
247
|
+
const parsed = Number(value);
|
|
248
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
249
|
+
}
|
|
250
|
+
return 0;
|
|
251
|
+
}
|
|
252
|
+
var ExecutionTracker = class {
|
|
253
|
+
poeticDir;
|
|
254
|
+
dbPath;
|
|
255
|
+
db;
|
|
256
|
+
ownsDb;
|
|
257
|
+
constructor(options = {}) {
|
|
258
|
+
this.poeticDir = resolvePoeticDirFromContext(options.poeticDir);
|
|
259
|
+
const dbDir = path.join(this.poeticDir, "prompts", "db");
|
|
260
|
+
if (options.db) {
|
|
261
|
+
this.db = options.db;
|
|
262
|
+
this.dbPath = this.db.name;
|
|
263
|
+
this.ownsDb = false;
|
|
264
|
+
} else {
|
|
265
|
+
if (!fs.existsSync(dbDir)) {
|
|
266
|
+
fs.mkdirSync(dbDir, { recursive: true });
|
|
267
|
+
}
|
|
268
|
+
this.dbPath = path.join(dbDir, "prompts.db");
|
|
269
|
+
this.db = new Database(this.dbPath);
|
|
270
|
+
this.ownsDb = true;
|
|
271
|
+
}
|
|
272
|
+
if (options.autoApplySchema !== false) {
|
|
273
|
+
this.applySchema();
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Apply schema extensions to database.
|
|
278
|
+
*
|
|
279
|
+
* Bootstraps the canonical prompts / prompt_versions schema so that
|
|
280
|
+
* schema-extensions.sql foreign keys can be applied even when this tracker
|
|
281
|
+
* is the first writer to a fresh DB. The shape mirrors the canonical
|
|
282
|
+
* writers (src/prompts/store.ts and src/core/storage/PromptStore.ts:
|
|
283
|
+
* hash-and-file, composite PK on (prompt_id, id)). Older inline-content
|
|
284
|
+
* databases continue to be read via the writers' PRAGMA-driven detection.
|
|
285
|
+
*/
|
|
286
|
+
applySchema() {
|
|
287
|
+
this.db.pragma("foreign_keys = ON");
|
|
288
|
+
this.db.exec(`
|
|
289
|
+
CREATE TABLE IF NOT EXISTS prompts (
|
|
290
|
+
id TEXT PRIMARY KEY,
|
|
291
|
+
name TEXT NOT NULL,
|
|
292
|
+
description TEXT NOT NULL DEFAULT '',
|
|
293
|
+
category TEXT NOT NULL DEFAULT 'adhoc',
|
|
294
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
295
|
+
variant TEXT,
|
|
296
|
+
tags TEXT NOT NULL DEFAULT '[]',
|
|
297
|
+
auto_opt_in INTEGER DEFAULT 0,
|
|
298
|
+
current_version TEXT NOT NULL DEFAULT '',
|
|
299
|
+
active_version_id TEXT,
|
|
300
|
+
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
301
|
+
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
302
|
+
archived_at TEXT,
|
|
303
|
+
usage_count INTEGER DEFAULT 0,
|
|
304
|
+
last_used_at TEXT,
|
|
305
|
+
UNIQUE(name, category)
|
|
306
|
+
);
|
|
307
|
+
|
|
308
|
+
CREATE INDEX IF NOT EXISTS idx_prompts_name ON prompts(name);
|
|
309
|
+
CREATE INDEX IF NOT EXISTS idx_prompts_category ON prompts(category);
|
|
310
|
+
CREATE INDEX IF NOT EXISTS idx_prompts_active_version ON prompts(active_version_id);
|
|
311
|
+
|
|
312
|
+
CREATE TABLE IF NOT EXISTS prompt_versions (
|
|
313
|
+
id TEXT NOT NULL,
|
|
314
|
+
prompt_id TEXT NOT NULL,
|
|
315
|
+
content_hash TEXT NOT NULL DEFAULT '',
|
|
316
|
+
changelog TEXT,
|
|
317
|
+
author TEXT,
|
|
318
|
+
is_active INTEGER DEFAULT 0,
|
|
319
|
+
is_generated INTEGER DEFAULT 0,
|
|
320
|
+
generation_model TEXT,
|
|
321
|
+
generation_prompt TEXT,
|
|
322
|
+
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
323
|
+
activated_at TEXT,
|
|
324
|
+
deactivated_at TEXT,
|
|
325
|
+
parent_version_id TEXT,
|
|
326
|
+
mutation_type TEXT,
|
|
327
|
+
generated_by TEXT,
|
|
328
|
+
activated_by TEXT,
|
|
329
|
+
performance_score REAL,
|
|
330
|
+
PRIMARY KEY (prompt_id, id),
|
|
331
|
+
FOREIGN KEY (prompt_id) REFERENCES prompts(id) ON DELETE CASCADE
|
|
332
|
+
);
|
|
333
|
+
|
|
334
|
+
CREATE INDEX IF NOT EXISTS idx_versions_prompt ON prompt_versions(prompt_id);
|
|
335
|
+
CREATE INDEX IF NOT EXISTS idx_versions_active ON prompt_versions(prompt_id, is_active);
|
|
336
|
+
`);
|
|
337
|
+
const schemaPath = path.join(__dirname, "schema-extensions.sql");
|
|
338
|
+
if (fs.existsSync(schemaPath)) {
|
|
339
|
+
const schema = fs.readFileSync(schemaPath, "utf8");
|
|
340
|
+
this.db.exec(schema);
|
|
341
|
+
ensurePromptExecutionsCompositeForeignKey(this.db);
|
|
342
|
+
ensurePromptExecutionViews(this.db);
|
|
343
|
+
} else {
|
|
344
|
+
this.db.exec(`
|
|
345
|
+
CREATE TABLE IF NOT EXISTS prompt_executions (
|
|
346
|
+
id TEXT PRIMARY KEY,
|
|
347
|
+
prompt_id TEXT,
|
|
348
|
+
version_id TEXT,
|
|
349
|
+
task_hash TEXT NOT NULL,
|
|
350
|
+
input_provenance TEXT NOT NULL DEFAULT 'stored-prompt',
|
|
351
|
+
execution_mode TEXT NOT NULL,
|
|
352
|
+
variant_count INTEGER DEFAULT 1,
|
|
353
|
+
started_at TEXT NOT NULL,
|
|
354
|
+
completed_at TEXT,
|
|
355
|
+
duration_seconds REAL,
|
|
356
|
+
status TEXT NOT NULL,
|
|
357
|
+
winning_variant_id TEXT,
|
|
358
|
+
success_rate REAL,
|
|
359
|
+
avg_completeness REAL,
|
|
360
|
+
avg_code_delivery_rate REAL,
|
|
361
|
+
avg_duration REAL,
|
|
362
|
+
total_cost_usd REAL,
|
|
363
|
+
total_tokens INTEGER,
|
|
364
|
+
task_description TEXT,
|
|
365
|
+
task_complexity TEXT,
|
|
366
|
+
project_context TEXT,
|
|
367
|
+
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
|
368
|
+
updated_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
|
369
|
+
CHECK ((prompt_id IS NULL AND version_id IS NULL) OR
|
|
370
|
+
(prompt_id IS NOT NULL AND version_id IS NOT NULL)),
|
|
371
|
+
FOREIGN KEY (prompt_id) REFERENCES prompts(id) ON DELETE CASCADE,
|
|
372
|
+
FOREIGN KEY (prompt_id, version_id) REFERENCES prompt_versions(prompt_id, id) ON DELETE CASCADE
|
|
373
|
+
);
|
|
374
|
+
|
|
375
|
+
CREATE INDEX IF NOT EXISTS idx_executions_prompt ON prompt_executions(prompt_id);
|
|
376
|
+
CREATE INDEX IF NOT EXISTS idx_executions_version ON prompt_executions(prompt_id, version_id);
|
|
377
|
+
CREATE INDEX IF NOT EXISTS idx_executions_status ON prompt_executions(status);
|
|
378
|
+
|
|
379
|
+
CREATE TABLE IF NOT EXISTS prompt_execution_variants (
|
|
380
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
381
|
+
execution_id TEXT NOT NULL,
|
|
382
|
+
variant_name TEXT NOT NULL,
|
|
383
|
+
provider TEXT NOT NULL,
|
|
384
|
+
model TEXT,
|
|
385
|
+
success INTEGER NOT NULL,
|
|
386
|
+
completeness REAL,
|
|
387
|
+
code_delivered INTEGER,
|
|
388
|
+
duration_seconds REAL,
|
|
389
|
+
error_count INTEGER DEFAULT 0,
|
|
390
|
+
warning_count INTEGER DEFAULT 0,
|
|
391
|
+
test_results TEXT,
|
|
392
|
+
cost_usd REAL,
|
|
393
|
+
tokens_used INTEGER,
|
|
394
|
+
judge_score REAL,
|
|
395
|
+
judge_feedback TEXT,
|
|
396
|
+
is_winner INTEGER DEFAULT 0,
|
|
397
|
+
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
|
398
|
+
FOREIGN KEY (execution_id) REFERENCES prompt_executions(id) ON DELETE CASCADE
|
|
399
|
+
);
|
|
400
|
+
|
|
401
|
+
CREATE INDEX IF NOT EXISTS idx_variant_execution ON prompt_execution_variants(execution_id);
|
|
402
|
+
`);
|
|
403
|
+
ensurePromptExecutionsCompositeForeignKey(this.db);
|
|
404
|
+
ensurePromptExecutionViews(this.db);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Start tracking a new execution
|
|
409
|
+
*/
|
|
410
|
+
async startExecution(input) {
|
|
411
|
+
if (input.promptId === void 0 !== (input.versionId === void 0)) {
|
|
412
|
+
throw new Error("promptId and versionId must either both be provided or both be omitted");
|
|
413
|
+
}
|
|
414
|
+
const id = input.id ?? this.generateExecutionId();
|
|
415
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
416
|
+
const taskHash = input.taskHash ?? crypto.createHash("sha256").update(input.taskDescription ?? `${input.promptId ?? ""}:${input.versionId ?? ""}:${id}`).digest("hex");
|
|
417
|
+
const inputProvenance = input.inputProvenance ?? (input.promptId ? "stored-prompt" : "inline");
|
|
418
|
+
const stmt = this.db.prepare(`
|
|
419
|
+
${input.id ? "INSERT OR IGNORE" : "INSERT"} INTO prompt_executions (
|
|
420
|
+
id, prompt_id, version_id, task_hash, input_provenance, execution_mode, variant_count,
|
|
421
|
+
started_at, status, task_description, task_complexity, project_context,
|
|
422
|
+
created_at, updated_at
|
|
423
|
+
)
|
|
424
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
425
|
+
`);
|
|
426
|
+
stmt.run(
|
|
427
|
+
id,
|
|
428
|
+
input.promptId ?? null,
|
|
429
|
+
input.versionId ?? null,
|
|
430
|
+
taskHash,
|
|
431
|
+
inputProvenance,
|
|
432
|
+
input.executionMode,
|
|
433
|
+
input.variantCount || 1,
|
|
434
|
+
now,
|
|
435
|
+
"running",
|
|
436
|
+
input.taskDescription || null,
|
|
437
|
+
input.taskComplexity || null,
|
|
438
|
+
input.projectContext ? JSON.stringify(input.projectContext) : null,
|
|
439
|
+
now,
|
|
440
|
+
now
|
|
441
|
+
);
|
|
442
|
+
const execution = this.getExecution(id);
|
|
443
|
+
if (!execution) {
|
|
444
|
+
throw new Error(`Failed to start execution ${id}`);
|
|
445
|
+
}
|
|
446
|
+
return execution;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Complete an execution with results
|
|
450
|
+
*/
|
|
451
|
+
async completeExecution(executionId, result) {
|
|
452
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
453
|
+
const execution = this.getExecution(executionId);
|
|
454
|
+
if (!execution) {
|
|
455
|
+
throw new Error(`Execution ${executionId} not found`);
|
|
456
|
+
}
|
|
457
|
+
const durationSeconds = execution.startedAt ? (new Date(now).getTime() - new Date(execution.startedAt).getTime()) / 1e3 : void 0;
|
|
458
|
+
const stmt = this.db.prepare(`
|
|
459
|
+
UPDATE prompt_executions
|
|
460
|
+
SET
|
|
461
|
+
completed_at = ?,
|
|
462
|
+
duration_seconds = ?,
|
|
463
|
+
status = ?,
|
|
464
|
+
winning_variant_id = ?,
|
|
465
|
+
success_rate = ?,
|
|
466
|
+
avg_completeness = ?,
|
|
467
|
+
avg_code_delivery_rate = ?,
|
|
468
|
+
avg_duration = ?,
|
|
469
|
+
total_cost_usd = ?,
|
|
470
|
+
total_tokens = ?,
|
|
471
|
+
updated_at = ?
|
|
472
|
+
WHERE id = ?
|
|
473
|
+
`);
|
|
474
|
+
stmt.run(
|
|
475
|
+
now,
|
|
476
|
+
durationSeconds ?? null,
|
|
477
|
+
result.status,
|
|
478
|
+
result.winningVariantId ?? null,
|
|
479
|
+
result.successRate ?? null,
|
|
480
|
+
result.avgCompleteness ?? null,
|
|
481
|
+
result.avgCodeDeliveryRate ?? null,
|
|
482
|
+
result.avgDuration ?? null,
|
|
483
|
+
result.totalCostUsd ?? null,
|
|
484
|
+
result.totalTokens ?? null,
|
|
485
|
+
now,
|
|
486
|
+
executionId
|
|
487
|
+
);
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Record a variant result
|
|
491
|
+
*/
|
|
492
|
+
async recordVariant(input) {
|
|
493
|
+
const stmt = this.db.prepare(`
|
|
494
|
+
INSERT INTO prompt_execution_variants (
|
|
495
|
+
execution_id, variant_name, provider, model, success, completeness,
|
|
496
|
+
code_delivered, duration_seconds, error_count, warning_count,
|
|
497
|
+
test_results, cost_usd, tokens_used, judge_score, judge_feedback,
|
|
498
|
+
is_winner
|
|
499
|
+
)
|
|
500
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
501
|
+
`);
|
|
502
|
+
const result = stmt.run(
|
|
503
|
+
input.executionId,
|
|
504
|
+
input.variantName,
|
|
505
|
+
input.provider,
|
|
506
|
+
input.model ?? null,
|
|
507
|
+
input.success ? 1 : 0,
|
|
508
|
+
input.completeness ?? null,
|
|
509
|
+
input.codeDelivered ? 1 : 0,
|
|
510
|
+
input.durationSeconds ?? null,
|
|
511
|
+
input.errorCount || 0,
|
|
512
|
+
input.warningCount || 0,
|
|
513
|
+
input.testResults ? JSON.stringify(input.testResults) : null,
|
|
514
|
+
input.costUsd ?? null,
|
|
515
|
+
input.tokensUsed ?? null,
|
|
516
|
+
input.judgeScore ?? null,
|
|
517
|
+
input.judgeFeedback ?? null,
|
|
518
|
+
input.isWinner ? 1 : 0
|
|
519
|
+
);
|
|
520
|
+
return this.getVariant(Number(result.lastInsertRowid));
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Get execution by ID
|
|
524
|
+
*/
|
|
525
|
+
getExecution(id) {
|
|
526
|
+
const stmt = this.db.prepare("SELECT * FROM prompt_executions WHERE id = ?");
|
|
527
|
+
const row = stmt.get(id);
|
|
528
|
+
if (!row) {
|
|
529
|
+
return null;
|
|
530
|
+
}
|
|
531
|
+
return this.rowToExecution(row);
|
|
532
|
+
}
|
|
533
|
+
/**
|
|
534
|
+
* Get all executions for a prompt with optional pagination
|
|
535
|
+
* @param promptId The prompt ID
|
|
536
|
+
* @param versionId Optional version ID filter
|
|
537
|
+
* @param limit Maximum number of results (default: 1000, max: 1000)
|
|
538
|
+
* @param offset Number of results to skip (default: 0)
|
|
539
|
+
*/
|
|
540
|
+
getExecutions(promptId, versionId, limit, offset) {
|
|
541
|
+
let query = "SELECT * FROM prompt_executions WHERE prompt_id = ?";
|
|
542
|
+
const params = [promptId];
|
|
543
|
+
if (versionId) {
|
|
544
|
+
query += " AND version_id = ?";
|
|
545
|
+
params.push(versionId);
|
|
546
|
+
}
|
|
547
|
+
query += " ORDER BY started_at DESC";
|
|
548
|
+
const actualLimit = Math.min(limit ?? 1e3, 1e3);
|
|
549
|
+
const actualOffset = offset ?? 0;
|
|
550
|
+
query += " LIMIT ? OFFSET ?";
|
|
551
|
+
params.push(actualLimit, actualOffset);
|
|
552
|
+
const stmt = this.db.prepare(query);
|
|
553
|
+
const rows = stmt.all(...params);
|
|
554
|
+
return rows.map((row) => this.rowToExecution(row));
|
|
555
|
+
}
|
|
556
|
+
/**
|
|
557
|
+
* Get variant results for an execution
|
|
558
|
+
*/
|
|
559
|
+
getVariants(executionId) {
|
|
560
|
+
const stmt = this.db.prepare(
|
|
561
|
+
"SELECT * FROM prompt_execution_variants WHERE execution_id = ? ORDER BY judge_score DESC, completeness DESC"
|
|
562
|
+
);
|
|
563
|
+
const rows = stmt.all(executionId);
|
|
564
|
+
return rows.map((row) => this.rowToVariant(row));
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Get variant by ID
|
|
568
|
+
*/
|
|
569
|
+
getVariant(id) {
|
|
570
|
+
const stmt = this.db.prepare("SELECT * FROM prompt_execution_variants WHERE id = ?");
|
|
571
|
+
const row = stmt.get(id);
|
|
572
|
+
if (!row) {
|
|
573
|
+
return null;
|
|
574
|
+
}
|
|
575
|
+
return this.rowToVariant(row);
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Get aggregated metrics for a prompt version
|
|
579
|
+
*/
|
|
580
|
+
getMetrics(promptId, versionId) {
|
|
581
|
+
let query = `
|
|
582
|
+
SELECT
|
|
583
|
+
prompt_id,
|
|
584
|
+
version_id,
|
|
585
|
+
COUNT(*) as total_executions,
|
|
586
|
+
SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) as completed_executions,
|
|
587
|
+
AVG(success_rate) as avg_success_rate,
|
|
588
|
+
AVG(avg_completeness) as avg_completeness,
|
|
589
|
+
AVG(avg_code_delivery_rate) as avg_code_delivery_rate,
|
|
590
|
+
AVG(avg_duration) as avg_duration,
|
|
591
|
+
-- Population variance via the identity E[x^2] - E[x]^2.
|
|
592
|
+
-- SQLite has no built-in STDDEV; we compute std-dev in JS
|
|
593
|
+
-- (sqrt(max(variance, 0))) to clamp tiny negative floating-point
|
|
594
|
+
-- artifacts that occur when all sampled values are identical.
|
|
595
|
+
AVG(avg_completeness * avg_completeness) as avg_completeness_sq,
|
|
596
|
+
MIN(avg_completeness) as min_completeness,
|
|
597
|
+
MAX(avg_completeness) as max_completeness,
|
|
598
|
+
-- SUM skips NULL, so a partial subtotal is not a full total. Count known-cost
|
|
599
|
+
-- rows and expose totalCost only when every included execution has known cost.
|
|
600
|
+
SUM(total_cost_usd) as total_cost,
|
|
601
|
+
SUM(CASE WHEN total_cost_usd IS NOT NULL THEN 1 ELSE 0 END) as known_cost_executions,
|
|
602
|
+
MIN(started_at) as first_execution,
|
|
603
|
+
MAX(started_at) as last_execution,
|
|
604
|
+
COUNT(DISTINCT execution_mode) as execution_modes_used
|
|
605
|
+
FROM prompt_executions
|
|
606
|
+
WHERE prompt_id = ?
|
|
607
|
+
`;
|
|
608
|
+
const params = [promptId];
|
|
609
|
+
if (versionId) {
|
|
610
|
+
query += " AND version_id = ?";
|
|
611
|
+
params.push(versionId);
|
|
612
|
+
} else {
|
|
613
|
+
query += " GROUP BY prompt_id, version_id";
|
|
614
|
+
}
|
|
615
|
+
const stmt = this.db.prepare(query);
|
|
616
|
+
const row = stmt.get(...params);
|
|
617
|
+
if (!row || typeof row !== "object") {
|
|
618
|
+
return null;
|
|
619
|
+
}
|
|
620
|
+
const r = row;
|
|
621
|
+
const totalExecutions = asNumber(r.total_executions);
|
|
622
|
+
if (totalExecutions === 0) {
|
|
623
|
+
return null;
|
|
624
|
+
}
|
|
625
|
+
const avgCompleteness = asNumber(r.avg_completeness);
|
|
626
|
+
const avgCompletenessSq = asNumber(r.avg_completeness_sq);
|
|
627
|
+
const variance = Math.max(0, avgCompletenessSq - avgCompleteness * avgCompleteness);
|
|
628
|
+
const stdDevCompleteness = Math.sqrt(variance);
|
|
629
|
+
const knownCostExecutions = asNumber(r.known_cost_executions);
|
|
630
|
+
const totalCostStatus = knownCostExecutions === totalExecutions ? "complete" : "incomplete";
|
|
631
|
+
const totalCost = totalCostStatus === "complete" ? asNumber(r.total_cost) : void 0;
|
|
632
|
+
return {
|
|
633
|
+
promptId: r.prompt_id,
|
|
634
|
+
versionId: r.version_id,
|
|
635
|
+
totalExecutions,
|
|
636
|
+
completedExecutions: asNumber(r.completed_executions),
|
|
637
|
+
avgSuccessRate: asNumber(r.avg_success_rate),
|
|
638
|
+
avgCompleteness,
|
|
639
|
+
avgCodeDeliveryRate: asNumber(r.avg_code_delivery_rate),
|
|
640
|
+
avgDuration: asNumber(r.avg_duration),
|
|
641
|
+
minCompleteness: asNumber(r.min_completeness),
|
|
642
|
+
maxCompleteness: asNumber(r.max_completeness),
|
|
643
|
+
stdDevCompleteness,
|
|
644
|
+
...totalCost !== void 0 ? { totalCost } : {},
|
|
645
|
+
totalCostStatus,
|
|
646
|
+
firstExecution: r.first_execution,
|
|
647
|
+
lastExecution: r.last_execution,
|
|
648
|
+
executionModesUsed: asNumber(r.execution_modes_used)
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* Check if prompt is ready for optimization
|
|
653
|
+
*/
|
|
654
|
+
isReadyForOptimization(promptId, versionId) {
|
|
655
|
+
const metrics = this.getMetrics(promptId, versionId);
|
|
656
|
+
if (!metrics) {
|
|
657
|
+
return {
|
|
658
|
+
ready: false,
|
|
659
|
+
reason: "No executions recorded",
|
|
660
|
+
executionCount: 0,
|
|
661
|
+
avgSuccessRate: 0,
|
|
662
|
+
avgCompleteness: 0
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
const MIN_EXECUTIONS = 10;
|
|
666
|
+
const MIN_SUCCESS_RATE = 0.9;
|
|
667
|
+
const MIN_COMPLETENESS = 85;
|
|
668
|
+
if (metrics.totalExecutions < MIN_EXECUTIONS) {
|
|
669
|
+
return {
|
|
670
|
+
ready: false,
|
|
671
|
+
reason: `Need ${MIN_EXECUTIONS - metrics.totalExecutions} more executions`,
|
|
672
|
+
executionCount: metrics.totalExecutions,
|
|
673
|
+
avgSuccessRate: metrics.avgSuccessRate,
|
|
674
|
+
avgCompleteness: metrics.avgCompleteness
|
|
675
|
+
};
|
|
676
|
+
}
|
|
677
|
+
if (metrics.avgSuccessRate < MIN_SUCCESS_RATE || metrics.avgCompleteness < MIN_COMPLETENESS) {
|
|
678
|
+
return {
|
|
679
|
+
ready: true,
|
|
680
|
+
reason: "Performance below target",
|
|
681
|
+
executionCount: metrics.totalExecutions,
|
|
682
|
+
avgSuccessRate: metrics.avgSuccessRate,
|
|
683
|
+
avgCompleteness: metrics.avgCompleteness
|
|
684
|
+
};
|
|
685
|
+
}
|
|
686
|
+
return {
|
|
687
|
+
ready: false,
|
|
688
|
+
reason: "Performance meets target",
|
|
689
|
+
executionCount: metrics.totalExecutions,
|
|
690
|
+
avgSuccessRate: metrics.avgSuccessRate,
|
|
691
|
+
avgCompleteness: metrics.avgCompleteness
|
|
692
|
+
};
|
|
693
|
+
}
|
|
694
|
+
/**
|
|
695
|
+
* Close database connection (only if owned)
|
|
696
|
+
*/
|
|
697
|
+
close() {
|
|
698
|
+
if (this.ownsDb) {
|
|
699
|
+
this.db.close();
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
// Private helpers
|
|
703
|
+
generateExecutionId() {
|
|
704
|
+
return `exec_${Date.now()}_${crypto.randomBytes(4).toString("hex")}`;
|
|
705
|
+
}
|
|
706
|
+
rowToExecution(row) {
|
|
707
|
+
const executionMode = row.execution_mode;
|
|
708
|
+
const status = row.status;
|
|
709
|
+
const taskComplexity = row.task_complexity;
|
|
710
|
+
let projectContext;
|
|
711
|
+
if (row.project_context) {
|
|
712
|
+
try {
|
|
713
|
+
const parsed = parseJsonWithContext(
|
|
714
|
+
row.project_context,
|
|
715
|
+
"ExecutionTracker.projectContext"
|
|
716
|
+
);
|
|
717
|
+
projectContext = parsed || {};
|
|
718
|
+
} catch (err) {
|
|
719
|
+
emitWarning(
|
|
720
|
+
"WS-003",
|
|
721
|
+
{
|
|
722
|
+
taskId: row.id,
|
|
723
|
+
subsystem: "storage",
|
|
724
|
+
executionPhase: "execution"
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
severity: "WARN" /* WARN */,
|
|
728
|
+
metadata: {
|
|
729
|
+
error: err instanceof Error ? err.message : String(err),
|
|
730
|
+
operation: "parseProjectContext"
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
);
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
return {
|
|
737
|
+
id: row.id,
|
|
738
|
+
promptId: row.prompt_id ?? void 0,
|
|
739
|
+
versionId: row.version_id ?? void 0,
|
|
740
|
+
taskHash: row.task_hash,
|
|
741
|
+
inputProvenance: row.input_provenance,
|
|
742
|
+
executionMode,
|
|
743
|
+
variantCount: row.variant_count,
|
|
744
|
+
startedAt: row.started_at,
|
|
745
|
+
completedAt: row.completed_at ?? void 0,
|
|
746
|
+
durationSeconds: row.duration_seconds ?? void 0,
|
|
747
|
+
status,
|
|
748
|
+
winningVariantId: row.winning_variant_id ?? void 0,
|
|
749
|
+
successRate: row.success_rate ?? void 0,
|
|
750
|
+
avgCompleteness: row.avg_completeness ?? void 0,
|
|
751
|
+
avgCodeDeliveryRate: row.avg_code_delivery_rate ?? void 0,
|
|
752
|
+
avgDuration: row.avg_duration ?? void 0,
|
|
753
|
+
totalCostUsd: row.total_cost_usd ?? void 0,
|
|
754
|
+
totalTokens: row.total_tokens ?? void 0,
|
|
755
|
+
taskDescription: row.task_description ?? void 0,
|
|
756
|
+
taskComplexity: taskComplexity || void 0,
|
|
757
|
+
projectContext,
|
|
758
|
+
createdAt: row.created_at,
|
|
759
|
+
updatedAt: row.updated_at
|
|
760
|
+
};
|
|
761
|
+
}
|
|
762
|
+
rowToVariant(row) {
|
|
763
|
+
let testResults;
|
|
764
|
+
if (row.test_results) {
|
|
765
|
+
try {
|
|
766
|
+
const parsed = parseJsonWithContext(
|
|
767
|
+
row.test_results,
|
|
768
|
+
"ExecutionTracker.testResults"
|
|
769
|
+
);
|
|
770
|
+
testResults = parsed || {};
|
|
771
|
+
} catch (err) {
|
|
772
|
+
emitWarning(
|
|
773
|
+
"WS-003",
|
|
774
|
+
{
|
|
775
|
+
taskId: row.execution_id,
|
|
776
|
+
subsystem: "storage",
|
|
777
|
+
executionPhase: "execution"
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
severity: "WARN" /* WARN */,
|
|
781
|
+
metadata: {
|
|
782
|
+
variantId: row.id,
|
|
783
|
+
error: err instanceof Error ? err.message : String(err),
|
|
784
|
+
operation: "parseTestResults"
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
);
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
return {
|
|
791
|
+
id: row.id,
|
|
792
|
+
executionId: row.execution_id,
|
|
793
|
+
variantName: row.variant_name,
|
|
794
|
+
provider: row.provider,
|
|
795
|
+
model: row.model ?? void 0,
|
|
796
|
+
success: row.success === 1,
|
|
797
|
+
completeness: row.completeness ?? void 0,
|
|
798
|
+
codeDelivered: row.code_delivered === 1,
|
|
799
|
+
durationSeconds: row.duration_seconds ?? void 0,
|
|
800
|
+
errorCount: row.error_count ?? 0,
|
|
801
|
+
warningCount: row.warning_count ?? 0,
|
|
802
|
+
testResults,
|
|
803
|
+
costUsd: row.cost_usd ?? void 0,
|
|
804
|
+
tokensUsed: row.tokens_used ?? void 0,
|
|
805
|
+
judgeScore: row.judge_score ?? void 0,
|
|
806
|
+
judgeFeedback: row.judge_feedback ?? void 0,
|
|
807
|
+
isWinner: row.is_winner === 1,
|
|
808
|
+
createdAt: row.created_at
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
};
|
|
812
|
+
|
|
813
|
+
export {
|
|
814
|
+
ensurePromptExecutionViews,
|
|
815
|
+
ensurePromptExecutionsCompositeForeignKey,
|
|
816
|
+
ExecutionTracker
|
|
817
|
+
};
|
|
818
|
+
//# sourceMappingURL=chunk-U45RTRGY.js.map
|