@theokit/sdk 4.53.0 → 4.54.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 +1096 -8
- package/LICENSE +2 -2
- package/README.md +14 -9
- package/bin/theokit-migrate-config.mjs +11 -2
- 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-BiCINq25.d.ts → agent-CIUgz7cN.d.cts} +211 -858
- package/dist/{agent-Zta1kvGH.d.cts → agent-DSec-E0c.d.ts} +211 -858
- package/dist/agent-NOEGF4GI.cjs +61 -0
- package/dist/{agent-JX5SBYDE.cjs.map → agent-NOEGF4GI.cjs.map} +1 -1
- package/dist/agent-VGD5WL4N.js +52 -0
- package/dist/{agent-ZAGG6ZBS.js.map → agent-VGD5WL4N.js.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-JMU7ASDB.js.map → agent-session-store-P6V3FINW.js.map} +1 -1
- package/dist/agent-session-store-ZJ3JSRS4.cjs +24 -0
- package/dist/{agent-session-store-EPX2WQI4.cjs.map → agent-session-store-ZJ3JSRS4.cjs.map} +1 -1
- package/dist/agent.d.ts +25 -7
- package/dist/auth/index.cjs +53 -36
- package/dist/auth/index.cjs.map +1 -1
- package/dist/auth/index.d.cts +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.js +27 -10
- package/dist/auth/index.js.map +1 -1
- package/dist/{batch-NLIS4QTW.js → batch-2TGJMNCJ.js} +14 -13
- package/dist/batch-2TGJMNCJ.js.map +1 -0
- package/dist/{batch-WQ3AJCDV.cjs → batch-ND32UKZS.cjs} +31 -30
- package/dist/batch-ND32UKZS.cjs.map +1 -0
- package/dist/{chunk-TR4V2LHV.cjs → chunk-2ADR2GSO.cjs} +8 -8
- package/dist/chunk-2ADR2GSO.cjs.map +1 -0
- package/dist/{chunk-7HQVDLFI.cjs → chunk-2C72DXQF.cjs} +65 -27
- package/dist/chunk-2C72DXQF.cjs.map +1 -0
- package/dist/{chunk-DEZ75ET5.js → chunk-2D34UTDC.js} +21 -5
- package/dist/chunk-2D34UTDC.js.map +1 -0
- package/dist/{chunk-XGYI2KQH.js → chunk-2QKTVKH3.js} +4 -4
- package/dist/{chunk-XGYI2KQH.js.map → chunk-2QKTVKH3.js.map} +1 -1
- package/dist/{chunk-BBZYXVLZ.cjs → chunk-2ZPEDVLM.cjs} +2 -2
- package/dist/chunk-2ZPEDVLM.cjs.map +1 -0
- package/dist/{chunk-DHVNJYTO.js → chunk-3E77SX4H.js} +4 -4
- package/dist/{chunk-DHVNJYTO.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-3KGLRRFC.cjs +18 -0
- package/dist/chunk-3KGLRRFC.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-FUASIT3E.cjs → chunk-3YJNUKYN.cjs} +15 -15
- package/dist/{chunk-FUASIT3E.cjs.map → chunk-3YJNUKYN.cjs.map} +1 -1
- package/dist/{chunk-R7TKOQMJ.js → chunk-44JAAH4X.js} +3 -3
- package/dist/chunk-44JAAH4X.js.map +1 -0
- package/dist/{chunk-XRI6DXPZ.js → chunk-44MBDIHG.js} +4 -4
- package/dist/chunk-44MBDIHG.js.map +1 -0
- package/dist/{chunk-BXVSBYGW.js → chunk-4ERPXIVB.js} +5 -5
- package/dist/{chunk-BXVSBYGW.js.map → chunk-4ERPXIVB.js.map} +1 -1
- package/dist/{chunk-T6QUCG7L.cjs → chunk-4I55V454.cjs} +4 -4
- package/dist/chunk-4I55V454.cjs.map +1 -0
- 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-3YYDHUNH.cjs → chunk-53CBTBWO.cjs} +11 -11
- package/dist/{chunk-3YYDHUNH.cjs.map → chunk-53CBTBWO.cjs.map} +1 -1
- package/dist/{chunk-2QMK627M.cjs → chunk-5BJV5UPY.cjs} +27 -27
- package/dist/chunk-5BJV5UPY.cjs.map +1 -0
- package/dist/{chunk-OZXPA3ME.js → chunk-5JLFFPCH.js} +4 -4
- package/dist/{chunk-OZXPA3ME.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-EQMLJ52C.cjs → chunk-5UOVYM3P.cjs} +36 -31
- package/dist/chunk-5UOVYM3P.cjs.map +1 -0
- package/dist/{chunk-33L2NVTJ.cjs → chunk-5USCYPPI.cjs} +15 -15
- package/dist/chunk-5USCYPPI.cjs.map +1 -0
- package/dist/{chunk-I732VEDW.js → chunk-AEOZTXVW.js} +3 -3
- package/dist/{chunk-I732VEDW.js.map → chunk-AEOZTXVW.js.map} +1 -1
- package/dist/{chunk-5XXUYU3M.js → chunk-AG5JPQIY.js} +3 -3
- package/dist/{chunk-5XXUYU3M.js.map → chunk-AG5JPQIY.js.map} +1 -1
- package/dist/{chunk-3SHW7XKK.js → chunk-AGSBJD2L.js} +27 -29
- package/dist/chunk-AGSBJD2L.js.map +1 -0
- package/dist/{chunk-KZBB4YKU.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-UJ3SXRZZ.js → chunk-BMAZLQQ4.js} +3 -3
- package/dist/{chunk-UJ3SXRZZ.js.map → chunk-BMAZLQQ4.js.map} +1 -1
- package/dist/{chunk-NUEL6RCZ.cjs → chunk-BVZW2B5V.cjs} +4 -4
- package/dist/chunk-BVZW2B5V.cjs.map +1 -0
- package/dist/{chunk-W4FV7JBH.js → chunk-CQ2TQ32Y.js} +4 -4
- package/dist/chunk-CQ2TQ32Y.js.map +1 -0
- package/dist/{chunk-NFATC6ZF.cjs → chunk-CQGYNZ3K.cjs} +4 -4
- package/dist/{chunk-NFATC6ZF.cjs.map → chunk-CQGYNZ3K.cjs.map} +1 -1
- package/dist/{chunk-3R4ZCQAZ.cjs → chunk-CTCGWIUD.cjs} +5 -5
- package/dist/{chunk-3R4ZCQAZ.cjs.map → chunk-CTCGWIUD.cjs.map} +1 -1
- package/dist/{chunk-HTK54K2J.js → chunk-CV7XMBHP.js} +4 -4
- package/dist/chunk-CV7XMBHP.js.map +1 -0
- package/dist/{chunk-NOS7PTKP.js → chunk-DAPSQZT4.js} +15 -10
- package/dist/chunk-DAPSQZT4.js.map +1 -0
- package/dist/{chunk-E3OCRJU6.cjs → chunk-DQKERTND.cjs} +11 -11
- package/dist/{chunk-E3OCRJU6.cjs.map → chunk-DQKERTND.cjs.map} +1 -1
- package/dist/{chunk-I5OTK2RP.js → chunk-DUIF54UP.js} +6 -6
- package/dist/chunk-DUIF54UP.js.map +1 -0
- package/dist/{chunk-C4EU627W.js → chunk-DZBSJX6J.js} +4 -4
- package/dist/{chunk-C4EU627W.js.map → chunk-DZBSJX6J.js.map} +1 -1
- package/dist/{chunk-ADVZIC43.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-RAACTJ7C.cjs → chunk-F3YZMOAU.cjs} +8 -8
- package/dist/{chunk-RAACTJ7C.cjs.map → chunk-F3YZMOAU.cjs.map} +1 -1
- package/dist/{chunk-KIX45IKP.js → chunk-F7AQV62G.js} +5 -4
- package/dist/chunk-F7AQV62G.js.map +1 -0
- package/dist/{chunk-2YWWPCGX.js → chunk-FXEUP75G.js} +10 -12
- package/dist/chunk-FXEUP75G.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-634YVZLU.js → chunk-GJ6RK75E.js} +5 -5
- package/dist/chunk-GJ6RK75E.js.map +1 -0
- package/dist/{chunk-Z5U2JGEK.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-BWGXYOBZ.cjs → chunk-GWC3HADL.cjs} +4 -4
- package/dist/{chunk-BWGXYOBZ.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-RTLUZKDL.cjs → chunk-HJBMA5MB.cjs} +11 -11
- package/dist/{chunk-RTLUZKDL.cjs.map → chunk-HJBMA5MB.cjs.map} +1 -1
- package/dist/{chunk-AM2CNBKE.js → chunk-HKCKOAIO.js} +2 -2
- package/dist/chunk-HKCKOAIO.js.map +1 -0
- package/dist/{chunk-PVBANCWU.cjs → chunk-HY57ULY2.cjs} +5 -5
- package/dist/{chunk-PVBANCWU.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-2CFEET3Y.cjs → chunk-I6TGFUCO.cjs} +4 -4
- package/dist/chunk-I6TGFUCO.cjs.map +1 -0
- package/dist/{chunk-HI4ZW62S.js → chunk-IDCKSLYH.js} +4 -4
- package/dist/chunk-IDCKSLYH.js.map +1 -0
- package/dist/{chunk-KNZU4YO5.cjs → chunk-ILCGLTSA.cjs} +4 -4
- package/dist/{chunk-KNZU4YO5.cjs.map → chunk-ILCGLTSA.cjs.map} +1 -1
- package/dist/{chunk-44IISBRZ.cjs → chunk-IWBGCBR6.cjs} +4 -4
- package/dist/{chunk-44IISBRZ.cjs.map → chunk-IWBGCBR6.cjs.map} +1 -1
- package/dist/{chunk-R3CKCRK3.cjs → chunk-J24VJOH3.cjs} +22 -6
- package/dist/chunk-J24VJOH3.cjs.map +1 -0
- package/dist/{chunk-ECPL5RV6.cjs → chunk-JHPGF3FP.cjs} +8 -8
- package/dist/{chunk-ECPL5RV6.cjs.map → chunk-JHPGF3FP.cjs.map} +1 -1
- package/dist/{chunk-SXSPMRSV.cjs → chunk-JTB5Q42C.cjs} +21 -19
- package/dist/chunk-JTB5Q42C.cjs.map +1 -0
- package/dist/{chunk-2YGIBOUH.cjs → chunk-K3FW2XZD.cjs} +9 -9
- package/dist/chunk-K3FW2XZD.cjs.map +1 -0
- package/dist/{chunk-6DCTL32L.cjs → chunk-NGESVVJN.cjs} +17 -17
- package/dist/chunk-NGESVVJN.cjs.map +1 -0
- package/dist/{chunk-MV4TOCUK.js → chunk-NLTVXLGT.js} +3 -3
- package/dist/{chunk-MV4TOCUK.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-ZSJPRPN7.js → chunk-OC4NTGMN.js} +3 -3
- package/dist/{chunk-ZSJPRPN7.js.map → chunk-OC4NTGMN.js.map} +1 -1
- package/dist/{chunk-K42QGAKM.cjs → chunk-P6A3M6VD.cjs} +10 -10
- package/dist/{chunk-K42QGAKM.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-2XLKLVVR.js → chunk-Q5EWJPRY.js} +2 -2
- package/dist/chunk-Q5EWJPRY.js.map +1 -0
- package/dist/{chunk-XWCTBGYK.js → chunk-QARJGQSA.js} +16 -7
- package/dist/chunk-QARJGQSA.js.map +1 -0
- package/dist/{chunk-EUBGGYPH.cjs → chunk-QDED6YO6.cjs} +5 -5
- package/dist/{chunk-EUBGGYPH.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-PLUCC4N5.js → chunk-QRSUA2CV.js} +3 -3
- package/dist/{chunk-PLUCC4N5.js.map → chunk-QRSUA2CV.js.map} +1 -1
- package/dist/{chunk-YTO5BRBD.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-BC5EUG7R.cjs → chunk-RM7Y65IG.cjs} +18 -20
- package/dist/chunk-RM7Y65IG.cjs.map +1 -0
- package/dist/{chunk-RP5HQVLD.js → chunk-RNB4APBZ.js} +30 -7
- package/dist/chunk-RNB4APBZ.js.map +1 -0
- package/dist/{chunk-V45L2OYP.cjs → chunk-ROYPRJH4.cjs} +9 -9
- package/dist/{chunk-V45L2OYP.cjs.map → chunk-ROYPRJH4.cjs.map} +1 -1
- package/dist/{chunk-JJZ4NIAG.js → chunk-RUDY2GTT.js} +61 -24
- package/dist/chunk-RUDY2GTT.js.map +1 -0
- package/dist/{chunk-QLAWEGTZ.cjs → chunk-SKXBJ2NU.cjs} +7 -7
- package/dist/chunk-SKXBJ2NU.cjs.map +1 -0
- package/dist/chunk-SSQZA3DZ.js +15 -0
- package/dist/chunk-SSQZA3DZ.js.map +1 -0
- package/dist/{chunk-7TB5U7RK.js → chunk-SUKXXLWD.js} +6 -6
- package/dist/chunk-SUKXXLWD.js.map +1 -0
- package/dist/{chunk-N43XLTHZ.js → chunk-T73NA43R.js} +3 -3
- package/dist/{chunk-N43XLTHZ.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-4X3SBHPK.js → chunk-T7XEKOVW.js} +18 -17
- package/dist/chunk-T7XEKOVW.js.map +1 -0
- package/dist/{chunk-NZOR3N4E.js → chunk-TPTZA6NI.js} +293 -126
- package/dist/chunk-TPTZA6NI.js.map +1 -0
- package/dist/{chunk-QN5N3ZVT.cjs → chunk-TTHBHAJI.cjs} +44 -46
- package/dist/chunk-TTHBHAJI.cjs.map +1 -0
- package/dist/{chunk-CZHPR2G7.cjs → chunk-U2AC6JUP.cjs} +8 -8
- package/dist/chunk-U2AC6JUP.cjs.map +1 -0
- package/dist/{chunk-ITQ4NO4P.js → chunk-UC3HT2S4.js} +3 -3
- package/dist/{chunk-ITQ4NO4P.js.map → chunk-UC3HT2S4.js.map} +1 -1
- package/dist/{chunk-2VFZQEDW.cjs → chunk-UFAO4T7Z.cjs} +565 -399
- package/dist/chunk-UFAO4T7Z.cjs.map +1 -0
- package/dist/{chunk-DM6Y5B2G.cjs → chunk-UNDROG5N.cjs} +201 -154
- package/dist/chunk-UNDROG5N.cjs.map +1 -0
- package/dist/{chunk-L7EGRCKJ.js → chunk-UPRJR6IP.js} +4 -4
- package/dist/chunk-UPRJR6IP.js.map +1 -0
- package/dist/{chunk-23VZBRDQ.js → chunk-UQGQFBRL.js} +3 -3
- package/dist/chunk-UQGQFBRL.js.map +1 -0
- package/dist/{chunk-2Y5NO2SY.js → chunk-VDEWG5TV.js} +88 -43
- package/dist/chunk-VDEWG5TV.js.map +1 -0
- package/dist/{chunk-CHVSMEKM.js → chunk-VF7EWVDG.js} +3 -3
- package/dist/chunk-VF7EWVDG.js.map +1 -0
- package/dist/{chunk-PNVDQL5Y.cjs → chunk-VTYY7XL5.cjs} +2 -2
- package/dist/chunk-VTYY7XL5.cjs.map +1 -0
- package/dist/{chunk-E6T264NS.js → chunk-WKRSH2VR.js} +3 -3
- package/dist/{chunk-E6T264NS.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-EFXJ5C7X.js → chunk-XN7NOENA.js} +6 -6
- package/dist/chunk-XN7NOENA.js.map +1 -0
- package/dist/{chunk-AMYY3JHQ.cjs → chunk-XSX2UU6Y.cjs} +10 -9
- package/dist/chunk-XSX2UU6Y.cjs.map +1 -0
- package/dist/{chunk-6PTCKXD3.js → chunk-XV4IZNV4.js} +9 -9
- package/dist/chunk-XV4IZNV4.js.map +1 -0
- package/dist/{chunk-FBZMSLDC.cjs → chunk-XWL6O3SW.cjs} +4 -4
- package/dist/chunk-XWL6O3SW.cjs.map +1 -0
- package/dist/{chunk-OIBHY6JQ.js → chunk-YMA4S2WO.js} +4 -4
- package/dist/{chunk-OIBHY6JQ.js.map → chunk-YMA4S2WO.js.map} +1 -1
- package/dist/{chunk-T5ZWI3MC.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-K5LXTBPJ.js +22 -0
- package/dist/{compact-session-EJ36VH5I.js.map → compact-session-K5LXTBPJ.js.map} +1 -1
- package/dist/compact-session-YCT6JMBX.cjs +59 -0
- package/dist/{compact-session-6GKIS4SD.cjs.map → compact-session-YCT6JMBX.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-DCECDKWN.js.map → context-FDOON2DB.js.map} +1 -1
- package/dist/context-VMIE4BMD.cjs +23 -0
- package/dist/{context-4HGPCOH6.cjs.map → context-VMIE4BMD.cjs.map} +1 -1
- package/dist/cron-CRwy2JBF.d.ts +240 -0
- package/dist/cron-DxxeQ-sK.d.cts +240 -0
- package/dist/cron.cjs +44 -42
- package/dist/cron.d.cts +5 -3
- package/dist/cron.d.ts +5 -3
- package/dist/cron.js +43 -41
- package/dist/define-tool.d.ts +14 -6
- package/dist/{errors-CHllybaU.d.ts → errors-BgJH9PHi.d.cts} +39 -24
- package/dist/{errors-BSoXcl3F.d.cts → 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 +62 -59
- 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 +52 -49
- package/dist/eval.js.map +1 -1
- package/dist/event-bus.d.ts +16 -0
- package/dist/{executor-3CGPLVJL.js → executor-BMEHFOXZ.js} +8 -7
- package/dist/executor-BMEHFOXZ.js.map +1 -0
- package/dist/{executor-4SW7QGZ4.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-VXXDIBGM.cjs.map → fs-session-store-3MOJQGP2.cjs.map} +1 -1
- package/dist/fs-session-store-IN7JTTXD.js +11 -0
- package/dist/{fs-session-store-LIKYT24K.js.map → fs-session-store-IN7JTTXD.js.map} +1 -1
- package/dist/generate-object-N5MDZUJI.js +8 -0
- package/dist/{generate-object-TVQCW2IZ.js.map → generate-object-N5MDZUJI.js.map} +1 -1
- package/dist/generate-object-PGSP5U7N.cjs +21 -0
- package/dist/{generate-object-E465DX5I.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-HGGL4DD5.cjs.map → index-manager-NG5YENWO.cjs.map} +1 -1
- package/dist/index-manager-ZMRJ6ZII.js +13 -0
- package/dist/{index-manager-EA6FGIQG.js.map → index-manager-ZMRJ6ZII.js.map} +1 -1
- package/dist/index.cjs +176 -154
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +761 -57
- package/dist/index.d.ts +761 -57
- package/dist/index.js +62 -59
- package/dist/index.js.map +1 -1
- package/dist/{inject-session-HO7FYVCX.js → inject-session-DDR6X6PC.js} +9 -8
- package/dist/inject-session-DDR6X6PC.js.map +1 -0
- package/dist/inject-session-XLO3KTBM.cjs +29 -0
- package/dist/inject-session-XLO3KTBM.cjs.map +1 -0
- package/dist/internal/auth/auth-types.d.ts +84 -2
- package/dist/internal/auth/credential-store.d.ts +34 -6
- package/dist/internal/auth/oauth-device.d.ts +2 -3
- 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/router.d.ts +8 -0
- package/dist/internal/llm/types.d.ts +12 -1
- package/dist/internal/local-agent/mcp-pool.d.ts +2 -4
- package/dist/internal/local-agent/real-local-run-provider.d.ts +8 -3
- package/dist/internal/local-agent/real-local-run-tools.d.ts +8 -0
- package/dist/internal/mcp/oauth.d.ts +19 -1
- package/dist/internal/mcp/token-storage.d.ts +52 -1
- 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/atomic-write.d.cts +93 -0
- package/dist/internal/persistence/atomic-write.d.ts +93 -0
- 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 +41 -1
- package/dist/internal/persistence/file-lock.d.ts +41 -1
- 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 +29 -1
- package/dist/internal/persistence/fts5-sanitize.d.ts +29 -1
- 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-dir.d.cts +1 -0
- package/dist/internal/persistence/session-dir.d.ts +1 -0
- package/dist/internal/persistence/session-writer.d.cts +20 -7
- package/dist/internal/persistence/session-writer.d.ts +20 -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 +53 -0
- package/dist/internal/persistence/sqlite-wal.d.ts +53 -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/cerebras.d.ts +2 -2
- package/dist/internal/providers/builtin/deepinfra.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 +37 -1
- 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/env-policy.d.ts +1 -3
- 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 +107 -0
- package/dist/internal/security/path-guard.d.ts +107 -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/compact-session.d.ts +2 -2
- 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 +38 -0
- package/dist/job-queue.d.ts +18 -0
- package/dist/judge-call-DWHAJATE.js +6 -0
- package/dist/{judge-call-QMKGC2ZK.js.map → judge-call-DWHAJATE.js.map} +1 -1
- package/dist/judge-call-EGYRC2RE.cjs +23 -0
- package/dist/{judge-call-GVIJWQVE.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 +43 -28
- package/dist/models.cjs.map +1 -1
- package/dist/models.js +26 -11
- 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-UBY26R4I.cjs.map → registry-VFKX7WOP.cjs.map} +1 -1
- package/dist/registry-VFP3WWQP.js +10 -0
- package/dist/{registry-GC7BQMSV.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.ts → run-BYSHf58D.d.cts} +185 -33
- package/dist/{run-C8FBAC8o.d.cts → 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 -14
- package/dist/sandbox/bwrap.d.ts +27 -14
- package/dist/sandbox/index.cjs +21 -20
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.js +6 -5
- 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-SKIRBEJE.js.map → session-transcript-AKDYYGXQ.js.map} +1 -1
- package/dist/session-transcript-JXHFTB7G.cjs +51 -0
- package/dist/{session-transcript-TNAJ4O3M.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-T4DAMNVB.cjs.map → stream-object-BUCF5PHO.cjs.map} +1 -1
- package/dist/stream-object-L57K4OFS.js +8 -0
- package/dist/{stream-object-QMNR3YFF.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-3CXBQWWY.cjs.map → subagents-loader-AZIXJ7D3.cjs.map} +1 -1
- package/dist/subagents-loader-J54ESLDV.js +7 -0
- package/dist/{subagents-loader-WN2SB6PV.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 +69 -17
- 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 +21 -2
- 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 +208 -172
- package/docs/harness-capability-map.md +1357 -304
- package/package.json +21 -8
- 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-JX5SBYDE.cjs +0 -59
- package/dist/agent-ZAGG6ZBS.js +0 -50
- package/dist/agent-session-store-EPX2WQI4.cjs +0 -23
- package/dist/agent-session-store-JMU7ASDB.js +0 -6
- package/dist/batch-NLIS4QTW.js.map +0 -1
- package/dist/batch-WQ3AJCDV.cjs.map +0 -1
- package/dist/chunk-23VZBRDQ.js.map +0 -1
- package/dist/chunk-2CFEET3Y.cjs.map +0 -1
- package/dist/chunk-2QMK627M.cjs.map +0 -1
- package/dist/chunk-2RW7K6FN.cjs.map +0 -1
- package/dist/chunk-2VFZQEDW.cjs.map +0 -1
- package/dist/chunk-2XLKLVVR.js.map +0 -1
- package/dist/chunk-2Y5NO2SY.js.map +0 -1
- package/dist/chunk-2YGIBOUH.cjs.map +0 -1
- package/dist/chunk-2YWWPCGX.js.map +0 -1
- package/dist/chunk-33L2NVTJ.cjs.map +0 -1
- package/dist/chunk-34XOCZJO.js.map +0 -1
- package/dist/chunk-3SHW7XKK.js.map +0 -1
- package/dist/chunk-4NAKHID5.js.map +0 -1
- package/dist/chunk-4X3SBHPK.js.map +0 -1
- package/dist/chunk-5NBUH3NO.js.map +0 -1
- package/dist/chunk-634YVZLU.js.map +0 -1
- package/dist/chunk-6DCTL32L.cjs.map +0 -1
- package/dist/chunk-6PTCKXD3.js.map +0 -1
- package/dist/chunk-7HQVDLFI.cjs.map +0 -1
- package/dist/chunk-7TB5U7RK.js.map +0 -1
- package/dist/chunk-7W7ZWMLQ.js.map +0 -1
- package/dist/chunk-ADVZIC43.cjs.map +0 -1
- package/dist/chunk-AM2CNBKE.js.map +0 -1
- package/dist/chunk-AMYY3JHQ.cjs.map +0 -1
- package/dist/chunk-B4YA6BRS.cjs.map +0 -1
- package/dist/chunk-BBZYXVLZ.cjs.map +0 -1
- package/dist/chunk-BC5EUG7R.cjs.map +0 -1
- package/dist/chunk-CAH3G4IS.js.map +0 -1
- package/dist/chunk-CHVSMEKM.js.map +0 -1
- package/dist/chunk-CZHPR2G7.cjs.map +0 -1
- package/dist/chunk-DEZ75ET5.js.map +0 -1
- package/dist/chunk-DM6Y5B2G.cjs.map +0 -1
- package/dist/chunk-EFXJ5C7X.js.map +0 -1
- package/dist/chunk-EQMLJ52C.cjs.map +0 -1
- package/dist/chunk-FBZMSLDC.cjs.map +0 -1
- package/dist/chunk-HI4ZW62S.js.map +0 -1
- package/dist/chunk-HTK54K2J.js.map +0 -1
- package/dist/chunk-I5OTK2RP.js.map +0 -1
- package/dist/chunk-JJZ4NIAG.js.map +0 -1
- package/dist/chunk-KIX45IKP.js.map +0 -1
- package/dist/chunk-KZBB4YKU.js.map +0 -1
- package/dist/chunk-L5YO6PWL.cjs.map +0 -1
- package/dist/chunk-L7EGRCKJ.js.map +0 -1
- package/dist/chunk-NOS7PTKP.js.map +0 -1
- package/dist/chunk-NUEL6RCZ.cjs.map +0 -1
- package/dist/chunk-NZOR3N4E.js.map +0 -1
- package/dist/chunk-OKLYRPKL.cjs.map +0 -1
- package/dist/chunk-OXNYIMZZ.js.map +0 -1
- package/dist/chunk-PNVDQL5Y.cjs.map +0 -1
- package/dist/chunk-QLAWEGTZ.cjs.map +0 -1
- package/dist/chunk-QN5N3ZVT.cjs.map +0 -1
- package/dist/chunk-R3CKCRK3.cjs.map +0 -1
- package/dist/chunk-R7TKOQMJ.js.map +0 -1
- package/dist/chunk-RP5HQVLD.js.map +0 -1
- package/dist/chunk-SXSPMRSV.cjs.map +0 -1
- package/dist/chunk-T5ZWI3MC.cjs.map +0 -1
- package/dist/chunk-T6QUCG7L.cjs.map +0 -1
- package/dist/chunk-TR4V2LHV.cjs.map +0 -1
- package/dist/chunk-VYCKUKPA.cjs.map +0 -1
- package/dist/chunk-VYHJZVL5.cjs.map +0 -1
- package/dist/chunk-W4FV7JBH.js.map +0 -1
- package/dist/chunk-X2FR4OIT.js.map +0 -1
- package/dist/chunk-XRI6DXPZ.js.map +0 -1
- package/dist/chunk-XWCTBGYK.js.map +0 -1
- package/dist/chunk-YLQQX5W2.cjs.map +0 -1
- package/dist/chunk-YTO5BRBD.cjs.map +0 -1
- package/dist/chunk-Z5U2JGEK.cjs.map +0 -1
- package/dist/compact-session-6GKIS4SD.cjs +0 -58
- package/dist/compact-session-EJ36VH5I.js +0 -21
- package/dist/context-4HGPCOH6.cjs +0 -22
- package/dist/context-DCECDKWN.js +0 -5
- package/dist/cron-DgHJnMAK.d.cts +0 -631
- package/dist/cron-DyWQsEG6.d.ts +0 -631
- package/dist/executor-3CGPLVJL.js.map +0 -1
- package/dist/executor-4SW7QGZ4.cjs.map +0 -1
- package/dist/fs-session-store-LIKYT24K.js +0 -10
- package/dist/fs-session-store-VXXDIBGM.cjs +0 -19
- package/dist/generate-object-E465DX5I.cjs +0 -20
- package/dist/generate-object-TVQCW2IZ.js +0 -7
- package/dist/index-manager-EA6FGIQG.js +0 -12
- package/dist/index-manager-HGGL4DD5.cjs +0 -21
- package/dist/inject-session-67SF65FC.cjs +0 -28
- package/dist/inject-session-67SF65FC.cjs.map +0 -1
- package/dist/inject-session-HO7FYVCX.js.map +0 -1
- package/dist/judge-call-GVIJWQVE.cjs +0 -22
- package/dist/judge-call-QMKGC2ZK.js +0 -5
- package/dist/oauth-transaction-store-7CKHPQRN.cjs +0 -32
- package/dist/oauth-transaction-store-W74I6EFD.js +0 -3
- package/dist/registry-GC7BQMSV.js +0 -9
- package/dist/registry-UBY26R4I.cjs +0 -46
- package/dist/session-transcript-SKIRBEJE.js +0 -5
- package/dist/session-transcript-TNAJ4O3M.cjs +0 -50
- package/dist/stream-object-QMNR3YFF.js +0 -7
- package/dist/stream-object-T4DAMNVB.cjs +0 -20
- package/dist/subagents-loader-3CXBQWWY.cjs +0 -15
- package/dist/subagents-loader-WN2SB6PV.js +0 -6
|
@@ -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-NFATC6ZF.cjs');
|
|
9
|
-
require('../../../chunk-YTO5BRBD.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-ZSJPRPN7.js';
|
|
7
|
-
import '../../../chunk-XWCTBGYK.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,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M107 — temp-file creation control, shared by `replaceFileAtomic`,
|
|
3
|
+
* `atomicWriteJson` e `atomicWriteText`.
|
|
4
|
+
*
|
|
5
|
+
* Both fields are OPTIONAL and the default is byte-identical to the behavior
|
|
6
|
+
* before M107. See `replaceFileAtomic` for why the mode reassertion
|
|
7
|
+
* is conditional.
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export interface AtomicWriteFileOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Permission bits of the created file. Default: `0o600`, the previous fixed
|
|
13
|
+
* literal — filtered by the `umask`, as it always was. When provided, the mode is
|
|
14
|
+
* reasserted on the descriptor, so the `umask` cannot silently
|
|
15
|
+
* clearing bits the caller asked for.
|
|
16
|
+
*/
|
|
17
|
+
mode?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Create the temp file with `wx` (exclusive creation) instead of `w`. Default:
|
|
20
|
+
* `false` — the previous flag. With `true`, a pre-existing temp file becomes
|
|
21
|
+
* `EEXIST` instead of being truncated.
|
|
22
|
+
*/
|
|
23
|
+
exclusive?: boolean;
|
|
24
|
+
}
|
|
1
25
|
/**
|
|
2
26
|
* U-9 — the file a leftover temp was replacing, or `undefined` if this is not one of ours.
|
|
3
27
|
*
|
|
@@ -12,3 +36,72 @@
|
|
|
12
36
|
* deleting them.
|
|
13
37
|
*/
|
|
14
38
|
export declare function atomicWriteTempTarget(name: string): string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Atomic file replacement: write content to a per-call unique tmp path,
|
|
41
|
+
* fsync, then rename over the target. Crash mid-write leaves either the old
|
|
42
|
+
* file intact or the new file complete — never a half-written file.
|
|
43
|
+
*
|
|
44
|
+
* The tmp suffix is `<pid>.<rand>.tmp` so parallel processes (and concurrent
|
|
45
|
+
* burst writes within one process) never collide on the same tmp path — a
|
|
46
|
+
* race that would manifest as `ENOENT` on `rename` after the rival process
|
|
47
|
+
* already moved its tmp into place.
|
|
48
|
+
*
|
|
49
|
+
* Mirrors peer-project's `replaceFileAtomic` from
|
|
50
|
+
* `reference/peer-project/packages/memory-host-sdk/src/host/fs-utils.ts` with
|
|
51
|
+
* the multi-writer robustness fix.
|
|
52
|
+
*
|
|
53
|
+
* ## M107 — `options` is optional, and the default is byte-identical
|
|
54
|
+
*
|
|
55
|
+
* The third parameter is additive: every earlier caller still compiles and
|
|
56
|
+
* writing exactly the same bytes, with the same mode, to the same path.
|
|
57
|
+
*
|
|
58
|
+
* The mode reassertion (`handle.chmod`) is **conditional on `mode !== undefined`**,
|
|
59
|
+
* and that is not cosmetic. `open`'s mode argument is filtered by the `umask`,
|
|
60
|
+
* which only CLEARS bits — measured in this codebase before the change:
|
|
61
|
+
*
|
|
62
|
+
* ```
|
|
63
|
+
* umask 0o002 -> 0o600 umask 0o022 -> 0o600 umask 0o200 -> 0o400
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* An unconditional `chmod` would take the third case from `0o400` to `0o600` — a
|
|
67
|
+
* an on-disk change for every caller that asked for nothing, including external
|
|
68
|
+
* consumers. When the caller DOES ask for a mode, however, letting the `umask` decide
|
|
69
|
+
* silently is the defect this parameter exists to close; hence the reassertion.
|
|
70
|
+
*
|
|
71
|
+
* It goes on the DESCRIPTOR, before the `rename`, never after: chmod-ing the final
|
|
72
|
+
* final one would leave a window where it carries the `umask`'s mode — a known anti-pattern.
|
|
73
|
+
* The chosen shape passes the mode as an `open` argument.
|
|
74
|
+
*
|
|
75
|
+
*/
|
|
76
|
+
export declare function replaceFileAtomic(filePath: string, content: string, options?: AtomicWriteFileOptions): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Options for `atomicWriteJson`.
|
|
79
|
+
*
|
|
80
|
+
*/
|
|
81
|
+
export interface AtomicWriteJsonOptions extends AtomicWriteFileOptions {
|
|
82
|
+
/** Indent passed to `JSON.stringify`. Default: 2. */
|
|
83
|
+
indent?: number;
|
|
84
|
+
/** Whether to append a trailing newline (POSIX convention). Default: true. */
|
|
85
|
+
trailingNewline?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Typed JSON atomic write helper.
|
|
89
|
+
*
|
|
90
|
+
* Serializes `data` to JSON, then delegates to `replaceFileAtomic`. The
|
|
91
|
+
* parent directory is auto-created (recursive `mkdir`) to make this helper
|
|
92
|
+
* safe for callers who haven't ensured the directory exists (EC-4 in the
|
|
93
|
+
* persistence-state-hardening plan).
|
|
94
|
+
*
|
|
95
|
+
* Throws `TypeError` on circular refs or `undefined` data (propagates from
|
|
96
|
+
* `JSON.stringify`).
|
|
97
|
+
*
|
|
98
|
+
*/
|
|
99
|
+
export declare function atomicWriteJson<T>(filePath: string, data: T, options?: AtomicWriteJsonOptions): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Atomic text write. Same crash-safety guarantees as `replaceFileAtomic` +
|
|
102
|
+
* auto-mkdir of the parent directory. Used by `theokit-migrate-config`
|
|
103
|
+
* (T4.1, EC-2 MUST FIX) so a crash mid-migration leaves previous MD files
|
|
104
|
+
* intact rather than corrupting them.
|
|
105
|
+
*
|
|
106
|
+
*/
|
|
107
|
+
export declare function atomicWriteText(filePath: string, content: string): Promise<void>;
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M107 — temp-file creation control, shared by `replaceFileAtomic`,
|
|
3
|
+
* `atomicWriteJson` e `atomicWriteText`.
|
|
4
|
+
*
|
|
5
|
+
* Both fields are OPTIONAL and the default is byte-identical to the behavior
|
|
6
|
+
* before M107. See `replaceFileAtomic` for why the mode reassertion
|
|
7
|
+
* is conditional.
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export interface AtomicWriteFileOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Permission bits of the created file. Default: `0o600`, the previous fixed
|
|
13
|
+
* literal — filtered by the `umask`, as it always was. When provided, the mode is
|
|
14
|
+
* reasserted on the descriptor, so the `umask` cannot silently
|
|
15
|
+
* clearing bits the caller asked for.
|
|
16
|
+
*/
|
|
17
|
+
mode?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Create the temp file with `wx` (exclusive creation) instead of `w`. Default:
|
|
20
|
+
* `false` — the previous flag. With `true`, a pre-existing temp file becomes
|
|
21
|
+
* `EEXIST` instead of being truncated.
|
|
22
|
+
*/
|
|
23
|
+
exclusive?: boolean;
|
|
24
|
+
}
|
|
1
25
|
/**
|
|
2
26
|
* U-9 — the file a leftover temp was replacing, or `undefined` if this is not one of ours.
|
|
3
27
|
*
|
|
@@ -12,3 +36,72 @@
|
|
|
12
36
|
* deleting them.
|
|
13
37
|
*/
|
|
14
38
|
export declare function atomicWriteTempTarget(name: string): string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Atomic file replacement: write content to a per-call unique tmp path,
|
|
41
|
+
* fsync, then rename over the target. Crash mid-write leaves either the old
|
|
42
|
+
* file intact or the new file complete — never a half-written file.
|
|
43
|
+
*
|
|
44
|
+
* The tmp suffix is `<pid>.<rand>.tmp` so parallel processes (and concurrent
|
|
45
|
+
* burst writes within one process) never collide on the same tmp path — a
|
|
46
|
+
* race that would manifest as `ENOENT` on `rename` after the rival process
|
|
47
|
+
* already moved its tmp into place.
|
|
48
|
+
*
|
|
49
|
+
* Mirrors peer-project's `replaceFileAtomic` from
|
|
50
|
+
* `reference/peer-project/packages/memory-host-sdk/src/host/fs-utils.ts` with
|
|
51
|
+
* the multi-writer robustness fix.
|
|
52
|
+
*
|
|
53
|
+
* ## M107 — `options` is optional, and the default is byte-identical
|
|
54
|
+
*
|
|
55
|
+
* The third parameter is additive: every earlier caller still compiles and
|
|
56
|
+
* writing exactly the same bytes, with the same mode, to the same path.
|
|
57
|
+
*
|
|
58
|
+
* The mode reassertion (`handle.chmod`) is **conditional on `mode !== undefined`**,
|
|
59
|
+
* and that is not cosmetic. `open`'s mode argument is filtered by the `umask`,
|
|
60
|
+
* which only CLEARS bits — measured in this codebase before the change:
|
|
61
|
+
*
|
|
62
|
+
* ```
|
|
63
|
+
* umask 0o002 -> 0o600 umask 0o022 -> 0o600 umask 0o200 -> 0o400
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* An unconditional `chmod` would take the third case from `0o400` to `0o600` — a
|
|
67
|
+
* an on-disk change for every caller that asked for nothing, including external
|
|
68
|
+
* consumers. When the caller DOES ask for a mode, however, letting the `umask` decide
|
|
69
|
+
* silently is the defect this parameter exists to close; hence the reassertion.
|
|
70
|
+
*
|
|
71
|
+
* It goes on the DESCRIPTOR, before the `rename`, never after: chmod-ing the final
|
|
72
|
+
* final one would leave a window where it carries the `umask`'s mode — a known anti-pattern.
|
|
73
|
+
* The chosen shape passes the mode as an `open` argument.
|
|
74
|
+
*
|
|
75
|
+
*/
|
|
76
|
+
export declare function replaceFileAtomic(filePath: string, content: string, options?: AtomicWriteFileOptions): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Options for `atomicWriteJson`.
|
|
79
|
+
*
|
|
80
|
+
*/
|
|
81
|
+
export interface AtomicWriteJsonOptions extends AtomicWriteFileOptions {
|
|
82
|
+
/** Indent passed to `JSON.stringify`. Default: 2. */
|
|
83
|
+
indent?: number;
|
|
84
|
+
/** Whether to append a trailing newline (POSIX convention). Default: true. */
|
|
85
|
+
trailingNewline?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Typed JSON atomic write helper.
|
|
89
|
+
*
|
|
90
|
+
* Serializes `data` to JSON, then delegates to `replaceFileAtomic`. The
|
|
91
|
+
* parent directory is auto-created (recursive `mkdir`) to make this helper
|
|
92
|
+
* safe for callers who haven't ensured the directory exists (EC-4 in the
|
|
93
|
+
* persistence-state-hardening plan).
|
|
94
|
+
*
|
|
95
|
+
* Throws `TypeError` on circular refs or `undefined` data (propagates from
|
|
96
|
+
* `JSON.stringify`).
|
|
97
|
+
*
|
|
98
|
+
*/
|
|
99
|
+
export declare function atomicWriteJson<T>(filePath: string, data: T, options?: AtomicWriteJsonOptions): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Atomic text write. Same crash-safety guarantees as `replaceFileAtomic` +
|
|
102
|
+
* auto-mkdir of the parent directory. Used by `theokit-migrate-config`
|
|
103
|
+
* (T4.1, EC-2 MUST FIX) so a crash mid-migration leaves previous MD files
|
|
104
|
+
* intact rather than corrupting them.
|
|
105
|
+
*
|
|
106
|
+
*/
|
|
107
|
+
export declare function atomicWriteText(filePath: string, content: string): 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>;
|