@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,588 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getContainedHomeSiblingRuntimeRoot
|
|
3
|
+
} from "./chunk-UUH2RVKS.js";
|
|
4
|
+
|
|
5
|
+
// src/core/sandbox/provider-manifests.ts
|
|
6
|
+
import fs from "fs";
|
|
7
|
+
import os from "os";
|
|
8
|
+
import path from "path";
|
|
9
|
+
var sub = (homeRelative, note) => ({
|
|
10
|
+
kind: "subpath",
|
|
11
|
+
homeRelative,
|
|
12
|
+
note
|
|
13
|
+
});
|
|
14
|
+
var lit = (homeRelative, note) => ({
|
|
15
|
+
kind: "literal",
|
|
16
|
+
homeRelative,
|
|
17
|
+
note
|
|
18
|
+
});
|
|
19
|
+
var rgx = (homeRelative, note) => ({
|
|
20
|
+
kind: "regex",
|
|
21
|
+
homeRelative,
|
|
22
|
+
note
|
|
23
|
+
});
|
|
24
|
+
var absoluteSubpath = (absolutePath, note) => ({
|
|
25
|
+
kind: "subpath",
|
|
26
|
+
homeRelative: absolutePath,
|
|
27
|
+
absolutePath,
|
|
28
|
+
note
|
|
29
|
+
});
|
|
30
|
+
var rejectedRuntimeDir = (absolutePath, note) => ({
|
|
31
|
+
kind: "subpath",
|
|
32
|
+
homeRelative: absolutePath,
|
|
33
|
+
absolutePath,
|
|
34
|
+
note,
|
|
35
|
+
rejected: true
|
|
36
|
+
});
|
|
37
|
+
var POETIC_SHARED_WRITE_PATHS = [
|
|
38
|
+
// `.poetic` covers the default config/data/state roots (~/.poetic/{config,data,state})
|
|
39
|
+
// as well as the runtime dirs that always lived there. The two XDG entries remain
|
|
40
|
+
// for installs that explicitly set XDG_STATE_HOME / XDG_DATA_HOME.
|
|
41
|
+
sub(".poetic", "Poetic home (config/data/state and runtime dirs)"),
|
|
42
|
+
sub(".local/state/poetic", "Poetic XDG state (legacy/explicit XDG_STATE_HOME)"),
|
|
43
|
+
sub(".local/share/poetic", "Poetic XDG data (legacy/explicit XDG_DATA_HOME)")
|
|
44
|
+
];
|
|
45
|
+
var COMMON_TOOLCHAIN_WRITE_PATHS = [
|
|
46
|
+
sub(".cache", "XDG cache"),
|
|
47
|
+
sub("Library/Caches", "macOS user caches"),
|
|
48
|
+
sub(".npm"),
|
|
49
|
+
sub(".bun"),
|
|
50
|
+
sub(".m2"),
|
|
51
|
+
sub(".gradle")
|
|
52
|
+
];
|
|
53
|
+
var PROVIDER_MANIFESTS = {
|
|
54
|
+
"project-verification": {
|
|
55
|
+
providerId: "project-verification",
|
|
56
|
+
requiredWritePaths: [
|
|
57
|
+
...COMMON_TOOLCHAIN_WRITE_PATHS,
|
|
58
|
+
sub(".cargo/registry"),
|
|
59
|
+
sub(".cargo/git"),
|
|
60
|
+
sub(".nuget/packages"),
|
|
61
|
+
sub(".pub-cache"),
|
|
62
|
+
sub(".gem"),
|
|
63
|
+
sub("Library/pnpm/store"),
|
|
64
|
+
sub(".local/share/pnpm/store"),
|
|
65
|
+
sub("go/pkg/mod")
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
claude: {
|
|
69
|
+
providerId: "claude",
|
|
70
|
+
requiredWritePaths: [
|
|
71
|
+
sub(".claude", "Claude CLI state"),
|
|
72
|
+
lit(".claude.json", "Claude CLI root config"),
|
|
73
|
+
// Claude writes a lock dir + atomic temp files next to ~/.claude.json;
|
|
74
|
+
// blocking these forces non-atomic writes that can corrupt the config.
|
|
75
|
+
sub(".claude.json.lock", "Claude CLI atomic-write lock"),
|
|
76
|
+
rgx("\\.claude\\.json\\.tmp\\.[^/]+$", "Claude CLI atomic-write temp")
|
|
77
|
+
],
|
|
78
|
+
// Claude needs its state root writable for auth/session/runtime state, but
|
|
79
|
+
// these locations alter policy or supply hook code to later invocations.
|
|
80
|
+
// Re-deny only those authority-bearing surfaces rather than the whole root.
|
|
81
|
+
persistentAuthorityWriteDenyPaths: [
|
|
82
|
+
{ kind: "literal", relativePath: "settings.json" },
|
|
83
|
+
{ kind: "literal", relativePath: "settings.local.json" },
|
|
84
|
+
{ kind: "subpath", relativePath: "hooks" },
|
|
85
|
+
{ kind: "subpath", relativePath: "plugins" }
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
codex: {
|
|
89
|
+
providerId: "codex",
|
|
90
|
+
requiredWritePaths: [sub(".codex", "Codex CLI state (CODEX_HOME)")],
|
|
91
|
+
// config.toml / profile sidecars steer later invocations (model_provider,
|
|
92
|
+
// approvals). auth.json stays writable — it is required Codex state, not a
|
|
93
|
+
// deferred-execution policy surface.
|
|
94
|
+
persistentAuthorityWriteDenyPaths: [{ kind: "literal", relativePath: "config.toml" }]
|
|
95
|
+
},
|
|
96
|
+
copilot: {
|
|
97
|
+
providerId: "copilot",
|
|
98
|
+
requiredWritePaths: [
|
|
99
|
+
sub(".copilot", "Copilot CLI state"),
|
|
100
|
+
sub("Library/Application Support/github-copilot", "Copilot macOS state"),
|
|
101
|
+
sub("Library/Application Support/GitHub Copilot", "Copilot macOS state"),
|
|
102
|
+
sub(".config/gh", "gh CLI auth used by Copilot")
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
cursor: {
|
|
106
|
+
providerId: "cursor",
|
|
107
|
+
requiredWritePaths: [sub(".cursor", "Cursor CLI state")],
|
|
108
|
+
// User-level MCP config is loaded by later Cursor turns (`--approve-mcps`
|
|
109
|
+
// and project `.cursor/mcp.json` are the documented MCP surfaces).
|
|
110
|
+
// cli-config.json remains writable (auth/session).
|
|
111
|
+
persistentAuthorityWriteDenyPaths: [{ kind: "literal", relativePath: "mcp.json" }]
|
|
112
|
+
},
|
|
113
|
+
gemini: {
|
|
114
|
+
providerId: "gemini",
|
|
115
|
+
requiredWritePaths: [
|
|
116
|
+
sub(".gemini", "Gemini CLI state"),
|
|
117
|
+
sub(".gcloud", "gcloud auth cache"),
|
|
118
|
+
sub(".config/gcloud", "gcloud auth config"),
|
|
119
|
+
// Gemini CLI 0.53.1 stores an interactively-entered API key in the macOS
|
|
120
|
+
// Keychain (service "gemini-cli-api-key"). Security.framework updates
|
|
121
|
+
// lock/session state and the keychain db during an ordinary LOOKUP, so
|
|
122
|
+
// reading a secret requires WRITE access here — a read grant is not
|
|
123
|
+
// sufficient. Established by bisection: granting only login.keychain-db,
|
|
124
|
+
// that file plus the session UUID dir, or plus a .fl* lock regex all fail,
|
|
125
|
+
// and granting the directory then re-denying the db also fails.
|
|
126
|
+
//
|
|
127
|
+
// Declared per-provider (not in the shared write block) so only providers
|
|
128
|
+
// that actually need the keychain receive it, and so the inherited-sandbox
|
|
129
|
+
// capability probe checks it — an outer sandbox that denies this path now
|
|
130
|
+
// fails closed as sandbox_capability_denied instead of launching Gemini
|
|
131
|
+
// with its internal protections bypassed and failing at credential access.
|
|
132
|
+
sub("Library/Keychains", "macOS Keychain state for Gemini CLI API-key lookup")
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
grok: {
|
|
136
|
+
providerId: "grok",
|
|
137
|
+
requiredWritePaths: [sub(".grok", "Grok CLI session/auth state")],
|
|
138
|
+
// Unmatched tools inherit always-approve / ask rules from config.toml.
|
|
139
|
+
persistentAuthorityWriteDenyPaths: [{ kind: "literal", relativePath: "config.toml" }]
|
|
140
|
+
},
|
|
141
|
+
kiro: {
|
|
142
|
+
providerId: "kiro",
|
|
143
|
+
requiredWritePaths: [sub(".kiro", "Kiro CLI state"), sub(".config/kiro", "Kiro CLI config")]
|
|
144
|
+
},
|
|
145
|
+
antigravity: {
|
|
146
|
+
providerId: "antigravity",
|
|
147
|
+
// Antigravity (`agy`) is built on the Gemini stack and writes across the
|
|
148
|
+
// whole ~/.gemini tree at runtime: OAuth token (~/.gemini/oauth_creds.json),
|
|
149
|
+
// auto-created project config (~/.gemini/config/projects/*.json), and CLI
|
|
150
|
+
// state (~/.gemini/antigravity-cli/). Granting the subtree mirrors the
|
|
151
|
+
// gemini manifest; scoping to subdirs caused `operation not permitted` on
|
|
152
|
+
// the project-config write and a hard exit 2 under the seatbelt.
|
|
153
|
+
requiredWritePaths: [sub(".gemini", "Antigravity/Gemini CLI state, OAuth, and project config")]
|
|
154
|
+
},
|
|
155
|
+
opencode: {
|
|
156
|
+
providerId: "opencode",
|
|
157
|
+
requiredWritePaths: [sub(".config/opencode", "OpenCode CLI state")],
|
|
158
|
+
// Isolated runs already treat these as user config (commands / agents)
|
|
159
|
+
// that would otherwise leak into later invocations.
|
|
160
|
+
persistentAuthorityWriteDenyPaths: [
|
|
161
|
+
{ kind: "literal", relativePath: "opencode/opencode.json" },
|
|
162
|
+
{ kind: "literal", relativePath: "opencode/config.json" },
|
|
163
|
+
{ kind: "subpath", relativePath: "opencode/agent" }
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
pi: {
|
|
167
|
+
providerId: "pi",
|
|
168
|
+
// Pi writes auth.json, models.json, the model store, and a security event
|
|
169
|
+
// log under ~/.pi/agent. Poetic passes --no-session so session files are not
|
|
170
|
+
// created, but the agent dir itself is still written at startup: without
|
|
171
|
+
// this grant Pi dies with EPERM on mkdir before the model is reached.
|
|
172
|
+
requiredWritePaths: [sub(".pi", "Pi agent auth, model catalog, and event log")]
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
function getKnownSandboxProviderIds() {
|
|
176
|
+
return Object.keys(PROVIDER_MANIFESTS).sort();
|
|
177
|
+
}
|
|
178
|
+
function getProviderFilesystemManifest(providerId) {
|
|
179
|
+
if (!providerId) return void 0;
|
|
180
|
+
return PROVIDER_MANIFESTS[providerId.toLowerCase()];
|
|
181
|
+
}
|
|
182
|
+
function getRequiredWritePathsForProvider(providerId, options = {}) {
|
|
183
|
+
const manifest = getProviderFilesystemManifest(providerId);
|
|
184
|
+
const providerPaths = resolveRuntimeProviderWritePaths(providerId, manifest, options.env);
|
|
185
|
+
return [
|
|
186
|
+
...providerPaths,
|
|
187
|
+
...options.includeSharedPaths === false ? [] : resolveRuntimeSharedWritePaths(options.env)
|
|
188
|
+
];
|
|
189
|
+
}
|
|
190
|
+
function getProviderAuthorityWriteDenyPathSpecs(providerId, options = {}) {
|
|
191
|
+
const manifests = providerId ? [getProviderFilesystemManifest(providerId)].filter(
|
|
192
|
+
(manifest) => !!manifest
|
|
193
|
+
) : Object.values(PROVIDER_MANIFESTS);
|
|
194
|
+
const seen = /* @__PURE__ */ new Set();
|
|
195
|
+
const results = [];
|
|
196
|
+
for (const manifest of manifests) {
|
|
197
|
+
const denyPaths = manifest.persistentAuthorityWriteDenyPaths;
|
|
198
|
+
if (!denyPaths?.length) continue;
|
|
199
|
+
const runtimeRoots = resolveRuntimeProviderWritePaths(
|
|
200
|
+
manifest.providerId,
|
|
201
|
+
manifest,
|
|
202
|
+
options.env
|
|
203
|
+
);
|
|
204
|
+
const roots = providerId ? runtimeRoots : [...manifest.requiredWritePaths, ...runtimeRoots];
|
|
205
|
+
for (const rootSpec of roots) {
|
|
206
|
+
if (rootSpec.rejected || rootSpec.kind !== "subpath") continue;
|
|
207
|
+
const isOpencode = manifest.providerId === "opencode";
|
|
208
|
+
const isOpencodeRuntimeRoot = rootSpec.note?.includes("OpenCode XDG_") === true;
|
|
209
|
+
if (isOpencodeRuntimeRoot && !rootSpec.note?.includes("XDG_CONFIG_HOME")) continue;
|
|
210
|
+
const root = resolveWritePathSpec(rootSpec, options.env?.HOME);
|
|
211
|
+
if (!root) continue;
|
|
212
|
+
for (const denyPath of denyPaths) {
|
|
213
|
+
const relativePath = isOpencode && !isOpencodeRuntimeRoot ? denyPath.relativePath.replace(/^opencode\//, "") : denyPath.relativePath;
|
|
214
|
+
const absolutePath = path.join(root, relativePath);
|
|
215
|
+
const key = `${denyPath.kind}:${absolutePath}`;
|
|
216
|
+
if (seen.has(key)) continue;
|
|
217
|
+
seen.add(key);
|
|
218
|
+
results.push({
|
|
219
|
+
kind: denyPath.kind,
|
|
220
|
+
homeRelative: absolutePath,
|
|
221
|
+
absolutePath,
|
|
222
|
+
note: `${manifest.providerId} persistent authority surface`
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return results;
|
|
228
|
+
}
|
|
229
|
+
function isPathWithin(candidate, parent) {
|
|
230
|
+
const relative = path.relative(parent, candidate);
|
|
231
|
+
return relative === "" || !!relative && !relative.startsWith("..") && !path.isAbsolute(relative);
|
|
232
|
+
}
|
|
233
|
+
function allowedRuntimeConfigRoots(env = process.env) {
|
|
234
|
+
const roots = /* @__PURE__ */ new Set();
|
|
235
|
+
const home = env?.HOME ?? process.env.HOME ?? os.homedir();
|
|
236
|
+
if (home) {
|
|
237
|
+
const resolvedHome = path.resolve(home);
|
|
238
|
+
roots.add(path.join(resolvedHome, ".config", "poetic"));
|
|
239
|
+
roots.add(path.join(resolvedHome, ".poetic"));
|
|
240
|
+
roots.add(path.join(resolvedHome, ".local", "share", "poetic"));
|
|
241
|
+
roots.add(path.join(resolvedHome, ".local", "state", "poetic"));
|
|
242
|
+
roots.add(path.join(resolvedHome, ".claude"));
|
|
243
|
+
roots.add(path.join(resolvedHome, ".codex"));
|
|
244
|
+
roots.add(path.join(resolvedHome, ".pi"));
|
|
245
|
+
}
|
|
246
|
+
const containedRuntimeRoot = getContainedHomeSiblingRuntimeRoot(env);
|
|
247
|
+
if (containedRuntimeRoot) {
|
|
248
|
+
roots.add(containedRuntimeRoot);
|
|
249
|
+
}
|
|
250
|
+
roots.add(path.join(path.resolve(process.cwd()), ".poetic"));
|
|
251
|
+
for (const tmpRoot of [
|
|
252
|
+
os.tmpdir(),
|
|
253
|
+
"/tmp",
|
|
254
|
+
"/private/tmp",
|
|
255
|
+
"/var/folders",
|
|
256
|
+
"/private/var/folders"
|
|
257
|
+
]) {
|
|
258
|
+
if (tmpRoot) roots.add(path.resolve(tmpRoot));
|
|
259
|
+
}
|
|
260
|
+
return [...roots];
|
|
261
|
+
}
|
|
262
|
+
function resolveExistingPathPrefix(candidate) {
|
|
263
|
+
const segments = [];
|
|
264
|
+
let current = candidate;
|
|
265
|
+
while (!fs.existsSync(current)) {
|
|
266
|
+
const parent = path.dirname(current);
|
|
267
|
+
if (parent === current) {
|
|
268
|
+
return path.resolve(candidate);
|
|
269
|
+
}
|
|
270
|
+
segments.unshift(path.basename(current));
|
|
271
|
+
current = parent;
|
|
272
|
+
}
|
|
273
|
+
try {
|
|
274
|
+
const realPrefix = fs.realpathSync(current);
|
|
275
|
+
return path.join(realPrefix, ...segments);
|
|
276
|
+
} catch {
|
|
277
|
+
return void 0;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function expandLeadingTilde(rawValue) {
|
|
281
|
+
if (rawValue === void 0) return void 0;
|
|
282
|
+
const trimmed = rawValue.trim();
|
|
283
|
+
if (!trimmed) return trimmed;
|
|
284
|
+
if (trimmed !== "~" && !trimmed.startsWith("~/")) return trimmed;
|
|
285
|
+
const home = process.env.HOME ?? os.homedir();
|
|
286
|
+
if (!home) return trimmed;
|
|
287
|
+
return trimmed === "~" ? home : path.join(home, trimmed.slice(2));
|
|
288
|
+
}
|
|
289
|
+
function resolveAllowedRuntimeConfigDir(rawValue, env) {
|
|
290
|
+
const trimmed = rawValue?.trim();
|
|
291
|
+
if (!trimmed) return void 0;
|
|
292
|
+
const resolved = resolveExistingPathPrefix(path.resolve(trimmed));
|
|
293
|
+
if (!resolved) return void 0;
|
|
294
|
+
return isAllowedRuntimeWritePath(resolved, env) ? resolved : void 0;
|
|
295
|
+
}
|
|
296
|
+
function isAllowedRuntimeWritePath(absolutePath, env = process.env) {
|
|
297
|
+
if (!absolutePath || !path.isAbsolute(absolutePath)) return false;
|
|
298
|
+
const resolved = resolveExistingPathPrefix(path.resolve(absolutePath));
|
|
299
|
+
if (!resolved) return false;
|
|
300
|
+
return allowedRuntimeConfigRoots(env).some((root) => {
|
|
301
|
+
const resolvedRoot = resolveExistingPathPrefix(root);
|
|
302
|
+
return resolvedRoot ? isPathWithin(resolved, resolvedRoot) : false;
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
function resolveRuntimeProviderWritePaths(providerId, manifest, env) {
|
|
306
|
+
const normalized = providerId?.toLowerCase();
|
|
307
|
+
const basePaths = manifest?.requiredWritePaths ?? [];
|
|
308
|
+
if (normalized === "claude") {
|
|
309
|
+
const configDir = resolveAllowedRuntimeConfigDir(env?.CLAUDE_CONFIG_DIR, env);
|
|
310
|
+
if (configDir) {
|
|
311
|
+
return [absoluteSubpath(configDir, "Claude CLI config dir (CLAUDE_CONFIG_DIR)")];
|
|
312
|
+
}
|
|
313
|
+
return basePaths;
|
|
314
|
+
}
|
|
315
|
+
if (normalized === "cursor") {
|
|
316
|
+
const configDir = resolveAllowedRuntimeConfigDir(
|
|
317
|
+
env?.CURSOR_CONFIG_DIR ?? env?.POETIC_CURSOR_CONFIG_DIR,
|
|
318
|
+
env
|
|
319
|
+
);
|
|
320
|
+
if (configDir) {
|
|
321
|
+
return [absoluteSubpath(configDir, "Cursor CLI config dir (CURSOR_CONFIG_DIR)")];
|
|
322
|
+
}
|
|
323
|
+
return basePaths;
|
|
324
|
+
}
|
|
325
|
+
if (normalized === "codex") {
|
|
326
|
+
const rawCodexHome = expandLeadingTilde(env?.CODEX_HOME);
|
|
327
|
+
if (rawCodexHome) {
|
|
328
|
+
const configDir = resolveAllowedRuntimeConfigDir(rawCodexHome, env);
|
|
329
|
+
return [
|
|
330
|
+
configDir ? absoluteSubpath(configDir, "Codex CLI state (CODEX_HOME)") : rejectedRuntimeDir(
|
|
331
|
+
path.resolve(rawCodexHome),
|
|
332
|
+
"Codex CLI state (CODEX_HOME, rejected: outside allowed roots)"
|
|
333
|
+
)
|
|
334
|
+
];
|
|
335
|
+
}
|
|
336
|
+
return basePaths;
|
|
337
|
+
}
|
|
338
|
+
if (normalized === "opencode") {
|
|
339
|
+
const xdgDirs = [
|
|
340
|
+
{ value: env?.XDG_DATA_HOME, note: "OpenCode XDG_DATA_HOME (isolated)" },
|
|
341
|
+
{ value: env?.XDG_CONFIG_HOME, note: "OpenCode XDG_CONFIG_HOME (isolated)" },
|
|
342
|
+
{ value: env?.XDG_STATE_HOME, note: "OpenCode XDG_STATE_HOME (isolated)" },
|
|
343
|
+
{ value: env?.XDG_CACHE_HOME, note: "OpenCode XDG_CACHE_HOME (isolated)" }
|
|
344
|
+
];
|
|
345
|
+
const anyPresent = xdgDirs.some((d) => d.value?.trim());
|
|
346
|
+
if (!anyPresent) {
|
|
347
|
+
return basePaths;
|
|
348
|
+
}
|
|
349
|
+
const resolvedSpecs = [];
|
|
350
|
+
for (const { value, note } of xdgDirs) {
|
|
351
|
+
const trimmed = value?.trim();
|
|
352
|
+
if (!trimmed) continue;
|
|
353
|
+
const resolved = resolveAllowedRuntimeConfigDir(trimmed, env);
|
|
354
|
+
resolvedSpecs.push(
|
|
355
|
+
resolved ? absoluteSubpath(resolved, note) : rejectedRuntimeDir(path.resolve(trimmed), `${note} (rejected: outside allowed roots)`)
|
|
356
|
+
);
|
|
357
|
+
}
|
|
358
|
+
return resolvedSpecs.length > 0 ? resolvedSpecs : basePaths;
|
|
359
|
+
}
|
|
360
|
+
if (normalized === "pi") {
|
|
361
|
+
const rawAgentDir = expandLeadingTilde(env?.PI_CODING_AGENT_DIR);
|
|
362
|
+
if (rawAgentDir) {
|
|
363
|
+
const configDir = resolveAllowedRuntimeConfigDir(rawAgentDir, env);
|
|
364
|
+
return [
|
|
365
|
+
configDir ? absoluteSubpath(configDir, "Pi agent dir (PI_CODING_AGENT_DIR)") : rejectedRuntimeDir(
|
|
366
|
+
path.resolve(rawAgentDir),
|
|
367
|
+
"Pi agent dir (PI_CODING_AGENT_DIR, rejected: outside allowed roots)"
|
|
368
|
+
)
|
|
369
|
+
];
|
|
370
|
+
}
|
|
371
|
+
return basePaths;
|
|
372
|
+
}
|
|
373
|
+
return basePaths;
|
|
374
|
+
}
|
|
375
|
+
function resolveRuntimePoeticStatePath(env) {
|
|
376
|
+
const poeticHome = env.POETIC_HOME?.trim();
|
|
377
|
+
if (poeticHome) {
|
|
378
|
+
const statePath = path.join(poeticHome, "state");
|
|
379
|
+
const resolved = resolveAllowedRuntimeConfigDir(statePath, env);
|
|
380
|
+
return resolved ? absoluteSubpath(resolved, "Poetic home state dir (POETIC_HOME/state)") : rejectedRuntimeDir(
|
|
381
|
+
path.resolve(statePath),
|
|
382
|
+
"Poetic home state dir (POETIC_HOME/state, rejected: outside allowed roots)"
|
|
383
|
+
);
|
|
384
|
+
}
|
|
385
|
+
const xdgStateHome = env.XDG_STATE_HOME?.trim();
|
|
386
|
+
if (xdgStateHome) {
|
|
387
|
+
const resolved = resolveAllowedRuntimeConfigDir(path.join(xdgStateHome, "poetic"), env);
|
|
388
|
+
if (resolved) {
|
|
389
|
+
return absoluteSubpath(resolved, "Poetic XDG state (XDG_STATE_HOME)");
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
return void 0;
|
|
393
|
+
}
|
|
394
|
+
function resolveRuntimeSharedWritePaths(env) {
|
|
395
|
+
if (!env) return POETIC_SHARED_WRITE_PATHS;
|
|
396
|
+
const stateDir = resolveRuntimePoeticStatePath(env);
|
|
397
|
+
const dataDir = resolveRuntimePoeticDataPath(env);
|
|
398
|
+
const configDir = resolveAllowedRuntimeConfigDir(env.POETIC_CONFIG_DIR, env);
|
|
399
|
+
if (!stateDir && !dataDir && !configDir) return POETIC_SHARED_WRITE_PATHS;
|
|
400
|
+
return [
|
|
401
|
+
stateDir ?? sub(".poetic", "Poetic home state (default ~/.poetic/state)"),
|
|
402
|
+
dataDir ?? sub(".poetic", "Poetic home data (default ~/.poetic/data)"),
|
|
403
|
+
configDir ? absoluteSubpath(configDir, "Poetic config dir (POETIC_CONFIG_DIR)") : sub(".poetic", "Poetic home config and runtime dirs")
|
|
404
|
+
];
|
|
405
|
+
}
|
|
406
|
+
function resolveRuntimePoeticDataPath(env) {
|
|
407
|
+
const explicitDataDir = env.POETIC_DATA_DIR?.trim();
|
|
408
|
+
if (explicitDataDir) {
|
|
409
|
+
const resolved = resolveAllowedRuntimeConfigDir(explicitDataDir, env);
|
|
410
|
+
if (resolved) {
|
|
411
|
+
return absoluteSubpath(resolved, "Poetic data dir (POETIC_DATA_DIR)");
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
const poeticHome = env.POETIC_HOME?.trim();
|
|
415
|
+
if (poeticHome) {
|
|
416
|
+
const dataPath = path.join(poeticHome, "data");
|
|
417
|
+
const resolved = resolveAllowedRuntimeConfigDir(dataPath, env);
|
|
418
|
+
return resolved ? absoluteSubpath(resolved, "Poetic home data dir (POETIC_HOME/data)") : rejectedRuntimeDir(
|
|
419
|
+
path.resolve(dataPath),
|
|
420
|
+
"Poetic home data dir (POETIC_HOME/data, rejected: outside allowed roots)"
|
|
421
|
+
);
|
|
422
|
+
}
|
|
423
|
+
const xdgDataHome = env.XDG_DATA_HOME?.trim();
|
|
424
|
+
if (xdgDataHome) {
|
|
425
|
+
const resolved = resolveAllowedRuntimeConfigDir(path.join(xdgDataHome, "poetic"), env);
|
|
426
|
+
if (resolved) {
|
|
427
|
+
return absoluteSubpath(resolved, "Poetic XDG data (XDG_DATA_HOME)");
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
return void 0;
|
|
431
|
+
}
|
|
432
|
+
function getAllProviderWritePathSpecs(options = {}) {
|
|
433
|
+
const seen = /* @__PURE__ */ new Set();
|
|
434
|
+
const result = [];
|
|
435
|
+
const pushUnique = (spec) => {
|
|
436
|
+
const key = `${spec.kind}:${spec.absolutePath ?? spec.homeRelative}`;
|
|
437
|
+
if (seen.has(key)) return;
|
|
438
|
+
seen.add(key);
|
|
439
|
+
result.push(spec);
|
|
440
|
+
};
|
|
441
|
+
for (const manifest of Object.values(PROVIDER_MANIFESTS)) {
|
|
442
|
+
for (const spec of manifest.requiredWritePaths) pushUnique(spec);
|
|
443
|
+
}
|
|
444
|
+
const claudeRuntimeConfigDir = resolveAllowedRuntimeConfigDir(
|
|
445
|
+
options.env?.CLAUDE_CONFIG_DIR,
|
|
446
|
+
options.env
|
|
447
|
+
);
|
|
448
|
+
if (claudeRuntimeConfigDir) {
|
|
449
|
+
pushUnique(
|
|
450
|
+
absoluteSubpath(claudeRuntimeConfigDir, "Claude CLI config dir (CLAUDE_CONFIG_DIR)")
|
|
451
|
+
);
|
|
452
|
+
}
|
|
453
|
+
const cursorRuntimeConfigDir = resolveAllowedRuntimeConfigDir(
|
|
454
|
+
options.env?.CURSOR_CONFIG_DIR ?? options.env?.POETIC_CURSOR_CONFIG_DIR,
|
|
455
|
+
options.env
|
|
456
|
+
);
|
|
457
|
+
if (cursorRuntimeConfigDir) {
|
|
458
|
+
pushUnique(
|
|
459
|
+
absoluteSubpath(cursorRuntimeConfigDir, "Cursor CLI config dir (CURSOR_CONFIG_DIR)")
|
|
460
|
+
);
|
|
461
|
+
}
|
|
462
|
+
for (const spec of resolveRuntimeSharedWritePaths(options.env)) pushUnique(spec);
|
|
463
|
+
for (const spec of COMMON_TOOLCHAIN_WRITE_PATHS) pushUnique(spec);
|
|
464
|
+
return result;
|
|
465
|
+
}
|
|
466
|
+
function resolveWritePathSpec(spec, home = process.env.HOME ?? os.homedir()) {
|
|
467
|
+
if (spec.kind === "regex") return void 0;
|
|
468
|
+
if (spec.absolutePath) return spec.absolutePath;
|
|
469
|
+
return `${home}/${spec.homeRelative}`;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
// src/core/sandbox/capability-probe.ts
|
|
473
|
+
import fs2 from "fs";
|
|
474
|
+
import path2 from "path";
|
|
475
|
+
function probePathWritable(targetPath, probeSuffix) {
|
|
476
|
+
const spec = { kind: "subpath", homeRelative: targetPath };
|
|
477
|
+
let dir = targetPath;
|
|
478
|
+
let existing;
|
|
479
|
+
for (let i = 0; i < 64; i += 1) {
|
|
480
|
+
if (fs2.existsSync(dir)) {
|
|
481
|
+
existing = dir;
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
const parent = path2.dirname(dir);
|
|
485
|
+
if (parent === dir) break;
|
|
486
|
+
dir = parent;
|
|
487
|
+
}
|
|
488
|
+
if (!existing) {
|
|
489
|
+
return { path: targetPath, spec, writable: false, detail: "no existing ancestor directory" };
|
|
490
|
+
}
|
|
491
|
+
let probeDir = existing;
|
|
492
|
+
try {
|
|
493
|
+
if (!fs2.statSync(existing).isDirectory()) {
|
|
494
|
+
probeDir = path2.dirname(existing);
|
|
495
|
+
}
|
|
496
|
+
} catch (error) {
|
|
497
|
+
return {
|
|
498
|
+
path: targetPath,
|
|
499
|
+
spec,
|
|
500
|
+
writable: false,
|
|
501
|
+
detail: error instanceof Error ? error.message : String(error)
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
const probeEntry = path2.join(probeDir, `.poetic-cap-${probeSuffix}`);
|
|
505
|
+
try {
|
|
506
|
+
fs2.writeFileSync(probeEntry, "", { flag: "wx" });
|
|
507
|
+
return { path: targetPath, spec, writable: true };
|
|
508
|
+
} catch (error) {
|
|
509
|
+
return {
|
|
510
|
+
path: targetPath,
|
|
511
|
+
spec,
|
|
512
|
+
writable: false,
|
|
513
|
+
detail: error instanceof Error ? error.message : String(error)
|
|
514
|
+
};
|
|
515
|
+
} finally {
|
|
516
|
+
try {
|
|
517
|
+
fs2.rmSync(probeEntry, { force: true });
|
|
518
|
+
} catch {
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
var probeCounter = 0;
|
|
523
|
+
function probeProviderSandboxCapability(providerId, options = {}) {
|
|
524
|
+
const specs = getRequiredWritePathsForProvider(providerId, {
|
|
525
|
+
env: options.env,
|
|
526
|
+
includeSharedPaths: options.includeSharedPaths
|
|
527
|
+
});
|
|
528
|
+
const probed = [];
|
|
529
|
+
for (const spec of specs) {
|
|
530
|
+
if (spec.rejected) {
|
|
531
|
+
const rejectedPath = spec.absolutePath ?? resolveWritePathSpec(spec, options.home) ?? "";
|
|
532
|
+
probed.push({
|
|
533
|
+
path: rejectedPath,
|
|
534
|
+
spec,
|
|
535
|
+
writable: false,
|
|
536
|
+
detail: "explicit runtime dir outside allowed roots (rejected by sandbox policy)"
|
|
537
|
+
});
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
540
|
+
const resolved = resolveWritePathSpec(spec, options.home);
|
|
541
|
+
if (!resolved) continue;
|
|
542
|
+
probeCounter += 1;
|
|
543
|
+
const suffix = `${process.pid}-${probeCounter}`;
|
|
544
|
+
const result = probePathWritable(resolved, suffix);
|
|
545
|
+
probed.push({ ...result, spec });
|
|
546
|
+
}
|
|
547
|
+
const missing = probed.filter((r) => !r.writable);
|
|
548
|
+
return {
|
|
549
|
+
providerId,
|
|
550
|
+
capable: missing.length === 0,
|
|
551
|
+
probed,
|
|
552
|
+
missing
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
function formatSandboxDegradedSummary(result) {
|
|
556
|
+
const provider = result.providerId ?? "provider";
|
|
557
|
+
const paths = result.missing.map((entry) => entry.path).join(", ");
|
|
558
|
+
return paths ? `${provider}: sandbox blocked (${paths})` : `${provider}: sandbox/policy blocked`;
|
|
559
|
+
}
|
|
560
|
+
function formatSandboxCapabilityFailure(result, context = {}) {
|
|
561
|
+
const provider = result.providerId ?? "provider";
|
|
562
|
+
const label = context.role ? `[${provider}/${context.role}]` : `[${provider}]`;
|
|
563
|
+
const deniedPaths = result.missing.map((entry) => entry.path).join(", ");
|
|
564
|
+
const lines = result.missing.map((m) => {
|
|
565
|
+
const note = m.spec.note ? ` (${m.spec.note})` : "";
|
|
566
|
+
const detail = m.detail ? `: ${m.detail}` : "";
|
|
567
|
+
return ` - ${m.path}${note}${detail}`;
|
|
568
|
+
});
|
|
569
|
+
return [
|
|
570
|
+
`${label} sandbox/policy blocked: required state path(s) not writable under the effective sandbox.`,
|
|
571
|
+
deniedPaths ? `Denied path(s): ${deniedPaths}` : void 0,
|
|
572
|
+
"This is a sandbox/policy access issue; the provider may still be authenticated or configured.",
|
|
573
|
+
...lines
|
|
574
|
+
].filter((line) => Boolean(line)).join("\n");
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
export {
|
|
578
|
+
getKnownSandboxProviderIds,
|
|
579
|
+
getRequiredWritePathsForProvider,
|
|
580
|
+
getProviderAuthorityWriteDenyPathSpecs,
|
|
581
|
+
isAllowedRuntimeWritePath,
|
|
582
|
+
getAllProviderWritePathSpecs,
|
|
583
|
+
resolveWritePathSpec,
|
|
584
|
+
probeProviderSandboxCapability,
|
|
585
|
+
formatSandboxDegradedSummary,
|
|
586
|
+
formatSandboxCapabilityFailure
|
|
587
|
+
};
|
|
588
|
+
//# sourceMappingURL=chunk-5WCQRDRB.js.map
|