@poetic-ai/poetic 1.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/SECURITY.md +47 -0
- package/.nvmrc +1 -0
- package/.poetic/README.md +37 -0
- package/.poetic/providers/catalog.json +12051 -0
- package/.poetic/providers/pricing.json +1272 -0
- package/.poetic/providers/registry.json +3369 -0
- package/CHANGELOG.md +552 -0
- package/CODE_OF_CONDUCT.md +40 -0
- package/CONTRIBUTING.md +23 -0
- package/INSTALL.md +454 -0
- package/LICENSE +21 -0
- package/README.md +474 -0
- package/dist/BasicOptimizationCompetitionRunner-5H5TBYO4.js +153 -0
- package/dist/ExecutionTracker-UVONC4C6.js +16 -0
- package/dist/OptimizationConfig-7DFY2TST.js +17 -0
- package/dist/OptimizationEngine-JIMGP3LY.js +1597 -0
- package/dist/PromptStore-U6ZD3ZMQ.js +18 -0
- package/dist/actions-LUJPINLJ.js +322 -0
- package/dist/agent-ingest-3DJUJ7FU.js +53 -0
- package/dist/aggregator-DNCBINFO.js +12 -0
- package/dist/ai-judge-5QT5QJVU.js +156 -0
- package/dist/allowlist-grounding-RO6HKUFI.js +16 -0
- package/dist/allowlist-utils-23V7TJ3G.js +28 -0
- package/dist/anchored-turn-service-JULUCUIK.js +489 -0
- package/dist/api-transport-4TYTNLTJ.js +1087 -0
- package/dist/apply-completion-mode-AW2MOS3R.js +89 -0
- package/dist/artifact-migrator-23L45ISD.js +267 -0
- package/dist/ask-HWVV6QFR.js +135 -0
- package/dist/auth-5KEDKAPP.js +67 -0
- package/dist/auth-7TT3JINV.js +78 -0
- package/dist/auth-E6XUNZ5M.js +68 -0
- package/dist/auth-H3XDZE22.js +134 -0
- package/dist/auth-OC4E6633.js +71 -0
- package/dist/auth-S4CTX4GQ.js +44 -0
- package/dist/auth-YLH3S7EY.js +69 -0
- package/dist/auth-liveness-TDDEZY3T.js +46 -0
- package/dist/auto-optimizer-VPRWOWGU.js +80 -0
- package/dist/autoloop-cleanup-JOGKTLWA.js +109 -0
- package/dist/autoloop-evidence-gates-PCDALGVJ.js +38 -0
- package/dist/autoloop-gate-policy-Z7FVJVXV.js +175 -0
- package/dist/autoloop-helpers-2KTK43GL.js +22 -0
- package/dist/autoloop-ledger-W7QO62PX.js +96 -0
- package/dist/autoloop-ledger-subscriber-Z5RW5EIE.js +162 -0
- package/dist/autoloop-run-defaults-FERGRZGP.js +19 -0
- package/dist/autoloop-run-lock-CT2NWSV3.js +197 -0
- package/dist/autoloop-success-J2VKKBXQ.js +85 -0
- package/dist/autoloop-termination-summary-RN75F422.js +58 -0
- package/dist/autoloop-trajectory-XFIEXP5Z.js +282 -0
- package/dist/autoloop-wall-clock-T7ZVIQOC.js +12 -0
- package/dist/autonomous-loop-controller-PW4XVFGQ.js +4120 -0
- package/dist/backend-P3DAYRP7.js +29 -0
- package/dist/background-executor-CBN552V4.js +257 -0
- package/dist/backlog-execution-intent-U4XYPTV6.js +15 -0
- package/dist/backup-active-store-5WXG6SXT.js +17 -0
- package/dist/backup-telemetry-db-XGLXAA3N.js +254 -0
- package/dist/basic-competition-master-VCSBJVRN.js +344 -0
- package/dist/branch-archive-manager-RP6FP3ZC.js +254 -0
- package/dist/branch-cleanup-manager-RSHAI7YR.js +20 -0
- package/dist/build-gate-YHGRB4QB.js +71 -0
- package/dist/change-summary-WY7J5TOX.js +33 -0
- package/dist/chunk-23A26CSN.js +123 -0
- package/dist/chunk-27UTJD3M.js +265 -0
- package/dist/chunk-2A5CILN3.js +310 -0
- package/dist/chunk-2AQUWJPW.js +225 -0
- package/dist/chunk-2BZ53J6J.js +2344 -0
- package/dist/chunk-2DY5KNVM.js +276 -0
- package/dist/chunk-2EIA4RBE.js +659 -0
- package/dist/chunk-2IUXIGQD.js +1064 -0
- package/dist/chunk-2N42MS2Z.js +2193 -0
- package/dist/chunk-2QJ3H3L7.js +42 -0
- package/dist/chunk-2QLYTVYX.js +791 -0
- package/dist/chunk-2VSQMRCB.js +18 -0
- package/dist/chunk-2XQXYBM2.js +130 -0
- package/dist/chunk-2YFUIER7.js +426 -0
- package/dist/chunk-34CNP2HB.js +148 -0
- package/dist/chunk-35P3W3JX.js +456 -0
- package/dist/chunk-36PEBZAF.js +18 -0
- package/dist/chunk-3AOKYKA7.js +22 -0
- package/dist/chunk-3BCUNHKF.js +475 -0
- package/dist/chunk-3FLXLLB7.js +26 -0
- package/dist/chunk-3FOZ2VHV.js +100 -0
- package/dist/chunk-3G6FZCRF.js +106 -0
- package/dist/chunk-3M57DADF.js +44 -0
- package/dist/chunk-3S62LLWJ.js +543 -0
- package/dist/chunk-3ZPQLGV7.js +2904 -0
- package/dist/chunk-44N5WZZH.js +45 -0
- package/dist/chunk-45FPSA3B.js +125 -0
- package/dist/chunk-4BJ3O4RQ.js +929 -0
- package/dist/chunk-4BOP7T6L.js +2321 -0
- package/dist/chunk-4BTDUT2S.js +42 -0
- package/dist/chunk-4CSS7WVI.js +143 -0
- package/dist/chunk-4CUY7AFY.js +247 -0
- package/dist/chunk-4GSN5O5J.js +62 -0
- package/dist/chunk-4HN6DF7V.js +1027 -0
- package/dist/chunk-4IAPOG5V.js +415 -0
- package/dist/chunk-4IYIZQWV.js +48 -0
- package/dist/chunk-4NXPXE62.js +84 -0
- package/dist/chunk-4RCCF5BR.js +712 -0
- package/dist/chunk-4V7NAQ4R.js +19527 -0
- package/dist/chunk-4VJITV4P.js +445 -0
- package/dist/chunk-4YX7J6QL.js +1859 -0
- package/dist/chunk-527OBWQB.js +338 -0
- package/dist/chunk-5D4A7E3D.js +448 -0
- package/dist/chunk-5DLKYTQX.js +4003 -0
- package/dist/chunk-5EERLVZB.js +139 -0
- package/dist/chunk-5H72XE4H.js +256 -0
- package/dist/chunk-5HDP7XZG.js +91 -0
- package/dist/chunk-5LAMRH4X.js +969 -0
- package/dist/chunk-5LTN43AS.js +1972 -0
- package/dist/chunk-5RBHQYDB.js +2206 -0
- package/dist/chunk-5WCQRDRB.js +588 -0
- package/dist/chunk-5WRLK5KW.js +700 -0
- package/dist/chunk-5ZCXC23G.js +595 -0
- package/dist/chunk-6BM72ZMG.js +31 -0
- package/dist/chunk-6EDAJH2I.js +68 -0
- package/dist/chunk-6EQKFDBH.js +457 -0
- package/dist/chunk-6MFRHTRI.js +115 -0
- package/dist/chunk-6TZJRKNW.js +321 -0
- package/dist/chunk-6V7HGQFZ.js +20 -0
- package/dist/chunk-6VWVO2TU.js +3746 -0
- package/dist/chunk-6Y5TWI7H.js +146 -0
- package/dist/chunk-6Y5U7UFY.js +91 -0
- package/dist/chunk-6ZLAK3XG.js +14 -0
- package/dist/chunk-72XCRQED.js +34 -0
- package/dist/chunk-72YTZMAM.js +589 -0
- package/dist/chunk-73BBJOKA.js +263 -0
- package/dist/chunk-73NCTWKL.js +188 -0
- package/dist/chunk-77I6G4CO.js +1 -0
- package/dist/chunk-7DHRDWFS.js +3104 -0
- package/dist/chunk-7DNSNKJV.js +78 -0
- package/dist/chunk-7FMJVYBS.js +307 -0
- package/dist/chunk-7GDRQBQC.js +419 -0
- package/dist/chunk-7GPCEFUV.js +270 -0
- package/dist/chunk-7IL4A2PP.js +948 -0
- package/dist/chunk-7MMLMXO6.js +3679 -0
- package/dist/chunk-7QCZSLBH.js +1 -0
- package/dist/chunk-7R2WLDOS.js +62 -0
- package/dist/chunk-7T7RUJI7.js +949 -0
- package/dist/chunk-A2WKSVX7.js +43 -0
- package/dist/chunk-A3YGID55.js +133 -0
- package/dist/chunk-A722DEVA.js +14 -0
- package/dist/chunk-ACDIT7OP.js +1376 -0
- package/dist/chunk-ACKIPAOJ.js +302 -0
- package/dist/chunk-APPNGGN7.js +365 -0
- package/dist/chunk-APV6MK5E.js +137 -0
- package/dist/chunk-ASEP3M2W.js +968 -0
- package/dist/chunk-AT4TNPWW.js +2931 -0
- package/dist/chunk-ATVKCSGT.js +250 -0
- package/dist/chunk-AURFMVCD.js +899 -0
- package/dist/chunk-AX6GWE7V.js +47 -0
- package/dist/chunk-AY5EWJPF.js +385 -0
- package/dist/chunk-BAV2HJXS.js +194 -0
- package/dist/chunk-BBHRN366.js +89 -0
- package/dist/chunk-BBPSTTPA.js +1004 -0
- package/dist/chunk-BDATUDDJ.js +992 -0
- package/dist/chunk-BKE5PG5L.js +20414 -0
- package/dist/chunk-BLPHWMDK.js +797 -0
- package/dist/chunk-BSE4R6XD.js +322 -0
- package/dist/chunk-BXGMAU4A.js +396 -0
- package/dist/chunk-BXI4NXL3.js +507 -0
- package/dist/chunk-BZU2O43F.js +1125 -0
- package/dist/chunk-C3L6YQ7P.js +147 -0
- package/dist/chunk-C57KJOUQ.js +121 -0
- package/dist/chunk-CCV7BPSY.js +118 -0
- package/dist/chunk-CD7ISXA4.js +826 -0
- package/dist/chunk-CE5OZBYY.js +21 -0
- package/dist/chunk-CFBIG37O.js +154 -0
- package/dist/chunk-CJC6GZ46.js +457 -0
- package/dist/chunk-CKCDGXIV.js +408 -0
- package/dist/chunk-CKNX3TTP.js +10338 -0
- package/dist/chunk-CLKSETWE.js +10 -0
- package/dist/chunk-CP7H3HSP.js +1552 -0
- package/dist/chunk-CPLEWXNZ.js +66 -0
- package/dist/chunk-CQM3A35X.js +844 -0
- package/dist/chunk-CS6P76D3.js +103 -0
- package/dist/chunk-CTLUBNCW.js +622 -0
- package/dist/chunk-CUSRN6RJ.js +632 -0
- package/dist/chunk-D5EP5D2W.js +26 -0
- package/dist/chunk-D5RYINO7.js +412 -0
- package/dist/chunk-DBFS4HMH.js +751 -0
- package/dist/chunk-DC4ZYMXJ.js +115 -0
- package/dist/chunk-DCBZP442.js +9243 -0
- package/dist/chunk-DCYF7EKG.js +26 -0
- package/dist/chunk-DDMAFNUK.js +5351 -0
- package/dist/chunk-DF5SLDE4.js +966 -0
- package/dist/chunk-DJFW7SMX.js +348 -0
- package/dist/chunk-DQFLLBJW.js +121 -0
- package/dist/chunk-DSFM56OA.js +1203 -0
- package/dist/chunk-DTY4APYV.js +218 -0
- package/dist/chunk-DXH5JBRS.js +437 -0
- package/dist/chunk-E3NTPHEO.js +194 -0
- package/dist/chunk-E74LUIID.js +302 -0
- package/dist/chunk-EI57M5BI.js +194 -0
- package/dist/chunk-EJ4ZAWLV.js +305 -0
- package/dist/chunk-EJGCZGUF.js +1483 -0
- package/dist/chunk-EK2U3YEG.js +486 -0
- package/dist/chunk-ELMFYNV7.js +109 -0
- package/dist/chunk-ENRGKNR5.js +25 -0
- package/dist/chunk-ETYDXCK7.js +679 -0
- package/dist/chunk-EYRH3W74.js +239 -0
- package/dist/chunk-F23DIWNN.js +1024 -0
- package/dist/chunk-F5JO7HAS.js +94 -0
- package/dist/chunk-F7ER6ANO.js +174 -0
- package/dist/chunk-FATUVIIN.js +374 -0
- package/dist/chunk-FC23CTXV.js +322 -0
- package/dist/chunk-FD4ERYEG.js +22 -0
- package/dist/chunk-FH7WOJAE.js +79 -0
- package/dist/chunk-FHOWVDF5.js +1342 -0
- package/dist/chunk-FKAUPHMR.js +96 -0
- package/dist/chunk-FONNFJXA.js +137 -0
- package/dist/chunk-FQ7FSZRW.js +75 -0
- package/dist/chunk-FRG57FPM.js +240 -0
- package/dist/chunk-FUVP64ER.js +31 -0
- package/dist/chunk-FYOILAN5.js +6818 -0
- package/dist/chunk-G35UYQ6Z.js +69 -0
- package/dist/chunk-G36W2T2S.js +1143 -0
- package/dist/chunk-G3L2L5XZ.js +49 -0
- package/dist/chunk-G4THLFV3.js +148 -0
- package/dist/chunk-GAFJEYLK.js +29 -0
- package/dist/chunk-GFGYB2ZU.js +1689 -0
- package/dist/chunk-GG6KJYW6.js +85 -0
- package/dist/chunk-GHHFDU2U.js +55 -0
- package/dist/chunk-GHTZSQB7.js +57 -0
- package/dist/chunk-GK37ILCX.js +1231 -0
- package/dist/chunk-GKN3HMN4.js +2809 -0
- package/dist/chunk-GNVDBVJP.js +156 -0
- package/dist/chunk-GPEL3FBM.js +924 -0
- package/dist/chunk-GPSNGPZS.js +1604 -0
- package/dist/chunk-GSGD5E4C.js +30 -0
- package/dist/chunk-GSUQJJXQ.js +331 -0
- package/dist/chunk-GSV226X6.js +110 -0
- package/dist/chunk-H2AYQIHW.js +224 -0
- package/dist/chunk-H66DXFS5.js +1374 -0
- package/dist/chunk-H6G7QRMQ.js +35 -0
- package/dist/chunk-H7JAGHZT.js +59 -0
- package/dist/chunk-H7ZEFECA.js +316 -0
- package/dist/chunk-HAC6EHZZ.js +79 -0
- package/dist/chunk-HIO33P3G.js +19 -0
- package/dist/chunk-HMVQIPH3.js +547 -0
- package/dist/chunk-HOYBYAOA.js +257 -0
- package/dist/chunk-HX5P3CSP.js +1784 -0
- package/dist/chunk-I46EG2XQ.js +65 -0
- package/dist/chunk-I4NPDSCB.js +279 -0
- package/dist/chunk-I5WRT7ZR.js +514 -0
- package/dist/chunk-IC7I6YIJ.js +301 -0
- package/dist/chunk-IDCSOZVN.js +78 -0
- package/dist/chunk-IFCBYECK.js +112 -0
- package/dist/chunk-IFZCPEY2.js +66 -0
- package/dist/chunk-IKFP2KUR.js +48 -0
- package/dist/chunk-IRFBN336.js +878 -0
- package/dist/chunk-IUXNGKA6.js +152 -0
- package/dist/chunk-IV2RVAN7.js +1356 -0
- package/dist/chunk-IZYIQQ7X.js +53 -0
- package/dist/chunk-J3UUR7DE.js +210 -0
- package/dist/chunk-J54VUAY2.js +566 -0
- package/dist/chunk-J62KPGII.js +464 -0
- package/dist/chunk-J6P3FWWW.js +130 -0
- package/dist/chunk-JKBHJQMT.js +434 -0
- package/dist/chunk-JLS65NUQ.js +14 -0
- package/dist/chunk-JOSYEJKY.js +141 -0
- package/dist/chunk-JPKSXKNB.js +94 -0
- package/dist/chunk-JQNJB2BB.js +2440 -0
- package/dist/chunk-JRVNSWSQ.js +2626 -0
- package/dist/chunk-JSWMRQYG.js +28 -0
- package/dist/chunk-JZKNBBIB.js +152 -0
- package/dist/chunk-K54Y7MLK.js +160 -0
- package/dist/chunk-K65546RE.js +183 -0
- package/dist/chunk-KM3F7SYE.js +702 -0
- package/dist/chunk-KNDYMVWN.js +102 -0
- package/dist/chunk-KNT72VR6.js +132 -0
- package/dist/chunk-KP6YILMU.js +482 -0
- package/dist/chunk-KQEBSK3T.js +274 -0
- package/dist/chunk-KT6VHSPF.js +84 -0
- package/dist/chunk-KTMW65UX.js +14 -0
- package/dist/chunk-KZ5CJVBP.js +1813 -0
- package/dist/chunk-L4427KOE.js +26 -0
- package/dist/chunk-L6OM4A22.js +189 -0
- package/dist/chunk-L7E6XCRA.js +1042 -0
- package/dist/chunk-L7JZLXQL.js +173 -0
- package/dist/chunk-LAMKBTXX.js +40 -0
- package/dist/chunk-LDCF2MKN.js +132 -0
- package/dist/chunk-LEIIWPWQ.js +78 -0
- package/dist/chunk-LFTQVYBB.js +31 -0
- package/dist/chunk-LG3PDRTR.js +2872 -0
- package/dist/chunk-LGHII5ET.js +23 -0
- package/dist/chunk-LH5QY22X.js +1205 -0
- package/dist/chunk-LIVJ6266.js +438 -0
- package/dist/chunk-LKRAR3IH.js +276 -0
- package/dist/chunk-LO23NABI.js +3063 -0
- package/dist/chunk-LO3X5NLS.js +326 -0
- package/dist/chunk-LPITVM7M.js +339 -0
- package/dist/chunk-LR5IJIGV.js +810 -0
- package/dist/chunk-LRGMHROI.js +79 -0
- package/dist/chunk-LUVKFFWR.js +315 -0
- package/dist/chunk-LWCBNGH6.js +35 -0
- package/dist/chunk-LWTN3WRV.js +260 -0
- package/dist/chunk-M3HQYKQX.js +308 -0
- package/dist/chunk-M6GVSPEH.js +1016 -0
- package/dist/chunk-MF5HP6XV.js +221 -0
- package/dist/chunk-MHLCBZJB.js +328 -0
- package/dist/chunk-MN6PL4AN.js +120 -0
- package/dist/chunk-MOEY65Z6.js +5678 -0
- package/dist/chunk-MQ4WA34C.js +206 -0
- package/dist/chunk-MWHF5V7U.js +223 -0
- package/dist/chunk-MWHLBPNU.js +211 -0
- package/dist/chunk-MWK5UZQ3.js +1068 -0
- package/dist/chunk-MYLH2S4G.js +64 -0
- package/dist/chunk-MZ5WYKNA.js +28 -0
- package/dist/chunk-N4VTRA7K.js +131 -0
- package/dist/chunk-N5DX4JAK.js +12 -0
- package/dist/chunk-N65O4XTH.js +5011 -0
- package/dist/chunk-NEQUQHOX.js +223 -0
- package/dist/chunk-NGK6PEOG.js +25 -0
- package/dist/chunk-NJVD4PWE.js +1033 -0
- package/dist/chunk-NM6PMYY4.js +768 -0
- package/dist/chunk-NN4PJDHP.js +708 -0
- package/dist/chunk-NP2V3L7K.js +226 -0
- package/dist/chunk-NRLY536M.js +260 -0
- package/dist/chunk-NRNE225N.js +1270 -0
- package/dist/chunk-NS2K2GTP.js +605 -0
- package/dist/chunk-NS33V3IM.js +51 -0
- package/dist/chunk-NSHASMZZ.js +71 -0
- package/dist/chunk-NWOYOA6H.js +378 -0
- package/dist/chunk-NWRUSEXG.js +322 -0
- package/dist/chunk-NZGDAWIP.js +1905 -0
- package/dist/chunk-O47UOKU3.js +395 -0
- package/dist/chunk-O4G2W3ST.js +9831 -0
- package/dist/chunk-O6V4PNLO.js +63 -0
- package/dist/chunk-OA4GPILI.js +624 -0
- package/dist/chunk-OGMSYL6J.js +227 -0
- package/dist/chunk-OIS7J26S.js +319 -0
- package/dist/chunk-OMX5VL43.js +79 -0
- package/dist/chunk-ON3G73BU.js +264 -0
- package/dist/chunk-OPYFYTWQ.js +220 -0
- package/dist/chunk-OQ6K46CK.js +1734 -0
- package/dist/chunk-OYZYO7TV.js +47 -0
- package/dist/chunk-OZ4REHIN.js +4386 -0
- package/dist/chunk-P47VN5F4.js +282 -0
- package/dist/chunk-P5I4X7A7.js +353 -0
- package/dist/chunk-P6VQROCO.js +594 -0
- package/dist/chunk-P7CQGPLS.js +30 -0
- package/dist/chunk-PCAGC5MR.js +1763 -0
- package/dist/chunk-PFTQBXS6.js +5181 -0
- package/dist/chunk-PGSPX4SU.js +15 -0
- package/dist/chunk-PIKLF7BM.js +432 -0
- package/dist/chunk-PJWJ3SAV.js +22 -0
- package/dist/chunk-PKIFMV72.js +100 -0
- package/dist/chunk-PL37JDNA.js +189 -0
- package/dist/chunk-PTH5E5XO.js +195 -0
- package/dist/chunk-PW6AXLQC.js +4128 -0
- package/dist/chunk-PYITM4N2.js +79 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-Q3RO7N35.js +45 -0
- package/dist/chunk-Q3WIC6GQ.js +2670 -0
- package/dist/chunk-Q5XIXSHX.js +271 -0
- package/dist/chunk-QGJDMEOV.js +34 -0
- package/dist/chunk-QNOB37UH.js +58 -0
- package/dist/chunk-QOCOVLUH.js +462 -0
- package/dist/chunk-QTCJ5CC5.js +172 -0
- package/dist/chunk-QVFV5IP2.js +232 -0
- package/dist/chunk-QVZMFDYG.js +29 -0
- package/dist/chunk-R35PEUKH.js +511 -0
- package/dist/chunk-R4UWBC35.js +200 -0
- package/dist/chunk-R6MLCREW.js +44 -0
- package/dist/chunk-R6W23LKN.js +254 -0
- package/dist/chunk-R7XDDX2A.js +4007 -0
- package/dist/chunk-RDFRCT64.js +168 -0
- package/dist/chunk-RE5VZDFQ.js +58 -0
- package/dist/chunk-RGROYC2G.js +638 -0
- package/dist/chunk-RGWHUI5E.js +68 -0
- package/dist/chunk-RHVG6UNL.js +205 -0
- package/dist/chunk-RI4EX2QE.js +18 -0
- package/dist/chunk-RJAAKDRX.js +17 -0
- package/dist/chunk-ROMHOSMQ.js +185 -0
- package/dist/chunk-RWREC3KJ.js +517 -0
- package/dist/chunk-RYNETRDJ.js +118 -0
- package/dist/chunk-RZY7RKM5.js +500 -0
- package/dist/chunk-S2MNWFAG.js +52 -0
- package/dist/chunk-S2VQCZO4.js +22 -0
- package/dist/chunk-S54MKU6V.js +117 -0
- package/dist/chunk-S5OIDFRM.js +302 -0
- package/dist/chunk-SCW4ZF6R.js +150 -0
- package/dist/chunk-SLS2N4PH.js +2213 -0
- package/dist/chunk-SNLBO4BF.js +247 -0
- package/dist/chunk-SP3LFU6B.js +60 -0
- package/dist/chunk-SQQTDDQA.js +537 -0
- package/dist/chunk-STV6LYYE.js +45 -0
- package/dist/chunk-SURZ2WFE.js +326 -0
- package/dist/chunk-SZ7DL357.js +1047 -0
- package/dist/chunk-T5E4NQCM.js +5742 -0
- package/dist/chunk-TAJPCXSB.js +13 -0
- package/dist/chunk-TAOOYK3P.js +358 -0
- package/dist/chunk-TDSEX5CF.js +24 -0
- package/dist/chunk-TFTGP7Z7.js +174 -0
- package/dist/chunk-TGON4N4O.js +197 -0
- package/dist/chunk-TGQZHDY2.js +2373 -0
- package/dist/chunk-TJJZ2OKV.js +6783 -0
- package/dist/chunk-TRSVUPCX.js +25 -0
- package/dist/chunk-TSXGRLPR.js +107 -0
- package/dist/chunk-U2S3YEX3.js +224 -0
- package/dist/chunk-U45RTRGY.js +818 -0
- package/dist/chunk-U6C3VVWS.js +13 -0
- package/dist/chunk-UDMS5AD3.js +307 -0
- package/dist/chunk-UGX7GI37.js +94 -0
- package/dist/chunk-UH3JJSHK.js +1 -0
- package/dist/chunk-UHRBTZYY.js +208 -0
- package/dist/chunk-UHT2KRG5.js +193 -0
- package/dist/chunk-UI2F6DJ5.js +118 -0
- package/dist/chunk-UMAKSB4Z.js +284 -0
- package/dist/chunk-UR2IBGIM.js +521 -0
- package/dist/chunk-UUH2RVKS.js +585 -0
- package/dist/chunk-UVJ4PJDK.js +4533 -0
- package/dist/chunk-V53UG2OT.js +9924 -0
- package/dist/chunk-V72RMBM4.js +48 -0
- package/dist/chunk-VBNCKCCI.js +16 -0
- package/dist/chunk-VNSYKC25.js +24 -0
- package/dist/chunk-VPHVFK4A.js +1984 -0
- package/dist/chunk-VTLNJQ44.js +133 -0
- package/dist/chunk-VTW7HP3R.js +100 -0
- package/dist/chunk-VVGEPBPS.js +218 -0
- package/dist/chunk-VVLLL7I4.js +166 -0
- package/dist/chunk-VX3UMWB7.js +483 -0
- package/dist/chunk-VXF4Q3FW.js +20 -0
- package/dist/chunk-W3JMT2YY.js +712 -0
- package/dist/chunk-WDUORIHF.js +877 -0
- package/dist/chunk-WDVTY4U6.js +148 -0
- package/dist/chunk-WIFZCHEG.js +12566 -0
- package/dist/chunk-WIRN3F75.js +736 -0
- package/dist/chunk-WMPU2UOV.js +82 -0
- package/dist/chunk-WTOKKE2V.js +784 -0
- package/dist/chunk-WX5IRLF6.js +740 -0
- package/dist/chunk-WZ6U3O7I.js +1581 -0
- package/dist/chunk-XAONGNST.js +57 -0
- package/dist/chunk-XB5YLCLB.js +13 -0
- package/dist/chunk-XEP5NQ5Y.js +688 -0
- package/dist/chunk-XGYF2QMZ.js +351 -0
- package/dist/chunk-XHEKQENB.js +255 -0
- package/dist/chunk-XNO4FM6X.js +1124 -0
- package/dist/chunk-XPHKYHO4.js +878 -0
- package/dist/chunk-XPK2I4NC.js +405 -0
- package/dist/chunk-XPU2XADL.js +2175 -0
- package/dist/chunk-XQD2B6BB.js +507 -0
- package/dist/chunk-XT2ZQVTC.js +558 -0
- package/dist/chunk-XTXJGGUV.js +351 -0
- package/dist/chunk-XUXVDPSZ.js +50 -0
- package/dist/chunk-XV7NZL4B.js +57 -0
- package/dist/chunk-XZE4XARH.js +563 -0
- package/dist/chunk-XZYR5EDO.js +152 -0
- package/dist/chunk-Y3J4JMTU.js +61 -0
- package/dist/chunk-Y55LZN5U.js +52 -0
- package/dist/chunk-Y5VN7DMP.js +112 -0
- package/dist/chunk-Y67VAHN4.js +459 -0
- package/dist/chunk-YAXSKEUH.js +3544 -0
- package/dist/chunk-YB3JD4E6.js +975 -0
- package/dist/chunk-YESZJFK6.js +220 -0
- package/dist/chunk-YGXKOBQQ.js +292 -0
- package/dist/chunk-YMX76IOS.js +31 -0
- package/dist/chunk-YOTXESEH.js +257 -0
- package/dist/chunk-YTYIEZQY.js +119 -0
- package/dist/chunk-YVORHQ2S.js +579 -0
- package/dist/chunk-Z2CUQDAR.js +3429 -0
- package/dist/chunk-Z2KYOFHS.js +7000 -0
- package/dist/chunk-Z6PC7QX6.js +161 -0
- package/dist/chunk-ZDTGECTN.js +235 -0
- package/dist/chunk-ZIPWI2LY.js +151 -0
- package/dist/chunk-ZSKKMTQJ.js +554 -0
- package/dist/chunk-ZTT5IVPY.js +1160 -0
- package/dist/chunk-ZX65UI5W.js +78 -0
- package/dist/chunk-ZYG7GGKO.js +218 -0
- package/dist/chunk-ZZZUL4OF.js +38 -0
- package/dist/cli-utils-IXL26KJT.js +40 -0
- package/dist/cli-validation-WLXWLUJL.js +111 -0
- package/dist/commit-utils-P7CRJF5N.js +202 -0
- package/dist/compete-config-resolver-R5ULXMYH.js +76 -0
- package/dist/compete-request-62JESVET.js +364 -0
- package/dist/compete-results-QEPG6FZX.js +208 -0
- package/dist/competition-outcome-tracker-R32OOZ43.js +38 -0
- package/dist/config-JCOKXOQT.js +166 -0
- package/dist/config-audit-EL3GHXS7.js +360 -0
- package/dist/config-explain-TNILDEVJ.js +12 -0
- package/dist/config-loader-VPFPFO4B.js +38 -0
- package/dist/config-manager-7T4E2BQO.js +67 -0
- package/dist/config-validator-KKOHOW7O.js +72 -0
- package/dist/cost-YC42XUF3.js +53 -0
- package/dist/coverage-orchestrator-CISNKJC2.js +772 -0
- package/dist/coverage-scanner-YVD62MLH.js +12 -0
- package/dist/createCompetitionRunner-LJG6ZQSO.js +46 -0
- package/dist/data-migration-state-VJK64DLT.js +31 -0
- package/dist/db-migrator-XSEIOGWY.js +34 -0
- package/dist/discovery-JGYGDD25.js +25 -0
- package/dist/doctor-GJOYE7AE.js +186 -0
- package/dist/domain-analyzer-AWF3RP6E.js +29 -0
- package/dist/ensure-initialized-744DIZEZ.js +52 -0
- package/dist/entry.js +940 -0
- package/dist/environment-YS45U5ZI.js +81 -0
- package/dist/error-parser-core-PPZ36A4S.js +50 -0
- package/dist/escalation-ladder-MKTCEGSA.js +130 -0
- package/dist/evaluation-context-KV4GZNN7.js +35 -0
- package/dist/evidence-plan-resolver-GBSYSAPX.js +85 -0
- package/dist/execution-data-writer-3ODTBDLH.js +53 -0
- package/dist/execution-policy-applier-ZHD3DCF3.js +31 -0
- package/dist/execution-preflight-Z4Y64V3I.js +209 -0
- package/dist/execution-roles-R3DPPMD3.js +66 -0
- package/dist/exit-code-error-Z4SW2DVK.js +14 -0
- package/dist/external-temp-cleanup-N2RZH4QP.js +311 -0
- package/dist/factory-XBN7DFIM.js +149 -0
- package/dist/file-utils-XIVR2ZMA.js +47 -0
- package/dist/flywheel-autoloop-executor-UILGOFFK.js +249 -0
- package/dist/flywheel-competition-executor-JOBEXTRB.js +259 -0
- package/dist/flywheel-executor-6JFLA6J5.js +369 -0
- package/dist/flywheel-git-isolation-UC5NIEVU.js +48 -0
- package/dist/flywheel-manifest-5UC4VBMA.js +108 -0
- package/dist/flywheel-model-defaults-7CVKP53V.js +27 -0
- package/dist/flywheel-preflight-XEY5SHM6.js +104 -0
- package/dist/flywheel-resume-7HELH7QS.js +23 -0
- package/dist/flywheel-safety-7U7DPOAP.js +28 -0
- package/dist/flywheel-scope-decision-ZHKF6ZIN.js +11 -0
- package/dist/get-telemetry-logger-DPVWWIYY.js +73 -0
- package/dist/git-worktree-IY6V6DUO.js +18 -0
- package/dist/github-pr-manager-4LXEKJTA.js +211 -0
- package/dist/guidance-profile-config-E7XJL2VP.js +117 -0
- package/dist/guidance-profile-renderer-QK2YMAAP.js +21 -0
- package/dist/index-query-4JEUKA44.js +31 -0
- package/dist/index.js +108661 -0
- package/dist/instructions-6BURLQJC.js +64 -0
- package/dist/invoke-provider-auth-GRUYP44M.js +223 -0
- package/dist/judge-scoring.json +80 -0
- package/dist/judge-test.js +555 -0
- package/dist/lab-mode-OTWVHN63.js +39 -0
- package/dist/lab-utils-BJRFLGK4.js +23 -0
- package/dist/linux-host-class-UY4KVLFD.js +29 -0
- package/dist/llm-judge-executor-F7Z3HO77.js +133 -0
- package/dist/local-executor-CEHWE2PL.js +223 -0
- package/dist/logger-33TR6EE5.js +72 -0
- package/dist/loop-spec-XTLQAVZ7.js +191 -0
- package/dist/manager-2HJG5CLT.js +25 -0
- package/dist/matrix-prompt-builder-6UDN5X3F.js +497 -0
- package/dist/matrix-result-parser-7W35EUOV.js +15 -0
- package/dist/metadata-HQ43NDEK.js +22 -0
- package/dist/model-invocations-db-QBO4Y7WZ.js +38 -0
- package/dist/monitor-XGYBG2DW.js +72 -0
- package/dist/next-PB5ZXZKB.js +90 -0
- package/dist/next-ZBDK725T.js +69 -0
- package/dist/optimization-config-resolver-O6WKR47U.js +75 -0
- package/dist/package-3YCWIQQ5.js +10 -0
- package/dist/parallel-orchestrator-NL7YJJU2.js +297 -0
- package/dist/parallel-worker.js +279 -0
- package/dist/parse-git-status-PIAF3OTP.js +10 -0
- package/dist/path-security-ETTH6TZL.js +39 -0
- package/dist/pattern-bank-UNJR5ADV.js +15 -0
- package/dist/plan-backlog-list-fast-VAGYBV3J.js +270 -0
- package/dist/plan-backlog-show-fast-SG2CZPW3.js +406 -0
- package/dist/plan-sprint-list-fast-LURAX47V.js +162 -0
- package/dist/plan-sprint-status-fast-FJAODCHD.js +208 -0
- package/dist/plan-task-status-fast-HNYBMQI4.js +349 -0
- package/dist/plan-to-flywheel-Z4U3GWPN.js +456 -0
- package/dist/planning-backlog-3CQ5QQBQ.js +319 -0
- package/dist/poetic-root-V5DNXEAE.js +17 -0
- package/dist/preflight-OPANWMME.js +12 -0
- package/dist/process-registry-PDZJPTAS.js +27 -0
- package/dist/process-scanner-C22SYXYD.js +22 -0
- package/dist/processes-KMQUD7HY.js +29 -0
- package/dist/processes-json-fast-IBDXZ6WW.js +135 -0
- package/dist/profile-SE5EVXAP.js +149 -0
- package/dist/prompts-WZZPGWBX.js +168 -0
- package/dist/protected-branches-RNTEX7ET.js +57 -0
- package/dist/provider-aware-resource-manager-QBTZJMNP.js +18 -0
- package/dist/provider-matrix-N5X57V3Y.js +154 -0
- package/dist/provider-matrix-renderer-MZDWKKID.js +139 -0
- package/dist/provider-output-forwarding-DERID3TP.js +30 -0
- package/dist/provider-registry-J5NRBJKI.js +128 -0
- package/dist/provider-temp-cleanup-KYGLF6YU.js +14 -0
- package/dist/prune-engine-Q6E2DXBN.js +451 -0
- package/dist/quality-gate-YRHMQAEI.js +70 -0
- package/dist/quickstart-FIRLKGJI.js +62 -0
- package/dist/readiness-VZTMSG6J.js +96 -0
- package/dist/registry-YODFY77A.js +153 -0
- package/dist/repair-helpers-TTV5FEF4.js +117 -0
- package/dist/repo-root-2IGD4H7X.js +22 -0
- package/dist/resolution-engine-D6TX6FRG.js +127 -0
- package/dist/resolve-provider-cli-O2P6XZBZ.js +35 -0
- package/dist/restore-telemetry-db-BQL6DTQF.js +360 -0
- package/dist/result-streamer-WEHW476R.js +19 -0
- package/dist/routing-events-DHPUZDDF.js +27 -0
- package/dist/routing-history-store-UWCEXAP3.js +46 -0
- package/dist/routing-planner-F5WQEUOM.js +160 -0
- package/dist/run-poetic-tui-J6LWRJUP.js +13517 -0
- package/dist/run-simulation.js +376 -0
- package/dist/runner-CS2TNGHA.js +1092 -0
- package/dist/runner-HHH7ZN2Z.js +1571 -0
- package/dist/safety-OCC4KJJR.js +64 -0
- package/dist/safety-stanza-7SV3HGG3.js +60 -0
- package/dist/sandbox-32QXJEMV.js +81 -0
- package/dist/sandbox-RSO7VP6V.js +94 -0
- package/dist/schema-extensions.sql +234 -0
- package/dist/security-2KI5XNDG.js +17 -0
- package/dist/setup-bb-plugin-QAQWZCV5.js +738 -0
- package/dist/setup-claude-code-P7BTTSPO.js +317 -0
- package/dist/setup-temp-cleanup-GASCWZ2I.js +20 -0
- package/dist/shared-utils-D6U6UREP.js +37 -0
- package/dist/simple-artifact-goal-OTXNGZY6.js +25 -0
- package/dist/sprint-UIXPYOXQ.js +338 -0
- package/dist/sprint-bridge-4BHMSC3M.js +68 -0
- package/dist/sprint-execution-service-2B7WHL5L.js +311 -0
- package/dist/sprint-manager-IDQUDNQI.js +91 -0
- package/dist/sqlite-wrapper-UDWCTNLJ.js +17 -0
- package/dist/stale-cleanup-orchestrator-XWXV7KCZ.js +62 -0
- package/dist/storage-access-F6ALDN4S.js +22 -0
- package/dist/synthesis-XD6EDVHF.js +185 -0
- package/dist/task-classifier-LNLXSHOM.js +494 -0
- package/dist/task-list-fast-PTMA4LUC.js +147 -0
- package/dist/task-manager-XAT7GOWB.js +93 -0
- package/dist/task-splitter-U7DJ7W6A.js +79 -0
- package/dist/task-type-detector-OLVOMXZO.js +21 -0
- package/dist/task-type-resolver-KKNQYSB4.js +42 -0
- package/dist/telemetry-5HWBBXLX.js +131 -0
- package/dist/telemetry-health-tracker-DMSSGBZ2.js +11 -0
- package/dist/telemetry-path-resolver-7ICSG276.js +28 -0
- package/dist/telemetry-reliability-XUOZNZZ6.js +125 -0
- package/dist/token-estimator-MEQUL3EJ.js +37 -0
- package/dist/transports-KNSSV2V4.js +255 -0
- package/dist/unified-cost-tracker-4TFRBVPR.js +35 -0
- package/dist/unified-state-cleanup-LJPF2BOW.js +276 -0
- package/dist/universal-cost-calculator-BAJV35GA.js +42 -0
- package/dist/user-agents-GHUGCSKN.js +22 -0
- package/dist/variant-delivery-state-KLRNG6XA.js +33 -0
- package/dist/variant-state-cleanup-MZGGLQAJ.js +280 -0
- package/dist/variant-success-PJXWE3ZV.js +12 -0
- package/dist/variant-worker-KUWKBLAH.js +4196 -0
- package/dist/variant-worker.js +24 -0
- package/dist/variants-JE2FSAQS.js +233 -0
- package/dist/verification-toolchains-V24UHW6Q.js +28 -0
- package/dist/verify-commands-H3DTCSGI.js +37 -0
- package/dist/warning-EGQGUUIO.js +12 -0
- package/dist/work-edge-RWEDWJZF.js +49 -0
- package/dist/work-item-writer-WHAVZXAY.js +19 -0
- package/dist/worker-7SA2VS2Y.js +1435 -0
- package/dist/worker.js +19 -0
- package/dist/worktree-metrics-3DFUYVYE.js +26 -0
- package/dist/writeback-VZKHYHSN.js +44 -0
- package/docs/CLI_REFERENCE.md +7042 -0
- package/docs/PROVIDER_SETUP.md +1570 -0
- package/docs/README.md +96 -0
- package/docs/TROUBLESHOOTING.md +2232 -0
- package/docs/getting-started/QUICK_START.md +294 -0
- package/docs/getting-started/README.md +188 -0
- package/docs/getting-started/SETUP.md +52 -0
- package/docs/reference/AGENT_CONTEXT.md +38 -0
- package/docs/reference/PROVIDER_RELEASE_TIERS.md +34 -0
- package/docs/reference/README.md +381 -0
- package/docs/reference/SECURITY.md +262 -0
- package/integrations/bb-plugin-poetic/README.md +362 -0
- package/integrations/bb-plugin-poetic/app.css +341 -0
- package/integrations/bb-plugin-poetic/app.tsx +5059 -0
- package/integrations/bb-plugin-poetic/package.json +45 -0
- package/integrations/bb-plugin-poetic/server.ts +444 -0
- package/integrations/bb-plugin-poetic/src/adapter.ts +3312 -0
- package/integrations/bb-plugin-poetic/src/backlog-authoring-model.ts +150 -0
- package/integrations/bb-plugin-poetic/src/backlog-authoring-schema.ts +355 -0
- package/integrations/bb-plugin-poetic/src/backlog-authoring-service.ts +419 -0
- package/integrations/bb-plugin-poetic/src/backlog-authoring-view.ts +1026 -0
- package/integrations/bb-plugin-poetic/src/competition-defaults-schema.ts +122 -0
- package/integrations/bb-plugin-poetic/src/competition-defaults-service.ts +105 -0
- package/integrations/bb-plugin-poetic/src/competition-defaults-view.ts +138 -0
- package/integrations/bb-plugin-poetic/src/contract.ts +615 -0
- package/integrations/bb-plugin-poetic/src/finalize-model.ts +205 -0
- package/integrations/bb-plugin-poetic/src/finalize-schema.ts +158 -0
- package/integrations/bb-plugin-poetic/src/finalize-service.ts +382 -0
- package/integrations/bb-plugin-poetic/src/finalize-view.ts +159 -0
- package/integrations/bb-plugin-poetic/src/judge-operations-readback.ts +303 -0
- package/integrations/bb-plugin-poetic/src/judge-operations-schema.ts +33 -0
- package/integrations/bb-plugin-poetic/src/judge-operations-view.ts +459 -0
- package/integrations/bb-plugin-poetic/src/model.ts +1302 -0
- package/integrations/bb-plugin-poetic/src/monitor-service.ts +233 -0
- package/integrations/bb-plugin-poetic/src/panel-read-ux.ts +97 -0
- package/integrations/bb-plugin-poetic/src/patch-preview-schema.ts +166 -0
- package/integrations/bb-plugin-poetic/src/patch-preview-service.ts +480 -0
- package/integrations/bb-plugin-poetic/src/patch-preview-view.ts +109 -0
- package/integrations/bb-plugin-poetic/src/planning-readback.ts +204 -0
- package/integrations/bb-plugin-poetic/src/planning-service.ts +594 -0
- package/integrations/bb-plugin-poetic/src/planning-workspace-schema.ts +95 -0
- package/integrations/bb-plugin-poetic/src/planning-workspace.ts +323 -0
- package/integrations/bb-plugin-poetic/src/poll-handoff.ts +136 -0
- package/integrations/bb-plugin-poetic/src/project-target-server.ts +21 -0
- package/integrations/bb-plugin-poetic/src/project-target.ts +45 -0
- package/integrations/bb-plugin-poetic/src/reference-index.ts +192 -0
- package/integrations/bb-plugin-poetic/src/repository-schema.ts +30 -0
- package/integrations/bb-plugin-poetic/src/result-explorer-view.ts +597 -0
- package/integrations/bb-plugin-poetic/src/result-readback-model.ts +163 -0
- package/integrations/bb-plugin-poetic/src/result-readback-schema.ts +319 -0
- package/integrations/bb-plugin-poetic/src/result-readback-service.ts +333 -0
- package/integrations/bb-plugin-poetic/src/run-page-view.ts +177 -0
- package/integrations/bb-plugin-poetic/src/setup-config-schema.ts +291 -0
- package/integrations/bb-plugin-poetic/src/setup-config-service.ts +590 -0
- package/integrations/bb-plugin-poetic/src/setup-config-view.ts +413 -0
- package/integrations/bb-plugin-poetic/src/sprint-close-model.ts +150 -0
- package/integrations/bb-plugin-poetic/src/sprint-close-schema.ts +136 -0
- package/integrations/bb-plugin-poetic/src/sprint-close-service.ts +341 -0
- package/integrations/bb-plugin-poetic/src/sprint-close-view.ts +116 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-model.ts +714 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-readback.ts +231 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-schema.ts +601 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-service.ts +775 -0
- package/integrations/bb-plugin-poetic/src/sprint-composition-view.ts +1221 -0
- package/integrations/bb-plugin-poetic/src/task-authoring-model.ts +567 -0
- package/integrations/bb-plugin-poetic/src/task-authoring-schema.ts +635 -0
- package/integrations/bb-plugin-poetic/src/task-authoring-service.ts +842 -0
- package/integrations/bb-plugin-poetic/src/task-authoring-view.ts +1227 -0
- package/integrations/bb-plugin-poetic/src/task-detail-readback.ts +56 -0
- package/integrations/bb-plugin-poetic/src/task-detail-schema.ts +144 -0
- package/integrations/bb-plugin-poetic/src/task-navigation.ts +446 -0
- package/integrations/bb-plugin-poetic/src/workbench-route.ts +74 -0
- package/integrations/bb-plugin-poetic/tests/host-contract.test.ts +773 -0
- package/integrations/bb-plugin-poetic/tsconfig.json +18 -0
- package/integrations/bb-plugin-poetic/types/PROVENANCE.json +52 -0
- package/integrations/bb-plugin-poetic/types/bb-plugin-sdk-app.d.ts +1444 -0
- package/integrations/bb-plugin-poetic/types/bb-plugin-sdk.d.ts +13030 -0
- package/integrations/bb-plugin-poetic/vitest.host.config.ts +71 -0
- package/npm-shrinkwrap.json +4950 -0
- package/package.json +331 -0
- package/schemas/README.md +80 -0
- package/schemas/config-v1.schema.json +136 -0
- package/schemas/execution-config.schema.json +47 -0
- package/schemas/judge-scoring.schema.json +370 -0
- package/schemas/poetic.config.schema.json +2214 -0
- package/schemas/provider-config.schema.json +203 -0
- package/schemas/telemetry-config.schema.json +79 -0
- package/schemas/user-preferences.schema.json +141 -0
- package/scripts/assert-node-runtime.mjs +140 -0
- package/scripts/preflight-native.mjs +49 -0
- package/scripts/preinstall-node-check.mjs +78 -0
- package/scripts/setup-git-hooks.mjs +24 -0
- package/scripts/sync.sh +2722 -0
- package/scripts/write-node-launcher.sh +108 -0
- package/src/resources/gemini/slash-packs/default/plan.toml +15 -0
- package/src/resources/gemini/slash-packs/default/summary.toml +16 -0
- package/src/resources/gemini/slash-packs/default/tests.toml +16 -0
- package/templates/.poetic/README.md +37 -0
- package/templates/.poetic/agents/README.md +296 -0
- package/templates/.poetic/agents/api-documenter.md +147 -0
- package/templates/.poetic/agents/backend-architect.md +31 -0
- package/templates/.poetic/agents/code-reviewer.md +157 -0
- package/templates/.poetic/agents/data-scientist.md +179 -0
- package/templates/.poetic/agents/database-optimizer.md +145 -0
- package/templates/.poetic/agents/debugger.md +31 -0
- package/templates/.poetic/agents/deployment-engineer.md +164 -0
- package/templates/.poetic/agents/devops-troubleshooter.md +139 -0
- package/templates/.poetic/agents/frontend-developer.md +150 -0
- package/templates/.poetic/agents/javascript-pro.md +36 -0
- package/templates/.poetic/agents/performance-engineer.md +151 -0
- package/templates/.poetic/agents/python-pro.md +137 -0
- package/templates/.poetic/agents/test-automator.md +147 -0
- package/templates/.poetic/agents/typescript-pro.md +34 -0
- package/templates/.poetic/config/poetic.config.jsonc +69 -0
- package/templates/.poetic/config/project-context.template.json +6 -0
- package/templates/.poetic/config/task-type-aliases.presets/kanban.yaml +14 -0
- package/templates/.poetic/config/task-type-aliases.presets/scrum.yaml +17 -0
- package/templates/.poetic/config/task-type-aliases.presets/xp.yaml +12 -0
- package/templates/.poetic/config/task-type-aliases.yaml +28 -0
- package/templates/.poetic/gitignore.template +55 -0
- package/templates/.poetic/task-types/analysis.yaml +40 -0
- package/templates/.poetic/task-types/architecture.yaml +38 -0
- package/templates/.poetic/task-types/doc.yaml +35 -0
- package/templates/.poetic/task-types/feature.yaml +23 -0
- package/templates/.poetic/task-types/general.yaml +6 -0
- package/templates/.poetic/task-types/security.yaml +39 -0
- package/templates/AGENTS.template.md +99 -0
- package/templates/CLAUDE.template.md +1 -0
- package/templates/GEMINI.template.md +1 -0
- package/templates/builtin-workflows/code-review.yaml +73 -0
- package/templates/builtin-workflows/compete-streak.yaml +78 -0
- package/templates/builtin-workflows/hello-verify.yaml +10 -0
- package/templates/builtin-workflows/judge-regression.yaml +114 -0
- package/templates/builtin-workflows/skills/code-review/SKILL.md +60 -0
- package/templates/builtin-workflows/skills/hello-verify/SKILL.md +6 -0
- package/templates/guard-kit/GUARD_SETUP.md.template +255 -0
- package/templates/guard-kit/check.mjs.template +777 -0
- package/templates/guard-kit/config.json.template +6 -0
- package/templates/guard-kit/poetic-guard.yml.template +189 -0
- package/templates/profiles/README.md +56 -0
- package/templates/profiles/frontier-claude.json +27 -0
- package/templates/profiles/frontier-codex.json +26 -0
|
@@ -0,0 +1,738 @@
|
|
|
1
|
+
import {
|
|
2
|
+
quotePosixShellArg
|
|
3
|
+
} from "./chunk-N5DX4JAK.js";
|
|
4
|
+
import {
|
|
5
|
+
findPoeticPackageRoot
|
|
6
|
+
} from "./chunk-GSGD5E4C.js";
|
|
7
|
+
import "./chunk-PZ5AY32C.js";
|
|
8
|
+
|
|
9
|
+
// src/cli/commands/setup-bb-plugin.ts
|
|
10
|
+
import { access, readFile as readFile2 } from "fs/promises";
|
|
11
|
+
import path2 from "path";
|
|
12
|
+
import { execa } from "execa";
|
|
13
|
+
import * as semver from "semver";
|
|
14
|
+
|
|
15
|
+
// src/cli/commands/bb-sdk-provenance.ts
|
|
16
|
+
import { createHash } from "crypto";
|
|
17
|
+
import { readFile } from "fs/promises";
|
|
18
|
+
import path from "path";
|
|
19
|
+
var SDK_PROVENANCE_RELATIVE_PATH = path.join("types", "PROVENANCE.json");
|
|
20
|
+
var DIGEST_ALGORITHM = "sha256";
|
|
21
|
+
var KNOWN_GENERATION_METHODS = /* @__PURE__ */ new Set([
|
|
22
|
+
"vendored-rollup-dts-bundle",
|
|
23
|
+
"vendored-verbatim",
|
|
24
|
+
"generated-from-bb-checkout"
|
|
25
|
+
]);
|
|
26
|
+
function isStringArray(value) {
|
|
27
|
+
return Array.isArray(value) && value.every((entry) => typeof entry === "string");
|
|
28
|
+
}
|
|
29
|
+
function isNonEmptyString(value) {
|
|
30
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
31
|
+
}
|
|
32
|
+
function parseDeclarationRecord(value) {
|
|
33
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
34
|
+
const record = value;
|
|
35
|
+
if (!isNonEmptyString(record.file) || !isNonEmptyString(record.specifier) || !isNonEmptyString(record.sha256) || typeof record.byteLength !== "number" || !Number.isInteger(record.byteLength) || record.byteLength <= 0 || !isStringArray(record.requiredExports) || record.requiredExports.length === 0) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
file: record.file,
|
|
40
|
+
specifier: record.specifier,
|
|
41
|
+
sha256: record.sha256,
|
|
42
|
+
byteLength: record.byteLength,
|
|
43
|
+
requiredExports: [...record.requiredExports]
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function parseSdkProvenance(raw) {
|
|
47
|
+
let parsed;
|
|
48
|
+
try {
|
|
49
|
+
parsed = JSON.parse(raw);
|
|
50
|
+
} catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return null;
|
|
54
|
+
const record = parsed;
|
|
55
|
+
const upstream = record.upstream;
|
|
56
|
+
const generation = record.generation;
|
|
57
|
+
const testingHarness = record.testingHarness;
|
|
58
|
+
if (!isNonEmptyString(record.schemaVersion) || !upstream || typeof upstream !== "object" || Array.isArray(upstream) || !generation || typeof generation !== "object" || Array.isArray(generation) || !testingHarness || typeof testingHarness !== "object" || Array.isArray(testingHarness) || !Array.isArray(record.declarations)) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const upstreamRecord = upstream;
|
|
62
|
+
const generationRecord = generation;
|
|
63
|
+
const harnessRecord = testingHarness;
|
|
64
|
+
const sourceCommit = upstreamRecord.sourceCommit;
|
|
65
|
+
const sourceCommitStatus = upstreamRecord.sourceCommitStatus;
|
|
66
|
+
if (!isNonEmptyString(upstreamRecord.repository) || !isNonEmptyString(sourceCommit) || sourceCommitStatus !== "recorded" || !isNonEmptyString(upstreamRecord.sdkVersion) || !isNonEmptyString(upstreamRecord.sdkVersionRange) || !isNonEmptyString(generationRecord.method) || !isNonEmptyString(generationRecord.command) || !isNonEmptyString(generationRecord.notes) || !isNonEmptyString(harnessRecord.specifier) || typeof harnessRecord.vendored !== "boolean" || !isStringArray(harnessRecord.requiredExports) || !isNonEmptyString(harnessRecord.notes)) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
if (!KNOWN_GENERATION_METHODS.has(generationRecord.method)) return null;
|
|
70
|
+
const declarations = [];
|
|
71
|
+
for (const entry of record.declarations) {
|
|
72
|
+
const declaration = parseDeclarationRecord(entry);
|
|
73
|
+
if (!declaration) return null;
|
|
74
|
+
declarations.push(declaration);
|
|
75
|
+
}
|
|
76
|
+
if (declarations.length === 0) return null;
|
|
77
|
+
const vendoredInPoeticCommit = record.vendoredInPoeticCommit;
|
|
78
|
+
if (!(vendoredInPoeticCommit === null || isNonEmptyString(vendoredInPoeticCommit))) return null;
|
|
79
|
+
return {
|
|
80
|
+
schemaVersion: record.schemaVersion,
|
|
81
|
+
upstream: {
|
|
82
|
+
repository: upstreamRecord.repository,
|
|
83
|
+
sourceCommit,
|
|
84
|
+
sourceCommitStatus,
|
|
85
|
+
sdkVersion: upstreamRecord.sdkVersion,
|
|
86
|
+
sdkVersionRange: upstreamRecord.sdkVersionRange
|
|
87
|
+
},
|
|
88
|
+
generation: {
|
|
89
|
+
method: generationRecord.method,
|
|
90
|
+
command: generationRecord.command,
|
|
91
|
+
notes: generationRecord.notes
|
|
92
|
+
},
|
|
93
|
+
vendoredInPoeticCommit: vendoredInPoeticCommit === null ? null : vendoredInPoeticCommit,
|
|
94
|
+
declarations,
|
|
95
|
+
testingHarness: {
|
|
96
|
+
specifier: harnessRecord.specifier,
|
|
97
|
+
vendored: harnessRecord.vendored,
|
|
98
|
+
requiredExports: [...harnessRecord.requiredExports],
|
|
99
|
+
notes: harnessRecord.notes
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function digestDeclaration(text) {
|
|
104
|
+
return createHash(DIGEST_ALGORITHM).update(text, "utf8").digest("hex");
|
|
105
|
+
}
|
|
106
|
+
function declaredExports(text) {
|
|
107
|
+
const found = /* @__PURE__ */ new Set();
|
|
108
|
+
const pattern = /^export(?:\s+type)?\s*\{([^}]*)\}\s*;?\s*$/gm;
|
|
109
|
+
let match = pattern.exec(text);
|
|
110
|
+
while (match !== null) {
|
|
111
|
+
for (const clause of (match[1] ?? "").split(",")) {
|
|
112
|
+
const published = clause.includes(" as ") ? clause.slice(clause.lastIndexOf(" as ") + 4) : clause;
|
|
113
|
+
const name = published.trim();
|
|
114
|
+
if (name) found.add(name);
|
|
115
|
+
}
|
|
116
|
+
match = pattern.exec(text);
|
|
117
|
+
}
|
|
118
|
+
return found;
|
|
119
|
+
}
|
|
120
|
+
function recoveryFor(provenance) {
|
|
121
|
+
if (!provenance) {
|
|
122
|
+
return `Restore ${SDK_PROVENANCE_RELATIVE_PATH} in the Poetic BB plugin package. Standalone Poetic is unaffected; only \`poetic provider setup --bb\` and the BB panel need it.`;
|
|
123
|
+
}
|
|
124
|
+
return `Re-vendor the declarations from ${provenance.upstream.sourceCommit} using \`${provenance.generation.command}\`, then update sha256, byteLength, and upstream.sourceCommit in ${SDK_PROVENANCE_RELATIVE_PATH}. Standalone Poetic is unaffected; only the optional BB path is.`;
|
|
125
|
+
}
|
|
126
|
+
async function checkSdkCompatibility(options) {
|
|
127
|
+
const pluginPath = options.pluginPath;
|
|
128
|
+
const readText = options.readText ?? ((absolutePath) => readFile(absolutePath, "utf8"));
|
|
129
|
+
const findings = [];
|
|
130
|
+
let raw;
|
|
131
|
+
try {
|
|
132
|
+
raw = await readText(path.join(pluginPath, SDK_PROVENANCE_RELATIVE_PATH));
|
|
133
|
+
} catch (error) {
|
|
134
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
135
|
+
findings.push({
|
|
136
|
+
kind: "provenance_unreadable",
|
|
137
|
+
file: SDK_PROVENANCE_RELATIVE_PATH,
|
|
138
|
+
message: `BB plugin SDK provenance record could not be read: ${detail}`
|
|
139
|
+
});
|
|
140
|
+
return {
|
|
141
|
+
ok: false,
|
|
142
|
+
provenance: null,
|
|
143
|
+
findings,
|
|
144
|
+
error: findings[0]?.message ?? "BB plugin SDK provenance record could not be read.",
|
|
145
|
+
recovery: recoveryFor(null)
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const provenance = parseSdkProvenance(raw);
|
|
149
|
+
if (!provenance) {
|
|
150
|
+
findings.push({
|
|
151
|
+
kind: "provenance_invalid",
|
|
152
|
+
file: SDK_PROVENANCE_RELATIVE_PATH,
|
|
153
|
+
message: `BB plugin SDK provenance record at ${SDK_PROVENANCE_RELATIVE_PATH} is not a valid provenance document (upstream commit/version, generation method, and per-declaration digests are all required).`
|
|
154
|
+
});
|
|
155
|
+
return {
|
|
156
|
+
ok: false,
|
|
157
|
+
provenance: null,
|
|
158
|
+
findings,
|
|
159
|
+
error: findings[0]?.message ?? "BB plugin SDK provenance record is invalid.",
|
|
160
|
+
recovery: recoveryFor(null)
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (typeof options.declaredSdkRange === "string" && options.declaredSdkRange !== provenance.upstream.sdkVersionRange) {
|
|
164
|
+
findings.push({
|
|
165
|
+
kind: "sdk_version_mismatch",
|
|
166
|
+
file: null,
|
|
167
|
+
message: `Plugin manifest requires BB plugin SDK ${options.declaredSdkRange}, but the vendored declarations were recorded against ${provenance.upstream.sdkVersionRange} (SDK ${provenance.upstream.sdkVersion}).`
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
for (const declaration of provenance.declarations) {
|
|
171
|
+
let text;
|
|
172
|
+
try {
|
|
173
|
+
text = await readText(path.join(pluginPath, declaration.file));
|
|
174
|
+
} catch (error) {
|
|
175
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
176
|
+
findings.push({
|
|
177
|
+
kind: "declaration_unreadable",
|
|
178
|
+
file: declaration.file,
|
|
179
|
+
message: `Vendored declaration ${declaration.file} could not be read: ${detail}`
|
|
180
|
+
});
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
const byteLength = Buffer.byteLength(text, "utf8");
|
|
184
|
+
if (byteLength !== declaration.byteLength) {
|
|
185
|
+
findings.push({
|
|
186
|
+
kind: "byte_length",
|
|
187
|
+
file: declaration.file,
|
|
188
|
+
message: `Vendored declaration ${declaration.file} is ${byteLength} bytes but provenance records ${declaration.byteLength}.`
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
const digest = digestDeclaration(text);
|
|
192
|
+
if (digest !== declaration.sha256) {
|
|
193
|
+
findings.push({
|
|
194
|
+
kind: "digest",
|
|
195
|
+
file: declaration.file,
|
|
196
|
+
message: `Vendored declaration ${declaration.file} for ${declaration.specifier} drifted from its recorded provenance (${DIGEST_ALGORITHM} ${digest} != ${declaration.sha256}) while the recorded SDK version stayed ${provenance.upstream.sdkVersion}. Semver cannot detect this change.`
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
const exported = declaredExports(text);
|
|
200
|
+
const missing = declaration.requiredExports.filter((name) => !exported.has(name));
|
|
201
|
+
if (missing.length > 0) {
|
|
202
|
+
findings.push({
|
|
203
|
+
kind: "missing_export",
|
|
204
|
+
file: declaration.file,
|
|
205
|
+
message: `Vendored declaration ${declaration.file} no longer exports ${missing.join(", ")}, which ${declaration.specifier} consumers in this plugin require.`
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (findings.length === 0) {
|
|
210
|
+
return { ok: true, provenance, findings, error: "", recovery: null };
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
ok: false,
|
|
214
|
+
provenance,
|
|
215
|
+
findings,
|
|
216
|
+
error: `BB plugin SDK compatibility check failed:
|
|
217
|
+
- ${findings.map((finding) => finding.message).join("\n- ")}`,
|
|
218
|
+
recovery: recoveryFor(provenance)
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// src/cli/commands/setup-bb-plugin.ts
|
|
223
|
+
var BB_PLUGIN_PACKAGE_NAME = "@poetic-ai/bb-plugin-poetic";
|
|
224
|
+
var BB_PLUGIN_RELATIVE_PATH = path2.join("integrations", "bb-plugin-poetic");
|
|
225
|
+
var BB_PLUGIN_ID = "poetic";
|
|
226
|
+
var BB_FALLBACK_COMPATIBLE_RANGE = ">=0.0.0";
|
|
227
|
+
function buildBbProjectRegistrationGuidance(cwd, initialized) {
|
|
228
|
+
if (!initialized) {
|
|
229
|
+
return [
|
|
230
|
+
"Next: initialize your target repository with `poetic init`, then add that repository as a BB project."
|
|
231
|
+
];
|
|
232
|
+
}
|
|
233
|
+
const repositoryPath = path2.resolve(cwd);
|
|
234
|
+
const projectName = path2.basename(repositoryPath);
|
|
235
|
+
return [
|
|
236
|
+
`Next: open the Poetic panel for a BB project rooted at ${repositoryPath}.`,
|
|
237
|
+
`If needed: bb project create --name ${quotePosixShellArg(projectName)} --root ${quotePosixShellArg(repositoryPath)}`
|
|
238
|
+
];
|
|
239
|
+
}
|
|
240
|
+
var BB_PLUGIN_TRUST_DISCLOSURE = "BB plugins are full-trust code inside the BB server and can access local BB data, including other plugins' secrets. The Poetic plugin starts the installed poetic executable as your host user in a selected local repository, reuses native provider CLI authentication, and may create worktrees or artifacts. This plugin does not read, copy, or broker provider credentials, and milestone-one Fusion actions do not push Git changes or synchronize managed planning files. Tracked backlog execution has separate runtime consent and may synchronize planning state, create commits, push branches, and open pull requests.";
|
|
241
|
+
var BB_COMMAND_TIMEOUT_MS = 12e4;
|
|
242
|
+
var BB_VERSION_TIMEOUT_MS = 15e3;
|
|
243
|
+
var defaultRun = async (command, args, options = {}) => {
|
|
244
|
+
const result = await execa(command, [...args], {
|
|
245
|
+
cwd: options.cwd,
|
|
246
|
+
timeout: options.timeoutMs ?? BB_COMMAND_TIMEOUT_MS,
|
|
247
|
+
reject: false,
|
|
248
|
+
env: process.env
|
|
249
|
+
});
|
|
250
|
+
return {
|
|
251
|
+
stdout: result.stdout ?? "",
|
|
252
|
+
// A spawn failure carries its diagnostic on `shortMessage`, not stderr.
|
|
253
|
+
stderr: result.stderr || (result.failed ? result.shortMessage : "") || "",
|
|
254
|
+
// Execa reports no numeric exit code when the executable could not be
|
|
255
|
+
// spawned at all (ENOENT) or was killed by a signal. Coercing that to 0
|
|
256
|
+
// would report a successful `bb` invocation that simply printed nothing,
|
|
257
|
+
// so an unknown exit is normalized fail-closed to a failure.
|
|
258
|
+
exitCode: typeof result.exitCode === "number" ? result.exitCode : 1
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
async function defaultPathExists(targetPath) {
|
|
262
|
+
try {
|
|
263
|
+
await access(targetPath);
|
|
264
|
+
return true;
|
|
265
|
+
} catch {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
function errorText(error) {
|
|
270
|
+
if (error && typeof error === "object") {
|
|
271
|
+
const stderr = "stderr" in error ? error.stderr : void 0;
|
|
272
|
+
if (typeof stderr === "string" && stderr.trim()) return stderr.trim();
|
|
273
|
+
const message = "message" in error ? error.message : void 0;
|
|
274
|
+
if (typeof message === "string" && message.trim()) return message.trim();
|
|
275
|
+
}
|
|
276
|
+
return error instanceof Error ? error.message : String(error);
|
|
277
|
+
}
|
|
278
|
+
function parseBbVersion(output) {
|
|
279
|
+
const match = output.match(/\bv?(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)\b/);
|
|
280
|
+
return match?.[1] ?? null;
|
|
281
|
+
}
|
|
282
|
+
function resolveBbCompatibleRange(manifest) {
|
|
283
|
+
const declared = manifest?.engines?.bb;
|
|
284
|
+
if (typeof declared === "string" && semver.validRange(declared)) return declared;
|
|
285
|
+
return BB_FALLBACK_COMPATIBLE_RANGE;
|
|
286
|
+
}
|
|
287
|
+
function isBbVersionCompatible(version, range = BB_FALLBACK_COMPATIBLE_RANGE) {
|
|
288
|
+
const parsed = semver.valid(version.trim());
|
|
289
|
+
if (!parsed) return false;
|
|
290
|
+
if (!semver.validRange(range)) return false;
|
|
291
|
+
return semver.satisfies(parsed, range, { includePrerelease: true });
|
|
292
|
+
}
|
|
293
|
+
function optionalPluginPathField(record, key) {
|
|
294
|
+
const value = record[key];
|
|
295
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
296
|
+
}
|
|
297
|
+
function pluginRecord(value) {
|
|
298
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
299
|
+
const record = value;
|
|
300
|
+
const id = typeof record.id === "string" ? record.id : null;
|
|
301
|
+
const name = typeof record.name === "string" ? record.name : null;
|
|
302
|
+
const packageName = typeof record.package === "string" ? record.package : null;
|
|
303
|
+
if (id !== BB_PLUGIN_ID && name !== "Poetic" && packageName !== BB_PLUGIN_PACKAGE_NAME) {
|
|
304
|
+
return null;
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
id: id ?? BB_PLUGIN_ID,
|
|
308
|
+
name,
|
|
309
|
+
version: typeof record.version === "string" ? record.version : null,
|
|
310
|
+
status: typeof record.status === "string" ? record.status : null,
|
|
311
|
+
enabled: typeof record.enabled === "boolean" ? record.enabled : null,
|
|
312
|
+
source: optionalPluginPathField(record, "source"),
|
|
313
|
+
rootDir: optionalPluginPathField(record, "rootDir") ?? optionalPluginPathField(record, "root") ?? optionalPluginPathField(record, "path")
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
function parseInstalledPlugin(output) {
|
|
317
|
+
const trimmed = output.trim();
|
|
318
|
+
if (!trimmed) return null;
|
|
319
|
+
try {
|
|
320
|
+
const parsed = JSON.parse(trimmed);
|
|
321
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
322
|
+
const envelope = parsed;
|
|
323
|
+
const mutationPlugin = pluginRecord(envelope.plugin);
|
|
324
|
+
if (mutationPlugin) return mutationPlugin;
|
|
325
|
+
if (Array.isArray(envelope.plugins)) {
|
|
326
|
+
for (const entry of envelope.plugins) {
|
|
327
|
+
const plugin = pluginRecord(entry);
|
|
328
|
+
if (plugin) return plugin;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
} else if (Array.isArray(parsed)) {
|
|
332
|
+
for (const entry of parsed) {
|
|
333
|
+
const plugin = pluginRecord(entry);
|
|
334
|
+
if (plugin) return plugin;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
} catch {
|
|
338
|
+
}
|
|
339
|
+
for (const line of trimmed.split(/\r?\n/)) {
|
|
340
|
+
if (!line.includes(BB_PLUGIN_PACKAGE_NAME) && !/\bpoetic(?:@|\b)/i.test(line)) continue;
|
|
341
|
+
const versionMatch = line.match(/\bv?(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)\b/);
|
|
342
|
+
const statusMatch = line.match(
|
|
343
|
+
/\b(running|disabled|error|incompatible|degraded|needs-configuration)\b/i
|
|
344
|
+
);
|
|
345
|
+
return {
|
|
346
|
+
id: BB_PLUGIN_ID,
|
|
347
|
+
name: "Poetic",
|
|
348
|
+
version: versionMatch?.[1] ?? null,
|
|
349
|
+
status: statusMatch?.[1]?.toLowerCase() ?? null,
|
|
350
|
+
enabled: statusMatch?.[1]?.toLowerCase() === "disabled" ? false : null,
|
|
351
|
+
source: null,
|
|
352
|
+
rootDir: null
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
return null;
|
|
356
|
+
}
|
|
357
|
+
function registeredPluginPath(plugin) {
|
|
358
|
+
if (plugin.rootDir) return plugin.rootDir;
|
|
359
|
+
if (plugin.source?.startsWith("path:")) return plugin.source.slice("path:".length);
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
function registrationMatchesPluginPath(plugin, pluginPath) {
|
|
363
|
+
const registeredPath = registeredPluginPath(plugin);
|
|
364
|
+
return registeredPath === null || path2.resolve(registeredPath) === path2.resolve(pluginPath);
|
|
365
|
+
}
|
|
366
|
+
function parseInstalledPluginVersion(output) {
|
|
367
|
+
return parseInstalledPlugin(output)?.version ?? null;
|
|
368
|
+
}
|
|
369
|
+
async function resolvePluginPath(deps) {
|
|
370
|
+
if (deps.pluginPath) {
|
|
371
|
+
return await deps.pathExists(deps.pluginPath) ? deps.pluginPath : null;
|
|
372
|
+
}
|
|
373
|
+
const root = deps.packageRoot === void 0 ? findPoeticPackageRoot() : deps.packageRoot;
|
|
374
|
+
if (!root) return null;
|
|
375
|
+
const candidate = path2.join(root, BB_PLUGIN_RELATIVE_PATH);
|
|
376
|
+
return await deps.pathExists(candidate) ? candidate : null;
|
|
377
|
+
}
|
|
378
|
+
async function readPluginManifest(pluginPath, readText) {
|
|
379
|
+
try {
|
|
380
|
+
const raw = await readText(path2.join(pluginPath, "package.json"));
|
|
381
|
+
return JSON.parse(raw);
|
|
382
|
+
} catch {
|
|
383
|
+
return null;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
function summarizeSdkProvenance(report) {
|
|
387
|
+
return {
|
|
388
|
+
ok: report.ok,
|
|
389
|
+
sourceCommit: report.provenance?.upstream.sourceCommit ?? null,
|
|
390
|
+
sdkVersion: report.provenance?.upstream.sdkVersion ?? null,
|
|
391
|
+
generationMethod: report.provenance?.generation.method ?? null,
|
|
392
|
+
driftKinds: report.findings.map((finding) => finding.kind)
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
function recoveryForMissingBb(range = BB_FALLBACK_COMPATIBLE_RANGE) {
|
|
396
|
+
return `Install a BB CLI matching ${range}, then rerun \`poetic provider setup --bb\`. Standalone Poetic remains fully usable without BB.`;
|
|
397
|
+
}
|
|
398
|
+
function recoveryForIncompatible(version, range) {
|
|
399
|
+
const seen = version ? ` (found ${version})` : "";
|
|
400
|
+
return `Install BB ${range}${seen}, then rerun \`poetic provider setup --bb\`. Standalone Poetic was not modified.`;
|
|
401
|
+
}
|
|
402
|
+
function recoveryForInstallFailure(pluginPath) {
|
|
403
|
+
const pathHint = pluginPath ? ` Or install manually: bb plugin install ${pluginPath} --yes` : "";
|
|
404
|
+
return `Poetic and provider configuration were not changed. Fix the BB/plugin error, then rerun \`poetic provider setup --bb\`.${pathHint} If BB kept a partial registration, remove it with \`bb plugin remove ${BB_PLUGIN_ID}\`.`;
|
|
405
|
+
}
|
|
406
|
+
function isUsablePlugin(plugin) {
|
|
407
|
+
return plugin.enabled !== false && (plugin.status === "running" || plugin.status === "needs-configuration");
|
|
408
|
+
}
|
|
409
|
+
function isPluginListJson(output) {
|
|
410
|
+
try {
|
|
411
|
+
const parsed = JSON.parse(output);
|
|
412
|
+
return Array.isArray(parsed) || parsed !== null && typeof parsed === "object" && Array.isArray(parsed.plugins);
|
|
413
|
+
} catch {
|
|
414
|
+
return false;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
async function readInstalledPlugin(run) {
|
|
418
|
+
try {
|
|
419
|
+
const jsonList = await run("bb", ["plugin", "list", "--json"], {
|
|
420
|
+
timeoutMs: BB_VERSION_TIMEOUT_MS
|
|
421
|
+
});
|
|
422
|
+
if ((jsonList.exitCode ?? 0) === 0 && isPluginListJson(jsonList.stdout)) {
|
|
423
|
+
return { available: true, plugin: parseInstalledPlugin(jsonList.stdout) };
|
|
424
|
+
}
|
|
425
|
+
const plainList = await run("bb", ["plugin", "list"], {
|
|
426
|
+
timeoutMs: BB_VERSION_TIMEOUT_MS
|
|
427
|
+
});
|
|
428
|
+
if ((plainList.exitCode ?? 0) === 0) {
|
|
429
|
+
return {
|
|
430
|
+
available: true,
|
|
431
|
+
plugin: parseInstalledPlugin(`${plainList.stdout}
|
|
432
|
+
${plainList.stderr}`)
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
} catch {
|
|
436
|
+
}
|
|
437
|
+
return { available: false, plugin: null };
|
|
438
|
+
}
|
|
439
|
+
async function setupBbPlugin(dependencies = {}) {
|
|
440
|
+
const run = dependencies.run ?? defaultRun;
|
|
441
|
+
const pathExists = dependencies.pathExists ?? defaultPathExists;
|
|
442
|
+
const readText = dependencies.readText ?? ((targetPath) => readFile2(targetPath, "utf8"));
|
|
443
|
+
const force = dependencies.force === true;
|
|
444
|
+
const pluginPath = await resolvePluginPath({
|
|
445
|
+
packageRoot: dependencies.packageRoot,
|
|
446
|
+
pluginPath: dependencies.pluginPath,
|
|
447
|
+
pathExists
|
|
448
|
+
});
|
|
449
|
+
const base = {
|
|
450
|
+
pluginPath,
|
|
451
|
+
pluginPackage: BB_PLUGIN_PACKAGE_NAME,
|
|
452
|
+
pluginVersion: null,
|
|
453
|
+
bbPluginSdkRange: null,
|
|
454
|
+
sdkProvenance: null
|
|
455
|
+
};
|
|
456
|
+
if (!pluginPath) {
|
|
457
|
+
return {
|
|
458
|
+
...base,
|
|
459
|
+
ok: false,
|
|
460
|
+
status: "plugin_missing",
|
|
461
|
+
bbVersion: null,
|
|
462
|
+
installedVersion: null,
|
|
463
|
+
message: "The bundled Poetic BB plugin package was not found next to this Poetic install. Standalone Poetic remains usable.",
|
|
464
|
+
recovery: "Use a Poetic install that ships integrations/bb-plugin-poetic, or install the plugin from a clone with `bb plugin install <path-to-integrations/bb-plugin-poetic>`."
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
const manifest = await readPluginManifest(pluginPath, readText);
|
|
468
|
+
const targetVersion = typeof manifest?.version === "string" ? manifest.version : null;
|
|
469
|
+
const bbPluginSdkRange = typeof manifest?.engines?.bbPluginSdk === "string" ? manifest.engines.bbPluginSdk : null;
|
|
470
|
+
if (!manifest || manifest.name !== BB_PLUGIN_PACKAGE_NAME || !targetVersion || !bbPluginSdkRange || !semver.validRange(bbPluginSdkRange)) {
|
|
471
|
+
return {
|
|
472
|
+
...base,
|
|
473
|
+
ok: false,
|
|
474
|
+
status: "plugin_missing",
|
|
475
|
+
bbVersion: null,
|
|
476
|
+
installedVersion: null,
|
|
477
|
+
message: `Plugin package at ${pluginPath} is missing or is not ${BB_PLUGIN_PACKAGE_NAME}.`,
|
|
478
|
+
recovery: recoveryForInstallFailure(pluginPath)
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
const sdkReport = await checkSdkCompatibility({
|
|
482
|
+
pluginPath,
|
|
483
|
+
readText,
|
|
484
|
+
declaredSdkRange: bbPluginSdkRange
|
|
485
|
+
});
|
|
486
|
+
const sdkProvenance = summarizeSdkProvenance(sdkReport);
|
|
487
|
+
const resolvedBase = {
|
|
488
|
+
...base,
|
|
489
|
+
pluginVersion: targetVersion,
|
|
490
|
+
bbPluginSdkRange,
|
|
491
|
+
sdkProvenance
|
|
492
|
+
};
|
|
493
|
+
if (!sdkReport.ok) {
|
|
494
|
+
return {
|
|
495
|
+
...resolvedBase,
|
|
496
|
+
ok: false,
|
|
497
|
+
status: "sdk_declarations_drifted",
|
|
498
|
+
bbVersion: null,
|
|
499
|
+
installedVersion: null,
|
|
500
|
+
message: sdkReport.error,
|
|
501
|
+
recovery: sdkReport.recovery
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
const compatibleRange = resolveBbCompatibleRange(manifest);
|
|
505
|
+
let bbVersion = null;
|
|
506
|
+
try {
|
|
507
|
+
const versionResult = await run("bb", ["--version"], { timeoutMs: BB_VERSION_TIMEOUT_MS });
|
|
508
|
+
if (versionResult.exitCode !== 0) {
|
|
509
|
+
return {
|
|
510
|
+
...resolvedBase,
|
|
511
|
+
ok: false,
|
|
512
|
+
status: "bb_missing",
|
|
513
|
+
bbVersion: null,
|
|
514
|
+
installedVersion: null,
|
|
515
|
+
message: `BB is unavailable: ${(versionResult.stderr || versionResult.stdout || "non-zero exit").trim()}`,
|
|
516
|
+
recovery: recoveryForMissingBb(compatibleRange)
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
bbVersion = parseBbVersion(`${versionResult.stdout}
|
|
520
|
+
${versionResult.stderr}`);
|
|
521
|
+
} catch (error) {
|
|
522
|
+
return {
|
|
523
|
+
...resolvedBase,
|
|
524
|
+
ok: false,
|
|
525
|
+
status: "bb_missing",
|
|
526
|
+
bbVersion: null,
|
|
527
|
+
installedVersion: null,
|
|
528
|
+
message: `BB is unavailable: ${errorText(error)}`,
|
|
529
|
+
recovery: recoveryForMissingBb(compatibleRange)
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
if (!bbVersion) {
|
|
533
|
+
return {
|
|
534
|
+
...resolvedBase,
|
|
535
|
+
ok: false,
|
|
536
|
+
status: "bb_incompatible",
|
|
537
|
+
bbVersion: null,
|
|
538
|
+
installedVersion: null,
|
|
539
|
+
message: "BB is installed, but its version could not be verified from `bb --version`.",
|
|
540
|
+
recovery: recoveryForIncompatible(null, compatibleRange)
|
|
541
|
+
};
|
|
542
|
+
}
|
|
543
|
+
if (!isBbVersionCompatible(bbVersion, compatibleRange)) {
|
|
544
|
+
return {
|
|
545
|
+
...resolvedBase,
|
|
546
|
+
ok: false,
|
|
547
|
+
status: "bb_incompatible",
|
|
548
|
+
bbVersion,
|
|
549
|
+
installedVersion: null,
|
|
550
|
+
message: `BB ${bbVersion} is incompatible with the Poetic plugin (requires ${compatibleRange}).`,
|
|
551
|
+
recovery: recoveryForIncompatible(bbVersion, compatibleRange)
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
const inventory = await readInstalledPlugin(run);
|
|
555
|
+
let installed = inventory.plugin;
|
|
556
|
+
const installedVersion = installed?.version ?? null;
|
|
557
|
+
const installedPath = installed ? registeredPluginPath(installed) : null;
|
|
558
|
+
const installedFromCurrentPath = installed === null || registrationMatchesPluginPath(installed, pluginPath);
|
|
559
|
+
await dependencies.onBeforeEnable?.({
|
|
560
|
+
bbVersion,
|
|
561
|
+
bbCompatibleRange: compatibleRange,
|
|
562
|
+
bbPluginSdkRange,
|
|
563
|
+
pluginId: BB_PLUGIN_ID,
|
|
564
|
+
pluginPath,
|
|
565
|
+
pluginVersion: targetVersion,
|
|
566
|
+
existingVersion: installedVersion,
|
|
567
|
+
reinstall: force,
|
|
568
|
+
sdkProvenance
|
|
569
|
+
});
|
|
570
|
+
if (!force && installedVersion === targetVersion && installed !== null && installedFromCurrentPath && isUsablePlugin(installed)) {
|
|
571
|
+
return {
|
|
572
|
+
...resolvedBase,
|
|
573
|
+
ok: true,
|
|
574
|
+
status: "already_current",
|
|
575
|
+
bbVersion,
|
|
576
|
+
installedVersion,
|
|
577
|
+
message: `Poetic BB plugin ${installedVersion} is already installed for BB ${bbVersion}.`,
|
|
578
|
+
recovery: null
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
if (!force && installed !== null && !(installedVersion === targetVersion && installed.enabled === false && installedFromCurrentPath)) {
|
|
582
|
+
const pathMismatch = installedPath !== null && !installedFromCurrentPath;
|
|
583
|
+
return {
|
|
584
|
+
...resolvedBase,
|
|
585
|
+
ok: false,
|
|
586
|
+
status: "upgrade_required",
|
|
587
|
+
bbVersion,
|
|
588
|
+
installedVersion,
|
|
589
|
+
message: pathMismatch ? `BB has Poetic plugin ${installedVersion ?? "with an unknown version"} registered from ${installedPath}, but this Poetic installation provides it from ${pluginPath}. Automatic setup will not replace an existing local-path registration.` : `BB has Poetic plugin ${installedVersion ?? "with an unknown version"} registered. Automatic setup will not replace an existing local-path registration.`,
|
|
590
|
+
recovery: "Review the version and trust disclosure, then explicitly replace it with `poetic provider setup --bb --reinstall`. Standalone Poetic remains usable."
|
|
591
|
+
};
|
|
592
|
+
}
|
|
593
|
+
const hadPriorInstall = installed !== null;
|
|
594
|
+
let removedPriorRegistration = false;
|
|
595
|
+
try {
|
|
596
|
+
if (!force && installedVersion === targetVersion && installed?.enabled === false) {
|
|
597
|
+
const enableResult = await run("bb", ["plugin", "enable", BB_PLUGIN_ID, "--json"], {
|
|
598
|
+
timeoutMs: BB_COMMAND_TIMEOUT_MS
|
|
599
|
+
});
|
|
600
|
+
if ((enableResult.exitCode ?? 0) !== 0) {
|
|
601
|
+
throw new Error(
|
|
602
|
+
(enableResult.stderr || enableResult.stdout || `bb plugin enable exited ${enableResult.exitCode}`).trim()
|
|
603
|
+
);
|
|
604
|
+
}
|
|
605
|
+
installed = parseInstalledPlugin(enableResult.stdout) ?? (await readInstalledPlugin(run)).plugin;
|
|
606
|
+
if (!installed || installed.version !== targetVersion || !isUsablePlugin(installed)) {
|
|
607
|
+
throw new Error(
|
|
608
|
+
`BB reported plugin ${installed?.version ?? "with unknown version"} in status ${installed?.status ?? "unknown"} after enablement; expected ${targetVersion}`
|
|
609
|
+
);
|
|
610
|
+
}
|
|
611
|
+
return {
|
|
612
|
+
...resolvedBase,
|
|
613
|
+
ok: true,
|
|
614
|
+
status: "enabled",
|
|
615
|
+
bbVersion,
|
|
616
|
+
installedVersion: installed.version,
|
|
617
|
+
message: `Enabled Poetic BB plugin ${installed.version ?? targetVersion} for BB ${bbVersion}.`,
|
|
618
|
+
recovery: null
|
|
619
|
+
};
|
|
620
|
+
}
|
|
621
|
+
if (force && installed !== null) {
|
|
622
|
+
const priorPath = registeredPluginPath(installed);
|
|
623
|
+
const removeResult = await run("bb", ["plugin", "remove", BB_PLUGIN_ID, "--json"], {
|
|
624
|
+
timeoutMs: BB_COMMAND_TIMEOUT_MS
|
|
625
|
+
});
|
|
626
|
+
if ((removeResult.exitCode ?? 0) !== 0) {
|
|
627
|
+
const removeFailure = (removeResult.stderr || removeResult.stdout || `bb plugin remove exited ${removeResult.exitCode}`).trim();
|
|
628
|
+
const pathNote = priorPath ? ` (registered from ${priorPath})` : "";
|
|
629
|
+
return {
|
|
630
|
+
...resolvedBase,
|
|
631
|
+
ok: false,
|
|
632
|
+
status: "install_failed",
|
|
633
|
+
bbVersion,
|
|
634
|
+
installedVersion,
|
|
635
|
+
message: `Could not remove the existing Poetic BB plugin registration before reinstall${pathNote}: ${removeFailure}. BB still reports ${installedVersion ?? "an unknown installed version"} in status ${installed.status ?? "unknown"}.`,
|
|
636
|
+
recovery: `Standalone Poetic remains usable. Fix the BB remove error, or remove the Poetic plugin with \`bb plugin remove ${BB_PLUGIN_ID}\`, then rerun \`poetic provider setup --bb --reinstall\`.`
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
removedPriorRegistration = true;
|
|
640
|
+
installed = null;
|
|
641
|
+
}
|
|
642
|
+
const installResult = await run("bb", ["plugin", "install", pluginPath, "--yes", "--json"], {
|
|
643
|
+
timeoutMs: BB_COMMAND_TIMEOUT_MS
|
|
644
|
+
});
|
|
645
|
+
if ((installResult.exitCode ?? 0) !== 0) {
|
|
646
|
+
throw new Error(
|
|
647
|
+
(installResult.stderr || installResult.stdout || `bb plugin install exited ${installResult.exitCode}`).trim()
|
|
648
|
+
);
|
|
649
|
+
}
|
|
650
|
+
installed = parseInstalledPlugin(installResult.stdout) ?? (await readInstalledPlugin(run)).plugin;
|
|
651
|
+
if (installed?.enabled === false) {
|
|
652
|
+
const enableResult = await run("bb", ["plugin", "enable", BB_PLUGIN_ID, "--json"], {
|
|
653
|
+
timeoutMs: BB_COMMAND_TIMEOUT_MS
|
|
654
|
+
});
|
|
655
|
+
if ((enableResult.exitCode ?? 0) !== 0) {
|
|
656
|
+
throw new Error(
|
|
657
|
+
(enableResult.stderr || enableResult.stdout || `bb plugin enable exited ${enableResult.exitCode}`).trim()
|
|
658
|
+
);
|
|
659
|
+
}
|
|
660
|
+
installed = parseInstalledPlugin(enableResult.stdout) ?? (await readInstalledPlugin(run)).plugin;
|
|
661
|
+
}
|
|
662
|
+
if (!installed || installed.version !== targetVersion || !isUsablePlugin(installed)) {
|
|
663
|
+
throw new Error(
|
|
664
|
+
`BB registered plugin ${installed?.version ?? "with unknown version"} in status ${installed?.status ?? "unknown"}; expected ${targetVersion} with plugin SDK range ${bbPluginSdkRange}`
|
|
665
|
+
);
|
|
666
|
+
}
|
|
667
|
+
return {
|
|
668
|
+
...resolvedBase,
|
|
669
|
+
ok: true,
|
|
670
|
+
status: hadPriorInstall || removedPriorRegistration ? "upgraded" : "installed",
|
|
671
|
+
bbVersion,
|
|
672
|
+
installedVersion: installed.version,
|
|
673
|
+
message: hadPriorInstall || removedPriorRegistration ? `Upgraded Poetic BB plugin to ${installed.version ?? targetVersion} for BB ${bbVersion}.` : `Installed Poetic BB plugin ${installed.version ?? targetVersion} for BB ${bbVersion}.`,
|
|
674
|
+
recovery: null
|
|
675
|
+
};
|
|
676
|
+
} catch (error) {
|
|
677
|
+
const failureMessage = errorText(error);
|
|
678
|
+
let rolledBack = false;
|
|
679
|
+
if (hadPriorInstall) {
|
|
680
|
+
const postFailureInventory = await readInstalledPlugin(run);
|
|
681
|
+
const observedPlugin = postFailureInventory.available ? postFailureInventory.plugin : null;
|
|
682
|
+
const observedVersion = observedPlugin?.version ?? null;
|
|
683
|
+
const observedStatus = observedPlugin?.status ?? null;
|
|
684
|
+
const removalNote = removedPriorRegistration ? "The previous Poetic registration was removed before install failed; " : "";
|
|
685
|
+
return {
|
|
686
|
+
...resolvedBase,
|
|
687
|
+
ok: false,
|
|
688
|
+
status: "install_failed",
|
|
689
|
+
bbVersion,
|
|
690
|
+
installedVersion: observedVersion,
|
|
691
|
+
message: `BB could not activate the explicitly requested Poetic plugin replacement: ${failureMessage}. ` + removalNote + `BB now reports ${observedVersion ?? "an unknown installed version"} in status ${observedStatus ?? "unknown"}; local-path replacements are not transactionally restorable by Poetic.`,
|
|
692
|
+
recovery: "Standalone Poetic remains usable. Fix the BB/plugin error and rerun `poetic provider setup --bb --reinstall`, or disable/remove the Poetic plugin in BB."
|
|
693
|
+
};
|
|
694
|
+
}
|
|
695
|
+
try {
|
|
696
|
+
if (!inventory.available) throw new Error("BB plugin inventory was unavailable");
|
|
697
|
+
const uninstall = await run("bb", ["plugin", "remove", BB_PLUGIN_ID, "--json"], {
|
|
698
|
+
timeoutMs: BB_COMMAND_TIMEOUT_MS
|
|
699
|
+
});
|
|
700
|
+
rolledBack = (uninstall.exitCode ?? 0) === 0;
|
|
701
|
+
} catch {
|
|
702
|
+
rolledBack = false;
|
|
703
|
+
}
|
|
704
|
+
return {
|
|
705
|
+
...resolvedBase,
|
|
706
|
+
ok: false,
|
|
707
|
+
status: rolledBack ? "rolled_back" : "install_failed",
|
|
708
|
+
bbVersion,
|
|
709
|
+
installedVersion: null,
|
|
710
|
+
message: rolledBack ? `BB plugin install failed and was rolled back: ${failureMessage}` : `BB plugin install failed: ${failureMessage}`,
|
|
711
|
+
recovery: recoveryForInstallFailure(pluginPath)
|
|
712
|
+
};
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
var _testing = {
|
|
716
|
+
parseBbVersion,
|
|
717
|
+
isBbVersionCompatible,
|
|
718
|
+
resolveBbCompatibleRange,
|
|
719
|
+
parseInstalledPluginVersion,
|
|
720
|
+
resolvePluginPath,
|
|
721
|
+
summarizeSdkProvenance
|
|
722
|
+
};
|
|
723
|
+
export {
|
|
724
|
+
BB_FALLBACK_COMPATIBLE_RANGE,
|
|
725
|
+
BB_PLUGIN_ID,
|
|
726
|
+
BB_PLUGIN_PACKAGE_NAME,
|
|
727
|
+
BB_PLUGIN_RELATIVE_PATH,
|
|
728
|
+
BB_PLUGIN_TRUST_DISCLOSURE,
|
|
729
|
+
_testing,
|
|
730
|
+
buildBbProjectRegistrationGuidance,
|
|
731
|
+
isBbVersionCompatible,
|
|
732
|
+
parseBbVersion,
|
|
733
|
+
parseInstalledPlugin,
|
|
734
|
+
parseInstalledPluginVersion,
|
|
735
|
+
resolveBbCompatibleRange,
|
|
736
|
+
setupBbPlugin
|
|
737
|
+
};
|
|
738
|
+
//# sourceMappingURL=setup-bb-plugin-QAQWZCV5.js.map
|