@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,9 +1,10 @@
1
- import { enqueueSessionWrite } from './chunk-I5OTK2RP.js';
2
- import { invalidateSessionCache } from './chunk-4QEC4CCS.js';
3
- import './chunk-UJ3SXRZZ.js';
4
- import { SessionTranscript } from './chunk-C4EU627W.js';
5
- import './chunk-CHVSMEKM.js';
6
- import './chunk-4X3SBHPK.js';
1
+ import { enqueueSessionWrite } from './chunk-DUIF54UP.js';
2
+ import { invalidateSessionCache } from './chunk-WTMU7J4U.js';
3
+ import './chunk-BMAZLQQ4.js';
4
+ import { SessionTranscript } from './chunk-DZBSJX6J.js';
5
+ import './chunk-VF7EWVDG.js';
6
+ import './chunk-T7XEKOVW.js';
7
+ import './chunk-T7O6K6PX.js';
7
8
 
8
9
  // src/internal/session/inject-session.ts
9
10
  async function injectSessionTurn(opts) {
@@ -22,5 +23,5 @@ async function injectSessionTurn(opts) {
22
23
  }
23
24
 
24
25
  export { injectSessionTurn };
25
- //# sourceMappingURL=inject-session-HO7FYVCX.js.map
26
- //# sourceMappingURL=inject-session-HO7FYVCX.js.map
26
+ //# sourceMappingURL=inject-session-DDR6X6PC.js.map
27
+ //# sourceMappingURL=inject-session-DDR6X6PC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/session/inject-session.ts"],"names":[],"mappings":";;;;;;;;;AAWA,eAAsB,kBAAkB,IAAA,EAMtB;AAChB,EAAA,MAAM,oBAAoB,IAAA,CAAK,GAAA,CAAI,KAAK,IAAA,CAAK,GAAA,CAAI,SAAS,YAAY;AACpE,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,IAAI,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,WAAA,CAAY,KAAA,EAAO;AAAA,MACtD,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,KAAA,IAAS;AAAA,KAC1B,CAAA;AACD,IAAA,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AACvC,IAAA,UAAA,CAAW,mBAAA,CAAoB,EAAE,IAAA,EAAM,IAAA,CAAK,eAAe,CAAA;AAC3D,IAAA,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,OAAA,EAAQ,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AACzF,IAAA,sBAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,EACvD,CAAC,CAAA;AACH","file":"inject-session-DDR6X6PC.js","sourcesContent":["/**\n * M51 (agent-builder) — inject a SYNTHETIC user+assistant pair into a session's persisted transcript\n * WITHOUT running an LLM turn. This is the Codex review-exit mechanism (`exit_success.xml` appended to\n * the parent thread history so follow-ups like \"fix finding 2\" work): the pair chains onto the DAG\n * leaf (M50 pattern) and the in-memory cache is invalidated so the NEXT send re-hydrates with it.\n */\nimport type { SessionStore } from \"../../types/session-store.js\";\nimport { SessionTranscript } from \"../persistence/session-transcript.js\";\nimport { enqueueSessionWrite, invalidateSessionCache } from \"./agent-session.js\";\nimport type { CompactLocation } from \"./compact-session.js\";\n\nexport async function injectSessionTurn(opts: {\n store: SessionStore;\n loc: CompactLocation;\n sessionId: string;\n userText: string;\n assistantText: string;\n}): Promise<void> {\n await enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {\n const prior = await opts.store.readRecords(opts.loc.agentId);\n const transcript = SessionTranscript.fromRecords(prior, {\n cwd: opts.loc.cwd,\n sessionId: opts.sessionId,\n model: opts.loc.model ?? \"unknown\",\n });\n transcript.appendUserTurn(opts.userText);\n transcript.appendAssistantTurn({ text: opts.assistantText });\n await opts.store.appendRecords(opts.loc.agentId, transcript.records().slice(prior.length));\n invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);\n });\n}\n"]}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var chunk5BJV5UPY_cjs = require('./chunk-5BJV5UPY.cjs');
4
+ var chunk4OTIXDMU_cjs = require('./chunk-4OTIXDMU.cjs');
5
+ require('./chunk-CTCGWIUD.cjs');
6
+ var chunkJHPGF3FP_cjs = require('./chunk-JHPGF3FP.cjs');
7
+ require('./chunk-I6TGFUCO.cjs');
8
+ require('./chunk-JTB5Q42C.cjs');
9
+ require('./chunk-NUKRL3I6.cjs');
10
+
11
+ // src/internal/session/inject-session.ts
12
+ async function injectSessionTurn(opts) {
13
+ await chunk5BJV5UPY_cjs.enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {
14
+ const prior = await opts.store.readRecords(opts.loc.agentId);
15
+ const transcript = chunkJHPGF3FP_cjs.SessionTranscript.fromRecords(prior, {
16
+ cwd: opts.loc.cwd,
17
+ sessionId: opts.sessionId,
18
+ model: opts.loc.model ?? "unknown"
19
+ });
20
+ transcript.appendUserTurn(opts.userText);
21
+ transcript.appendAssistantTurn({ text: opts.assistantText });
22
+ await opts.store.appendRecords(opts.loc.agentId, transcript.records().slice(prior.length));
23
+ chunk4OTIXDMU_cjs.invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);
24
+ });
25
+ }
26
+
27
+ exports.injectSessionTurn = injectSessionTurn;
28
+ //# sourceMappingURL=inject-session-XLO3KTBM.cjs.map
29
+ //# sourceMappingURL=inject-session-XLO3KTBM.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/session/inject-session.ts"],"names":["enqueueSessionWrite","SessionTranscript","invalidateSessionCache"],"mappings":";;;;;;;;;;;AAWA,eAAsB,kBAAkB,IAAA,EAMtB;AAChB,EAAA,MAAMA,sCAAoB,IAAA,CAAK,GAAA,CAAI,KAAK,IAAA,CAAK,GAAA,CAAI,SAAS,YAAY;AACpE,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,IAAI,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAA,GAAaC,mCAAA,CAAkB,WAAA,CAAY,KAAA,EAAO;AAAA,MACtD,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,KAAA,EAAO,IAAA,CAAK,GAAA,CAAI,KAAA,IAAS;AAAA,KAC1B,CAAA;AACD,IAAA,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AACvC,IAAA,UAAA,CAAW,mBAAA,CAAoB,EAAE,IAAA,EAAM,IAAA,CAAK,eAAe,CAAA;AAC3D,IAAA,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,OAAA,EAAQ,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AACzF,IAAAC,wCAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAI,OAAO,CAAA;AAAA,EACvD,CAAC,CAAA;AACH","file":"inject-session-XLO3KTBM.cjs","sourcesContent":["/**\n * M51 (agent-builder) — inject a SYNTHETIC user+assistant pair into a session's persisted transcript\n * WITHOUT running an LLM turn. This is the Codex review-exit mechanism (`exit_success.xml` appended to\n * the parent thread history so follow-ups like \"fix finding 2\" work): the pair chains onto the DAG\n * leaf (M50 pattern) and the in-memory cache is invalidated so the NEXT send re-hydrates with it.\n */\nimport type { SessionStore } from \"../../types/session-store.js\";\nimport { SessionTranscript } from \"../persistence/session-transcript.js\";\nimport { enqueueSessionWrite, invalidateSessionCache } from \"./agent-session.js\";\nimport type { CompactLocation } from \"./compact-session.js\";\n\nexport async function injectSessionTurn(opts: {\n store: SessionStore;\n loc: CompactLocation;\n sessionId: string;\n userText: string;\n assistantText: string;\n}): Promise<void> {\n await enqueueSessionWrite(opts.loc.cwd, opts.loc.agentId, async () => {\n const prior = await opts.store.readRecords(opts.loc.agentId);\n const transcript = SessionTranscript.fromRecords(prior, {\n cwd: opts.loc.cwd,\n sessionId: opts.sessionId,\n model: opts.loc.model ?? \"unknown\",\n });\n transcript.appendUserTurn(opts.userText);\n transcript.appendAssistantTurn({ text: opts.assistantText });\n await opts.store.appendRecords(opts.loc.agentId, transcript.records().slice(prior.length));\n invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);\n });\n}\n"]}
@@ -5,8 +5,46 @@
5
5
  * origin — the codebase's established "leaf-type-only deps" pattern (see tsup.config.ts), which sidesteps
6
6
  * the rollup-dts cross-module resolution limitation that a value-module type export trips.
7
7
  *
8
- * @internal (re-exported from the package barrel as public)
8
+ * Every type here is re-exported from `@theokit/sdk/auth` and is therefore PUBLIC, under semver.
9
+ *
10
+ * This block sits directly above `CredentialStoreConfig` with no statement between them, so it is
11
+ * one of that declaration's leading comment ranges — an internal-visibility tag written here is
12
+ * scanned by `stripInternal` and deletes the interface from the emitted `.d.ts`. That is exactly
13
+ * what happened, and it is the same trap recorded in `src/auth/index.ts`
14
+ * (usetheodev/theokit-sdk#283). Do not name that tag anywhere in this file.
15
+ *
16
+ * @packageDocumentation
17
+ */
18
+ /**
19
+ * Where the credential store lives — the three path segments, plus an optional environment
20
+ * override.
21
+ *
22
+ * The store directory is `join(home, dirName)` and the file is `fileName` inside it. When
23
+ * `homeEnvVar` is set AND the caller's `env` map holds that variable non-blank, its trimmed value
24
+ * REPLACES the whole directory: `dirName` is not appended to it, mirroring how `CODEX_HOME` works.
25
+ * A blank or absent variable falls back to `join(home, dirName)`.
26
+ *
27
+ * `env` is always a parameter on the functions that take this config, never an ambient
28
+ * `process.env` read, and it defaults to an empty map — so a caller that forgets to pass it gets
29
+ * the non-overridden path rather than whatever the process happens to have.
30
+ *
31
+ * Nothing here is validated or created. A relative `home` stays relative to the process cwd, and
32
+ * the directory is created on first write, at mode 0700.
33
+ *
34
+ * The store this addresses holds live credentials in plaintext, so `dirName` should be a directory
35
+ * the SDK owns rather than one shared with unrelated state: reads enforce 0700 on the directory
36
+ * and 0600 on the file, and refuse when either is looser.
9
37
  */
38
+ export interface CredentialStoreConfig {
39
+ /** Base home directory (e.g. `os.homedir()`). */
40
+ home: string;
41
+ /** The store subdirectory under `home` (e.g. `.agent-builder`, `.codex`). */
42
+ dirName: string;
43
+ /** The credential file name inside the store dir (e.g. `auth.json`). */
44
+ fileName: string;
45
+ /** Optional env var name that, when set + non-blank, overrides the full store dir. */
46
+ homeEnvVar?: string;
47
+ }
10
48
  /**
11
49
  * The flat bearer surface every consumer holds. `kind:'api'` is the classic API-key path; `kind:'oauth'` is
12
50
  * an OAuth session whose `apiKey` is the CURRENT access token, so consumers keep passing a flat bearer
@@ -24,11 +62,45 @@ export interface ResolvedCredential {
24
62
  /** oauth only: epoch ms the access token expires. Drives the refresh in the oauth engine. */
25
63
  expiresAt?: number;
26
64
  }
65
+ /**
66
+ * The API-key variant of the credential file, as it sits on disk.
67
+ *
68
+ * `api_key` is the key in PLAINTEXT. Nothing in this SDK encrypts, hashes or otherwise obscures
69
+ * it; the protection is filesystem permissions alone — `writeCredential` persists the file at
70
+ * mode 0600 inside a 0700 directory, and `readAuthFile` refuses to read a file readable by other
71
+ * users or a directory writable by them. On Windows that gate is skipped entirely, because the
72
+ * mode bits Node reports there do not describe the real ACLs.
73
+ *
74
+ * `type` and `provider` are both optional so that a legacy file written before the union existed
75
+ * — a bare `{ "provider": ..., "api_key": ... }` — still parses as this variant with no
76
+ * migration. `type` is never written: the api variant is persisted without the discriminant, and
77
+ * absence of `type` is what identifies it on the next read.
78
+ *
79
+ * The file schema is strict, so an unknown key makes the whole file fail to parse with a
80
+ * `CredentialError` naming the offending path.
81
+ */
27
82
  export interface StoredApiCredential {
28
83
  type?: "api";
29
84
  provider?: string;
30
85
  api_key: string;
31
86
  }
87
+ /**
88
+ * The OAuth variant of the credential file, as it sits on disk.
89
+ *
90
+ * `access` and `refresh` are both stored in PLAINTEXT, under the same 0600 file / 0700 directory
91
+ * gate as the API-key variant and with no additional protection. The refresh token is the more
92
+ * durable of the two — an expired `access` is worth little, a leaked `refresh` mints new ones —
93
+ * and it is why `readStoredOAuth` is the only path that hands this shape out: the resolved
94
+ * credential every other consumer sees carries the access token and nothing else.
95
+ *
96
+ * `type: "oauth"` is the discriminant and is always written; a file without it reads back as the
97
+ * API-key variant. `provider`, `access` and `refresh` must be non-empty — `writeCredential`
98
+ * refuses an empty access or refresh token, and the read schema rejects empty strings.
99
+ *
100
+ * `expires` is epoch milliseconds for the ACCESS token only. Nothing here records when the
101
+ * refresh token expires, so a refresh failing because the grant itself lapsed is only observable
102
+ * at the token endpoint.
103
+ */
32
104
  export interface StoredOAuthCredential {
33
105
  type: "oauth";
34
106
  provider: string;
@@ -38,8 +110,18 @@ export interface StoredOAuthCredential {
38
110
  expires: number;
39
111
  account_id?: string;
40
112
  }
113
+ /**
114
+ * Whatever the credential file turned out to hold — the two variants are discriminated by `type`.
115
+ *
116
+ * Narrow with `stored.type === "oauth"`, not by probing for a field. The API-key variant leaves
117
+ * `type` undefined rather than setting it to `"api"`, so `type !== "oauth"` is the reliable test
118
+ * for the API-key side and `type === "api"` misses every legacy file.
119
+ *
120
+ * Reading a file is what produces this value, and both variants carry a live secret in plaintext.
121
+ * Treat it as one: it should not be logged, serialized into telemetry, or put in an error message.
122
+ */
41
123
  export type StoredCredential = StoredApiCredential | StoredOAuthCredential;
42
- /** A provider's OAuth endpoints + client identity. Passed in (provider-agnostic, like OpenCode). */
124
+ /** A provider's OAuth endpoints + client identity. Passed in (provider-agnostic). */
43
125
  export interface OAuthProviderConfig {
44
126
  provider: string;
45
127
  authorizeEndpoint: string;
@@ -1,4 +1,25 @@
1
1
  import { AuthenticationError } from "../../errors.js";
2
+ /**
3
+ * M42 — the SDK credential store. Promoted DOWN from agent-builder's hardened `agents/lib/credentials.ts`
4
+ * (M37), generalized from a closed `openrouter|anthropic|openai` union to an open `provider: string` and
5
+ * driven by a caller-supplied {@link CredentialStoreConfig} (no hardcoded `.agent-builder`/`auth.json` /
6
+ * `AGENT_BUILDER_HOME`). The security-critical file mechanics are ported VERBATIM (ADR D3 of the M42 plan):
7
+ * atomic O_EXCL + rename + fsync write, 0700/0600 mode gates, `env` is always a PARAMETER (never an ambient
8
+ * `process.env` read).
9
+ *
10
+ * The env-precedence + key-prefix-inference + declared-provider rungs of the agent-builder resolver are
11
+ * APP POLICY and deliberately stay UP in the consumer; this module owns only the on-disk store + the
12
+ * `api|oauth` discriminated union. See {@link resolveCredential} (SDK) for the store-read + refresh path.
13
+ *
14
+ * Re-exported from `@theokit/sdk/auth`, and therefore PUBLIC, under semver.
15
+ *
16
+ * NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
17
+ * and TypeScript scans EVERY leading comment range of the declaration that follows, including the
18
+ * import right below this one. The tag that used to sit here deleted that import from the emitted
19
+ * `.d.ts`, leaving the types it binds unresolvable for any consumer running type-aware lint
20
+ * (usetheodev/theokit-sdk#283 records the same trap on a declaration).
21
+ */
22
+ import type { CredentialStoreConfig, StoredCredential, StoredOAuthCredential } from "./auth-types.js";
2
23
  /** The store directory, honoring an optional `homeEnvVar` override. */
3
24
  export declare function credentialHome(config: CredentialStoreConfig, env?: Record<string, string | undefined>): string;
4
25
  /** The credential file path inside the (possibly overridden) store directory. */
@@ -23,12 +44,6 @@ export declare function authFilePath(config: CredentialStoreConfig, env?: Record
23
44
  export declare class CredentialError extends AuthenticationError {
24
45
  readonly name: string;
25
46
  }
26
- /**
27
- * Read the credential file. Absent ⇒ `undefined` (the normal case). Present-but-wrong is a typed error
28
- * naming the file: a malformed credential store must not surface as a raw parse crash. Enforces the
29
- * 0700 dir / 0600 file mode gates (ported verbatim — a writable dir lets an attacker swap the file for a
30
- * symlink to their own account).
31
- */
32
47
  /**
33
48
  * The 0700-dir / 0600-file mode gates (ported verbatim). The DIRECTORY matters as much as the file:
34
49
  * `mkdirSync(mode)` applies only at creation, so a pre-existing store dir keeps whatever mode it had, and a
@@ -36,6 +51,12 @@ export declare class CredentialError extends AuthenticationError {
36
51
  * agent then runs on THEIR account.
37
52
  */
38
53
  export declare function assertSecureModes(dirPath: string, path: string): void;
54
+ /**
55
+ * Read the credential file. Absent ⇒ `undefined` (the normal case). Present-but-wrong is a typed error
56
+ * naming the file: a malformed credential store must not surface as a raw parse crash. Enforces the
57
+ * 0700 dir / 0600 file mode gates (ported verbatim — a writable dir lets an attacker swap the file for a
58
+ * symlink to their own account).
59
+ */
39
60
  export declare function readAuthFile(config: CredentialStoreConfig, env?: Record<string, string | undefined>): StoredCredential | undefined;
40
61
  /**
41
62
  * Read the stored OAuth credential (with its refresh token), or `undefined` when the store is absent or
@@ -43,6 +64,13 @@ export declare function readAuthFile(config: CredentialStoreConfig, env?: Record
43
64
  * carry. Enforces the same 0600/0700 gates as every other read.
44
65
  */
45
66
  export declare function readStoredOAuth(config: CredentialStoreConfig, env?: Record<string, string | undefined>): StoredOAuthCredential | undefined;
67
+ /**
68
+ * Persist a credential atomically at mode `0600`. Ported VERBATIM (ADR D3): write to a random-named temp
69
+ * file in the same directory with `wx` (O_EXCL), fsync, close, chmod, then `rename` (atomic on POSIX) —
70
+ * so a crash mid-write leaves whatever was there untouched, and a pre-planted symlink cannot capture the
71
+ * key. The api variant persists the unchanged `{provider, api_key}` (back-compat, no `type` key); the
72
+ * oauth variant persists `{type:'oauth', provider, access, refresh, expires, account_id?}`.
73
+ */
46
74
  export declare function writeCredential(cred: {
47
75
  provider: string;
48
76
  apiKey: string;
@@ -18,7 +18,6 @@ export declare function deviceLogin(config: DeviceOAuthConfig, deps: DeviceDeps,
18
18
  expiresIn: number;
19
19
  }) => void;
20
20
  }): Promise<OAuthTokens>;
21
- /** The OpenAI two-step device config: usercode + poll endpoints return an authorization_code (not tokens). */
22
21
  /** Step 1 (OpenAI) — request the user code. */
23
22
  export declare function requestOpenAIUsercode(config: OpenAIDeviceConfig, deps: Pick<DeviceDeps, "fetch">): Promise<{
24
23
  deviceAuthId: string;
@@ -35,7 +34,7 @@ export declare function openaiDeviceLogin(config: OpenAIDeviceConfig, deps: Devi
35
34
  verificationUri: string;
36
35
  }) => void;
37
36
  }): Promise<OAuthTokens>;
38
- /** JWT id/access-token claims we read to attribute an account. Adapted from OpenCode's codex plugin. */
37
+ /** JWT id/access-token claims we read to attribute an account. */
39
38
  interface IdTokenClaims {
40
39
  chatgpt_account_id?: string;
41
40
  organizations?: Array<{
@@ -47,7 +46,7 @@ interface IdTokenClaims {
47
46
  }
48
47
  /** Decode a JWT's claim set (no signature verification — used only to read a self-reported account id). */
49
48
  export declare function parseJwtClaims(token: string): IdTokenClaims | undefined;
50
- /** Best-effort account id from an id/access token's claims (OpenAI/ChatGPT shape). Adapted from OpenCode. */
49
+ /** Best-effort account id from an id/access token's claims (OpenAI/ChatGPT shape). */
51
50
  export declare function extractAccountId(tokens: {
52
51
  id_token?: string;
53
52
  access_token?: string;
@@ -1,3 +1,39 @@
1
+ /**
2
+ * M42 — `resolveCredential`: the public composition entrypoint over the credential store + oauth engine.
3
+ * Given a provider name + a {@link CredentialStoreConfig} (and, for oauth, an {@link OAuthProviderConfig}),
4
+ * read the store and return a FRESH `ResolvedCredential` — an api credential passes through by identity; an
5
+ * oauth credential is transparently refreshed when its access token is within the skew window. Returns
6
+ * `undefined` when the store holds no credential for `provider` (the caller then falls back to env / apiKeys).
7
+ *
8
+ * Mirrors agent-builder's `resolveFreshCredential` composition (store read → oauth → ensureFreshCredential),
9
+ * defaulting `fetch`/`now` to globals. This is the async surface an oauth provider's M41 `transform.fetch`
10
+ * calls at stream time, so a mid-turn token expiry refreshes without rebuilding the agent.
11
+ *
12
+ * Re-exported from `@theokit/sdk/auth`, and therefore PUBLIC, under semver.
13
+ *
14
+ * NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
15
+ * and TypeScript scans EVERY leading comment range of the declaration that follows, including the
16
+ * import right below this one. The tag that used to sit here deleted that import from the emitted
17
+ * `.d.ts`, leaving the types it binds unresolvable for any consumer running type-aware lint
18
+ * (usetheodev/theokit-sdk#283 records the same trap on a declaration).
19
+ */
20
+ import type { CredentialStoreConfig, OAuthProviderConfig, ResolvedCredential } from "./auth-types.js";
21
+ /**
22
+ * Input to `resolveCredential`: which provider, which store, and what to inject.
23
+ *
24
+ * `env` and `deps` exist so nothing here reads ambient state. Omitting `env` does NOT fall back to
25
+ * `process.env` — the store's `homeEnvVar` override simply goes unread, so a credential written
26
+ * under a relocated home resolves as absent rather than as an error.
27
+ *
28
+ * `oauth` is required only to REFRESH an oauth credential. Without it an expired oauth entry cannot
29
+ * be renewed, and an api-key-only store needs it never.
30
+ *
31
+ * PUBLIC and under semver, despite the `internal/` directory: `src/auth/index.ts` re-exports this
32
+ * type, and `package.json` publishes that barrel as the '@theokit/sdk/auth' subpath. The directory
33
+ * name is not the authority — the `exports` map is. The semver-exempt class is the sub-paths
34
+ * declared under '@theokit/sdk/internal/*' ('internal/persistence', 'internal/security',
35
+ * 'internal/memory-adapters'); no `exports` entry reaches this file that way.
36
+ */
1
37
  export interface ResolveCredentialOptions {
2
38
  /** The provider whose stored credential to resolve. */
3
39
  provider: string;
@@ -13,4 +49,8 @@ export interface ResolveCredentialOptions {
13
49
  now?: () => number;
14
50
  };
15
51
  }
52
+ /**
53
+ * Resolve a fresh credential for `provider` from the store, or `undefined` if the store holds none for it.
54
+ * oauth credentials are auto-refreshed when `opts.oauth` is supplied; api credentials pass through.
55
+ */
16
56
  export declare function resolveCredential(opts: ResolveCredentialOptions): Promise<ResolvedCredential | undefined>;
@@ -18,19 +18,17 @@
18
18
  * `IterationBudget`. This is intentional — every send is its own iteration
19
19
  * round, not a long-running budget shared across sends.
20
20
  *
21
+ * NOTE on how exhaustion is signalled (B-140): by RETURN VALUE, never by
22
+ * throwing — `recordCompression()` answers `{ allowed: false, reason }` and
23
+ * `shouldContinue()` answers `false`. Running out of budget is an expected
24
+ * outcome of the loop, not an exceptional one, so it is not an exception
25
+ * (`rules/error-handling.md` § 2: never use exceptions for control flow).
26
+ * Three exported error classes for these cases (`IterationBudgetExhaustedError`,
27
+ * `CompressionExhaustedError`, `CompressionIneffectiveError`) survived here from
28
+ * an earlier design and were thrown by nothing; removed 2026-08-20. If you find
29
+ * yourself re-adding one, the question to settle first is whether the caller can
30
+ * act on the difference — because today it reads a reason string instead.
31
+ *
21
32
  * @internal
22
33
  */
23
- export declare class CompressionExhaustedError extends Error {
24
- readonly name: string;
25
- }
26
- export declare class CompressionIneffectiveError extends Error {
27
- readonly name: string;
28
- }
29
- export interface IterationBudgetOptions {
30
- /** Total iterations before grace call. Default 8. */
31
- maxIterations?: number;
32
- /** Max compression attempts per session (D91). Default 3. */
33
- maxCompressions?: number;
34
- /** When true (default), one final iteration is allowed after budget exhausted. */
35
- allowGraceCall?: boolean;
36
- }
34
+ export {};
@@ -16,6 +16,21 @@ interface StepUsage {
16
16
  cacheWriteTokens?: number;
17
17
  reasoningTokens?: number;
18
18
  }
19
+ /**
20
+ * Sums the per-step token counts of a multi-step run into one `TokenUsage`.
21
+ *
22
+ * Call `add` once per LLM finish, in any order, then `toTokenUsage` to read the total. The instance
23
+ * is a running sum, not a snapshot: `toTokenUsage` may be called repeatedly and reflects everything
24
+ * added so far, and there is no reset — start a new accumulator per run.
25
+ *
26
+ * Two shaping rules to expect in the output. The optional counters (cache read, cache write,
27
+ * reasoning) are omitted entirely when they sum to zero rather than reported as `0`. And the
28
+ * per-step `requests` array appears only when at least TWO steps were added, so a single-step run
29
+ * carries totals alone.
30
+ *
31
+ * `totalTokens` is input plus output only — cache and reasoning counts are reported separately and
32
+ * are not folded into it.
33
+ */
19
34
  export declare class UsageAccumulator {
20
35
  private input;
21
36
  private output;
@@ -25,12 +25,11 @@ export interface AnthropicResponseLike {
25
25
  export declare function extractAnthropicText(response: AnthropicResponseLike): string;
26
26
  export declare function extractAnthropicToolCalls(response: AnthropicResponseLike): LlmToolCallPart[];
27
27
  export declare function mapAnthropicStopReason(reason: string | null): LlmStopReason;
28
- export declare function toAnthropicWireMessage(message: LlmMessage): Record<string, unknown>;
29
28
  /**
30
- * Build the common body shape for Anthropic Messages requests. Caller
31
- * is responsible for adding wire-specific fields (`anthropic_version`,
32
- * `model`, `stream`, etc.).
29
+ * Convert an SDK `LlmMessage` to the Anthropic Messages wire shape.
30
+ * Identical across the three Anthropic-compatible clients (D289/D292).
33
31
  */
32
+ export declare function toAnthropicWireMessage(message: LlmMessage): Record<string, unknown>;
34
33
  /**
35
34
  * Issue a POST to an Anthropic-compatible Messages endpoint with the
36
35
  * standard auth + content-type headers. Caller maps non-2xx via its own
@@ -79,6 +78,11 @@ export interface AnthropicTextBlock {
79
78
  type: "ephemeral";
80
79
  };
81
80
  }
81
+ /**
82
+ * Build the common body shape for Anthropic Messages requests. Caller
83
+ * is responsible for adding wire-specific fields (`anthropic_version`,
84
+ * `model`, `stream`, etc.).
85
+ */
82
86
  export declare function buildAnthropicCommonBody(request: LlmRequest): {
83
87
  max_tokens: number;
84
88
  messages: Array<Record<string, unknown>>;
@@ -29,4 +29,30 @@ export interface ParsedModelId {
29
29
  /** Model name to send to the provider — prefix stripped. */
30
30
  name: string;
31
31
  }
32
+ /**
33
+ * Split a model string into `{ provider, name }` at the FIRST `/`.
34
+ *
35
+ * parseModelId("ollama/llama3.2:3b") // { provider: "ollama", name: "llama3.2:3b" }
36
+ * parseModelId("openrouter/meta-llama/llama-3") // { provider: "openrouter", name: "meta-llama/llama-3" }
37
+ * parseModelId("claude-sonnet-4-6") // { provider: undefined, name: "claude-sonnet-4-6" }
38
+ *
39
+ * Pure and synchronous: no catalog lookup, no network, and no check that the
40
+ * provider or the model exists. The provider is lowercased and mapped through a
41
+ * small alias table (`llama-cpp` / `llama.cpp` to `llamacpp`, `lm-studio` /
42
+ * `lm_studio` to `lmstudio`); the name keeps its remaining slashes and any `:tag`
43
+ * suffix, which Ollama needs.
44
+ *
45
+ * Never throws and never returns an error shape. `provider: undefined` means "no
46
+ * usable prefix" and is the caller's cue to fall back to env-var detection.
47
+ *
48
+ * Traps:
49
+ * - `undefined` or `""` yields `{ provider: undefined, name: "" }` — an EMPTY
50
+ * name, not `undefined`. A caller forwarding `name` unchecked sends an empty
51
+ * model id to the provider.
52
+ * - A degenerate prefix is not an error. `"/foo"`, `"foo/"` and `" /x"` all come
53
+ * back with `provider: undefined` and the ORIGINAL, untrimmed string as `name`;
54
+ * trimming happens only when both halves are non-empty.
55
+ * - Only the first `/` splits. `"openrouter/meta-llama/llama-3"` keeps
56
+ * `meta-llama/llama-3` whole as the name.
57
+ */
32
58
  export declare function parseModelId(modelId: string | undefined): ParsedModelId;
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Real OpenAI Chat Completions client. Streams `/v1/chat/completions` and
3
+ * translates delta chunks into our provider-agnostic `LlmEvent`s.
4
+ *
5
+ * Uses native `fetch` only — no `openai` SDK dependency.
6
+ *
7
+ * @internal
8
+ */
1
9
  import type { LlmClient, LlmEvent, LlmFinish, LlmRequest } from "./types.js";
2
10
  export interface OpenAIClientOptions {
3
11
  apiKey: string;
@@ -23,6 +23,14 @@ export interface ProviderRouterOptions {
23
23
  attempt: number;
24
24
  retryAfterMs?: number;
25
25
  }) => void;
26
+ /**
27
+ * #332 — the endpoint THIS call should reach, from `ModelSelection.url`.
28
+ *
29
+ * It outranks the provider's base-URL env var deliberately. `OLLAMA_HOST` and friends are
30
+ * process-wide, so with the env var winning, whoever set it for one model would keep hijacking
31
+ * every other one — which is the bug this field exists to end, wearing a hat.
32
+ */
33
+ baseUrl?: string;
26
34
  }
27
35
  /**
28
36
  * Resolves the provider chain synchronously. Builtins are eagerly registered.
@@ -4,8 +4,19 @@
4
4
  * and yields a stream of `LlmEvent`s plus a final `LlmFinish` shape that
5
5
  * the agent loop converts into our `SDKMessage` events.
6
6
  *
7
- * @internal
7
+ * Semver-exempt: nothing here is declared in `package.json` `exports`. These types are nonetheless
8
+ * reachable from published declarations through the type graph, so they must be EMITTED.
9
+ *
10
+ * NOTE — no internal-visibility tag in this block. `tsconfig.base.json` sets `stripInternal: true`,
11
+ * and TypeScript scans EVERY leading comment range of the declaration that follows. The tag that
12
+ * used to sit here deleted `LlmTool` from the emitted `.d.ts` while `LlmRequest`, which names it,
13
+ * survived — a declaration that does not compile for any consumer running type-aware lint.
8
14
  */
15
+ export interface LlmTool {
16
+ name: string;
17
+ description: string;
18
+ inputSchema: Record<string, unknown>;
19
+ }
9
20
  export interface LlmTextPart {
10
21
  type: "text";
11
22
  text: string;
@@ -2,10 +2,8 @@
2
2
  * M77 — session-scoped MCP client pool.
3
3
  *
4
4
  * `buildMcpMap` (`real-local-run.ts`) builds a fresh `McpClient` on every run, so each `send` pays
5
- * spawn + handshake again: 193 / 138 / 134 ms per turn, measured. The reference anchors this at the
6
- * session Codex keeps its `mcp_runtime: Arc<McpRuntime>` in `SessionServices`
7
- * (`codex-rs/core/src/state/service.rs:51-58`), next to a field commented *"Session-scoped model
8
- * client shared across turns"*, and REPLACES the runtime rather than rebuilding it.
5
+ * spawn + handshake again: 193 / 138 / 134 ms per turn, measured. The runtime is therefore anchored at
6
+ * the session and REPLACED rather than rebuilt.
9
7
  *
10
8
  * theokit#155: pooling the client OBJECT was never enough — the turn also has to stop closing what
11
9
  * it does not own. See `runOwnsMcpClients` (`real-local-run.ts`) and the idempotent
@@ -1,8 +1,13 @@
1
1
  /**
2
2
  * Provider inference helpers for the real local run — extracted from
3
- * `real-local-run.ts` to keep it within the G8 LoC budget and give the two
4
- * pure "which provider?" heuristics one cohesive home.
3
+ * `real-local-run.ts` to keep it within the G8 LoC budget and give the
4
+ * "which provider?" heuristics one cohesive home.
5
+ *
6
+ * The precedence diagnostic joined them for the same two reasons: it answers the same question
7
+ * ("which provider, and was that what the caller asked for?"), and adding it inline pushed
8
+ * `real-local-run.ts` to 411 LoC against the 400 budget. The gate asked for a split and this is
9
+ * where the split already lives.
5
10
  *
6
11
  * @internal
7
12
  */
8
- export {};
13
+ export declare function warnProviderPrecedenceOnce(asked: string | undefined, used: string): void;
@@ -12,6 +12,14 @@
12
12
  */
13
13
  import type { AgentDefinition, AgentOptions, CustomTool, ModelSelection } from "../../types/agent.js";
14
14
  import type { CustomToolSpec } from "../agent-loop/loop-types.js";
15
+ /**
16
+ * Resolve the effective custom-tool catalog for this run.
17
+ *
18
+ * Precedence (matches the mcpServers semantics — "fully replaces, not merged"):
19
+ * - `sendOptions.tools === undefined` → fall back to `agentOptions.tools`
20
+ * - `sendOptions.tools = []` → explicitly clear (no custom tools)
21
+ * - `sendOptions.tools = [t1, ...]` → use exactly these for this run
22
+ */
15
23
  export declare function buildCustomToolsInput(agentOptions: AgentOptions, sendOptions: {
16
24
  tools?: CustomTool[];
17
25
  } | undefined, pluginManager: import("../plugins/manager.js").PluginManager | undefined, personalityToolWhitelist: ReadonlyArray<string> | undefined, agentId: string, personalityName: string | undefined, subagents: Record<string, AgentDefinition> | undefined, effectiveModel: ModelSelection | undefined): {
@@ -1 +1,19 @@
1
- export {};
1
+ /**
2
+ * OAuth 2.1 PKCE flow runner for MCP HTTP servers. See ADR D41.
3
+ *
4
+ * @internal
5
+ */
6
+ import type { McpOAuthConfig } from "../../types/mcp.js";
7
+ import { type OAuthTokens } from "./token-storage.js";
8
+ /**
9
+ * Refresh an access token using `refresh_token`. Throws on failure.
10
+ *
11
+ */
12
+ export declare function refreshAccessToken(serverName: string, clientId: string, refreshToken: string, oauth: McpOAuthConfig): Promise<OAuthTokens>;
13
+ /**
14
+ * Run the full PKCE flow. Generates verifier+challenge+state, opens the
15
+ * authorization URL (browser or manual print), waits for the callback
16
+ * (localhost or stdin), exchanges code for tokens.
17
+ *
18
+ */
19
+ export declare function runPkceFlow(serverName: string, clientId: string, scopes: string[] | undefined, oauth: McpOAuthConfig): Promise<OAuthTokens>;
@@ -1 +1,52 @@
1
- export {};
1
+ /**
2
+ * The OAuth tokens held for one MCP server. See ADR D41.
3
+ *
4
+ * Persisted per server name by `setTokens` and returned unchanged by `getTokens`. Where it lands
5
+ * depends on what is installed: `keytar` puts the serialized bundle in the OS keychain, and
6
+ * without it the bundle is written to a JSON file at mode 0600 inside a 0700 directory — in
7
+ * PLAINTEXT, keyed by server name alongside every other server's tokens. Nothing here encrypts it.
8
+ *
9
+ * `refreshToken` is the field that matters most and the field that is optional. When present it
10
+ * outlives `accessToken` and can mint new ones, so a leaked store is a persistent compromise of
11
+ * the account rather than a temporary one. When absent, an expired access token means re-running
12
+ * the authorization flow.
13
+ *
14
+ * `expiresAt` and `obtainedAt` are both epoch milliseconds and both describe the ACCESS token —
15
+ * when it stops working, and when this bundle was issued. Nothing records when the refresh token
16
+ * expires, so a refresh rejected because the grant itself lapsed is only discovered at the token
17
+ * endpoint.
18
+ *
19
+ * The value is not validated on read: whatever JSON was stored is cast to this shape, so a
20
+ * hand-edited or truncated store yields an object whose fields may be missing rather than an
21
+ * error.
22
+ *
23
+ * `scope` records what the token was granted, as the server returned it. It is stored for
24
+ * inspection; nothing in this module enforces it.
25
+ *
26
+ * @public — re-exported from `@theokit/sdk/mcp-auth`, and therefore under semver.
27
+ */
28
+ export interface OAuthTokens {
29
+ accessToken: string;
30
+ refreshToken?: string;
31
+ expiresAt: number;
32
+ scope?: string;
33
+ obtainedAt: number;
34
+ }
35
+ /**
36
+ * Persist tokens for `serverName`. Tries keychain first, falls back to file
37
+ * with chmod 600 (POSIX). Idempotent.
38
+ *
39
+ */
40
+ export declare function setTokens(serverName: string, tokens: OAuthTokens): Promise<void>;
41
+ /**
42
+ * Retrieve tokens for `serverName`. Returns undefined if absent.
43
+ *
44
+ */
45
+ export declare function getTokens(serverName: string): Promise<OAuthTokens | undefined>;
46
+ /**
47
+ * Serialize concurrent refresh attempts per server (EC-9). If a refresh is
48
+ * already in flight for the same `serverName`, the second caller awaits
49
+ * the same Promise.
50
+ *
51
+ */
52
+ export declare function lockedRefresh(serverName: string, refreshFn: () => Promise<OAuthTokens>): Promise<OAuthTokens>;