@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,176 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
user-invocable: false
|
|
3
|
-
description: Memory API, embedding providers, dreaming, active recall, and backends for @theokit/sdk.
|
|
4
|
-
paths:
|
|
5
|
-
- "**/*memory*"
|
|
6
|
-
- "**/*Memory*"
|
|
7
|
-
- "**/*embed*"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# TheoKit SDK -- Memory
|
|
11
|
-
|
|
12
|
-
Quick reference for durable memory, embedding providers, dreaming, and backends.
|
|
13
|
-
|
|
14
|
-
## Enabling memory on an agent
|
|
15
|
-
|
|
16
|
-
```typescript
|
|
17
|
-
import { Agent } from "@theokit/sdk";
|
|
18
|
-
|
|
19
|
-
const agent = await Agent.create({
|
|
20
|
-
apiKey: process.env.THEOKIT_API_KEY!,
|
|
21
|
-
model: { id: "google/gemini-2.0-flash-001" },
|
|
22
|
-
local: { cwd: process.cwd() },
|
|
23
|
-
memory: {
|
|
24
|
-
enabled: true,
|
|
25
|
-
namespace: "my-app",
|
|
26
|
-
userId: "user-123",
|
|
27
|
-
scope: "user",
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
await (await agent.send("Remember: my preferred test runner is Vitest.")).wait();
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## MemoryOptions
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
interface MemoryOptions {
|
|
38
|
-
enabled: boolean;
|
|
39
|
-
namespace?: string; // separates application domains
|
|
40
|
-
userId?: string; // isolates user memories
|
|
41
|
-
scope?: "agent" | "user" | "team";
|
|
42
|
-
storePath?: string; // relative to workspace; cannot escape
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Scopes
|
|
47
|
-
|
|
48
|
-
| Scope | Use for |
|
|
49
|
-
|---|---|
|
|
50
|
-
| `"agent"` | Durable state for one agent ID. Default scope. |
|
|
51
|
-
| `"user"` | Stable user preferences across agent instances. Requires `userId`. |
|
|
52
|
-
| `"team"` | Shared team facts safe for every authorized caller. |
|
|
53
|
-
|
|
54
|
-
## Safety rules
|
|
55
|
-
|
|
56
|
-
- Memory MUST NOT store API keys, bearer tokens, passwords, or credential material.
|
|
57
|
-
- Local `storePath` is resolved relative to the workspace. Path traversal raises `ConfigurationError`.
|
|
58
|
-
- Memory is durable by `{ namespace, userId, scope }`, not by JavaScript process.
|
|
59
|
-
|
|
60
|
-
## SDKMemoryManager
|
|
61
|
-
|
|
62
|
-
```typescript
|
|
63
|
-
interface SDKMemoryManager {
|
|
64
|
-
// Reserved for explicit inspection and deletion APIs.
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
The agent uses memory during runs automatically. Public management APIs are narrow until deletion and audit semantics are finalized.
|
|
69
|
-
|
|
70
|
-
## Memory backends (v1.2+)
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
import { Memory } from "@theokit/sdk";
|
|
74
|
-
|
|
75
|
-
const memory = await Memory.create({
|
|
76
|
-
cwd: process.cwd(),
|
|
77
|
-
index: {
|
|
78
|
-
backend: "sqlite-vec", // default
|
|
79
|
-
embedding: { provider: "openai", model: "text-embedding-3-small" },
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
// Or use LanceDB for >100k facts:
|
|
84
|
-
const memory = await Memory.create({
|
|
85
|
-
cwd: process.cwd(),
|
|
86
|
-
index: {
|
|
87
|
-
backend: "lance",
|
|
88
|
-
embedding: { provider: "openai", model: "text-embedding-3-small" },
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
- `@lancedb/lancedb` is an optional peer dep. If missing with `backend: "lance"`, throws `ConfigurationError(code: "lance_backend_unavailable")`.
|
|
94
|
-
- Embedding dimension validated when opening existing index. Mismatch throws `ConfigurationError(code: "embedding_dimension_mismatch")`.
|
|
95
|
-
|
|
96
|
-
## Embedding providers (ADR D11)
|
|
97
|
-
|
|
98
|
-
Locked provider union: `openai`, `mistral`, `openrouter`, `voyage`, `deepinfra`.
|
|
99
|
-
|
|
100
|
-
```typescript
|
|
101
|
-
index: {
|
|
102
|
-
embedding: {
|
|
103
|
-
provider: "openai",
|
|
104
|
-
model: "text-embedding-3-small",
|
|
105
|
-
},
|
|
106
|
-
}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Each provider adapter implements:
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
112
|
-
interface EmbeddingAdapter {
|
|
113
|
-
id: string;
|
|
114
|
-
model: string;
|
|
115
|
-
dimension: number;
|
|
116
|
-
embed(texts: string[]): Promise<number[][]>;
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## Memory migration CLI (v1.2+)
|
|
121
|
-
|
|
122
|
-
Migrate SQLite memory index to LanceDB without data loss:
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
# Dry-run (preview, no writes)
|
|
126
|
-
pnpm exec theokit-migrate-memory --cwd . --dry-run
|
|
127
|
-
|
|
128
|
-
# Real migration
|
|
129
|
-
pnpm exec theokit-migrate-memory --cwd .
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Options: `--cwd <path>`, `--dry-run`, `--keep-sqlite`, `--batch-size <n>`.
|
|
133
|
-
|
|
134
|
-
Algorithm: read SQLite, write to staging `lance-new/`, validate count + sample text match, atomic rename, prompt to delete SQLite.
|
|
135
|
-
|
|
136
|
-
## Dreaming (consolidation sweeps)
|
|
137
|
-
|
|
138
|
-
```typescript
|
|
139
|
-
await Memory.runDreamingSweep({
|
|
140
|
-
cwd: process.cwd(),
|
|
141
|
-
embedding: { provider: "openai", model: "text-embedding-3-small" },
|
|
142
|
-
});
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
Dreaming consolidates redundant facts into compressed summaries. In v1.x, consolidation is deterministic only (no LLM-mediated narrative). LLM narrative mode is deferred.
|
|
146
|
-
|
|
147
|
-
## Active recall
|
|
148
|
-
|
|
149
|
-
Active recall queries memory during `agent.send` to inject relevant facts into the LLM context. Configured via the memory options on the agent. Query modes:
|
|
150
|
-
|
|
151
|
-
- `"embedding"` -- cosine similarity search against the vector index.
|
|
152
|
-
- `"keyword"` -- keyword-based search.
|
|
153
|
-
- `"hybrid"` -- combines embedding and keyword results.
|
|
154
|
-
|
|
155
|
-
## Semantic cache (related)
|
|
156
|
-
|
|
157
|
-
`Cache.semantic` from `@theokit/sdk` reuses embedding adapters for LLM response caching with cosine-similarity matching. See the cache documentation for details.
|
|
158
|
-
|
|
159
|
-
## Resume behavior
|
|
160
|
-
|
|
161
|
-
Memory is durable by `{ namespace, userId, scope }`, not by process. Recreating or resuming an agent with the same memory config can recall durable facts. Inline secrets and MCP servers are NOT persisted through memory.
|
|
162
|
-
|
|
163
|
-
## Conversation storage (pluggable persistence)
|
|
164
|
-
|
|
165
|
-
```typescript
|
|
166
|
-
import { Agent, InMemoryConversationStorage } from "@theokit/sdk";
|
|
167
|
-
|
|
168
|
-
const agent = await Agent.create({
|
|
169
|
-
apiKey, model,
|
|
170
|
-
conversationStorage: new InMemoryConversationStorage(),
|
|
171
|
-
});
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
Built-in adapters: `FileSystemConversationStorage`, `InMemoryConversationStorage`. Custom adapters implement `ConversationStorageAdapter`.
|
|
175
|
-
|
|
176
|
-
When using custom storage, `Agent.resume` requires the adapter to be passed again -- silent FS fallback is rejected with `ConfigurationError(code: "conversation_storage_required")`.
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
user-invocable: false
|
|
3
|
-
paths:
|
|
4
|
-
- "**/*message*"
|
|
5
|
-
- "**/*Message*"
|
|
6
|
-
description: TheoKit SDK message readers — assistantText, extractToolUses, costAmountUsd over the SDKMessage stream
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# TheoKit Messages
|
|
10
|
-
|
|
11
|
-
Pure readers over the `SDKMessage` stream — no I/O, no mutation, deterministic.
|
|
12
|
-
Use these instead of re-implementing a wire-event mapper.
|
|
13
|
-
|
|
14
|
-
```typescript
|
|
15
|
-
import { assistantText, extractToolUses, costAmountUsd } from "@theokit/sdk/messages";
|
|
16
|
-
import type { SDKMessage, ToolUseBlock } from "@theokit/sdk";
|
|
17
|
-
import type { CostBreakdown } from "@theokit/sdk";
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## `assistantText(msg)` — concatenate assistant text blocks
|
|
21
|
-
|
|
22
|
-
Returns `""` for any non-assistant message (or an assistant with no text
|
|
23
|
-
blocks). `tool_use` blocks are ignored — only `text` blocks contribute.
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
for await (const event of run.stream()) {
|
|
27
|
-
// event is an SDKMessage; assistantText is safe on any variant
|
|
28
|
-
const text = assistantText(event);
|
|
29
|
-
if (text) process.stdout.write(text);
|
|
30
|
-
}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## `extractToolUses(msg)` — read assistant `ToolUseBlock`s
|
|
34
|
-
|
|
35
|
-
Returns `[]` for any non-assistant message. This reads the assistant message's
|
|
36
|
-
content blocks — NOT the separate `tool_call` lifecycle event (a different
|
|
37
|
-
stream). Tool `input` is `unknown`; parse it defensively.
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
const uses: ToolUseBlock[] = extractToolUses(event);
|
|
41
|
-
for (const use of uses) {
|
|
42
|
-
console.log(use.name, use.id); // use.input is `unknown` — validate before use
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## `costAmountUsd(cost)` — honesty-preserving cost read
|
|
47
|
-
|
|
48
|
-
Returns `number | undefined`. `undefined` means "cost unknown" — distinct from a
|
|
49
|
-
real `$0` (e.g. a subscription-included route). NEVER coerced to 0.
|
|
50
|
-
|
|
51
|
-
```typescript
|
|
52
|
-
const amount = costAmountUsd(cost); // cost: CostBreakdown | undefined
|
|
53
|
-
if (amount === undefined) {
|
|
54
|
-
console.log("cost unknown");
|
|
55
|
-
} else {
|
|
56
|
-
console.log(`$${amount.toFixed(4)}`);
|
|
57
|
-
}
|
|
58
|
-
```
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
user-invocable: false
|
|
3
|
-
paths:
|
|
4
|
-
- "**/*model*"
|
|
5
|
-
- "**/*Model*"
|
|
6
|
-
description: TheoKit SDK model helpers — @theokit/sdk/models (parseModelId, resolveModelCapabilities, toModelOption, humanizeModelName); API catalog via Theokit.models.list()
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# TheoKit Models
|
|
10
|
-
|
|
11
|
-
Pure, sync, offline helpers for model ids. No network — these read a static catalog
|
|
12
|
-
and parse strings. For the live API-backed catalog, use `Theokit.models.list()` from
|
|
13
|
-
the main `@theokit/sdk` barrel.
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
import {
|
|
17
|
-
parseModelId,
|
|
18
|
-
resolveModelCapabilities,
|
|
19
|
-
toModelOption,
|
|
20
|
-
humanizeModelName,
|
|
21
|
-
type ModelCapabilities,
|
|
22
|
-
type ModelOption,
|
|
23
|
-
type ParsedModelId,
|
|
24
|
-
} from "@theokit/sdk/models";
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Parse a model id
|
|
28
|
-
|
|
29
|
-
`parseModelId` splits on the first `/` into `{ provider, name }`. No `/` means
|
|
30
|
-
`provider` is `undefined` (so callers can fall back to env-var detection). Tag
|
|
31
|
-
suffixes like `:3b` / `:latest` stay part of `name`.
|
|
32
|
-
|
|
33
|
-
```typescript
|
|
34
|
-
const a: ParsedModelId = parseModelId("anthropic/claude-3-5-sonnet");
|
|
35
|
-
// { provider: "anthropic", name: "claude-3-5-sonnet" }
|
|
36
|
-
|
|
37
|
-
const b = parseModelId("openrouter/meta-llama/llama-3");
|
|
38
|
-
// { provider: "openrouter", name: "meta-llama/llama-3" } (embedded slash kept)
|
|
39
|
-
|
|
40
|
-
const c = parseModelId("claude-sonnet-4-6");
|
|
41
|
-
// { provider: undefined, name: "claude-sonnet-4-6" }
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Gate features by capability
|
|
45
|
-
|
|
46
|
-
`resolveModelCapabilities` returns typed flags + token limits from an OFFLINE
|
|
47
|
-
catalog. It strips routing prefixes (`openrouter/`/`vertex/`/`bedrock/`) and the
|
|
48
|
-
OpenRouter `:variant` suffix before lookup; unknown models get conservative defaults.
|
|
49
|
-
|
|
50
|
-
```typescript
|
|
51
|
-
const caps: ModelCapabilities = resolveModelCapabilities("anthropic/claude-3-5-sonnet");
|
|
52
|
-
// { supportsVision, supportsStructuredOutput, supportsToolUse,
|
|
53
|
-
// supportsCacheControl, maxContextTokens, maxOutputTokens }
|
|
54
|
-
|
|
55
|
-
if (!caps.supportsVision) {
|
|
56
|
-
throw new Error("This model cannot accept images");
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Build dropdown options
|
|
61
|
-
|
|
62
|
-
`humanizeModelName` produces a best-effort label; `toModelOption` composes it with
|
|
63
|
-
`parseModelId` into `{ value, label, provider }`.
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
humanizeModelName("anthropic/claude-3-5-sonnet"); // "Claude 3 5 Sonnet"
|
|
67
|
-
|
|
68
|
-
const opt: ModelOption = toModelOption("openrouter/meta-llama/llama-3");
|
|
69
|
-
// { value: "openrouter/meta-llama/llama-3", label: "...", provider: "openrouter" }
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Live catalog (API-backed)
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
import { Theokit } from "@theokit/sdk";
|
|
76
|
-
|
|
77
|
-
const models = await Theokit.models.list({ apiKey: process.env.THEOKIT_API_KEY });
|
|
78
|
-
const options: ModelOption[] = models.map((m) => toModelOption(m.id));
|
|
79
|
-
```
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
user-invocable: false
|
|
3
|
-
description: Path-traversal, symlink-escape, and forbidden-path guards from @theokit/sdk/path-safety for agent file I/O.
|
|
4
|
-
paths:
|
|
5
|
-
- "**/*path-safety*"
|
|
6
|
-
- "**/*pathsafety*"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# TheoKit SDK -- Path Safety
|
|
10
|
-
|
|
11
|
-
TOCTOU-safe path primitives to wire wherever user input becomes a filesystem path in a custom tool. `safePathJoin` resolves then prefix-checks; `assertNoSymlinkEscape` resolves the whole symlink chain via `realpathSync`; `isForbiddenPath` blocks sensitive files even when they are lexically inside the project.
|
|
12
|
-
|
|
13
|
-
## Import
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
import {
|
|
17
|
-
safePathJoin,
|
|
18
|
-
assertNoSymlinkEscape,
|
|
19
|
-
isForbiddenPath,
|
|
20
|
-
safeFilenameForId,
|
|
21
|
-
sanitizeIdentifier,
|
|
22
|
-
PathTraversalError,
|
|
23
|
-
ForbiddenPathError,
|
|
24
|
-
} from "@theokit/sdk/path-safety";
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Signatures
|
|
28
|
-
|
|
29
|
-
```typescript
|
|
30
|
-
function safePathJoin(base: string, ...parts: string[]): string; // throws PathTraversalError on escape
|
|
31
|
-
function assertNoSymlinkEscape(path: string, base: string): void; // throws PathTraversalError on symlink escape
|
|
32
|
-
function isForbiddenPath(input: string): boolean; // true for .env*, .git/, node_modules/, .theo/, lock files
|
|
33
|
-
function safeFilenameForId(id: string, options?: { maxLen?: number }): string; // total: passthrough or h-<16hex>
|
|
34
|
-
function sanitizeIdentifier(input: string, options?: { maxLen?: number }): string; // grammar ^[a-z0-9][a-z0-9-_]*$
|
|
35
|
-
|
|
36
|
-
class PathTraversalError extends ConfigurationError { constructor(input: string, resolvedPath: string); } // code "path_traversal"
|
|
37
|
-
class ForbiddenPathError extends ConfigurationError { constructor(path: string); } // code "forbidden_path"
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Guard a tool's file read
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
const projectRoot = process.cwd();
|
|
44
|
-
|
|
45
|
-
function resolveUserPath(userPath: string): string {
|
|
46
|
-
if (isForbiddenPath(userPath)) throw new ForbiddenPathError(userPath);
|
|
47
|
-
const safe = safePathJoin(projectRoot, userPath); // throws PathTraversalError on "../" escape
|
|
48
|
-
assertNoSymlinkEscape(safe, projectRoot); // throws PathTraversalError on symlink escape
|
|
49
|
-
return safe;
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Derive a safe filename from an opaque id
|
|
54
|
-
|
|
55
|
-
`safeFilenameForId` never throws on a non-empty string: it returns the id verbatim when it already matches the safe grammar, otherwise a deterministic `h-<16 hex>` sha256 token.
|
|
56
|
-
|
|
57
|
-
```typescript
|
|
58
|
-
safeFilenameForId("550e8400-e29b-41d4-a716-446655440000"); // passthrough
|
|
59
|
-
safeFilenameForId("user@example.com"); // "h-<16hex>"
|
|
60
|
-
```
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
user-invocable: false
|
|
3
|
-
paths:
|
|
4
|
-
- "**/*persist*"
|
|
5
|
-
- "**/*Persist*"
|
|
6
|
-
- "**/*.jsonl"
|
|
7
|
-
- "**/*sqlite*"
|
|
8
|
-
description: TheoKit SDK persistence primitives — atomic writes, JSONL persist/resume, resilient SQLite, cross-process locks
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# TheoKit Persistence
|
|
12
|
-
|
|
13
|
-
Durable, crash-safe persistence helpers on the STABLE `@theokit/sdk/persistence`
|
|
14
|
-
sub-path. Do NOT import them from `@theokit/sdk/internal/persistence` (semver-exempt).
|
|
15
|
-
|
|
16
|
-
```ts
|
|
17
|
-
import {
|
|
18
|
-
// atomic writes
|
|
19
|
-
replaceFileAtomic, atomicWriteText, atomicWriteJson,
|
|
20
|
-
// jsonl persist/resume
|
|
21
|
-
appendJsonl, loadJsonl, readJsonlIds, JsonlParseError,
|
|
22
|
-
// resilient sqlite
|
|
23
|
-
openSqliteResilient, applyWalWithFallback, isCorruptionError, sanitizeFts5Query,
|
|
24
|
-
// locks
|
|
25
|
-
withFileLock, withCwdMutex,
|
|
26
|
-
// misc
|
|
27
|
-
PersistenceSchema, transcriptPath, encodeProjectDir,
|
|
28
|
-
} from "@theokit/sdk/persistence";
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Atomic writes
|
|
32
|
-
|
|
33
|
-
Crash mid-write leaves either the old file intact or the new file complete —
|
|
34
|
-
never a half-written file (temp + fsync + rename). `atomicWriteJson` /
|
|
35
|
-
`atomicWriteText` auto-`mkdir` the parent dir; `replaceFileAtomic` does not.
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
await replaceFileAtomic("/data/config.md", markdown); // (filePath, content)
|
|
39
|
-
await atomicWriteText("/data/notes.txt", text); // + auto-mkdir
|
|
40
|
-
await atomicWriteJson("/data/state.json", { runs: 3 }); // default indent 2, trailing \n
|
|
41
|
-
await atomicWriteJson("/data/state.json", data, { indent: 0, trailingNewline: false });
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## JSONL persist / resume
|
|
45
|
-
|
|
46
|
-
`appendJsonl` writes one `\n`-terminated line per record (synchronous, interleave-safe
|
|
47
|
-
within a process). Resume a crashed batch by reading already-persisted keys.
|
|
48
|
-
|
|
49
|
-
```ts
|
|
50
|
-
appendJsonl("/data/results.jsonl", { id: "task-1", status: "passed" });
|
|
51
|
-
|
|
52
|
-
// Skip rows already done (partial trailing line tolerated; missing file -> empty set)
|
|
53
|
-
const done = readJsonlIds("/data/results.jsonl", (row) =>
|
|
54
|
-
row.status === "passed" ? String(row.id) : undefined,
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
// loadJsonl throws JsonlParseError (with 1-based .line) on a malformed line
|
|
58
|
-
const rows = loadJsonl<{ id: string }>("/data/results.jsonl");
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Resilient SQLite
|
|
62
|
-
|
|
63
|
-
`openSqliteResilient` loads the driver, applies WAL (with DELETE fallback), and
|
|
64
|
-
recovers from corruption by renaming the file aside. Apply schema in `onOpen`.
|
|
65
|
-
|
|
66
|
-
```ts
|
|
67
|
-
const db = await openSqliteResilient({
|
|
68
|
-
filePath: "/data/index.db",
|
|
69
|
-
label: "memory-index",
|
|
70
|
-
onOpen: (db) => db.exec("CREATE TABLE IF NOT EXISTS docs (id TEXT PRIMARY KEY)"),
|
|
71
|
-
});
|
|
72
|
-
applyWalWithFallback(db, "memory-index"); // { mode: "wal"|"delete", fellBack }
|
|
73
|
-
const q = sanitizeFts5Query("error-code"); // "" means caller must short-circuit
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Locks
|
|
77
|
-
|
|
78
|
-
`withFileLock` takes a cross-process lock (needs the `proper-lockfile` peer dep;
|
|
79
|
-
falls back to in-process `withCwdMutex` with a warning). `withCwdMutex` serializes
|
|
80
|
-
by key within one process.
|
|
81
|
-
|
|
82
|
-
```ts
|
|
83
|
-
await withFileLock("/data/state.json", async () => { /* exclusive section */ });
|
|
84
|
-
await withCwdMutex("migrate-config", async () => { /* in-process critical section */ });
|
|
85
|
-
```
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
user-invocable: false
|
|
3
|
-
paths:
|
|
4
|
-
- "**/*project*"
|
|
5
|
-
- "**/*Project*"
|
|
6
|
-
- "**/THEO.md"
|
|
7
|
-
description: TheoKit SDK project-instruction reader/writer — hierarchical walk-up discovery + atomic write of THEO.md
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# TheoKit Project Instructions
|
|
11
|
-
|
|
12
|
-
Hierarchical project-instruction reader/writer on `@theokit/sdk/project`. The
|
|
13
|
-
reader walks up from `cwd` collecting an instruction file (default `THEO.md`) and
|
|
14
|
-
NEVER throws; the writer writes it atomically and FAILS LOUD on error.
|
|
15
|
-
|
|
16
|
-
```ts
|
|
17
|
-
import {
|
|
18
|
-
readProjectInstructions, writeProjectInstructions,
|
|
19
|
-
} from "@theokit/sdk/project";
|
|
20
|
-
import type {
|
|
21
|
-
ProjectInstructions, ProjectInstructionFile, ProjectInstructionScope,
|
|
22
|
-
ReadProjectInstructionsOptions, WriteProjectInstructionsOptions,
|
|
23
|
-
} from "@theokit/sdk/project";
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Read (walk-up, never throws)
|
|
27
|
-
|
|
28
|
-
Discovers every `<dir>/<filename>` from `cwd` up to the filesystem root (or
|
|
29
|
-
`stopDir`). Returns `files` nearest-first plus a `content` reduction chosen by
|
|
30
|
-
`scope` (`"nearest"` → innermost file; `"merged"` → all joined root-first).
|
|
31
|
-
No file found → `{ files: [], content: undefined }`.
|
|
32
|
-
|
|
33
|
-
```ts
|
|
34
|
-
const result: ProjectInstructions = await readProjectInstructions(process.cwd(), {
|
|
35
|
-
filename: "THEO.md", // default "THEO.md"
|
|
36
|
-
scope: "merged", // default "nearest"
|
|
37
|
-
stopDir: "/home/me/repo",
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
if (result.content) applySystemPrompt(result.content);
|
|
41
|
-
for (const f of result.files) console.log(f.path, f.content.length);
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Write (atomic, fails loud)
|
|
45
|
-
|
|
46
|
-
Writes `<cwd>/<filename>` via temp + fsync + rename. An unsafe `filename`
|
|
47
|
-
(traversal, separators, absolute) is rejected with `ConfigurationError`
|
|
48
|
-
(`code: "unsafe_filename"`); a real write error (e.g. missing parent dir)
|
|
49
|
-
propagates — never silently swallowed.
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
await writeProjectInstructions(process.cwd(), "# Project rules\n…", {
|
|
53
|
-
filename: "THEO.md", // default "THEO.md"
|
|
54
|
-
});
|
|
55
|
-
```
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
user-invocable: false
|
|
3
|
-
paths:
|
|
4
|
-
- "**/*retry*"
|
|
5
|
-
- "**/*Retry*"
|
|
6
|
-
description: TheoKit SDK retry primitive — @theokit/sdk/retry (Retry.create executor with exponential backoff + full jitter, RetryOptions)
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# TheoKit Retry
|
|
10
|
-
|
|
11
|
-
`@theokit/sdk/retry` exposes one primitive: `Retry`. NOTE — `Retry.create` is an
|
|
12
|
-
EXECUTOR, not a constructor. `Retry.create(fn, opts)` RUNS `fn` with retry/backoff and
|
|
13
|
-
resolves to its result (`Promise<T>`) — it does not return a `Retry` instance.
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
import { Retry, type RetryOptions } from "@theokit/sdk/retry";
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Run a fn with retry
|
|
20
|
-
|
|
21
|
-
Exponential backoff with full jitter. The default `isRetryable` predicate is the SDK's
|
|
22
|
-
own `isTransientError`, so retries follow the SDK's error classification (rate-limit /
|
|
23
|
-
network retry; business-rule violations do not).
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
const data = await Retry.create(() => fetchJson(url));
|
|
27
|
-
// retries transient failures up to 3 times (4 attempts total), then throws the last error
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Tuning with `RetryOptions`
|
|
31
|
-
|
|
32
|
-
All fields are optional; defaults shown in comments.
|
|
33
|
-
|
|
34
|
-
```typescript
|
|
35
|
-
const result = await Retry.create(
|
|
36
|
-
() => callFlakyApi(),
|
|
37
|
-
{
|
|
38
|
-
retries: 5, // retries AFTER the first attempt (default 3)
|
|
39
|
-
initialDelayMs: 200, // base backoff for the first retry (default 100)
|
|
40
|
-
maxDelayMs: 10_000, // cap per single sleep (default 30_000)
|
|
41
|
-
backoffMultiplier: 2, // exponential multiplier per retry (default 2)
|
|
42
|
-
isRetryable: (err) => err instanceof NetworkGlitch, // default: isTransientError
|
|
43
|
-
signal: controller.signal, // aborts the backoff loop when triggered
|
|
44
|
-
} satisfies RetryOptions,
|
|
45
|
-
);
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
`rng` and `sleep` are also injectable — override them for deterministic tests (no real
|
|
49
|
-
timers). When retries are exhausted or the error is not retryable, `Retry.create`
|
|
50
|
-
re-throws the last error.
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
user-invocable: false
|
|
3
|
-
paths:
|
|
4
|
-
- "**/*sandbox*"
|
|
5
|
-
- "**/*Sandbox*"
|
|
6
|
-
description: TheoKit SDK sandbox reference — SandboxBackend / LocalSandbox execution + provisionRepo
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# TheoKit Sandbox
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
import {
|
|
13
|
-
LocalSandbox,
|
|
14
|
-
provisionRepo,
|
|
15
|
-
SandboxBackend,
|
|
16
|
-
SandboxNotAvailableError,
|
|
17
|
-
SandboxSecurityError,
|
|
18
|
-
RepoProvisionError,
|
|
19
|
-
type ExecuteResult,
|
|
20
|
-
type SandboxConfig,
|
|
21
|
-
type ProvisionRepoOptions,
|
|
22
|
-
} from "@theokit/sdk/sandbox";
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## `LocalSandbox` — subprocess execution
|
|
26
|
-
|
|
27
|
-
`LocalSandbox` runs commands via `/bin/sh -c` in the SAME OS as the host. It is
|
|
28
|
-
**NOT an isolation boundary** — no process, filesystem, or network isolation.
|
|
29
|
-
Its only safety affordances are a wall-clock timeout, an output-size cap, and
|
|
30
|
-
env scrubbing. For real isolation of untrusted code, use a container/VM backend.
|
|
31
|
-
|
|
32
|
-
```typescript
|
|
33
|
-
const sandbox = new LocalSandbox({
|
|
34
|
-
workDir: "/tmp/work",
|
|
35
|
-
timeoutMs: 5_000,
|
|
36
|
-
maxOutputBytes: 1024,
|
|
37
|
-
// env defaults to "inherit-scrubbed": drops *KEY* / *SECRET* / *TOKEN* /
|
|
38
|
-
// *PASSWORD* / *_AUTH* from the child. Pass "all" or "core" to change.
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const result: ExecuteResult = await sandbox.execute("echo hi", { timeoutMs: 2_000 });
|
|
42
|
-
console.log(result.stdout, result.exitCode, result.timedOut);
|
|
43
|
-
|
|
44
|
-
// Derived helpers on the base class (no need to reimplement):
|
|
45
|
-
await sandbox.writeFile("a.txt", "content");
|
|
46
|
-
const text = await sandbox.readFile("a.txt");
|
|
47
|
-
const files = await sandbox.glob("**/*.ts");
|
|
48
|
-
const hits = await sandbox.grep("TODO", "src");
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Custom backend — implement only 2 abstract methods
|
|
52
|
-
|
|
53
|
-
New backends (Docker, Firecracker, E2B) extend `SandboxBackend` and implement
|
|
54
|
-
only `execute` + `uploadFile`; `readFile` / `writeFile` / `glob` / `grep` /
|
|
55
|
-
`listDir` are derived on the base class.
|
|
56
|
-
|
|
57
|
-
```typescript
|
|
58
|
-
class MyBackend extends SandboxBackend {
|
|
59
|
-
async execute(command: string, opts?: { timeoutMs?: number }): Promise<ExecuteResult> {
|
|
60
|
-
// run command remotely; return { stdout, stderr, exitCode, timedOut }
|
|
61
|
-
throw new SandboxNotAvailableError("backend offline");
|
|
62
|
-
}
|
|
63
|
-
async uploadFile(path: string, content: string | Buffer): Promise<void> {
|
|
64
|
-
/* ... */
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
`SandboxSecurityError` (`code: "sandbox_security"`) and
|
|
70
|
-
`SandboxNotAvailableError` (`code: "sandbox_not_available"`) both extend `Error`.
|
|
71
|
-
|
|
72
|
-
## `provisionRepo` — clone + checkout into the sandbox
|
|
73
|
-
|
|
74
|
-
Clones `repoUrl` into `<workDir>/<instanceId>` and checks out `ref`, running
|
|
75
|
-
every git command through the sandbox. The `sandbox` argument is optional — when
|
|
76
|
-
omitted a default `LocalSandbox` (process cwd) is used.
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
const opts: ProvisionRepoOptions = {
|
|
80
|
-
repoUrl: "https://github.com/acme/repo.git",
|
|
81
|
-
ref: "main", // branch, tag, or SHA (rejected if it begins with "-")
|
|
82
|
-
instanceId: "task-001", // validated to [A-Za-z0-9._-] — becomes a dir name
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const { repoDir } = await provisionRepo(new LocalSandbox({ workDir: "/tmp/work" }), opts);
|
|
86
|
-
// or, with the default LocalSandbox: await provisionRepo(opts);
|
|
87
|
-
|
|
88
|
-
try {
|
|
89
|
-
await provisionRepo({ repoUrl: "bad", ref: "main", instanceId: "x" });
|
|
90
|
-
} catch (err) {
|
|
91
|
-
if (err instanceof RepoProvisionError) console.error(err.instanceId, err.message);
|
|
92
|
-
}
|
|
93
|
-
```
|