@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,635 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire schemas for BB custom task authoring and task relationships.
|
|
3
|
+
*
|
|
4
|
+
* This is a closed authoring vocabulary. It is deliberately disjoint from the
|
|
5
|
+
* shipped task lifecycle vocabulary (`start|block|unblock|review|complete|
|
|
6
|
+
* cancel|reopen`): nothing here can move a task's status, archive it, reopen it,
|
|
7
|
+
* log time against it, split it, or reach `applyTaskAction`. Lifecycle stays
|
|
8
|
+
* with that shipped RPC.
|
|
9
|
+
*
|
|
10
|
+
* Every action maps to one fixed `poetic plan task …` argv. There is no
|
|
11
|
+
* caller-controlled argv, cwd, env, executable, path, `--body-file`,
|
|
12
|
+
* `--assignee`, `--allow-empty-results`, `--force`, `--no-sync`, splitter, or
|
|
13
|
+
* provider surface, and `--json` is never a caller field: the service appends it
|
|
14
|
+
* only on the one identity command that publishes `taskCreateV1`.
|
|
15
|
+
*
|
|
16
|
+
* Strict objects everywhere, so an unknown key — including a status or
|
|
17
|
+
* lifecycle field smuggled into `input` — fails validation before anything is
|
|
18
|
+
* spawned. `repositorySchema`, `planningWorkspaceProjectionSchema`, and the
|
|
19
|
+
* task-detail schemas are consumed read-only; nothing from the shared adapter,
|
|
20
|
+
* model, contract, server, app, or route modules is imported, re-exported, or
|
|
21
|
+
* shadowed here.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
import { planningWorkspaceProjectionSchema } from './planning-workspace-schema.js';
|
|
26
|
+
import { repositorySchema } from './repository-schema.js';
|
|
27
|
+
import { getTaskDetailOutputSchema } from './task-detail-schema.js';
|
|
28
|
+
|
|
29
|
+
/** Version of the outcome envelope this lane publishes. */
|
|
30
|
+
export const TASK_AUTHORING_OUTCOME_VERSION = '1.0.0' as const;
|
|
31
|
+
|
|
32
|
+
/** One attempt, never retried; mutations get the long timeout, reads the short one. */
|
|
33
|
+
export const TASK_AUTHORING_MUTATION_TIMEOUT_MS = 120_000;
|
|
34
|
+
export const TASK_AUTHORING_READ_TIMEOUT_MS = 15_000;
|
|
35
|
+
|
|
36
|
+
/** Captured stdout/stderr ceiling, and the diagnostics disclosure ceiling. */
|
|
37
|
+
export const TASK_AUTHORING_MAX_OUTPUT_BYTES = 4 * 1024 * 1024;
|
|
38
|
+
export const TASK_AUTHORING_MAX_DIAGNOSTIC_CHARS = 2_000;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Closed authoring vocabulary. `createCustomTask` is operator-authored task
|
|
42
|
+
* creation in an explicitly selected sprint; it is never an alias for adding
|
|
43
|
+
* existing backlog work to a sprint, which is a different product, command, and
|
|
44
|
+
* action name owned elsewhere.
|
|
45
|
+
*/
|
|
46
|
+
export const TASK_AUTHORING_VOCABULARY = [
|
|
47
|
+
'createCustomTask',
|
|
48
|
+
'updateCustomTask',
|
|
49
|
+
'addTaskDependency',
|
|
50
|
+
'removeTaskDependency',
|
|
51
|
+
'linkTaskToBacklog',
|
|
52
|
+
] as const;
|
|
53
|
+
|
|
54
|
+
export type TaskAuthoringAction = (typeof TASK_AUTHORING_VOCABULARY)[number];
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The shipped lifecycle vocabulary, restated locally so this lane can prove
|
|
58
|
+
* disjointness at runtime without importing the shared model module. The test
|
|
59
|
+
* suite pins this copy against the real `TASK_ACTION_VOCABULARY`.
|
|
60
|
+
*/
|
|
61
|
+
export const TASK_LIFECYCLE_VOCABULARY_MIRROR = [
|
|
62
|
+
'start',
|
|
63
|
+
'block',
|
|
64
|
+
'unblock',
|
|
65
|
+
'review',
|
|
66
|
+
'complete',
|
|
67
|
+
'cancel',
|
|
68
|
+
'reopen',
|
|
69
|
+
] as const;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Input keys refused before execution even though `.strict()` would also reject
|
|
73
|
+
* them. These are the shapes a caller could plausibly try in order to reach a
|
|
74
|
+
* status transition, an excluded flag, or a generic execution surface, and they
|
|
75
|
+
* are named explicitly so the refusal is legible rather than a generic schema
|
|
76
|
+
* error.
|
|
77
|
+
*/
|
|
78
|
+
export const TASK_AUTHORING_DENIED_INPUT_KEYS = [
|
|
79
|
+
'status',
|
|
80
|
+
'state',
|
|
81
|
+
'to',
|
|
82
|
+
'action',
|
|
83
|
+
'lifecycle',
|
|
84
|
+
'transition',
|
|
85
|
+
'reason',
|
|
86
|
+
'archive',
|
|
87
|
+
'archived',
|
|
88
|
+
'complete',
|
|
89
|
+
'completed',
|
|
90
|
+
'cancel',
|
|
91
|
+
'cancelled',
|
|
92
|
+
'reopen',
|
|
93
|
+
'start',
|
|
94
|
+
'started',
|
|
95
|
+
'block',
|
|
96
|
+
'blocked',
|
|
97
|
+
'unblock',
|
|
98
|
+
'review',
|
|
99
|
+
'assignee',
|
|
100
|
+
'hours',
|
|
101
|
+
'timeLogged',
|
|
102
|
+
'allowEmptyResults',
|
|
103
|
+
'bodyFile',
|
|
104
|
+
'body',
|
|
105
|
+
'force',
|
|
106
|
+
'noSync',
|
|
107
|
+
'sync',
|
|
108
|
+
'json',
|
|
109
|
+
'split',
|
|
110
|
+
'splitter',
|
|
111
|
+
'provider',
|
|
112
|
+
'model',
|
|
113
|
+
'hint',
|
|
114
|
+
'argv',
|
|
115
|
+
'cwd',
|
|
116
|
+
'env',
|
|
117
|
+
'executable',
|
|
118
|
+
'path',
|
|
119
|
+
'filePath',
|
|
120
|
+
] as const;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* A managed planning id addresses one file under a Poetic-managed directory, so
|
|
124
|
+
* it must be a single safe path component: no separators, no traversal, and no
|
|
125
|
+
* leading dot or dash that could read as a hidden file or a CLI flag.
|
|
126
|
+
*/
|
|
127
|
+
export const taskAuthoringIdentitySchema = z
|
|
128
|
+
.string()
|
|
129
|
+
.min(1)
|
|
130
|
+
.max(200)
|
|
131
|
+
.regex(
|
|
132
|
+
/^[A-Za-z0-9][A-Za-z0-9._-]*$/,
|
|
133
|
+
'A managed planning id must be a single safe path component.'
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Free text carried as a single `--flag=value` token. The exact value `-` is
|
|
138
|
+
* refused because the CLI reads it as a stdin sentinel, and BB never streams a
|
|
139
|
+
* body from stdin or from a file.
|
|
140
|
+
*/
|
|
141
|
+
const taskAuthoringTextSchema = z
|
|
142
|
+
.string()
|
|
143
|
+
.trim()
|
|
144
|
+
.min(1)
|
|
145
|
+
.max(4_000)
|
|
146
|
+
.refine((value) => value !== '-', 'A stdin sentinel is not an authoring value.');
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Numbers must render as plain decimal tokens, so no exponent or non-finite
|
|
150
|
+
* form can reach the argv. Bounds mirror Poetic's own planning validation.
|
|
151
|
+
*/
|
|
152
|
+
const plainDecimal = (value: number) => /^[0-9]+(\.[0-9]+)?$/.test(String(value));
|
|
153
|
+
|
|
154
|
+
const taskAuthoringEstimateSchema = z
|
|
155
|
+
.number()
|
|
156
|
+
.positive()
|
|
157
|
+
.max(200)
|
|
158
|
+
.refine(plainDecimal, 'An estimate must be a plain decimal number.');
|
|
159
|
+
|
|
160
|
+
const taskAuthoringRuntimeSchema = z
|
|
161
|
+
.number()
|
|
162
|
+
.positive()
|
|
163
|
+
.max(1_440)
|
|
164
|
+
.refine(plainDecimal, 'An expected runtime must be a plain decimal number.');
|
|
165
|
+
|
|
166
|
+
const taskAuthoringPrioritySchema = z.enum(['P0', 'P1', 'P2', 'P3']);
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Consent every authoring mutation must carry. Each field is a required `true`
|
|
170
|
+
* literal inside a strict object, so partial or false consent fails validation
|
|
171
|
+
* rather than degrading into a silent default. This lane declares its own copy
|
|
172
|
+
* on purpose: it must not depend on another lane's consent module.
|
|
173
|
+
*/
|
|
174
|
+
export const taskAuthoringConsentSchema = z
|
|
175
|
+
.object({
|
|
176
|
+
hostExecution: z.literal(true),
|
|
177
|
+
managedPlanningMutation: z.literal(true),
|
|
178
|
+
automaticCommitAndPush: z.literal(true),
|
|
179
|
+
selectedRepositoryAndBranch: z.literal(true),
|
|
180
|
+
})
|
|
181
|
+
.strict();
|
|
182
|
+
|
|
183
|
+
/** Creation additionally confirms that a new Poetic-minted id will exist. */
|
|
184
|
+
export const taskAuthoringCreateConsentSchema = taskAuthoringConsentSchema
|
|
185
|
+
.extend({ newIdentityCreation: z.literal(true) })
|
|
186
|
+
.strict();
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Replacing the Description section additionally confirms the replacement. The
|
|
190
|
+
* scope is the `## Description` section only: Subtasks, Checklist, Acceptance
|
|
191
|
+
* Criteria, Notes, and Activity are untouched, and whole-task-body replacement
|
|
192
|
+
* is not offered at all because it would require the excluded `--body-file`.
|
|
193
|
+
*/
|
|
194
|
+
export const taskAuthoringSectionReplacementConsentSchema = taskAuthoringConsentSchema
|
|
195
|
+
.extend({ fullSectionReplacement: z.literal(true) })
|
|
196
|
+
.strict();
|
|
197
|
+
|
|
198
|
+
export type TaskAuthoringConsent = z.infer<typeof taskAuthoringConsentSchema>;
|
|
199
|
+
export type TaskAuthoringCreateConsent = z.infer<typeof taskAuthoringCreateConsentSchema>;
|
|
200
|
+
export type TaskAuthoringSectionReplacementConsent = z.infer<
|
|
201
|
+
typeof taskAuthoringSectionReplacementConsentSchema
|
|
202
|
+
>;
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* What BB last read, submitted with the request so a checkout, an identity, or a
|
|
206
|
+
* sprint membership that moved since is refused rather than mutated blind. Every
|
|
207
|
+
* comparison against these values is made against a fresh Poetic read; BB never
|
|
208
|
+
* predicts the drift itself.
|
|
209
|
+
*/
|
|
210
|
+
export const taskAuthoringExpectedSchema = z
|
|
211
|
+
.object({
|
|
212
|
+
repositoryPath: z.string().min(1),
|
|
213
|
+
branch: z.string().min(1).nullable(),
|
|
214
|
+
entityIds: z.array(taskAuthoringIdentitySchema).max(64),
|
|
215
|
+
/**
|
|
216
|
+
* The sprint BB was showing this task in, or null when it holds none. It is
|
|
217
|
+
* evidence for the membership reread and the drift check, never an argv
|
|
218
|
+
* value: no authoring command takes a sprint except creation, which carries
|
|
219
|
+
* its own explicitly selected sprint in `input`.
|
|
220
|
+
*/
|
|
221
|
+
observedSprintId: taskAuthoringIdentitySchema.nullable(),
|
|
222
|
+
/** Task `updated` timestamp BB last read, or null when it holds none. */
|
|
223
|
+
observedTaskUpdatedAt: z.string().min(1).nullable(),
|
|
224
|
+
/** Sprint membership BB last read, or null when it holds none. */
|
|
225
|
+
observedSprintTaskIds: z.array(taskAuthoringIdentitySchema).max(500).nullable(),
|
|
226
|
+
})
|
|
227
|
+
.strict();
|
|
228
|
+
|
|
229
|
+
const requestTargetFields = {
|
|
230
|
+
projectId: z.string().min(1),
|
|
231
|
+
sourceId: z.string().min(1),
|
|
232
|
+
expected: taskAuthoringExpectedSchema,
|
|
233
|
+
} as const;
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Creation input. The sprint is always explicit — there is no implicit "current
|
|
237
|
+
* sprint" — and the estimate is always required, so BB never silently inherits a
|
|
238
|
+
* CLI default. `dependsOn` and `backlogItemId` are permitted here so a new task
|
|
239
|
+
* lands with its relationships in one write; later relationship edits go through
|
|
240
|
+
* the dedicated dependency and link actions.
|
|
241
|
+
*/
|
|
242
|
+
export const createCustomTaskInputSchema = z
|
|
243
|
+
.object({
|
|
244
|
+
sprintId: taskAuthoringIdentitySchema,
|
|
245
|
+
title: taskAuthoringTextSchema,
|
|
246
|
+
estimate: taskAuthoringEstimateSchema,
|
|
247
|
+
expectedRuntimeMinutes: taskAuthoringRuntimeSchema.optional(),
|
|
248
|
+
description: taskAuthoringTextSchema.optional(),
|
|
249
|
+
priority: taskAuthoringPrioritySchema.optional(),
|
|
250
|
+
dependsOn: z.array(taskAuthoringIdentitySchema).max(64).optional(),
|
|
251
|
+
backlogItemId: taskAuthoringIdentitySchema.optional(),
|
|
252
|
+
})
|
|
253
|
+
.strict();
|
|
254
|
+
|
|
255
|
+
/** Update whitelist. At least one field must be present; nothing else is accepted. */
|
|
256
|
+
export const updateCustomTaskInputSchema = z
|
|
257
|
+
.object({
|
|
258
|
+
taskId: taskAuthoringIdentitySchema,
|
|
259
|
+
title: taskAuthoringTextSchema.optional(),
|
|
260
|
+
description: taskAuthoringTextSchema.optional(),
|
|
261
|
+
priority: taskAuthoringPrioritySchema.optional(),
|
|
262
|
+
estimate: taskAuthoringEstimateSchema.optional(),
|
|
263
|
+
expectedRuntimeMinutes: taskAuthoringRuntimeSchema.optional(),
|
|
264
|
+
})
|
|
265
|
+
.strict()
|
|
266
|
+
.refine(
|
|
267
|
+
(value) =>
|
|
268
|
+
value.title !== undefined ||
|
|
269
|
+
value.description !== undefined ||
|
|
270
|
+
value.priority !== undefined ||
|
|
271
|
+
value.estimate !== undefined ||
|
|
272
|
+
value.expectedRuntimeMinutes !== undefined,
|
|
273
|
+
'An update must change at least one whitelisted field.'
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Relationship endpoints are explicit and one-sided per action: an add carries
|
|
278
|
+
* only `onTaskId`, a remove only `removeTaskId`. The CLI requires exactly one of
|
|
279
|
+
* `--on` / `--remove`, and these separate actions make the other unreachable.
|
|
280
|
+
*/
|
|
281
|
+
export const addTaskDependencyInputSchema = z
|
|
282
|
+
.object({
|
|
283
|
+
taskId: taskAuthoringIdentitySchema,
|
|
284
|
+
onTaskId: taskAuthoringIdentitySchema,
|
|
285
|
+
})
|
|
286
|
+
.strict()
|
|
287
|
+
.refine((value) => value.taskId !== value.onTaskId, 'A task cannot depend on itself.');
|
|
288
|
+
|
|
289
|
+
export const removeTaskDependencyInputSchema = z
|
|
290
|
+
.object({
|
|
291
|
+
taskId: taskAuthoringIdentitySchema,
|
|
292
|
+
removeTaskId: taskAuthoringIdentitySchema,
|
|
293
|
+
})
|
|
294
|
+
.strict()
|
|
295
|
+
.refine((value) => value.taskId !== value.removeTaskId, 'A task cannot depend on itself.');
|
|
296
|
+
|
|
297
|
+
export const linkTaskToBacklogInputSchema = z
|
|
298
|
+
.object({
|
|
299
|
+
taskId: taskAuthoringIdentitySchema,
|
|
300
|
+
backlogItemId: taskAuthoringIdentitySchema,
|
|
301
|
+
})
|
|
302
|
+
.strict();
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Closed discriminated authoring request. Only the frozen action names are
|
|
306
|
+
* accepted, consent extras are required per action, and no member can carry a
|
|
307
|
+
* status, lifecycle, execution, or filesystem field.
|
|
308
|
+
*/
|
|
309
|
+
export const applyTaskAuthoringInputSchema = z.discriminatedUnion('action', [
|
|
310
|
+
z
|
|
311
|
+
.object({
|
|
312
|
+
...requestTargetFields,
|
|
313
|
+
action: z.literal('createCustomTask'),
|
|
314
|
+
input: createCustomTaskInputSchema,
|
|
315
|
+
consent: taskAuthoringCreateConsentSchema,
|
|
316
|
+
})
|
|
317
|
+
.strict(),
|
|
318
|
+
z
|
|
319
|
+
.object({
|
|
320
|
+
...requestTargetFields,
|
|
321
|
+
action: z.literal('updateCustomTask'),
|
|
322
|
+
input: updateCustomTaskInputSchema,
|
|
323
|
+
/**
|
|
324
|
+
* Either shape parses here; proportionality is enforced before launch by
|
|
325
|
+
* `taskAuthoringConsentRefusal`, which requires the section-replacement
|
|
326
|
+
* literal exactly when `description` is present and refuses it otherwise.
|
|
327
|
+
* The conditional is not expressed in the discriminated member itself
|
|
328
|
+
* because a discriminated-union member must stay a plain object schema.
|
|
329
|
+
*/
|
|
330
|
+
consent: z.union([taskAuthoringSectionReplacementConsentSchema, taskAuthoringConsentSchema]),
|
|
331
|
+
})
|
|
332
|
+
.strict(),
|
|
333
|
+
z
|
|
334
|
+
.object({
|
|
335
|
+
...requestTargetFields,
|
|
336
|
+
action: z.literal('addTaskDependency'),
|
|
337
|
+
input: addTaskDependencyInputSchema,
|
|
338
|
+
consent: taskAuthoringConsentSchema,
|
|
339
|
+
})
|
|
340
|
+
.strict(),
|
|
341
|
+
z
|
|
342
|
+
.object({
|
|
343
|
+
...requestTargetFields,
|
|
344
|
+
action: z.literal('removeTaskDependency'),
|
|
345
|
+
input: removeTaskDependencyInputSchema,
|
|
346
|
+
consent: taskAuthoringConsentSchema,
|
|
347
|
+
})
|
|
348
|
+
.strict(),
|
|
349
|
+
z
|
|
350
|
+
.object({
|
|
351
|
+
...requestTargetFields,
|
|
352
|
+
action: z.literal('linkTaskToBacklog'),
|
|
353
|
+
input: linkTaskToBacklogInputSchema,
|
|
354
|
+
consent: taskAuthoringConsentSchema,
|
|
355
|
+
})
|
|
356
|
+
.strict(),
|
|
357
|
+
]);
|
|
358
|
+
|
|
359
|
+
export type ApplyTaskAuthoringInput = z.infer<typeof applyTaskAuthoringInputSchema>;
|
|
360
|
+
export type CreateCustomTaskInput = z.infer<typeof createCustomTaskInputSchema>;
|
|
361
|
+
export type UpdateCustomTaskInput = z.infer<typeof updateCustomTaskInputSchema>;
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Lane disclosure. Every field is a literal, so the type system itself records
|
|
365
|
+
* that authoring never reaches the task lifecycle vocabulary.
|
|
366
|
+
*/
|
|
367
|
+
export const TASK_AUTHORING_DISCLOSURE = {
|
|
368
|
+
fullTrust: true,
|
|
369
|
+
hostEquivalentExecution: true,
|
|
370
|
+
providerAuth: 'native',
|
|
371
|
+
planningSync: true,
|
|
372
|
+
gitCommits: true,
|
|
373
|
+
gitPush: true,
|
|
374
|
+
managedPlanningMutation: true,
|
|
375
|
+
pullRequestCreation: false,
|
|
376
|
+
fusionLaunch: false,
|
|
377
|
+
trackedBacklogExecution: false,
|
|
378
|
+
runCancellation: false,
|
|
379
|
+
taskLifecycleTransition: false,
|
|
380
|
+
summary:
|
|
381
|
+
"Custom task authoring runs the installed Poetic plan-task commands as your host user in the selected repository and branch. It creates or edits managed task files and task relationships, and Poetic's built-in managed sync commits and pushes those planning changes. It never changes a task's status, never archives, completes, cancels, or reopens a task, never launches Fusion or tracked execution, never creates a pull request, and never cancels a run. BB never passes --no-sync, --force, --body-file, or --assignee.",
|
|
382
|
+
} as const;
|
|
383
|
+
|
|
384
|
+
export const taskAuthoringDisclosureSchema = z
|
|
385
|
+
.object({
|
|
386
|
+
fullTrust: z.literal(true),
|
|
387
|
+
hostEquivalentExecution: z.literal(true),
|
|
388
|
+
providerAuth: z.literal('native'),
|
|
389
|
+
planningSync: z.literal(true),
|
|
390
|
+
gitCommits: z.literal(true),
|
|
391
|
+
gitPush: z.literal(true),
|
|
392
|
+
managedPlanningMutation: z.literal(true),
|
|
393
|
+
pullRequestCreation: z.literal(false),
|
|
394
|
+
fusionLaunch: z.literal(false),
|
|
395
|
+
trackedBacklogExecution: z.literal(false),
|
|
396
|
+
runCancellation: z.literal(false),
|
|
397
|
+
taskLifecycleTransition: z.literal(false),
|
|
398
|
+
summary: z.string().min(1),
|
|
399
|
+
})
|
|
400
|
+
.strict();
|
|
401
|
+
|
|
402
|
+
/**
|
|
403
|
+
* Poetic's `taskCreateV1` identity envelope, read from the create command's
|
|
404
|
+
* stdout. Unknown keys are stripped rather than refused: this is another
|
|
405
|
+
* process's output and the CLI may add fields, but the required identity content
|
|
406
|
+
* below is enforced, and a missing or inconsistent envelope makes the outcome
|
|
407
|
+
* ambiguous rather than assumed.
|
|
408
|
+
*/
|
|
409
|
+
export const taskCreateIdentityEnvelopeSchema = z.object({
|
|
410
|
+
schemaVersion: z.string().min(1),
|
|
411
|
+
state: z.enum(['created', 'refused', 'rolled-back', 'failed-after-partial-effect']),
|
|
412
|
+
taskId: z.string().nullable(),
|
|
413
|
+
sprintId: z.string(),
|
|
414
|
+
filePath: z.string().nullable(),
|
|
415
|
+
estimatedHours: z.number().nullable(),
|
|
416
|
+
expectedRuntimeMinutes: z.number().nullable(),
|
|
417
|
+
priority: z.string().nullable(),
|
|
418
|
+
dependencies: z.array(z.string()),
|
|
419
|
+
backlogItemId: z.string().nullable(),
|
|
420
|
+
fileCreated: z.boolean(),
|
|
421
|
+
sync: z.literal('refused-branch').optional(),
|
|
422
|
+
membershipApplied: z.boolean(),
|
|
423
|
+
capacity: z.object({
|
|
424
|
+
allocatedHours: z.number().nullable(),
|
|
425
|
+
totalHours: z.number().nullable(),
|
|
426
|
+
}),
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
export type TaskCreateIdentityEnvelope = z.infer<typeof taskCreateIdentityEnvelopeSchema>;
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Poetic's `taskDescriptionV1` sibling on `plan task status <id> --json
|
|
433
|
+
* --detail`. It is the only canonical source of a task's current Description
|
|
434
|
+
* section, and therefore the only permitted prepopulation source for a
|
|
435
|
+
* Description replacement.
|
|
436
|
+
*/
|
|
437
|
+
export const taskDescriptionEnvelopeSchema = z.object({
|
|
438
|
+
schemaVersion: z.string().min(1),
|
|
439
|
+
taskId: z.string().min(1),
|
|
440
|
+
description: z.string(),
|
|
441
|
+
});
|
|
442
|
+
|
|
443
|
+
export type TaskDescriptionEnvelope = z.infer<typeof taskDescriptionEnvelopeSchema>;
|
|
444
|
+
|
|
445
|
+
/** Minimal sprint facts this lane rereads: identity, membership, capacity. */
|
|
446
|
+
export const taskAuthoringSprintFactsSchema = z
|
|
447
|
+
.object({
|
|
448
|
+
id: z.string().min(1),
|
|
449
|
+
taskIds: z.array(z.string()),
|
|
450
|
+
capacity: z
|
|
451
|
+
.object({
|
|
452
|
+
allocatedHours: z.number().nullable(),
|
|
453
|
+
totalHours: z.number().nullable(),
|
|
454
|
+
})
|
|
455
|
+
.strict(),
|
|
456
|
+
})
|
|
457
|
+
.strict();
|
|
458
|
+
|
|
459
|
+
export type TaskAuthoringSprintFacts = z.infer<typeof taskAuthoringSprintFactsSchema>;
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* One canonical reread member. A reread that could not be performed is reported
|
|
463
|
+
* as unavailable with Poetic's own reason; it never converts an applied mutation
|
|
464
|
+
* into a failure and is never replaced by a predicted value.
|
|
465
|
+
*/
|
|
466
|
+
const rereadMemberSchema = <Value extends z.ZodTypeAny>(value: Value) =>
|
|
467
|
+
z.discriminatedUnion('state', [
|
|
468
|
+
z.object({ state: z.literal('available'), value }).strict(),
|
|
469
|
+
z.object({ state: z.literal('unavailable'), reason: z.string().min(1) }).strict(),
|
|
470
|
+
]);
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* The reread set for this lane. `sprint` and `description` are null when the
|
|
474
|
+
* action's reread set does not include them, which stays distinct from an
|
|
475
|
+
* attempted reread that was unavailable.
|
|
476
|
+
*/
|
|
477
|
+
export const taskAuthoringRereadsSchema = z
|
|
478
|
+
.object({
|
|
479
|
+
task: rereadMemberSchema(getTaskDetailOutputSchema),
|
|
480
|
+
sprint: rereadMemberSchema(taskAuthoringSprintFactsSchema).nullable(),
|
|
481
|
+
description: rereadMemberSchema(taskDescriptionEnvelopeSchema).nullable(),
|
|
482
|
+
})
|
|
483
|
+
.strict();
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* What Poetic's single invocation reported. `argv` discloses the exact tokens
|
|
487
|
+
* that ran, `attempts` is a literal 1, and `remoteSyncConfirmedByExitCode` is a
|
|
488
|
+
* literal false so a zero exit can never be rendered as a confirmed push.
|
|
489
|
+
*
|
|
490
|
+
* `timed_out` and `ambiguous` exist because an exit code alone cannot settle
|
|
491
|
+
* whether a create applied: an unusable identity envelope or an interrupted
|
|
492
|
+
* command must render as neither success nor "nothing happened".
|
|
493
|
+
*/
|
|
494
|
+
export const taskAuthoringCommandEvidenceSchema = z
|
|
495
|
+
.object({
|
|
496
|
+
state: z.enum(['succeeded', 'failed', 'timed_out', 'ambiguous']),
|
|
497
|
+
attempts: z.literal(1),
|
|
498
|
+
argv: z.array(z.string().min(1)),
|
|
499
|
+
exitCode: z.number().int().nullable(),
|
|
500
|
+
diagnostics: z.string().nullable(),
|
|
501
|
+
remoteSyncConfirmedByExitCode: z.literal(false),
|
|
502
|
+
})
|
|
503
|
+
.strict();
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* The effect phase is explicit, never inferred by a consumer from an exit code.
|
|
507
|
+
* `unknown-after-timeout` is this envelope's only undetermined bucket: it covers
|
|
508
|
+
* an interrupted command and equally a command that ran but published no usable
|
|
509
|
+
* identity evidence.
|
|
510
|
+
*/
|
|
511
|
+
export const taskAuthoringEffectSchema = z
|
|
512
|
+
.object({
|
|
513
|
+
phase: z.enum([
|
|
514
|
+
'refused-before-launch',
|
|
515
|
+
'refused-before-effect',
|
|
516
|
+
'applied',
|
|
517
|
+
'applied-incomplete',
|
|
518
|
+
'failed-after-partial-effect',
|
|
519
|
+
'unknown-after-timeout',
|
|
520
|
+
]),
|
|
521
|
+
createdIdentities: z.array(z.string()),
|
|
522
|
+
affectedIdentities: z.array(z.string()),
|
|
523
|
+
})
|
|
524
|
+
.strict();
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* Sync state comes only from a fresh workspace reread. A zero exit proves the
|
|
528
|
+
* command's own logic completed; it never proves the managed push landed.
|
|
529
|
+
*/
|
|
530
|
+
export const taskAuthoringSyncSchema = z
|
|
531
|
+
.object({
|
|
532
|
+
state: z.enum([
|
|
533
|
+
'not_attempted',
|
|
534
|
+
'skipped_incomplete',
|
|
535
|
+
'remote_verified',
|
|
536
|
+
'local_commit_only',
|
|
537
|
+
'failed',
|
|
538
|
+
'unknown',
|
|
539
|
+
]),
|
|
540
|
+
detail: z.string().nullable(),
|
|
541
|
+
})
|
|
542
|
+
.strict();
|
|
543
|
+
|
|
544
|
+
export const taskAuthoringRequestedIdentitiesSchema = z
|
|
545
|
+
.object({
|
|
546
|
+
taskId: z.string().nullable(),
|
|
547
|
+
sprintId: z.string().nullable(),
|
|
548
|
+
dependencyTaskId: z.string().nullable(),
|
|
549
|
+
backlogItemId: z.string().nullable(),
|
|
550
|
+
})
|
|
551
|
+
.strict();
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* Authoritative outcome of one authoring attempt. Once a process has run this
|
|
555
|
+
* envelope is returned even on a nonzero exit, so partial-effect evidence is
|
|
556
|
+
* never discarded.
|
|
557
|
+
*/
|
|
558
|
+
export const applyTaskAuthoringOutputSchema = z
|
|
559
|
+
.object({
|
|
560
|
+
outcomeVersion: z.literal(TASK_AUTHORING_OUTCOME_VERSION),
|
|
561
|
+
repository: repositorySchema,
|
|
562
|
+
disclosure: taskAuthoringDisclosureSchema,
|
|
563
|
+
action: z.enum(TASK_AUTHORING_VOCABULARY),
|
|
564
|
+
requestedIdentities: taskAuthoringRequestedIdentitiesSchema,
|
|
565
|
+
command: taskAuthoringCommandEvidenceSchema,
|
|
566
|
+
identityOutcome: taskCreateIdentityEnvelopeSchema.nullable(),
|
|
567
|
+
effect: taskAuthoringEffectSchema,
|
|
568
|
+
sync: taskAuthoringSyncSchema,
|
|
569
|
+
syncWarnings: z.array(z.string()),
|
|
570
|
+
integrityNotes: z.array(z.string()),
|
|
571
|
+
canonicalRereads: taskAuthoringRereadsSchema,
|
|
572
|
+
workspace: rereadMemberSchema(planningWorkspaceProjectionSchema),
|
|
573
|
+
})
|
|
574
|
+
.strict();
|
|
575
|
+
|
|
576
|
+
export type ApplyTaskAuthoringOutput = z.infer<typeof applyTaskAuthoringOutputSchema>;
|
|
577
|
+
export type TaskAuthoringCommandEvidence = z.infer<typeof taskAuthoringCommandEvidenceSchema>;
|
|
578
|
+
export type TaskAuthoringEffect = z.infer<typeof taskAuthoringEffectSchema>;
|
|
579
|
+
export type TaskAuthoringSync = z.infer<typeof taskAuthoringSyncSchema>;
|
|
580
|
+
export type TaskAuthoringRereads = z.infer<typeof taskAuthoringRereadsSchema>;
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Why a request never reached a process. Each reason is a distinct BB refusal
|
|
584
|
+
* before launch; none of them describes a Poetic-side failure.
|
|
585
|
+
*/
|
|
586
|
+
export const TASK_AUTHORING_REFUSAL_REASONS = [
|
|
587
|
+
'invalid-request',
|
|
588
|
+
'lifecycle-field',
|
|
589
|
+
'repository-mismatch',
|
|
590
|
+
'repository-not-ready',
|
|
591
|
+
'repository-moved',
|
|
592
|
+
'expected-identity-mismatch',
|
|
593
|
+
'missing-identity',
|
|
594
|
+
'archived-identity',
|
|
595
|
+
'changed-identity',
|
|
596
|
+
'membership-drift',
|
|
597
|
+
'task-unavailable',
|
|
598
|
+
'sprint-unavailable',
|
|
599
|
+
'description-prepopulation-unavailable',
|
|
600
|
+
'already-in-flight',
|
|
601
|
+
] as const;
|
|
602
|
+
|
|
603
|
+
export type TaskAuthoringRefusalReason = (typeof TASK_AUTHORING_REFUSAL_REASONS)[number];
|
|
604
|
+
|
|
605
|
+
export const taskAuthoringRefusalSchema = z
|
|
606
|
+
.object({
|
|
607
|
+
state: z.literal('refused'),
|
|
608
|
+
reason: z.enum(TASK_AUTHORING_REFUSAL_REASONS),
|
|
609
|
+
message: z.string().min(1),
|
|
610
|
+
action: z.enum(TASK_AUTHORING_VOCABULARY).nullable(),
|
|
611
|
+
})
|
|
612
|
+
.strict();
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* A pre-launch refusal and a completed attempt are separate shapes: the former
|
|
616
|
+
* may be mapped to an RPC error by the registering surface, while the latter
|
|
617
|
+
* must always be delivered as the outcome envelope.
|
|
618
|
+
*/
|
|
619
|
+
export const taskAuthoringResultSchema = z.discriminatedUnion('state', [
|
|
620
|
+
taskAuthoringRefusalSchema,
|
|
621
|
+
z.object({ state: z.literal('completed'), outcome: applyTaskAuthoringOutputSchema }).strict(),
|
|
622
|
+
]);
|
|
623
|
+
|
|
624
|
+
export type TaskAuthoringRefusal = z.infer<typeof taskAuthoringRefusalSchema>;
|
|
625
|
+
export type TaskAuthoringResult = z.infer<typeof taskAuthoringResultSchema>;
|
|
626
|
+
|
|
627
|
+
/**
|
|
628
|
+
* Frozen public RPC method surface for custom task authoring. Registration on
|
|
629
|
+
* the live contract is owned by the later integration lane; nothing here
|
|
630
|
+
* registers, mounts, or renders anything.
|
|
631
|
+
*/
|
|
632
|
+
export const applyTaskAuthoringMethod = {
|
|
633
|
+
input: applyTaskAuthoringInputSchema,
|
|
634
|
+
output: applyTaskAuthoringOutputSchema,
|
|
635
|
+
} as const;
|