@theokit/sdk 4.53.1 → 4.55.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/CHANGELOG.md +1184 -0
- package/README.md +9 -4
- package/dist/a2a/agent-mailbox.d.cts +27 -0
- package/dist/a2a/agent-mailbox.d.ts +27 -0
- package/dist/a2a/index.cjs +9 -4
- package/dist/a2a/index.cjs.map +1 -1
- package/dist/a2a/index.js +7 -2
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/message-bus.d.cts +39 -0
- package/dist/a2a/message-bus.d.ts +39 -0
- package/dist/a2a/subagent.d.cts +68 -7
- package/dist/a2a/subagent.d.ts +68 -7
- package/dist/a2a/types.d.cts +26 -0
- package/dist/a2a/types.d.ts +26 -0
- package/dist/{agent-B9HXlwID.d.ts → agent-D3Xr_-6Z.d.cts} +245 -850
- package/dist/{agent-nLqeXKIX.d.cts → agent-DIu6FooJ.d.ts} +245 -850
- package/dist/agent-HDEVVUBS.js +52 -0
- package/dist/{agent-FFVV4U5N.js.map → agent-HDEVVUBS.js.map} +1 -1
- package/dist/agent-R2HOJFZJ.cjs +61 -0
- package/dist/{agent-YLAHVHEH.cjs.map → agent-R2HOJFZJ.cjs.map} +1 -1
- package/dist/agent-builder.d.ts +19 -0
- package/dist/agent-session-store-P6V3FINW.js +7 -0
- package/dist/{agent-session-store-TNCGL5RN.js.map → agent-session-store-P6V3FINW.js.map} +1 -1
- package/dist/agent-session-store-ZJ3JSRS4.cjs +24 -0
- package/dist/{agent-session-store-DUGBAX5V.cjs.map → agent-session-store-ZJ3JSRS4.cjs.map} +1 -1
- package/dist/agent.d.ts +9 -6
- package/dist/auth/index.cjs +52 -35
- package/dist/auth/index.cjs.map +1 -1
- package/dist/auth/index.js +26 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/{batch-UPKN4SG6.js → batch-2TGJMNCJ.js} +14 -13
- package/dist/batch-2TGJMNCJ.js.map +1 -0
- package/dist/{batch-ZEFN5SO7.cjs → batch-ND32UKZS.cjs} +31 -30
- package/dist/batch-ND32UKZS.cjs.map +1 -0
- package/dist/{chunk-TTJ54H3E.cjs → chunk-2ADR2GSO.cjs} +8 -8
- package/dist/chunk-2ADR2GSO.cjs.map +1 -0
- package/dist/chunk-2BDH744Z.js +15 -0
- package/dist/chunk-2BDH744Z.js.map +1 -0
- package/dist/{chunk-VGPXHHF3.cjs → chunk-2C72DXQF.cjs} +63 -27
- package/dist/chunk-2C72DXQF.cjs.map +1 -0
- package/dist/{chunk-4Q4K4WB5.js → chunk-2D34UTDC.js} +20 -4
- package/dist/chunk-2D34UTDC.js.map +1 -0
- package/dist/{chunk-UFIXH26P.js → chunk-2QKTVKH3.js} +4 -4
- package/dist/{chunk-UFIXH26P.js.map → chunk-2QKTVKH3.js.map} +1 -1
- package/dist/{chunk-GBBDINFK.js → chunk-3E77SX4H.js} +4 -4
- package/dist/{chunk-GBBDINFK.js.map → chunk-3E77SX4H.js.map} +1 -1
- package/dist/{chunk-VYHJZVL5.cjs → chunk-3EE6LVWT.cjs} +2 -2
- package/dist/chunk-3EE6LVWT.cjs.map +1 -0
- package/dist/{chunk-5NBUH3NO.js → chunk-3OR54XG4.js} +2 -2
- package/dist/{chunk-C6Y6CWYD.cjs.map → chunk-3OR54XG4.js.map} +1 -1
- package/dist/{chunk-ZN2DGEY3.cjs → chunk-3YJNUKYN.cjs} +15 -15
- package/dist/{chunk-ZN2DGEY3.cjs.map → chunk-3YJNUKYN.cjs.map} +1 -1
- package/dist/{chunk-POWRZSK4.js → chunk-44JAAH4X.js} +3 -3
- package/dist/{chunk-POWRZSK4.js.map → chunk-44JAAH4X.js.map} +1 -1
- package/dist/{chunk-SSDD676S.js → chunk-44MBDIHG.js} +4 -4
- package/dist/{chunk-SSDD676S.js.map → chunk-44MBDIHG.js.map} +1 -1
- package/dist/{chunk-OY7O3Q6R.js → chunk-4ERPXIVB.js} +5 -5
- package/dist/{chunk-OY7O3Q6R.js.map → chunk-4ERPXIVB.js.map} +1 -1
- package/dist/{chunk-3BK6YR5P.cjs → chunk-4I55V454.cjs} +4 -4
- package/dist/{chunk-3BK6YR5P.cjs.map → chunk-4I55V454.cjs.map} +1 -1
- package/dist/{chunk-B4YA6BRS.cjs → chunk-4O5TGQBW.cjs} +30 -7
- package/dist/chunk-4O5TGQBW.cjs.map +1 -0
- package/dist/{chunk-4JBHSLQO.cjs → chunk-4OTIXDMU.cjs} +2 -2
- package/dist/{chunk-4JBHSLQO.cjs.map → chunk-4OTIXDMU.cjs.map} +1 -1
- package/dist/{chunk-C6Y6CWYD.cjs → chunk-52NKC5HT.cjs} +2 -2
- package/dist/chunk-52NKC5HT.cjs.map +1 -0
- package/dist/{chunk-665SFFFR.cjs → chunk-53CBTBWO.cjs} +11 -11
- package/dist/{chunk-665SFFFR.cjs.map → chunk-53CBTBWO.cjs.map} +1 -1
- package/dist/{chunk-FFM3SJTQ.js → chunk-5JLFFPCH.js} +4 -4
- package/dist/{chunk-FFM3SJTQ.js.map → chunk-5JLFFPCH.js.map} +1 -1
- package/dist/{chunk-34XOCZJO.js → chunk-5PHVENFV.js} +3 -3
- package/dist/chunk-5PHVENFV.js.map +1 -0
- package/dist/{chunk-BDTVFIPB.cjs → chunk-5UOVYM3P.cjs} +36 -31
- package/dist/chunk-5UOVYM3P.cjs.map +1 -0
- package/dist/{chunk-VF7X6HDR.cjs → chunk-5USCYPPI.cjs} +15 -15
- package/dist/{chunk-VF7X6HDR.cjs.map → chunk-5USCYPPI.cjs.map} +1 -1
- package/dist/chunk-6HTXPPHK.cjs +18 -0
- package/dist/chunk-6HTXPPHK.cjs.map +1 -0
- package/dist/{chunk-D24WJWN2.js → chunk-AEOZTXVW.js} +3 -3
- package/dist/{chunk-D24WJWN2.js.map → chunk-AEOZTXVW.js.map} +1 -1
- package/dist/{chunk-DGOG5NXR.js → chunk-AG5JPQIY.js} +3 -3
- package/dist/{chunk-DGOG5NXR.js.map → chunk-AG5JPQIY.js.map} +1 -1
- package/dist/{chunk-BFYGJGC5.js → chunk-AQLGBKNT.js} +3 -3
- package/dist/chunk-AQLGBKNT.js.map +1 -0
- package/dist/{chunk-7W7ZWMLQ.js → chunk-AWO27VRZ.js} +3 -3
- package/dist/chunk-AWO27VRZ.js.map +1 -0
- package/dist/{chunk-VYCKUKPA.cjs → chunk-B2J4ZMZL.cjs} +3 -2
- package/dist/chunk-B2J4ZMZL.cjs.map +1 -0
- package/dist/{chunk-BERBYXFH.js → chunk-BMAZLQQ4.js} +3 -3
- package/dist/{chunk-BERBYXFH.js.map → chunk-BMAZLQQ4.js.map} +1 -1
- package/dist/{chunk-5YKNEMXR.cjs → chunk-BVZW2B5V.cjs} +4 -4
- package/dist/chunk-BVZW2B5V.cjs.map +1 -0
- package/dist/{chunk-MSFLYJDY.js → chunk-CQ2TQ32Y.js} +4 -4
- package/dist/chunk-CQ2TQ32Y.js.map +1 -0
- package/dist/{chunk-C5DEO6OI.cjs → chunk-CQGYNZ3K.cjs} +4 -4
- package/dist/{chunk-C5DEO6OI.cjs.map → chunk-CQGYNZ3K.cjs.map} +1 -1
- package/dist/{chunk-D75S2X6I.cjs → chunk-CTCGWIUD.cjs} +5 -5
- package/dist/{chunk-D75S2X6I.cjs.map → chunk-CTCGWIUD.cjs.map} +1 -1
- package/dist/{chunk-NZL4BNFQ.js → chunk-CV7XMBHP.js} +4 -4
- package/dist/chunk-CV7XMBHP.js.map +1 -0
- package/dist/{chunk-SEL2ZQMT.js → chunk-DAPSQZT4.js} +15 -10
- package/dist/chunk-DAPSQZT4.js.map +1 -0
- package/dist/{chunk-SVO5WPZX.cjs → chunk-DQKERTND.cjs} +11 -11
- package/dist/{chunk-SVO5WPZX.cjs.map → chunk-DQKERTND.cjs.map} +1 -1
- package/dist/{chunk-N5CR3TJZ.js → chunk-DZBSJX6J.js} +4 -4
- package/dist/{chunk-N5CR3TJZ.js.map → chunk-DZBSJX6J.js.map} +1 -1
- package/dist/{chunk-RAHSWE5C.cjs → chunk-EI2Q7SJ5.cjs} +12 -12
- package/dist/chunk-EI2Q7SJ5.cjs.map +1 -0
- package/dist/{chunk-UCFONJBG.js → chunk-EPSICJLZ.js} +2 -2
- package/dist/{chunk-UCFONJBG.js.map → chunk-EPSICJLZ.js.map} +1 -1
- package/dist/{chunk-3X6PM7DU.cjs → chunk-F3YZMOAU.cjs} +8 -8
- package/dist/{chunk-3X6PM7DU.cjs.map → chunk-F3YZMOAU.cjs.map} +1 -1
- package/dist/{chunk-F77UENR6.cjs → chunk-F5WMX4EA.cjs} +586 -398
- package/dist/chunk-F5WMX4EA.cjs.map +1 -0
- package/dist/{chunk-HE4BIAOS.js → chunk-F7AQV62G.js} +5 -4
- package/dist/chunk-F7AQV62G.js.map +1 -0
- package/dist/{chunk-2RW7K6FN.cjs → chunk-GHX4P3V2.cjs} +2 -2
- package/dist/chunk-GHX4P3V2.cjs.map +1 -0
- package/dist/{chunk-B6HOIWQ6.js → chunk-GJ6RK75E.js} +5 -5
- package/dist/chunk-GJ6RK75E.js.map +1 -0
- package/dist/{chunk-FOXKFTVZ.cjs → chunk-GNT35C5U.cjs} +13 -13
- package/dist/chunk-GNT35C5U.cjs.map +1 -0
- package/dist/{chunk-4NAKHID5.js → chunk-GTKFV7O5.js} +2 -2
- package/dist/chunk-GTKFV7O5.js.map +1 -0
- package/dist/{chunk-ELKO4ZLR.cjs → chunk-GWC3HADL.cjs} +4 -4
- package/dist/{chunk-ELKO4ZLR.cjs.map → chunk-GWC3HADL.cjs.map} +1 -1
- package/dist/{chunk-OXNYIMZZ.js → chunk-H73MEMQB.js} +2 -2
- package/dist/chunk-H73MEMQB.js.map +1 -0
- package/dist/{chunk-E7FJOO4G.cjs → chunk-HJBMA5MB.cjs} +11 -11
- package/dist/{chunk-E7FJOO4G.cjs.map → chunk-HJBMA5MB.cjs.map} +1 -1
- package/dist/{chunk-2FYEVT2B.cjs → chunk-HLPSLDGL.cjs} +275 -160
- package/dist/chunk-HLPSLDGL.cjs.map +1 -0
- package/dist/{chunk-VW6M4B3Z.cjs → chunk-HY57ULY2.cjs} +5 -5
- package/dist/{chunk-VW6M4B3Z.cjs.map → chunk-HY57ULY2.cjs.map} +1 -1
- package/dist/{chunk-CAH3G4IS.js → chunk-HY66GLM6.js} +2 -2
- package/dist/chunk-HY66GLM6.js.map +1 -0
- package/dist/{chunk-G3JWXOGY.js → chunk-I5BE5M5L.js} +310 -122
- package/dist/chunk-I5BE5M5L.js.map +1 -0
- package/dist/{chunk-C4H6PB5J.cjs → chunk-I6TGFUCO.cjs} +4 -4
- package/dist/{chunk-C4H6PB5J.cjs.map → chunk-I6TGFUCO.cjs.map} +1 -1
- package/dist/{chunk-U4UJHOSH.js → chunk-IDCKSLYH.js} +3 -3
- package/dist/{chunk-U4UJHOSH.js.map → chunk-IDCKSLYH.js.map} +1 -1
- package/dist/{chunk-WQ53UQL4.cjs → chunk-ILCGLTSA.cjs} +4 -4
- package/dist/{chunk-WQ53UQL4.cjs.map → chunk-ILCGLTSA.cjs.map} +1 -1
- package/dist/{chunk-QBTVATSF.cjs → chunk-ITSSOVOB.cjs} +44 -47
- package/dist/chunk-ITSSOVOB.cjs.map +1 -0
- package/dist/{chunk-V6HWJQQV.js → chunk-IVNNSANC.js} +27 -30
- package/dist/chunk-IVNNSANC.js.map +1 -0
- package/dist/{chunk-SZHU7A5B.cjs → chunk-IWBGCBR6.cjs} +4 -4
- package/dist/{chunk-SZHU7A5B.cjs.map → chunk-IWBGCBR6.cjs.map} +1 -1
- package/dist/{chunk-Q4RESANI.cjs → chunk-J24VJOH3.cjs} +20 -4
- package/dist/chunk-J24VJOH3.cjs.map +1 -0
- package/dist/{chunk-Y4AXQOT4.cjs → chunk-JHPGF3FP.cjs} +8 -8
- package/dist/{chunk-Y4AXQOT4.cjs.map → chunk-JHPGF3FP.cjs.map} +1 -1
- package/dist/{chunk-BM6N4KHO.cjs → chunk-JTB5Q42C.cjs} +6 -22
- package/dist/chunk-JTB5Q42C.cjs.map +1 -0
- package/dist/{chunk-LPVIRJVF.cjs → chunk-K3FW2XZD.cjs} +9 -9
- package/dist/{chunk-LPVIRJVF.cjs.map → chunk-K3FW2XZD.cjs.map} +1 -1
- package/dist/{chunk-LS3LMQ23.js → chunk-MVAPK2BX.js} +162 -49
- package/dist/chunk-MVAPK2BX.js.map +1 -0
- package/dist/{chunk-XPR366DL.cjs → chunk-NGESVVJN.cjs} +17 -17
- package/dist/chunk-NGESVVJN.cjs.map +1 -0
- package/dist/{chunk-VUKQL3L2.cjs → chunk-NIRE5CNO.cjs} +20 -13
- package/dist/chunk-NIRE5CNO.cjs.map +1 -0
- package/dist/{chunk-VC5ABJXC.js → chunk-NLTVXLGT.js} +3 -3
- package/dist/{chunk-VC5ABJXC.js.map → chunk-NLTVXLGT.js.map} +1 -1
- package/dist/chunk-NUKRL3I6.cjs +23 -0
- package/dist/chunk-NUKRL3I6.cjs.map +1 -0
- package/dist/{chunk-R5YZACGK.js → chunk-OC4NTGMN.js} +3 -3
- package/dist/{chunk-R5YZACGK.js.map → chunk-OC4NTGMN.js.map} +1 -1
- package/dist/{chunk-GOVJO4YE.js → chunk-OHBIUXKM.js} +6 -6
- package/dist/chunk-OHBIUXKM.js.map +1 -0
- package/dist/{chunk-FPYT5WZP.cjs → chunk-P6A3M6VD.cjs} +10 -10
- package/dist/{chunk-FPYT5WZP.cjs.map → chunk-P6A3M6VD.cjs.map} +1 -1
- package/dist/{chunk-OKLYRPKL.cjs → chunk-Q47R5E2X.cjs} +8 -8
- package/dist/chunk-Q47R5E2X.cjs.map +1 -0
- package/dist/{chunk-HSQ5Q3I5.js → chunk-Q4CMI2LP.js} +12 -5
- package/dist/chunk-Q4CMI2LP.js.map +1 -0
- package/dist/{chunk-2XLKLVVR.js → chunk-Q5EWJPRY.js} +2 -2
- package/dist/chunk-Q5EWJPRY.js.map +1 -0
- package/dist/{chunk-SK4QLUBK.js → chunk-QARJGQSA.js} +16 -7
- package/dist/chunk-QARJGQSA.js.map +1 -0
- package/dist/{chunk-CZ2GKKYL.cjs → chunk-QDED6YO6.cjs} +5 -5
- package/dist/{chunk-CZ2GKKYL.cjs.map → chunk-QDED6YO6.cjs.map} +1 -1
- package/dist/{chunk-VK7MAV65.cjs → chunk-QKLOP4VC.cjs} +2 -2
- package/dist/{chunk-VK7MAV65.cjs.map → chunk-QKLOP4VC.cjs.map} +1 -1
- package/dist/{chunk-FIOCJYLA.js → chunk-QRSUA2CV.js} +3 -3
- package/dist/{chunk-FIOCJYLA.js.map → chunk-QRSUA2CV.js.map} +1 -1
- package/dist/{chunk-ZT57WTUJ.cjs → chunk-R3UPQFKK.cjs} +21 -12
- package/dist/chunk-R3UPQFKK.cjs.map +1 -0
- package/dist/{chunk-X2FR4OIT.js → chunk-R7WIIPUR.js} +2 -2
- package/dist/chunk-R7WIIPUR.js.map +1 -0
- package/dist/{chunk-RP5HQVLD.js → chunk-RNB4APBZ.js} +30 -7
- package/dist/chunk-RNB4APBZ.js.map +1 -0
- package/dist/{chunk-GD63JPGC.cjs → chunk-ROYPRJH4.cjs} +9 -9
- package/dist/{chunk-GD63JPGC.cjs.map → chunk-ROYPRJH4.cjs.map} +1 -1
- package/dist/{chunk-V26QVGUG.js → chunk-RUDY2GTT.js} +59 -23
- package/dist/chunk-RUDY2GTT.js.map +1 -0
- package/dist/{chunk-JIQRXKTA.cjs → chunk-SKXBJ2NU.cjs} +7 -7
- package/dist/chunk-SKXBJ2NU.cjs.map +1 -0
- package/dist/{chunk-XROIW6BH.js → chunk-SUKXXLWD.js} +6 -6
- package/dist/chunk-SUKXXLWD.js.map +1 -0
- package/dist/{chunk-LTSTGCL6.js → chunk-T73NA43R.js} +3 -3
- package/dist/{chunk-LTSTGCL6.js.map → chunk-T73NA43R.js.map} +1 -1
- package/dist/chunk-T7O6K6PX.js +20 -0
- package/dist/chunk-T7O6K6PX.js.map +1 -0
- package/dist/{chunk-5F5NWKPN.js → chunk-T7XEKOVW.js} +5 -20
- package/dist/chunk-T7XEKOVW.js.map +1 -0
- package/dist/{chunk-HAWE74GQ.cjs → chunk-U2AC6JUP.cjs} +8 -8
- package/dist/chunk-U2AC6JUP.cjs.map +1 -0
- package/dist/{chunk-3WVMJY7F.js → chunk-UC3HT2S4.js} +3 -3
- package/dist/{chunk-3WVMJY7F.js.map → chunk-UC3HT2S4.js.map} +1 -1
- package/dist/{chunk-PBZ7HMBP.js → chunk-UPRJR6IP.js} +4 -4
- package/dist/chunk-UPRJR6IP.js.map +1 -0
- package/dist/{chunk-3V7UJLQT.js → chunk-UQGQFBRL.js} +3 -3
- package/dist/chunk-UQGQFBRL.js.map +1 -0
- package/dist/{chunk-2D43RD5D.cjs → chunk-V2UUGUY4.cjs} +27 -27
- package/dist/chunk-V2UUGUY4.cjs.map +1 -0
- package/dist/{chunk-6AZDM6LK.js → chunk-VF7EWVDG.js} +3 -3
- package/dist/{chunk-6AZDM6LK.js.map → chunk-VF7EWVDG.js.map} +1 -1
- package/dist/{chunk-PNVDQL5Y.cjs → chunk-VTYY7XL5.cjs} +2 -2
- package/dist/chunk-VTYY7XL5.cjs.map +1 -0
- package/dist/{chunk-Y4I4EQFK.js → chunk-WKRSH2VR.js} +3 -3
- package/dist/{chunk-Y4I4EQFK.js.map → chunk-WKRSH2VR.js.map} +1 -1
- package/dist/{chunk-4QEC4CCS.js → chunk-WTMU7J4U.js} +2 -2
- package/dist/{chunk-4QEC4CCS.js.map → chunk-WTMU7J4U.js.map} +1 -1
- package/dist/{chunk-KSWHTR54.js → chunk-XN7NOENA.js} +6 -6
- package/dist/chunk-XN7NOENA.js.map +1 -0
- package/dist/{chunk-ADLLFY3H.cjs → chunk-XSX2UU6Y.cjs} +10 -9
- package/dist/chunk-XSX2UU6Y.cjs.map +1 -0
- package/dist/{chunk-LD4MOBFX.js → chunk-XV4IZNV4.js} +9 -9
- package/dist/chunk-XV4IZNV4.js.map +1 -0
- package/dist/{chunk-EZ2YEF4F.cjs → chunk-XWL6O3SW.cjs} +4 -4
- package/dist/chunk-XWL6O3SW.cjs.map +1 -0
- package/dist/{chunk-PGP7IOJ2.js → chunk-YMA4S2WO.js} +4 -4
- package/dist/{chunk-PGP7IOJ2.js.map → chunk-YMA4S2WO.js.map} +1 -1
- package/dist/{chunk-OUOXM36O.cjs → chunk-YPJ5NH5N.cjs} +11 -11
- package/dist/chunk-YPJ5NH5N.cjs.map +1 -0
- package/dist/{chunk-YLQQX5W2.cjs → chunk-ZF2LDKQQ.cjs} +2 -2
- package/dist/chunk-ZF2LDKQQ.cjs.map +1 -0
- package/dist/{chunk-L5YO6PWL.cjs → chunk-ZNW6V4Y6.cjs} +2 -2
- package/dist/chunk-ZNW6V4Y6.cjs.map +1 -0
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/theokit-client.d.cts +36 -0
- package/dist/client/theokit-client.d.ts +36 -0
- package/dist/client/types.d.cts +30 -0
- package/dist/client/types.d.ts +30 -0
- package/dist/compact-session-FUJDVF7B.js +22 -0
- package/dist/{compact-session-4MNKNMO2.js.map → compact-session-FUJDVF7B.js.map} +1 -1
- package/dist/compact-session-LEWF554G.cjs +59 -0
- package/dist/{compact-session-EPFBQ46Z.cjs.map → compact-session-LEWF554G.cjs.map} +1 -1
- package/dist/compaction.cjs +17 -16
- package/dist/compaction.d.cts +13 -13
- package/dist/compaction.d.ts +13 -13
- package/dist/compaction.js +4 -3
- package/dist/concurrency.cjs +7 -6
- package/dist/concurrency.cjs.map +1 -1
- package/dist/concurrency.js +5 -4
- package/dist/concurrency.js.map +1 -1
- package/dist/context/index.cjs +7 -7
- package/dist/context/index.js +3 -3
- package/dist/context-FDOON2DB.js +6 -0
- package/dist/{context-ENXZNF6J.js.map → context-FDOON2DB.js.map} +1 -1
- package/dist/context-VMIE4BMD.cjs +23 -0
- package/dist/{context-7USNN6LP.cjs.map → context-VMIE4BMD.cjs.map} +1 -1
- package/dist/cron-BcWmzWzT.d.cts +240 -0
- package/dist/cron-De6hzWCF.d.ts +240 -0
- package/dist/cron.cjs +43 -41
- package/dist/cron.d.cts +5 -3
- package/dist/cron.d.ts +5 -3
- package/dist/cron.js +42 -40
- package/dist/define-tool.d.ts +14 -6
- package/dist/{errors-BSoXcl3F.d.cts → errors-BgJH9PHi.d.cts} +39 -24
- package/dist/{errors-CHllybaU.d.ts → errors-C5fJUqLk.d.ts} +39 -24
- package/dist/errors.cjs +22 -21
- package/dist/errors.d.cts +2 -2
- package/dist/errors.d.ts +2 -2
- package/dist/errors.js +3 -2
- package/dist/eval.cjs +61 -58
- package/dist/eval.cjs.map +1 -1
- package/dist/eval.d.cts +38 -0
- package/dist/eval.d.ts +38 -0
- package/dist/eval.js +51 -48
- package/dist/eval.js.map +1 -1
- package/dist/event-bus.d.ts +16 -0
- package/dist/{executor-2Z6XJJJG.js → executor-BMEHFOXZ.js} +8 -7
- package/dist/executor-BMEHFOXZ.js.map +1 -0
- package/dist/{executor-2Z3LGG3I.cjs → executor-ZERJ3DGN.cjs} +25 -24
- package/dist/executor-ZERJ3DGN.cjs.map +1 -0
- package/dist/filesystem/index.cjs +8 -7
- package/dist/filesystem/index.cjs.map +1 -1
- package/dist/filesystem/index.js +4 -3
- package/dist/filesystem/index.js.map +1 -1
- package/dist/filesystem/local-filesystem.d.cts +18 -0
- package/dist/filesystem/local-filesystem.d.ts +18 -0
- package/dist/filesystem/types.d.cts +12 -0
- package/dist/filesystem/types.d.ts +12 -0
- package/dist/fs-session-store-3MOJQGP2.cjs +20 -0
- package/dist/{fs-session-store-VVY2AHWG.cjs.map → fs-session-store-3MOJQGP2.cjs.map} +1 -1
- package/dist/fs-session-store-IN7JTTXD.js +11 -0
- package/dist/{fs-session-store-R5FD3EN6.js.map → fs-session-store-IN7JTTXD.js.map} +1 -1
- package/dist/generate-object-N5MDZUJI.js +8 -0
- package/dist/{generate-object-WQRCXFD2.js.map → generate-object-N5MDZUJI.js.map} +1 -1
- package/dist/generate-object-PGSP5U7N.cjs +21 -0
- package/dist/{generate-object-AVXOJK2I.cjs.map → generate-object-PGSP5U7N.cjs.map} +1 -1
- package/dist/generate-object.d.ts +20 -0
- package/dist/index-manager-NG5YENWO.cjs +22 -0
- package/dist/{index-manager-VRU3A2YL.cjs.map → index-manager-NG5YENWO.cjs.map} +1 -1
- package/dist/index-manager-ZMRJ6ZII.js +13 -0
- package/dist/{index-manager-WS7TVKUW.js.map → index-manager-ZMRJ6ZII.js.map} +1 -1
- package/dist/index.cjs +169 -155
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +702 -54
- package/dist/index.d.ts +702 -54
- package/dist/index.js +61 -58
- package/dist/index.js.map +1 -1
- package/dist/{inject-session-GMBMJVNZ.js → inject-session-BJMJH5BX.js} +9 -8
- package/dist/inject-session-BJMJH5BX.js.map +1 -0
- package/dist/inject-session-WQGGMCQY.cjs +29 -0
- package/dist/inject-session-WQGGMCQY.cjs.map +1 -0
- package/dist/internal/auth/auth-types.d.ts +83 -1
- package/dist/internal/auth/credential-store.d.ts +34 -6
- package/dist/internal/auth/oauth-device.d.ts +0 -1
- package/dist/internal/auth/resolve-credential.d.ts +40 -0
- package/dist/internal/budget/tracker/budget.d.ts +12 -14
- package/dist/internal/budget/usage-accumulator.d.ts +15 -0
- package/dist/internal/llm/anthropic-shared.d.ts +8 -4
- package/dist/internal/llm/model-identifier.d.ts +26 -0
- package/dist/internal/llm/openai.d.ts +8 -0
- package/dist/internal/llm/prompt-cache-key.d.ts +1 -0
- package/dist/internal/llm/responses.d.ts +67 -1
- package/dist/internal/llm/router.d.ts +8 -0
- package/dist/internal/llm/types.d.ts +27 -1
- package/dist/internal/local-agent/real-local-run-provider.d.ts +8 -3
- package/dist/internal/local-agent/real-local-run-tools.d.ts +23 -4
- package/dist/internal/mcp/oauth.d.ts +5 -0
- package/dist/internal/mcp/token-storage.d.ts +34 -0
- package/dist/internal/memory/adapters/index.cjs +12 -11
- package/dist/internal/memory/adapters/index.d.cts +3 -1
- package/dist/internal/memory/adapters/index.d.ts +3 -1
- package/dist/internal/memory/adapters/index.js +9 -8
- package/dist/internal/memory/adapters/openai-compatible.d.cts +45 -0
- package/dist/internal/memory/adapters/openai-compatible.d.ts +45 -0
- package/dist/internal/memory/embedding-cache.d.ts +42 -1
- package/dist/internal/memory/escape-like-pattern.d.ts +22 -0
- package/dist/internal/memory/sqlite-vec-loader.d.ts +1 -3
- package/dist/internal/memory/storage/markdown-store.d.ts +0 -5
- package/dist/internal/persistence/cwd-mutex.d.cts +34 -0
- package/dist/internal/persistence/cwd-mutex.d.ts +34 -0
- package/dist/internal/persistence/exclusive-create.d.cts +31 -0
- package/dist/internal/persistence/exclusive-create.d.ts +31 -0
- package/dist/internal/persistence/file-lock.d.cts +28 -0
- package/dist/internal/persistence/file-lock.d.ts +28 -0
- package/dist/internal/persistence/fs-session-store.d.cts +3 -0
- package/dist/internal/persistence/fs-session-store.d.ts +3 -0
- package/dist/internal/persistence/fts5-sanitize.d.cts +20 -0
- package/dist/internal/persistence/fts5-sanitize.d.ts +20 -0
- package/dist/internal/persistence/index.cjs +40 -39
- package/dist/internal/persistence/index.cjs.map +1 -1
- package/dist/internal/persistence/index.d.cts +6 -1
- package/dist/internal/persistence/index.d.ts +6 -1
- package/dist/internal/persistence/index.js +9 -8
- package/dist/internal/persistence/index.js.map +1 -1
- package/dist/internal/persistence/paths.d.cts +54 -1
- package/dist/internal/persistence/paths.d.ts +54 -1
- package/dist/internal/persistence/persistence-schema.d.cts +9 -1
- package/dist/internal/persistence/persistence-schema.d.ts +9 -1
- package/dist/internal/persistence/schema-version.d.cts +215 -1
- package/dist/internal/persistence/schema-version.d.ts +215 -1
- package/dist/internal/persistence/session-writer.d.cts +7 -7
- package/dist/internal/persistence/session-writer.d.ts +7 -7
- package/dist/internal/persistence/sqlite-cas.d.cts +37 -1
- package/dist/internal/persistence/sqlite-cas.d.ts +37 -1
- package/dist/internal/persistence/sqlite-open.d.cts +14 -0
- package/dist/internal/persistence/sqlite-open.d.ts +14 -0
- package/dist/internal/persistence/sqlite-wal.d.cts +45 -0
- package/dist/internal/persistence/sqlite-wal.d.ts +45 -0
- package/dist/internal/persistence/transcript-ops.d.cts +7 -1
- package/dist/internal/persistence/transcript-ops.d.ts +7 -1
- package/dist/internal/plugins/types.d.cts +1 -1
- package/dist/internal/plugins/types.d.ts +1 -1
- package/dist/internal/providers/builtin/openai-chatgpt.d.ts +12 -0
- package/dist/internal/providers/catalog-loader.d.ts +8 -0
- package/dist/internal/providers/catalog-schema.d.ts +55 -0
- package/dist/internal/providers/catalog-source-models-dev.d.ts +36 -0
- package/dist/internal/runtime/concurrency/delegation-depth.d.ts +27 -0
- package/dist/internal/runtime/concurrency/subagent-credentials.d.ts +33 -1
- package/dist/internal/runtime/context/context-discovery-runner.d.ts +44 -0
- package/dist/internal/runtime/context/context-discovery.d.ts +58 -0
- package/dist/internal/runtime/context/context-rules-frontmatter.d.ts +70 -1
- package/dist/internal/runtime/fixtures/fixture-mode.d.ts +15 -1
- package/dist/internal/runtime/lifecycle/post-run-lifecycle.d.ts +15 -0
- package/dist/internal/runtime/registry/agent-registry-store.d.ts +12 -0
- package/dist/internal/runtime/registry/live-agent-registry.d.ts +37 -0
- package/dist/internal/scorers/llm-judge.d.ts +6 -1
- package/dist/internal/security/index.cjs +14 -13
- package/dist/internal/security/index.d.cts +4 -1
- package/dist/internal/security/index.d.ts +4 -1
- package/dist/internal/security/index.js +4 -3
- package/dist/internal/security/path-guard.d.cts +46 -0
- package/dist/internal/security/path-guard.d.ts +46 -0
- package/dist/internal/security/redact.d.cts +71 -0
- package/dist/internal/security/redact.d.ts +71 -0
- package/dist/internal/session/agent-session.d.ts +15 -4
- package/dist/internal/session/session-cache.d.ts +5 -0
- package/dist/internal/task/store.d.ts +91 -5
- package/dist/internal/telemetry/span-names.d.ts +0 -1
- package/dist/internal/telemetry/tracer.d.ts +14 -0
- package/dist/job-queue.d.ts +18 -0
- package/dist/judge-call-DWHAJATE.js +6 -0
- package/dist/{judge-call-MDIPTBJI.js.map → judge-call-DWHAJATE.js.map} +1 -1
- package/dist/judge-call-EGYRC2RE.cjs +23 -0
- package/dist/{judge-call-G5SGV2M2.cjs.map → judge-call-EGYRC2RE.cjs.map} +1 -1
- package/dist/mcp-auth.cjs +41 -25
- package/dist/mcp-auth.cjs.map +1 -1
- package/dist/mcp-auth.js +34 -18
- package/dist/mcp-auth.js.map +1 -1
- package/dist/models.cjs +42 -27
- package/dist/models.cjs.map +1 -1
- package/dist/models.js +25 -10
- package/dist/models.js.map +1 -1
- package/dist/oauth-transaction-store-BT4GLTLK.cjs +36 -0
- package/dist/{oauth-transaction-store-7CKHPQRN.cjs.map → oauth-transaction-store-BT4GLTLK.cjs.map} +1 -1
- package/dist/oauth-transaction-store-W52KVHQ4.js +3 -0
- package/dist/{oauth-transaction-store-W74I6EFD.js.map → oauth-transaction-store-W52KVHQ4.js.map} +1 -1
- package/dist/path-safety.cjs +11 -10
- package/dist/path-safety.js +4 -3
- package/dist/permission-engine.d.ts +55 -0
- package/dist/persistence.cjs +43 -42
- package/dist/persistence.cjs.map +1 -1
- package/dist/persistence.js +13 -12
- package/dist/persistence.js.map +1 -1
- package/dist/project.cjs +9 -8
- package/dist/project.cjs.map +1 -1
- package/dist/project.js +5 -4
- package/dist/project.js.map +1 -1
- package/dist/providers.cjs +23 -0
- package/dist/providers.cjs.map +1 -0
- package/dist/providers.d.cts +29 -0
- package/dist/providers.d.ts +29 -0
- package/dist/providers.js +10 -0
- package/dist/providers.js.map +1 -0
- package/dist/registry-VFKX7WOP.cjs +47 -0
- package/dist/{registry-63ASMXT4.cjs.map → registry-VFKX7WOP.cjs.map} +1 -1
- package/dist/registry-VFP3WWQP.js +10 -0
- package/dist/{registry-O7FJ2MPM.js.map → registry-VFP3WWQP.js.map} +1 -1
- package/dist/retry.cjs +5 -4
- package/dist/retry.js +4 -3
- package/dist/{run-C8FBAC8o.d.cts → run-BYSHf58D.d.cts} +185 -33
- package/dist/{run-C8FBAC8o.d.ts → run-BYSHf58D.d.ts} +185 -33
- package/dist/{run-to-completion-JDPIUKSH.js → run-to-completion-DRO77625.js} +3 -3
- package/dist/{run-to-completion-JDPIUKSH.js.map → run-to-completion-DRO77625.js.map} +1 -1
- package/dist/{run-to-completion-J73I6IY4.cjs → run-to-completion-X4OWM673.cjs} +13 -13
- package/dist/{run-to-completion-J73I6IY4.cjs.map → run-to-completion-X4OWM673.cjs.map} +1 -1
- package/dist/sandbox/bwrap.d.cts +27 -13
- package/dist/sandbox/bwrap.d.ts +27 -13
- package/dist/sandbox/index.cjs +20 -19
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.js +5 -4
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/linux-sandbox.d.cts +72 -0
- package/dist/sandbox/linux-sandbox.d.ts +72 -0
- package/dist/sandbox/local-sandbox.d.cts +41 -0
- package/dist/sandbox/local-sandbox.d.ts +41 -0
- package/dist/sandbox/seccomp.d.cts +6 -0
- package/dist/sandbox/seccomp.d.ts +6 -0
- package/dist/sandbox/types.d.cts +64 -0
- package/dist/sandbox/types.d.ts +64 -0
- package/dist/scorers.d.ts +38 -7
- package/dist/sdk-agent-D8qJVkuV.d.ts +860 -0
- package/dist/sdk-agent-DEoKhA8a.d.cts +860 -0
- package/dist/server/auth/errors.d.cts +1 -1
- package/dist/server/auth/errors.d.ts +1 -1
- package/dist/server/auth/index.cjs +29 -21
- package/dist/server/auth/index.cjs.map +1 -1
- package/dist/server/auth/index.d.cts +25 -15
- package/dist/server/auth/index.d.ts +25 -15
- package/dist/server/auth/index.js +15 -7
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/auth/oauth-transaction-store.d.cts +13 -1
- package/dist/server/auth/oauth-transaction-store.d.ts +13 -1
- package/dist/server/auth/orchestrator.d.cts +1 -1
- package/dist/server/auth/orchestrator.d.ts +1 -1
- package/dist/server/auth/types.d.cts +1 -1
- package/dist/server/auth/types.d.ts +1 -1
- package/dist/server/auth/validate-return-to.d.cts +21 -11
- package/dist/server/auth/validate-return-to.d.ts +21 -11
- package/dist/server/errors-envelope.cjs +15 -14
- package/dist/server/errors-envelope.cjs.map +1 -1
- package/dist/server/errors-envelope.d.cts +4 -4
- package/dist/server/errors-envelope.d.ts +4 -4
- package/dist/server/errors-envelope.js +4 -3
- package/dist/server/errors-envelope.js.map +1 -1
- package/dist/session-transcript-AKDYYGXQ.js +6 -0
- package/dist/{session-transcript-RAKEK76V.js.map → session-transcript-AKDYYGXQ.js.map} +1 -1
- package/dist/session-transcript-JXHFTB7G.cjs +51 -0
- package/dist/{session-transcript-DOM3UTXR.cjs.map → session-transcript-JXHFTB7G.cjs.map} +1 -1
- package/dist/skills.cjs +8 -7
- package/dist/skills.js +6 -5
- package/dist/stream-object-BUCF5PHO.cjs +21 -0
- package/dist/{stream-object-L3Q7PBMF.cjs.map → stream-object-BUCF5PHO.cjs.map} +1 -1
- package/dist/stream-object-L57K4OFS.js +8 -0
- package/dist/{stream-object-ZYXWS4B2.js.map → stream-object-L57K4OFS.js.map} +1 -1
- package/dist/{stream-to-completion-DFJ5T3BK.js → stream-to-completion-QV5HCL3J.js} +3 -3
- package/dist/{stream-to-completion-DFJ5T3BK.js.map → stream-to-completion-QV5HCL3J.js.map} +1 -1
- package/dist/{stream-to-completion-H2MHISSK.cjs → stream-to-completion-SRISU5AB.cjs} +10 -10
- package/dist/{stream-to-completion-H2MHISSK.cjs.map → stream-to-completion-SRISU5AB.cjs.map} +1 -1
- package/dist/subagents-loader-AZIXJ7D3.cjs +16 -0
- package/dist/{subagents-loader-VRW73QQT.cjs.map → subagents-loader-AZIXJ7D3.cjs.map} +1 -1
- package/dist/subagents-loader-J54ESLDV.js +7 -0
- package/dist/{subagents-loader-I56GSKAQ.js.map → subagents-loader-J54ESLDV.js.map} +1 -1
- package/dist/subagents-loader.cjs +7 -6
- package/dist/subagents-loader.cjs.map +1 -1
- package/dist/subagents-loader.d.cts +3 -2
- package/dist/subagents-loader.d.ts +3 -2
- package/dist/subagents-loader.js +5 -4
- package/dist/subagents-loader.js.map +1 -1
- package/dist/subscription/define-subscription.d.cts +1 -1
- package/dist/subscription/define-subscription.d.ts +1 -1
- package/dist/subscription/index.cjs +22 -9
- package/dist/subscription/index.cjs.map +1 -1
- package/dist/subscription/index.d.cts +1 -1
- package/dist/subscription/index.d.ts +1 -1
- package/dist/subscription/index.js +21 -8
- package/dist/subscription/index.js.map +1 -1
- package/dist/subscription/internal/adapter-types.d.cts +1 -1
- package/dist/subscription/internal/adapter-types.d.ts +1 -1
- package/dist/subscription/internal/server-integration.d.cts +1 -1
- package/dist/subscription/internal/server-integration.d.ts +1 -1
- package/dist/subscription/internal/sse-encoder.d.cts +1 -1
- package/dist/subscription/internal/sse-encoder.d.ts +1 -1
- package/dist/subscription/internal/sse-parser.d.cts +1 -1
- package/dist/subscription/internal/sse-parser.d.ts +1 -1
- package/dist/subscription/internal/subscription-runtime.d.cts +1 -1
- package/dist/subscription/internal/subscription-runtime.d.ts +1 -1
- package/dist/subscription/internal/ws-adapter-node.d.cts +1 -1
- package/dist/subscription/internal/ws-adapter-node.d.ts +1 -1
- package/dist/subscription/theokit-subscribe.d.cts +14 -1
- package/dist/subscription/theokit-subscribe.d.ts +14 -1
- package/dist/subscription/types.d.cts +19 -1
- package/dist/subscription/types.d.ts +19 -1
- package/dist/task-store.cjs +8 -7
- package/dist/task-store.js +5 -4
- package/dist/types/agent-prims.d.ts +14 -0
- package/dist/types/agent.d.ts +92 -11
- package/dist/types/batch.d.ts +7 -1
- package/dist/types/conversation.d.ts +18 -5
- package/dist/types/goal-events.d.ts +4 -8
- package/dist/types/memory-adapter.d.ts +12 -1
- package/dist/types/plugin.d.ts +101 -0
- package/dist/types/provider-profile.d.ts +32 -0
- package/dist/types/run-events.d.ts +28 -1
- package/dist/types/run.d.ts +35 -23
- package/dist/types/sdk-agent.d.ts +14 -0
- package/dist/types/session-record.d.ts +18 -1
- package/dist/types/task.d.ts +15 -1
- package/dist/types/theokit.d.ts +10 -1
- package/dist/types/updates.d.ts +35 -4
- package/dist/types/workflow.d.ts +155 -0
- package/dist/workflow.cjs +29 -28
- package/dist/workflow.d.cts +666 -17
- package/dist/workflow.d.ts +666 -17
- package/dist/workflow.js +8 -7
- package/docs/error-codes.md +215 -0
- package/docs/harness-capability-map.md +1358 -0
- package/package.json +29 -16
- package/bin/init-claude.mjs +0 -68
- package/claude-template/AGENTS.md +0 -157
- package/claude-template/CLAUDE.md +0 -66
- package/claude-template/dot-claude/rules/theokit-conventions.md +0 -32
- package/claude-template/dot-claude/settings.json +0 -16
- package/claude-template/dot-claude/skills/theokit-agent-core/SKILL.md +0 -209
- package/claude-template/dot-claude/skills/theokit-auth/SKILL.md +0 -102
- package/claude-template/dot-claude/skills/theokit-budget/SKILL.md +0 -176
- package/claude-template/dot-claude/skills/theokit-client/SKILL.md +0 -58
- package/claude-template/dot-claude/skills/theokit-compaction/SKILL.md +0 -102
- package/claude-template/dot-claude/skills/theokit-concurrency/SKILL.md +0 -68
- package/claude-template/dot-claude/skills/theokit-config/SKILL.md +0 -139
- package/claude-template/dot-claude/skills/theokit-cron/SKILL.md +0 -148
- package/claude-template/dot-claude/skills/theokit-di/SKILL.md +0 -233
- package/claude-template/dot-claude/skills/theokit-di-agent/SKILL.md +0 -294
- package/claude-template/dot-claude/skills/theokit-errors/SKILL.md +0 -172
- package/claude-template/dot-claude/skills/theokit-eval/SKILL.md +0 -179
- package/claude-template/dot-claude/skills/theokit-filesystem/SKILL.md +0 -74
- package/claude-template/dot-claude/skills/theokit-gateways/SKILL.md +0 -209
- package/claude-template/dot-claude/skills/theokit-memory/SKILL.md +0 -176
- package/claude-template/dot-claude/skills/theokit-messages/SKILL.md +0 -58
- package/claude-template/dot-claude/skills/theokit-models/SKILL.md +0 -79
- package/claude-template/dot-claude/skills/theokit-path-safety/SKILL.md +0 -60
- package/claude-template/dot-claude/skills/theokit-persistence/SKILL.md +0 -85
- package/claude-template/dot-claude/skills/theokit-project/SKILL.md +0 -55
- package/claude-template/dot-claude/skills/theokit-retry/SKILL.md +0 -50
- package/claude-template/dot-claude/skills/theokit-sandbox/SKILL.md +0 -93
- package/claude-template/dot-claude/skills/theokit-sanitize/SKILL.md +0 -66
- package/claude-template/dot-claude/skills/theokit-skills/SKILL.md +0 -68
- package/claude-template/dot-claude/skills/theokit-streaming/SKILL.md +0 -156
- package/claude-template/dot-claude/skills/theokit-subagents/SKILL.md +0 -109
- package/claude-template/dot-claude/skills/theokit-subscriptions/SKILL.md +0 -148
- package/claude-template/dot-claude/skills/theokit-task-store/SKILL.md +0 -75
- package/claude-template/dot-claude/skills/theokit-tools/SKILL.md +0 -170
- package/claude-template/dot-claude/skills/theokit-workflows/SKILL.md +0 -218
- package/dist/agent-FFVV4U5N.js +0 -50
- package/dist/agent-YLAHVHEH.cjs +0 -59
- package/dist/agent-session-store-DUGBAX5V.cjs +0 -23
- package/dist/agent-session-store-TNCGL5RN.js +0 -6
- package/dist/batch-UPKN4SG6.js.map +0 -1
- package/dist/batch-ZEFN5SO7.cjs.map +0 -1
- package/dist/chunk-2D43RD5D.cjs.map +0 -1
- package/dist/chunk-2FYEVT2B.cjs.map +0 -1
- package/dist/chunk-2RW7K6FN.cjs.map +0 -1
- package/dist/chunk-2XLKLVVR.js.map +0 -1
- package/dist/chunk-34XOCZJO.js.map +0 -1
- package/dist/chunk-3V7UJLQT.js.map +0 -1
- package/dist/chunk-4NAKHID5.js.map +0 -1
- package/dist/chunk-4Q4K4WB5.js.map +0 -1
- package/dist/chunk-5F5NWKPN.js.map +0 -1
- package/dist/chunk-5NBUH3NO.js.map +0 -1
- package/dist/chunk-5YKNEMXR.cjs.map +0 -1
- package/dist/chunk-7W7ZWMLQ.js.map +0 -1
- package/dist/chunk-ADLLFY3H.cjs.map +0 -1
- package/dist/chunk-B4YA6BRS.cjs.map +0 -1
- package/dist/chunk-B6HOIWQ6.js.map +0 -1
- package/dist/chunk-BDTVFIPB.cjs.map +0 -1
- package/dist/chunk-BFYGJGC5.js.map +0 -1
- package/dist/chunk-BM6N4KHO.cjs.map +0 -1
- package/dist/chunk-CAH3G4IS.js.map +0 -1
- package/dist/chunk-EZ2YEF4F.cjs.map +0 -1
- package/dist/chunk-F77UENR6.cjs.map +0 -1
- package/dist/chunk-FOXKFTVZ.cjs.map +0 -1
- package/dist/chunk-G3JWXOGY.js.map +0 -1
- package/dist/chunk-GOVJO4YE.js.map +0 -1
- package/dist/chunk-HAWE74GQ.cjs.map +0 -1
- package/dist/chunk-HE4BIAOS.js.map +0 -1
- package/dist/chunk-HSQ5Q3I5.js.map +0 -1
- package/dist/chunk-JIQRXKTA.cjs.map +0 -1
- package/dist/chunk-KSWHTR54.js.map +0 -1
- package/dist/chunk-L5YO6PWL.cjs.map +0 -1
- package/dist/chunk-LD4MOBFX.js.map +0 -1
- package/dist/chunk-LS3LMQ23.js.map +0 -1
- package/dist/chunk-MSFLYJDY.js.map +0 -1
- package/dist/chunk-NZL4BNFQ.js.map +0 -1
- package/dist/chunk-OKLYRPKL.cjs.map +0 -1
- package/dist/chunk-OUOXM36O.cjs.map +0 -1
- package/dist/chunk-OXNYIMZZ.js.map +0 -1
- package/dist/chunk-PBZ7HMBP.js.map +0 -1
- package/dist/chunk-PNVDQL5Y.cjs.map +0 -1
- package/dist/chunk-Q4RESANI.cjs.map +0 -1
- package/dist/chunk-QBTVATSF.cjs.map +0 -1
- package/dist/chunk-RAHSWE5C.cjs.map +0 -1
- package/dist/chunk-RP5HQVLD.js.map +0 -1
- package/dist/chunk-SEL2ZQMT.js.map +0 -1
- package/dist/chunk-SK4QLUBK.js.map +0 -1
- package/dist/chunk-TTJ54H3E.cjs.map +0 -1
- package/dist/chunk-V26QVGUG.js.map +0 -1
- package/dist/chunk-V6HWJQQV.js.map +0 -1
- package/dist/chunk-VGPXHHF3.cjs.map +0 -1
- package/dist/chunk-VUKQL3L2.cjs.map +0 -1
- package/dist/chunk-VYCKUKPA.cjs.map +0 -1
- package/dist/chunk-VYHJZVL5.cjs.map +0 -1
- package/dist/chunk-X2FR4OIT.js.map +0 -1
- package/dist/chunk-XPR366DL.cjs.map +0 -1
- package/dist/chunk-XROIW6BH.js.map +0 -1
- package/dist/chunk-YLQQX5W2.cjs.map +0 -1
- package/dist/chunk-ZT57WTUJ.cjs.map +0 -1
- package/dist/compact-session-4MNKNMO2.js +0 -21
- package/dist/compact-session-EPFBQ46Z.cjs +0 -58
- package/dist/context-7USNN6LP.cjs +0 -22
- package/dist/context-ENXZNF6J.js +0 -5
- package/dist/cron-BMjgFH-_.d.ts +0 -631
- package/dist/cron-DFDdCdMM.d.cts +0 -631
- package/dist/executor-2Z3LGG3I.cjs.map +0 -1
- package/dist/executor-2Z6XJJJG.js.map +0 -1
- package/dist/fs-session-store-R5FD3EN6.js +0 -10
- package/dist/fs-session-store-VVY2AHWG.cjs +0 -19
- package/dist/generate-object-AVXOJK2I.cjs +0 -20
- package/dist/generate-object-WQRCXFD2.js +0 -7
- package/dist/index-manager-VRU3A2YL.cjs +0 -21
- package/dist/index-manager-WS7TVKUW.js +0 -12
- package/dist/inject-session-AUQLBDRS.cjs +0 -28
- package/dist/inject-session-AUQLBDRS.cjs.map +0 -1
- package/dist/inject-session-GMBMJVNZ.js.map +0 -1
- package/dist/judge-call-G5SGV2M2.cjs +0 -22
- package/dist/judge-call-MDIPTBJI.js +0 -5
- package/dist/oauth-transaction-store-7CKHPQRN.cjs +0 -32
- package/dist/oauth-transaction-store-W74I6EFD.js +0 -3
- package/dist/registry-63ASMXT4.cjs +0 -46
- package/dist/registry-O7FJ2MPM.js +0 -9
- package/dist/session-transcript-DOM3UTXR.cjs +0 -50
- package/dist/session-transcript-RAKEK76V.js +0 -5
- package/dist/stream-object-L3Q7PBMF.cjs +0 -20
- package/dist/stream-object-ZYXWS4B2.js +0 -7
- package/dist/subagents-loader-I56GSKAQ.js +0 -6
- package/dist/subagents-loader-VRW73QQT.cjs +0 -15
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { enqueueSessionWrite } from './chunk-
|
|
2
|
-
import { invalidateSessionCache } from './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import { SessionTranscript } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
1
|
+
import { enqueueSessionWrite } from './chunk-OHBIUXKM.js';
|
|
2
|
+
import { invalidateSessionCache } from './chunk-WTMU7J4U.js';
|
|
3
|
+
import './chunk-BMAZLQQ4.js';
|
|
4
|
+
import { SessionTranscript } from './chunk-DZBSJX6J.js';
|
|
5
|
+
import './chunk-VF7EWVDG.js';
|
|
6
|
+
import './chunk-T7XEKOVW.js';
|
|
7
|
+
import './chunk-T7O6K6PX.js';
|
|
7
8
|
|
|
8
9
|
// src/internal/session/inject-session.ts
|
|
9
10
|
async function injectSessionTurn(opts) {
|
|
@@ -22,5 +23,5 @@ async function injectSessionTurn(opts) {
|
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
export { injectSessionTurn };
|
|
25
|
-
//# sourceMappingURL=inject-session-
|
|
26
|
-
//# sourceMappingURL=inject-session-
|
|
26
|
+
//# sourceMappingURL=inject-session-BJMJH5BX.js.map
|
|
27
|
+
//# sourceMappingURL=inject-session-BJMJH5BX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/session/inject-session.ts"],"names":[],"mappings":";;;;;;;;;AAWA,eAAsB,kBAAkB,IAAA,EAMtB;AAChB,EAAA,MAAM,oBAAoB,IAAA,CAAK,GAAA,CAAI,KAAK,IAAA,CAAK,GAAA,CAAI,SAAS,YAAY;AACpE,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,IAAI,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,WAAA,CAAY,KAAA,EAAO;AAAA,MACtD,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,KAAA,IAAS;AAAA,KAC1B,CAAA;AACD,IAAA,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AACvC,IAAA,UAAA,CAAW,mBAAA,CAAoB,EAAE,IAAA,EAAM,IAAA,CAAK,eAAe,CAAA;AAC3D,IAAA,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,OAAA,EAAQ,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AACzF,IAAA,sBAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,EACvD,CAAC,CAAA;AACH","file":"inject-session-BJMJH5BX.js","sourcesContent":["/**\n * M51 (agent-builder) — inject a SYNTHETIC user+assistant pair into a session's persisted transcript\n * WITHOUT running an LLM turn. This is the Codex review-exit mechanism (`exit_success.xml` appended to\n * the parent thread history so follow-ups like \"fix finding 2\" work): the pair chains onto the DAG\n * leaf (M50 pattern) and the in-memory cache is invalidated so the NEXT send re-hydrates with it.\n */\nimport type { SessionStore } from \"../../types/session-store.js\";\nimport { SessionTranscript } from \"../persistence/session-transcript.js\";\nimport { enqueueSessionWrite, invalidateSessionCache } from \"./agent-session.js\";\nimport type { CompactLocation } from \"./compact-session.js\";\n\nexport async function injectSessionTurn(opts: {\n store: SessionStore;\n loc: CompactLocation;\n sessionId: string;\n userText: string;\n assistantText: string;\n}): Promise<void> {\n await enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {\n const prior = await opts.store.readRecords(opts.loc.agentId);\n const transcript = SessionTranscript.fromRecords(prior, {\n cwd: opts.loc.cwd,\n sessionId: opts.sessionId,\n model: opts.loc.model ?? \"unknown\",\n });\n transcript.appendUserTurn(opts.userText);\n transcript.appendAssistantTurn({ text: opts.assistantText });\n await opts.store.appendRecords(opts.loc.agentId, transcript.records().slice(prior.length));\n invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);\n });\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkV2UUGUY4_cjs = require('./chunk-V2UUGUY4.cjs');
|
|
4
|
+
var chunk4OTIXDMU_cjs = require('./chunk-4OTIXDMU.cjs');
|
|
5
|
+
require('./chunk-CTCGWIUD.cjs');
|
|
6
|
+
var chunkJHPGF3FP_cjs = require('./chunk-JHPGF3FP.cjs');
|
|
7
|
+
require('./chunk-I6TGFUCO.cjs');
|
|
8
|
+
require('./chunk-JTB5Q42C.cjs');
|
|
9
|
+
require('./chunk-NUKRL3I6.cjs');
|
|
10
|
+
|
|
11
|
+
// src/internal/session/inject-session.ts
|
|
12
|
+
async function injectSessionTurn(opts) {
|
|
13
|
+
await chunkV2UUGUY4_cjs.enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {
|
|
14
|
+
const prior = await opts.store.readRecords(opts.loc.agentId);
|
|
15
|
+
const transcript = chunkJHPGF3FP_cjs.SessionTranscript.fromRecords(prior, {
|
|
16
|
+
cwd: opts.loc.cwd,
|
|
17
|
+
sessionId: opts.sessionId,
|
|
18
|
+
model: opts.loc.model ?? "unknown"
|
|
19
|
+
});
|
|
20
|
+
transcript.appendUserTurn(opts.userText);
|
|
21
|
+
transcript.appendAssistantTurn({ text: opts.assistantText });
|
|
22
|
+
await opts.store.appendRecords(opts.loc.agentId, transcript.records().slice(prior.length));
|
|
23
|
+
chunk4OTIXDMU_cjs.invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.injectSessionTurn = injectSessionTurn;
|
|
28
|
+
//# sourceMappingURL=inject-session-WQGGMCQY.cjs.map
|
|
29
|
+
//# sourceMappingURL=inject-session-WQGGMCQY.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/session/inject-session.ts"],"names":["enqueueSessionWrite","SessionTranscript","invalidateSessionCache"],"mappings":";;;;;;;;;;;AAWA,eAAsB,kBAAkB,IAAA,EAMtB;AAChB,EAAA,MAAMA,sCAAoB,IAAA,CAAK,GAAA,CAAI,KAAK,IAAA,CAAK,GAAA,CAAI,SAAS,YAAY;AACpE,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,IAAI,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAA,GAAaC,mCAAA,CAAkB,WAAA,CAAY,KAAA,EAAO;AAAA,MACtD,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,KAAA,IAAS;AAAA,KAC1B,CAAA;AACD,IAAA,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AACvC,IAAA,UAAA,CAAW,mBAAA,CAAoB,EAAE,IAAA,EAAM,IAAA,CAAK,eAAe,CAAA;AAC3D,IAAA,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,OAAA,EAAQ,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AACzF,IAAAC,wCAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,EACvD,CAAC,CAAA;AACH","file":"inject-session-WQGGMCQY.cjs","sourcesContent":["/**\n * M51 (agent-builder) — inject a SYNTHETIC user+assistant pair into a session's persisted transcript\n * WITHOUT running an LLM turn. This is the Codex review-exit mechanism (`exit_success.xml` appended to\n * the parent thread history so follow-ups like \"fix finding 2\" work): the pair chains onto the DAG\n * leaf (M50 pattern) and the in-memory cache is invalidated so the NEXT send re-hydrates with it.\n */\nimport type { SessionStore } from \"../../types/session-store.js\";\nimport { SessionTranscript } from \"../persistence/session-transcript.js\";\nimport { enqueueSessionWrite, invalidateSessionCache } from \"./agent-session.js\";\nimport type { CompactLocation } from \"./compact-session.js\";\n\nexport async function injectSessionTurn(opts: {\n store: SessionStore;\n loc: CompactLocation;\n sessionId: string;\n userText: string;\n assistantText: string;\n}): Promise<void> {\n await enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {\n const prior = await opts.store.readRecords(opts.loc.agentId);\n const transcript = SessionTranscript.fromRecords(prior, {\n cwd: opts.loc.cwd,\n sessionId: opts.sessionId,\n model: opts.loc.model ?? \"unknown\",\n });\n transcript.appendUserTurn(opts.userText);\n transcript.appendAssistantTurn({ text: opts.assistantText });\n await opts.store.appendRecords(opts.loc.agentId, transcript.records().slice(prior.length));\n invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);\n });\n}\n"]}
|
|
@@ -5,8 +5,46 @@
|
|
|
5
5
|
* origin — the codebase's established "leaf-type-only deps" pattern (see tsup.config.ts), which sidesteps
|
|
6
6
|
* the rollup-dts cross-module resolution limitation that a value-module type export trips.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Every type here is re-exported from `@theokit/sdk/auth` and is therefore PUBLIC, under semver.
|
|
9
|
+
*
|
|
10
|
+
* This block sits directly above `CredentialStoreConfig` with no statement between them, so it is
|
|
11
|
+
* one of that declaration's leading comment ranges — an internal-visibility tag written here is
|
|
12
|
+
* scanned by `stripInternal` and deletes the interface from the emitted `.d.ts`. That is exactly
|
|
13
|
+
* what happened, and it is the same trap recorded in `src/auth/index.ts`
|
|
14
|
+
* (usetheodev/theokit-sdk#283). Do not name that tag anywhere in this file.
|
|
15
|
+
*
|
|
16
|
+
* @packageDocumentation
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Where the credential store lives — the three path segments, plus an optional environment
|
|
20
|
+
* override.
|
|
21
|
+
*
|
|
22
|
+
* The store directory is `join(home, dirName)` and the file is `fileName` inside it. When
|
|
23
|
+
* `homeEnvVar` is set AND the caller's `env` map holds that variable non-blank, its trimmed value
|
|
24
|
+
* REPLACES the whole directory: `dirName` is not appended to it, mirroring how `CODEX_HOME` works.
|
|
25
|
+
* A blank or absent variable falls back to `join(home, dirName)`.
|
|
26
|
+
*
|
|
27
|
+
* `env` is always a parameter on the functions that take this config, never an ambient
|
|
28
|
+
* `process.env` read, and it defaults to an empty map — so a caller that forgets to pass it gets
|
|
29
|
+
* the non-overridden path rather than whatever the process happens to have.
|
|
30
|
+
*
|
|
31
|
+
* Nothing here is validated or created. A relative `home` stays relative to the process cwd, and
|
|
32
|
+
* the directory is created on first write, at mode 0700.
|
|
33
|
+
*
|
|
34
|
+
* The store this addresses holds live credentials in plaintext, so `dirName` should be a directory
|
|
35
|
+
* the SDK owns rather than one shared with unrelated state: reads enforce 0700 on the directory
|
|
36
|
+
* and 0600 on the file, and refuse when either is looser.
|
|
9
37
|
*/
|
|
38
|
+
export interface CredentialStoreConfig {
|
|
39
|
+
/** Base home directory (e.g. `os.homedir()`). */
|
|
40
|
+
home: string;
|
|
41
|
+
/** The store subdirectory under `home` (e.g. `.agent-builder`, `.codex`). */
|
|
42
|
+
dirName: string;
|
|
43
|
+
/** The credential file name inside the store dir (e.g. `auth.json`). */
|
|
44
|
+
fileName: string;
|
|
45
|
+
/** Optional env var name that, when set + non-blank, overrides the full store dir. */
|
|
46
|
+
homeEnvVar?: string;
|
|
47
|
+
}
|
|
10
48
|
/**
|
|
11
49
|
* The flat bearer surface every consumer holds. `kind:'api'` is the classic API-key path; `kind:'oauth'` is
|
|
12
50
|
* an OAuth session whose `apiKey` is the CURRENT access token, so consumers keep passing a flat bearer
|
|
@@ -24,11 +62,45 @@ export interface ResolvedCredential {
|
|
|
24
62
|
/** oauth only: epoch ms the access token expires. Drives the refresh in the oauth engine. */
|
|
25
63
|
expiresAt?: number;
|
|
26
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* The API-key variant of the credential file, as it sits on disk.
|
|
67
|
+
*
|
|
68
|
+
* `api_key` is the key in PLAINTEXT. Nothing in this SDK encrypts, hashes or otherwise obscures
|
|
69
|
+
* it; the protection is filesystem permissions alone — `writeCredential` persists the file at
|
|
70
|
+
* mode 0600 inside a 0700 directory, and `readAuthFile` refuses to read a file readable by other
|
|
71
|
+
* users or a directory writable by them. On Windows that gate is skipped entirely, because the
|
|
72
|
+
* mode bits Node reports there do not describe the real ACLs.
|
|
73
|
+
*
|
|
74
|
+
* `type` and `provider` are both optional so that a legacy file written before the union existed
|
|
75
|
+
* — a bare `{ "provider": ..., "api_key": ... }` — still parses as this variant with no
|
|
76
|
+
* migration. `type` is never written: the api variant is persisted without the discriminant, and
|
|
77
|
+
* absence of `type` is what identifies it on the next read.
|
|
78
|
+
*
|
|
79
|
+
* The file schema is strict, so an unknown key makes the whole file fail to parse with a
|
|
80
|
+
* `CredentialError` naming the offending path.
|
|
81
|
+
*/
|
|
27
82
|
export interface StoredApiCredential {
|
|
28
83
|
type?: "api";
|
|
29
84
|
provider?: string;
|
|
30
85
|
api_key: string;
|
|
31
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* The OAuth variant of the credential file, as it sits on disk.
|
|
89
|
+
*
|
|
90
|
+
* `access` and `refresh` are both stored in PLAINTEXT, under the same 0600 file / 0700 directory
|
|
91
|
+
* gate as the API-key variant and with no additional protection. The refresh token is the more
|
|
92
|
+
* durable of the two — an expired `access` is worth little, a leaked `refresh` mints new ones —
|
|
93
|
+
* and it is why `readStoredOAuth` is the only path that hands this shape out: the resolved
|
|
94
|
+
* credential every other consumer sees carries the access token and nothing else.
|
|
95
|
+
*
|
|
96
|
+
* `type: "oauth"` is the discriminant and is always written; a file without it reads back as the
|
|
97
|
+
* API-key variant. `provider`, `access` and `refresh` must be non-empty — `writeCredential`
|
|
98
|
+
* refuses an empty access or refresh token, and the read schema rejects empty strings.
|
|
99
|
+
*
|
|
100
|
+
* `expires` is epoch milliseconds for the ACCESS token only. Nothing here records when the
|
|
101
|
+
* refresh token expires, so a refresh failing because the grant itself lapsed is only observable
|
|
102
|
+
* at the token endpoint.
|
|
103
|
+
*/
|
|
32
104
|
export interface StoredOAuthCredential {
|
|
33
105
|
type: "oauth";
|
|
34
106
|
provider: string;
|
|
@@ -38,6 +110,16 @@ export interface StoredOAuthCredential {
|
|
|
38
110
|
expires: number;
|
|
39
111
|
account_id?: string;
|
|
40
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Whatever the credential file turned out to hold — the two variants are discriminated by `type`.
|
|
115
|
+
*
|
|
116
|
+
* Narrow with `stored.type === "oauth"`, not by probing for a field. The API-key variant leaves
|
|
117
|
+
* `type` undefined rather than setting it to `"api"`, so `type !== "oauth"` is the reliable test
|
|
118
|
+
* for the API-key side and `type === "api"` misses every legacy file.
|
|
119
|
+
*
|
|
120
|
+
* Reading a file is what produces this value, and both variants carry a live secret in plaintext.
|
|
121
|
+
* Treat it as one: it should not be logged, serialized into telemetry, or put in an error message.
|
|
122
|
+
*/
|
|
41
123
|
export type StoredCredential = StoredApiCredential | StoredOAuthCredential;
|
|
42
124
|
/** A provider's OAuth endpoints + client identity. Passed in (provider-agnostic). */
|
|
43
125
|
export interface OAuthProviderConfig {
|
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
import { AuthenticationError } from "../../errors.js";
|
|
2
|
+
/**
|
|
3
|
+
* M42 — the SDK credential store. Promoted DOWN from agent-builder's hardened `agents/lib/credentials.ts`
|
|
4
|
+
* (M37), generalized from a closed `openrouter|anthropic|openai` union to an open `provider: string` and
|
|
5
|
+
* driven by a caller-supplied {@link CredentialStoreConfig} (no hardcoded `.agent-builder`/`auth.json` /
|
|
6
|
+
* `AGENT_BUILDER_HOME`). The security-critical file mechanics are ported VERBATIM (ADR D3 of the M42 plan):
|
|
7
|
+
* atomic O_EXCL + rename + fsync write, 0700/0600 mode gates, `env` is always a PARAMETER (never an ambient
|
|
8
|
+
* `process.env` read).
|
|
9
|
+
*
|
|
10
|
+
* The env-precedence + key-prefix-inference + declared-provider rungs of the agent-builder resolver are
|
|
11
|
+
* APP POLICY and deliberately stay UP in the consumer; this module owns only the on-disk store + the
|
|
12
|
+
* `api|oauth` discriminated union. See {@link resolveCredential} (SDK) for the store-read + refresh path.
|
|
13
|
+
*
|
|
14
|
+
* Re-exported from `@theokit/sdk/auth`, and therefore PUBLIC, under semver.
|
|
15
|
+
*
|
|
16
|
+
* NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
|
|
17
|
+
* and TypeScript scans EVERY leading comment range of the declaration that follows, including the
|
|
18
|
+
* import right below this one. The tag that used to sit here deleted that import from the emitted
|
|
19
|
+
* `.d.ts`, leaving the types it binds unresolvable for any consumer running type-aware lint
|
|
20
|
+
* (usetheodev/theokit-sdk#283 records the same trap on a declaration).
|
|
21
|
+
*/
|
|
22
|
+
import type { CredentialStoreConfig, StoredCredential, StoredOAuthCredential } from "./auth-types.js";
|
|
2
23
|
/** The store directory, honoring an optional `homeEnvVar` override. */
|
|
3
24
|
export declare function credentialHome(config: CredentialStoreConfig, env?: Record<string, string | undefined>): string;
|
|
4
25
|
/** The credential file path inside the (possibly overridden) store directory. */
|
|
@@ -23,12 +44,6 @@ export declare function authFilePath(config: CredentialStoreConfig, env?: Record
|
|
|
23
44
|
export declare class CredentialError extends AuthenticationError {
|
|
24
45
|
readonly name: string;
|
|
25
46
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Read the credential file. Absent ⇒ `undefined` (the normal case). Present-but-wrong is a typed error
|
|
28
|
-
* naming the file: a malformed credential store must not surface as a raw parse crash. Enforces the
|
|
29
|
-
* 0700 dir / 0600 file mode gates (ported verbatim — a writable dir lets an attacker swap the file for a
|
|
30
|
-
* symlink to their own account).
|
|
31
|
-
*/
|
|
32
47
|
/**
|
|
33
48
|
* The 0700-dir / 0600-file mode gates (ported verbatim). The DIRECTORY matters as much as the file:
|
|
34
49
|
* `mkdirSync(mode)` applies only at creation, so a pre-existing store dir keeps whatever mode it had, and a
|
|
@@ -36,6 +51,12 @@ export declare class CredentialError extends AuthenticationError {
|
|
|
36
51
|
* agent then runs on THEIR account.
|
|
37
52
|
*/
|
|
38
53
|
export declare function assertSecureModes(dirPath: string, path: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* Read the credential file. Absent ⇒ `undefined` (the normal case). Present-but-wrong is a typed error
|
|
56
|
+
* naming the file: a malformed credential store must not surface as a raw parse crash. Enforces the
|
|
57
|
+
* 0700 dir / 0600 file mode gates (ported verbatim — a writable dir lets an attacker swap the file for a
|
|
58
|
+
* symlink to their own account).
|
|
59
|
+
*/
|
|
39
60
|
export declare function readAuthFile(config: CredentialStoreConfig, env?: Record<string, string | undefined>): StoredCredential | undefined;
|
|
40
61
|
/**
|
|
41
62
|
* Read the stored OAuth credential (with its refresh token), or `undefined` when the store is absent or
|
|
@@ -43,6 +64,13 @@ export declare function readAuthFile(config: CredentialStoreConfig, env?: Record
|
|
|
43
64
|
* carry. Enforces the same 0600/0700 gates as every other read.
|
|
44
65
|
*/
|
|
45
66
|
export declare function readStoredOAuth(config: CredentialStoreConfig, env?: Record<string, string | undefined>): StoredOAuthCredential | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Persist a credential atomically at mode `0600`. Ported VERBATIM (ADR D3): write to a random-named temp
|
|
69
|
+
* file in the same directory with `wx` (O_EXCL), fsync, close, chmod, then `rename` (atomic on POSIX) —
|
|
70
|
+
* so a crash mid-write leaves whatever was there untouched, and a pre-planted symlink cannot capture the
|
|
71
|
+
* key. The api variant persists the unchanged `{provider, api_key}` (back-compat, no `type` key); the
|
|
72
|
+
* oauth variant persists `{type:'oauth', provider, access, refresh, expires, account_id?}`.
|
|
73
|
+
*/
|
|
46
74
|
export declare function writeCredential(cred: {
|
|
47
75
|
provider: string;
|
|
48
76
|
apiKey: string;
|
|
@@ -18,7 +18,6 @@ export declare function deviceLogin(config: DeviceOAuthConfig, deps: DeviceDeps,
|
|
|
18
18
|
expiresIn: number;
|
|
19
19
|
}) => void;
|
|
20
20
|
}): Promise<OAuthTokens>;
|
|
21
|
-
/** The OpenAI two-step device config: usercode + poll endpoints return an authorization_code (not tokens). */
|
|
22
21
|
/** Step 1 (OpenAI) — request the user code. */
|
|
23
22
|
export declare function requestOpenAIUsercode(config: OpenAIDeviceConfig, deps: Pick<DeviceDeps, "fetch">): Promise<{
|
|
24
23
|
deviceAuthId: string;
|
|
@@ -1,3 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M42 — `resolveCredential`: the public composition entrypoint over the credential store + oauth engine.
|
|
3
|
+
* Given a provider name + a {@link CredentialStoreConfig} (and, for oauth, an {@link OAuthProviderConfig}),
|
|
4
|
+
* read the store and return a FRESH `ResolvedCredential` — an api credential passes through by identity; an
|
|
5
|
+
* oauth credential is transparently refreshed when its access token is within the skew window. Returns
|
|
6
|
+
* `undefined` when the store holds no credential for `provider` (the caller then falls back to env / apiKeys).
|
|
7
|
+
*
|
|
8
|
+
* Mirrors agent-builder's `resolveFreshCredential` composition (store read → oauth → ensureFreshCredential),
|
|
9
|
+
* defaulting `fetch`/`now` to globals. This is the async surface an oauth provider's M41 `transform.fetch`
|
|
10
|
+
* calls at stream time, so a mid-turn token expiry refreshes without rebuilding the agent.
|
|
11
|
+
*
|
|
12
|
+
* Re-exported from `@theokit/sdk/auth`, and therefore PUBLIC, under semver.
|
|
13
|
+
*
|
|
14
|
+
* NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
|
|
15
|
+
* and TypeScript scans EVERY leading comment range of the declaration that follows, including the
|
|
16
|
+
* import right below this one. The tag that used to sit here deleted that import from the emitted
|
|
17
|
+
* `.d.ts`, leaving the types it binds unresolvable for any consumer running type-aware lint
|
|
18
|
+
* (usetheodev/theokit-sdk#283 records the same trap on a declaration).
|
|
19
|
+
*/
|
|
20
|
+
import type { CredentialStoreConfig, OAuthProviderConfig, ResolvedCredential } from "./auth-types.js";
|
|
21
|
+
/**
|
|
22
|
+
* Input to `resolveCredential`: which provider, which store, and what to inject.
|
|
23
|
+
*
|
|
24
|
+
* `env` and `deps` exist so nothing here reads ambient state. Omitting `env` does NOT fall back to
|
|
25
|
+
* `process.env` — the store's `homeEnvVar` override simply goes unread, so a credential written
|
|
26
|
+
* under a relocated home resolves as absent rather than as an error.
|
|
27
|
+
*
|
|
28
|
+
* `oauth` is required only to REFRESH an oauth credential. Without it an expired oauth entry cannot
|
|
29
|
+
* be renewed, and an api-key-only store needs it never.
|
|
30
|
+
*
|
|
31
|
+
* PUBLIC and under semver, despite the `internal/` directory: `src/auth/index.ts` re-exports this
|
|
32
|
+
* type, and `package.json` publishes that barrel as the '@theokit/sdk/auth' subpath. The directory
|
|
33
|
+
* name is not the authority — the `exports` map is. The semver-exempt class is the sub-paths
|
|
34
|
+
* declared under '@theokit/sdk/internal/*' ('internal/persistence', 'internal/security',
|
|
35
|
+
* 'internal/memory-adapters'); no `exports` entry reaches this file that way.
|
|
36
|
+
*/
|
|
1
37
|
export interface ResolveCredentialOptions {
|
|
2
38
|
/** The provider whose stored credential to resolve. */
|
|
3
39
|
provider: string;
|
|
@@ -13,4 +49,8 @@ export interface ResolveCredentialOptions {
|
|
|
13
49
|
now?: () => number;
|
|
14
50
|
};
|
|
15
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Resolve a fresh credential for `provider` from the store, or `undefined` if the store holds none for it.
|
|
54
|
+
* oauth credentials are auto-refreshed when `opts.oauth` is supplied; api credentials pass through.
|
|
55
|
+
*/
|
|
16
56
|
export declare function resolveCredential(opts: ResolveCredentialOptions): Promise<ResolvedCredential | undefined>;
|
|
@@ -18,19 +18,17 @@
|
|
|
18
18
|
* `IterationBudget`. This is intentional — every send is its own iteration
|
|
19
19
|
* round, not a long-running budget shared across sends.
|
|
20
20
|
*
|
|
21
|
+
* NOTE on how exhaustion is signalled (B-140): by RETURN VALUE, never by
|
|
22
|
+
* throwing — `recordCompression()` answers `{ allowed: false, reason }` and
|
|
23
|
+
* `shouldContinue()` answers `false`. Running out of budget is an expected
|
|
24
|
+
* outcome of the loop, not an exceptional one, so it is not an exception
|
|
25
|
+
* (`rules/error-handling.md` § 2: never use exceptions for control flow).
|
|
26
|
+
* Three exported error classes for these cases (`IterationBudgetExhaustedError`,
|
|
27
|
+
* `CompressionExhaustedError`, `CompressionIneffectiveError`) survived here from
|
|
28
|
+
* an earlier design and were thrown by nothing; removed 2026-08-20. If you find
|
|
29
|
+
* yourself re-adding one, the question to settle first is whether the caller can
|
|
30
|
+
* act on the difference — because today it reads a reason string instead.
|
|
31
|
+
*
|
|
21
32
|
* @internal
|
|
22
33
|
*/
|
|
23
|
-
export
|
|
24
|
-
readonly name: string;
|
|
25
|
-
}
|
|
26
|
-
export declare class CompressionIneffectiveError extends Error {
|
|
27
|
-
readonly name: string;
|
|
28
|
-
}
|
|
29
|
-
export interface IterationBudgetOptions {
|
|
30
|
-
/** Total iterations before grace call. Default 8. */
|
|
31
|
-
maxIterations?: number;
|
|
32
|
-
/** Max compression attempts per session (D91). Default 3. */
|
|
33
|
-
maxCompressions?: number;
|
|
34
|
-
/** When true (default), one final iteration is allowed after budget exhausted. */
|
|
35
|
-
allowGraceCall?: boolean;
|
|
36
|
-
}
|
|
34
|
+
export {};
|
|
@@ -16,6 +16,21 @@ interface StepUsage {
|
|
|
16
16
|
cacheWriteTokens?: number;
|
|
17
17
|
reasoningTokens?: number;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Sums the per-step token counts of a multi-step run into one `TokenUsage`.
|
|
21
|
+
*
|
|
22
|
+
* Call `add` once per LLM finish, in any order, then `toTokenUsage` to read the total. The instance
|
|
23
|
+
* is a running sum, not a snapshot: `toTokenUsage` may be called repeatedly and reflects everything
|
|
24
|
+
* added so far, and there is no reset — start a new accumulator per run.
|
|
25
|
+
*
|
|
26
|
+
* Two shaping rules to expect in the output. The optional counters (cache read, cache write,
|
|
27
|
+
* reasoning) are omitted entirely when they sum to zero rather than reported as `0`. And the
|
|
28
|
+
* per-step `requests` array appears only when at least TWO steps were added, so a single-step run
|
|
29
|
+
* carries totals alone.
|
|
30
|
+
*
|
|
31
|
+
* `totalTokens` is input plus output only — cache and reasoning counts are reported separately and
|
|
32
|
+
* are not folded into it.
|
|
33
|
+
*/
|
|
19
34
|
export declare class UsageAccumulator {
|
|
20
35
|
private input;
|
|
21
36
|
private output;
|
|
@@ -25,12 +25,11 @@ export interface AnthropicResponseLike {
|
|
|
25
25
|
export declare function extractAnthropicText(response: AnthropicResponseLike): string;
|
|
26
26
|
export declare function extractAnthropicToolCalls(response: AnthropicResponseLike): LlmToolCallPart[];
|
|
27
27
|
export declare function mapAnthropicStopReason(reason: string | null): LlmStopReason;
|
|
28
|
-
export declare function toAnthropicWireMessage(message: LlmMessage): Record<string, unknown>;
|
|
29
28
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* `model`, `stream`, etc.).
|
|
29
|
+
* Convert an SDK `LlmMessage` to the Anthropic Messages wire shape.
|
|
30
|
+
* Identical across the three Anthropic-compatible clients (D289/D292).
|
|
33
31
|
*/
|
|
32
|
+
export declare function toAnthropicWireMessage(message: LlmMessage): Record<string, unknown>;
|
|
34
33
|
/**
|
|
35
34
|
* Issue a POST to an Anthropic-compatible Messages endpoint with the
|
|
36
35
|
* standard auth + content-type headers. Caller maps non-2xx via its own
|
|
@@ -79,6 +78,11 @@ export interface AnthropicTextBlock {
|
|
|
79
78
|
type: "ephemeral";
|
|
80
79
|
};
|
|
81
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Build the common body shape for Anthropic Messages requests. Caller
|
|
83
|
+
* is responsible for adding wire-specific fields (`anthropic_version`,
|
|
84
|
+
* `model`, `stream`, etc.).
|
|
85
|
+
*/
|
|
82
86
|
export declare function buildAnthropicCommonBody(request: LlmRequest): {
|
|
83
87
|
max_tokens: number;
|
|
84
88
|
messages: Array<Record<string, unknown>>;
|
|
@@ -29,4 +29,30 @@ export interface ParsedModelId {
|
|
|
29
29
|
/** Model name to send to the provider — prefix stripped. */
|
|
30
30
|
name: string;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Split a model string into `{ provider, name }` at the FIRST `/`.
|
|
34
|
+
*
|
|
35
|
+
* parseModelId("ollama/llama3.2:3b") // { provider: "ollama", name: "llama3.2:3b" }
|
|
36
|
+
* parseModelId("openrouter/meta-llama/llama-3") // { provider: "openrouter", name: "meta-llama/llama-3" }
|
|
37
|
+
* parseModelId("claude-sonnet-4-6") // { provider: undefined, name: "claude-sonnet-4-6" }
|
|
38
|
+
*
|
|
39
|
+
* Pure and synchronous: no catalog lookup, no network, and no check that the
|
|
40
|
+
* provider or the model exists. The provider is lowercased and mapped through a
|
|
41
|
+
* small alias table (`llama-cpp` / `llama.cpp` to `llamacpp`, `lm-studio` /
|
|
42
|
+
* `lm_studio` to `lmstudio`); the name keeps its remaining slashes and any `:tag`
|
|
43
|
+
* suffix, which Ollama needs.
|
|
44
|
+
*
|
|
45
|
+
* Never throws and never returns an error shape. `provider: undefined` means "no
|
|
46
|
+
* usable prefix" and is the caller's cue to fall back to env-var detection.
|
|
47
|
+
*
|
|
48
|
+
* Traps:
|
|
49
|
+
* - `undefined` or `""` yields `{ provider: undefined, name: "" }` — an EMPTY
|
|
50
|
+
* name, not `undefined`. A caller forwarding `name` unchecked sends an empty
|
|
51
|
+
* model id to the provider.
|
|
52
|
+
* - A degenerate prefix is not an error. `"/foo"`, `"foo/"` and `" /x"` all come
|
|
53
|
+
* back with `provider: undefined` and the ORIGINAL, untrimmed string as `name`;
|
|
54
|
+
* trimming happens only when both halves are non-empty.
|
|
55
|
+
* - Only the first `/` splits. `"openrouter/meta-llama/llama-3"` keeps
|
|
56
|
+
* `meta-llama/llama-3` whole as the name.
|
|
57
|
+
*/
|
|
32
58
|
export declare function parseModelId(modelId: string | undefined): ParsedModelId;
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Real OpenAI Chat Completions client. Streams `/v1/chat/completions` and
|
|
3
|
+
* translates delta chunks into our provider-agnostic `LlmEvent`s.
|
|
4
|
+
*
|
|
5
|
+
* Uses native `fetch` only — no `openai` SDK dependency.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
1
9
|
import type { LlmClient, LlmEvent, LlmFinish, LlmRequest } from "./types.js";
|
|
2
10
|
export interface OpenAIClientOptions {
|
|
3
11
|
apiKey: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -8,14 +8,80 @@ export interface ResponsesApiClientOptions {
|
|
|
8
8
|
/** Injected fetch (refresh-aware / dynamic headers). Defaults to global `fetch`. */
|
|
9
9
|
fetch?: typeof fetch;
|
|
10
10
|
providerName?: string;
|
|
11
|
+
/**
|
|
12
|
+
* usetheokit/theokit-sdk#383 — carry the model's ENCRYPTED reasoning across the rounds of a turn.
|
|
13
|
+
* Forwarded from `ProviderProfile.encryptedReasoning`; default off. See
|
|
14
|
+
* {@link ResponsesBodyOptions.encryptedReasoning} for what it puts on the wire and why it is
|
|
15
|
+
* opt-in rather than universal.
|
|
16
|
+
*/
|
|
17
|
+
encryptedReasoning?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* usetheokit/theokit-sdk#383 — one reasoning item the model produced, as it must be replayed.
|
|
21
|
+
*
|
|
22
|
+
* `encrypted_content` is opaque ciphertext only the provider can read; the SDK never inspects it,
|
|
23
|
+
* never logs it, and never persists it. It exists to be handed straight back.
|
|
24
|
+
*/
|
|
25
|
+
interface ResponsesReasoningItem {
|
|
26
|
+
id: string;
|
|
27
|
+
encrypted_content: string;
|
|
28
|
+
}
|
|
29
|
+
/** Options that shape the request body beyond what an `LlmRequest` carries. */
|
|
30
|
+
export interface ResponsesBodyOptions {
|
|
31
|
+
/**
|
|
32
|
+
* usetheokit/theokit-sdk#383 — when `true`, add `include: ["reasoning.encrypted_content"]` and
|
|
33
|
+
* `reasoning.context: "all_turns"`, and replay the reasoning items captured from earlier rounds.
|
|
34
|
+
*
|
|
35
|
+
* **What it buys.** With `store: false` the provider keeps nothing between requests, so a model
|
|
36
|
+
* that reasoned its way to a tool call in round 1 starts round 2 with no memory of that reasoning
|
|
37
|
+
* and derives it again — paid for again, every round. `include` asks the provider to return the
|
|
38
|
+
* reasoning as ciphertext; replaying that ciphertext on the next request hands the chain of
|
|
39
|
+
* thought back. Codex does exactly this against the same endpoint (issue #383 captured the
|
|
40
|
+
* request), which is the evidence that the backend accepts both fields.
|
|
41
|
+
*
|
|
42
|
+
* **Why opt-in and not on for every `responses_api` provider.** `include` is a documented
|
|
43
|
+
* Responses-API field, but `reasoning.context` is not part of the public Responses API surface —
|
|
44
|
+
* it was observed on the ChatGPT Codex backend. A provider that validates its input strictly
|
|
45
|
+
* answers an unknown key with `400`, which turns a cost optimisation into a total outage for that
|
|
46
|
+
* provider. Scoping it to profiles that DECLARE support keeps every other provider's request
|
|
47
|
+
* byte-identical to what it was, and makes enabling it a statement someone made about a specific
|
|
48
|
+
* backend rather than a hope about all of them.
|
|
49
|
+
*/
|
|
50
|
+
encryptedReasoning?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* usetheokit/theokit-sdk#383 — reasoning items captured from earlier rounds, keyed by the
|
|
53
|
+
* `call_id` of the tool call each batch preceded.
|
|
54
|
+
*
|
|
55
|
+
* Keying on `call_id` is what keeps the replay ORDERED and self-correcting. The provider requires
|
|
56
|
+
* a reasoning item to sit immediately before the output it produced, and the conversation history
|
|
57
|
+
* the loop replays is the authority on which tool calls survived and in what order — so emitting
|
|
58
|
+
* each batch just before its own `function_call` reproduces the original sequence without the
|
|
59
|
+
* transport having to track conversation positions. A batch whose tool call is no longer in
|
|
60
|
+
* history is simply never emitted.
|
|
61
|
+
*/
|
|
62
|
+
reasoningByCallId?: ReadonlyMap<string, readonly ResponsesReasoningItem[]>;
|
|
11
63
|
}
|
|
12
64
|
/** Build the Responses-API request body from an `LlmRequest`. */
|
|
13
|
-
export declare function buildResponsesBody(request: LlmRequest): Record<string, unknown>;
|
|
65
|
+
export declare function buildResponsesBody(request: LlmRequest, options?: ResponsesBodyOptions): Record<string, unknown>;
|
|
14
66
|
export declare class ResponsesApiClient implements LlmClient {
|
|
15
67
|
private readonly options;
|
|
16
68
|
readonly name: string;
|
|
17
69
|
private readonly baseUrl;
|
|
18
70
|
private readonly fetchImpl;
|
|
71
|
+
/**
|
|
72
|
+
* usetheokit/theokit-sdk#383 — reasoning ciphertext captured from earlier rounds, keyed by the
|
|
73
|
+
* `call_id` it preceded. Held on the CLIENT rather than threaded through `LlmRequest` because a
|
|
74
|
+
* round's reasoning is provider-shaped ciphertext with a provider-shaped ordering rule; the agent
|
|
75
|
+
* loop has no use for it and the same client instance serves every round of a turn. Insertion
|
|
76
|
+
* order is the eviction order (see {@link MAX_REMEMBERED_REASONING_CALLS}).
|
|
77
|
+
*/
|
|
78
|
+
private readonly reasoningByCallId;
|
|
19
79
|
constructor(options: ResponsesApiClientOptions);
|
|
80
|
+
/**
|
|
81
|
+
* usetheokit/theokit-sdk#383 — bind a batch of reasoning ciphertext to the tool call it produced,
|
|
82
|
+
* evicting the oldest binding once the cap is reached.
|
|
83
|
+
*/
|
|
84
|
+
private rememberReasoning;
|
|
20
85
|
stream(request: LlmRequest, signal: AbortSignal): AsyncGenerator<LlmEvent, LlmFinish, void>;
|
|
21
86
|
}
|
|
87
|
+
export {};
|
|
@@ -23,6 +23,14 @@ export interface ProviderRouterOptions {
|
|
|
23
23
|
attempt: number;
|
|
24
24
|
retryAfterMs?: number;
|
|
25
25
|
}) => void;
|
|
26
|
+
/**
|
|
27
|
+
* #332 — the endpoint THIS call should reach, from `ModelSelection.url`.
|
|
28
|
+
*
|
|
29
|
+
* It outranks the provider's base-URL env var deliberately. `OLLAMA_HOST` and friends are
|
|
30
|
+
* process-wide, so with the env var winning, whoever set it for one model would keep hijacking
|
|
31
|
+
* every other one — which is the bug this field exists to end, wearing a hat.
|
|
32
|
+
*/
|
|
33
|
+
baseUrl?: string;
|
|
26
34
|
}
|
|
27
35
|
/**
|
|
28
36
|
* Resolves the provider chain synchronously. Builtins are eagerly registered.
|
|
@@ -4,8 +4,19 @@
|
|
|
4
4
|
* and yields a stream of `LlmEvent`s plus a final `LlmFinish` shape that
|
|
5
5
|
* the agent loop converts into our `SDKMessage` events.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Semver-exempt: nothing here is declared in `package.json` `exports`. These types are nonetheless
|
|
8
|
+
* reachable from published declarations through the type graph, so they must be EMITTED.
|
|
9
|
+
*
|
|
10
|
+
* NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
|
|
11
|
+
* and TypeScript scans EVERY leading comment range of the declaration that follows. The tag that
|
|
12
|
+
* used to sit here deleted `LlmTool` from the emitted `.d.ts` while `LlmRequest`, which names it,
|
|
13
|
+
* survived — a declaration that does not compile for any consumer running type-aware lint.
|
|
8
14
|
*/
|
|
15
|
+
export interface LlmTool {
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
inputSchema: Record<string, unknown>;
|
|
19
|
+
}
|
|
9
20
|
export interface LlmTextPart {
|
|
10
21
|
type: "text";
|
|
11
22
|
text: string;
|
|
@@ -138,6 +149,21 @@ export interface LlmRequest {
|
|
|
138
149
|
* is still forced to produce a closing summary.
|
|
139
150
|
*/
|
|
140
151
|
toolChoice?: "auto" | "none" | "required";
|
|
152
|
+
/**
|
|
153
|
+
* usetheokit/theokit-sdk#383 — an opaque key identifying the conversation whose prompt prefix the
|
|
154
|
+
* provider may reuse across requests. Maps to the Responses-API `prompt_cache_key`.
|
|
155
|
+
*
|
|
156
|
+
* Set by the agent loop from the run's session identity and derived through
|
|
157
|
+
* `derivePromptCacheKey`, so it is STABLE across every round of a turn and every turn of a
|
|
158
|
+
* session, and DISTINCT between unrelated sessions. Both halves matter: a key that changes per
|
|
159
|
+
* round caches nothing, and a key shared across sessions asks the provider to match one
|
|
160
|
+
* conversation's prefix against another's.
|
|
161
|
+
*
|
|
162
|
+
* Absent ⇒ the field is omitted from the wire body (the pre-#383 request, byte for byte). It is
|
|
163
|
+
* a request-shaping hint only: no provider behaviour depends on its presence except the billing
|
|
164
|
+
* of the cached prefix.
|
|
165
|
+
*/
|
|
166
|
+
promptCacheKey?: string;
|
|
141
167
|
}
|
|
142
168
|
/**
|
|
143
169
|
* What a provider stream reports WHILE it is running. Tool calls are deliberately absent.
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provider inference helpers for the real local run — extracted from
|
|
3
|
-
* `real-local-run.ts` to keep it within the G8 LoC budget and give the
|
|
4
|
-
*
|
|
3
|
+
* `real-local-run.ts` to keep it within the G8 LoC budget and give the
|
|
4
|
+
* "which provider?" heuristics one cohesive home.
|
|
5
|
+
*
|
|
6
|
+
* The precedence diagnostic joined them for the same two reasons: it answers the same question
|
|
7
|
+
* ("which provider, and was that what the caller asked for?"), and adding it inline pushed
|
|
8
|
+
* `real-local-run.ts` to 411 LoC against the 400 budget. The gate asked for a split and this is
|
|
9
|
+
* where the split already lives.
|
|
5
10
|
*
|
|
6
11
|
* @internal
|
|
7
12
|
*/
|
|
8
|
-
export
|
|
13
|
+
export declare function warnProviderPrecedenceOnce(asked: string | undefined, used: string): void;
|
|
@@ -10,10 +10,29 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
|
-
import type { AgentDefinition, AgentOptions, CustomTool, ModelSelection } from "../../types/agent.js";
|
|
13
|
+
import type { AgentDefinition, AgentOptions, BuiltinToolName, CustomTool, ModelSelection } from "../../types/agent.js";
|
|
14
14
|
import type { CustomToolSpec } from "../agent-loop/loop-types.js";
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the tool-catalog slice of `AgentLoopInputs` for this run: which custom tools the loop
|
|
17
|
+
* declares, and which SDK builtins it must NOT.
|
|
18
|
+
*
|
|
19
|
+
* Precedence for the custom half (matches the mcpServers semantics — "fully replaces, not merged"):
|
|
20
|
+
* - `sendOptions.tools === undefined` → fall back to `agentOptions.tools`
|
|
21
|
+
* - `sendOptions.tools = []` → explicitly clear (no custom tools)
|
|
22
|
+
* - `sendOptions.tools = [t1, ...]` → use exactly these for this run
|
|
23
|
+
*
|
|
24
|
+
* usetheokit/theokit-sdk#381 added the builtin half, and it is why this is no longer named for
|
|
25
|
+
* custom tools alone. It rides here rather than at the call site because the withhold list is
|
|
26
|
+
* part of the same answer — what this run declares to the model — and because a run that
|
|
27
|
+
* withholds nothing must produce the same `AgentLoopInputs` it produced before the option existed,
|
|
28
|
+
* which is easiest to guarantee where the rest of the catalog is already assembled.
|
|
29
|
+
*
|
|
30
|
+
* Note the two halves are independent: an agent with no custom tools at all can still withhold a
|
|
31
|
+
* builtin, so the "no tools" early return carries the withhold list out with it.
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildRunToolCatalogInput(agentOptions: AgentOptions, sendOptions: {
|
|
16
34
|
tools?: CustomTool[];
|
|
17
35
|
} | undefined, pluginManager: import("../plugins/manager.js").PluginManager | undefined, personalityToolWhitelist: ReadonlyArray<string> | undefined, agentId: string, personalityName: string | undefined, subagents: Record<string, AgentDefinition> | undefined, effectiveModel: ModelSelection | undefined): {
|
|
18
|
-
customTools
|
|
19
|
-
|
|
36
|
+
customTools?: ReadonlyArray<CustomToolSpec>;
|
|
37
|
+
withheldBuiltinTools?: ReadonlyArray<BuiltinToolName>;
|
|
38
|
+
};
|