@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
|
@@ -10,4 +10,218 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* The three `better-sqlite3` methods this module actually uses, declared structurally so nothing
|
|
15
|
+
* here imports the driver.
|
|
16
|
+
*
|
|
17
|
+
* A real `better-sqlite3` `Database` satisfies it. `pragma` is called both to read
|
|
18
|
+
* (`pragma("user_version", { simple: true })`, which must return the number itself rather than a
|
|
19
|
+
* row array) and to write (`pragma("user_version = N")`). `transaction` must return a function
|
|
20
|
+
* that, when called, runs the wrapped body inside a real SQLite transaction and rolls it back if
|
|
21
|
+
* the body throws — a stub that merely calls through gives `migrateSchema` no atomicity, and a
|
|
22
|
+
* half-applied migration is exactly what it exists to prevent.
|
|
23
|
+
*
|
|
24
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
25
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
26
|
+
*/
|
|
27
|
+
export interface SqliteLike {
|
|
28
|
+
pragma: (statement: string, options?: {
|
|
29
|
+
simple?: boolean;
|
|
30
|
+
}) => unknown;
|
|
31
|
+
exec: (sql: string) => void;
|
|
32
|
+
transaction: <Args extends unknown[], R>(fn: (...args: Args) => R) => (...args: Args) => R;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* One forward migration step.
|
|
36
|
+
*
|
|
37
|
+
* `up` runs inside the shared transaction and must be self-contained: it may not commit, and any
|
|
38
|
+
* error it throws aborts the whole run and rolls back every step in it, including the ones that
|
|
39
|
+
* already succeeded. `user_version` is set to `toVersion` immediately after `up` returns, inside
|
|
40
|
+
* the same transaction, so version and schema move together or not at all.
|
|
41
|
+
*
|
|
42
|
+
* `toVersion` is the version the database reaches, not the one it starts from. Steps are ordered
|
|
43
|
+
* by it, gaps are allowed, and two steps sharing a `toVersion` both run — nothing deduplicates
|
|
44
|
+
* them.
|
|
45
|
+
*
|
|
46
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
47
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
48
|
+
*/
|
|
49
|
+
export interface Migration {
|
|
50
|
+
toVersion: number;
|
|
51
|
+
up: (db: SqliteLike) => void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Arguments to `migrateSchema`.
|
|
55
|
+
*
|
|
56
|
+
* `currentVersion` is the version the code expects, and it is the ceiling: a migration whose
|
|
57
|
+
* `toVersion` exceeds it is left unapplied for a later release. `migrations` may be given in any
|
|
58
|
+
* order and may contain steps already applied — both are filtered and sorted here. `label` only
|
|
59
|
+
* ever appears in the downgrade error message.
|
|
60
|
+
*
|
|
61
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
62
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
63
|
+
*/
|
|
64
|
+
export interface MigrateSchemaOptions {
|
|
65
|
+
db: SqliteLike;
|
|
66
|
+
currentVersion: number;
|
|
67
|
+
migrations: ReadonlyArray<Migration>;
|
|
68
|
+
/** For log/error context (e.g., "memory-index", "registry"). */
|
|
69
|
+
label?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* What `migrateSchema` did.
|
|
73
|
+
*
|
|
74
|
+
* `from` is the `user_version` found on the database, `to` is the version it holds afterwards,
|
|
75
|
+
* and `ran` is how many steps executed. When nothing was pending, `to === from` and `ran === 0`.
|
|
76
|
+
*
|
|
77
|
+
* `to` is the `toVersion` of the last step applied, NOT `currentVersion`. A database at version 3
|
|
78
|
+
* against `currentVersion: 5` with no migration in that range comes back as
|
|
79
|
+
* `{ from: 3, to: 3, ran: 0 }` — the gap is reported, not closed. Comparing `to` with
|
|
80
|
+
* `currentVersion` is how a caller notices that the migration list is missing a step.
|
|
81
|
+
*
|
|
82
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
83
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
84
|
+
*/
|
|
85
|
+
export interface MigrateSchemaResult {
|
|
86
|
+
from: number;
|
|
87
|
+
to: number;
|
|
88
|
+
ran: number;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Bring a SQLite database's `user_version` up to `currentVersion` by running the steps that sit
|
|
92
|
+
* between the two.
|
|
93
|
+
*
|
|
94
|
+
* Steps are sorted ascending by `toVersion` and filtered to `> stored && <= currentVersion`, then
|
|
95
|
+
* run in that order inside ONE transaction: each `up` is followed immediately by the matching
|
|
96
|
+
* `user_version` write. Either every step in the run commits or none does — a step that throws
|
|
97
|
+
* aborts the transaction, propagates the error, and leaves the database at the version it started
|
|
98
|
+
* from. There is no partially-migrated state and no resume point.
|
|
99
|
+
*
|
|
100
|
+
* Forward-only. When the stored version is greater than `currentVersion` — an older build opening
|
|
101
|
+
* a database a newer one already migrated — this throws immediately, before touching anything,
|
|
102
|
+
* with a message naming both versions and `label`. Nothing downgrades, and no data is deleted on
|
|
103
|
+
* any path here; what a step does is the step's own business.
|
|
104
|
+
*
|
|
105
|
+
* A stored version equal to `currentVersion` returns without opening a transaction. A `user_version`
|
|
106
|
+
* that is absent or not a number is read as 0, so a fresh database runs every step.
|
|
107
|
+
*
|
|
108
|
+
* Concurrency: the SQLite transaction is the only serialization. This takes no file lock, so two
|
|
109
|
+
* processes migrating the same file at once are arbitrated by SQLite's own write lock — the loser
|
|
110
|
+
* gets a busy or locked error from the driver, not a queued turn. Wrap the call in `withFileLock`
|
|
111
|
+
* if that matters.
|
|
112
|
+
*
|
|
113
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
114
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
115
|
+
*/
|
|
116
|
+
export declare function migrateSchema(opts: MigrateSchemaOptions): MigrateSchemaResult;
|
|
117
|
+
/**
|
|
118
|
+
* The on-disk envelope: the payload under `data`, its schema version alongside it.
|
|
119
|
+
*
|
|
120
|
+
* `writeVersionedJson` always produces this shape. `readVersionedJson` reads it, but tolerates a
|
|
121
|
+
* file that is not in it — a legacy object with no `_schemaVersion` is treated as version 0 and
|
|
122
|
+
* handed to the migrate callback whole, so this type describes what is written, not everything
|
|
123
|
+
* that can be read.
|
|
124
|
+
*
|
|
125
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
126
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
127
|
+
*/
|
|
128
|
+
export interface VersionedJsonFile<T> {
|
|
129
|
+
_schemaVersion: number;
|
|
130
|
+
data: T;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Upgrade callback for `readVersionedJson`, invoked only when the stored version is BELOW the
|
|
134
|
+
* current one.
|
|
135
|
+
*
|
|
136
|
+
* `parsed` is the whole parsed JSON value, not `parsed.data`. That is deliberate: a legacy file
|
|
137
|
+
* predating the envelope has its fields at the top level, and a callback handed only `.data`
|
|
138
|
+
* would receive `undefined` for exactly the files that need migrating. It is typed `unknown`
|
|
139
|
+
* because nothing has validated it — narrow before reading.
|
|
140
|
+
*
|
|
141
|
+
* `fromVersion` is the `_schemaVersion` found on disk, or 0 when the field is missing or not a
|
|
142
|
+
* number.
|
|
143
|
+
*
|
|
144
|
+
* The return value is used as-is and is NOT written back; the file on disk still holds the old
|
|
145
|
+
* shape until someone calls `writeVersionedJson`. Throwing here propagates out of
|
|
146
|
+
* `readVersionedJson`, which otherwise never throws — return the default value instead if an
|
|
147
|
+
* unmigratable file should be survivable.
|
|
148
|
+
*
|
|
149
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
150
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
151
|
+
*/
|
|
152
|
+
export type VersionedJsonMigrate<T> = (parsed: unknown, fromVersion: number) => T;
|
|
153
|
+
/**
|
|
154
|
+
* Arguments to `readVersionedJson`.
|
|
155
|
+
*
|
|
156
|
+
* `defaultValue` is a factory rather than a value because it is called on several paths and each
|
|
157
|
+
* caller must get its own object — returning a shared mutable default would let one caller's
|
|
158
|
+
* edits appear in another's. It is called for a missing file, an unreadable one, a corrupt one,
|
|
159
|
+
* a non-object payload, and a file written by a newer version.
|
|
160
|
+
*
|
|
161
|
+
* `migrate` is called only for a stored version strictly below `currentVersion`.
|
|
162
|
+
*
|
|
163
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
164
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
165
|
+
*/
|
|
166
|
+
export interface ReadVersionedJsonOptions<T> {
|
|
167
|
+
path: string;
|
|
168
|
+
currentVersion: number;
|
|
169
|
+
migrate: VersionedJsonMigrate<T>;
|
|
170
|
+
defaultValue: () => T;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Read a versioned JSON file, migrating or falling back rather than failing.
|
|
174
|
+
*
|
|
175
|
+
* What comes back, by case:
|
|
176
|
+
*
|
|
177
|
+
* - version matches `currentVersion` — the file's `data` field, returned as `T` WITHOUT
|
|
178
|
+
* validation. A file whose envelope is right but whose payload is not gets through.
|
|
179
|
+
* - version below `currentVersion` — whatever `migrate(parsed, stored)` returns. The migrated
|
|
180
|
+
* value is not persisted; the file is untouched.
|
|
181
|
+
* - version above `currentVersion` — `defaultValue()`, plus a warning. Forward-only: a file
|
|
182
|
+
* written by a newer build is left alone rather than downgraded.
|
|
183
|
+
* - file missing, or unreadable for any other reason (permissions, a directory in its place) —
|
|
184
|
+
* `defaultValue()`, silently. Absence and denial are not distinguished.
|
|
185
|
+
* - file present but not valid JSON — `defaultValue()`, and the file is RENAMED to
|
|
186
|
+
* `<path>.corrupt.<epoch-ms>` so the next run starts clean and the bad bytes stay available.
|
|
187
|
+
* A rename that itself fails is warned about and the read still returns the default, which
|
|
188
|
+
* means the same corrupt file will be met again next time.
|
|
189
|
+
* - JSON that parses to a non-object (a number, a string, `null`) — `defaultValue()`, silently
|
|
190
|
+
* and without moving the file aside.
|
|
191
|
+
*
|
|
192
|
+
* The only ways this throws are through the callbacks you supply: `migrate` or `defaultValue`
|
|
193
|
+
* raising. Nothing else here rejects.
|
|
194
|
+
*
|
|
195
|
+
* There is no locking. A concurrent `writeVersionedJson` on the same path is atomic at the rename,
|
|
196
|
+
* so a reader sees either the old file or the new one, never a half-written one — but a
|
|
197
|
+
* read-modify-write built from this pair is NOT atomic across the two calls, and needs
|
|
198
|
+
* `withFileLock` around both.
|
|
199
|
+
*
|
|
200
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
201
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
202
|
+
*/
|
|
203
|
+
export declare function readVersionedJson<T>(opts: ReadVersionedJsonOptions<T>): Promise<T>;
|
|
204
|
+
/**
|
|
205
|
+
* Write `data` wrapped in the version envelope, replacing the file atomically.
|
|
206
|
+
*
|
|
207
|
+
* The bytes go to a temp file in the same directory and are moved into place with `rename`, so a
|
|
208
|
+
* crash or a concurrent reader never observes a partial file: the path holds either the previous
|
|
209
|
+
* content or the complete new content. Parent directories are created as needed, and the file is
|
|
210
|
+
* created with mode 0600 (subject to the process umask), formatted with two-space indentation and
|
|
211
|
+
* a trailing newline.
|
|
212
|
+
*
|
|
213
|
+
* `currentVersion` is stamped verbatim as `_schemaVersion`; nothing checks it against what was
|
|
214
|
+
* already on disk, so this will happily overwrite a newer file with an older version. Read first
|
|
215
|
+
* if that matters.
|
|
216
|
+
*
|
|
217
|
+
* Rejects when `data` cannot be serialized — a circular reference, or a `toJSON` that throws.
|
|
218
|
+
* Serialization happens before any filesystem call, so on that path no directory is created, no
|
|
219
|
+
* temp file exists, and the file already on disk is untouched.
|
|
220
|
+
*
|
|
221
|
+
* Atomicity is the rename's, so it is as strong as the filesystem's: on NFS, SMB or FUSE the
|
|
222
|
+
* underlying writer emits a one-shot warning that the guarantee is weaker there.
|
|
223
|
+
*
|
|
224
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
225
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
226
|
+
*/
|
|
227
|
+
export declare function writeVersionedJson<T>(path: string, data: T, currentVersion: number): Promise<void>;
|
|
@@ -57,13 +57,6 @@ export interface SessionWriterLease {
|
|
|
57
57
|
*/
|
|
58
58
|
renew(): void;
|
|
59
59
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Take the exclusive writer lease for `sessionPath`, or reject with {@link SessionBusyError}.
|
|
62
|
-
*
|
|
63
|
-
* The lock is a sibling `.lock` file created with `wx` — the same file-existence primitive the
|
|
64
|
-
* SDK's `withFileLock` builds on. Exclusivity comes from the filesystem, so it holds across
|
|
65
|
-
* processes, not just across async tasks in one process.
|
|
66
|
-
*/
|
|
67
60
|
/**
|
|
68
61
|
* Staleness window **between machines** — and only between them.
|
|
69
62
|
*
|
|
@@ -101,4 +94,11 @@ export declare const HEARTBEAT_WINDOW_MS = 30000;
|
|
|
101
94
|
*
|
|
102
95
|
*/
|
|
103
96
|
export declare function sessionHasWriter(sessionPath: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Take the exclusive writer lease for `sessionPath`, or reject with {@link SessionBusyError}.
|
|
99
|
+
*
|
|
100
|
+
* The lock is a sibling `.lock` file created with `wx` — the same file-existence primitive the
|
|
101
|
+
* SDK's `withFileLock` builds on. Exclusivity comes from the filesystem, so it holds across
|
|
102
|
+
* processes, not just across async tasks in one process.
|
|
103
|
+
*/
|
|
104
104
|
export declare function acquireSessionWriter(sessionPath: string): Promise<SessionWriterLease>;
|
|
@@ -57,13 +57,6 @@ export interface SessionWriterLease {
|
|
|
57
57
|
*/
|
|
58
58
|
renew(): void;
|
|
59
59
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Take the exclusive writer lease for `sessionPath`, or reject with {@link SessionBusyError}.
|
|
62
|
-
*
|
|
63
|
-
* The lock is a sibling `.lock` file created with `wx` — the same file-existence primitive the
|
|
64
|
-
* SDK's `withFileLock` builds on. Exclusivity comes from the filesystem, so it holds across
|
|
65
|
-
* processes, not just across async tasks in one process.
|
|
66
|
-
*/
|
|
67
60
|
/**
|
|
68
61
|
* Staleness window **between machines** — and only between them.
|
|
69
62
|
*
|
|
@@ -101,4 +94,11 @@ export declare const HEARTBEAT_WINDOW_MS = 30000;
|
|
|
101
94
|
*
|
|
102
95
|
*/
|
|
103
96
|
export declare function sessionHasWriter(sessionPath: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Take the exclusive writer lease for `sessionPath`, or reject with {@link SessionBusyError}.
|
|
99
|
+
*
|
|
100
|
+
* The lock is a sibling `.lock` file created with `wx` — the same file-existence primitive the
|
|
101
|
+
* SDK's `withFileLock` builds on. Exclusivity comes from the filesystem, so it holds across
|
|
102
|
+
* processes, not just across async tasks in one process.
|
|
103
|
+
*/
|
|
104
104
|
export declare function acquireSessionWriter(sessionPath: string): Promise<SessionWriterLease>;
|
|
@@ -20,6 +20,42 @@
|
|
|
20
20
|
* loops). Helper does NOT cache prepared statements — `better-sqlite3`
|
|
21
21
|
* caches internally; SDK use is one-shot per mutation, not hot loops.
|
|
22
22
|
*
|
|
23
|
-
*
|
|
23
|
+
* NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
|
|
24
|
+
* and TypeScript scans EVERY leading comment range of the declaration that follows, including the
|
|
25
|
+
* import right below this one. The tag that used to sit here deleted that import from the emitted
|
|
26
|
+
* `.d.ts`, leaving the types it binds unresolvable for any consumer running type-aware lint
|
|
27
|
+
* (usetheodev/theokit-sdk#283 records the same trap on a declaration).
|
|
24
28
|
*/
|
|
29
|
+
import type Database from "better-sqlite3";
|
|
30
|
+
type DatabaseInstance = InstanceType<typeof Database>;
|
|
31
|
+
/**
|
|
32
|
+
* Run an UPDATE and report whether it changed exactly the number of rows you expected — the
|
|
33
|
+
* optimistic-concurrency equivalent of taking a lock.
|
|
34
|
+
*
|
|
35
|
+
* `sql` is yours, in full, including the guard that makes it a compare-and-swap: the
|
|
36
|
+
* `WHERE ... AND version = ?` predicate and the `SET version = version + 1` that closes it. This
|
|
37
|
+
* function generates nothing. It prepares the statement, runs it with `params`, and compares
|
|
38
|
+
* `changes` against `expectedChanges` (default 1).
|
|
39
|
+
*
|
|
40
|
+
* `false` means the guard did not match — someone else moved the row first, or the id does not
|
|
41
|
+
* exist. Those two are indistinguishable here; if you need to tell them apart, re-read the row.
|
|
42
|
+
* A `false` return means NOTHING was written, so the caller owns the re-read-and-retry, with
|
|
43
|
+
* whatever backoff it wants. There is no retry loop hidden in here, by design.
|
|
44
|
+
*
|
|
45
|
+
* SQL errors propagate — bad syntax, a closed database, a constraint violation, a busy writer.
|
|
46
|
+
* Only the row-count mismatch is reported as `false`.
|
|
47
|
+
*
|
|
48
|
+
* Runs as a single implicit transaction, so no explicit BEGIN is needed for one statement. Wrap
|
|
49
|
+
* the call yourself when the swap has to commit together with other writes.
|
|
50
|
+
*
|
|
51
|
+
* **Choosing between this and the locks.** `casUpdate` never blocks and never waits: the loser
|
|
52
|
+
* finds out immediately and decides what to do. Prefer it when the contended state is already a
|
|
53
|
+
* row with a version column. When the contended state is a FILE, there is no version column to
|
|
54
|
+
* swap on — use `withFileLock` across processes, or `withCwdMutex` within one. When the goal is
|
|
55
|
+
* to create something exactly once rather than update it, `createExclusive` is the primitive.
|
|
56
|
+
*
|
|
57
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
58
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
59
|
+
*/
|
|
60
|
+
export declare function casUpdate(db: DatabaseInstance, sql: string, params: ReadonlyArray<unknown>, expectedChanges?: number): boolean;
|
|
25
61
|
export {};
|
|
@@ -20,6 +20,42 @@
|
|
|
20
20
|
* loops). Helper does NOT cache prepared statements — `better-sqlite3`
|
|
21
21
|
* caches internally; SDK use is one-shot per mutation, not hot loops.
|
|
22
22
|
*
|
|
23
|
-
*
|
|
23
|
+
* NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
|
|
24
|
+
* and TypeScript scans EVERY leading comment range of the declaration that follows, including the
|
|
25
|
+
* import right below this one. The tag that used to sit here deleted that import from the emitted
|
|
26
|
+
* `.d.ts`, leaving the types it binds unresolvable for any consumer running type-aware lint
|
|
27
|
+
* (usetheodev/theokit-sdk#283 records the same trap on a declaration).
|
|
24
28
|
*/
|
|
29
|
+
import type Database from "better-sqlite3";
|
|
30
|
+
type DatabaseInstance = InstanceType<typeof Database>;
|
|
31
|
+
/**
|
|
32
|
+
* Run an UPDATE and report whether it changed exactly the number of rows you expected — the
|
|
33
|
+
* optimistic-concurrency equivalent of taking a lock.
|
|
34
|
+
*
|
|
35
|
+
* `sql` is yours, in full, including the guard that makes it a compare-and-swap: the
|
|
36
|
+
* `WHERE ... AND version = ?` predicate and the `SET version = version + 1` that closes it. This
|
|
37
|
+
* function generates nothing. It prepares the statement, runs it with `params`, and compares
|
|
38
|
+
* `changes` against `expectedChanges` (default 1).
|
|
39
|
+
*
|
|
40
|
+
* `false` means the guard did not match — someone else moved the row first, or the id does not
|
|
41
|
+
* exist. Those two are indistinguishable here; if you need to tell them apart, re-read the row.
|
|
42
|
+
* A `false` return means NOTHING was written, so the caller owns the re-read-and-retry, with
|
|
43
|
+
* whatever backoff it wants. There is no retry loop hidden in here, by design.
|
|
44
|
+
*
|
|
45
|
+
* SQL errors propagate — bad syntax, a closed database, a constraint violation, a busy writer.
|
|
46
|
+
* Only the row-count mismatch is reported as `false`.
|
|
47
|
+
*
|
|
48
|
+
* Runs as a single implicit transaction, so no explicit BEGIN is needed for one statement. Wrap
|
|
49
|
+
* the call yourself when the swap has to commit together with other writes.
|
|
50
|
+
*
|
|
51
|
+
* **Choosing between this and the locks.** `casUpdate` never blocks and never waits: the loser
|
|
52
|
+
* finds out immediately and decides what to do. Prefer it when the contended state is already a
|
|
53
|
+
* row with a version column. When the contended state is a FILE, there is no version column to
|
|
54
|
+
* swap on — use `withFileLock` across processes, or `withCwdMutex` within one. When the goal is
|
|
55
|
+
* to create something exactly once rather than update it, `createExclusive` is the primitive.
|
|
56
|
+
*
|
|
57
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
58
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
59
|
+
*/
|
|
60
|
+
export declare function casUpdate(db: DatabaseInstance, sql: string, params: ReadonlyArray<unknown>, expectedChanges?: number): boolean;
|
|
25
61
|
export {};
|
|
@@ -23,6 +23,20 @@ export interface ResilientSqliteDb {
|
|
|
23
23
|
exec(sql: string): void;
|
|
24
24
|
close(): void;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Input to {@link openSqliteResilient}.
|
|
28
|
+
*
|
|
29
|
+
* The trap is `recoverCorrupt`, whose default is ON. When the driver reports a corrupt or encrypted
|
|
30
|
+
* database, the file is renamed aside and a FRESH one is opened — so the call SUCCEEDS and hands
|
|
31
|
+
* back an EMPTY database. The old bytes survive on disk under the renamed path, but a caller that
|
|
32
|
+
* treats a resolved promise as "my data is here" is wrong exactly when it matters. Pass
|
|
33
|
+
* `recoverCorrupt: false` to get the corruption error thrown instead.
|
|
34
|
+
*
|
|
35
|
+
* Semver-exempt: reachable via the '@theokit/sdk/internal/persistence' sub-path, which the package
|
|
36
|
+
* declares in 'exports' but does NOT cover with its semver contract.
|
|
37
|
+
*
|
|
38
|
+
* @typeParam T - the concrete DB handle the driver returns; defaults to {@link ResilientSqliteDb}
|
|
39
|
+
*/
|
|
26
40
|
export interface OpenSqliteResilientOptions<T extends ResilientSqliteDb> {
|
|
27
41
|
/** Absolute path to the SQLite file. Parent directories are created. */
|
|
28
42
|
filePath: string;
|
|
@@ -23,6 +23,20 @@ export interface ResilientSqliteDb {
|
|
|
23
23
|
exec(sql: string): void;
|
|
24
24
|
close(): void;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Input to {@link openSqliteResilient}.
|
|
28
|
+
*
|
|
29
|
+
* The trap is `recoverCorrupt`, whose default is ON. When the driver reports a corrupt or encrypted
|
|
30
|
+
* database, the file is renamed aside and a FRESH one is opened — so the call SUCCEEDS and hands
|
|
31
|
+
* back an EMPTY database. The old bytes survive on disk under the renamed path, but a caller that
|
|
32
|
+
* treats a resolved promise as "my data is here" is wrong exactly when it matters. Pass
|
|
33
|
+
* `recoverCorrupt: false` to get the corruption error thrown instead.
|
|
34
|
+
*
|
|
35
|
+
* Semver-exempt: reachable via the '@theokit/sdk/internal/persistence' sub-path, which the package
|
|
36
|
+
* declares in 'exports' but does NOT cover with its semver contract.
|
|
37
|
+
*
|
|
38
|
+
* @typeParam T - the concrete DB handle the driver returns; defaults to {@link ResilientSqliteDb}
|
|
39
|
+
*/
|
|
26
40
|
export interface OpenSqliteResilientOptions<T extends ResilientSqliteDb> {
|
|
27
41
|
/** Absolute path to the SQLite file. Parent directories are created. */
|
|
28
42
|
filePath: string;
|
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite WAL mode helper with NFS/SMB/FUSE fallback to DELETE (ADR D63).
|
|
3
|
+
*
|
|
4
|
+
* WAL is faster (concurrent readers + one writer) but unsupported on some
|
|
5
|
+
* network/FUSE filesystems. Try WAL; if the pragma returns something else
|
|
6
|
+
* or throws, fall back to DELETE journal mode. Warn one time per label.
|
|
7
|
+
*
|
|
8
|
+
* This block is the MODULE header and must stay at offset 0. Sitting below the import it became a
|
|
9
|
+
* leading comment of the first declaration instead, which is how its tag deleted `PragmaCapable`
|
|
10
|
+
* from the emitted `.d.ts` while `applyWalWithFallback` — which names it — survived.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* The narrow slice of a SQLite handle this module needs: anything with a `pragma()` method, which
|
|
14
|
+
* `better-sqlite3` satisfies without being named here.
|
|
15
|
+
*
|
|
16
|
+
* Not exported, but it appears in the signature of `applyWalWithFallback`, so it is emitted into
|
|
17
|
+
* the published declarations and a consumer can structurally satisfy it.
|
|
18
|
+
*/
|
|
19
|
+
interface PragmaCapable {
|
|
20
|
+
pragma: (statement: string, options?: {
|
|
21
|
+
simple?: boolean;
|
|
22
|
+
}) => unknown;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* What journal mode a connection ended up in after `applyWalWithFallback`.
|
|
26
|
+
*
|
|
27
|
+
* `mode` is the mode actually in effect, never the one that was requested. `fellBack` is `true`
|
|
28
|
+
* only when WAL was attempted and refused — either the pragma threw or it reported a mode other
|
|
29
|
+
* than `wal` — and the connection was put into DELETE instead.
|
|
30
|
+
*
|
|
31
|
+
* `fellBack: true` is normal on NFS, SMB and FUSE, where WAL needs shared memory the filesystem
|
|
32
|
+
* does not provide. It is not an error and nothing further is required of the caller; the
|
|
33
|
+
* consequence is slower concurrent access, since DELETE mode does not allow readers alongside a
|
|
34
|
+
* writer. Treat it as a signal about the storage, not about the database.
|
|
35
|
+
*
|
|
36
|
+
* @public — re-exported from the semver-protected `@theokit/sdk/persistence` barrel, and (for
|
|
37
|
+
* back-compat) from the semver-exempt `@theokit/sdk/internal/persistence` alias.
|
|
38
|
+
*/
|
|
39
|
+
export interface WalApplyResult {
|
|
40
|
+
/** Final journal_mode actually in effect. */
|
|
41
|
+
mode: "wal" | "delete";
|
|
42
|
+
/** True if we wanted WAL but the filesystem refused. */
|
|
43
|
+
fellBack: boolean;
|
|
44
|
+
}
|
|
1
45
|
/**
|
|
2
46
|
* Apply WAL mode with DELETE fallback. Idempotent — safe to call multiple
|
|
3
47
|
* times on the same connection.
|
|
@@ -7,3 +51,4 @@
|
|
|
7
51
|
*
|
|
8
52
|
*/
|
|
9
53
|
export declare function applyWalWithFallback(db: PragmaCapable, label: string): WalApplyResult;
|
|
54
|
+
export {};
|
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite WAL mode helper with NFS/SMB/FUSE fallback to DELETE (ADR D63).
|
|
3
|
+
*
|
|
4
|
+
* WAL is faster (concurrent readers + one writer) but unsupported on some
|
|
5
|
+
* network/FUSE filesystems. Try WAL; if the pragma returns something else
|
|
6
|
+
* or throws, fall back to DELETE journal mode. Warn one time per label.
|
|
7
|
+
*
|
|
8
|
+
* This block is the MODULE header and must stay at offset 0. Sitting below the import it became a
|
|
9
|
+
* leading comment of the first declaration instead, which is how its tag deleted `PragmaCapable`
|
|
10
|
+
* from the emitted `.d.ts` while `applyWalWithFallback` — which names it — survived.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* The narrow slice of a SQLite handle this module needs: anything with a `pragma()` method, which
|
|
14
|
+
* `better-sqlite3` satisfies without being named here.
|
|
15
|
+
*
|
|
16
|
+
* Not exported, but it appears in the signature of `applyWalWithFallback`, so it is emitted into
|
|
17
|
+
* the published declarations and a consumer can structurally satisfy it.
|
|
18
|
+
*/
|
|
19
|
+
interface PragmaCapable {
|
|
20
|
+
pragma: (statement: string, options?: {
|
|
21
|
+
simple?: boolean;
|
|
22
|
+
}) => unknown;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* What journal mode a connection ended up in after `applyWalWithFallback`.
|
|
26
|
+
*
|
|
27
|
+
* `mode` is the mode actually in effect, never the one that was requested. `fellBack` is `true`
|
|
28
|
+
* only when WAL was attempted and refused — either the pragma threw or it reported a mode other
|
|
29
|
+
* than `wal` — and the connection was put into DELETE instead.
|
|
30
|
+
*
|
|
31
|
+
* `fellBack: true` is normal on NFS, SMB and FUSE, where WAL needs shared memory the filesystem
|
|
32
|
+
* does not provide. It is not an error and nothing further is required of the caller; the
|
|
33
|
+
* consequence is slower concurrent access, since DELETE mode does not allow readers alongside a
|
|
34
|
+
* writer. Treat it as a signal about the storage, not about the database.
|
|
35
|
+
*
|
|
36
|
+
* @public — re-exported from the semver-protected `@theokit/sdk/persistence` barrel, and (for
|
|
37
|
+
* back-compat) from the semver-exempt `@theokit/sdk/internal/persistence` alias.
|
|
38
|
+
*/
|
|
39
|
+
export interface WalApplyResult {
|
|
40
|
+
/** Final journal_mode actually in effect. */
|
|
41
|
+
mode: "wal" | "delete";
|
|
42
|
+
/** True if we wanted WAL but the filesystem refused. */
|
|
43
|
+
fellBack: boolean;
|
|
44
|
+
}
|
|
1
45
|
/**
|
|
2
46
|
* Apply WAL mode with DELETE fallback. Idempotent — safe to call multiple
|
|
3
47
|
* times on the same connection.
|
|
@@ -7,3 +51,4 @@
|
|
|
7
51
|
*
|
|
8
52
|
*/
|
|
9
53
|
export declare function applyWalWithFallback(db: PragmaCapable, label: string): WalApplyResult;
|
|
54
|
+
export {};
|
|
@@ -70,7 +70,6 @@ export declare function forkTranscript(src: string, dst: string, options?: ForkT
|
|
|
70
70
|
export interface ReadJsonlTailOptions {
|
|
71
71
|
/** Maximum records to return, counted from the END. */
|
|
72
72
|
readonly maxRecords?: number;
|
|
73
|
-
/** Stop once a line contains this marker (exclusive). */
|
|
74
73
|
/**
|
|
75
74
|
* Start the window AFTER the last record whose `subtype` (or `type`) equals this.
|
|
76
75
|
*
|
|
@@ -81,4 +80,11 @@ export interface ReadJsonlTailOptions {
|
|
|
81
80
|
/** Test-only: also report how many bytes were read, to prove the read is not whole-file. */
|
|
82
81
|
readonly _stats?: boolean;
|
|
83
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Read the LAST records of a JSONL file without loading the whole thing.
|
|
85
|
+
*
|
|
86
|
+
* Reads fixed-size chunks backwards from EOF until enough newlines have been seen. A session
|
|
87
|
+
* transcript grows without bound; loading megabytes to show the last three turns is the cost this
|
|
88
|
+
* exists to avoid — and a `slice` over a full read would be that same cost with a better name.
|
|
89
|
+
*/
|
|
84
90
|
export declare function readJsonlTail<T = Record<string, unknown>>(path: string, options?: ReadJsonlTailOptions): T[];
|
|
@@ -70,7 +70,6 @@ export declare function forkTranscript(src: string, dst: string, options?: ForkT
|
|
|
70
70
|
export interface ReadJsonlTailOptions {
|
|
71
71
|
/** Maximum records to return, counted from the END. */
|
|
72
72
|
readonly maxRecords?: number;
|
|
73
|
-
/** Stop once a line contains this marker (exclusive). */
|
|
74
73
|
/**
|
|
75
74
|
* Start the window AFTER the last record whose `subtype` (or `type`) equals this.
|
|
76
75
|
*
|
|
@@ -81,4 +80,11 @@ export interface ReadJsonlTailOptions {
|
|
|
81
80
|
/** Test-only: also report how many bytes were read, to prove the read is not whole-file. */
|
|
82
81
|
readonly _stats?: boolean;
|
|
83
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Read the LAST records of a JSONL file without loading the whole thing.
|
|
85
|
+
*
|
|
86
|
+
* Reads fixed-size chunks backwards from EOF until enough newlines have been seen. A session
|
|
87
|
+
* transcript grows without bound; loading megabytes to show the last three turns is the cost this
|
|
88
|
+
* exists to avoid — and a `slice` over a full read would be that same cost with a better name.
|
|
89
|
+
*/
|
|
84
90
|
export declare function readJsonlTail<T = Record<string, unknown>>(path: string, options?: ReadJsonlTailOptions): T[];
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
13
|
import type { Plugin as PluginType } from "../../types/plugin.js";
|
|
14
|
-
export type { CommandHandler, CommandOptions, HookHandler, HookName, LlmCallContext, PluginContext, PostAssistantReplyContext, PostToolCallContext, PreToolCallContext, PreToolCallDecision, PreUserSendContext, PreUserSendResult, SessionLifecycleContext, ToolCallSummary, ToolContext, ToolResultTransformContext, TransformContext, } from "../../types/plugin.js";
|
|
14
|
+
export type { CommandHandler, CommandOptions, HookHandler, HookName, LlmCallContext, MemoryProviderFactory, PluginContext, PostAssistantReplyContext, PostToolCallContext, PreToolCallContext, PreToolCallDecision, PreUserSendContext, PreUserSendResult, SessionLifecycleContext, ToolCallSummary, ToolContext, ToolResultTransformContext, TransformContext, } from "../../types/plugin.js";
|
|
15
15
|
export type Plugin = PluginType;
|
|
16
16
|
/**
|
|
17
17
|
* Identity helper for plugin authors. TS-only convenience — preserves
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
13
|
import type { Plugin as PluginType } from "../../types/plugin.js";
|
|
14
|
-
export type { CommandHandler, CommandOptions, HookHandler, HookName, LlmCallContext, PluginContext, PostAssistantReplyContext, PostToolCallContext, PreToolCallContext, PreToolCallDecision, PreUserSendContext, PreUserSendResult, SessionLifecycleContext, ToolCallSummary, ToolContext, ToolResultTransformContext, TransformContext, } from "../../types/plugin.js";
|
|
14
|
+
export type { CommandHandler, CommandOptions, HookHandler, HookName, LlmCallContext, MemoryProviderFactory, PluginContext, PostAssistantReplyContext, PostToolCallContext, PreToolCallContext, PreToolCallDecision, PreUserSendContext, PreUserSendResult, SessionLifecycleContext, ToolCallSummary, ToolContext, ToolResultTransformContext, TransformContext, } from "../../types/plugin.js";
|
|
15
15
|
export type Plugin = PluginType;
|
|
16
16
|
/**
|
|
17
17
|
* Identity helper for plugin authors. TS-only convenience — preserves
|
|
@@ -1,2 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M43 — the ChatGPT "Codex" backend as a first-class builtin `ProviderProfile`. Migrated from the
|
|
3
|
+
* agent-builder M40 workaround; the SDK now owns the provider, so a consumer only selects
|
|
4
|
+
* `openai-chatgpt/<model>` and logs in — ZERO provider logic in the consumer.
|
|
5
|
+
*
|
|
6
|
+
* The provider-auth model (see the codex-provider-in-sdk blueprint):
|
|
7
|
+
* - static profile + a `transform.fetch` that resolves the LIVE credential per HTTP request (fresh Bearer +
|
|
8
|
+
* dynamic `ChatGPT-Account-Id`), so a mid-turn expiry refreshes transparently with NO agent rebuild;
|
|
9
|
+
* - the protocol values (endpoint, models, oauth config, `originator` header) are SDK-owned constants.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
1
13
|
import type { ProviderProfile } from "../types.js";
|
|
2
14
|
export declare const OPENAI_CHATGPT: ProviderProfile;
|
|
@@ -38,6 +38,14 @@ export interface CatalogEntry {
|
|
|
38
38
|
*/
|
|
39
39
|
models?: Record<string, CatalogModel>;
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Look up per-model catalog data by `provider/model` key.
|
|
43
|
+
*
|
|
44
|
+
* Semver-exempt: not declared in `package.json` `exports`, but re-exported by
|
|
45
|
+
* `catalog-source-models-dev.ts`, whose declaration is reachable from published entries — so it
|
|
46
|
+
* must be EMITTED.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getCatalogModelInfo(key: string): CatalogModel | undefined;
|
|
41
49
|
interface LoadOptions {
|
|
42
50
|
_testInjectMalformed?: boolean;
|
|
43
51
|
}
|