@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,3 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The OAuth tokens held for one MCP server. See ADR D41.
|
|
3
|
+
*
|
|
4
|
+
* Persisted per server name by `setTokens` and returned unchanged by `getTokens`. Where it lands
|
|
5
|
+
* depends on what is installed: `keytar` puts the serialized bundle in the OS keychain, and
|
|
6
|
+
* without it the bundle is written to a JSON file at mode 0600 inside a 0700 directory — in
|
|
7
|
+
* PLAINTEXT, keyed by server name alongside every other server's tokens. Nothing here encrypts it.
|
|
8
|
+
*
|
|
9
|
+
* `refreshToken` is the field that matters most and the field that is optional. When present it
|
|
10
|
+
* outlives `accessToken` and can mint new ones, so a leaked store is a persistent compromise of
|
|
11
|
+
* the account rather than a temporary one. When absent, an expired access token means re-running
|
|
12
|
+
* the authorization flow.
|
|
13
|
+
*
|
|
14
|
+
* `expiresAt` and `obtainedAt` are both epoch milliseconds and both describe the ACCESS token —
|
|
15
|
+
* when it stops working, and when this bundle was issued. Nothing records when the refresh token
|
|
16
|
+
* expires, so a refresh rejected because the grant itself lapsed is only discovered at the token
|
|
17
|
+
* endpoint.
|
|
18
|
+
*
|
|
19
|
+
* The value is not validated on read: whatever JSON was stored is cast to this shape, so a
|
|
20
|
+
* hand-edited or truncated store yields an object whose fields may be missing rather than an
|
|
21
|
+
* error.
|
|
22
|
+
*
|
|
23
|
+
* `scope` records what the token was granted, as the server returned it. It is stored for
|
|
24
|
+
* inspection; nothing in this module enforces it.
|
|
25
|
+
*
|
|
26
|
+
* @public — re-exported from `@theokit/sdk/mcp-auth`, and therefore under semver.
|
|
27
|
+
*/
|
|
28
|
+
export interface OAuthTokens {
|
|
29
|
+
accessToken: string;
|
|
30
|
+
refreshToken?: string;
|
|
31
|
+
expiresAt: number;
|
|
32
|
+
scope?: string;
|
|
33
|
+
obtainedAt: number;
|
|
34
|
+
}
|
|
1
35
|
/**
|
|
2
36
|
* Persist tokens for `serverName`. Tries keychain first, falls back to file
|
|
3
37
|
* with chmod 600 (POSIX). Idempotent.
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../../../chunk-
|
|
5
|
-
|
|
3
|
+
var chunkEI2Q7SJ5_cjs = require('../../../chunk-EI2Q7SJ5.cjs');
|
|
4
|
+
var chunkGHX4P3V2_cjs = require('../../../chunk-GHX4P3V2.cjs');
|
|
5
|
+
require('../../../chunk-DQKERTND.cjs');
|
|
6
6
|
require('../../../chunk-MUUQ2WFJ.cjs');
|
|
7
|
-
require('../../../chunk-
|
|
8
|
-
require('../../../chunk-C5DEO6OI.cjs');
|
|
9
|
-
require('../../../chunk-ZT57WTUJ.cjs');
|
|
7
|
+
require('../../../chunk-R3UPQFKK.cjs');
|
|
10
8
|
require('../../../chunk-VKJ7V7EB.cjs');
|
|
11
|
-
require('../../../chunk-
|
|
12
|
-
require('../../../chunk-
|
|
9
|
+
require('../../../chunk-ILCGLTSA.cjs');
|
|
10
|
+
require('../../../chunk-CQGYNZ3K.cjs');
|
|
11
|
+
require('../../../chunk-K3FW2XZD.cjs');
|
|
12
|
+
require('../../../chunk-JTB5Q42C.cjs');
|
|
13
|
+
require('../../../chunk-NUKRL3I6.cjs');
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
Object.defineProperty(exports, "createOpenAiCompatibleRuntime", {
|
|
17
18
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
19
|
+
get: function () { return chunkEI2Q7SJ5_cjs.createOpenAiCompatibleRuntime; }
|
|
19
20
|
});
|
|
20
21
|
Object.defineProperty(exports, "LruEmbeddingCache", {
|
|
21
22
|
enumerable: true,
|
|
22
|
-
get: function () { return
|
|
23
|
+
get: function () { return chunkGHX4P3V2_cjs.LruEmbeddingCache; }
|
|
23
24
|
});
|
|
24
25
|
Object.defineProperty(exports, "globalEmbeddingCache", {
|
|
25
26
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
27
|
+
get: function () { return chunkGHX4P3V2_cjs.globalEmbeddingCache; }
|
|
27
28
|
});
|
|
28
29
|
//# sourceMappingURL=index.cjs.map
|
|
29
30
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* `internal/persistence` and `internal/security` sub-paths that exist for the same reason: extracted
|
|
12
12
|
* packages need primitives that are not part of the stable public contract.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
* Semver-exempt: NOT part of the stable `@theokit/sdk` API. The sub-path IS declared in
|
|
15
|
+
* `package.json` `exports`, so the names below must survive into the published declarations.
|
|
15
16
|
*/
|
|
17
|
+
export { globalEmbeddingCache, LruEmbeddingCache } from "../embedding-cache.js";
|
|
16
18
|
export { createOpenAiCompatibleRuntime, type EmbeddingDialect, type OpenAiCompatibleConfig, } from "./openai-compatible.js";
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* `internal/persistence` and `internal/security` sub-paths that exist for the same reason: extracted
|
|
12
12
|
* packages need primitives that are not part of the stable public contract.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
* Semver-exempt: NOT part of the stable `@theokit/sdk` API. The sub-path IS declared in
|
|
15
|
+
* `package.json` `exports`, so the names below must survive into the published declarations.
|
|
15
16
|
*/
|
|
17
|
+
export { globalEmbeddingCache, LruEmbeddingCache } from "../embedding-cache.js";
|
|
16
18
|
export { createOpenAiCompatibleRuntime, type EmbeddingDialect, type OpenAiCompatibleConfig, } from "./openai-compatible.js";
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
export { createOpenAiCompatibleRuntime } from '../../../chunk-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export { createOpenAiCompatibleRuntime } from '../../../chunk-XN7NOENA.js';
|
|
2
|
+
export { LruEmbeddingCache, globalEmbeddingCache } from '../../../chunk-H73MEMQB.js';
|
|
3
|
+
import '../../../chunk-5JLFFPCH.js';
|
|
4
4
|
import '../../../chunk-FD2UT76F.js';
|
|
5
|
-
import '../../../chunk-
|
|
6
|
-
import '../../../chunk-R5YZACGK.js';
|
|
7
|
-
import '../../../chunk-SK4QLUBK.js';
|
|
5
|
+
import '../../../chunk-QARJGQSA.js';
|
|
8
6
|
import '../../../chunk-RIAM53CP.js';
|
|
9
|
-
import '../../../chunk-
|
|
10
|
-
import '../../../chunk-
|
|
7
|
+
import '../../../chunk-UC3HT2S4.js';
|
|
8
|
+
import '../../../chunk-OC4NTGMN.js';
|
|
9
|
+
import '../../../chunk-IDCKSLYH.js';
|
|
10
|
+
import '../../../chunk-T7XEKOVW.js';
|
|
11
|
+
import '../../../chunk-T7O6K6PX.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import type { CreateAdapterOptions, EmbeddingRuntime } from "../embedding-adapter.js";
|
|
2
|
+
/**
|
|
3
|
+
* What one provider adapter tells {@link createOpenAiCompatibleRuntime} about
|
|
4
|
+
* its wire: where to POST, which environment variables carry the key and the
|
|
5
|
+
* base URL, which model to use by default, and how wide each model's vectors
|
|
6
|
+
* are.
|
|
7
|
+
*
|
|
8
|
+
* `id` is the provider id that ends up on errors and on
|
|
9
|
+
* `EmbeddingRuntime.id`, and is also the identity the SQLite vector index stores
|
|
10
|
+
* — changing it invalidates the vectors already on disk.
|
|
11
|
+
*
|
|
12
|
+
* `apiKeyEnv` is required, `baseUrlEnv` is not: a provider that declares no
|
|
13
|
+
* base-URL variable can only be redirected by passing `baseUrl` explicitly.
|
|
14
|
+
* Leave `dialect` unset for anything that speaks the OpenAI embedding wire.
|
|
15
|
+
*/
|
|
2
16
|
export interface OpenAiCompatibleConfig {
|
|
3
17
|
id: string;
|
|
4
18
|
defaultBaseUrl: string;
|
|
@@ -48,4 +62,35 @@ export interface EmbeddingDialect {
|
|
|
48
62
|
/** Replaces reading vectors from `json.data[].embedding`. Return `undefined` when unparseable. */
|
|
49
63
|
vectors?: (json: unknown) => number[][] | undefined;
|
|
50
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Build an {@link EmbeddingRuntime} for a provider that speaks the OpenAI
|
|
67
|
+
* embedding wire — or, through `cfg.dialect`, one that deviates from it in a
|
|
68
|
+
* known way. Every adapter in the memory catalog is a thin call to this.
|
|
69
|
+
*
|
|
70
|
+
* Resolution order for each setting is explicit option, then environment
|
|
71
|
+
* variable, then the config default. Two things are checked before any request
|
|
72
|
+
* is sent, so a misconfiguration fails at creation rather than at first search:
|
|
73
|
+
* a missing or empty key rejects with an `AuthenticationError` carrying
|
|
74
|
+
* `embedding_missing_api_key`, and a model absent from `dimensionByModel`
|
|
75
|
+
* rejects with a `ConfigurationError` carrying `embedding_unknown_model`. The
|
|
76
|
+
* second check exists because the vector index is created at a fixed width — an
|
|
77
|
+
* unknown dimension would surface much later as a vec0 mismatch.
|
|
78
|
+
*
|
|
79
|
+
* `{model}` in `embeddingsPath` is replaced with the URL-encoded model, which is
|
|
80
|
+
* how Azure addresses a deployment in the path. `embeddingsPath` replaces the
|
|
81
|
+
* default `/v1/embeddings` rather than being appended to it.
|
|
82
|
+
*
|
|
83
|
+
* The returned `embed` batches at 100 texts per request and runs at most 3
|
|
84
|
+
* requests concurrently, preserving input order. Whitespace-only inputs never
|
|
85
|
+
* reach the network and come back as an all-zero vector. Results are cached by
|
|
86
|
+
* model and text; the cache defaults to a process-wide LRU of 5000 entries, so
|
|
87
|
+
* pass `options.cache` when runtimes must not share entries.
|
|
88
|
+
*
|
|
89
|
+
* Failed requests retry up to twice on 429 and 5xx with a 50ms-per-attempt
|
|
90
|
+
* linear backoff. Anything else, and a retry budget that runs out, throws the
|
|
91
|
+
* typed error the OpenAI-compatible mapper builds from the status and body. A
|
|
92
|
+
* response that parses but carries no vectors throws a `NetworkError` with
|
|
93
|
+
* `embedding_invalid_response`. There is no request timeout here — cancellation
|
|
94
|
+
* is the caller's to impose.
|
|
95
|
+
*/
|
|
51
96
|
export declare function createOpenAiCompatibleRuntime(cfg: OpenAiCompatibleConfig, options: CreateAdapterOptions): Promise<EmbeddingRuntime>;
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import type { CreateAdapterOptions, EmbeddingRuntime } from "../embedding-adapter.js";
|
|
2
|
+
/**
|
|
3
|
+
* What one provider adapter tells {@link createOpenAiCompatibleRuntime} about
|
|
4
|
+
* its wire: where to POST, which environment variables carry the key and the
|
|
5
|
+
* base URL, which model to use by default, and how wide each model's vectors
|
|
6
|
+
* are.
|
|
7
|
+
*
|
|
8
|
+
* `id` is the provider id that ends up on errors and on
|
|
9
|
+
* `EmbeddingRuntime.id`, and is also the identity the SQLite vector index stores
|
|
10
|
+
* — changing it invalidates the vectors already on disk.
|
|
11
|
+
*
|
|
12
|
+
* `apiKeyEnv` is required, `baseUrlEnv` is not: a provider that declares no
|
|
13
|
+
* base-URL variable can only be redirected by passing `baseUrl` explicitly.
|
|
14
|
+
* Leave `dialect` unset for anything that speaks the OpenAI embedding wire.
|
|
15
|
+
*/
|
|
2
16
|
export interface OpenAiCompatibleConfig {
|
|
3
17
|
id: string;
|
|
4
18
|
defaultBaseUrl: string;
|
|
@@ -48,4 +62,35 @@ export interface EmbeddingDialect {
|
|
|
48
62
|
/** Replaces reading vectors from `json.data[].embedding`. Return `undefined` when unparseable. */
|
|
49
63
|
vectors?: (json: unknown) => number[][] | undefined;
|
|
50
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Build an {@link EmbeddingRuntime} for a provider that speaks the OpenAI
|
|
67
|
+
* embedding wire — or, through `cfg.dialect`, one that deviates from it in a
|
|
68
|
+
* known way. Every adapter in the memory catalog is a thin call to this.
|
|
69
|
+
*
|
|
70
|
+
* Resolution order for each setting is explicit option, then environment
|
|
71
|
+
* variable, then the config default. Two things are checked before any request
|
|
72
|
+
* is sent, so a misconfiguration fails at creation rather than at first search:
|
|
73
|
+
* a missing or empty key rejects with an `AuthenticationError` carrying
|
|
74
|
+
* `embedding_missing_api_key`, and a model absent from `dimensionByModel`
|
|
75
|
+
* rejects with a `ConfigurationError` carrying `embedding_unknown_model`. The
|
|
76
|
+
* second check exists because the vector index is created at a fixed width — an
|
|
77
|
+
* unknown dimension would surface much later as a vec0 mismatch.
|
|
78
|
+
*
|
|
79
|
+
* `{model}` in `embeddingsPath` is replaced with the URL-encoded model, which is
|
|
80
|
+
* how Azure addresses a deployment in the path. `embeddingsPath` replaces the
|
|
81
|
+
* default `/v1/embeddings` rather than being appended to it.
|
|
82
|
+
*
|
|
83
|
+
* The returned `embed` batches at 100 texts per request and runs at most 3
|
|
84
|
+
* requests concurrently, preserving input order. Whitespace-only inputs never
|
|
85
|
+
* reach the network and come back as an all-zero vector. Results are cached by
|
|
86
|
+
* model and text; the cache defaults to a process-wide LRU of 5000 entries, so
|
|
87
|
+
* pass `options.cache` when runtimes must not share entries.
|
|
88
|
+
*
|
|
89
|
+
* Failed requests retry up to twice on 429 and 5xx with a 50ms-per-attempt
|
|
90
|
+
* linear backoff. Anything else, and a retry budget that runs out, throws the
|
|
91
|
+
* typed error the OpenAI-compatible mapper builds from the status and body. A
|
|
92
|
+
* response that parses but carries no vectors throws a `NetworkError` with
|
|
93
|
+
* `embedding_invalid_response`. There is no request timeout here — cancellation
|
|
94
|
+
* is the caller's to impose.
|
|
95
|
+
*/
|
|
51
96
|
export declare function createOpenAiCompatibleRuntime(cfg: OpenAiCompatibleConfig, options: CreateAdapterOptions): Promise<EmbeddingRuntime>;
|
|
@@ -1 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
import type { EmbeddingCache } from "./embedding-adapter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Bounded in-memory LRU cache for embeddings, keyed by `sha256(text)` (or any
|
|
4
|
+
* stable key the caller chooses).
|
|
5
|
+
*
|
|
6
|
+
* Recency is tracked by Map insertion order: `get` re-inserts the hit so it becomes the newest,
|
|
7
|
+
* and `set` evicts the oldest key once `capacity` (default 5000) is reached. Nothing here bounds
|
|
8
|
+
* the size of a single VALUE, so capacity is a count of vectors, not a memory budget.
|
|
9
|
+
*
|
|
10
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/memory-adapters` sub-path, which the
|
|
11
|
+
* package declares in `exports` but does NOT cover with its semver contract.
|
|
12
|
+
*/
|
|
13
|
+
export declare class LruEmbeddingCache implements EmbeddingCache {
|
|
14
|
+
private readonly capacity;
|
|
15
|
+
private readonly map;
|
|
16
|
+
constructor(capacity?: number);
|
|
17
|
+
get(key: string): number[] | undefined;
|
|
18
|
+
set(key: string, value: number[]): void;
|
|
19
|
+
size(): number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* T4.4 — Process-wide singleton embedding cache (DR4 finding #4).
|
|
23
|
+
*
|
|
24
|
+
* Pre-T4.4 each adapter / index-manager constructed its own
|
|
25
|
+
* `LruEmbeddingCache` — a consumer with 3 Memory.openIndex calls
|
|
26
|
+
* got 3 independent caches with no cross-index deduplication. The
|
|
27
|
+
* same text embedded identically across indexes re-computed the
|
|
28
|
+
* embedding each time.
|
|
29
|
+
*
|
|
30
|
+
* The singleton shares the cache process-wide so hit rate goes up
|
|
31
|
+
* dramatically. The LRU eviction (default 5000 entries) bounds
|
|
32
|
+
* memory usage even with the shared surface.
|
|
33
|
+
*
|
|
34
|
+
* Consumers who need isolation (e.g., multi-tenant with different
|
|
35
|
+
* embedding models) should construct their own `LruEmbeddingCache`
|
|
36
|
+
* and pass it explicitly — the singleton is the DEFAULT, not the
|
|
37
|
+
* only option.
|
|
38
|
+
*
|
|
39
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/memory-adapters` sub-path, which the
|
|
40
|
+
* package declares in `exports` but does NOT cover with its semver contract.
|
|
41
|
+
*/
|
|
42
|
+
export declare const globalEmbeddingCache: EmbeddingCache;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes a user query for a SQL `LIKE ... ESCAPE '\'` clause.
|
|
3
|
+
*
|
|
4
|
+
* The order of the three replacements is the whole correctness argument, so it is its own
|
|
5
|
+
* function rather than a chain inline at the call site.
|
|
6
|
+
*
|
|
7
|
+
* The previous version escaped `%` and `_` but not the escape character itself, which is the
|
|
8
|
+
* defect CodeQL reports as `js/incomplete-sanitization` (alerts #14, #15). Two things went wrong,
|
|
9
|
+
* and the second is the one that matters:
|
|
10
|
+
*
|
|
11
|
+
* "back\slash" -> "%back\slash%" the `\s` is an escape of `s`, which LIKE does not define
|
|
12
|
+
* "x\%y" -> "%x\\%y%" the inserted `\` is consumed escaping the user's `\`,
|
|
13
|
+
* leaving `%` UNESCAPED — a wildcard the caller did not
|
|
14
|
+
* write, matching anything between `x\` and `y`
|
|
15
|
+
*
|
|
16
|
+
* The second is wildcard injection: a search for a literal string silently becomes a scan. In a
|
|
17
|
+
* memory index that is both a wrong answer and a way to pull back rows the query never asked for.
|
|
18
|
+
*
|
|
19
|
+
* Escaping the backslash FIRST is what fixes it — afterwards every `\` in the string is one this
|
|
20
|
+
* function put there, so the later replacements cannot collide with a user-supplied one.
|
|
21
|
+
*/
|
|
22
|
+
export declare function escapeLikePattern(query: string): string;
|
|
@@ -6,11 +6,6 @@ export declare function notesDir(cwd: string): string;
|
|
|
6
6
|
export declare function readFactsFromMarkdown(cwd: string): Promise<MemoryFact[]>;
|
|
7
7
|
/** Append a fact to `MEMORY.md ## Facts`. Creates the section if missing. Atomic + serialized. */
|
|
8
8
|
export declare function appendFactToMarkdown(cwd: string, fact: MemoryFact): Promise<void>;
|
|
9
|
-
export interface NoteFile {
|
|
10
|
-
slug: string;
|
|
11
|
-
path: string;
|
|
12
|
-
}
|
|
13
|
-
export declare function listNotes(cwd: string): Promise<NoteFile[]>;
|
|
14
9
|
/** Configuration-aware accessors honoring the existing MemoryConfig contract. */
|
|
15
10
|
export declare function readFacts(cwd: string, config: MemoryConfig): Promise<MemoryFact[]>;
|
|
16
11
|
export declare function appendFact(cwd: string, config: MemoryConfig, fact: MemoryFact): Promise<void>;
|
|
@@ -1 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run `fn` after every earlier `withCwdMutex` call for the same `key` has settled, and return
|
|
3
|
+
* what `fn` returns.
|
|
4
|
+
*
|
|
5
|
+
* Calls with the same key run strictly in the order they were made — FIFO, never concurrent.
|
|
6
|
+
* Calls with different keys never wait on each other. The key is an opaque string: two callers
|
|
7
|
+
* serialize against each other exactly when they pass equal keys, so a shared key IS the
|
|
8
|
+
* contract, and a mismatched one silently buys no protection at all.
|
|
9
|
+
*
|
|
10
|
+
* A rejection does not poison the queue. The next waiter runs whether the previous `fn` fulfilled
|
|
11
|
+
* or rejected, and the rejection is delivered only to the caller whose `fn` threw. This function
|
|
12
|
+
* neither retries nor swallows: the returned promise rejects with whatever `fn` rejected with.
|
|
13
|
+
*
|
|
14
|
+
* There is no timeout and no cancellation. An `fn` that never settles blocks that key for the
|
|
15
|
+
* lifetime of the process.
|
|
16
|
+
*
|
|
17
|
+
* **Scope — this is an in-process lock only.** State is a module-scoped Map, so it serializes
|
|
18
|
+
* callers that share one module instance and nothing else. Two processes, two worker threads, or
|
|
19
|
+
* two copies of the SDK resolved into the same tree do not see each other's queue. When the
|
|
20
|
+
* resource is a file that other processes can also write, use `withFileLock` from
|
|
21
|
+
* `./file-lock.ts` instead — it takes an OS-level lock and layers this mutex underneath, so it
|
|
22
|
+
* gives both guarantees. Reach for `withCwdMutex` directly when the shared state is in memory, or
|
|
23
|
+
* when the file is one only this process touches.
|
|
24
|
+
*
|
|
25
|
+
* Extracted packages (`@theokit/sdk-budget`, `@theokit/sdk-memory`) import this from
|
|
26
|
+
* `@theokit/sdk` rather than reimplementing it, precisely so the Map is the same one: a per-package
|
|
27
|
+
* copy would give each package its own queue and let their writes race.
|
|
28
|
+
*
|
|
29
|
+
* The Map is module-scoped, so nothing survives a process restart or a fresh module instance, and
|
|
30
|
+
* its entries are never removed — pass keys from a bounded set rather than from arbitrary input.
|
|
31
|
+
* Signature and semantics will not change before sdk-core v3.0.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
1
35
|
export declare function withCwdMutex<T>(key: string, fn: () => Promise<T>): Promise<T>;
|
|
@@ -1 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run `fn` after every earlier `withCwdMutex` call for the same `key` has settled, and return
|
|
3
|
+
* what `fn` returns.
|
|
4
|
+
*
|
|
5
|
+
* Calls with the same key run strictly in the order they were made — FIFO, never concurrent.
|
|
6
|
+
* Calls with different keys never wait on each other. The key is an opaque string: two callers
|
|
7
|
+
* serialize against each other exactly when they pass equal keys, so a shared key IS the
|
|
8
|
+
* contract, and a mismatched one silently buys no protection at all.
|
|
9
|
+
*
|
|
10
|
+
* A rejection does not poison the queue. The next waiter runs whether the previous `fn` fulfilled
|
|
11
|
+
* or rejected, and the rejection is delivered only to the caller whose `fn` threw. This function
|
|
12
|
+
* neither retries nor swallows: the returned promise rejects with whatever `fn` rejected with.
|
|
13
|
+
*
|
|
14
|
+
* There is no timeout and no cancellation. An `fn` that never settles blocks that key for the
|
|
15
|
+
* lifetime of the process.
|
|
16
|
+
*
|
|
17
|
+
* **Scope — this is an in-process lock only.** State is a module-scoped Map, so it serializes
|
|
18
|
+
* callers that share one module instance and nothing else. Two processes, two worker threads, or
|
|
19
|
+
* two copies of the SDK resolved into the same tree do not see each other's queue. When the
|
|
20
|
+
* resource is a file that other processes can also write, use `withFileLock` from
|
|
21
|
+
* `./file-lock.ts` instead — it takes an OS-level lock and layers this mutex underneath, so it
|
|
22
|
+
* gives both guarantees. Reach for `withCwdMutex` directly when the shared state is in memory, or
|
|
23
|
+
* when the file is one only this process touches.
|
|
24
|
+
*
|
|
25
|
+
* Extracted packages (`@theokit/sdk-budget`, `@theokit/sdk-memory`) import this from
|
|
26
|
+
* `@theokit/sdk` rather than reimplementing it, precisely so the Map is the same one: a per-package
|
|
27
|
+
* copy would give each package its own queue and let their writes race.
|
|
28
|
+
*
|
|
29
|
+
* The Map is module-scoped, so nothing survives a process restart or a fresh module instance, and
|
|
30
|
+
* its entries are never removed — pass keys from a bounded set rather than from arbitrary input.
|
|
31
|
+
* Signature and semantics will not change before sdk-core v3.0.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
1
35
|
export declare function withCwdMutex<T>(key: string, fn: () => Promise<T>): Promise<T>;
|
|
@@ -20,3 +20,34 @@ export interface CreateExclusiveOptions {
|
|
|
20
20
|
/** Unix mode for the new file (default 0o600 — owner-only). */
|
|
21
21
|
mode?: number;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Create `path` holding `data`, but only if it does not exist yet. Returns `true` when this call
|
|
25
|
+
* created it, `false` when it was already there.
|
|
26
|
+
*
|
|
27
|
+
* The check and the create are one `open(path, "wx")` syscall, so of N processes racing to create
|
|
28
|
+
* the same path exactly one gets `true` — no window between testing and writing. The content is
|
|
29
|
+
* written after the create, so the `false` branch tells you the file exists, not that another
|
|
30
|
+
* writer has finished filling it.
|
|
31
|
+
*
|
|
32
|
+
* Only `EEXIST` becomes `false`. Every other error propagates: a missing parent directory is
|
|
33
|
+
* `ENOENT`, an unwritable one `EACCES`. This never creates directories.
|
|
34
|
+
*
|
|
35
|
+
* The file is created with mode 0600 unless `options.mode` says otherwise, and the mode is
|
|
36
|
+
* subject to the process umask. That default is deliberate — the callers are token files,
|
|
37
|
+
* lockfiles and PID files, and 0644 under a typical umask would make them world-readable.
|
|
38
|
+
*
|
|
39
|
+
* **Choosing between this and the locks.** `createExclusive` claims a NAME once and is the right
|
|
40
|
+
* tool for first-writer-wins: seeding a config, electing a single owner, writing a credential
|
|
41
|
+
* exactly once. It cannot guard repeated updates, because a file that already exists always loses.
|
|
42
|
+
* For read-modify-write on a path several writers touch, take a lock instead —
|
|
43
|
+
* {@link withFileLock} across processes, `withCwdMutex` when the writers are all in this one. For
|
|
44
|
+
* an in-place update guarded by a version column in SQLite, `casUpdate` is the equivalent
|
|
45
|
+
* primitive.
|
|
46
|
+
*
|
|
47
|
+
* Atomicity is the filesystem's `O_EXCL`, which NFS does not reliably honor; the SDK targets
|
|
48
|
+
* ext4, APFS and NTFS.
|
|
49
|
+
*
|
|
50
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
51
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
52
|
+
*/
|
|
53
|
+
export declare function createExclusive(path: string, data: string | Uint8Array, options?: CreateExclusiveOptions): Promise<boolean>;
|
|
@@ -20,3 +20,34 @@ export interface CreateExclusiveOptions {
|
|
|
20
20
|
/** Unix mode for the new file (default 0o600 — owner-only). */
|
|
21
21
|
mode?: number;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Create `path` holding `data`, but only if it does not exist yet. Returns `true` when this call
|
|
25
|
+
* created it, `false` when it was already there.
|
|
26
|
+
*
|
|
27
|
+
* The check and the create are one `open(path, "wx")` syscall, so of N processes racing to create
|
|
28
|
+
* the same path exactly one gets `true` — no window between testing and writing. The content is
|
|
29
|
+
* written after the create, so the `false` branch tells you the file exists, not that another
|
|
30
|
+
* writer has finished filling it.
|
|
31
|
+
*
|
|
32
|
+
* Only `EEXIST` becomes `false`. Every other error propagates: a missing parent directory is
|
|
33
|
+
* `ENOENT`, an unwritable one `EACCES`. This never creates directories.
|
|
34
|
+
*
|
|
35
|
+
* The file is created with mode 0600 unless `options.mode` says otherwise, and the mode is
|
|
36
|
+
* subject to the process umask. That default is deliberate — the callers are token files,
|
|
37
|
+
* lockfiles and PID files, and 0644 under a typical umask would make them world-readable.
|
|
38
|
+
*
|
|
39
|
+
* **Choosing between this and the locks.** `createExclusive` claims a NAME once and is the right
|
|
40
|
+
* tool for first-writer-wins: seeding a config, electing a single owner, writing a credential
|
|
41
|
+
* exactly once. It cannot guard repeated updates, because a file that already exists always loses.
|
|
42
|
+
* For read-modify-write on a path several writers touch, take a lock instead —
|
|
43
|
+
* {@link withFileLock} across processes, `withCwdMutex` when the writers are all in this one. For
|
|
44
|
+
* an in-place update guarded by a version column in SQLite, `casUpdate` is the equivalent
|
|
45
|
+
* primitive.
|
|
46
|
+
*
|
|
47
|
+
* Atomicity is the filesystem's `O_EXCL`, which NFS does not reliably honor; the SDK targets
|
|
48
|
+
* ext4, APFS and NTFS.
|
|
49
|
+
*
|
|
50
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
51
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
52
|
+
*/
|
|
53
|
+
export declare function createExclusive(path: string, data: string | Uint8Array, options?: CreateExclusiveOptions): Promise<boolean>;
|
|
@@ -11,6 +11,34 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
|
+
/**
|
|
15
|
+
* Retry and staleness tuning for `withFileLock`.
|
|
16
|
+
*
|
|
17
|
+
* Every field is optional and the defaults are applied per call, so `undefined` means the default
|
|
18
|
+
* rather than "no limit". They are handed to `proper-lockfile` and have NO effect on the fallback
|
|
19
|
+
* path: when that package is absent, `withFileLock` degrades to the in-process mutex, which
|
|
20
|
+
* queues indefinitely and never goes stale.
|
|
21
|
+
*
|
|
22
|
+
* `stale` (default 30000 ms) is how old a lock file must be before it is treated as abandoned by a
|
|
23
|
+
* dead process and broken. Setting it below the longest a legitimate holder can run is what turns
|
|
24
|
+
* a slow operation into two concurrent ones.
|
|
25
|
+
*
|
|
26
|
+
* `retries` (default 5) is the number of acquisition attempts AFTER the first, and `retryFactor`
|
|
27
|
+
* (default 1.5) the backoff multiplier between them. The per-attempt wait is clamped to
|
|
28
|
+
* 100–5000 ms, which the caller cannot change. Exhausting the retries rejects — it does not fall
|
|
29
|
+
* through to running `fn` unlocked.
|
|
30
|
+
*
|
|
31
|
+
* @public — re-exported from the semver-protected `@theokit/sdk/persistence` barrel, and (for
|
|
32
|
+
* back-compat) from the semver-exempt `@theokit/sdk/internal/persistence` alias.
|
|
33
|
+
*/
|
|
34
|
+
export interface FileLockOptions {
|
|
35
|
+
/** Stale lock timeout in ms. Default 30_000 (30s). */
|
|
36
|
+
stale?: number;
|
|
37
|
+
/** Max retries on busy lock. Default 5. */
|
|
38
|
+
retries?: number;
|
|
39
|
+
/** Backoff factor between retries. Default 1.5. */
|
|
40
|
+
retryFactor?: number;
|
|
41
|
+
}
|
|
14
42
|
/**
|
|
15
43
|
* Run `fn` while holding an OS-level cross-process lock on `path`.
|
|
16
44
|
*
|
|
@@ -11,6 +11,34 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
|
+
/**
|
|
15
|
+
* Retry and staleness tuning for `withFileLock`.
|
|
16
|
+
*
|
|
17
|
+
* Every field is optional and the defaults are applied per call, so `undefined` means the default
|
|
18
|
+
* rather than "no limit". They are handed to `proper-lockfile` and have NO effect on the fallback
|
|
19
|
+
* path: when that package is absent, `withFileLock` degrades to the in-process mutex, which
|
|
20
|
+
* queues indefinitely and never goes stale.
|
|
21
|
+
*
|
|
22
|
+
* `stale` (default 30000 ms) is how old a lock file must be before it is treated as abandoned by a
|
|
23
|
+
* dead process and broken. Setting it below the longest a legitimate holder can run is what turns
|
|
24
|
+
* a slow operation into two concurrent ones.
|
|
25
|
+
*
|
|
26
|
+
* `retries` (default 5) is the number of acquisition attempts AFTER the first, and `retryFactor`
|
|
27
|
+
* (default 1.5) the backoff multiplier between them. The per-attempt wait is clamped to
|
|
28
|
+
* 100–5000 ms, which the caller cannot change. Exhausting the retries rejects — it does not fall
|
|
29
|
+
* through to running `fn` unlocked.
|
|
30
|
+
*
|
|
31
|
+
* @public — re-exported from the semver-protected `@theokit/sdk/persistence` barrel, and (for
|
|
32
|
+
* back-compat) from the semver-exempt `@theokit/sdk/internal/persistence` alias.
|
|
33
|
+
*/
|
|
34
|
+
export interface FileLockOptions {
|
|
35
|
+
/** Stale lock timeout in ms. Default 30_000 (30s). */
|
|
36
|
+
stale?: number;
|
|
37
|
+
/** Max retries on busy lock. Default 5. */
|
|
38
|
+
retries?: number;
|
|
39
|
+
/** Backoff factor between retries. Default 1.5. */
|
|
40
|
+
retryFactor?: number;
|
|
41
|
+
}
|
|
14
42
|
/**
|
|
15
43
|
* Run `fn` while holding an OS-level cross-process lock on `path`.
|
|
16
44
|
*
|
|
@@ -26,6 +26,9 @@ export interface FsSessionStoreOptions {
|
|
|
26
26
|
/** The workspace cwd whose encoded form is the transcript project dir. */
|
|
27
27
|
cwd: string;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* The default `SessionStore` — reads/append-writes the native `.jsonl` transcript.
|
|
31
|
+
*/
|
|
29
32
|
export declare class FsSessionStore implements SessionStore {
|
|
30
33
|
#private;
|
|
31
34
|
constructor(options: FsSessionStoreOptions);
|
|
@@ -26,6 +26,9 @@ export interface FsSessionStoreOptions {
|
|
|
26
26
|
/** The workspace cwd whose encoded form is the transcript project dir. */
|
|
27
27
|
cwd: string;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* The default `SessionStore` — reads/append-writes the native `.jsonl` transcript.
|
|
31
|
+
*/
|
|
29
32
|
export declare class FsSessionStore implements SessionStore {
|
|
30
33
|
#private;
|
|
31
34
|
constructor(options: FsSessionStoreOptions);
|
|
@@ -22,3 +22,23 @@
|
|
|
22
22
|
*
|
|
23
23
|
*/
|
|
24
24
|
export declare function sanitizeFts5Query(query: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Report whether `text` holds at least one Chinese, Japanese or Korean character.
|
|
27
|
+
*
|
|
28
|
+
* Iterates by code point, so surrogate pairs are handled correctly, and returns on the first hit.
|
|
29
|
+
* An empty string is `false`.
|
|
30
|
+
*
|
|
31
|
+
* Coverage is deliberately coarse: CJK Symbols and Punctuation, Hiragana, Katakana, Hangul
|
|
32
|
+
* Syllables, and CJK Unified Ideographs including Extension A. Everything beyond that — the
|
|
33
|
+
* higher ideograph extensions, Halfwidth and Fullwidth Forms, Hangul Jamo — reads as `false`, so
|
|
34
|
+
* a `false` is not proof that the text is CJK-free.
|
|
35
|
+
*
|
|
36
|
+
* The reason to ask is FTS5: the default tokenizer splits on whitespace, which CJK text does not
|
|
37
|
+
* use, so a matching query against it returns nothing rather than failing. A caller seeing `true`
|
|
38
|
+
* should short-circuit to an empty result or a LIKE fallback instead of running the search and
|
|
39
|
+
* reporting no matches.
|
|
40
|
+
*
|
|
41
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
42
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
43
|
+
*/
|
|
44
|
+
export declare function containsCjk(text: string): boolean;
|
|
@@ -22,3 +22,23 @@
|
|
|
22
22
|
*
|
|
23
23
|
*/
|
|
24
24
|
export declare function sanitizeFts5Query(query: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Report whether `text` holds at least one Chinese, Japanese or Korean character.
|
|
27
|
+
*
|
|
28
|
+
* Iterates by code point, so surrogate pairs are handled correctly, and returns on the first hit.
|
|
29
|
+
* An empty string is `false`.
|
|
30
|
+
*
|
|
31
|
+
* Coverage is deliberately coarse: CJK Symbols and Punctuation, Hiragana, Katakana, Hangul
|
|
32
|
+
* Syllables, and CJK Unified Ideographs including Extension A. Everything beyond that — the
|
|
33
|
+
* higher ideograph extensions, Halfwidth and Fullwidth Forms, Hangul Jamo — reads as `false`, so
|
|
34
|
+
* a `false` is not proof that the text is CJK-free.
|
|
35
|
+
*
|
|
36
|
+
* The reason to ask is FTS5: the default tokenizer splits on whitespace, which CJK text does not
|
|
37
|
+
* use, so a matching query against it returns nothing rather than failing. A caller seeing `true`
|
|
38
|
+
* should short-circuit to an empty result or a LIKE fallback instead of running the search and
|
|
39
|
+
* reporting no matches.
|
|
40
|
+
*
|
|
41
|
+
* Semver-exempt: reachable via the `@theokit/sdk/internal/persistence` sub-path, which the package
|
|
42
|
+
* declares in `exports` but does NOT cover with its semver contract.
|
|
43
|
+
*/
|
|
44
|
+
export declare function containsCjk(text: string): boolean;
|