@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.
Files changed (719) hide show
  1. package/CHANGELOG.md +1096 -8
  2. package/LICENSE +2 -2
  3. package/README.md +14 -9
  4. package/bin/theokit-migrate-config.mjs +11 -2
  5. package/dist/a2a/agent-mailbox.d.cts +27 -0
  6. package/dist/a2a/agent-mailbox.d.ts +27 -0
  7. package/dist/a2a/index.cjs +9 -4
  8. package/dist/a2a/index.cjs.map +1 -1
  9. package/dist/a2a/index.js +7 -2
  10. package/dist/a2a/index.js.map +1 -1
  11. package/dist/a2a/message-bus.d.cts +39 -0
  12. package/dist/a2a/message-bus.d.ts +39 -0
  13. package/dist/a2a/subagent.d.cts +68 -7
  14. package/dist/a2a/subagent.d.ts +68 -7
  15. package/dist/a2a/types.d.cts +26 -0
  16. package/dist/a2a/types.d.ts +26 -0
  17. package/dist/{agent-BiCINq25.d.ts → agent-CIUgz7cN.d.cts} +211 -858
  18. package/dist/{agent-Zta1kvGH.d.cts → agent-DSec-E0c.d.ts} +211 -858
  19. package/dist/agent-NOEGF4GI.cjs +61 -0
  20. package/dist/{agent-JX5SBYDE.cjs.map → agent-NOEGF4GI.cjs.map} +1 -1
  21. package/dist/agent-VGD5WL4N.js +52 -0
  22. package/dist/{agent-ZAGG6ZBS.js.map → agent-VGD5WL4N.js.map} +1 -1
  23. package/dist/agent-builder.d.ts +19 -0
  24. package/dist/agent-session-store-P6V3FINW.js +7 -0
  25. package/dist/{agent-session-store-JMU7ASDB.js.map → agent-session-store-P6V3FINW.js.map} +1 -1
  26. package/dist/agent-session-store-ZJ3JSRS4.cjs +24 -0
  27. package/dist/{agent-session-store-EPX2WQI4.cjs.map → agent-session-store-ZJ3JSRS4.cjs.map} +1 -1
  28. package/dist/agent.d.ts +25 -7
  29. package/dist/auth/index.cjs +53 -36
  30. package/dist/auth/index.cjs.map +1 -1
  31. package/dist/auth/index.d.cts +1 -1
  32. package/dist/auth/index.d.ts +1 -1
  33. package/dist/auth/index.js +27 -10
  34. package/dist/auth/index.js.map +1 -1
  35. package/dist/{batch-NLIS4QTW.js → batch-2TGJMNCJ.js} +14 -13
  36. package/dist/batch-2TGJMNCJ.js.map +1 -0
  37. package/dist/{batch-WQ3AJCDV.cjs → batch-ND32UKZS.cjs} +31 -30
  38. package/dist/batch-ND32UKZS.cjs.map +1 -0
  39. package/dist/{chunk-TR4V2LHV.cjs → chunk-2ADR2GSO.cjs} +8 -8
  40. package/dist/chunk-2ADR2GSO.cjs.map +1 -0
  41. package/dist/{chunk-7HQVDLFI.cjs → chunk-2C72DXQF.cjs} +65 -27
  42. package/dist/chunk-2C72DXQF.cjs.map +1 -0
  43. package/dist/{chunk-DEZ75ET5.js → chunk-2D34UTDC.js} +21 -5
  44. package/dist/chunk-2D34UTDC.js.map +1 -0
  45. package/dist/{chunk-XGYI2KQH.js → chunk-2QKTVKH3.js} +4 -4
  46. package/dist/{chunk-XGYI2KQH.js.map → chunk-2QKTVKH3.js.map} +1 -1
  47. package/dist/{chunk-BBZYXVLZ.cjs → chunk-2ZPEDVLM.cjs} +2 -2
  48. package/dist/chunk-2ZPEDVLM.cjs.map +1 -0
  49. package/dist/{chunk-DHVNJYTO.js → chunk-3E77SX4H.js} +4 -4
  50. package/dist/{chunk-DHVNJYTO.js.map → chunk-3E77SX4H.js.map} +1 -1
  51. package/dist/{chunk-VYHJZVL5.cjs → chunk-3EE6LVWT.cjs} +2 -2
  52. package/dist/chunk-3EE6LVWT.cjs.map +1 -0
  53. package/dist/chunk-3KGLRRFC.cjs +18 -0
  54. package/dist/chunk-3KGLRRFC.cjs.map +1 -0
  55. package/dist/{chunk-5NBUH3NO.js → chunk-3OR54XG4.js} +2 -2
  56. package/dist/{chunk-C6Y6CWYD.cjs.map → chunk-3OR54XG4.js.map} +1 -1
  57. package/dist/{chunk-FUASIT3E.cjs → chunk-3YJNUKYN.cjs} +15 -15
  58. package/dist/{chunk-FUASIT3E.cjs.map → chunk-3YJNUKYN.cjs.map} +1 -1
  59. package/dist/{chunk-R7TKOQMJ.js → chunk-44JAAH4X.js} +3 -3
  60. package/dist/chunk-44JAAH4X.js.map +1 -0
  61. package/dist/{chunk-XRI6DXPZ.js → chunk-44MBDIHG.js} +4 -4
  62. package/dist/chunk-44MBDIHG.js.map +1 -0
  63. package/dist/{chunk-BXVSBYGW.js → chunk-4ERPXIVB.js} +5 -5
  64. package/dist/{chunk-BXVSBYGW.js.map → chunk-4ERPXIVB.js.map} +1 -1
  65. package/dist/{chunk-T6QUCG7L.cjs → chunk-4I55V454.cjs} +4 -4
  66. package/dist/chunk-4I55V454.cjs.map +1 -0
  67. package/dist/{chunk-B4YA6BRS.cjs → chunk-4O5TGQBW.cjs} +30 -7
  68. package/dist/chunk-4O5TGQBW.cjs.map +1 -0
  69. package/dist/{chunk-4JBHSLQO.cjs → chunk-4OTIXDMU.cjs} +2 -2
  70. package/dist/{chunk-4JBHSLQO.cjs.map → chunk-4OTIXDMU.cjs.map} +1 -1
  71. package/dist/{chunk-C6Y6CWYD.cjs → chunk-52NKC5HT.cjs} +2 -2
  72. package/dist/chunk-52NKC5HT.cjs.map +1 -0
  73. package/dist/{chunk-3YYDHUNH.cjs → chunk-53CBTBWO.cjs} +11 -11
  74. package/dist/{chunk-3YYDHUNH.cjs.map → chunk-53CBTBWO.cjs.map} +1 -1
  75. package/dist/{chunk-2QMK627M.cjs → chunk-5BJV5UPY.cjs} +27 -27
  76. package/dist/chunk-5BJV5UPY.cjs.map +1 -0
  77. package/dist/{chunk-OZXPA3ME.js → chunk-5JLFFPCH.js} +4 -4
  78. package/dist/{chunk-OZXPA3ME.js.map → chunk-5JLFFPCH.js.map} +1 -1
  79. package/dist/{chunk-34XOCZJO.js → chunk-5PHVENFV.js} +3 -3
  80. package/dist/chunk-5PHVENFV.js.map +1 -0
  81. package/dist/{chunk-EQMLJ52C.cjs → chunk-5UOVYM3P.cjs} +36 -31
  82. package/dist/chunk-5UOVYM3P.cjs.map +1 -0
  83. package/dist/{chunk-33L2NVTJ.cjs → chunk-5USCYPPI.cjs} +15 -15
  84. package/dist/chunk-5USCYPPI.cjs.map +1 -0
  85. package/dist/{chunk-I732VEDW.js → chunk-AEOZTXVW.js} +3 -3
  86. package/dist/{chunk-I732VEDW.js.map → chunk-AEOZTXVW.js.map} +1 -1
  87. package/dist/{chunk-5XXUYU3M.js → chunk-AG5JPQIY.js} +3 -3
  88. package/dist/{chunk-5XXUYU3M.js.map → chunk-AG5JPQIY.js.map} +1 -1
  89. package/dist/{chunk-3SHW7XKK.js → chunk-AGSBJD2L.js} +27 -29
  90. package/dist/chunk-AGSBJD2L.js.map +1 -0
  91. package/dist/{chunk-KZBB4YKU.js → chunk-AQLGBKNT.js} +3 -3
  92. package/dist/chunk-AQLGBKNT.js.map +1 -0
  93. package/dist/{chunk-7W7ZWMLQ.js → chunk-AWO27VRZ.js} +3 -3
  94. package/dist/chunk-AWO27VRZ.js.map +1 -0
  95. package/dist/{chunk-VYCKUKPA.cjs → chunk-B2J4ZMZL.cjs} +3 -2
  96. package/dist/chunk-B2J4ZMZL.cjs.map +1 -0
  97. package/dist/{chunk-UJ3SXRZZ.js → chunk-BMAZLQQ4.js} +3 -3
  98. package/dist/{chunk-UJ3SXRZZ.js.map → chunk-BMAZLQQ4.js.map} +1 -1
  99. package/dist/{chunk-NUEL6RCZ.cjs → chunk-BVZW2B5V.cjs} +4 -4
  100. package/dist/chunk-BVZW2B5V.cjs.map +1 -0
  101. package/dist/{chunk-W4FV7JBH.js → chunk-CQ2TQ32Y.js} +4 -4
  102. package/dist/chunk-CQ2TQ32Y.js.map +1 -0
  103. package/dist/{chunk-NFATC6ZF.cjs → chunk-CQGYNZ3K.cjs} +4 -4
  104. package/dist/{chunk-NFATC6ZF.cjs.map → chunk-CQGYNZ3K.cjs.map} +1 -1
  105. package/dist/{chunk-3R4ZCQAZ.cjs → chunk-CTCGWIUD.cjs} +5 -5
  106. package/dist/{chunk-3R4ZCQAZ.cjs.map → chunk-CTCGWIUD.cjs.map} +1 -1
  107. package/dist/{chunk-HTK54K2J.js → chunk-CV7XMBHP.js} +4 -4
  108. package/dist/chunk-CV7XMBHP.js.map +1 -0
  109. package/dist/{chunk-NOS7PTKP.js → chunk-DAPSQZT4.js} +15 -10
  110. package/dist/chunk-DAPSQZT4.js.map +1 -0
  111. package/dist/{chunk-E3OCRJU6.cjs → chunk-DQKERTND.cjs} +11 -11
  112. package/dist/{chunk-E3OCRJU6.cjs.map → chunk-DQKERTND.cjs.map} +1 -1
  113. package/dist/{chunk-I5OTK2RP.js → chunk-DUIF54UP.js} +6 -6
  114. package/dist/chunk-DUIF54UP.js.map +1 -0
  115. package/dist/{chunk-C4EU627W.js → chunk-DZBSJX6J.js} +4 -4
  116. package/dist/{chunk-C4EU627W.js.map → chunk-DZBSJX6J.js.map} +1 -1
  117. package/dist/{chunk-ADVZIC43.cjs → chunk-EI2Q7SJ5.cjs} +12 -12
  118. package/dist/chunk-EI2Q7SJ5.cjs.map +1 -0
  119. package/dist/{chunk-UCFONJBG.js → chunk-EPSICJLZ.js} +2 -2
  120. package/dist/{chunk-UCFONJBG.js.map → chunk-EPSICJLZ.js.map} +1 -1
  121. package/dist/{chunk-RAACTJ7C.cjs → chunk-F3YZMOAU.cjs} +8 -8
  122. package/dist/{chunk-RAACTJ7C.cjs.map → chunk-F3YZMOAU.cjs.map} +1 -1
  123. package/dist/{chunk-KIX45IKP.js → chunk-F7AQV62G.js} +5 -4
  124. package/dist/chunk-F7AQV62G.js.map +1 -0
  125. package/dist/{chunk-2YWWPCGX.js → chunk-FXEUP75G.js} +10 -12
  126. package/dist/chunk-FXEUP75G.js.map +1 -0
  127. package/dist/{chunk-2RW7K6FN.cjs → chunk-GHX4P3V2.cjs} +2 -2
  128. package/dist/chunk-GHX4P3V2.cjs.map +1 -0
  129. package/dist/{chunk-634YVZLU.js → chunk-GJ6RK75E.js} +5 -5
  130. package/dist/chunk-GJ6RK75E.js.map +1 -0
  131. package/dist/{chunk-Z5U2JGEK.cjs → chunk-GNT35C5U.cjs} +13 -13
  132. package/dist/chunk-GNT35C5U.cjs.map +1 -0
  133. package/dist/{chunk-4NAKHID5.js → chunk-GTKFV7O5.js} +2 -2
  134. package/dist/chunk-GTKFV7O5.js.map +1 -0
  135. package/dist/{chunk-BWGXYOBZ.cjs → chunk-GWC3HADL.cjs} +4 -4
  136. package/dist/{chunk-BWGXYOBZ.cjs.map → chunk-GWC3HADL.cjs.map} +1 -1
  137. package/dist/{chunk-OXNYIMZZ.js → chunk-H73MEMQB.js} +2 -2
  138. package/dist/chunk-H73MEMQB.js.map +1 -0
  139. package/dist/{chunk-RTLUZKDL.cjs → chunk-HJBMA5MB.cjs} +11 -11
  140. package/dist/{chunk-RTLUZKDL.cjs.map → chunk-HJBMA5MB.cjs.map} +1 -1
  141. package/dist/{chunk-AM2CNBKE.js → chunk-HKCKOAIO.js} +2 -2
  142. package/dist/chunk-HKCKOAIO.js.map +1 -0
  143. package/dist/{chunk-PVBANCWU.cjs → chunk-HY57ULY2.cjs} +5 -5
  144. package/dist/{chunk-PVBANCWU.cjs.map → chunk-HY57ULY2.cjs.map} +1 -1
  145. package/dist/{chunk-CAH3G4IS.js → chunk-HY66GLM6.js} +2 -2
  146. package/dist/chunk-HY66GLM6.js.map +1 -0
  147. package/dist/{chunk-2CFEET3Y.cjs → chunk-I6TGFUCO.cjs} +4 -4
  148. package/dist/chunk-I6TGFUCO.cjs.map +1 -0
  149. package/dist/{chunk-HI4ZW62S.js → chunk-IDCKSLYH.js} +4 -4
  150. package/dist/chunk-IDCKSLYH.js.map +1 -0
  151. package/dist/{chunk-KNZU4YO5.cjs → chunk-ILCGLTSA.cjs} +4 -4
  152. package/dist/{chunk-KNZU4YO5.cjs.map → chunk-ILCGLTSA.cjs.map} +1 -1
  153. package/dist/{chunk-44IISBRZ.cjs → chunk-IWBGCBR6.cjs} +4 -4
  154. package/dist/{chunk-44IISBRZ.cjs.map → chunk-IWBGCBR6.cjs.map} +1 -1
  155. package/dist/{chunk-R3CKCRK3.cjs → chunk-J24VJOH3.cjs} +22 -6
  156. package/dist/chunk-J24VJOH3.cjs.map +1 -0
  157. package/dist/{chunk-ECPL5RV6.cjs → chunk-JHPGF3FP.cjs} +8 -8
  158. package/dist/{chunk-ECPL5RV6.cjs.map → chunk-JHPGF3FP.cjs.map} +1 -1
  159. package/dist/{chunk-SXSPMRSV.cjs → chunk-JTB5Q42C.cjs} +21 -19
  160. package/dist/chunk-JTB5Q42C.cjs.map +1 -0
  161. package/dist/{chunk-2YGIBOUH.cjs → chunk-K3FW2XZD.cjs} +9 -9
  162. package/dist/chunk-K3FW2XZD.cjs.map +1 -0
  163. package/dist/{chunk-6DCTL32L.cjs → chunk-NGESVVJN.cjs} +17 -17
  164. package/dist/chunk-NGESVVJN.cjs.map +1 -0
  165. package/dist/{chunk-MV4TOCUK.js → chunk-NLTVXLGT.js} +3 -3
  166. package/dist/{chunk-MV4TOCUK.js.map → chunk-NLTVXLGT.js.map} +1 -1
  167. package/dist/chunk-NUKRL3I6.cjs +23 -0
  168. package/dist/chunk-NUKRL3I6.cjs.map +1 -0
  169. package/dist/{chunk-ZSJPRPN7.js → chunk-OC4NTGMN.js} +3 -3
  170. package/dist/{chunk-ZSJPRPN7.js.map → chunk-OC4NTGMN.js.map} +1 -1
  171. package/dist/{chunk-K42QGAKM.cjs → chunk-P6A3M6VD.cjs} +10 -10
  172. package/dist/{chunk-K42QGAKM.cjs.map → chunk-P6A3M6VD.cjs.map} +1 -1
  173. package/dist/{chunk-OKLYRPKL.cjs → chunk-Q47R5E2X.cjs} +8 -8
  174. package/dist/chunk-Q47R5E2X.cjs.map +1 -0
  175. package/dist/{chunk-2XLKLVVR.js → chunk-Q5EWJPRY.js} +2 -2
  176. package/dist/chunk-Q5EWJPRY.js.map +1 -0
  177. package/dist/{chunk-XWCTBGYK.js → chunk-QARJGQSA.js} +16 -7
  178. package/dist/chunk-QARJGQSA.js.map +1 -0
  179. package/dist/{chunk-EUBGGYPH.cjs → chunk-QDED6YO6.cjs} +5 -5
  180. package/dist/{chunk-EUBGGYPH.cjs.map → chunk-QDED6YO6.cjs.map} +1 -1
  181. package/dist/{chunk-VK7MAV65.cjs → chunk-QKLOP4VC.cjs} +2 -2
  182. package/dist/{chunk-VK7MAV65.cjs.map → chunk-QKLOP4VC.cjs.map} +1 -1
  183. package/dist/{chunk-PLUCC4N5.js → chunk-QRSUA2CV.js} +3 -3
  184. package/dist/{chunk-PLUCC4N5.js.map → chunk-QRSUA2CV.js.map} +1 -1
  185. package/dist/{chunk-YTO5BRBD.cjs → chunk-R3UPQFKK.cjs} +21 -12
  186. package/dist/chunk-R3UPQFKK.cjs.map +1 -0
  187. package/dist/{chunk-X2FR4OIT.js → chunk-R7WIIPUR.js} +2 -2
  188. package/dist/chunk-R7WIIPUR.js.map +1 -0
  189. package/dist/{chunk-BC5EUG7R.cjs → chunk-RM7Y65IG.cjs} +18 -20
  190. package/dist/chunk-RM7Y65IG.cjs.map +1 -0
  191. package/dist/{chunk-RP5HQVLD.js → chunk-RNB4APBZ.js} +30 -7
  192. package/dist/chunk-RNB4APBZ.js.map +1 -0
  193. package/dist/{chunk-V45L2OYP.cjs → chunk-ROYPRJH4.cjs} +9 -9
  194. package/dist/{chunk-V45L2OYP.cjs.map → chunk-ROYPRJH4.cjs.map} +1 -1
  195. package/dist/{chunk-JJZ4NIAG.js → chunk-RUDY2GTT.js} +61 -24
  196. package/dist/chunk-RUDY2GTT.js.map +1 -0
  197. package/dist/{chunk-QLAWEGTZ.cjs → chunk-SKXBJ2NU.cjs} +7 -7
  198. package/dist/chunk-SKXBJ2NU.cjs.map +1 -0
  199. package/dist/chunk-SSQZA3DZ.js +15 -0
  200. package/dist/chunk-SSQZA3DZ.js.map +1 -0
  201. package/dist/{chunk-7TB5U7RK.js → chunk-SUKXXLWD.js} +6 -6
  202. package/dist/chunk-SUKXXLWD.js.map +1 -0
  203. package/dist/{chunk-N43XLTHZ.js → chunk-T73NA43R.js} +3 -3
  204. package/dist/{chunk-N43XLTHZ.js.map → chunk-T73NA43R.js.map} +1 -1
  205. package/dist/chunk-T7O6K6PX.js +20 -0
  206. package/dist/chunk-T7O6K6PX.js.map +1 -0
  207. package/dist/{chunk-4X3SBHPK.js → chunk-T7XEKOVW.js} +18 -17
  208. package/dist/chunk-T7XEKOVW.js.map +1 -0
  209. package/dist/{chunk-NZOR3N4E.js → chunk-TPTZA6NI.js} +293 -126
  210. package/dist/chunk-TPTZA6NI.js.map +1 -0
  211. package/dist/{chunk-QN5N3ZVT.cjs → chunk-TTHBHAJI.cjs} +44 -46
  212. package/dist/chunk-TTHBHAJI.cjs.map +1 -0
  213. package/dist/{chunk-CZHPR2G7.cjs → chunk-U2AC6JUP.cjs} +8 -8
  214. package/dist/chunk-U2AC6JUP.cjs.map +1 -0
  215. package/dist/{chunk-ITQ4NO4P.js → chunk-UC3HT2S4.js} +3 -3
  216. package/dist/{chunk-ITQ4NO4P.js.map → chunk-UC3HT2S4.js.map} +1 -1
  217. package/dist/{chunk-2VFZQEDW.cjs → chunk-UFAO4T7Z.cjs} +565 -399
  218. package/dist/chunk-UFAO4T7Z.cjs.map +1 -0
  219. package/dist/{chunk-DM6Y5B2G.cjs → chunk-UNDROG5N.cjs} +201 -154
  220. package/dist/chunk-UNDROG5N.cjs.map +1 -0
  221. package/dist/{chunk-L7EGRCKJ.js → chunk-UPRJR6IP.js} +4 -4
  222. package/dist/chunk-UPRJR6IP.js.map +1 -0
  223. package/dist/{chunk-23VZBRDQ.js → chunk-UQGQFBRL.js} +3 -3
  224. package/dist/chunk-UQGQFBRL.js.map +1 -0
  225. package/dist/{chunk-2Y5NO2SY.js → chunk-VDEWG5TV.js} +88 -43
  226. package/dist/chunk-VDEWG5TV.js.map +1 -0
  227. package/dist/{chunk-CHVSMEKM.js → chunk-VF7EWVDG.js} +3 -3
  228. package/dist/chunk-VF7EWVDG.js.map +1 -0
  229. package/dist/{chunk-PNVDQL5Y.cjs → chunk-VTYY7XL5.cjs} +2 -2
  230. package/dist/chunk-VTYY7XL5.cjs.map +1 -0
  231. package/dist/{chunk-E6T264NS.js → chunk-WKRSH2VR.js} +3 -3
  232. package/dist/{chunk-E6T264NS.js.map → chunk-WKRSH2VR.js.map} +1 -1
  233. package/dist/{chunk-4QEC4CCS.js → chunk-WTMU7J4U.js} +2 -2
  234. package/dist/{chunk-4QEC4CCS.js.map → chunk-WTMU7J4U.js.map} +1 -1
  235. package/dist/{chunk-EFXJ5C7X.js → chunk-XN7NOENA.js} +6 -6
  236. package/dist/chunk-XN7NOENA.js.map +1 -0
  237. package/dist/{chunk-AMYY3JHQ.cjs → chunk-XSX2UU6Y.cjs} +10 -9
  238. package/dist/chunk-XSX2UU6Y.cjs.map +1 -0
  239. package/dist/{chunk-6PTCKXD3.js → chunk-XV4IZNV4.js} +9 -9
  240. package/dist/chunk-XV4IZNV4.js.map +1 -0
  241. package/dist/{chunk-FBZMSLDC.cjs → chunk-XWL6O3SW.cjs} +4 -4
  242. package/dist/chunk-XWL6O3SW.cjs.map +1 -0
  243. package/dist/{chunk-OIBHY6JQ.js → chunk-YMA4S2WO.js} +4 -4
  244. package/dist/{chunk-OIBHY6JQ.js.map → chunk-YMA4S2WO.js.map} +1 -1
  245. package/dist/{chunk-T5ZWI3MC.cjs → chunk-YPJ5NH5N.cjs} +11 -11
  246. package/dist/chunk-YPJ5NH5N.cjs.map +1 -0
  247. package/dist/{chunk-YLQQX5W2.cjs → chunk-ZF2LDKQQ.cjs} +2 -2
  248. package/dist/chunk-ZF2LDKQQ.cjs.map +1 -0
  249. package/dist/{chunk-L5YO6PWL.cjs → chunk-ZNW6V4Y6.cjs} +2 -2
  250. package/dist/chunk-ZNW6V4Y6.cjs.map +1 -0
  251. package/dist/client/index.cjs.map +1 -1
  252. package/dist/client/index.js.map +1 -1
  253. package/dist/client/theokit-client.d.cts +36 -0
  254. package/dist/client/theokit-client.d.ts +36 -0
  255. package/dist/client/types.d.cts +30 -0
  256. package/dist/client/types.d.ts +30 -0
  257. package/dist/compact-session-K5LXTBPJ.js +22 -0
  258. package/dist/{compact-session-EJ36VH5I.js.map → compact-session-K5LXTBPJ.js.map} +1 -1
  259. package/dist/compact-session-YCT6JMBX.cjs +59 -0
  260. package/dist/{compact-session-6GKIS4SD.cjs.map → compact-session-YCT6JMBX.cjs.map} +1 -1
  261. package/dist/compaction.cjs +17 -16
  262. package/dist/compaction.d.cts +13 -13
  263. package/dist/compaction.d.ts +13 -13
  264. package/dist/compaction.js +4 -3
  265. package/dist/concurrency.cjs +7 -6
  266. package/dist/concurrency.cjs.map +1 -1
  267. package/dist/concurrency.js +5 -4
  268. package/dist/concurrency.js.map +1 -1
  269. package/dist/context/index.cjs +7 -7
  270. package/dist/context/index.js +3 -3
  271. package/dist/context-FDOON2DB.js +6 -0
  272. package/dist/{context-DCECDKWN.js.map → context-FDOON2DB.js.map} +1 -1
  273. package/dist/context-VMIE4BMD.cjs +23 -0
  274. package/dist/{context-4HGPCOH6.cjs.map → context-VMIE4BMD.cjs.map} +1 -1
  275. package/dist/cron-CRwy2JBF.d.ts +240 -0
  276. package/dist/cron-DxxeQ-sK.d.cts +240 -0
  277. package/dist/cron.cjs +44 -42
  278. package/dist/cron.d.cts +5 -3
  279. package/dist/cron.d.ts +5 -3
  280. package/dist/cron.js +43 -41
  281. package/dist/define-tool.d.ts +14 -6
  282. package/dist/{errors-CHllybaU.d.ts → errors-BgJH9PHi.d.cts} +39 -24
  283. package/dist/{errors-BSoXcl3F.d.cts → errors-C5fJUqLk.d.ts} +39 -24
  284. package/dist/errors.cjs +22 -21
  285. package/dist/errors.d.cts +2 -2
  286. package/dist/errors.d.ts +2 -2
  287. package/dist/errors.js +3 -2
  288. package/dist/eval.cjs +62 -59
  289. package/dist/eval.cjs.map +1 -1
  290. package/dist/eval.d.cts +38 -0
  291. package/dist/eval.d.ts +38 -0
  292. package/dist/eval.js +52 -49
  293. package/dist/eval.js.map +1 -1
  294. package/dist/event-bus.d.ts +16 -0
  295. package/dist/{executor-3CGPLVJL.js → executor-BMEHFOXZ.js} +8 -7
  296. package/dist/executor-BMEHFOXZ.js.map +1 -0
  297. package/dist/{executor-4SW7QGZ4.cjs → executor-ZERJ3DGN.cjs} +25 -24
  298. package/dist/executor-ZERJ3DGN.cjs.map +1 -0
  299. package/dist/filesystem/index.cjs +8 -7
  300. package/dist/filesystem/index.cjs.map +1 -1
  301. package/dist/filesystem/index.js +4 -3
  302. package/dist/filesystem/index.js.map +1 -1
  303. package/dist/filesystem/local-filesystem.d.cts +18 -0
  304. package/dist/filesystem/local-filesystem.d.ts +18 -0
  305. package/dist/filesystem/types.d.cts +12 -0
  306. package/dist/filesystem/types.d.ts +12 -0
  307. package/dist/fs-session-store-3MOJQGP2.cjs +20 -0
  308. package/dist/{fs-session-store-VXXDIBGM.cjs.map → fs-session-store-3MOJQGP2.cjs.map} +1 -1
  309. package/dist/fs-session-store-IN7JTTXD.js +11 -0
  310. package/dist/{fs-session-store-LIKYT24K.js.map → fs-session-store-IN7JTTXD.js.map} +1 -1
  311. package/dist/generate-object-N5MDZUJI.js +8 -0
  312. package/dist/{generate-object-TVQCW2IZ.js.map → generate-object-N5MDZUJI.js.map} +1 -1
  313. package/dist/generate-object-PGSP5U7N.cjs +21 -0
  314. package/dist/{generate-object-E465DX5I.cjs.map → generate-object-PGSP5U7N.cjs.map} +1 -1
  315. package/dist/generate-object.d.ts +20 -0
  316. package/dist/index-manager-NG5YENWO.cjs +22 -0
  317. package/dist/{index-manager-HGGL4DD5.cjs.map → index-manager-NG5YENWO.cjs.map} +1 -1
  318. package/dist/index-manager-ZMRJ6ZII.js +13 -0
  319. package/dist/{index-manager-EA6FGIQG.js.map → index-manager-ZMRJ6ZII.js.map} +1 -1
  320. package/dist/index.cjs +176 -154
  321. package/dist/index.cjs.map +1 -1
  322. package/dist/index.d.cts +761 -57
  323. package/dist/index.d.ts +761 -57
  324. package/dist/index.js +62 -59
  325. package/dist/index.js.map +1 -1
  326. package/dist/{inject-session-HO7FYVCX.js → inject-session-DDR6X6PC.js} +9 -8
  327. package/dist/inject-session-DDR6X6PC.js.map +1 -0
  328. package/dist/inject-session-XLO3KTBM.cjs +29 -0
  329. package/dist/inject-session-XLO3KTBM.cjs.map +1 -0
  330. package/dist/internal/auth/auth-types.d.ts +84 -2
  331. package/dist/internal/auth/credential-store.d.ts +34 -6
  332. package/dist/internal/auth/oauth-device.d.ts +2 -3
  333. package/dist/internal/auth/resolve-credential.d.ts +40 -0
  334. package/dist/internal/budget/tracker/budget.d.ts +12 -14
  335. package/dist/internal/budget/usage-accumulator.d.ts +15 -0
  336. package/dist/internal/llm/anthropic-shared.d.ts +8 -4
  337. package/dist/internal/llm/model-identifier.d.ts +26 -0
  338. package/dist/internal/llm/openai.d.ts +8 -0
  339. package/dist/internal/llm/router.d.ts +8 -0
  340. package/dist/internal/llm/types.d.ts +12 -1
  341. package/dist/internal/local-agent/mcp-pool.d.ts +2 -4
  342. package/dist/internal/local-agent/real-local-run-provider.d.ts +8 -3
  343. package/dist/internal/local-agent/real-local-run-tools.d.ts +8 -0
  344. package/dist/internal/mcp/oauth.d.ts +19 -1
  345. package/dist/internal/mcp/token-storage.d.ts +52 -1
  346. package/dist/internal/memory/adapters/index.cjs +12 -11
  347. package/dist/internal/memory/adapters/index.d.cts +3 -1
  348. package/dist/internal/memory/adapters/index.d.ts +3 -1
  349. package/dist/internal/memory/adapters/index.js +9 -8
  350. package/dist/internal/memory/adapters/openai-compatible.d.cts +45 -0
  351. package/dist/internal/memory/adapters/openai-compatible.d.ts +45 -0
  352. package/dist/internal/memory/embedding-cache.d.ts +42 -1
  353. package/dist/internal/memory/escape-like-pattern.d.ts +22 -0
  354. package/dist/internal/memory/sqlite-vec-loader.d.ts +1 -3
  355. package/dist/internal/memory/storage/markdown-store.d.ts +0 -5
  356. package/dist/internal/persistence/atomic-write.d.cts +93 -0
  357. package/dist/internal/persistence/atomic-write.d.ts +93 -0
  358. package/dist/internal/persistence/cwd-mutex.d.cts +34 -0
  359. package/dist/internal/persistence/cwd-mutex.d.ts +34 -0
  360. package/dist/internal/persistence/exclusive-create.d.cts +31 -0
  361. package/dist/internal/persistence/exclusive-create.d.ts +31 -0
  362. package/dist/internal/persistence/file-lock.d.cts +41 -1
  363. package/dist/internal/persistence/file-lock.d.ts +41 -1
  364. package/dist/internal/persistence/fs-session-store.d.cts +3 -0
  365. package/dist/internal/persistence/fs-session-store.d.ts +3 -0
  366. package/dist/internal/persistence/fts5-sanitize.d.cts +29 -1
  367. package/dist/internal/persistence/fts5-sanitize.d.ts +29 -1
  368. package/dist/internal/persistence/index.cjs +40 -39
  369. package/dist/internal/persistence/index.cjs.map +1 -1
  370. package/dist/internal/persistence/index.d.cts +6 -1
  371. package/dist/internal/persistence/index.d.ts +6 -1
  372. package/dist/internal/persistence/index.js +9 -8
  373. package/dist/internal/persistence/index.js.map +1 -1
  374. package/dist/internal/persistence/paths.d.cts +54 -1
  375. package/dist/internal/persistence/paths.d.ts +54 -1
  376. package/dist/internal/persistence/persistence-schema.d.cts +9 -1
  377. package/dist/internal/persistence/persistence-schema.d.ts +9 -1
  378. package/dist/internal/persistence/schema-version.d.cts +215 -1
  379. package/dist/internal/persistence/schema-version.d.ts +215 -1
  380. package/dist/internal/persistence/session-dir.d.cts +1 -0
  381. package/dist/internal/persistence/session-dir.d.ts +1 -0
  382. package/dist/internal/persistence/session-writer.d.cts +20 -7
  383. package/dist/internal/persistence/session-writer.d.ts +20 -7
  384. package/dist/internal/persistence/sqlite-cas.d.cts +37 -1
  385. package/dist/internal/persistence/sqlite-cas.d.ts +37 -1
  386. package/dist/internal/persistence/sqlite-open.d.cts +14 -0
  387. package/dist/internal/persistence/sqlite-open.d.ts +14 -0
  388. package/dist/internal/persistence/sqlite-wal.d.cts +53 -0
  389. package/dist/internal/persistence/sqlite-wal.d.ts +53 -0
  390. package/dist/internal/persistence/transcript-ops.d.cts +7 -1
  391. package/dist/internal/persistence/transcript-ops.d.ts +7 -1
  392. package/dist/internal/plugins/types.d.cts +1 -1
  393. package/dist/internal/plugins/types.d.ts +1 -1
  394. package/dist/internal/providers/builtin/cerebras.d.ts +2 -2
  395. package/dist/internal/providers/builtin/deepinfra.d.ts +1 -1
  396. package/dist/internal/providers/builtin/openai-chatgpt.d.ts +12 -0
  397. package/dist/internal/providers/catalog-loader.d.ts +8 -0
  398. package/dist/internal/providers/catalog-schema.d.ts +55 -0
  399. package/dist/internal/providers/catalog-source-models-dev.d.ts +37 -1
  400. package/dist/internal/runtime/concurrency/delegation-depth.d.ts +27 -0
  401. package/dist/internal/runtime/concurrency/subagent-credentials.d.ts +33 -1
  402. package/dist/internal/runtime/context/context-discovery-runner.d.ts +44 -0
  403. package/dist/internal/runtime/context/context-discovery.d.ts +58 -0
  404. package/dist/internal/runtime/context/context-rules-frontmatter.d.ts +70 -1
  405. package/dist/internal/runtime/fixtures/fixture-mode.d.ts +15 -1
  406. package/dist/internal/runtime/lifecycle/env-policy.d.ts +1 -3
  407. package/dist/internal/runtime/lifecycle/post-run-lifecycle.d.ts +15 -0
  408. package/dist/internal/runtime/registry/agent-registry-store.d.ts +12 -0
  409. package/dist/internal/runtime/registry/live-agent-registry.d.ts +37 -0
  410. package/dist/internal/scorers/llm-judge.d.ts +6 -1
  411. package/dist/internal/security/index.cjs +14 -13
  412. package/dist/internal/security/index.d.cts +4 -1
  413. package/dist/internal/security/index.d.ts +4 -1
  414. package/dist/internal/security/index.js +4 -3
  415. package/dist/internal/security/path-guard.d.cts +107 -0
  416. package/dist/internal/security/path-guard.d.ts +107 -0
  417. package/dist/internal/security/redact.d.cts +71 -0
  418. package/dist/internal/security/redact.d.ts +71 -0
  419. package/dist/internal/session/agent-session.d.ts +15 -4
  420. package/dist/internal/session/compact-session.d.ts +2 -2
  421. package/dist/internal/session/session-cache.d.ts +5 -0
  422. package/dist/internal/task/store.d.ts +91 -5
  423. package/dist/internal/telemetry/span-names.d.ts +0 -1
  424. package/dist/internal/telemetry/tracer.d.ts +38 -0
  425. package/dist/job-queue.d.ts +18 -0
  426. package/dist/judge-call-DWHAJATE.js +6 -0
  427. package/dist/{judge-call-QMKGC2ZK.js.map → judge-call-DWHAJATE.js.map} +1 -1
  428. package/dist/judge-call-EGYRC2RE.cjs +23 -0
  429. package/dist/{judge-call-GVIJWQVE.cjs.map → judge-call-EGYRC2RE.cjs.map} +1 -1
  430. package/dist/mcp-auth.cjs +41 -25
  431. package/dist/mcp-auth.cjs.map +1 -1
  432. package/dist/mcp-auth.js +34 -18
  433. package/dist/mcp-auth.js.map +1 -1
  434. package/dist/models.cjs +43 -28
  435. package/dist/models.cjs.map +1 -1
  436. package/dist/models.js +26 -11
  437. package/dist/models.js.map +1 -1
  438. package/dist/oauth-transaction-store-BT4GLTLK.cjs +36 -0
  439. package/dist/{oauth-transaction-store-7CKHPQRN.cjs.map → oauth-transaction-store-BT4GLTLK.cjs.map} +1 -1
  440. package/dist/oauth-transaction-store-W52KVHQ4.js +3 -0
  441. package/dist/{oauth-transaction-store-W74I6EFD.js.map → oauth-transaction-store-W52KVHQ4.js.map} +1 -1
  442. package/dist/path-safety.cjs +11 -10
  443. package/dist/path-safety.js +4 -3
  444. package/dist/permission-engine.d.ts +55 -0
  445. package/dist/persistence.cjs +43 -42
  446. package/dist/persistence.cjs.map +1 -1
  447. package/dist/persistence.js +13 -12
  448. package/dist/persistence.js.map +1 -1
  449. package/dist/project.cjs +9 -8
  450. package/dist/project.cjs.map +1 -1
  451. package/dist/project.js +5 -4
  452. package/dist/project.js.map +1 -1
  453. package/dist/providers.cjs +23 -0
  454. package/dist/providers.cjs.map +1 -0
  455. package/dist/providers.d.cts +29 -0
  456. package/dist/providers.d.ts +29 -0
  457. package/dist/providers.js +10 -0
  458. package/dist/providers.js.map +1 -0
  459. package/dist/registry-VFKX7WOP.cjs +47 -0
  460. package/dist/{registry-UBY26R4I.cjs.map → registry-VFKX7WOP.cjs.map} +1 -1
  461. package/dist/registry-VFP3WWQP.js +10 -0
  462. package/dist/{registry-GC7BQMSV.js.map → registry-VFP3WWQP.js.map} +1 -1
  463. package/dist/retry.cjs +5 -4
  464. package/dist/retry.js +4 -3
  465. package/dist/{run-C8FBAC8o.d.ts → run-BYSHf58D.d.cts} +185 -33
  466. package/dist/{run-C8FBAC8o.d.cts → run-BYSHf58D.d.ts} +185 -33
  467. package/dist/{run-to-completion-JDPIUKSH.js → run-to-completion-DRO77625.js} +3 -3
  468. package/dist/{run-to-completion-JDPIUKSH.js.map → run-to-completion-DRO77625.js.map} +1 -1
  469. package/dist/{run-to-completion-J73I6IY4.cjs → run-to-completion-X4OWM673.cjs} +13 -13
  470. package/dist/{run-to-completion-J73I6IY4.cjs.map → run-to-completion-X4OWM673.cjs.map} +1 -1
  471. package/dist/sandbox/bwrap.d.cts +27 -14
  472. package/dist/sandbox/bwrap.d.ts +27 -14
  473. package/dist/sandbox/index.cjs +21 -20
  474. package/dist/sandbox/index.cjs.map +1 -1
  475. package/dist/sandbox/index.js +6 -5
  476. package/dist/sandbox/index.js.map +1 -1
  477. package/dist/sandbox/linux-sandbox.d.cts +72 -0
  478. package/dist/sandbox/linux-sandbox.d.ts +72 -0
  479. package/dist/sandbox/local-sandbox.d.cts +41 -0
  480. package/dist/sandbox/local-sandbox.d.ts +41 -0
  481. package/dist/sandbox/seccomp.d.cts +6 -0
  482. package/dist/sandbox/seccomp.d.ts +6 -0
  483. package/dist/sandbox/types.d.cts +64 -0
  484. package/dist/sandbox/types.d.ts +64 -0
  485. package/dist/scorers.d.ts +38 -7
  486. package/dist/sdk-agent-D8qJVkuV.d.ts +860 -0
  487. package/dist/sdk-agent-DEoKhA8a.d.cts +860 -0
  488. package/dist/server/auth/errors.d.cts +1 -1
  489. package/dist/server/auth/errors.d.ts +1 -1
  490. package/dist/server/auth/index.cjs +29 -21
  491. package/dist/server/auth/index.cjs.map +1 -1
  492. package/dist/server/auth/index.d.cts +25 -15
  493. package/dist/server/auth/index.d.ts +25 -15
  494. package/dist/server/auth/index.js +15 -7
  495. package/dist/server/auth/index.js.map +1 -1
  496. package/dist/server/auth/oauth-transaction-store.d.cts +13 -1
  497. package/dist/server/auth/oauth-transaction-store.d.ts +13 -1
  498. package/dist/server/auth/orchestrator.d.cts +1 -1
  499. package/dist/server/auth/orchestrator.d.ts +1 -1
  500. package/dist/server/auth/types.d.cts +1 -1
  501. package/dist/server/auth/types.d.ts +1 -1
  502. package/dist/server/auth/validate-return-to.d.cts +21 -11
  503. package/dist/server/auth/validate-return-to.d.ts +21 -11
  504. package/dist/server/errors-envelope.cjs +15 -14
  505. package/dist/server/errors-envelope.cjs.map +1 -1
  506. package/dist/server/errors-envelope.d.cts +4 -4
  507. package/dist/server/errors-envelope.d.ts +4 -4
  508. package/dist/server/errors-envelope.js +4 -3
  509. package/dist/server/errors-envelope.js.map +1 -1
  510. package/dist/session-transcript-AKDYYGXQ.js +6 -0
  511. package/dist/{session-transcript-SKIRBEJE.js.map → session-transcript-AKDYYGXQ.js.map} +1 -1
  512. package/dist/session-transcript-JXHFTB7G.cjs +51 -0
  513. package/dist/{session-transcript-TNAJ4O3M.cjs.map → session-transcript-JXHFTB7G.cjs.map} +1 -1
  514. package/dist/skills.cjs +8 -7
  515. package/dist/skills.js +6 -5
  516. package/dist/stream-object-BUCF5PHO.cjs +21 -0
  517. package/dist/{stream-object-T4DAMNVB.cjs.map → stream-object-BUCF5PHO.cjs.map} +1 -1
  518. package/dist/stream-object-L57K4OFS.js +8 -0
  519. package/dist/{stream-object-QMNR3YFF.js.map → stream-object-L57K4OFS.js.map} +1 -1
  520. package/dist/{stream-to-completion-DFJ5T3BK.js → stream-to-completion-QV5HCL3J.js} +3 -3
  521. package/dist/{stream-to-completion-DFJ5T3BK.js.map → stream-to-completion-QV5HCL3J.js.map} +1 -1
  522. package/dist/{stream-to-completion-H2MHISSK.cjs → stream-to-completion-SRISU5AB.cjs} +10 -10
  523. package/dist/{stream-to-completion-H2MHISSK.cjs.map → stream-to-completion-SRISU5AB.cjs.map} +1 -1
  524. package/dist/subagents-loader-AZIXJ7D3.cjs +16 -0
  525. package/dist/{subagents-loader-3CXBQWWY.cjs.map → subagents-loader-AZIXJ7D3.cjs.map} +1 -1
  526. package/dist/subagents-loader-J54ESLDV.js +7 -0
  527. package/dist/{subagents-loader-WN2SB6PV.js.map → subagents-loader-J54ESLDV.js.map} +1 -1
  528. package/dist/subagents-loader.cjs +7 -6
  529. package/dist/subagents-loader.cjs.map +1 -1
  530. package/dist/subagents-loader.d.cts +3 -2
  531. package/dist/subagents-loader.d.ts +3 -2
  532. package/dist/subagents-loader.js +5 -4
  533. package/dist/subagents-loader.js.map +1 -1
  534. package/dist/subscription/define-subscription.d.cts +1 -1
  535. package/dist/subscription/define-subscription.d.ts +1 -1
  536. package/dist/subscription/index.cjs +22 -9
  537. package/dist/subscription/index.cjs.map +1 -1
  538. package/dist/subscription/index.d.cts +1 -1
  539. package/dist/subscription/index.d.ts +1 -1
  540. package/dist/subscription/index.js +21 -8
  541. package/dist/subscription/index.js.map +1 -1
  542. package/dist/subscription/internal/adapter-types.d.cts +1 -1
  543. package/dist/subscription/internal/adapter-types.d.ts +1 -1
  544. package/dist/subscription/internal/server-integration.d.cts +1 -1
  545. package/dist/subscription/internal/server-integration.d.ts +1 -1
  546. package/dist/subscription/internal/sse-encoder.d.cts +1 -1
  547. package/dist/subscription/internal/sse-encoder.d.ts +1 -1
  548. package/dist/subscription/internal/sse-parser.d.cts +1 -1
  549. package/dist/subscription/internal/sse-parser.d.ts +1 -1
  550. package/dist/subscription/internal/subscription-runtime.d.cts +1 -1
  551. package/dist/subscription/internal/subscription-runtime.d.ts +1 -1
  552. package/dist/subscription/internal/ws-adapter-node.d.cts +1 -1
  553. package/dist/subscription/internal/ws-adapter-node.d.ts +1 -1
  554. package/dist/subscription/theokit-subscribe.d.cts +14 -1
  555. package/dist/subscription/theokit-subscribe.d.ts +14 -1
  556. package/dist/subscription/types.d.cts +19 -1
  557. package/dist/subscription/types.d.ts +19 -1
  558. package/dist/task-store.cjs +8 -7
  559. package/dist/task-store.js +5 -4
  560. package/dist/types/agent-prims.d.ts +14 -0
  561. package/dist/types/agent.d.ts +69 -17
  562. package/dist/types/batch.d.ts +7 -1
  563. package/dist/types/conversation.d.ts +18 -5
  564. package/dist/types/goal-events.d.ts +4 -8
  565. package/dist/types/memory-adapter.d.ts +12 -1
  566. package/dist/types/plugin.d.ts +101 -0
  567. package/dist/types/provider-profile.d.ts +21 -2
  568. package/dist/types/run-events.d.ts +28 -1
  569. package/dist/types/run.d.ts +35 -23
  570. package/dist/types/sdk-agent.d.ts +14 -0
  571. package/dist/types/session-record.d.ts +18 -1
  572. package/dist/types/task.d.ts +15 -1
  573. package/dist/types/theokit.d.ts +10 -1
  574. package/dist/types/updates.d.ts +35 -4
  575. package/dist/types/workflow.d.ts +155 -0
  576. package/dist/workflow.cjs +29 -28
  577. package/dist/workflow.d.cts +666 -17
  578. package/dist/workflow.d.ts +666 -17
  579. package/dist/workflow.js +8 -7
  580. package/docs/error-codes.md +208 -172
  581. package/docs/harness-capability-map.md +1357 -304
  582. package/package.json +21 -8
  583. package/bin/init-claude.mjs +0 -68
  584. package/claude-template/AGENTS.md +0 -157
  585. package/claude-template/CLAUDE.md +0 -66
  586. package/claude-template/dot-claude/rules/theokit-conventions.md +0 -32
  587. package/claude-template/dot-claude/settings.json +0 -16
  588. package/claude-template/dot-claude/skills/theokit-agent-core/SKILL.md +0 -209
  589. package/claude-template/dot-claude/skills/theokit-auth/SKILL.md +0 -102
  590. package/claude-template/dot-claude/skills/theokit-budget/SKILL.md +0 -176
  591. package/claude-template/dot-claude/skills/theokit-client/SKILL.md +0 -58
  592. package/claude-template/dot-claude/skills/theokit-compaction/SKILL.md +0 -102
  593. package/claude-template/dot-claude/skills/theokit-concurrency/SKILL.md +0 -68
  594. package/claude-template/dot-claude/skills/theokit-config/SKILL.md +0 -139
  595. package/claude-template/dot-claude/skills/theokit-cron/SKILL.md +0 -148
  596. package/claude-template/dot-claude/skills/theokit-di/SKILL.md +0 -233
  597. package/claude-template/dot-claude/skills/theokit-di-agent/SKILL.md +0 -294
  598. package/claude-template/dot-claude/skills/theokit-errors/SKILL.md +0 -172
  599. package/claude-template/dot-claude/skills/theokit-eval/SKILL.md +0 -179
  600. package/claude-template/dot-claude/skills/theokit-filesystem/SKILL.md +0 -74
  601. package/claude-template/dot-claude/skills/theokit-gateways/SKILL.md +0 -209
  602. package/claude-template/dot-claude/skills/theokit-memory/SKILL.md +0 -176
  603. package/claude-template/dot-claude/skills/theokit-messages/SKILL.md +0 -58
  604. package/claude-template/dot-claude/skills/theokit-models/SKILL.md +0 -79
  605. package/claude-template/dot-claude/skills/theokit-path-safety/SKILL.md +0 -60
  606. package/claude-template/dot-claude/skills/theokit-persistence/SKILL.md +0 -85
  607. package/claude-template/dot-claude/skills/theokit-project/SKILL.md +0 -55
  608. package/claude-template/dot-claude/skills/theokit-retry/SKILL.md +0 -50
  609. package/claude-template/dot-claude/skills/theokit-sandbox/SKILL.md +0 -93
  610. package/claude-template/dot-claude/skills/theokit-sanitize/SKILL.md +0 -66
  611. package/claude-template/dot-claude/skills/theokit-skills/SKILL.md +0 -68
  612. package/claude-template/dot-claude/skills/theokit-streaming/SKILL.md +0 -156
  613. package/claude-template/dot-claude/skills/theokit-subagents/SKILL.md +0 -109
  614. package/claude-template/dot-claude/skills/theokit-subscriptions/SKILL.md +0 -148
  615. package/claude-template/dot-claude/skills/theokit-task-store/SKILL.md +0 -75
  616. package/claude-template/dot-claude/skills/theokit-tools/SKILL.md +0 -170
  617. package/claude-template/dot-claude/skills/theokit-workflows/SKILL.md +0 -218
  618. package/dist/agent-JX5SBYDE.cjs +0 -59
  619. package/dist/agent-ZAGG6ZBS.js +0 -50
  620. package/dist/agent-session-store-EPX2WQI4.cjs +0 -23
  621. package/dist/agent-session-store-JMU7ASDB.js +0 -6
  622. package/dist/batch-NLIS4QTW.js.map +0 -1
  623. package/dist/batch-WQ3AJCDV.cjs.map +0 -1
  624. package/dist/chunk-23VZBRDQ.js.map +0 -1
  625. package/dist/chunk-2CFEET3Y.cjs.map +0 -1
  626. package/dist/chunk-2QMK627M.cjs.map +0 -1
  627. package/dist/chunk-2RW7K6FN.cjs.map +0 -1
  628. package/dist/chunk-2VFZQEDW.cjs.map +0 -1
  629. package/dist/chunk-2XLKLVVR.js.map +0 -1
  630. package/dist/chunk-2Y5NO2SY.js.map +0 -1
  631. package/dist/chunk-2YGIBOUH.cjs.map +0 -1
  632. package/dist/chunk-2YWWPCGX.js.map +0 -1
  633. package/dist/chunk-33L2NVTJ.cjs.map +0 -1
  634. package/dist/chunk-34XOCZJO.js.map +0 -1
  635. package/dist/chunk-3SHW7XKK.js.map +0 -1
  636. package/dist/chunk-4NAKHID5.js.map +0 -1
  637. package/dist/chunk-4X3SBHPK.js.map +0 -1
  638. package/dist/chunk-5NBUH3NO.js.map +0 -1
  639. package/dist/chunk-634YVZLU.js.map +0 -1
  640. package/dist/chunk-6DCTL32L.cjs.map +0 -1
  641. package/dist/chunk-6PTCKXD3.js.map +0 -1
  642. package/dist/chunk-7HQVDLFI.cjs.map +0 -1
  643. package/dist/chunk-7TB5U7RK.js.map +0 -1
  644. package/dist/chunk-7W7ZWMLQ.js.map +0 -1
  645. package/dist/chunk-ADVZIC43.cjs.map +0 -1
  646. package/dist/chunk-AM2CNBKE.js.map +0 -1
  647. package/dist/chunk-AMYY3JHQ.cjs.map +0 -1
  648. package/dist/chunk-B4YA6BRS.cjs.map +0 -1
  649. package/dist/chunk-BBZYXVLZ.cjs.map +0 -1
  650. package/dist/chunk-BC5EUG7R.cjs.map +0 -1
  651. package/dist/chunk-CAH3G4IS.js.map +0 -1
  652. package/dist/chunk-CHVSMEKM.js.map +0 -1
  653. package/dist/chunk-CZHPR2G7.cjs.map +0 -1
  654. package/dist/chunk-DEZ75ET5.js.map +0 -1
  655. package/dist/chunk-DM6Y5B2G.cjs.map +0 -1
  656. package/dist/chunk-EFXJ5C7X.js.map +0 -1
  657. package/dist/chunk-EQMLJ52C.cjs.map +0 -1
  658. package/dist/chunk-FBZMSLDC.cjs.map +0 -1
  659. package/dist/chunk-HI4ZW62S.js.map +0 -1
  660. package/dist/chunk-HTK54K2J.js.map +0 -1
  661. package/dist/chunk-I5OTK2RP.js.map +0 -1
  662. package/dist/chunk-JJZ4NIAG.js.map +0 -1
  663. package/dist/chunk-KIX45IKP.js.map +0 -1
  664. package/dist/chunk-KZBB4YKU.js.map +0 -1
  665. package/dist/chunk-L5YO6PWL.cjs.map +0 -1
  666. package/dist/chunk-L7EGRCKJ.js.map +0 -1
  667. package/dist/chunk-NOS7PTKP.js.map +0 -1
  668. package/dist/chunk-NUEL6RCZ.cjs.map +0 -1
  669. package/dist/chunk-NZOR3N4E.js.map +0 -1
  670. package/dist/chunk-OKLYRPKL.cjs.map +0 -1
  671. package/dist/chunk-OXNYIMZZ.js.map +0 -1
  672. package/dist/chunk-PNVDQL5Y.cjs.map +0 -1
  673. package/dist/chunk-QLAWEGTZ.cjs.map +0 -1
  674. package/dist/chunk-QN5N3ZVT.cjs.map +0 -1
  675. package/dist/chunk-R3CKCRK3.cjs.map +0 -1
  676. package/dist/chunk-R7TKOQMJ.js.map +0 -1
  677. package/dist/chunk-RP5HQVLD.js.map +0 -1
  678. package/dist/chunk-SXSPMRSV.cjs.map +0 -1
  679. package/dist/chunk-T5ZWI3MC.cjs.map +0 -1
  680. package/dist/chunk-T6QUCG7L.cjs.map +0 -1
  681. package/dist/chunk-TR4V2LHV.cjs.map +0 -1
  682. package/dist/chunk-VYCKUKPA.cjs.map +0 -1
  683. package/dist/chunk-VYHJZVL5.cjs.map +0 -1
  684. package/dist/chunk-W4FV7JBH.js.map +0 -1
  685. package/dist/chunk-X2FR4OIT.js.map +0 -1
  686. package/dist/chunk-XRI6DXPZ.js.map +0 -1
  687. package/dist/chunk-XWCTBGYK.js.map +0 -1
  688. package/dist/chunk-YLQQX5W2.cjs.map +0 -1
  689. package/dist/chunk-YTO5BRBD.cjs.map +0 -1
  690. package/dist/chunk-Z5U2JGEK.cjs.map +0 -1
  691. package/dist/compact-session-6GKIS4SD.cjs +0 -58
  692. package/dist/compact-session-EJ36VH5I.js +0 -21
  693. package/dist/context-4HGPCOH6.cjs +0 -22
  694. package/dist/context-DCECDKWN.js +0 -5
  695. package/dist/cron-DgHJnMAK.d.cts +0 -631
  696. package/dist/cron-DyWQsEG6.d.ts +0 -631
  697. package/dist/executor-3CGPLVJL.js.map +0 -1
  698. package/dist/executor-4SW7QGZ4.cjs.map +0 -1
  699. package/dist/fs-session-store-LIKYT24K.js +0 -10
  700. package/dist/fs-session-store-VXXDIBGM.cjs +0 -19
  701. package/dist/generate-object-E465DX5I.cjs +0 -20
  702. package/dist/generate-object-TVQCW2IZ.js +0 -7
  703. package/dist/index-manager-EA6FGIQG.js +0 -12
  704. package/dist/index-manager-HGGL4DD5.cjs +0 -21
  705. package/dist/inject-session-67SF65FC.cjs +0 -28
  706. package/dist/inject-session-67SF65FC.cjs.map +0 -1
  707. package/dist/inject-session-HO7FYVCX.js.map +0 -1
  708. package/dist/judge-call-GVIJWQVE.cjs +0 -22
  709. package/dist/judge-call-QMKGC2ZK.js +0 -5
  710. package/dist/oauth-transaction-store-7CKHPQRN.cjs +0 -32
  711. package/dist/oauth-transaction-store-W74I6EFD.js +0 -3
  712. package/dist/registry-GC7BQMSV.js +0 -9
  713. package/dist/registry-UBY26R4I.cjs +0 -46
  714. package/dist/session-transcript-SKIRBEJE.js +0 -5
  715. package/dist/session-transcript-TNAJ4O3M.cjs +0 -50
  716. package/dist/stream-object-QMNR3YFF.js +0 -7
  717. package/dist/stream-object-T4DAMNVB.cjs +0 -20
  718. package/dist/subagents-loader-3CXBQWWY.cjs +0 -15
  719. package/dist/subagents-loader-WN2SB6PV.js +0 -6
@@ -1 +1,16 @@
1
+ /**
2
+ * Post-run side effects executed inside the per-agent send mutex (ADR D19):
3
+ *
4
+ * 1. Persist the assistant turn to the per-agent JSONL (ADR D18).
5
+ * 2. On status=finished, write a session-summary markdown for the
6
+ * `corpus="sessions"` memory_search index (ADR D20).
7
+ * 3. Fire the `postRun` hook with the resolved status.
8
+ * 4. Flush pending session writes so dispose() never races the writer.
9
+ *
10
+ * Errors are swallowed at the call site so `agent.send()` callers observe
11
+ * failures through their own `run.wait()` / `stream()` surfaces. Mutex release
12
+ * is guaranteed via the final `flushSessionWrites` even on the cancelled path.
13
+ *
14
+ * Extracted from LocalAgent to keep that class under the G8 LoC budget.
15
+ */
1
16
  export declare function runPostRunLifecycle(inputs: PostRunLifecycleInputs): Promise<void>;
@@ -1,3 +1,15 @@
1
+ /**
2
+ * Persistent agent registry (ADR D17).
3
+ *
4
+ * Per-cwd JSON file at `.theokit/agents/registry.json`. Atomic writes via
5
+ * `replaceFileAtomic`. Secrets in `options` are stripped before persisting
6
+ * (D17 + reuses the cloud-config-serializer allow-list philosophy).
7
+ *
8
+ * Multi-process write race is the documented limitation: one SDK process per
9
+ * cwd (EC-10).
10
+ *
11
+ * @internal
12
+ */
1
13
  import type { ModelSelection } from "../../../types/agent-prims.js";
2
14
  export interface SerializedAgentOptions {
3
15
  name?: string;
@@ -19,6 +19,20 @@
19
19
  */
20
20
  import type { SDKAgent } from "../../../types/agent.js";
21
21
  export type EvictReason = "lru" | "idle" | "explicit";
22
+ /**
23
+ * Knobs for {@link LiveAgentRegistry.configure}.
24
+ *
25
+ * The three numeric fields are a partial reconfigure — one left out keeps its current value.
26
+ * `onEvict` is NOT: it is assigned on every call, so `configure({ maxAgents: 200 })` clears a
27
+ * listener registered earlier. Re-pass the listener whenever you reconfigure.
28
+ *
29
+ * Two values are load-bearing zeroes. `maxAgents: 0` disables caching entirely, so every lookup
30
+ * misses and every agent is rebuilt; `idleTimeoutMs: 0` keeps the cache but leaves LRU as the only
31
+ * eviction, because the sweep is not started at all below that threshold. Negative numbers are
32
+ * clamped rather than rejected — up to 1000ms for `sweepIntervalMs`, up to 0 for the other two.
33
+ *
34
+ * @public
35
+ */
22
36
  export interface AgentRegistryOptions {
23
37
  /**
24
38
  * Maximum number of agents kept alive simultaneously. LRU eviction when
@@ -45,6 +59,29 @@ export interface AgentRegistryOptions {
45
59
  */
46
60
  onEvict?: (id: string, reason: EvictReason) => void;
47
61
  }
62
+ /**
63
+ * An LRU-plus-idle cache of live `SDKAgent` instances, reached through `Agent.registry`.
64
+ *
65
+ * It exists for long-running servers that would otherwise build a fresh agent per conversation and
66
+ * never release one. Do not confuse it with the metadata registry in `agent-registry.ts`, which
67
+ * persists `RegisteredAgent` records to disk: that one is the address book, this one is the live
68
+ * cache, and they share nothing.
69
+ *
70
+ * The lifecycle rule that matters to callers: eviction — by LRU, by idle timeout, or by an explicit
71
+ * `evict` — calls `dispose()` on the agent. A reference you held onto before eviction is a disposed
72
+ * agent, not a detached one. `get` counts as a use and refreshes the entry's timestamp, so polling
73
+ * for an agent keeps it alive indefinitely.
74
+ *
75
+ * Idle eviction depends on a background sweep that only `configure` starts. A registry nobody
76
+ * configured caches with the documented defaults but evicts by LRU alone, so entries can sit past
77
+ * `idleTimeoutMs` indefinitely; call `configure` — even with no changes — to arm the sweep.
78
+ *
79
+ * Failures on the eviction path are swallowed and reported to the diagnostics channel — a throwing
80
+ * `dispose()` or a throwing `onEvict` listener must not stop the sweep. Configuration is
81
+ * process-wide and last-call-wins.
82
+ *
83
+ * @public
84
+ */
48
85
  export declare class LiveAgentRegistry {
49
86
  #private;
50
87
  /**
@@ -6,8 +6,13 @@
6
6
  * structured judge prompt, parses score from the response. Returns 0 (with
7
7
  * diagnostic reason) on any parse failure.
8
8
  *
9
- * @internal
9
+ * NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
10
+ * and TypeScript scans EVERY leading comment range of the declaration that follows, including the
11
+ * import right below this one. The tag that used to sit here deleted that import from the emitted
12
+ * `.d.ts`, leaving the types it binds unresolvable for any consumer running type-aware lint
13
+ * (usetheodev/theokit-sdk#283 records the same trap on a declaration).
10
14
  */
15
+ import type { ModelSelection } from "../../types/agent.js";
11
16
  import type { Score } from "../../types/eval.js";
12
17
  import type { ProviderRoutingSettings } from "../../types/providers.js";
13
18
  export interface LlmJudgeOptions {
@@ -1,52 +1,53 @@
1
1
  'use strict';
2
2
 
3
3
  require('../../chunk-MUUQ2WFJ.cjs');
4
- var chunkYTO5BRBD_cjs = require('../../chunk-YTO5BRBD.cjs');
4
+ var chunkR3UPQFKK_cjs = require('../../chunk-R3UPQFKK.cjs');
5
5
  require('../../chunk-VKJ7V7EB.cjs');
6
- require('../../chunk-2YGIBOUH.cjs');
7
- var chunkSXSPMRSV_cjs = require('../../chunk-SXSPMRSV.cjs');
6
+ require('../../chunk-K3FW2XZD.cjs');
7
+ var chunkJTB5Q42C_cjs = require('../../chunk-JTB5Q42C.cjs');
8
+ require('../../chunk-NUKRL3I6.cjs');
8
9
 
9
10
 
10
11
 
11
12
  Object.defineProperty(exports, "ForbiddenPathError", {
12
13
  enumerable: true,
13
- get: function () { return chunkYTO5BRBD_cjs.ForbiddenPathError; }
14
+ get: function () { return chunkR3UPQFKK_cjs.ForbiddenPathError; }
14
15
  });
15
16
  Object.defineProperty(exports, "PathTraversalError", {
16
17
  enumerable: true,
17
- get: function () { return chunkYTO5BRBD_cjs.PathTraversalError; }
18
+ get: function () { return chunkR3UPQFKK_cjs.PathTraversalError; }
18
19
  });
19
20
  Object.defineProperty(exports, "assertNoSymlinkEscape", {
20
21
  enumerable: true,
21
- get: function () { return chunkYTO5BRBD_cjs.assertNoSymlinkEscape; }
22
+ get: function () { return chunkR3UPQFKK_cjs.assertNoSymlinkEscape; }
22
23
  });
23
24
  Object.defineProperty(exports, "isForbiddenPath", {
24
25
  enumerable: true,
25
- get: function () { return chunkYTO5BRBD_cjs.isForbiddenPath; }
26
+ get: function () { return chunkR3UPQFKK_cjs.isForbiddenPath; }
26
27
  });
27
28
  Object.defineProperty(exports, "safePathJoin", {
28
29
  enumerable: true,
29
- get: function () { return chunkYTO5BRBD_cjs.safePathJoin; }
30
+ get: function () { return chunkR3UPQFKK_cjs.safePathJoin; }
30
31
  });
31
32
  Object.defineProperty(exports, "sanitizeIdentifier", {
32
33
  enumerable: true,
33
- get: function () { return chunkYTO5BRBD_cjs.sanitizeIdentifier; }
34
+ get: function () { return chunkR3UPQFKK_cjs.sanitizeIdentifier; }
34
35
  });
35
36
  Object.defineProperty(exports, "validateArtifactPath", {
36
37
  enumerable: true,
37
- get: function () { return chunkYTO5BRBD_cjs.validateArtifactPath; }
38
+ get: function () { return chunkR3UPQFKK_cjs.validateArtifactPath; }
38
39
  });
39
40
  Object.defineProperty(exports, "addPattern", {
40
41
  enumerable: true,
41
- get: function () { return chunkSXSPMRSV_cjs.addPattern; }
42
+ get: function () { return chunkJTB5Q42C_cjs.addPattern; }
42
43
  });
43
44
  Object.defineProperty(exports, "maskToken", {
44
45
  enumerable: true,
45
- get: function () { return chunkSXSPMRSV_cjs.maskToken; }
46
+ get: function () { return chunkJTB5Q42C_cjs.maskToken; }
46
47
  });
47
48
  Object.defineProperty(exports, "redactSecrets", {
48
49
  enumerable: true,
49
- get: function () { return chunkSXSPMRSV_cjs.redactSecrets; }
50
+ get: function () { return chunkJTB5Q42C_cjs.redactSecrets; }
50
51
  });
51
52
  //# sourceMappingURL=index.cjs.map
52
53
  //# sourceMappingURL=index.cjs.map
@@ -6,6 +6,9 @@
6
6
  * `internal/runtime/agent-session-store.ts`,
7
7
  * `internal/memory/migrate-sqlite-to-lance.ts`.
8
8
  *
9
- * @internal
9
+ * Semver-exempt: the `@theokit/sdk/internal/security` sub-path exists for packages extracted out of
10
+ * this one and is NOT covered by the package's semver contract. It IS declared in `package.json`
11
+ * `exports`, so every name below must survive into the published declarations.
10
12
  */
13
+ export { assertNoSymlinkEscape, ForbiddenPathError, isForbiddenPath, PathTraversalError, safePathJoin, sanitizeIdentifier, validateArtifactPath, } from "./path-guard.js";
11
14
  export { addPattern, maskToken, redactSecrets } from "./redact.js";
@@ -6,6 +6,9 @@
6
6
  * `internal/runtime/agent-session-store.ts`,
7
7
  * `internal/memory/migrate-sqlite-to-lance.ts`.
8
8
  *
9
- * @internal
9
+ * Semver-exempt: the `@theokit/sdk/internal/security` sub-path exists for packages extracted out of
10
+ * this one and is NOT covered by the package's semver contract. It IS declared in `package.json`
11
+ * `exports`, so every name below must survive into the published declarations.
10
12
  */
13
+ export { assertNoSymlinkEscape, ForbiddenPathError, isForbiddenPath, PathTraversalError, safePathJoin, sanitizeIdentifier, validateArtifactPath, } from "./path-guard.js";
11
14
  export { addPattern, maskToken, redactSecrets } from "./redact.js";
@@ -1,7 +1,8 @@
1
1
  import '../../chunk-FD2UT76F.js';
2
- export { ForbiddenPathError, PathTraversalError, assertNoSymlinkEscape, isForbiddenPath, safePathJoin, sanitizeIdentifier, validateArtifactPath } from '../../chunk-XWCTBGYK.js';
2
+ export { ForbiddenPathError, PathTraversalError, assertNoSymlinkEscape, isForbiddenPath, safePathJoin, sanitizeIdentifier, validateArtifactPath } from '../../chunk-QARJGQSA.js';
3
3
  import '../../chunk-RIAM53CP.js';
4
- import '../../chunk-HI4ZW62S.js';
5
- export { addPattern, maskToken, redactSecrets } from '../../chunk-4X3SBHPK.js';
4
+ import '../../chunk-IDCKSLYH.js';
5
+ export { addPattern, maskToken, redactSecrets } from '../../chunk-T7XEKOVW.js';
6
+ import '../../chunk-T7O6K6PX.js';
6
7
  //# sourceMappingURL=index.js.map
7
8
  //# sourceMappingURL=index.js.map
@@ -18,6 +18,15 @@
18
18
  * @internal
19
19
  */
20
20
  import { ConfigurationError } from "../../errors.js";
21
+ /**
22
+ * Thrown when a path operation would escape its allowed base directory.
23
+ * Extends `ConfigurationError` (no new error hierarchy per ADR D65).
24
+ *
25
+ */
26
+ export declare class PathTraversalError extends ConfigurationError {
27
+ readonly name: string;
28
+ constructor(input: string, resolvedPath: string);
29
+ }
21
30
  /**
22
31
  * Thrown when an agent tool is asked to read or write a sensitive path
23
32
  * that the blocklist forbids (`.env`, `.git/`, `node_modules/`, `.theo/`,
@@ -32,6 +41,33 @@ export declare class ForbiddenPathError extends ConfigurationError {
32
41
  readonly name: string;
33
42
  constructor(path: string);
34
43
  }
44
+ /**
45
+ * Join `base` with `...parts` and ensure the resolved absolute path stays
46
+ * under `base`. Resolves FIRST, then prefix-checks (ADR D80) — prevents
47
+ * normalized-escape bypasses like `subdir/.\\./bar`.
48
+ *
49
+ * Returns the safe absolute path. Throws `PathTraversalError` if escape.
50
+ *
51
+ */
52
+ export declare function safePathJoin(base: string, ...parts: string[]): string;
53
+ /**
54
+ * Assert that `path` — including every directory component in the chain —
55
+ * stays under `base` after symlink resolution. No-op when nothing on the
56
+ * path exists yet.
57
+ *
58
+ * Two-bug history:
59
+ * 1. **EC-1** (original fix, kept): a multi-level symlink chain A → B → C
60
+ * must be resolved end-to-end. `realpathSync` does this in 1 syscall.
61
+ * 2. **Defence-in-depth** (added v1.x): the previous implementation only
62
+ * called `lstatSync(path)` on the terminal component. If an INTERMEDIATE
63
+ * directory was a symlink (`base/inner-symlink → /outside`), `lstat` on
64
+ * `base/inner-symlink/file.txt` followed the symlink and reported the
65
+ * regular file — escape went undetected. Fix: walk up to the nearest
66
+ * existing ancestor and `realpath` THAT, then re-attach the suffix and
67
+ * check the result against the canonical base.
68
+ *
69
+ */
70
+ export declare function assertNoSymlinkEscape(path: string, base: string): void;
35
71
  /**
36
72
  * Decide whether a project-relative path points to a known-sensitive file
37
73
  * that a coding agent must not read or write.
@@ -54,6 +90,77 @@ export declare class ForbiddenPathError extends ConfigurationError {
54
90
  * @public
55
91
  */
56
92
  export declare function isForbiddenPath(input: string): boolean;
93
+ /**
94
+ * T1.4 — validate a relative artifact path string BEFORE it is used to look
95
+ * up a fixture or to fetch from PaaS. Rejects every well-known traversal
96
+ * vector at the boundary, throwing `PathTraversalError`.
97
+ *
98
+ * Vectors rejected:
99
+ * - classic `..` parent-directory traversal (any segment).
100
+ * - backslash separators (Windows-style `..\\windows`).
101
+ * - URL-encoded `%2e%2e` / `%2E%2E` (double-decoded traversal).
102
+ * - NUL byte injection (`\x00`).
103
+ * - Windows drive letter prefix (`C:`, `D:\\...`).
104
+ * - Home-tilde expansion (`~/`, `~root/...`).
105
+ * - Absolute paths starting with `/`.
106
+ *
107
+ * Does NOT touch the filesystem — the call is shape-only. Live symlink
108
+ * traversal protection happens via `assertNoSymlinkEscape` at the FS-resolve
109
+ * boundary.
110
+ *
111
+ * @param input - Caller-supplied artifact path.
112
+ * @throws `PathTraversalError` on any rejection.
113
+ *
114
+ * Semver-exempt: reachable via the `@theokit/sdk/internal/security` sub-path, which the package
115
+ * declares in `exports` but does NOT cover with its semver contract.
116
+ */
117
+ export declare function validateArtifactPath(input: string): void;
118
+ /**
119
+ * Validate that `input` is a safe path component (skill name, agent ID,
120
+ * namespace, etc.) and return its lowercase form. Strict grammar
121
+ * `^[a-z0-9][a-z0-9-_]*$` rejects path separators, dots, null bytes,
122
+ * whitespace, unicode invisible chars, and any leading `-`/`_`.
123
+ *
124
+ * ONE error class leaves this function: `ConfigurationError` with code
125
+ * `invalid_identifier`, for every rejection — length out of range, a path
126
+ * separator, `..`, a space, a leading `-`, and a NUL / C0 control char / DEL
127
+ * alike. A caller can branch on that code and know it has covered the whole
128
+ * rejection surface.
129
+ *
130
+ * Before #368 the control-char branch threw `PathTraversalError` instead, which
131
+ * made the error CLASS a function of the attacker's bytes; the message still names
132
+ * the offending byte, which is the part that was worth keeping.
133
+ *
134
+ * @param input - User-supplied identifier candidate.
135
+ * @param options.maxLen - Maximum allowed length (default 64).
136
+ * @returns Lowercase form of `input`.
137
+ * @throws `ConfigurationError` with code `invalid_identifier` on every rejection.
138
+ */
57
139
  export declare function sanitizeIdentifier(input: string, options?: {
58
140
  maxLen?: number;
59
141
  }): string;
142
+ /**
143
+ * Convert ANY opaque id (agent id, run id, conversation id, namespace, email,
144
+ * arbitrary string) into a deterministic, filesystem-safe filename component.
145
+ *
146
+ * Unlike {@link sanitizeIdentifier} (which THROWS on non-conforming input),
147
+ * this is a total function: it NEVER throws on a non-empty string. It returns
148
+ * the lowercased id verbatim when it already matches the safe grammar
149
+ * `^[a-z0-9][a-z0-9-_]*$` and fits `maxLen` (so UUIDs, hashes, and slugs stay
150
+ * human-readable), otherwise a deterministic `h-<16 hex>` sha256 token
151
+ * (collision-resistant and always a valid filename). The output charset is
152
+ * always `[a-z0-9_-]`, safe as a literal path segment on every filesystem.
153
+ *
154
+ * @param id - any opaque identifier (must be a non-empty string)
155
+ * @param options.maxLen - max length for the passthrough branch (default 128).
156
+ * Ids longer than this are hashed; the hash token itself is always short.
157
+ * @throws ConfigurationError (code `invalid_filename_id`) only on empty input.
158
+ *
159
+ * @example
160
+ * safeFilenameForId("550e8400-e29b-41d4-a716-446655440000") // passthrough
161
+ * safeFilenameForId("user@example.com") // "h-<16hex>"
162
+ *
163
+ */
164
+ export declare function safeFilenameForId(id: string, options?: {
165
+ maxLen?: number;
166
+ }): string;
@@ -18,6 +18,15 @@
18
18
  * @internal
19
19
  */
20
20
  import { ConfigurationError } from "../../errors.js";
21
+ /**
22
+ * Thrown when a path operation would escape its allowed base directory.
23
+ * Extends `ConfigurationError` (no new error hierarchy per ADR D65).
24
+ *
25
+ */
26
+ export declare class PathTraversalError extends ConfigurationError {
27
+ readonly name: string;
28
+ constructor(input: string, resolvedPath: string);
29
+ }
21
30
  /**
22
31
  * Thrown when an agent tool is asked to read or write a sensitive path
23
32
  * that the blocklist forbids (`.env`, `.git/`, `node_modules/`, `.theo/`,
@@ -32,6 +41,33 @@ export declare class ForbiddenPathError extends ConfigurationError {
32
41
  readonly name: string;
33
42
  constructor(path: string);
34
43
  }
44
+ /**
45
+ * Join `base` with `...parts` and ensure the resolved absolute path stays
46
+ * under `base`. Resolves FIRST, then prefix-checks (ADR D80) — prevents
47
+ * normalized-escape bypasses like `subdir/.\\./bar`.
48
+ *
49
+ * Returns the safe absolute path. Throws `PathTraversalError` if escape.
50
+ *
51
+ */
52
+ export declare function safePathJoin(base: string, ...parts: string[]): string;
53
+ /**
54
+ * Assert that `path` — including every directory component in the chain —
55
+ * stays under `base` after symlink resolution. No-op when nothing on the
56
+ * path exists yet.
57
+ *
58
+ * Two-bug history:
59
+ * 1. **EC-1** (original fix, kept): a multi-level symlink chain A → B → C
60
+ * must be resolved end-to-end. `realpathSync` does this in 1 syscall.
61
+ * 2. **Defence-in-depth** (added v1.x): the previous implementation only
62
+ * called `lstatSync(path)` on the terminal component. If an INTERMEDIATE
63
+ * directory was a symlink (`base/inner-symlink → /outside`), `lstat` on
64
+ * `base/inner-symlink/file.txt` followed the symlink and reported the
65
+ * regular file — escape went undetected. Fix: walk up to the nearest
66
+ * existing ancestor and `realpath` THAT, then re-attach the suffix and
67
+ * check the result against the canonical base.
68
+ *
69
+ */
70
+ export declare function assertNoSymlinkEscape(path: string, base: string): void;
35
71
  /**
36
72
  * Decide whether a project-relative path points to a known-sensitive file
37
73
  * that a coding agent must not read or write.
@@ -54,6 +90,77 @@ export declare class ForbiddenPathError extends ConfigurationError {
54
90
  * @public
55
91
  */
56
92
  export declare function isForbiddenPath(input: string): boolean;
93
+ /**
94
+ * T1.4 — validate a relative artifact path string BEFORE it is used to look
95
+ * up a fixture or to fetch from PaaS. Rejects every well-known traversal
96
+ * vector at the boundary, throwing `PathTraversalError`.
97
+ *
98
+ * Vectors rejected:
99
+ * - classic `..` parent-directory traversal (any segment).
100
+ * - backslash separators (Windows-style `..\\windows`).
101
+ * - URL-encoded `%2e%2e` / `%2E%2E` (double-decoded traversal).
102
+ * - NUL byte injection (`\x00`).
103
+ * - Windows drive letter prefix (`C:`, `D:\\...`).
104
+ * - Home-tilde expansion (`~/`, `~root/...`).
105
+ * - Absolute paths starting with `/`.
106
+ *
107
+ * Does NOT touch the filesystem — the call is shape-only. Live symlink
108
+ * traversal protection happens via `assertNoSymlinkEscape` at the FS-resolve
109
+ * boundary.
110
+ *
111
+ * @param input - Caller-supplied artifact path.
112
+ * @throws `PathTraversalError` on any rejection.
113
+ *
114
+ * Semver-exempt: reachable via the `@theokit/sdk/internal/security` sub-path, which the package
115
+ * declares in `exports` but does NOT cover with its semver contract.
116
+ */
117
+ export declare function validateArtifactPath(input: string): void;
118
+ /**
119
+ * Validate that `input` is a safe path component (skill name, agent ID,
120
+ * namespace, etc.) and return its lowercase form. Strict grammar
121
+ * `^[a-z0-9][a-z0-9-_]*$` rejects path separators, dots, null bytes,
122
+ * whitespace, unicode invisible chars, and any leading `-`/`_`.
123
+ *
124
+ * ONE error class leaves this function: `ConfigurationError` with code
125
+ * `invalid_identifier`, for every rejection — length out of range, a path
126
+ * separator, `..`, a space, a leading `-`, and a NUL / C0 control char / DEL
127
+ * alike. A caller can branch on that code and know it has covered the whole
128
+ * rejection surface.
129
+ *
130
+ * Before #368 the control-char branch threw `PathTraversalError` instead, which
131
+ * made the error CLASS a function of the attacker's bytes; the message still names
132
+ * the offending byte, which is the part that was worth keeping.
133
+ *
134
+ * @param input - User-supplied identifier candidate.
135
+ * @param options.maxLen - Maximum allowed length (default 64).
136
+ * @returns Lowercase form of `input`.
137
+ * @throws `ConfigurationError` with code `invalid_identifier` on every rejection.
138
+ */
57
139
  export declare function sanitizeIdentifier(input: string, options?: {
58
140
  maxLen?: number;
59
141
  }): string;
142
+ /**
143
+ * Convert ANY opaque id (agent id, run id, conversation id, namespace, email,
144
+ * arbitrary string) into a deterministic, filesystem-safe filename component.
145
+ *
146
+ * Unlike {@link sanitizeIdentifier} (which THROWS on non-conforming input),
147
+ * this is a total function: it NEVER throws on a non-empty string. It returns
148
+ * the lowercased id verbatim when it already matches the safe grammar
149
+ * `^[a-z0-9][a-z0-9-_]*$` and fits `maxLen` (so UUIDs, hashes, and slugs stay
150
+ * human-readable), otherwise a deterministic `h-<16 hex>` sha256 token
151
+ * (collision-resistant and always a valid filename). The output charset is
152
+ * always `[a-z0-9_-]`, safe as a literal path segment on every filesystem.
153
+ *
154
+ * @param id - any opaque identifier (must be a non-empty string)
155
+ * @param options.maxLen - max length for the passthrough branch (default 128).
156
+ * Ids longer than this are hashed; the hash token itself is always short.
157
+ * @throws ConfigurationError (code `invalid_filename_id`) only on empty input.
158
+ *
159
+ * @example
160
+ * safeFilenameForId("550e8400-e29b-41d4-a716-446655440000") // passthrough
161
+ * safeFilenameForId("user@example.com") // "h-<16hex>"
162
+ *
163
+ */
164
+ export declare function safeFilenameForId(id: string, options?: {
165
+ maxLen?: number;
166
+ }): string;
@@ -1,3 +1,74 @@
1
+ /**
2
+ * Register an extra pattern for `redactSecrets` to mask, on top of the built-in vendor set.
3
+ *
4
+ * Additive and irreversible for the life of the process: patterns accumulate in module scope,
5
+ * builtins are never replaced or reordered, and there is no way to remove one. Registering the
6
+ * same regex twice registers it twice.
7
+ *
8
+ * Throws immediately when the regex has no `/g` flag. That is not pedantry — `String.replace`
9
+ * with a non-global regex substitutes only the FIRST match, so a pattern registered without it
10
+ * would mask the first credential in a payload and let every later one through, which reads as
11
+ * working.
12
+ *
13
+ * Extras run after the builtins and before the parametric `key=value` sweep, and each whole match
14
+ * is replaced by `maskToken` of that match. Anchor and bound the pattern with care: a regex that
15
+ * matches more than the secret masks more than the secret, and one that backtracks badly runs on
16
+ * every string crossing an output boundary.
17
+ *
18
+ * Registering a pattern does not enable redaction. When `THEOKIT_REDACT_SECRETS` was off at
19
+ * module load, `redactSecrets` returns its input untouched and extras never run.
20
+ *
21
+ * Also exposed publicly, and under semver, as `Security.addPattern` in `src/security.ts`; the
22
+ * direct export here additionally reaches the semver-exempt `@theokit/sdk/internal/security`
23
+ * sub-path.
24
+ */
25
+ export declare function addPattern(re: RegExp): void;
26
+ /**
27
+ * Mask one string, keeping enough of it to be recognizable in a log.
28
+ *
29
+ * Under 18 characters the whole string becomes the literal `***`; the length is not preserved and
30
+ * nothing of the input survives. From 18 characters up, the result is the first 6 characters, the
31
+ * literal `...`, and the last 4 — so exactly 10 characters of the input are RETAINED IN CLEAR and
32
+ * the middle is dropped. That is the trade the threshold encodes: short strings could be brute
33
+ * forced from a partial, long ones cannot, and the surviving prefix is usually the vendor tag
34
+ * (`sk-ant`, `ghp_de`) that tells an operator which credential misbehaved.
35
+ *
36
+ * Be clear about what this is and is not. It is a readability aid for logs, not an anonymizer and
37
+ * not a security boundary. The retained prefix and suffix identify the credential's issuer and
38
+ * often the credential itself to anyone who has seen it before, so a masked value still belongs in
39
+ * a trusted log and not in a bug report or a support ticket.
40
+ *
41
+ * It masks whatever it is handed. There is no check that the argument is a secret, so calling it
42
+ * on ordinary text mangles the text, and calling it on something the caller merely hopes is a
43
+ * secret proves nothing about what leaked.
44
+ *
45
+ * `redactSecrets` applies it to the ENTIRE match of a pattern, not to a captured group. For a
46
+ * match like `Bearer sk-ant-...` the first 6 characters retained are `Bearer`, not the key's
47
+ * prefix.
48
+ *
49
+ * Semver-exempt: reachable via the `@theokit/sdk/internal/security` sub-path, which the package
50
+ * declares in `exports` but does NOT cover with its semver contract.
51
+ */
52
+ export declare function maskToken(token: string): string;
53
+ /**
54
+ * Redact known credential patterns from `text`. Default behavior masks
55
+ * builtins + extras + parametric `key=value` sinks.
56
+ *
57
+ * With `{ codeFile: true }` (D72), skips PARAM_PATTERN to avoid mangling
58
+ * `.env.example`, schema JSON, or test fixtures that legitimately contain
59
+ * prefix-like strings.
60
+ *
61
+ * Returns the redacted string. Coerces non-strings via JSON.stringify;
62
+ * EC-7 fix (edge-case review): wraps in try/catch so circular references
63
+ * never propagate — returns sentinel `"[unredactable: circular]"`.
64
+ *
65
+ * `null` and `undefined` return `""`. When redaction was switched off at module load via
66
+ * `THEOKIT_REDACT_SECRETS`, the coerced input is returned with no masking at all — the value is
67
+ * still stringified, but nothing is removed from it.
68
+ *
69
+ * Masking is best-effort against a list of known shapes. A credential in a format no pattern
70
+ * covers passes through unchanged, so a redacted string is not a string proven free of secrets.
71
+ */
1
72
  export declare function redactSecrets(text: unknown, opts?: {
2
73
  codeFile?: boolean;
3
74
  }): string;
@@ -1,3 +1,74 @@
1
+ /**
2
+ * Register an extra pattern for `redactSecrets` to mask, on top of the built-in vendor set.
3
+ *
4
+ * Additive and irreversible for the life of the process: patterns accumulate in module scope,
5
+ * builtins are never replaced or reordered, and there is no way to remove one. Registering the
6
+ * same regex twice registers it twice.
7
+ *
8
+ * Throws immediately when the regex has no `/g` flag. That is not pedantry — `String.replace`
9
+ * with a non-global regex substitutes only the FIRST match, so a pattern registered without it
10
+ * would mask the first credential in a payload and let every later one through, which reads as
11
+ * working.
12
+ *
13
+ * Extras run after the builtins and before the parametric `key=value` sweep, and each whole match
14
+ * is replaced by `maskToken` of that match. Anchor and bound the pattern with care: a regex that
15
+ * matches more than the secret masks more than the secret, and one that backtracks badly runs on
16
+ * every string crossing an output boundary.
17
+ *
18
+ * Registering a pattern does not enable redaction. When `THEOKIT_REDACT_SECRETS` was off at
19
+ * module load, `redactSecrets` returns its input untouched and extras never run.
20
+ *
21
+ * Also exposed publicly, and under semver, as `Security.addPattern` in `src/security.ts`; the
22
+ * direct export here additionally reaches the semver-exempt `@theokit/sdk/internal/security`
23
+ * sub-path.
24
+ */
25
+ export declare function addPattern(re: RegExp): void;
26
+ /**
27
+ * Mask one string, keeping enough of it to be recognizable in a log.
28
+ *
29
+ * Under 18 characters the whole string becomes the literal `***`; the length is not preserved and
30
+ * nothing of the input survives. From 18 characters up, the result is the first 6 characters, the
31
+ * literal `...`, and the last 4 — so exactly 10 characters of the input are RETAINED IN CLEAR and
32
+ * the middle is dropped. That is the trade the threshold encodes: short strings could be brute
33
+ * forced from a partial, long ones cannot, and the surviving prefix is usually the vendor tag
34
+ * (`sk-ant`, `ghp_de`) that tells an operator which credential misbehaved.
35
+ *
36
+ * Be clear about what this is and is not. It is a readability aid for logs, not an anonymizer and
37
+ * not a security boundary. The retained prefix and suffix identify the credential's issuer and
38
+ * often the credential itself to anyone who has seen it before, so a masked value still belongs in
39
+ * a trusted log and not in a bug report or a support ticket.
40
+ *
41
+ * It masks whatever it is handed. There is no check that the argument is a secret, so calling it
42
+ * on ordinary text mangles the text, and calling it on something the caller merely hopes is a
43
+ * secret proves nothing about what leaked.
44
+ *
45
+ * `redactSecrets` applies it to the ENTIRE match of a pattern, not to a captured group. For a
46
+ * match like `Bearer sk-ant-...` the first 6 characters retained are `Bearer`, not the key's
47
+ * prefix.
48
+ *
49
+ * Semver-exempt: reachable via the `@theokit/sdk/internal/security` sub-path, which the package
50
+ * declares in `exports` but does NOT cover with its semver contract.
51
+ */
52
+ export declare function maskToken(token: string): string;
53
+ /**
54
+ * Redact known credential patterns from `text`. Default behavior masks
55
+ * builtins + extras + parametric `key=value` sinks.
56
+ *
57
+ * With `{ codeFile: true }` (D72), skips PARAM_PATTERN to avoid mangling
58
+ * `.env.example`, schema JSON, or test fixtures that legitimately contain
59
+ * prefix-like strings.
60
+ *
61
+ * Returns the redacted string. Coerces non-strings via JSON.stringify;
62
+ * EC-7 fix (edge-case review): wraps in try/catch so circular references
63
+ * never propagate — returns sentinel `"[unredactable: circular]"`.
64
+ *
65
+ * `null` and `undefined` return `""`. When redaction was switched off at module load via
66
+ * `THEOKIT_REDACT_SECRETS`, the coerced input is returned with no masking at all — the value is
67
+ * still stringified, but nothing is removed from it.
68
+ *
69
+ * Masking is best-effort against a list of known shapes. A credential in a format no pattern
70
+ * covers passes through unchanged, so a redacted string is not a string proven free of secrets.
71
+ */
1
72
  export declare function redactSecrets(text: unknown, opts?: {
2
73
  codeFile?: boolean;
3
74
  }): string;
@@ -23,12 +23,23 @@ export declare const MAX_CACHED_SESSIONS = 32;
23
23
  */
24
24
  export declare function discardSession(cwd: string, agentId: string): number;
25
25
  export declare function getSessionMessages(agentId: string): SessionMessage[];
26
- export declare function clearSession(agentId: string): void;
27
26
  /**
28
- * M50 review F1 drop BOTH the message cache and the hydration marker so the NEXT send re-hydrates
29
- * from disk. Without this, a compaction only helps after a process restart: the live process keeps
30
- * sending the full pre-compact history (the cache is read synchronously by every send).
27
+ * Drop the in-memory message cache for `agentId` and NOTHING else the hydration marker in
28
+ * `hydratedKeys` deliberately stays.
29
+ *
30
+ * That asymmetry is the feature, not an oversight, and it is what separates this from
31
+ * `invalidateSessionCache`, which drops both. The single caller is the personality switch's
32
+ * `reset: true` path (`internal/personality/switch.ts`): leaving the marker set makes
33
+ * `hydrateSession` return early, so the next send starts from an EMPTY context instead of
34
+ * replaying the pre-reset transcript off disk. Clearing the marker here would re-hydrate the
35
+ * conversation the reset was asked to discard.
36
+ *
37
+ * The same shape read as a bug one function up: `forgetBookkeeping` documents an evicted session
38
+ * coming back empty as "silent amnesia". The difference is intent — eviction wants the transcript
39
+ * back, a reset does not. Anyone reaching for this to invalidate a cache wants
40
+ * `invalidateSessionCache(cwd, agentId)` instead.
31
41
  */
42
+ export declare function clearSession(agentId: string): void;
32
43
  /**
33
44
  * M50 review F5 — run `fn` serialized on the SAME per-(cwd,agentId) write chain the per-turn
34
45
  * persistence uses, so a manual `Agent.compact` can never interleave with an in-flight turn's
@@ -1,7 +1,7 @@
1
1
  /**
2
- * M50 (agent-builder) — session-transcript compaction, Codex-faithful.
2
+ * M50 (agent-builder) — session-transcript compaction.
3
3
  *
4
- * Mirrors the vendored Codex mechanism (`codex-rs/core/src/compact.rs`):
4
+ * The mechanism:
5
5
  * - the replacement history = recent USER messages verbatim (newest→oldest under a token budget;
6
6
  * prior summaries filtered by marker) + ONE summary message with a textual marker prefix,
7
7
  * injected as `role:"user"` (`build_compacted_history`, compact.rs:589-663);