@theokit/sdk 4.51.0 → 4.51.1
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/CHANGELOG.md +6 -0
- package/dist/agent-2KSLHB6B.cjs +57 -0
- package/dist/{agent-B2WU3JP6.cjs.map → agent-2KSLHB6B.cjs.map} +1 -1
- package/dist/agent-QWNWBCQZ.js +48 -0
- package/dist/{agent-DI2QQHSJ.js.map → agent-QWNWBCQZ.js.map} +1 -1
- package/dist/agent-session-store-EPX2WQI4.cjs +23 -0
- package/dist/{agent-session-store-EPUERCUU.cjs.map → agent-session-store-EPX2WQI4.cjs.map} +1 -1
- package/dist/agent-session-store-JMU7ASDB.js +6 -0
- package/dist/{agent-session-store-TXP5ZVOD.js.map → agent-session-store-JMU7ASDB.js.map} +1 -1
- package/dist/auth/index.cjs +16 -16
- package/dist/auth/index.js +4 -4
- package/dist/{batch-OUF4N2TM.js → batch-NLIS4QTW.js} +9 -9
- package/dist/{batch-OUF4N2TM.js.map → batch-NLIS4QTW.js.map} +1 -1
- package/dist/{batch-URTEXK77.cjs → batch-WQ3AJCDV.cjs} +26 -26
- package/dist/{batch-URTEXK77.cjs.map → batch-WQ3AJCDV.cjs.map} +1 -1
- package/dist/{chunk-NETYW4V3.cjs → chunk-2CFEET3Y.cjs} +4 -4
- package/dist/{chunk-NETYW4V3.cjs.map → chunk-2CFEET3Y.cjs.map} +1 -1
- package/dist/{chunk-WUUSAMFC.cjs → chunk-2S7IB4O3.cjs} +24 -24
- package/dist/{chunk-WUUSAMFC.cjs.map → chunk-2S7IB4O3.cjs.map} +1 -1
- package/dist/{chunk-YULF6FPB.cjs → chunk-2YGIBOUH.cjs} +8 -8
- package/dist/{chunk-YULF6FPB.cjs.map → chunk-2YGIBOUH.cjs.map} +1 -1
- package/dist/{chunk-UQHIEUDY.cjs → chunk-3BKWFISQ.cjs} +8 -8
- package/dist/{chunk-UQHIEUDY.cjs.map → chunk-3BKWFISQ.cjs.map} +1 -1
- package/dist/{chunk-FZ4YMZA3.cjs → chunk-3R4ZCQAZ.cjs} +5 -5
- package/dist/{chunk-FZ4YMZA3.cjs.map → chunk-3R4ZCQAZ.cjs.map} +1 -1
- package/dist/{chunk-HECR7KF5.cjs → chunk-3YYDHUNH.cjs} +11 -11
- package/dist/{chunk-HECR7KF5.cjs.map → chunk-3YYDHUNH.cjs.map} +1 -1
- package/dist/{chunk-BRHRQOJA.cjs → chunk-44IISBRZ.cjs} +4 -4
- package/dist/{chunk-BRHRQOJA.cjs.map → chunk-44IISBRZ.cjs.map} +1 -1
- package/dist/{chunk-PBML2FHN.js → chunk-4X3SBHPK.js} +2 -2
- package/dist/chunk-4X3SBHPK.js.map +1 -0
- package/dist/{chunk-OLLOUAUJ.js → chunk-5XXUYU3M.js} +3 -3
- package/dist/{chunk-OLLOUAUJ.js.map → chunk-5XXUYU3M.js.map} +1 -1
- package/dist/{chunk-ACHVCIDQ.js → chunk-6CSIUJ5W.js} +35 -35
- package/dist/{chunk-ACHVCIDQ.js.map → chunk-6CSIUJ5W.js.map} +1 -1
- package/dist/{chunk-KCQUYQ3V.cjs → chunk-6DCTL32L.cjs} +17 -17
- package/dist/{chunk-KCQUYQ3V.cjs.map → chunk-6DCTL32L.cjs.map} +1 -1
- package/dist/{chunk-R2A3WIJY.js → chunk-6PTCKXD3.js} +8 -8
- package/dist/{chunk-R2A3WIJY.js.map → chunk-6PTCKXD3.js.map} +1 -1
- package/dist/{chunk-XR4LPBXH.cjs → chunk-7HQVDLFI.cjs} +9 -9
- package/dist/{chunk-XR4LPBXH.cjs.map → chunk-7HQVDLFI.cjs.map} +1 -1
- package/dist/{chunk-GNMPCZNN.js → chunk-7TB5U7RK.js} +6 -6
- package/dist/{chunk-GNMPCZNN.js.map → chunk-7TB5U7RK.js.map} +1 -1
- package/dist/{chunk-7PESI6YD.cjs → chunk-ADVZIC43.cjs} +10 -10
- package/dist/{chunk-7PESI6YD.cjs.map → chunk-ADVZIC43.cjs.map} +1 -1
- package/dist/{chunk-NNNUQELM.cjs → chunk-AMYY3JHQ.cjs} +9 -9
- package/dist/{chunk-NNNUQELM.cjs.map → chunk-AMYY3JHQ.cjs.map} +1 -1
- package/dist/{chunk-L4JFQCG4.js → chunk-BKRTYDVN.js} +3 -3
- package/dist/{chunk-L4JFQCG4.js.map → chunk-BKRTYDVN.js.map} +1 -1
- package/dist/{chunk-SEZJGV7C.js → chunk-BVT6LFQ3.js} +5 -5
- package/dist/{chunk-SEZJGV7C.js.map → chunk-BVT6LFQ3.js.map} +1 -1
- package/dist/{chunk-UJMEWGO6.cjs → chunk-BWGXYOBZ.cjs} +4 -4
- package/dist/{chunk-UJMEWGO6.cjs.map → chunk-BWGXYOBZ.cjs.map} +1 -1
- package/dist/{chunk-E7WDXT4X.js → chunk-BXVSBYGW.js} +5 -5
- package/dist/{chunk-E7WDXT4X.js.map → chunk-BXVSBYGW.js.map} +1 -1
- package/dist/{chunk-AF4BBKIF.js → chunk-C4EU627W.js} +4 -4
- package/dist/{chunk-AF4BBKIF.js.map → chunk-C4EU627W.js.map} +1 -1
- package/dist/{chunk-VQFSEKU5.js → chunk-CHVSMEKM.js} +3 -3
- package/dist/{chunk-VQFSEKU5.js.map → chunk-CHVSMEKM.js.map} +1 -1
- package/dist/{chunk-6X2HUT4A.cjs → chunk-CZHPR2G7.cjs} +8 -8
- package/dist/{chunk-6X2HUT4A.cjs.map → chunk-CZHPR2G7.cjs.map} +1 -1
- package/dist/{chunk-F4RUADRC.js → chunk-DHVNJYTO.js} +3 -3
- package/dist/{chunk-F4RUADRC.js.map → chunk-DHVNJYTO.js.map} +1 -1
- package/dist/{chunk-VK7SIDYI.js → chunk-DRRSUUI5.js} +5 -5
- package/dist/{chunk-VK7SIDYI.js.map → chunk-DRRSUUI5.js.map} +1 -1
- package/dist/{chunk-S4Q5OMIK.cjs → chunk-E3OCRJU6.cjs} +11 -11
- package/dist/{chunk-S4Q5OMIK.cjs.map → chunk-E3OCRJU6.cjs.map} +1 -1
- package/dist/{chunk-3KY7MHR4.js → chunk-E6T264NS.js} +3 -3
- package/dist/{chunk-3KY7MHR4.js.map → chunk-E6T264NS.js.map} +1 -1
- package/dist/{chunk-WCXOKGOQ.cjs → chunk-ECPL5RV6.cjs} +8 -8
- package/dist/{chunk-WCXOKGOQ.cjs.map → chunk-ECPL5RV6.cjs.map} +1 -1
- package/dist/{chunk-LLE7HPRI.js → chunk-EFXJ5C7X.js} +5 -5
- package/dist/{chunk-LLE7HPRI.js.map → chunk-EFXJ5C7X.js.map} +1 -1
- package/dist/{chunk-RWMNTFHZ.cjs → chunk-EQMLJ52C.cjs} +26 -26
- package/dist/{chunk-RWMNTFHZ.cjs.map → chunk-EQMLJ52C.cjs.map} +1 -1
- package/dist/{chunk-WIGJGFH4.cjs → chunk-EUBGGYPH.cjs} +5 -5
- package/dist/{chunk-WIGJGFH4.cjs.map → chunk-EUBGGYPH.cjs.map} +1 -1
- package/dist/{chunk-RBQYHEZD.cjs → chunk-FBZMSLDC.cjs} +4 -4
- package/dist/{chunk-RBQYHEZD.cjs.map → chunk-FBZMSLDC.cjs.map} +1 -1
- package/dist/{chunk-3G6ZDZ6L.cjs → chunk-FUASIT3E.cjs} +15 -15
- package/dist/{chunk-3G6ZDZ6L.cjs.map → chunk-FUASIT3E.cjs.map} +1 -1
- package/dist/{chunk-MRKSSN36.js → chunk-HI4ZW62S.js} +3 -3
- package/dist/{chunk-MRKSSN36.js.map → chunk-HI4ZW62S.js.map} +1 -1
- package/dist/{chunk-O3IZ7JEL.js → chunk-I732VEDW.js} +3 -3
- package/dist/{chunk-O3IZ7JEL.js.map → chunk-I732VEDW.js.map} +1 -1
- package/dist/{chunk-AZ6FKDQR.js → chunk-ITQ4NO4P.js} +3 -3
- package/dist/{chunk-AZ6FKDQR.js.map → chunk-ITQ4NO4P.js.map} +1 -1
- package/dist/{chunk-PYM5OUL4.js → chunk-J4RY5DTI.js} +5 -5
- package/dist/{chunk-PYM5OUL4.js.map → chunk-J4RY5DTI.js.map} +1 -1
- package/dist/{chunk-NOM2YWFP.js → chunk-JJZ4NIAG.js} +5 -5
- package/dist/{chunk-NOM2YWFP.js.map → chunk-JJZ4NIAG.js.map} +1 -1
- package/dist/{chunk-GC44RATP.cjs → chunk-K42QGAKM.cjs} +10 -10
- package/dist/{chunk-GC44RATP.cjs.map → chunk-K42QGAKM.cjs.map} +1 -1
- package/dist/{chunk-FRQ6F44U.js → chunk-KIX45IKP.js} +4 -4
- package/dist/{chunk-FRQ6F44U.js.map → chunk-KIX45IKP.js.map} +1 -1
- package/dist/{chunk-OEFFPR2S.cjs → chunk-KNZU4YO5.cjs} +4 -4
- package/dist/{chunk-OEFFPR2S.cjs.map → chunk-KNZU4YO5.cjs.map} +1 -1
- package/dist/{chunk-HK4HRLWE.js → chunk-KZBB4YKU.js} +3 -3
- package/dist/{chunk-HK4HRLWE.js.map → chunk-KZBB4YKU.js.map} +1 -1
- package/dist/{chunk-ZS6SLELQ.js → chunk-L7EGRCKJ.js} +4 -4
- package/dist/{chunk-ZS6SLELQ.js.map → chunk-L7EGRCKJ.js.map} +1 -1
- package/dist/{chunk-LXKNENHK.js → chunk-MV4TOCUK.js} +3 -3
- package/dist/{chunk-LXKNENHK.js.map → chunk-MV4TOCUK.js.map} +1 -1
- package/dist/{chunk-PAV4ZPSW.js → chunk-N43XLTHZ.js} +3 -3
- package/dist/{chunk-PAV4ZPSW.js.map → chunk-N43XLTHZ.js.map} +1 -1
- package/dist/{chunk-QFFNMJAS.cjs → chunk-N6NUMXAJ.cjs} +121 -121
- package/dist/{chunk-QFFNMJAS.cjs.map → chunk-N6NUMXAJ.cjs.map} +1 -1
- package/dist/{chunk-ZNW2TXLO.js → chunk-NACDF3PK.js} +3 -3
- package/dist/{chunk-ZNW2TXLO.js.map → chunk-NACDF3PK.js.map} +1 -1
- package/dist/{chunk-27DYRARU.cjs → chunk-NFATC6ZF.cjs} +4 -4
- package/dist/{chunk-27DYRARU.cjs.map → chunk-NFATC6ZF.cjs.map} +1 -1
- package/dist/{chunk-E54KDYOE.js → chunk-NOS7PTKP.js} +7 -7
- package/dist/{chunk-E54KDYOE.js.map → chunk-NOS7PTKP.js.map} +1 -1
- package/dist/{chunk-NRA36JKG.cjs → chunk-OI6RHLGC.cjs} +11 -11
- package/dist/{chunk-NRA36JKG.cjs.map → chunk-OI6RHLGC.cjs.map} +1 -1
- package/dist/{chunk-J5RW43IR.js → chunk-OIBHY6JQ.js} +4 -4
- package/dist/{chunk-J5RW43IR.js.map → chunk-OIBHY6JQ.js.map} +1 -1
- package/dist/{chunk-SNKY3C2L.js → chunk-OZXPA3ME.js} +4 -4
- package/dist/{chunk-SNKY3C2L.js.map → chunk-OZXPA3ME.js.map} +1 -1
- package/dist/{chunk-35NFZ7QB.js → chunk-PLUCC4N5.js} +3 -3
- package/dist/{chunk-35NFZ7QB.js.map → chunk-PLUCC4N5.js.map} +1 -1
- package/dist/{chunk-MMZX557L.cjs → chunk-PVBANCWU.cjs} +5 -5
- package/dist/{chunk-MMZX557L.cjs.map → chunk-PVBANCWU.cjs.map} +1 -1
- package/dist/{chunk-BV42CCRP.cjs → chunk-QLAWEGTZ.cjs} +7 -7
- package/dist/{chunk-BV42CCRP.cjs.map → chunk-QLAWEGTZ.cjs.map} +1 -1
- package/dist/{chunk-TDDRPFO3.js → chunk-QVIUICFM.js} +9 -9
- package/dist/{chunk-TDDRPFO3.js.map → chunk-QVIUICFM.js.map} +1 -1
- package/dist/{chunk-HKSSM5RK.js → chunk-R7TKOQMJ.js} +3 -3
- package/dist/{chunk-HKSSM5RK.js.map → chunk-R7TKOQMJ.js.map} +1 -1
- package/dist/{chunk-HLNLYLNN.cjs → chunk-RAACTJ7C.cjs} +4 -4
- package/dist/{chunk-HLNLYLNN.cjs.map → chunk-RAACTJ7C.cjs.map} +1 -1
- package/dist/{chunk-X2YQP452.cjs → chunk-RTLUZKDL.cjs} +11 -11
- package/dist/{chunk-X2YQP452.cjs.map → chunk-RTLUZKDL.cjs.map} +1 -1
- package/dist/{chunk-6W4U2G3J.cjs → chunk-SDJYLCJK.cjs} +5 -5
- package/dist/{chunk-6W4U2G3J.cjs.map → chunk-SDJYLCJK.cjs.map} +1 -1
- package/dist/{chunk-ZHPET3LZ.cjs → chunk-SXSPMRSV.cjs} +2 -2
- package/dist/chunk-SXSPMRSV.cjs.map +1 -0
- package/dist/{chunk-JA4FEA5Z.cjs → chunk-T6QUCG7L.cjs} +4 -4
- package/dist/{chunk-JA4FEA5Z.cjs.map → chunk-T6QUCG7L.cjs.map} +1 -1
- package/dist/{chunk-GLEKLAUW.cjs → chunk-T6ZCG5AP.cjs} +12 -12
- package/dist/{chunk-GLEKLAUW.cjs.map → chunk-T6ZCG5AP.cjs.map} +1 -1
- package/dist/{chunk-ZTEAJAE6.js → chunk-UJ3SXRZZ.js} +3 -3
- package/dist/{chunk-ZTEAJAE6.js.map → chunk-UJ3SXRZZ.js.map} +1 -1
- package/dist/{chunk-Z6N6SDNR.js → chunk-V2EJLKGA.js} +4 -4
- package/dist/{chunk-Z6N6SDNR.js.map → chunk-V2EJLKGA.js.map} +1 -1
- package/dist/{chunk-57KX5WTP.cjs → chunk-V45L2OYP.cjs} +9 -9
- package/dist/{chunk-57KX5WTP.cjs.map → chunk-V45L2OYP.cjs.map} +1 -1
- package/dist/{chunk-2WB6EIYW.js → chunk-W4FV7JBH.js} +4 -4
- package/dist/{chunk-2WB6EIYW.js.map → chunk-W4FV7JBH.js.map} +1 -1
- package/dist/{chunk-TJRPNBY5.js → chunk-XGYI2KQH.js} +4 -4
- package/dist/{chunk-TJRPNBY5.js.map → chunk-XGYI2KQH.js.map} +1 -1
- package/dist/{chunk-F7OBYH2X.cjs → chunk-XI4L45SS.cjs} +294 -294
- package/dist/{chunk-F7OBYH2X.cjs.map → chunk-XI4L45SS.cjs.map} +1 -1
- package/dist/{chunk-4JRRFRV4.cjs → chunk-XK54DTRF.cjs} +4 -4
- package/dist/{chunk-4JRRFRV4.cjs.map → chunk-XK54DTRF.cjs.map} +1 -1
- package/dist/{chunk-JGYYNDAZ.js → chunk-XWCTBGYK.js} +3 -3
- package/dist/{chunk-JGYYNDAZ.js.map → chunk-XWCTBGYK.js.map} +1 -1
- package/dist/{chunk-XABN5HY6.cjs → chunk-YTO5BRBD.cjs} +8 -8
- package/dist/{chunk-XABN5HY6.cjs.map → chunk-YTO5BRBD.cjs.map} +1 -1
- package/dist/{chunk-72HEBGWN.cjs → chunk-Z5U2JGEK.cjs} +11 -11
- package/dist/{chunk-72HEBGWN.cjs.map → chunk-Z5U2JGEK.cjs.map} +1 -1
- package/dist/{chunk-Q4DTGCSD.js → chunk-ZSJPRPN7.js} +3 -3
- package/dist/{chunk-Q4DTGCSD.js.map → chunk-ZSJPRPN7.js.map} +1 -1
- package/dist/compact-session-AAFICMPQ.cjs +56 -0
- package/dist/{compact-session-FKYCJRAK.cjs.map → compact-session-AAFICMPQ.cjs.map} +1 -1
- package/dist/compact-session-LR73ESZX.js +19 -0
- package/dist/{compact-session-LF4YOT5S.js.map → compact-session-LR73ESZX.js.map} +1 -1
- package/dist/compaction.cjs +16 -16
- package/dist/compaction.js +3 -3
- package/dist/concurrency.cjs +6 -6
- package/dist/concurrency.js +4 -4
- package/dist/context-4HGPCOH6.cjs +22 -0
- package/dist/{context-2G4375BZ.cjs.map → context-4HGPCOH6.cjs.map} +1 -1
- package/dist/context-DCECDKWN.js +5 -0
- package/dist/{context-GSQYVVMJ.js.map → context-DCECDKWN.js.map} +1 -1
- package/dist/cron.cjs +31 -31
- package/dist/cron.js +30 -30
- package/dist/errors.cjs +21 -21
- package/dist/errors.js +2 -2
- package/dist/eval.cjs +36 -36
- package/dist/eval.js +30 -30
- package/dist/{executor-VQLTQY53.js → executor-3CGPLVJL.js} +7 -7
- package/dist/{executor-VQLTQY53.js.map → executor-3CGPLVJL.js.map} +1 -1
- package/dist/{executor-CB75B5BH.cjs → executor-4SW7QGZ4.cjs} +24 -24
- package/dist/{executor-CB75B5BH.cjs.map → executor-4SW7QGZ4.cjs.map} +1 -1
- package/dist/filesystem/index.cjs +7 -7
- package/dist/filesystem/index.js +3 -3
- package/dist/fs-session-store-2TF3ZWMT.js +10 -0
- package/dist/{fs-session-store-ZNUYZHYI.js.map → fs-session-store-2TF3ZWMT.js.map} +1 -1
- package/dist/fs-session-store-TL4RJTXZ.cjs +19 -0
- package/dist/{fs-session-store-MAZV5FXJ.cjs.map → fs-session-store-TL4RJTXZ.cjs.map} +1 -1
- package/dist/generate-object-E465DX5I.cjs +20 -0
- package/dist/{generate-object-6PWGH5DZ.cjs.map → generate-object-E465DX5I.cjs.map} +1 -1
- package/dist/generate-object-TVQCW2IZ.js +7 -0
- package/dist/{generate-object-IXMJ7FUX.js.map → generate-object-TVQCW2IZ.js.map} +1 -1
- package/dist/index-manager-EA6FGIQG.js +12 -0
- package/dist/{index-manager-OMJVYS2U.js.map → index-manager-EA6FGIQG.js.map} +1 -1
- package/dist/index-manager-HGGL4DD5.cjs +21 -0
- package/dist/{index-manager-34ELCOAP.cjs.map → index-manager-HGGL4DD5.cjs.map} +1 -1
- package/dist/index.cjs +133 -133
- package/dist/index.js +43 -43
- package/dist/{inject-session-MWRJENH4.js → inject-session-6ZAFN7F7.js} +7 -7
- package/dist/{inject-session-MWRJENH4.js.map → inject-session-6ZAFN7F7.js.map} +1 -1
- package/dist/{inject-session-J7Y6XACY.cjs → inject-session-KOGUD6KM.cjs} +9 -9
- package/dist/{inject-session-J7Y6XACY.cjs.map → inject-session-KOGUD6KM.cjs.map} +1 -1
- package/dist/internal/memory/adapters/index.cjs +8 -8
- package/dist/internal/memory/adapters/index.js +7 -7
- package/dist/internal/persistence/index.cjs +25 -25
- package/dist/internal/persistence/index.js +6 -6
- package/dist/internal/security/index.cjs +13 -13
- package/dist/internal/security/index.js +3 -3
- package/dist/judge-call-GVIJWQVE.cjs +22 -0
- package/dist/{judge-call-J5EETJL3.cjs.map → judge-call-GVIJWQVE.cjs.map} +1 -1
- package/dist/judge-call-QMKGC2ZK.js +5 -0
- package/dist/{judge-call-3QZO5H5N.js.map → judge-call-QMKGC2ZK.js.map} +1 -1
- package/dist/models.cjs +20 -20
- package/dist/models.js +5 -5
- package/dist/path-safety.cjs +10 -10
- package/dist/path-safety.js +3 -3
- package/dist/persistence.cjs +28 -28
- package/dist/persistence.js +8 -8
- package/dist/project.cjs +5 -5
- package/dist/project.js +3 -3
- package/dist/registry-GC7BQMSV.js +9 -0
- package/dist/{registry-PPFMCM4A.js.map → registry-GC7BQMSV.js.map} +1 -1
- package/dist/registry-UBY26R4I.cjs +46 -0
- package/dist/{registry-KB3TS6BM.cjs.map → registry-UBY26R4I.cjs.map} +1 -1
- package/dist/retry.cjs +4 -4
- package/dist/retry.js +3 -3
- package/dist/sandbox/index.cjs +6 -6
- package/dist/sandbox/index.js +2 -2
- package/dist/server/errors-envelope.cjs +14 -14
- package/dist/server/errors-envelope.js +3 -3
- package/dist/session-transcript-SKIRBEJE.js +5 -0
- package/dist/{session-transcript-7FWTO4BK.js.map → session-transcript-SKIRBEJE.js.map} +1 -1
- package/dist/session-transcript-TNAJ4O3M.cjs +50 -0
- package/dist/{session-transcript-FYRKWRWV.cjs.map → session-transcript-TNAJ4O3M.cjs.map} +1 -1
- package/dist/skills.cjs +7 -7
- package/dist/skills.js +5 -5
- package/dist/stream-object-QMNR3YFF.js +7 -0
- package/dist/{stream-object-NPJXDZXO.js.map → stream-object-QMNR3YFF.js.map} +1 -1
- package/dist/stream-object-T4DAMNVB.cjs +20 -0
- package/dist/{stream-object-3R3HZPQN.cjs.map → stream-object-T4DAMNVB.cjs.map} +1 -1
- package/dist/subagents-loader-3CXBQWWY.cjs +15 -0
- package/dist/{subagents-loader-FDXPBBRA.cjs.map → subagents-loader-3CXBQWWY.cjs.map} +1 -1
- package/dist/subagents-loader-WN2SB6PV.js +6 -0
- package/dist/{subagents-loader-5KQVYUNS.js.map → subagents-loader-WN2SB6PV.js.map} +1 -1
- package/dist/subagents-loader.cjs +6 -6
- package/dist/subagents-loader.js +4 -4
- package/dist/subscription/index.cjs +3 -3
- package/dist/subscription/index.js +2 -2
- package/dist/task-store.cjs +7 -7
- package/dist/task-store.js +4 -4
- package/dist/workflow.cjs +27 -27
- package/dist/workflow.js +6 -6
- package/package.json +1 -1
- package/dist/agent-B2WU3JP6.cjs +0 -57
- package/dist/agent-DI2QQHSJ.js +0 -48
- package/dist/agent-session-store-EPUERCUU.cjs +0 -23
- package/dist/agent-session-store-TXP5ZVOD.js +0 -6
- package/dist/chunk-PBML2FHN.js.map +0 -1
- package/dist/chunk-ZHPET3LZ.cjs.map +0 -1
- package/dist/compact-session-FKYCJRAK.cjs +0 -56
- package/dist/compact-session-LF4YOT5S.js +0 -19
- package/dist/context-2G4375BZ.cjs +0 -22
- package/dist/context-GSQYVVMJ.js +0 -5
- package/dist/fs-session-store-MAZV5FXJ.cjs +0 -19
- package/dist/fs-session-store-ZNUYZHYI.js +0 -10
- package/dist/generate-object-6PWGH5DZ.cjs +0 -20
- package/dist/generate-object-IXMJ7FUX.js +0 -7
- package/dist/index-manager-34ELCOAP.cjs +0 -21
- package/dist/index-manager-OMJVYS2U.js +0 -12
- package/dist/judge-call-3QZO5H5N.js +0 -5
- package/dist/judge-call-J5EETJL3.cjs +0 -22
- package/dist/registry-KB3TS6BM.cjs +0 -46
- package/dist/registry-PPFMCM4A.js +0 -9
- package/dist/session-transcript-7FWTO4BK.js +0 -5
- package/dist/session-transcript-FYRKWRWV.cjs +0 -50
- package/dist/stream-object-3R3HZPQN.cjs +0 -20
- package/dist/stream-object-NPJXDZXO.js +0 -7
- package/dist/subagents-loader-5KQVYUNS.js +0 -6
- package/dist/subagents-loader-FDXPBBRA.cjs +0 -15
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkXI4L45SS_cjs = require('./chunk-XI4L45SS.cjs');
|
|
4
|
+
require('./chunk-3BKWFISQ.cjs');
|
|
5
|
+
require('./chunk-BV2MWEMV.cjs');
|
|
6
|
+
require('./chunk-6DCTL32L.cjs');
|
|
7
|
+
require('./chunk-BUUUWQMB.cjs');
|
|
8
|
+
require('./chunk-OI6RHLGC.cjs');
|
|
9
|
+
require('./chunk-N6NUMXAJ.cjs');
|
|
10
|
+
require('./chunk-4JBHSLQO.cjs');
|
|
11
|
+
require('./chunk-RAACTJ7C.cjs');
|
|
12
|
+
require('./chunk-3R4ZCQAZ.cjs');
|
|
13
|
+
require('./chunk-EQMLJ52C.cjs');
|
|
14
|
+
require('./chunk-3YYDHUNH.cjs');
|
|
15
|
+
require('./chunk-BBZYXVLZ.cjs');
|
|
16
|
+
require('./chunk-OKLYRPKL.cjs');
|
|
17
|
+
require('./chunk-CZHPR2G7.cjs');
|
|
18
|
+
require('./chunk-ADVZIC43.cjs');
|
|
19
|
+
require('./chunk-E3OCRJU6.cjs');
|
|
20
|
+
require('./chunk-2RW7K6FN.cjs');
|
|
21
|
+
require('./chunk-MUUQ2WFJ.cjs');
|
|
22
|
+
require('./chunk-6JSIEDKL.cjs');
|
|
23
|
+
require('./chunk-B4YA6BRS.cjs');
|
|
24
|
+
require('./chunk-NINIJCHU.cjs');
|
|
25
|
+
require('./chunk-L5YO6PWL.cjs');
|
|
26
|
+
require('./chunk-VJ26EKGJ.cjs');
|
|
27
|
+
require('./chunk-KNZU4YO5.cjs');
|
|
28
|
+
require('./chunk-NFATC6ZF.cjs');
|
|
29
|
+
require('./chunk-T6QUCG7L.cjs');
|
|
30
|
+
require('./chunk-ECPL5RV6.cjs');
|
|
31
|
+
require('./chunk-SDJYLCJK.cjs');
|
|
32
|
+
require('./chunk-QLAWEGTZ.cjs');
|
|
33
|
+
require('./chunk-YLQQX5W2.cjs');
|
|
34
|
+
require('./chunk-7HQVDLFI.cjs');
|
|
35
|
+
require('./chunk-WJVHMTKB.cjs');
|
|
36
|
+
require('./chunk-2CFEET3Y.cjs');
|
|
37
|
+
require('./chunk-RTLUZKDL.cjs');
|
|
38
|
+
require('./chunk-AMYY3JHQ.cjs');
|
|
39
|
+
require('./chunk-VYHJZVL5.cjs');
|
|
40
|
+
require('./chunk-T6ZCG5AP.cjs');
|
|
41
|
+
require('./chunk-XK54DTRF.cjs');
|
|
42
|
+
require('./chunk-C6Y6CWYD.cjs');
|
|
43
|
+
require('./chunk-FUASIT3E.cjs');
|
|
44
|
+
require('./chunk-YTO5BRBD.cjs');
|
|
45
|
+
require('./chunk-VKJ7V7EB.cjs');
|
|
46
|
+
require('./chunk-44IISBRZ.cjs');
|
|
47
|
+
require('./chunk-2YGIBOUH.cjs');
|
|
48
|
+
require('./chunk-SXSPMRSV.cjs');
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
Object.defineProperty(exports, "Agent", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
get: function () { return chunkXI4L45SS_cjs.Agent; }
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=agent-2KSLHB6B.cjs.map
|
|
57
|
+
//# sourceMappingURL=agent-2KSLHB6B.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"agent-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"agent-2KSLHB6B.cjs"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export { Agent } from './chunk-6CSIUJ5W.js';
|
|
2
|
+
import './chunk-DRRSUUI5.js';
|
|
3
|
+
import './chunk-2SFBB54R.js';
|
|
4
|
+
import './chunk-7TB5U7RK.js';
|
|
5
|
+
import './chunk-K2BQQ445.js';
|
|
6
|
+
import './chunk-J4RY5DTI.js';
|
|
7
|
+
import './chunk-QVIUICFM.js';
|
|
8
|
+
import './chunk-4QEC4CCS.js';
|
|
9
|
+
import './chunk-DHVNJYTO.js';
|
|
10
|
+
import './chunk-UJ3SXRZZ.js';
|
|
11
|
+
import './chunk-NOS7PTKP.js';
|
|
12
|
+
import './chunk-OIBHY6JQ.js';
|
|
13
|
+
import './chunk-AM2CNBKE.js';
|
|
14
|
+
import './chunk-34XOCZJO.js';
|
|
15
|
+
import './chunk-L7EGRCKJ.js';
|
|
16
|
+
import './chunk-EFXJ5C7X.js';
|
|
17
|
+
import './chunk-OZXPA3ME.js';
|
|
18
|
+
import './chunk-OXNYIMZZ.js';
|
|
19
|
+
import './chunk-FD2UT76F.js';
|
|
20
|
+
import './chunk-U54XCYG3.js';
|
|
21
|
+
import './chunk-RP5HQVLD.js';
|
|
22
|
+
import './chunk-6X6ID4MO.js';
|
|
23
|
+
import './chunk-4NAKHID5.js';
|
|
24
|
+
import './chunk-7AD3ZTZL.js';
|
|
25
|
+
import './chunk-ITQ4NO4P.js';
|
|
26
|
+
import './chunk-ZSJPRPN7.js';
|
|
27
|
+
import './chunk-R7TKOQMJ.js';
|
|
28
|
+
import './chunk-C4EU627W.js';
|
|
29
|
+
import './chunk-NACDF3PK.js';
|
|
30
|
+
import './chunk-W4FV7JBH.js';
|
|
31
|
+
import './chunk-2XLKLVVR.js';
|
|
32
|
+
import './chunk-JJZ4NIAG.js';
|
|
33
|
+
import './chunk-4VPXM6UU.js';
|
|
34
|
+
import './chunk-CHVSMEKM.js';
|
|
35
|
+
import './chunk-XGYI2KQH.js';
|
|
36
|
+
import './chunk-KIX45IKP.js';
|
|
37
|
+
import './chunk-X2FR4OIT.js';
|
|
38
|
+
import './chunk-V2EJLKGA.js';
|
|
39
|
+
import './chunk-BKRTYDVN.js';
|
|
40
|
+
import './chunk-5NBUH3NO.js';
|
|
41
|
+
import './chunk-BXVSBYGW.js';
|
|
42
|
+
import './chunk-XWCTBGYK.js';
|
|
43
|
+
import './chunk-RIAM53CP.js';
|
|
44
|
+
import './chunk-5XXUYU3M.js';
|
|
45
|
+
import './chunk-HI4ZW62S.js';
|
|
46
|
+
import './chunk-4X3SBHPK.js';
|
|
47
|
+
//# sourceMappingURL=agent-QWNWBCQZ.js.map
|
|
48
|
+
//# sourceMappingURL=agent-QWNWBCQZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"agent-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"agent-QWNWBCQZ.js"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk3R4ZCQAZ_cjs = require('./chunk-3R4ZCQAZ.cjs');
|
|
4
|
+
require('./chunk-ECPL5RV6.cjs');
|
|
5
|
+
require('./chunk-2CFEET3Y.cjs');
|
|
6
|
+
require('./chunk-SXSPMRSV.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
Object.defineProperty(exports, "appendCompactBoundaryRecord", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () { return chunk3R4ZCQAZ_cjs.appendCompactBoundaryRecord; }
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "persistTurn", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return chunk3R4ZCQAZ_cjs.persistTurn; }
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "readSessionMessages", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () { return chunk3R4ZCQAZ_cjs.readSessionMessages; }
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=agent-session-store-EPX2WQI4.cjs.map
|
|
23
|
+
//# sourceMappingURL=agent-session-store-EPX2WQI4.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"agent-session-store-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"agent-session-store-EPX2WQI4.cjs"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { appendCompactBoundaryRecord, persistTurn, readSessionMessages } from './chunk-UJ3SXRZZ.js';
|
|
2
|
+
import './chunk-C4EU627W.js';
|
|
3
|
+
import './chunk-CHVSMEKM.js';
|
|
4
|
+
import './chunk-4X3SBHPK.js';
|
|
5
|
+
//# sourceMappingURL=agent-session-store-JMU7ASDB.js.map
|
|
6
|
+
//# sourceMappingURL=agent-session-store-JMU7ASDB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"agent-session-store-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"agent-session-store-JMU7ASDB.js"}
|
package/dist/auth/index.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkXK54DTRF_cjs = require('../chunk-XK54DTRF.cjs');
|
|
4
4
|
var chunkC6Y6CWYD_cjs = require('../chunk-C6Y6CWYD.cjs');
|
|
5
|
-
require('../chunk-
|
|
6
|
-
require('../chunk-
|
|
5
|
+
require('../chunk-2YGIBOUH.cjs');
|
|
6
|
+
require('../chunk-SXSPMRSV.cjs');
|
|
7
7
|
|
|
8
8
|
// src/internal/auth/oauth-device.ts
|
|
9
9
|
var POLLING_SAFETY_MARGIN_MS = 3e3;
|
|
@@ -183,7 +183,7 @@ async function openaiDeviceLogin(config, deps, hooks) {
|
|
|
183
183
|
"device poll returned no authorization_code"
|
|
184
184
|
);
|
|
185
185
|
}
|
|
186
|
-
const tokens = await
|
|
186
|
+
const tokens = await chunkXK54DTRF_cjs.exchangeCode(
|
|
187
187
|
config,
|
|
188
188
|
{ code: data.authorization_code, verifier: data.code_verifier },
|
|
189
189
|
deps
|
|
@@ -227,51 +227,51 @@ function extractAccountId(tokens) {
|
|
|
227
227
|
|
|
228
228
|
Object.defineProperty(exports, "CredentialError", {
|
|
229
229
|
enumerable: true,
|
|
230
|
-
get: function () { return
|
|
230
|
+
get: function () { return chunkXK54DTRF_cjs.CredentialError; }
|
|
231
231
|
});
|
|
232
232
|
Object.defineProperty(exports, "assertSecureModes", {
|
|
233
233
|
enumerable: true,
|
|
234
|
-
get: function () { return
|
|
234
|
+
get: function () { return chunkXK54DTRF_cjs.assertSecureModes; }
|
|
235
235
|
});
|
|
236
236
|
Object.defineProperty(exports, "authFilePath", {
|
|
237
237
|
enumerable: true,
|
|
238
|
-
get: function () { return
|
|
238
|
+
get: function () { return chunkXK54DTRF_cjs.authFilePath; }
|
|
239
239
|
});
|
|
240
240
|
Object.defineProperty(exports, "credentialHome", {
|
|
241
241
|
enumerable: true,
|
|
242
|
-
get: function () { return
|
|
242
|
+
get: function () { return chunkXK54DTRF_cjs.credentialHome; }
|
|
243
243
|
});
|
|
244
244
|
Object.defineProperty(exports, "ensureFreshCredential", {
|
|
245
245
|
enumerable: true,
|
|
246
|
-
get: function () { return
|
|
246
|
+
get: function () { return chunkXK54DTRF_cjs.ensureFreshCredential; }
|
|
247
247
|
});
|
|
248
248
|
Object.defineProperty(exports, "exchangeCode", {
|
|
249
249
|
enumerable: true,
|
|
250
|
-
get: function () { return
|
|
250
|
+
get: function () { return chunkXK54DTRF_cjs.exchangeCode; }
|
|
251
251
|
});
|
|
252
252
|
Object.defineProperty(exports, "persistOAuthTokens", {
|
|
253
253
|
enumerable: true,
|
|
254
|
-
get: function () { return
|
|
254
|
+
get: function () { return chunkXK54DTRF_cjs.persistOAuthTokens; }
|
|
255
255
|
});
|
|
256
256
|
Object.defineProperty(exports, "readAuthFile", {
|
|
257
257
|
enumerable: true,
|
|
258
|
-
get: function () { return
|
|
258
|
+
get: function () { return chunkXK54DTRF_cjs.readAuthFile; }
|
|
259
259
|
});
|
|
260
260
|
Object.defineProperty(exports, "readStoredOAuth", {
|
|
261
261
|
enumerable: true,
|
|
262
|
-
get: function () { return
|
|
262
|
+
get: function () { return chunkXK54DTRF_cjs.readStoredOAuth; }
|
|
263
263
|
});
|
|
264
264
|
Object.defineProperty(exports, "refreshOAuthTokens", {
|
|
265
265
|
enumerable: true,
|
|
266
|
-
get: function () { return
|
|
266
|
+
get: function () { return chunkXK54DTRF_cjs.refreshOAuthTokens; }
|
|
267
267
|
});
|
|
268
268
|
Object.defineProperty(exports, "resolveCredential", {
|
|
269
269
|
enumerable: true,
|
|
270
|
-
get: function () { return
|
|
270
|
+
get: function () { return chunkXK54DTRF_cjs.resolveCredential; }
|
|
271
271
|
});
|
|
272
272
|
Object.defineProperty(exports, "writeCredential", {
|
|
273
273
|
enumerable: true,
|
|
274
|
-
get: function () { return
|
|
274
|
+
get: function () { return chunkXK54DTRF_cjs.writeCredential; }
|
|
275
275
|
});
|
|
276
276
|
exports.deviceLogin = deviceLogin;
|
|
277
277
|
exports.extractAccountId = extractAccountId;
|
package/dist/auth/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { exchangeCode } from '../chunk-
|
|
2
|
-
export { CredentialError, assertSecureModes, authFilePath, credentialHome, ensureFreshCredential, exchangeCode, persistOAuthTokens, readAuthFile, readStoredOAuth, refreshOAuthTokens, resolveCredential, writeCredential } from '../chunk-
|
|
1
|
+
import { exchangeCode } from '../chunk-BKRTYDVN.js';
|
|
2
|
+
export { CredentialError, assertSecureModes, authFilePath, credentialHome, ensureFreshCredential, exchangeCode, persistOAuthTokens, readAuthFile, readStoredOAuth, refreshOAuthTokens, resolveCredential, writeCredential } from '../chunk-BKRTYDVN.js';
|
|
3
3
|
import { AuthCallbackError } from '../chunk-5NBUH3NO.js';
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-HI4ZW62S.js';
|
|
5
|
+
import '../chunk-4X3SBHPK.js';
|
|
6
6
|
|
|
7
7
|
// src/internal/auth/oauth-device.ts
|
|
8
8
|
var POLLING_SAFETY_MARGIN_MS = 3e3;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { submit, get } from './chunk-
|
|
1
|
+
import { submit, get } from './chunk-7TB5U7RK.js';
|
|
2
2
|
import './chunk-K2BQQ445.js';
|
|
3
|
-
import { newPooledCredential, CredentialPool, withCredentialPool } from './chunk-
|
|
4
|
-
import { createSemaphore } from './chunk-
|
|
3
|
+
import { newPooledCredential, CredentialPool, withCredentialPool } from './chunk-DHVNJYTO.js';
|
|
4
|
+
import { createSemaphore } from './chunk-ZSJPRPN7.js';
|
|
5
5
|
import './chunk-2XLKLVVR.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import { ConfigurationError, TheokitAgentError } from './chunk-
|
|
9
|
-
import { diag } from './chunk-
|
|
6
|
+
import './chunk-JJZ4NIAG.js';
|
|
7
|
+
import './chunk-CHVSMEKM.js';
|
|
8
|
+
import { ConfigurationError, TheokitAgentError } from './chunk-HI4ZW62S.js';
|
|
9
|
+
import { diag } from './chunk-4X3SBHPK.js';
|
|
10
10
|
import { randomUUID } from 'crypto';
|
|
11
11
|
|
|
12
12
|
function validateBatchInput(prompts, options) {
|
|
@@ -237,5 +237,5 @@ function buildPoolsFromApiKeys(apiKeys, strategy) {
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
export { batchImpl, validateBatchInput };
|
|
240
|
-
//# sourceMappingURL=batch-
|
|
241
|
-
//# sourceMappingURL=batch-
|
|
240
|
+
//# sourceMappingURL=batch-NLIS4QTW.js.map
|
|
241
|
+
//# sourceMappingURL=batch-NLIS4QTW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/batch.ts"],"names":[],"mappings":"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","file":"batch-OUF4N2TM.js","sourcesContent":["/**\n * `Agent.batch(prompts, options)` core (ADRs D134-D140).\n *\n * Fans out N prompts via bounded concurrency, isolates failures per-prompt,\n * preserves input order in the result array, supports streaming callbacks\n * + AbortSignal. The credential pool (D131) is shared across all\n * in-flight agents via `withCredentialPool` ALS scope (EC-A fix).\n *\n * @internal\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { ConfigurationError, TheokitAgentError } from \"./errors.js\";\nimport { diag } from \"./internal/diagnostics.js\";\nimport { CredentialPool, newPooledCredential } from \"./internal/llm/credential-pool.js\";\nimport { withCredentialPool } from \"./internal/llm/credential-pool-context.js\";\nimport type { CredentialPoolStrategy } from \"./internal/llm/credential-pool-types.js\";\nimport { createSemaphore } from \"./internal/runtime/concurrency/async-semaphore.js\";\nimport { get as taskRegistryGet, submit as taskRegistrySubmit } from \"./internal/task/registry.js\";\nimport type { AgentOptions, SDKAgent } from \"./types/agent.js\";\nimport type { BatchItem, BatchOptions, BatchProgress, BatchResult } from \"./types/batch.js\";\n\n/** DI contract — keeps batch.ts cycle-free from agent.ts. @internal */\ninterface BatchDeps {\n create: (options: AgentOptions) => Promise<SDKAgent>;\n}\n\n/**\n * Pre-flight boundary validation for `Agent.batch` (arch-review Gap 3).\n *\n * Mirrors the in-repo `validateAgentOptions` / `validateCronExpression`\n * pattern: throws `ConfigurationError` with a stable code on the first\n * violation, returns silently otherwise. Pure — no I/O.\n *\n * Rules:\n * - `concurrency`, when provided, must be a positive integer (rejects\n * 0/negative/non-integer/NaN/Infinity). Previously this was caught only\n * incidentally deep inside `createSemaphore` with a leaky \"permits\"\n * message, AND after task wrapping (dangling Task on invalid input).\n * - every prompt item must carry a non-empty string prompt. Previously\n * `normalizeItem` passed `prompt: \"\"` / non-string straight to\n * `agent.send`. (Whitespace-only strings are intentionally NOT rejected —\n * an empty string is a structural error; judging content is not this\n * validator's job, and the repo's property tests treat any length>=1\n * string as a valid prompt.)\n *\n * @internal\n */\nexport function validateBatchInput(\n prompts: ReadonlyArray<string | BatchItem>,\n options: BatchOptions,\n): void {\n const { concurrency } = options;\n if (concurrency !== undefined && (!Number.isInteger(concurrency) || concurrency < 1)) {\n throw new ConfigurationError(\n `Agent.batch concurrency must be a positive integer, got ${concurrency}`,\n { code: \"invalid_concurrency\" },\n );\n }\n for (let i = 0; i < prompts.length; i++) {\n const item = prompts[i];\n const prompt = typeof item === \"string\" ? item : item?.prompt;\n if (typeof prompt !== \"string\" || prompt.length === 0) {\n throw new ConfigurationError(`Agent.batch prompt at index ${i} must be a non-empty string`, {\n code: \"invalid_batch_item\",\n });\n }\n }\n}\n\n/**\n * Run N prompts in parallel with bounded concurrency.\n *\n * @internal\n */\nexport async function batchImpl(\n prompts: ReadonlyArray<string | BatchItem>,\n options: BatchOptions,\n deps: BatchDeps,\n): Promise<BatchResult[]> {\n // EC-1: empty array → no work, no agents created.\n if (prompts.length === 0) return [];\n\n // Pre-flight boundary validation (arch-review Gap 3). MUST run before pool\n // build AND before wrapBatchAsTask so invalid input never registers a\n // dangling Task or builds a credential pool (fail-fast, Rule 8).\n validateBatchInput(prompts, options);\n\n // EC-A fix: build credential pools ONCE and share via AsyncLocalStorage.\n // Without this each Agent.create() would build its own pool from identical\n // apiKeys → 4× rate-limit wastage per concurrency window.\n const sharedPools = buildPoolsFromApiKeys(\n options.providers?.apiKeys,\n options.providers?.credentialPoolStrategy,\n );\n const exec = (): Promise<BatchResult[]> => runBatch(prompts, options, deps);\n const withPool = (): Promise<BatchResult[]> =>\n sharedPools.size > 0 ? withCredentialPool(sharedPools, exec) : exec();\n // T3.3: opt-in Task wrapping (ADRs D363, D374). Register the whole\n // batch as a single Task (kind=\"batch\") with `b-` prefix (D368/EC-5).\n if (options.task !== undefined) {\n return wrapBatchAsTask(prompts.length, options.task, withPool);\n }\n return withPool();\n}\n\nasync function wrapBatchAsTask(\n total: number,\n taskOpt: true | { id?: string; meta?: Record<string, unknown> },\n exec: () => Promise<BatchResult[]>,\n): Promise<BatchResult[]> {\n const opts = taskOpt === true ? {} : taskOpt;\n const id = opts.id ?? `b-${randomUUID()}`;\n const meta: Record<string, unknown> = {\n total,\n ...(opts.meta ?? {}),\n };\n let results: BatchResult[] = [];\n await taskRegistrySubmit({\n kind: \"batch\",\n work: async (ctx) => {\n results = await exec();\n const succeeded = results.filter((r) => r.ok).length;\n const failed = results.length - succeeded;\n ctx.emit({ total: results.length, succeeded, failed });\n return { total: results.length, succeeded, failed };\n },\n id,\n meta,\n allowReservedPrefix: true,\n });\n // submit returns immediately with a queued handle. Wait for terminal.\n for (let i = 0; i < 5000; i++) {\n const h = await taskRegistryGet(id);\n if (h?.state === \"finished\" || h?.state === \"error\" || h?.state === \"cancelled\") break;\n await new Promise((r) => setTimeout(r, 5));\n }\n return results;\n}\n\nasync function runBatch(\n prompts: ReadonlyArray<string | BatchItem>,\n options: BatchOptions,\n deps: BatchDeps,\n): Promise<BatchResult[]> {\n const requested = options.concurrency ?? 4;\n // createSemaphore throws on invalid (EC-2).\n // EC-3: cap to prompts.length to avoid idle workers.\n const effective = Math.min(requested, prompts.length);\n const semaphore = createSemaphore(effective);\n const items = prompts.map(normalizeItem);\n const results: BatchResult[] = new Array(items.length);\n const counters = { completed: 0, failed: 0 };\n let aborted = false;\n\n const onAbort = (): void => {\n aborted = true;\n };\n options.signal?.addEventListener(\"abort\", onAbort);\n // EC-C: pre-aborted signal — treat as already-aborted before any work.\n if (options.signal?.aborted === true) aborted = true;\n\n try {\n await Promise.all(\n items.map(async (item, index) => {\n const release = await semaphore.acquire();\n try {\n if (aborted) {\n results[index] = abortResult(item, index, options.signal);\n } else {\n results[index] = await runOne(item, index, options, deps);\n }\n } finally {\n release();\n }\n if (results[index].ok) counters.completed += 1;\n else counters.failed += 1;\n await safeCallResult(options.onResult, results[index]);\n safeCallProgress(options.onProgress, {\n total: items.length,\n completed: counters.completed,\n failed: counters.failed,\n inFlight: semaphore.inFlight(),\n pending: Math.max(0, semaphore.pending() - semaphore.inFlight()),\n });\n }),\n );\n } finally {\n options.signal?.removeEventListener(\"abort\", onAbort);\n }\n\n return options.filter ? results.filter(options.filter) : results;\n}\n\nasync function runOne(\n item: BatchItem,\n index: number,\n options: BatchOptions,\n deps: BatchDeps,\n): Promise<BatchResult> {\n const t0 = Date.now();\n const agentOpts = buildAgentOptions(item, options);\n\n try {\n const agent = await deps.create(agentOpts);\n try {\n const run = await agent.send(item.prompt);\n const result = await run.wait();\n return {\n ok: true,\n index,\n prompt: item.prompt,\n result,\n ...(item.metadata !== undefined ? { metadata: item.metadata } : {}),\n durationMs: Date.now() - t0,\n };\n } finally {\n // EC-8: dispose failure → stderr warn, don't fail the result.\n try {\n await agent.dispose();\n } catch (disposeErr) {\n // theokit#147 — the interceptable channel; a batch run must not write onto a TUI's frame.\n diag(\n `[theokit-sdk] batch: agent.dispose failed for prompt ${index}: ${\n disposeErr instanceof Error ? disposeErr.message : String(disposeErr)\n }\\n`,\n );\n }\n }\n } catch (err) {\n return {\n ok: false,\n index,\n prompt: item.prompt,\n error: toTheokitError(err),\n ...(item.metadata !== undefined ? { metadata: item.metadata } : {}),\n durationMs: Date.now() - t0,\n };\n }\n}\n\nfunction buildAgentOptions(item: BatchItem, options: BatchOptions): AgentOptions {\n const {\n concurrency: _c,\n filter: _f,\n onResult: _or,\n onProgress: _op,\n signal: _s,\n task: _t,\n ...rest\n } = options;\n void _c;\n void _f;\n void _or;\n void _op;\n void _s;\n void _t;\n const agentOpts = rest as AgentOptions;\n if (item.systemPrompt !== undefined) {\n return { ...agentOpts, systemPrompt: item.systemPrompt };\n }\n return agentOpts;\n}\n\nfunction normalizeItem(promptOrItem: string | BatchItem): BatchItem {\n return typeof promptOrItem === \"string\" ? { prompt: promptOrItem } : promptOrItem;\n}\n\nfunction abortResult(item: BatchItem, index: number, signal?: AbortSignal): BatchResult {\n // EC-D: propagate signal.reason when set (preserves caller's error).\n let error: TheokitAgentError;\n if (signal?.reason instanceof TheokitAgentError) {\n error = signal.reason;\n } else if (signal?.reason instanceof Error) {\n error = new TheokitAgentError(signal.reason.message, {\n code: \"aborted\",\n cause: signal.reason,\n });\n } else {\n error = new TheokitAgentError(\"Batch aborted via AbortSignal\", { code: \"aborted\" });\n }\n return {\n ok: false,\n index,\n prompt: item.prompt,\n error,\n ...(item.metadata !== undefined ? { metadata: item.metadata } : {}),\n durationMs: 0,\n };\n}\n\nfunction toTheokitError(err: unknown): TheokitAgentError {\n if (err instanceof TheokitAgentError) return err;\n if (err instanceof Error) {\n return new TheokitAgentError(err.message, { code: \"unknown\", cause: err });\n }\n return new TheokitAgentError(String(err), { code: \"unknown\" });\n}\n\nasync function safeCallResult(cb: BatchOptions[\"onResult\"], result: BatchResult): Promise<void> {\n if (cb === undefined) return;\n try {\n await cb(result);\n } catch (err) {\n diag(\n `[theokit-sdk] batch: onResult callback threw: ${\n err instanceof Error ? err.message : String(err)\n }\\n`,\n );\n }\n}\n\nfunction safeCallProgress(cb: BatchOptions[\"onProgress\"], progress: BatchProgress): void {\n if (cb === undefined) return;\n try {\n cb(progress);\n } catch (err) {\n diag(\n `[theokit-sdk] batch: onProgress callback threw: ${\n err instanceof Error ? err.message : String(err)\n }\\n`,\n );\n }\n}\n\n/**\n * EC-A: construct shared pools from options.apiKeys. Empty/invalid → empty Map.\n *\n * @internal\n */\nfunction buildPoolsFromApiKeys(\n apiKeys: Record<string, string[]> | undefined,\n strategy: Record<string, CredentialPoolStrategy> | undefined,\n): Map<string, CredentialPool> {\n const pools = new Map<string, CredentialPool>();\n if (apiKeys === undefined) return pools;\n for (const [provider, keys] of Object.entries(apiKeys)) {\n if (!Array.isArray(keys)) continue;\n const filtered = keys.filter((k): k is string => typeof k === \"string\" && k.length > 0);\n if (filtered.length < 2) continue; // 1-key pools aren't pools\n const entries = filtered.map((token, i) =>\n newPooledCredential({ provider, accessToken: token, priority: i, source: \"manual\" }),\n );\n pools.set(\n provider,\n new CredentialPool(provider, entries, strategy?.[provider] ?? \"fill_first\"),\n );\n }\n return pools;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/batch.ts"],"names":[],"mappings":"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","file":"batch-NLIS4QTW.js","sourcesContent":["/**\n * `Agent.batch(prompts, options)` core (ADRs D134-D140).\n *\n * Fans out N prompts via bounded concurrency, isolates failures per-prompt,\n * preserves input order in the result array, supports streaming callbacks\n * + AbortSignal. The credential pool (D131) is shared across all\n * in-flight agents via `withCredentialPool` ALS scope (EC-A fix).\n *\n * @internal\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { ConfigurationError, TheokitAgentError } from \"./errors.js\";\nimport { diag } from \"./internal/diagnostics.js\";\nimport { CredentialPool, newPooledCredential } from \"./internal/llm/credential-pool.js\";\nimport { withCredentialPool } from \"./internal/llm/credential-pool-context.js\";\nimport type { CredentialPoolStrategy } from \"./internal/llm/credential-pool-types.js\";\nimport { createSemaphore } from \"./internal/runtime/concurrency/async-semaphore.js\";\nimport { get as taskRegistryGet, submit as taskRegistrySubmit } from \"./internal/task/registry.js\";\nimport type { AgentOptions, SDKAgent } from \"./types/agent.js\";\nimport type { BatchItem, BatchOptions, BatchProgress, BatchResult } from \"./types/batch.js\";\n\n/** DI contract — keeps batch.ts cycle-free from agent.ts. @internal */\ninterface BatchDeps {\n create: (options: AgentOptions) => Promise<SDKAgent>;\n}\n\n/**\n * Pre-flight boundary validation for `Agent.batch` (arch-review Gap 3).\n *\n * Mirrors the in-repo `validateAgentOptions` / `validateCronExpression`\n * pattern: throws `ConfigurationError` with a stable code on the first\n * violation, returns silently otherwise. Pure — no I/O.\n *\n * Rules:\n * - `concurrency`, when provided, must be a positive integer (rejects\n * 0/negative/non-integer/NaN/Infinity). Previously this was caught only\n * incidentally deep inside `createSemaphore` with a leaky \"permits\"\n * message, AND after task wrapping (dangling Task on invalid input).\n * - every prompt item must carry a non-empty string prompt. Previously\n * `normalizeItem` passed `prompt: \"\"` / non-string straight to\n * `agent.send`. (Whitespace-only strings are intentionally NOT rejected —\n * an empty string is a structural error; judging content is not this\n * validator's job, and the repo's property tests treat any length>=1\n * string as a valid prompt.)\n *\n * @internal\n */\nexport function validateBatchInput(\n prompts: ReadonlyArray<string | BatchItem>,\n options: BatchOptions,\n): void {\n const { concurrency } = options;\n if (concurrency !== undefined && (!Number.isInteger(concurrency) || concurrency < 1)) {\n throw new ConfigurationError(\n `Agent.batch concurrency must be a positive integer, got ${concurrency}`,\n { code: \"invalid_concurrency\" },\n );\n }\n for (let i = 0; i < prompts.length; i++) {\n const item = prompts[i];\n const prompt = typeof item === \"string\" ? item : item?.prompt;\n if (typeof prompt !== \"string\" || prompt.length === 0) {\n throw new ConfigurationError(`Agent.batch prompt at index ${i} must be a non-empty string`, {\n code: \"invalid_batch_item\",\n });\n }\n }\n}\n\n/**\n * Run N prompts in parallel with bounded concurrency.\n *\n * @internal\n */\nexport async function batchImpl(\n prompts: ReadonlyArray<string | BatchItem>,\n options: BatchOptions,\n deps: BatchDeps,\n): Promise<BatchResult[]> {\n // EC-1: empty array → no work, no agents created.\n if (prompts.length === 0) return [];\n\n // Pre-flight boundary validation (arch-review Gap 3). MUST run before pool\n // build AND before wrapBatchAsTask so invalid input never registers a\n // dangling Task or builds a credential pool (fail-fast, Rule 8).\n validateBatchInput(prompts, options);\n\n // EC-A fix: build credential pools ONCE and share via AsyncLocalStorage.\n // Without this each Agent.create() would build its own pool from identical\n // apiKeys → 4× rate-limit wastage per concurrency window.\n const sharedPools = buildPoolsFromApiKeys(\n options.providers?.apiKeys,\n options.providers?.credentialPoolStrategy,\n );\n const exec = (): Promise<BatchResult[]> => runBatch(prompts, options, deps);\n const withPool = (): Promise<BatchResult[]> =>\n sharedPools.size > 0 ? withCredentialPool(sharedPools, exec) : exec();\n // T3.3: opt-in Task wrapping (ADRs D363, D374). Register the whole\n // batch as a single Task (kind=\"batch\") with `b-` prefix (D368/EC-5).\n if (options.task !== undefined) {\n return wrapBatchAsTask(prompts.length, options.task, withPool);\n }\n return withPool();\n}\n\nasync function wrapBatchAsTask(\n total: number,\n taskOpt: true | { id?: string; meta?: Record<string, unknown> },\n exec: () => Promise<BatchResult[]>,\n): Promise<BatchResult[]> {\n const opts = taskOpt === true ? {} : taskOpt;\n const id = opts.id ?? `b-${randomUUID()}`;\n const meta: Record<string, unknown> = {\n total,\n ...(opts.meta ?? {}),\n };\n let results: BatchResult[] = [];\n await taskRegistrySubmit({\n kind: \"batch\",\n work: async (ctx) => {\n results = await exec();\n const succeeded = results.filter((r) => r.ok).length;\n const failed = results.length - succeeded;\n ctx.emit({ total: results.length, succeeded, failed });\n return { total: results.length, succeeded, failed };\n },\n id,\n meta,\n allowReservedPrefix: true,\n });\n // submit returns immediately with a queued handle. Wait for terminal.\n for (let i = 0; i < 5000; i++) {\n const h = await taskRegistryGet(id);\n if (h?.state === \"finished\" || h?.state === \"error\" || h?.state === \"cancelled\") break;\n await new Promise((r) => setTimeout(r, 5));\n }\n return results;\n}\n\nasync function runBatch(\n prompts: ReadonlyArray<string | BatchItem>,\n options: BatchOptions,\n deps: BatchDeps,\n): Promise<BatchResult[]> {\n const requested = options.concurrency ?? 4;\n // createSemaphore throws on invalid (EC-2).\n // EC-3: cap to prompts.length to avoid idle workers.\n const effective = Math.min(requested, prompts.length);\n const semaphore = createSemaphore(effective);\n const items = prompts.map(normalizeItem);\n const results: BatchResult[] = new Array(items.length);\n const counters = { completed: 0, failed: 0 };\n let aborted = false;\n\n const onAbort = (): void => {\n aborted = true;\n };\n options.signal?.addEventListener(\"abort\", onAbort);\n // EC-C: pre-aborted signal — treat as already-aborted before any work.\n if (options.signal?.aborted === true) aborted = true;\n\n try {\n await Promise.all(\n items.map(async (item, index) => {\n const release = await semaphore.acquire();\n try {\n if (aborted) {\n results[index] = abortResult(item, index, options.signal);\n } else {\n results[index] = await runOne(item, index, options, deps);\n }\n } finally {\n release();\n }\n if (results[index].ok) counters.completed += 1;\n else counters.failed += 1;\n await safeCallResult(options.onResult, results[index]);\n safeCallProgress(options.onProgress, {\n total: items.length,\n completed: counters.completed,\n failed: counters.failed,\n inFlight: semaphore.inFlight(),\n pending: Math.max(0, semaphore.pending() - semaphore.inFlight()),\n });\n }),\n );\n } finally {\n options.signal?.removeEventListener(\"abort\", onAbort);\n }\n\n return options.filter ? results.filter(options.filter) : results;\n}\n\nasync function runOne(\n item: BatchItem,\n index: number,\n options: BatchOptions,\n deps: BatchDeps,\n): Promise<BatchResult> {\n const t0 = Date.now();\n const agentOpts = buildAgentOptions(item, options);\n\n try {\n const agent = await deps.create(agentOpts);\n try {\n const run = await agent.send(item.prompt);\n const result = await run.wait();\n return {\n ok: true,\n index,\n prompt: item.prompt,\n result,\n ...(item.metadata !== undefined ? { metadata: item.metadata } : {}),\n durationMs: Date.now() - t0,\n };\n } finally {\n // EC-8: dispose failure → stderr warn, don't fail the result.\n try {\n await agent.dispose();\n } catch (disposeErr) {\n // theokit#147 — the interceptable channel; a batch run must not write onto a TUI's frame.\n diag(\n `[theokit-sdk] batch: agent.dispose failed for prompt ${index}: ${\n disposeErr instanceof Error ? disposeErr.message : String(disposeErr)\n }\\n`,\n );\n }\n }\n } catch (err) {\n return {\n ok: false,\n index,\n prompt: item.prompt,\n error: toTheokitError(err),\n ...(item.metadata !== undefined ? { metadata: item.metadata } : {}),\n durationMs: Date.now() - t0,\n };\n }\n}\n\nfunction buildAgentOptions(item: BatchItem, options: BatchOptions): AgentOptions {\n const {\n concurrency: _c,\n filter: _f,\n onResult: _or,\n onProgress: _op,\n signal: _s,\n task: _t,\n ...rest\n } = options;\n void _c;\n void _f;\n void _or;\n void _op;\n void _s;\n void _t;\n const agentOpts = rest as AgentOptions;\n if (item.systemPrompt !== undefined) {\n return { ...agentOpts, systemPrompt: item.systemPrompt };\n }\n return agentOpts;\n}\n\nfunction normalizeItem(promptOrItem: string | BatchItem): BatchItem {\n return typeof promptOrItem === \"string\" ? { prompt: promptOrItem } : promptOrItem;\n}\n\nfunction abortResult(item: BatchItem, index: number, signal?: AbortSignal): BatchResult {\n // EC-D: propagate signal.reason when set (preserves caller's error).\n let error: TheokitAgentError;\n if (signal?.reason instanceof TheokitAgentError) {\n error = signal.reason;\n } else if (signal?.reason instanceof Error) {\n error = new TheokitAgentError(signal.reason.message, {\n code: \"aborted\",\n cause: signal.reason,\n });\n } else {\n error = new TheokitAgentError(\"Batch aborted via AbortSignal\", { code: \"aborted\" });\n }\n return {\n ok: false,\n index,\n prompt: item.prompt,\n error,\n ...(item.metadata !== undefined ? { metadata: item.metadata } : {}),\n durationMs: 0,\n };\n}\n\nfunction toTheokitError(err: unknown): TheokitAgentError {\n if (err instanceof TheokitAgentError) return err;\n if (err instanceof Error) {\n return new TheokitAgentError(err.message, { code: \"unknown\", cause: err });\n }\n return new TheokitAgentError(String(err), { code: \"unknown\" });\n}\n\nasync function safeCallResult(cb: BatchOptions[\"onResult\"], result: BatchResult): Promise<void> {\n if (cb === undefined) return;\n try {\n await cb(result);\n } catch (err) {\n diag(\n `[theokit-sdk] batch: onResult callback threw: ${\n err instanceof Error ? err.message : String(err)\n }\\n`,\n );\n }\n}\n\nfunction safeCallProgress(cb: BatchOptions[\"onProgress\"], progress: BatchProgress): void {\n if (cb === undefined) return;\n try {\n cb(progress);\n } catch (err) {\n diag(\n `[theokit-sdk] batch: onProgress callback threw: ${\n err instanceof Error ? err.message : String(err)\n }\\n`,\n );\n }\n}\n\n/**\n * EC-A: construct shared pools from options.apiKeys. Empty/invalid → empty Map.\n *\n * @internal\n */\nfunction buildPoolsFromApiKeys(\n apiKeys: Record<string, string[]> | undefined,\n strategy: Record<string, CredentialPoolStrategy> | undefined,\n): Map<string, CredentialPool> {\n const pools = new Map<string, CredentialPool>();\n if (apiKeys === undefined) return pools;\n for (const [provider, keys] of Object.entries(apiKeys)) {\n if (!Array.isArray(keys)) continue;\n const filtered = keys.filter((k): k is string => typeof k === \"string\" && k.length > 0);\n if (filtered.length < 2) continue; // 1-key pools aren't pools\n const entries = filtered.map((token, i) =>\n newPooledCredential({ provider, accessToken: token, priority: i, source: \"manual\" }),\n );\n pools.set(\n provider,\n new CredentialPool(provider, entries, strategy?.[provider] ?? \"fill_first\"),\n );\n }\n return pools;\n}\n"]}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk6DCTL32L_cjs = require('./chunk-6DCTL32L.cjs');
|
|
4
4
|
require('./chunk-BUUUWQMB.cjs');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var chunkRAACTJ7C_cjs = require('./chunk-RAACTJ7C.cjs');
|
|
6
|
+
var chunkNFATC6ZF_cjs = require('./chunk-NFATC6ZF.cjs');
|
|
7
7
|
require('./chunk-YLQQX5W2.cjs');
|
|
8
|
-
require('./chunk-
|
|
9
|
-
require('./chunk-
|
|
10
|
-
var
|
|
11
|
-
var
|
|
8
|
+
require('./chunk-7HQVDLFI.cjs');
|
|
9
|
+
require('./chunk-2CFEET3Y.cjs');
|
|
10
|
+
var chunk2YGIBOUH_cjs = require('./chunk-2YGIBOUH.cjs');
|
|
11
|
+
var chunkSXSPMRSV_cjs = require('./chunk-SXSPMRSV.cjs');
|
|
12
12
|
var crypto = require('crypto');
|
|
13
13
|
|
|
14
14
|
function validateBatchInput(prompts, options) {
|
|
15
15
|
const { concurrency } = options;
|
|
16
16
|
if (concurrency !== void 0 && (!Number.isInteger(concurrency) || concurrency < 1)) {
|
|
17
|
-
throw new
|
|
17
|
+
throw new chunk2YGIBOUH_cjs.ConfigurationError(
|
|
18
18
|
`Agent.batch concurrency must be a positive integer, got ${concurrency}`,
|
|
19
19
|
{ code: "invalid_concurrency" }
|
|
20
20
|
);
|
|
@@ -23,7 +23,7 @@ function validateBatchInput(prompts, options) {
|
|
|
23
23
|
const item = prompts[i];
|
|
24
24
|
const prompt = typeof item === "string" ? item : item?.prompt;
|
|
25
25
|
if (typeof prompt !== "string" || prompt.length === 0) {
|
|
26
|
-
throw new
|
|
26
|
+
throw new chunk2YGIBOUH_cjs.ConfigurationError(`Agent.batch prompt at index ${i} must be a non-empty string`, {
|
|
27
27
|
code: "invalid_batch_item"
|
|
28
28
|
});
|
|
29
29
|
}
|
|
@@ -37,7 +37,7 @@ async function batchImpl(prompts, options, deps) {
|
|
|
37
37
|
options.providers?.credentialPoolStrategy
|
|
38
38
|
);
|
|
39
39
|
const exec = () => runBatch(prompts, options, deps);
|
|
40
|
-
const withPool = () => sharedPools.size > 0 ?
|
|
40
|
+
const withPool = () => sharedPools.size > 0 ? chunkRAACTJ7C_cjs.withCredentialPool(sharedPools, exec) : exec();
|
|
41
41
|
if (options.task !== void 0) {
|
|
42
42
|
return wrapBatchAsTask(prompts.length, options.task, withPool);
|
|
43
43
|
}
|
|
@@ -51,7 +51,7 @@ async function wrapBatchAsTask(total, taskOpt, exec) {
|
|
|
51
51
|
...opts.meta ?? {}
|
|
52
52
|
};
|
|
53
53
|
let results = [];
|
|
54
|
-
await
|
|
54
|
+
await chunk6DCTL32L_cjs.submit({
|
|
55
55
|
kind: "batch",
|
|
56
56
|
work: async (ctx) => {
|
|
57
57
|
results = await exec();
|
|
@@ -65,7 +65,7 @@ async function wrapBatchAsTask(total, taskOpt, exec) {
|
|
|
65
65
|
allowReservedPrefix: true
|
|
66
66
|
});
|
|
67
67
|
for (let i = 0; i < 5e3; i++) {
|
|
68
|
-
const h = await
|
|
68
|
+
const h = await chunk6DCTL32L_cjs.get(id);
|
|
69
69
|
if (h?.state === "finished" || h?.state === "error" || h?.state === "cancelled") break;
|
|
70
70
|
await new Promise((r) => setTimeout(r, 5));
|
|
71
71
|
}
|
|
@@ -74,7 +74,7 @@ async function wrapBatchAsTask(total, taskOpt, exec) {
|
|
|
74
74
|
async function runBatch(prompts, options, deps) {
|
|
75
75
|
const requested = options.concurrency ?? 4;
|
|
76
76
|
const effective = Math.min(requested, prompts.length);
|
|
77
|
-
const semaphore =
|
|
77
|
+
const semaphore = chunkNFATC6ZF_cjs.createSemaphore(effective);
|
|
78
78
|
const items = prompts.map(normalizeItem);
|
|
79
79
|
const results = new Array(items.length);
|
|
80
80
|
const counters = { completed: 0, failed: 0 };
|
|
@@ -134,7 +134,7 @@ async function runOne(item, index, options, deps) {
|
|
|
134
134
|
try {
|
|
135
135
|
await agent.dispose();
|
|
136
136
|
} catch (disposeErr) {
|
|
137
|
-
|
|
137
|
+
chunkSXSPMRSV_cjs.diag(
|
|
138
138
|
`[theokit-sdk] batch: agent.dispose failed for prompt ${index}: ${disposeErr instanceof Error ? disposeErr.message : String(disposeErr)}
|
|
139
139
|
`
|
|
140
140
|
);
|
|
@@ -172,15 +172,15 @@ function normalizeItem(promptOrItem) {
|
|
|
172
172
|
}
|
|
173
173
|
function abortResult(item, index, signal) {
|
|
174
174
|
let error;
|
|
175
|
-
if (signal?.reason instanceof
|
|
175
|
+
if (signal?.reason instanceof chunk2YGIBOUH_cjs.TheokitAgentError) {
|
|
176
176
|
error = signal.reason;
|
|
177
177
|
} else if (signal?.reason instanceof Error) {
|
|
178
|
-
error = new
|
|
178
|
+
error = new chunk2YGIBOUH_cjs.TheokitAgentError(signal.reason.message, {
|
|
179
179
|
code: "aborted",
|
|
180
180
|
cause: signal.reason
|
|
181
181
|
});
|
|
182
182
|
} else {
|
|
183
|
-
error = new
|
|
183
|
+
error = new chunk2YGIBOUH_cjs.TheokitAgentError("Batch aborted via AbortSignal", { code: "aborted" });
|
|
184
184
|
}
|
|
185
185
|
return {
|
|
186
186
|
ok: false,
|
|
@@ -192,18 +192,18 @@ function abortResult(item, index, signal) {
|
|
|
192
192
|
};
|
|
193
193
|
}
|
|
194
194
|
function toTheokitError(err) {
|
|
195
|
-
if (err instanceof
|
|
195
|
+
if (err instanceof chunk2YGIBOUH_cjs.TheokitAgentError) return err;
|
|
196
196
|
if (err instanceof Error) {
|
|
197
|
-
return new
|
|
197
|
+
return new chunk2YGIBOUH_cjs.TheokitAgentError(err.message, { code: "unknown", cause: err });
|
|
198
198
|
}
|
|
199
|
-
return new
|
|
199
|
+
return new chunk2YGIBOUH_cjs.TheokitAgentError(String(err), { code: "unknown" });
|
|
200
200
|
}
|
|
201
201
|
async function safeCallResult(cb, result) {
|
|
202
202
|
if (cb === void 0) return;
|
|
203
203
|
try {
|
|
204
204
|
await cb(result);
|
|
205
205
|
} catch (err) {
|
|
206
|
-
|
|
206
|
+
chunkSXSPMRSV_cjs.diag(
|
|
207
207
|
`[theokit-sdk] batch: onResult callback threw: ${err instanceof Error ? err.message : String(err)}
|
|
208
208
|
`
|
|
209
209
|
);
|
|
@@ -214,7 +214,7 @@ function safeCallProgress(cb, progress) {
|
|
|
214
214
|
try {
|
|
215
215
|
cb(progress);
|
|
216
216
|
} catch (err) {
|
|
217
|
-
|
|
217
|
+
chunkSXSPMRSV_cjs.diag(
|
|
218
218
|
`[theokit-sdk] batch: onProgress callback threw: ${err instanceof Error ? err.message : String(err)}
|
|
219
219
|
`
|
|
220
220
|
);
|
|
@@ -228,11 +228,11 @@ function buildPoolsFromApiKeys(apiKeys, strategy) {
|
|
|
228
228
|
const filtered = keys.filter((k) => typeof k === "string" && k.length > 0);
|
|
229
229
|
if (filtered.length < 2) continue;
|
|
230
230
|
const entries = filtered.map(
|
|
231
|
-
(token, i) =>
|
|
231
|
+
(token, i) => chunkRAACTJ7C_cjs.newPooledCredential({ provider, accessToken: token, priority: i, source: "manual" })
|
|
232
232
|
);
|
|
233
233
|
pools.set(
|
|
234
234
|
provider,
|
|
235
|
-
new
|
|
235
|
+
new chunkRAACTJ7C_cjs.CredentialPool(provider, entries, strategy?.[provider] ?? "fill_first")
|
|
236
236
|
);
|
|
237
237
|
}
|
|
238
238
|
return pools;
|
|
@@ -240,5 +240,5 @@ function buildPoolsFromApiKeys(apiKeys, strategy) {
|
|
|
240
240
|
|
|
241
241
|
exports.batchImpl = batchImpl;
|
|
242
242
|
exports.validateBatchInput = validateBatchInput;
|
|
243
|
-
//# sourceMappingURL=batch-
|
|
244
|
-
//# sourceMappingURL=batch-
|
|
243
|
+
//# sourceMappingURL=batch-WQ3AJCDV.cjs.map
|
|
244
|
+
//# sourceMappingURL=batch-WQ3AJCDV.cjs.map
|