@theokit/sdk 4.53.1 → 4.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (694) hide show
  1. package/CHANGELOG.md +1184 -0
  2. package/README.md +9 -4
  3. package/dist/a2a/agent-mailbox.d.cts +27 -0
  4. package/dist/a2a/agent-mailbox.d.ts +27 -0
  5. package/dist/a2a/index.cjs +9 -4
  6. package/dist/a2a/index.cjs.map +1 -1
  7. package/dist/a2a/index.js +7 -2
  8. package/dist/a2a/index.js.map +1 -1
  9. package/dist/a2a/message-bus.d.cts +39 -0
  10. package/dist/a2a/message-bus.d.ts +39 -0
  11. package/dist/a2a/subagent.d.cts +68 -7
  12. package/dist/a2a/subagent.d.ts +68 -7
  13. package/dist/a2a/types.d.cts +26 -0
  14. package/dist/a2a/types.d.ts +26 -0
  15. package/dist/{agent-B9HXlwID.d.ts → agent-D3Xr_-6Z.d.cts} +245 -850
  16. package/dist/{agent-nLqeXKIX.d.cts → agent-DIu6FooJ.d.ts} +245 -850
  17. package/dist/agent-HDEVVUBS.js +52 -0
  18. package/dist/{agent-FFVV4U5N.js.map → agent-HDEVVUBS.js.map} +1 -1
  19. package/dist/agent-R2HOJFZJ.cjs +61 -0
  20. package/dist/{agent-YLAHVHEH.cjs.map → agent-R2HOJFZJ.cjs.map} +1 -1
  21. package/dist/agent-builder.d.ts +19 -0
  22. package/dist/agent-session-store-P6V3FINW.js +7 -0
  23. package/dist/{agent-session-store-TNCGL5RN.js.map → agent-session-store-P6V3FINW.js.map} +1 -1
  24. package/dist/agent-session-store-ZJ3JSRS4.cjs +24 -0
  25. package/dist/{agent-session-store-DUGBAX5V.cjs.map → agent-session-store-ZJ3JSRS4.cjs.map} +1 -1
  26. package/dist/agent.d.ts +9 -6
  27. package/dist/auth/index.cjs +52 -35
  28. package/dist/auth/index.cjs.map +1 -1
  29. package/dist/auth/index.js +26 -9
  30. package/dist/auth/index.js.map +1 -1
  31. package/dist/{batch-UPKN4SG6.js → batch-2TGJMNCJ.js} +14 -13
  32. package/dist/batch-2TGJMNCJ.js.map +1 -0
  33. package/dist/{batch-ZEFN5SO7.cjs → batch-ND32UKZS.cjs} +31 -30
  34. package/dist/batch-ND32UKZS.cjs.map +1 -0
  35. package/dist/{chunk-TTJ54H3E.cjs → chunk-2ADR2GSO.cjs} +8 -8
  36. package/dist/chunk-2ADR2GSO.cjs.map +1 -0
  37. package/dist/chunk-2BDH744Z.js +15 -0
  38. package/dist/chunk-2BDH744Z.js.map +1 -0
  39. package/dist/{chunk-VGPXHHF3.cjs → chunk-2C72DXQF.cjs} +63 -27
  40. package/dist/chunk-2C72DXQF.cjs.map +1 -0
  41. package/dist/{chunk-4Q4K4WB5.js → chunk-2D34UTDC.js} +20 -4
  42. package/dist/chunk-2D34UTDC.js.map +1 -0
  43. package/dist/{chunk-UFIXH26P.js → chunk-2QKTVKH3.js} +4 -4
  44. package/dist/{chunk-UFIXH26P.js.map → chunk-2QKTVKH3.js.map} +1 -1
  45. package/dist/{chunk-GBBDINFK.js → chunk-3E77SX4H.js} +4 -4
  46. package/dist/{chunk-GBBDINFK.js.map → chunk-3E77SX4H.js.map} +1 -1
  47. package/dist/{chunk-VYHJZVL5.cjs → chunk-3EE6LVWT.cjs} +2 -2
  48. package/dist/chunk-3EE6LVWT.cjs.map +1 -0
  49. package/dist/{chunk-5NBUH3NO.js → chunk-3OR54XG4.js} +2 -2
  50. package/dist/{chunk-C6Y6CWYD.cjs.map → chunk-3OR54XG4.js.map} +1 -1
  51. package/dist/{chunk-ZN2DGEY3.cjs → chunk-3YJNUKYN.cjs} +15 -15
  52. package/dist/{chunk-ZN2DGEY3.cjs.map → chunk-3YJNUKYN.cjs.map} +1 -1
  53. package/dist/{chunk-POWRZSK4.js → chunk-44JAAH4X.js} +3 -3
  54. package/dist/{chunk-POWRZSK4.js.map → chunk-44JAAH4X.js.map} +1 -1
  55. package/dist/{chunk-SSDD676S.js → chunk-44MBDIHG.js} +4 -4
  56. package/dist/{chunk-SSDD676S.js.map → chunk-44MBDIHG.js.map} +1 -1
  57. package/dist/{chunk-OY7O3Q6R.js → chunk-4ERPXIVB.js} +5 -5
  58. package/dist/{chunk-OY7O3Q6R.js.map → chunk-4ERPXIVB.js.map} +1 -1
  59. package/dist/{chunk-3BK6YR5P.cjs → chunk-4I55V454.cjs} +4 -4
  60. package/dist/{chunk-3BK6YR5P.cjs.map → chunk-4I55V454.cjs.map} +1 -1
  61. package/dist/{chunk-B4YA6BRS.cjs → chunk-4O5TGQBW.cjs} +30 -7
  62. package/dist/chunk-4O5TGQBW.cjs.map +1 -0
  63. package/dist/{chunk-4JBHSLQO.cjs → chunk-4OTIXDMU.cjs} +2 -2
  64. package/dist/{chunk-4JBHSLQO.cjs.map → chunk-4OTIXDMU.cjs.map} +1 -1
  65. package/dist/{chunk-C6Y6CWYD.cjs → chunk-52NKC5HT.cjs} +2 -2
  66. package/dist/chunk-52NKC5HT.cjs.map +1 -0
  67. package/dist/{chunk-665SFFFR.cjs → chunk-53CBTBWO.cjs} +11 -11
  68. package/dist/{chunk-665SFFFR.cjs.map → chunk-53CBTBWO.cjs.map} +1 -1
  69. package/dist/{chunk-FFM3SJTQ.js → chunk-5JLFFPCH.js} +4 -4
  70. package/dist/{chunk-FFM3SJTQ.js.map → chunk-5JLFFPCH.js.map} +1 -1
  71. package/dist/{chunk-34XOCZJO.js → chunk-5PHVENFV.js} +3 -3
  72. package/dist/chunk-5PHVENFV.js.map +1 -0
  73. package/dist/{chunk-BDTVFIPB.cjs → chunk-5UOVYM3P.cjs} +36 -31
  74. package/dist/chunk-5UOVYM3P.cjs.map +1 -0
  75. package/dist/{chunk-VF7X6HDR.cjs → chunk-5USCYPPI.cjs} +15 -15
  76. package/dist/{chunk-VF7X6HDR.cjs.map → chunk-5USCYPPI.cjs.map} +1 -1
  77. package/dist/chunk-6HTXPPHK.cjs +18 -0
  78. package/dist/chunk-6HTXPPHK.cjs.map +1 -0
  79. package/dist/{chunk-D24WJWN2.js → chunk-AEOZTXVW.js} +3 -3
  80. package/dist/{chunk-D24WJWN2.js.map → chunk-AEOZTXVW.js.map} +1 -1
  81. package/dist/{chunk-DGOG5NXR.js → chunk-AG5JPQIY.js} +3 -3
  82. package/dist/{chunk-DGOG5NXR.js.map → chunk-AG5JPQIY.js.map} +1 -1
  83. package/dist/{chunk-BFYGJGC5.js → chunk-AQLGBKNT.js} +3 -3
  84. package/dist/chunk-AQLGBKNT.js.map +1 -0
  85. package/dist/{chunk-7W7ZWMLQ.js → chunk-AWO27VRZ.js} +3 -3
  86. package/dist/chunk-AWO27VRZ.js.map +1 -0
  87. package/dist/{chunk-VYCKUKPA.cjs → chunk-B2J4ZMZL.cjs} +3 -2
  88. package/dist/chunk-B2J4ZMZL.cjs.map +1 -0
  89. package/dist/{chunk-BERBYXFH.js → chunk-BMAZLQQ4.js} +3 -3
  90. package/dist/{chunk-BERBYXFH.js.map → chunk-BMAZLQQ4.js.map} +1 -1
  91. package/dist/{chunk-5YKNEMXR.cjs → chunk-BVZW2B5V.cjs} +4 -4
  92. package/dist/chunk-BVZW2B5V.cjs.map +1 -0
  93. package/dist/{chunk-MSFLYJDY.js → chunk-CQ2TQ32Y.js} +4 -4
  94. package/dist/chunk-CQ2TQ32Y.js.map +1 -0
  95. package/dist/{chunk-C5DEO6OI.cjs → chunk-CQGYNZ3K.cjs} +4 -4
  96. package/dist/{chunk-C5DEO6OI.cjs.map → chunk-CQGYNZ3K.cjs.map} +1 -1
  97. package/dist/{chunk-D75S2X6I.cjs → chunk-CTCGWIUD.cjs} +5 -5
  98. package/dist/{chunk-D75S2X6I.cjs.map → chunk-CTCGWIUD.cjs.map} +1 -1
  99. package/dist/{chunk-NZL4BNFQ.js → chunk-CV7XMBHP.js} +4 -4
  100. package/dist/chunk-CV7XMBHP.js.map +1 -0
  101. package/dist/{chunk-SEL2ZQMT.js → chunk-DAPSQZT4.js} +15 -10
  102. package/dist/chunk-DAPSQZT4.js.map +1 -0
  103. package/dist/{chunk-SVO5WPZX.cjs → chunk-DQKERTND.cjs} +11 -11
  104. package/dist/{chunk-SVO5WPZX.cjs.map → chunk-DQKERTND.cjs.map} +1 -1
  105. package/dist/{chunk-N5CR3TJZ.js → chunk-DZBSJX6J.js} +4 -4
  106. package/dist/{chunk-N5CR3TJZ.js.map → chunk-DZBSJX6J.js.map} +1 -1
  107. package/dist/{chunk-RAHSWE5C.cjs → chunk-EI2Q7SJ5.cjs} +12 -12
  108. package/dist/chunk-EI2Q7SJ5.cjs.map +1 -0
  109. package/dist/{chunk-UCFONJBG.js → chunk-EPSICJLZ.js} +2 -2
  110. package/dist/{chunk-UCFONJBG.js.map → chunk-EPSICJLZ.js.map} +1 -1
  111. package/dist/{chunk-3X6PM7DU.cjs → chunk-F3YZMOAU.cjs} +8 -8
  112. package/dist/{chunk-3X6PM7DU.cjs.map → chunk-F3YZMOAU.cjs.map} +1 -1
  113. package/dist/{chunk-F77UENR6.cjs → chunk-F5WMX4EA.cjs} +586 -398
  114. package/dist/chunk-F5WMX4EA.cjs.map +1 -0
  115. package/dist/{chunk-HE4BIAOS.js → chunk-F7AQV62G.js} +5 -4
  116. package/dist/chunk-F7AQV62G.js.map +1 -0
  117. package/dist/{chunk-2RW7K6FN.cjs → chunk-GHX4P3V2.cjs} +2 -2
  118. package/dist/chunk-GHX4P3V2.cjs.map +1 -0
  119. package/dist/{chunk-B6HOIWQ6.js → chunk-GJ6RK75E.js} +5 -5
  120. package/dist/chunk-GJ6RK75E.js.map +1 -0
  121. package/dist/{chunk-FOXKFTVZ.cjs → chunk-GNT35C5U.cjs} +13 -13
  122. package/dist/chunk-GNT35C5U.cjs.map +1 -0
  123. package/dist/{chunk-4NAKHID5.js → chunk-GTKFV7O5.js} +2 -2
  124. package/dist/chunk-GTKFV7O5.js.map +1 -0
  125. package/dist/{chunk-ELKO4ZLR.cjs → chunk-GWC3HADL.cjs} +4 -4
  126. package/dist/{chunk-ELKO4ZLR.cjs.map → chunk-GWC3HADL.cjs.map} +1 -1
  127. package/dist/{chunk-OXNYIMZZ.js → chunk-H73MEMQB.js} +2 -2
  128. package/dist/chunk-H73MEMQB.js.map +1 -0
  129. package/dist/{chunk-E7FJOO4G.cjs → chunk-HJBMA5MB.cjs} +11 -11
  130. package/dist/{chunk-E7FJOO4G.cjs.map → chunk-HJBMA5MB.cjs.map} +1 -1
  131. package/dist/{chunk-2FYEVT2B.cjs → chunk-HLPSLDGL.cjs} +275 -160
  132. package/dist/chunk-HLPSLDGL.cjs.map +1 -0
  133. package/dist/{chunk-VW6M4B3Z.cjs → chunk-HY57ULY2.cjs} +5 -5
  134. package/dist/{chunk-VW6M4B3Z.cjs.map → chunk-HY57ULY2.cjs.map} +1 -1
  135. package/dist/{chunk-CAH3G4IS.js → chunk-HY66GLM6.js} +2 -2
  136. package/dist/chunk-HY66GLM6.js.map +1 -0
  137. package/dist/{chunk-G3JWXOGY.js → chunk-I5BE5M5L.js} +310 -122
  138. package/dist/chunk-I5BE5M5L.js.map +1 -0
  139. package/dist/{chunk-C4H6PB5J.cjs → chunk-I6TGFUCO.cjs} +4 -4
  140. package/dist/{chunk-C4H6PB5J.cjs.map → chunk-I6TGFUCO.cjs.map} +1 -1
  141. package/dist/{chunk-U4UJHOSH.js → chunk-IDCKSLYH.js} +3 -3
  142. package/dist/{chunk-U4UJHOSH.js.map → chunk-IDCKSLYH.js.map} +1 -1
  143. package/dist/{chunk-WQ53UQL4.cjs → chunk-ILCGLTSA.cjs} +4 -4
  144. package/dist/{chunk-WQ53UQL4.cjs.map → chunk-ILCGLTSA.cjs.map} +1 -1
  145. package/dist/{chunk-QBTVATSF.cjs → chunk-ITSSOVOB.cjs} +44 -47
  146. package/dist/chunk-ITSSOVOB.cjs.map +1 -0
  147. package/dist/{chunk-V6HWJQQV.js → chunk-IVNNSANC.js} +27 -30
  148. package/dist/chunk-IVNNSANC.js.map +1 -0
  149. package/dist/{chunk-SZHU7A5B.cjs → chunk-IWBGCBR6.cjs} +4 -4
  150. package/dist/{chunk-SZHU7A5B.cjs.map → chunk-IWBGCBR6.cjs.map} +1 -1
  151. package/dist/{chunk-Q4RESANI.cjs → chunk-J24VJOH3.cjs} +20 -4
  152. package/dist/chunk-J24VJOH3.cjs.map +1 -0
  153. package/dist/{chunk-Y4AXQOT4.cjs → chunk-JHPGF3FP.cjs} +8 -8
  154. package/dist/{chunk-Y4AXQOT4.cjs.map → chunk-JHPGF3FP.cjs.map} +1 -1
  155. package/dist/{chunk-BM6N4KHO.cjs → chunk-JTB5Q42C.cjs} +6 -22
  156. package/dist/chunk-JTB5Q42C.cjs.map +1 -0
  157. package/dist/{chunk-LPVIRJVF.cjs → chunk-K3FW2XZD.cjs} +9 -9
  158. package/dist/{chunk-LPVIRJVF.cjs.map → chunk-K3FW2XZD.cjs.map} +1 -1
  159. package/dist/{chunk-LS3LMQ23.js → chunk-MVAPK2BX.js} +162 -49
  160. package/dist/chunk-MVAPK2BX.js.map +1 -0
  161. package/dist/{chunk-XPR366DL.cjs → chunk-NGESVVJN.cjs} +17 -17
  162. package/dist/chunk-NGESVVJN.cjs.map +1 -0
  163. package/dist/{chunk-VUKQL3L2.cjs → chunk-NIRE5CNO.cjs} +20 -13
  164. package/dist/chunk-NIRE5CNO.cjs.map +1 -0
  165. package/dist/{chunk-VC5ABJXC.js → chunk-NLTVXLGT.js} +3 -3
  166. package/dist/{chunk-VC5ABJXC.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-R5YZACGK.js → chunk-OC4NTGMN.js} +3 -3
  170. package/dist/{chunk-R5YZACGK.js.map → chunk-OC4NTGMN.js.map} +1 -1
  171. package/dist/{chunk-GOVJO4YE.js → chunk-OHBIUXKM.js} +6 -6
  172. package/dist/chunk-OHBIUXKM.js.map +1 -0
  173. package/dist/{chunk-FPYT5WZP.cjs → chunk-P6A3M6VD.cjs} +10 -10
  174. package/dist/{chunk-FPYT5WZP.cjs.map → chunk-P6A3M6VD.cjs.map} +1 -1
  175. package/dist/{chunk-OKLYRPKL.cjs → chunk-Q47R5E2X.cjs} +8 -8
  176. package/dist/chunk-Q47R5E2X.cjs.map +1 -0
  177. package/dist/{chunk-HSQ5Q3I5.js → chunk-Q4CMI2LP.js} +12 -5
  178. package/dist/chunk-Q4CMI2LP.js.map +1 -0
  179. package/dist/{chunk-2XLKLVVR.js → chunk-Q5EWJPRY.js} +2 -2
  180. package/dist/chunk-Q5EWJPRY.js.map +1 -0
  181. package/dist/{chunk-SK4QLUBK.js → chunk-QARJGQSA.js} +16 -7
  182. package/dist/chunk-QARJGQSA.js.map +1 -0
  183. package/dist/{chunk-CZ2GKKYL.cjs → chunk-QDED6YO6.cjs} +5 -5
  184. package/dist/{chunk-CZ2GKKYL.cjs.map → chunk-QDED6YO6.cjs.map} +1 -1
  185. package/dist/{chunk-VK7MAV65.cjs → chunk-QKLOP4VC.cjs} +2 -2
  186. package/dist/{chunk-VK7MAV65.cjs.map → chunk-QKLOP4VC.cjs.map} +1 -1
  187. package/dist/{chunk-FIOCJYLA.js → chunk-QRSUA2CV.js} +3 -3
  188. package/dist/{chunk-FIOCJYLA.js.map → chunk-QRSUA2CV.js.map} +1 -1
  189. package/dist/{chunk-ZT57WTUJ.cjs → chunk-R3UPQFKK.cjs} +21 -12
  190. package/dist/chunk-R3UPQFKK.cjs.map +1 -0
  191. package/dist/{chunk-X2FR4OIT.js → chunk-R7WIIPUR.js} +2 -2
  192. package/dist/chunk-R7WIIPUR.js.map +1 -0
  193. package/dist/{chunk-RP5HQVLD.js → chunk-RNB4APBZ.js} +30 -7
  194. package/dist/chunk-RNB4APBZ.js.map +1 -0
  195. package/dist/{chunk-GD63JPGC.cjs → chunk-ROYPRJH4.cjs} +9 -9
  196. package/dist/{chunk-GD63JPGC.cjs.map → chunk-ROYPRJH4.cjs.map} +1 -1
  197. package/dist/{chunk-V26QVGUG.js → chunk-RUDY2GTT.js} +59 -23
  198. package/dist/chunk-RUDY2GTT.js.map +1 -0
  199. package/dist/{chunk-JIQRXKTA.cjs → chunk-SKXBJ2NU.cjs} +7 -7
  200. package/dist/chunk-SKXBJ2NU.cjs.map +1 -0
  201. package/dist/{chunk-XROIW6BH.js → chunk-SUKXXLWD.js} +6 -6
  202. package/dist/chunk-SUKXXLWD.js.map +1 -0
  203. package/dist/{chunk-LTSTGCL6.js → chunk-T73NA43R.js} +3 -3
  204. package/dist/{chunk-LTSTGCL6.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-5F5NWKPN.js → chunk-T7XEKOVW.js} +5 -20
  208. package/dist/chunk-T7XEKOVW.js.map +1 -0
  209. package/dist/{chunk-HAWE74GQ.cjs → chunk-U2AC6JUP.cjs} +8 -8
  210. package/dist/chunk-U2AC6JUP.cjs.map +1 -0
  211. package/dist/{chunk-3WVMJY7F.js → chunk-UC3HT2S4.js} +3 -3
  212. package/dist/{chunk-3WVMJY7F.js.map → chunk-UC3HT2S4.js.map} +1 -1
  213. package/dist/{chunk-PBZ7HMBP.js → chunk-UPRJR6IP.js} +4 -4
  214. package/dist/chunk-UPRJR6IP.js.map +1 -0
  215. package/dist/{chunk-3V7UJLQT.js → chunk-UQGQFBRL.js} +3 -3
  216. package/dist/chunk-UQGQFBRL.js.map +1 -0
  217. package/dist/{chunk-2D43RD5D.cjs → chunk-V2UUGUY4.cjs} +27 -27
  218. package/dist/chunk-V2UUGUY4.cjs.map +1 -0
  219. package/dist/{chunk-6AZDM6LK.js → chunk-VF7EWVDG.js} +3 -3
  220. package/dist/{chunk-6AZDM6LK.js.map → chunk-VF7EWVDG.js.map} +1 -1
  221. package/dist/{chunk-PNVDQL5Y.cjs → chunk-VTYY7XL5.cjs} +2 -2
  222. package/dist/chunk-VTYY7XL5.cjs.map +1 -0
  223. package/dist/{chunk-Y4I4EQFK.js → chunk-WKRSH2VR.js} +3 -3
  224. package/dist/{chunk-Y4I4EQFK.js.map → chunk-WKRSH2VR.js.map} +1 -1
  225. package/dist/{chunk-4QEC4CCS.js → chunk-WTMU7J4U.js} +2 -2
  226. package/dist/{chunk-4QEC4CCS.js.map → chunk-WTMU7J4U.js.map} +1 -1
  227. package/dist/{chunk-KSWHTR54.js → chunk-XN7NOENA.js} +6 -6
  228. package/dist/chunk-XN7NOENA.js.map +1 -0
  229. package/dist/{chunk-ADLLFY3H.cjs → chunk-XSX2UU6Y.cjs} +10 -9
  230. package/dist/chunk-XSX2UU6Y.cjs.map +1 -0
  231. package/dist/{chunk-LD4MOBFX.js → chunk-XV4IZNV4.js} +9 -9
  232. package/dist/chunk-XV4IZNV4.js.map +1 -0
  233. package/dist/{chunk-EZ2YEF4F.cjs → chunk-XWL6O3SW.cjs} +4 -4
  234. package/dist/chunk-XWL6O3SW.cjs.map +1 -0
  235. package/dist/{chunk-PGP7IOJ2.js → chunk-YMA4S2WO.js} +4 -4
  236. package/dist/{chunk-PGP7IOJ2.js.map → chunk-YMA4S2WO.js.map} +1 -1
  237. package/dist/{chunk-OUOXM36O.cjs → chunk-YPJ5NH5N.cjs} +11 -11
  238. package/dist/chunk-YPJ5NH5N.cjs.map +1 -0
  239. package/dist/{chunk-YLQQX5W2.cjs → chunk-ZF2LDKQQ.cjs} +2 -2
  240. package/dist/chunk-ZF2LDKQQ.cjs.map +1 -0
  241. package/dist/{chunk-L5YO6PWL.cjs → chunk-ZNW6V4Y6.cjs} +2 -2
  242. package/dist/chunk-ZNW6V4Y6.cjs.map +1 -0
  243. package/dist/client/index.cjs.map +1 -1
  244. package/dist/client/index.js.map +1 -1
  245. package/dist/client/theokit-client.d.cts +36 -0
  246. package/dist/client/theokit-client.d.ts +36 -0
  247. package/dist/client/types.d.cts +30 -0
  248. package/dist/client/types.d.ts +30 -0
  249. package/dist/compact-session-FUJDVF7B.js +22 -0
  250. package/dist/{compact-session-4MNKNMO2.js.map → compact-session-FUJDVF7B.js.map} +1 -1
  251. package/dist/compact-session-LEWF554G.cjs +59 -0
  252. package/dist/{compact-session-EPFBQ46Z.cjs.map → compact-session-LEWF554G.cjs.map} +1 -1
  253. package/dist/compaction.cjs +17 -16
  254. package/dist/compaction.d.cts +13 -13
  255. package/dist/compaction.d.ts +13 -13
  256. package/dist/compaction.js +4 -3
  257. package/dist/concurrency.cjs +7 -6
  258. package/dist/concurrency.cjs.map +1 -1
  259. package/dist/concurrency.js +5 -4
  260. package/dist/concurrency.js.map +1 -1
  261. package/dist/context/index.cjs +7 -7
  262. package/dist/context/index.js +3 -3
  263. package/dist/context-FDOON2DB.js +6 -0
  264. package/dist/{context-ENXZNF6J.js.map → context-FDOON2DB.js.map} +1 -1
  265. package/dist/context-VMIE4BMD.cjs +23 -0
  266. package/dist/{context-7USNN6LP.cjs.map → context-VMIE4BMD.cjs.map} +1 -1
  267. package/dist/cron-BcWmzWzT.d.cts +240 -0
  268. package/dist/cron-De6hzWCF.d.ts +240 -0
  269. package/dist/cron.cjs +43 -41
  270. package/dist/cron.d.cts +5 -3
  271. package/dist/cron.d.ts +5 -3
  272. package/dist/cron.js +42 -40
  273. package/dist/define-tool.d.ts +14 -6
  274. package/dist/{errors-BSoXcl3F.d.cts → errors-BgJH9PHi.d.cts} +39 -24
  275. package/dist/{errors-CHllybaU.d.ts → errors-C5fJUqLk.d.ts} +39 -24
  276. package/dist/errors.cjs +22 -21
  277. package/dist/errors.d.cts +2 -2
  278. package/dist/errors.d.ts +2 -2
  279. package/dist/errors.js +3 -2
  280. package/dist/eval.cjs +61 -58
  281. package/dist/eval.cjs.map +1 -1
  282. package/dist/eval.d.cts +38 -0
  283. package/dist/eval.d.ts +38 -0
  284. package/dist/eval.js +51 -48
  285. package/dist/eval.js.map +1 -1
  286. package/dist/event-bus.d.ts +16 -0
  287. package/dist/{executor-2Z6XJJJG.js → executor-BMEHFOXZ.js} +8 -7
  288. package/dist/executor-BMEHFOXZ.js.map +1 -0
  289. package/dist/{executor-2Z3LGG3I.cjs → executor-ZERJ3DGN.cjs} +25 -24
  290. package/dist/executor-ZERJ3DGN.cjs.map +1 -0
  291. package/dist/filesystem/index.cjs +8 -7
  292. package/dist/filesystem/index.cjs.map +1 -1
  293. package/dist/filesystem/index.js +4 -3
  294. package/dist/filesystem/index.js.map +1 -1
  295. package/dist/filesystem/local-filesystem.d.cts +18 -0
  296. package/dist/filesystem/local-filesystem.d.ts +18 -0
  297. package/dist/filesystem/types.d.cts +12 -0
  298. package/dist/filesystem/types.d.ts +12 -0
  299. package/dist/fs-session-store-3MOJQGP2.cjs +20 -0
  300. package/dist/{fs-session-store-VVY2AHWG.cjs.map → fs-session-store-3MOJQGP2.cjs.map} +1 -1
  301. package/dist/fs-session-store-IN7JTTXD.js +11 -0
  302. package/dist/{fs-session-store-R5FD3EN6.js.map → fs-session-store-IN7JTTXD.js.map} +1 -1
  303. package/dist/generate-object-N5MDZUJI.js +8 -0
  304. package/dist/{generate-object-WQRCXFD2.js.map → generate-object-N5MDZUJI.js.map} +1 -1
  305. package/dist/generate-object-PGSP5U7N.cjs +21 -0
  306. package/dist/{generate-object-AVXOJK2I.cjs.map → generate-object-PGSP5U7N.cjs.map} +1 -1
  307. package/dist/generate-object.d.ts +20 -0
  308. package/dist/index-manager-NG5YENWO.cjs +22 -0
  309. package/dist/{index-manager-VRU3A2YL.cjs.map → index-manager-NG5YENWO.cjs.map} +1 -1
  310. package/dist/index-manager-ZMRJ6ZII.js +13 -0
  311. package/dist/{index-manager-WS7TVKUW.js.map → index-manager-ZMRJ6ZII.js.map} +1 -1
  312. package/dist/index.cjs +169 -155
  313. package/dist/index.cjs.map +1 -1
  314. package/dist/index.d.cts +702 -54
  315. package/dist/index.d.ts +702 -54
  316. package/dist/index.js +61 -58
  317. package/dist/index.js.map +1 -1
  318. package/dist/{inject-session-GMBMJVNZ.js → inject-session-BJMJH5BX.js} +9 -8
  319. package/dist/inject-session-BJMJH5BX.js.map +1 -0
  320. package/dist/inject-session-WQGGMCQY.cjs +29 -0
  321. package/dist/inject-session-WQGGMCQY.cjs.map +1 -0
  322. package/dist/internal/auth/auth-types.d.ts +83 -1
  323. package/dist/internal/auth/credential-store.d.ts +34 -6
  324. package/dist/internal/auth/oauth-device.d.ts +0 -1
  325. package/dist/internal/auth/resolve-credential.d.ts +40 -0
  326. package/dist/internal/budget/tracker/budget.d.ts +12 -14
  327. package/dist/internal/budget/usage-accumulator.d.ts +15 -0
  328. package/dist/internal/llm/anthropic-shared.d.ts +8 -4
  329. package/dist/internal/llm/model-identifier.d.ts +26 -0
  330. package/dist/internal/llm/openai.d.ts +8 -0
  331. package/dist/internal/llm/prompt-cache-key.d.ts +1 -0
  332. package/dist/internal/llm/responses.d.ts +67 -1
  333. package/dist/internal/llm/router.d.ts +8 -0
  334. package/dist/internal/llm/types.d.ts +27 -1
  335. package/dist/internal/local-agent/real-local-run-provider.d.ts +8 -3
  336. package/dist/internal/local-agent/real-local-run-tools.d.ts +23 -4
  337. package/dist/internal/mcp/oauth.d.ts +5 -0
  338. package/dist/internal/mcp/token-storage.d.ts +34 -0
  339. package/dist/internal/memory/adapters/index.cjs +12 -11
  340. package/dist/internal/memory/adapters/index.d.cts +3 -1
  341. package/dist/internal/memory/adapters/index.d.ts +3 -1
  342. package/dist/internal/memory/adapters/index.js +9 -8
  343. package/dist/internal/memory/adapters/openai-compatible.d.cts +45 -0
  344. package/dist/internal/memory/adapters/openai-compatible.d.ts +45 -0
  345. package/dist/internal/memory/embedding-cache.d.ts +42 -1
  346. package/dist/internal/memory/escape-like-pattern.d.ts +22 -0
  347. package/dist/internal/memory/sqlite-vec-loader.d.ts +1 -3
  348. package/dist/internal/memory/storage/markdown-store.d.ts +0 -5
  349. package/dist/internal/persistence/cwd-mutex.d.cts +34 -0
  350. package/dist/internal/persistence/cwd-mutex.d.ts +34 -0
  351. package/dist/internal/persistence/exclusive-create.d.cts +31 -0
  352. package/dist/internal/persistence/exclusive-create.d.ts +31 -0
  353. package/dist/internal/persistence/file-lock.d.cts +28 -0
  354. package/dist/internal/persistence/file-lock.d.ts +28 -0
  355. package/dist/internal/persistence/fs-session-store.d.cts +3 -0
  356. package/dist/internal/persistence/fs-session-store.d.ts +3 -0
  357. package/dist/internal/persistence/fts5-sanitize.d.cts +20 -0
  358. package/dist/internal/persistence/fts5-sanitize.d.ts +20 -0
  359. package/dist/internal/persistence/index.cjs +40 -39
  360. package/dist/internal/persistence/index.cjs.map +1 -1
  361. package/dist/internal/persistence/index.d.cts +6 -1
  362. package/dist/internal/persistence/index.d.ts +6 -1
  363. package/dist/internal/persistence/index.js +9 -8
  364. package/dist/internal/persistence/index.js.map +1 -1
  365. package/dist/internal/persistence/paths.d.cts +54 -1
  366. package/dist/internal/persistence/paths.d.ts +54 -1
  367. package/dist/internal/persistence/persistence-schema.d.cts +9 -1
  368. package/dist/internal/persistence/persistence-schema.d.ts +9 -1
  369. package/dist/internal/persistence/schema-version.d.cts +215 -1
  370. package/dist/internal/persistence/schema-version.d.ts +215 -1
  371. package/dist/internal/persistence/session-writer.d.cts +7 -7
  372. package/dist/internal/persistence/session-writer.d.ts +7 -7
  373. package/dist/internal/persistence/sqlite-cas.d.cts +37 -1
  374. package/dist/internal/persistence/sqlite-cas.d.ts +37 -1
  375. package/dist/internal/persistence/sqlite-open.d.cts +14 -0
  376. package/dist/internal/persistence/sqlite-open.d.ts +14 -0
  377. package/dist/internal/persistence/sqlite-wal.d.cts +45 -0
  378. package/dist/internal/persistence/sqlite-wal.d.ts +45 -0
  379. package/dist/internal/persistence/transcript-ops.d.cts +7 -1
  380. package/dist/internal/persistence/transcript-ops.d.ts +7 -1
  381. package/dist/internal/plugins/types.d.cts +1 -1
  382. package/dist/internal/plugins/types.d.ts +1 -1
  383. package/dist/internal/providers/builtin/openai-chatgpt.d.ts +12 -0
  384. package/dist/internal/providers/catalog-loader.d.ts +8 -0
  385. package/dist/internal/providers/catalog-schema.d.ts +55 -0
  386. package/dist/internal/providers/catalog-source-models-dev.d.ts +36 -0
  387. package/dist/internal/runtime/concurrency/delegation-depth.d.ts +27 -0
  388. package/dist/internal/runtime/concurrency/subagent-credentials.d.ts +33 -1
  389. package/dist/internal/runtime/context/context-discovery-runner.d.ts +44 -0
  390. package/dist/internal/runtime/context/context-discovery.d.ts +58 -0
  391. package/dist/internal/runtime/context/context-rules-frontmatter.d.ts +70 -1
  392. package/dist/internal/runtime/fixtures/fixture-mode.d.ts +15 -1
  393. package/dist/internal/runtime/lifecycle/post-run-lifecycle.d.ts +15 -0
  394. package/dist/internal/runtime/registry/agent-registry-store.d.ts +12 -0
  395. package/dist/internal/runtime/registry/live-agent-registry.d.ts +37 -0
  396. package/dist/internal/scorers/llm-judge.d.ts +6 -1
  397. package/dist/internal/security/index.cjs +14 -13
  398. package/dist/internal/security/index.d.cts +4 -1
  399. package/dist/internal/security/index.d.ts +4 -1
  400. package/dist/internal/security/index.js +4 -3
  401. package/dist/internal/security/path-guard.d.cts +46 -0
  402. package/dist/internal/security/path-guard.d.ts +46 -0
  403. package/dist/internal/security/redact.d.cts +71 -0
  404. package/dist/internal/security/redact.d.ts +71 -0
  405. package/dist/internal/session/agent-session.d.ts +15 -4
  406. package/dist/internal/session/session-cache.d.ts +5 -0
  407. package/dist/internal/task/store.d.ts +91 -5
  408. package/dist/internal/telemetry/span-names.d.ts +0 -1
  409. package/dist/internal/telemetry/tracer.d.ts +14 -0
  410. package/dist/job-queue.d.ts +18 -0
  411. package/dist/judge-call-DWHAJATE.js +6 -0
  412. package/dist/{judge-call-MDIPTBJI.js.map → judge-call-DWHAJATE.js.map} +1 -1
  413. package/dist/judge-call-EGYRC2RE.cjs +23 -0
  414. package/dist/{judge-call-G5SGV2M2.cjs.map → judge-call-EGYRC2RE.cjs.map} +1 -1
  415. package/dist/mcp-auth.cjs +41 -25
  416. package/dist/mcp-auth.cjs.map +1 -1
  417. package/dist/mcp-auth.js +34 -18
  418. package/dist/mcp-auth.js.map +1 -1
  419. package/dist/models.cjs +42 -27
  420. package/dist/models.cjs.map +1 -1
  421. package/dist/models.js +25 -10
  422. package/dist/models.js.map +1 -1
  423. package/dist/oauth-transaction-store-BT4GLTLK.cjs +36 -0
  424. package/dist/{oauth-transaction-store-7CKHPQRN.cjs.map → oauth-transaction-store-BT4GLTLK.cjs.map} +1 -1
  425. package/dist/oauth-transaction-store-W52KVHQ4.js +3 -0
  426. package/dist/{oauth-transaction-store-W74I6EFD.js.map → oauth-transaction-store-W52KVHQ4.js.map} +1 -1
  427. package/dist/path-safety.cjs +11 -10
  428. package/dist/path-safety.js +4 -3
  429. package/dist/permission-engine.d.ts +55 -0
  430. package/dist/persistence.cjs +43 -42
  431. package/dist/persistence.cjs.map +1 -1
  432. package/dist/persistence.js +13 -12
  433. package/dist/persistence.js.map +1 -1
  434. package/dist/project.cjs +9 -8
  435. package/dist/project.cjs.map +1 -1
  436. package/dist/project.js +5 -4
  437. package/dist/project.js.map +1 -1
  438. package/dist/providers.cjs +23 -0
  439. package/dist/providers.cjs.map +1 -0
  440. package/dist/providers.d.cts +29 -0
  441. package/dist/providers.d.ts +29 -0
  442. package/dist/providers.js +10 -0
  443. package/dist/providers.js.map +1 -0
  444. package/dist/registry-VFKX7WOP.cjs +47 -0
  445. package/dist/{registry-63ASMXT4.cjs.map → registry-VFKX7WOP.cjs.map} +1 -1
  446. package/dist/registry-VFP3WWQP.js +10 -0
  447. package/dist/{registry-O7FJ2MPM.js.map → registry-VFP3WWQP.js.map} +1 -1
  448. package/dist/retry.cjs +5 -4
  449. package/dist/retry.js +4 -3
  450. package/dist/{run-C8FBAC8o.d.cts → run-BYSHf58D.d.cts} +185 -33
  451. package/dist/{run-C8FBAC8o.d.ts → run-BYSHf58D.d.ts} +185 -33
  452. package/dist/{run-to-completion-JDPIUKSH.js → run-to-completion-DRO77625.js} +3 -3
  453. package/dist/{run-to-completion-JDPIUKSH.js.map → run-to-completion-DRO77625.js.map} +1 -1
  454. package/dist/{run-to-completion-J73I6IY4.cjs → run-to-completion-X4OWM673.cjs} +13 -13
  455. package/dist/{run-to-completion-J73I6IY4.cjs.map → run-to-completion-X4OWM673.cjs.map} +1 -1
  456. package/dist/sandbox/bwrap.d.cts +27 -13
  457. package/dist/sandbox/bwrap.d.ts +27 -13
  458. package/dist/sandbox/index.cjs +20 -19
  459. package/dist/sandbox/index.cjs.map +1 -1
  460. package/dist/sandbox/index.js +5 -4
  461. package/dist/sandbox/index.js.map +1 -1
  462. package/dist/sandbox/linux-sandbox.d.cts +72 -0
  463. package/dist/sandbox/linux-sandbox.d.ts +72 -0
  464. package/dist/sandbox/local-sandbox.d.cts +41 -0
  465. package/dist/sandbox/local-sandbox.d.ts +41 -0
  466. package/dist/sandbox/seccomp.d.cts +6 -0
  467. package/dist/sandbox/seccomp.d.ts +6 -0
  468. package/dist/sandbox/types.d.cts +64 -0
  469. package/dist/sandbox/types.d.ts +64 -0
  470. package/dist/scorers.d.ts +38 -7
  471. package/dist/sdk-agent-D8qJVkuV.d.ts +860 -0
  472. package/dist/sdk-agent-DEoKhA8a.d.cts +860 -0
  473. package/dist/server/auth/errors.d.cts +1 -1
  474. package/dist/server/auth/errors.d.ts +1 -1
  475. package/dist/server/auth/index.cjs +29 -21
  476. package/dist/server/auth/index.cjs.map +1 -1
  477. package/dist/server/auth/index.d.cts +25 -15
  478. package/dist/server/auth/index.d.ts +25 -15
  479. package/dist/server/auth/index.js +15 -7
  480. package/dist/server/auth/index.js.map +1 -1
  481. package/dist/server/auth/oauth-transaction-store.d.cts +13 -1
  482. package/dist/server/auth/oauth-transaction-store.d.ts +13 -1
  483. package/dist/server/auth/orchestrator.d.cts +1 -1
  484. package/dist/server/auth/orchestrator.d.ts +1 -1
  485. package/dist/server/auth/types.d.cts +1 -1
  486. package/dist/server/auth/types.d.ts +1 -1
  487. package/dist/server/auth/validate-return-to.d.cts +21 -11
  488. package/dist/server/auth/validate-return-to.d.ts +21 -11
  489. package/dist/server/errors-envelope.cjs +15 -14
  490. package/dist/server/errors-envelope.cjs.map +1 -1
  491. package/dist/server/errors-envelope.d.cts +4 -4
  492. package/dist/server/errors-envelope.d.ts +4 -4
  493. package/dist/server/errors-envelope.js +4 -3
  494. package/dist/server/errors-envelope.js.map +1 -1
  495. package/dist/session-transcript-AKDYYGXQ.js +6 -0
  496. package/dist/{session-transcript-RAKEK76V.js.map → session-transcript-AKDYYGXQ.js.map} +1 -1
  497. package/dist/session-transcript-JXHFTB7G.cjs +51 -0
  498. package/dist/{session-transcript-DOM3UTXR.cjs.map → session-transcript-JXHFTB7G.cjs.map} +1 -1
  499. package/dist/skills.cjs +8 -7
  500. package/dist/skills.js +6 -5
  501. package/dist/stream-object-BUCF5PHO.cjs +21 -0
  502. package/dist/{stream-object-L3Q7PBMF.cjs.map → stream-object-BUCF5PHO.cjs.map} +1 -1
  503. package/dist/stream-object-L57K4OFS.js +8 -0
  504. package/dist/{stream-object-ZYXWS4B2.js.map → stream-object-L57K4OFS.js.map} +1 -1
  505. package/dist/{stream-to-completion-DFJ5T3BK.js → stream-to-completion-QV5HCL3J.js} +3 -3
  506. package/dist/{stream-to-completion-DFJ5T3BK.js.map → stream-to-completion-QV5HCL3J.js.map} +1 -1
  507. package/dist/{stream-to-completion-H2MHISSK.cjs → stream-to-completion-SRISU5AB.cjs} +10 -10
  508. package/dist/{stream-to-completion-H2MHISSK.cjs.map → stream-to-completion-SRISU5AB.cjs.map} +1 -1
  509. package/dist/subagents-loader-AZIXJ7D3.cjs +16 -0
  510. package/dist/{subagents-loader-VRW73QQT.cjs.map → subagents-loader-AZIXJ7D3.cjs.map} +1 -1
  511. package/dist/subagents-loader-J54ESLDV.js +7 -0
  512. package/dist/{subagents-loader-I56GSKAQ.js.map → subagents-loader-J54ESLDV.js.map} +1 -1
  513. package/dist/subagents-loader.cjs +7 -6
  514. package/dist/subagents-loader.cjs.map +1 -1
  515. package/dist/subagents-loader.d.cts +3 -2
  516. package/dist/subagents-loader.d.ts +3 -2
  517. package/dist/subagents-loader.js +5 -4
  518. package/dist/subagents-loader.js.map +1 -1
  519. package/dist/subscription/define-subscription.d.cts +1 -1
  520. package/dist/subscription/define-subscription.d.ts +1 -1
  521. package/dist/subscription/index.cjs +22 -9
  522. package/dist/subscription/index.cjs.map +1 -1
  523. package/dist/subscription/index.d.cts +1 -1
  524. package/dist/subscription/index.d.ts +1 -1
  525. package/dist/subscription/index.js +21 -8
  526. package/dist/subscription/index.js.map +1 -1
  527. package/dist/subscription/internal/adapter-types.d.cts +1 -1
  528. package/dist/subscription/internal/adapter-types.d.ts +1 -1
  529. package/dist/subscription/internal/server-integration.d.cts +1 -1
  530. package/dist/subscription/internal/server-integration.d.ts +1 -1
  531. package/dist/subscription/internal/sse-encoder.d.cts +1 -1
  532. package/dist/subscription/internal/sse-encoder.d.ts +1 -1
  533. package/dist/subscription/internal/sse-parser.d.cts +1 -1
  534. package/dist/subscription/internal/sse-parser.d.ts +1 -1
  535. package/dist/subscription/internal/subscription-runtime.d.cts +1 -1
  536. package/dist/subscription/internal/subscription-runtime.d.ts +1 -1
  537. package/dist/subscription/internal/ws-adapter-node.d.cts +1 -1
  538. package/dist/subscription/internal/ws-adapter-node.d.ts +1 -1
  539. package/dist/subscription/theokit-subscribe.d.cts +14 -1
  540. package/dist/subscription/theokit-subscribe.d.ts +14 -1
  541. package/dist/subscription/types.d.cts +19 -1
  542. package/dist/subscription/types.d.ts +19 -1
  543. package/dist/task-store.cjs +8 -7
  544. package/dist/task-store.js +5 -4
  545. package/dist/types/agent-prims.d.ts +14 -0
  546. package/dist/types/agent.d.ts +92 -11
  547. package/dist/types/batch.d.ts +7 -1
  548. package/dist/types/conversation.d.ts +18 -5
  549. package/dist/types/goal-events.d.ts +4 -8
  550. package/dist/types/memory-adapter.d.ts +12 -1
  551. package/dist/types/plugin.d.ts +101 -0
  552. package/dist/types/provider-profile.d.ts +32 -0
  553. package/dist/types/run-events.d.ts +28 -1
  554. package/dist/types/run.d.ts +35 -23
  555. package/dist/types/sdk-agent.d.ts +14 -0
  556. package/dist/types/session-record.d.ts +18 -1
  557. package/dist/types/task.d.ts +15 -1
  558. package/dist/types/theokit.d.ts +10 -1
  559. package/dist/types/updates.d.ts +35 -4
  560. package/dist/types/workflow.d.ts +155 -0
  561. package/dist/workflow.cjs +29 -28
  562. package/dist/workflow.d.cts +666 -17
  563. package/dist/workflow.d.ts +666 -17
  564. package/dist/workflow.js +8 -7
  565. package/docs/error-codes.md +215 -0
  566. package/docs/harness-capability-map.md +1358 -0
  567. package/package.json +29 -16
  568. package/bin/init-claude.mjs +0 -68
  569. package/claude-template/AGENTS.md +0 -157
  570. package/claude-template/CLAUDE.md +0 -66
  571. package/claude-template/dot-claude/rules/theokit-conventions.md +0 -32
  572. package/claude-template/dot-claude/settings.json +0 -16
  573. package/claude-template/dot-claude/skills/theokit-agent-core/SKILL.md +0 -209
  574. package/claude-template/dot-claude/skills/theokit-auth/SKILL.md +0 -102
  575. package/claude-template/dot-claude/skills/theokit-budget/SKILL.md +0 -176
  576. package/claude-template/dot-claude/skills/theokit-client/SKILL.md +0 -58
  577. package/claude-template/dot-claude/skills/theokit-compaction/SKILL.md +0 -102
  578. package/claude-template/dot-claude/skills/theokit-concurrency/SKILL.md +0 -68
  579. package/claude-template/dot-claude/skills/theokit-config/SKILL.md +0 -139
  580. package/claude-template/dot-claude/skills/theokit-cron/SKILL.md +0 -148
  581. package/claude-template/dot-claude/skills/theokit-di/SKILL.md +0 -233
  582. package/claude-template/dot-claude/skills/theokit-di-agent/SKILL.md +0 -294
  583. package/claude-template/dot-claude/skills/theokit-errors/SKILL.md +0 -172
  584. package/claude-template/dot-claude/skills/theokit-eval/SKILL.md +0 -179
  585. package/claude-template/dot-claude/skills/theokit-filesystem/SKILL.md +0 -74
  586. package/claude-template/dot-claude/skills/theokit-gateways/SKILL.md +0 -209
  587. package/claude-template/dot-claude/skills/theokit-memory/SKILL.md +0 -176
  588. package/claude-template/dot-claude/skills/theokit-messages/SKILL.md +0 -58
  589. package/claude-template/dot-claude/skills/theokit-models/SKILL.md +0 -79
  590. package/claude-template/dot-claude/skills/theokit-path-safety/SKILL.md +0 -60
  591. package/claude-template/dot-claude/skills/theokit-persistence/SKILL.md +0 -85
  592. package/claude-template/dot-claude/skills/theokit-project/SKILL.md +0 -55
  593. package/claude-template/dot-claude/skills/theokit-retry/SKILL.md +0 -50
  594. package/claude-template/dot-claude/skills/theokit-sandbox/SKILL.md +0 -93
  595. package/claude-template/dot-claude/skills/theokit-sanitize/SKILL.md +0 -66
  596. package/claude-template/dot-claude/skills/theokit-skills/SKILL.md +0 -68
  597. package/claude-template/dot-claude/skills/theokit-streaming/SKILL.md +0 -156
  598. package/claude-template/dot-claude/skills/theokit-subagents/SKILL.md +0 -109
  599. package/claude-template/dot-claude/skills/theokit-subscriptions/SKILL.md +0 -148
  600. package/claude-template/dot-claude/skills/theokit-task-store/SKILL.md +0 -75
  601. package/claude-template/dot-claude/skills/theokit-tools/SKILL.md +0 -170
  602. package/claude-template/dot-claude/skills/theokit-workflows/SKILL.md +0 -218
  603. package/dist/agent-FFVV4U5N.js +0 -50
  604. package/dist/agent-YLAHVHEH.cjs +0 -59
  605. package/dist/agent-session-store-DUGBAX5V.cjs +0 -23
  606. package/dist/agent-session-store-TNCGL5RN.js +0 -6
  607. package/dist/batch-UPKN4SG6.js.map +0 -1
  608. package/dist/batch-ZEFN5SO7.cjs.map +0 -1
  609. package/dist/chunk-2D43RD5D.cjs.map +0 -1
  610. package/dist/chunk-2FYEVT2B.cjs.map +0 -1
  611. package/dist/chunk-2RW7K6FN.cjs.map +0 -1
  612. package/dist/chunk-2XLKLVVR.js.map +0 -1
  613. package/dist/chunk-34XOCZJO.js.map +0 -1
  614. package/dist/chunk-3V7UJLQT.js.map +0 -1
  615. package/dist/chunk-4NAKHID5.js.map +0 -1
  616. package/dist/chunk-4Q4K4WB5.js.map +0 -1
  617. package/dist/chunk-5F5NWKPN.js.map +0 -1
  618. package/dist/chunk-5NBUH3NO.js.map +0 -1
  619. package/dist/chunk-5YKNEMXR.cjs.map +0 -1
  620. package/dist/chunk-7W7ZWMLQ.js.map +0 -1
  621. package/dist/chunk-ADLLFY3H.cjs.map +0 -1
  622. package/dist/chunk-B4YA6BRS.cjs.map +0 -1
  623. package/dist/chunk-B6HOIWQ6.js.map +0 -1
  624. package/dist/chunk-BDTVFIPB.cjs.map +0 -1
  625. package/dist/chunk-BFYGJGC5.js.map +0 -1
  626. package/dist/chunk-BM6N4KHO.cjs.map +0 -1
  627. package/dist/chunk-CAH3G4IS.js.map +0 -1
  628. package/dist/chunk-EZ2YEF4F.cjs.map +0 -1
  629. package/dist/chunk-F77UENR6.cjs.map +0 -1
  630. package/dist/chunk-FOXKFTVZ.cjs.map +0 -1
  631. package/dist/chunk-G3JWXOGY.js.map +0 -1
  632. package/dist/chunk-GOVJO4YE.js.map +0 -1
  633. package/dist/chunk-HAWE74GQ.cjs.map +0 -1
  634. package/dist/chunk-HE4BIAOS.js.map +0 -1
  635. package/dist/chunk-HSQ5Q3I5.js.map +0 -1
  636. package/dist/chunk-JIQRXKTA.cjs.map +0 -1
  637. package/dist/chunk-KSWHTR54.js.map +0 -1
  638. package/dist/chunk-L5YO6PWL.cjs.map +0 -1
  639. package/dist/chunk-LD4MOBFX.js.map +0 -1
  640. package/dist/chunk-LS3LMQ23.js.map +0 -1
  641. package/dist/chunk-MSFLYJDY.js.map +0 -1
  642. package/dist/chunk-NZL4BNFQ.js.map +0 -1
  643. package/dist/chunk-OKLYRPKL.cjs.map +0 -1
  644. package/dist/chunk-OUOXM36O.cjs.map +0 -1
  645. package/dist/chunk-OXNYIMZZ.js.map +0 -1
  646. package/dist/chunk-PBZ7HMBP.js.map +0 -1
  647. package/dist/chunk-PNVDQL5Y.cjs.map +0 -1
  648. package/dist/chunk-Q4RESANI.cjs.map +0 -1
  649. package/dist/chunk-QBTVATSF.cjs.map +0 -1
  650. package/dist/chunk-RAHSWE5C.cjs.map +0 -1
  651. package/dist/chunk-RP5HQVLD.js.map +0 -1
  652. package/dist/chunk-SEL2ZQMT.js.map +0 -1
  653. package/dist/chunk-SK4QLUBK.js.map +0 -1
  654. package/dist/chunk-TTJ54H3E.cjs.map +0 -1
  655. package/dist/chunk-V26QVGUG.js.map +0 -1
  656. package/dist/chunk-V6HWJQQV.js.map +0 -1
  657. package/dist/chunk-VGPXHHF3.cjs.map +0 -1
  658. package/dist/chunk-VUKQL3L2.cjs.map +0 -1
  659. package/dist/chunk-VYCKUKPA.cjs.map +0 -1
  660. package/dist/chunk-VYHJZVL5.cjs.map +0 -1
  661. package/dist/chunk-X2FR4OIT.js.map +0 -1
  662. package/dist/chunk-XPR366DL.cjs.map +0 -1
  663. package/dist/chunk-XROIW6BH.js.map +0 -1
  664. package/dist/chunk-YLQQX5W2.cjs.map +0 -1
  665. package/dist/chunk-ZT57WTUJ.cjs.map +0 -1
  666. package/dist/compact-session-4MNKNMO2.js +0 -21
  667. package/dist/compact-session-EPFBQ46Z.cjs +0 -58
  668. package/dist/context-7USNN6LP.cjs +0 -22
  669. package/dist/context-ENXZNF6J.js +0 -5
  670. package/dist/cron-BMjgFH-_.d.ts +0 -631
  671. package/dist/cron-DFDdCdMM.d.cts +0 -631
  672. package/dist/executor-2Z3LGG3I.cjs.map +0 -1
  673. package/dist/executor-2Z6XJJJG.js.map +0 -1
  674. package/dist/fs-session-store-R5FD3EN6.js +0 -10
  675. package/dist/fs-session-store-VVY2AHWG.cjs +0 -19
  676. package/dist/generate-object-AVXOJK2I.cjs +0 -20
  677. package/dist/generate-object-WQRCXFD2.js +0 -7
  678. package/dist/index-manager-VRU3A2YL.cjs +0 -21
  679. package/dist/index-manager-WS7TVKUW.js +0 -12
  680. package/dist/inject-session-AUQLBDRS.cjs +0 -28
  681. package/dist/inject-session-AUQLBDRS.cjs.map +0 -1
  682. package/dist/inject-session-GMBMJVNZ.js.map +0 -1
  683. package/dist/judge-call-G5SGV2M2.cjs +0 -22
  684. package/dist/judge-call-MDIPTBJI.js +0 -5
  685. package/dist/oauth-transaction-store-7CKHPQRN.cjs +0 -32
  686. package/dist/oauth-transaction-store-W74I6EFD.js +0 -3
  687. package/dist/registry-63ASMXT4.cjs +0 -46
  688. package/dist/registry-O7FJ2MPM.js +0 -9
  689. package/dist/session-transcript-DOM3UTXR.cjs +0 -50
  690. package/dist/session-transcript-RAKEK76V.js +0 -5
  691. package/dist/stream-object-L3Q7PBMF.cjs +0 -20
  692. package/dist/stream-object-ZYXWS4B2.js +0 -7
  693. package/dist/subagents-loader-I56GSKAQ.js +0 -6
  694. package/dist/subagents-loader-VRW73QQT.cjs +0 -15
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @theokit/sdk/server/auth — orchestrator types (Path C Hybrid per G11)
2
+ * Orchestrator types (Path C Hybrid per G11) — `@theokit/sdk/server/auth`.
3
3
  *
4
4
  * Plan: g11-auth-architecture-implementation v1.4 (sha256 4d381020...)
5
5
  * Blueprint: g11-auth-architecture-decision v1.1 (SHIPPABLE 97.9)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @theokit/sdk/server/auth — orchestrator types (Path C Hybrid per G11)
2
+ * Orchestrator types (Path C Hybrid per G11) — `@theokit/sdk/server/auth`.
3
3
  *
4
4
  * Plan: g11-auth-architecture-implementation v1.4 (sha256 4d381020...)
5
5
  * Blueprint: g11-auth-architecture-decision v1.1 (SHIPPABLE 97.9)
@@ -1,17 +1,27 @@
1
1
  /**
2
- * @theokit/sdk/server/auth same-origin returnTo validator
2
+ * Clamp a caller-supplied `returnTo` to a same-origin destination, falling back
3
+ * to `'/'` for anything else. This is the open-redirect guard for a post-login
4
+ * redirect (`@theokit/sdk/server/auth`; OWASP A01:2021, v1.1 EC-2). Without it,
5
+ * `/login?returnTo=https://evil.com` would send the freshly authenticated session
6
+ * to an attacker's domain.
3
7
  *
4
- * Per v1.1 EC-2 MUST FIX — OWASP A01:2021 open-redirect mitigation.
8
+ * validateReturnTo(req.query.returnTo, new URL("https://app.example.com"));
5
9
  *
6
- * Without this check, attacker craft `/login?returnTo=https://evil.com` would
7
- * cause post-login redirect to attacker domain with authenticated session cookie.
10
+ * Pure and synchronous. It never throws and always returns a string:
11
+ * - undefined / empty / whitespace-only `returnTo` -> `'/'`
12
+ * - protocol-relative `//evil.com` -> `'/'` (a browser would resolve it against
13
+ * the current protocol)
14
+ * - absolute URL whose origin differs from `baseUrl.origin` -> `'/'`
15
+ * - absolute URL on `baseUrl.origin` -> its `pathname + search + hash`, with
16
+ * the origin dropped
17
+ * - relative path starting with `'/'` -> kept verbatim
18
+ * - anything else, including `javascript:` and `data:` -> `'/'`
8
19
  *
9
- * Rules:
10
- * - undefined/empty returnTo default '/'
11
- * - protocol-relative `//evil.com` → default '/' (URL parser would resolve to baseUrl protocol)
12
- * - absolute URL with origin baseUrl.origin default '/' (cross-origin redirect)
13
- * - absolute URL with origin === baseUrl.origin keep (same-origin allowed)
14
- * - relative path starting with '/' keep (same-app navigation)
15
- * - relative path not starting with '/' → default '/' (defensive)
20
+ * `baseUrl` is compared by ORIGIN only (scheme + host + port); its path is
21
+ * ignored, so an app mounted under a sub-path gets no extra containment from it.
22
+ *
23
+ * Trap: this defends the origin, not the route. A same-origin relative path is
24
+ * returned unchanged `..` segments included, and with no notion of whether the
25
+ * user is allowed there. Authorise the destination separately.
16
26
  */
17
27
  export declare function validateReturnTo(returnTo: string | undefined, baseUrl: URL): string;
@@ -1,17 +1,27 @@
1
1
  /**
2
- * @theokit/sdk/server/auth same-origin returnTo validator
2
+ * Clamp a caller-supplied `returnTo` to a same-origin destination, falling back
3
+ * to `'/'` for anything else. This is the open-redirect guard for a post-login
4
+ * redirect (`@theokit/sdk/server/auth`; OWASP A01:2021, v1.1 EC-2). Without it,
5
+ * `/login?returnTo=https://evil.com` would send the freshly authenticated session
6
+ * to an attacker's domain.
3
7
  *
4
- * Per v1.1 EC-2 MUST FIX — OWASP A01:2021 open-redirect mitigation.
8
+ * validateReturnTo(req.query.returnTo, new URL("https://app.example.com"));
5
9
  *
6
- * Without this check, attacker craft `/login?returnTo=https://evil.com` would
7
- * cause post-login redirect to attacker domain with authenticated session cookie.
10
+ * Pure and synchronous. It never throws and always returns a string:
11
+ * - undefined / empty / whitespace-only `returnTo` -> `'/'`
12
+ * - protocol-relative `//evil.com` -> `'/'` (a browser would resolve it against
13
+ * the current protocol)
14
+ * - absolute URL whose origin differs from `baseUrl.origin` -> `'/'`
15
+ * - absolute URL on `baseUrl.origin` -> its `pathname + search + hash`, with
16
+ * the origin dropped
17
+ * - relative path starting with `'/'` -> kept verbatim
18
+ * - anything else, including `javascript:` and `data:` -> `'/'`
8
19
  *
9
- * Rules:
10
- * - undefined/empty returnTo default '/'
11
- * - protocol-relative `//evil.com` → default '/' (URL parser would resolve to baseUrl protocol)
12
- * - absolute URL with origin baseUrl.origin default '/' (cross-origin redirect)
13
- * - absolute URL with origin === baseUrl.origin keep (same-origin allowed)
14
- * - relative path starting with '/' keep (same-app navigation)
15
- * - relative path not starting with '/' → default '/' (defensive)
20
+ * `baseUrl` is compared by ORIGIN only (scheme + host + port); its path is
21
+ * ignored, so an app mounted under a sub-path gets no extra containment from it.
22
+ *
23
+ * Trap: this defends the origin, not the route. A same-origin relative path is
24
+ * returned unchanged `..` segments included, and with no notion of whether the
25
+ * user is allowed there. Authorise the destination separately.
16
26
  */
17
27
  export declare function validateReturnTo(returnTo: string | undefined, baseUrl: URL): string;
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkLPVIRJVF_cjs = require('../chunk-LPVIRJVF.cjs');
4
- require('../chunk-BM6N4KHO.cjs');
3
+ var chunkK3FW2XZD_cjs = require('../chunk-K3FW2XZD.cjs');
4
+ require('../chunk-JTB5Q42C.cjs');
5
+ require('../chunk-NUKRL3I6.cjs');
5
6
 
6
7
  // src/server/errors-envelope.ts
7
8
  var NAME_TO_CODE = /* @__PURE__ */ new Map([
@@ -37,7 +38,7 @@ function toEnvelope(value) {
37
38
  }
38
39
  function buildMeta(name, err) {
39
40
  const meta = { sdkErrorName: name };
40
- if (err instanceof chunkLPVIRJVF_cjs.TheokitAgentError && err.metadata !== void 0) {
41
+ if (err instanceof chunkK3FW2XZD_cjs.TheokitAgentError && err.metadata !== void 0) {
41
42
  meta.provider = err.metadata.provider;
42
43
  meta.endpoint = err.metadata.endpoint;
43
44
  if (err.metadata.statusCode !== void 0) {
@@ -47,13 +48,13 @@ function buildMeta(name, err) {
47
48
  return meta;
48
49
  }
49
50
  function buildExt(err) {
50
- if (err instanceof chunkLPVIRJVF_cjs.RateLimitError && err.metadata?.retryAfter !== void 0) {
51
+ if (err instanceof chunkK3FW2XZD_cjs.RateLimitError && err.metadata?.retryAfter !== void 0) {
51
52
  return {
52
53
  retryable: true,
53
54
  retryAfterMs: err.metadata.retryAfter * 1e3
54
55
  };
55
56
  }
56
- if (err instanceof chunkLPVIRJVF_cjs.CredentialPoolExhaustedError && err.nextRetryAt !== void 0) {
57
+ if (err instanceof chunkK3FW2XZD_cjs.CredentialPoolExhaustedError && err.nextRetryAt !== void 0) {
57
58
  const delayMs = Math.max(0, err.nextRetryAt - Date.now());
58
59
  return {
59
60
  retryable: true,
@@ -63,22 +64,22 @@ function buildExt(err) {
63
64
  return void 0;
64
65
  }
65
66
  var CODE_TO_RECONSTRUCTOR = /* @__PURE__ */ new Map([
66
- ["UNAUTHORIZED", (env) => new chunkLPVIRJVF_cjs.AuthenticationError(env.message)],
67
+ ["UNAUTHORIZED", (env) => new chunkK3FW2XZD_cjs.AuthenticationError(env.message)],
67
68
  [
68
69
  "RATE_LIMITED",
69
- (env) => new chunkLPVIRJVF_cjs.RateLimitError(env.message, env.cause !== void 0 ? { cause: env.cause } : {})
70
+ (env) => new chunkK3FW2XZD_cjs.RateLimitError(env.message, env.cause !== void 0 ? { cause: env.cause } : {})
70
71
  ],
71
- ["PROVIDER_KEY_MISSING", (env) => new chunkLPVIRJVF_cjs.ConfigurationError(env.message)],
72
- ["SERVICE_UNAVAILABLE", (env) => new chunkLPVIRJVF_cjs.NetworkError(env.message)],
73
- ["GATEWAY_TIMEOUT", (env) => new chunkLPVIRJVF_cjs.NetworkError(env.message)],
72
+ ["PROVIDER_KEY_MISSING", (env) => new chunkK3FW2XZD_cjs.ConfigurationError(env.message)],
73
+ ["SERVICE_UNAVAILABLE", (env) => new chunkK3FW2XZD_cjs.NetworkError(env.message)],
74
+ ["GATEWAY_TIMEOUT", (env) => new chunkK3FW2XZD_cjs.NetworkError(env.message)],
74
75
  [
75
76
  "AGENT_RUN_ERROR",
76
- (env) => new chunkLPVIRJVF_cjs.AgentRunError(env.message, {
77
+ (env) => new chunkK3FW2XZD_cjs.AgentRunError(env.message, {
77
78
  code: "unknown",
78
79
  ...env.cause !== void 0 ? { cause: env.cause } : {}
79
80
  })
80
81
  ],
81
- ["INTERNAL_SERVER_ERROR", (env) => new chunkLPVIRJVF_cjs.UnknownAgentError(env.message)]
82
+ ["INTERNAL_SERVER_ERROR", (env) => new chunkK3FW2XZD_cjs.UnknownAgentError(env.message)]
82
83
  // BUDGET_EXCEEDED + CREDENTIAL_POOL_EXHAUSTED reconstructors require
83
84
  // domain-specific args (budgetName, provider) that the envelope doesn't
84
85
  // always carry. Fall back to UnknownAgentError when those fields are
@@ -88,12 +89,12 @@ var CODE_TO_RECONSTRUCTOR = /* @__PURE__ */ new Map([
88
89
  function fromEnvelope(env) {
89
90
  const reconstructor = CODE_TO_RECONSTRUCTOR.get(env.code);
90
91
  if (reconstructor) return reconstructor(env);
91
- return new chunkLPVIRJVF_cjs.UnknownAgentError(env.message);
92
+ return new chunkK3FW2XZD_cjs.UnknownAgentError(env.message);
92
93
  }
93
94
 
94
95
  Object.defineProperty(exports, "MemoryAdapterError", {
95
96
  enumerable: true,
96
- get: function () { return chunkLPVIRJVF_cjs.MemoryAdapterError; }
97
+ get: function () { return chunkK3FW2XZD_cjs.MemoryAdapterError; }
97
98
  });
98
99
  exports.fromEnvelope = fromEnvelope;
99
100
  exports.toEnvelope = toEnvelope;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/errors-envelope.ts"],"names":["TheokitAgentError","RateLimitError","CredentialPoolExhaustedError","AuthenticationError","ConfigurationError","NetworkError","AgentRunError","UnknownAgentError"],"mappings":"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","file":"errors-envelope.cjs","sourcesContent":["/**\n * @theokit/sdk/server/errors-envelope — G5 T2.2 boundary translation.\n *\n * Per plan g5-error-envelope-cross-layer v1.0 § Phase 2 / T2.2.\n * Blueprint ADR D3 — SDK keeps the 15+ Error class hierarchy internally;\n * `toEnvelope(err)` translates outward at the Agent.send -> RunResult egress\n * edge, `fromEnvelope(env)` reconstructs class identity on the inbound edge\n * (so consumer code can keep using `instanceof RateLimitError` patterns).\n *\n * Structurally-compatible envelope shape: identical fields to theokit/server\n * `TheoErrorEnvelope`. Re-declared locally to keep `@theokit/sdk` free of any\n * dependency on `theokit`. Consumer code that uses both packages gets the\n * same shape via duck-typing.\n */\n\nimport {\n AgentRunError,\n AuthenticationError,\n ConfigurationError,\n CredentialPoolExhaustedError,\n MemoryAdapterError,\n NetworkError,\n RateLimitError,\n TheokitAgentError,\n UnknownAgentError,\n} from \"../errors.js\";\n\n/**\n * Canonical envelope code union for cross-layer SDK boundary. Subset of the\n * full `TheoErrorCode` (theokit/server) covering codes the SDK actually emits.\n * Other layers (theokit/server, theokit/client, theokit/ui) handle the broader\n * union; the SDK never needs the HTTP-only codes (PRECONDITION_FAILED, etc.).\n *\n * @public\n */\nexport type TheokitErrorCode =\n | \"UNAUTHORIZED\"\n | \"RATE_LIMITED\"\n | \"INTERNAL_SERVER_ERROR\"\n | \"SERVICE_UNAVAILABLE\"\n | \"GATEWAY_TIMEOUT\"\n // SDK / agent-domain\n | \"AGENT_RUN_ERROR\"\n | \"PROVIDER_KEY_MISSING\"\n | \"BUDGET_EXCEEDED\"\n | \"CREDENTIAL_POOL_EXHAUSTED\";\n\n/**\n * Envelope shape — structurally identical to theokit/server `TheoErrorEnvelope`.\n *\n * @public\n */\nexport interface TheokitErrorEnvelope<TExt = unknown> {\n readonly code: TheokitErrorCode;\n readonly message: string;\n readonly cause?: unknown;\n readonly meta?: Record<string, unknown>;\n readonly ext?: TExt;\n}\n\n/**\n * Class-name -> envelope code mapping. Indexed by `Error.name` string so\n * subclasses inherit the mapping unless they override their `name` field.\n *\n * `IntegrationNotConnectedError` (subclass of `ConfigurationError`) takes\n * its own row because its `name` is `IntegrationNotConnectedError` and the\n * map is name-exact, not prototype-walked.\n */\nconst NAME_TO_CODE: ReadonlyMap<string, TheokitErrorCode> = new Map<string, TheokitErrorCode>([\n [\"AuthenticationError\", \"UNAUTHORIZED\"],\n [\"RateLimitError\", \"RATE_LIMITED\"],\n [\"ConfigurationError\", \"PROVIDER_KEY_MISSING\"],\n [\"IntegrationNotConnectedError\", \"PROVIDER_KEY_MISSING\"],\n [\"NetworkError\", \"SERVICE_UNAVAILABLE\"],\n [\"AgentRunError\", \"AGENT_RUN_ERROR\"],\n [\"BudgetExceededError\", \"BUDGET_EXCEEDED\"],\n [\"CredentialPoolExhaustedError\", \"CREDENTIAL_POOL_EXHAUSTED\"],\n [\"UnknownAgentError\", \"INTERNAL_SERVER_ERROR\"],\n [\"MemoryAdapterError\", \"INTERNAL_SERVER_ERROR\"],\n]);\n\n/**\n * Translate any SDK error (or arbitrary thrown value) into the canonical\n * envelope shape at the wire boundary.\n *\n * - `TheokitAgentError` family → mapped by `Error.name` string.\n * - Plain `Error` → INTERNAL_SERVER_ERROR.\n * - Non-Error values → INTERNAL_SERVER_ERROR with synthetic message.\n *\n * Meta carries `sdkErrorName` for telemetry; provider metadata (when present\n * via SDK's `ErrorMetadata`) flows through `meta.provider` / `meta.endpoint`\n * / `meta.statusCode` for diagnostics. `RateLimitError` populates a\n * `RetryableExt`-shaped ext when `metadata.retryAfter` (seconds) is set.\n *\n * @public\n */\nexport function toEnvelope(value: unknown): TheokitErrorEnvelope {\n if (!(value instanceof Error)) {\n return {\n code: \"INTERNAL_SERVER_ERROR\",\n message: typeof value === \"string\" ? value : \"Unknown error\",\n };\n }\n const name = value.name;\n const code = NAME_TO_CODE.get(name) ?? \"INTERNAL_SERVER_ERROR\";\n const meta = buildMeta(name, value);\n const ext = buildExt(value);\n return {\n code,\n message: value.message,\n cause: (value as Error & { cause?: unknown }).cause,\n meta,\n ext,\n };\n}\n\nfunction buildMeta(name: string, err: Error): Record<string, unknown> {\n const meta: Record<string, unknown> = { sdkErrorName: name };\n if (err instanceof TheokitAgentError && err.metadata !== undefined) {\n meta.provider = err.metadata.provider;\n meta.endpoint = err.metadata.endpoint;\n if (err.metadata.statusCode !== undefined) {\n meta.statusCode = err.metadata.statusCode;\n }\n }\n return meta;\n}\n\nfunction buildExt(err: Error): unknown {\n if (err instanceof RateLimitError && err.metadata?.retryAfter !== undefined) {\n return {\n retryable: true as const,\n retryAfterMs: err.metadata.retryAfter * 1000,\n };\n }\n if (err instanceof CredentialPoolExhaustedError && err.nextRetryAt !== undefined) {\n const delayMs = Math.max(0, err.nextRetryAt - Date.now());\n return {\n retryable: true as const,\n retryAfterMs: delayMs,\n };\n }\n return undefined;\n}\n\n/**\n * Code -> reconstructor mapping. Each entry returns a fresh instance of the\n * SDK class hierarchy from an envelope, preserving message and (where the\n * constructor supports it) cause/ext context.\n *\n * Unmapped codes fall through to `UnknownAgentError` so consumer code that\n * relies on `err instanceof TheokitAgentError` still works.\n */\nconst CODE_TO_RECONSTRUCTOR: ReadonlyMap<\n TheokitErrorCode,\n (env: TheokitErrorEnvelope) => TheokitAgentError\n> = new Map<TheokitErrorCode, (env: TheokitErrorEnvelope) => TheokitAgentError>([\n [\"UNAUTHORIZED\", (env) => new AuthenticationError(env.message)],\n [\n \"RATE_LIMITED\",\n (env) => new RateLimitError(env.message, env.cause !== undefined ? { cause: env.cause } : {}),\n ],\n [\"PROVIDER_KEY_MISSING\", (env) => new ConfigurationError(env.message)],\n [\"SERVICE_UNAVAILABLE\", (env) => new NetworkError(env.message)],\n [\"GATEWAY_TIMEOUT\", (env) => new NetworkError(env.message)],\n [\n \"AGENT_RUN_ERROR\",\n (env) =>\n new AgentRunError(env.message, {\n code: \"unknown\",\n ...(env.cause !== undefined ? { cause: env.cause } : {}),\n }),\n ],\n [\"INTERNAL_SERVER_ERROR\", (env) => new UnknownAgentError(env.message)],\n // BUDGET_EXCEEDED + CREDENTIAL_POOL_EXHAUSTED reconstructors require\n // domain-specific args (budgetName, provider) that the envelope doesn't\n // always carry. Fall back to UnknownAgentError when those fields are\n // missing; consumer code that needs the typed class should call the\n // constructor directly.\n]);\n\n/**\n * Hydrate an envelope back into the SDK class hierarchy. Use at the inbound\n * boundary (e.g., on a worker process receiving an envelope from the main\n * process via IPC, or on a client deserializing a `RunResult.error`).\n *\n * @public\n */\nexport function fromEnvelope(env: TheokitErrorEnvelope): TheokitAgentError {\n const reconstructor = CODE_TO_RECONSTRUCTOR.get(env.code);\n if (reconstructor) return reconstructor(env);\n // Round-trip preservation: if the envelope's meta.sdkErrorName matches a\n // class without a generic reconstructor (e.g., BudgetExceededError), we\n // can't rebuild without domain args. Fall back to UnknownAgentError.\n return new UnknownAgentError(env.message);\n}\n\n// Re-export for ergonomic consumption alongside fromEnvelope.\nexport { MemoryAdapterError };\n"]}
1
+ {"version":3,"sources":["../../src/server/errors-envelope.ts"],"names":["TheokitAgentError","RateLimitError","CredentialPoolExhaustedError","AuthenticationError","ConfigurationError","NetworkError","AgentRunError","UnknownAgentError"],"mappings":"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","file":"errors-envelope.cjs","sourcesContent":["/**\n * G5 T2.2 boundary translation — `@theokit/sdk/server/errors-envelope`.\n *\n * Per plan g5-error-envelope-cross-layer v1.0 § Phase 2 / T2.2.\n * Blueprint ADR D3 — SDK keeps the 15+ Error class hierarchy internally;\n * `toEnvelope(err)` translates outward at the Agent.send -> RunResult egress\n * edge, `fromEnvelope(env)` reconstructs class identity on the inbound edge\n * (so consumer code can keep using `instanceof RateLimitError` patterns).\n *\n * Structurally-compatible envelope shape: identical fields to theokit/server\n * `TheoErrorEnvelope`. Re-declared locally to keep `@theokit/sdk` free of any\n * dependency on `theokit`. Consumer code that uses both packages gets the\n * same shape via duck-typing.\n */\n\nimport {\n AgentRunError,\n AuthenticationError,\n ConfigurationError,\n CredentialPoolExhaustedError,\n MemoryAdapterError,\n NetworkError,\n RateLimitError,\n TheokitAgentError,\n UnknownAgentError,\n} from \"../errors.js\";\n\n/**\n * Canonical envelope code union for cross-layer SDK boundary. Subset of the\n * full `TheoErrorCode` (theokit/server) covering codes the SDK actually emits.\n * Other layers (theokit/server, theokit/client, theokit/ui) handle the broader\n * union; the SDK never needs the HTTP-only codes (PRECONDITION_FAILED, etc.).\n *\n * @public\n */\nexport type TheokitErrorCode =\n | \"UNAUTHORIZED\"\n | \"RATE_LIMITED\"\n | \"INTERNAL_SERVER_ERROR\"\n | \"SERVICE_UNAVAILABLE\"\n | \"GATEWAY_TIMEOUT\"\n // SDK / agent-domain\n | \"AGENT_RUN_ERROR\"\n | \"PROVIDER_KEY_MISSING\"\n | \"BUDGET_EXCEEDED\"\n | \"CREDENTIAL_POOL_EXHAUSTED\";\n\n/**\n * Envelope shape — structurally identical to theokit/server `TheoErrorEnvelope`.\n *\n * @public\n */\nexport interface TheokitErrorEnvelope<TExt = unknown> {\n readonly code: TheokitErrorCode;\n readonly message: string;\n readonly cause?: unknown;\n readonly meta?: Record<string, unknown>;\n readonly ext?: TExt;\n}\n\n/**\n * Class-name -> envelope code mapping. Indexed by `Error.name` string so\n * subclasses inherit the mapping unless they override their `name` field.\n *\n * `IntegrationNotConnectedError` (subclass of `ConfigurationError`) takes\n * its own row because its `name` is `IntegrationNotConnectedError` and the\n * map is name-exact, not prototype-walked.\n */\nconst NAME_TO_CODE: ReadonlyMap<string, TheokitErrorCode> = new Map<string, TheokitErrorCode>([\n [\"AuthenticationError\", \"UNAUTHORIZED\"],\n [\"RateLimitError\", \"RATE_LIMITED\"],\n [\"ConfigurationError\", \"PROVIDER_KEY_MISSING\"],\n [\"IntegrationNotConnectedError\", \"PROVIDER_KEY_MISSING\"],\n [\"NetworkError\", \"SERVICE_UNAVAILABLE\"],\n [\"AgentRunError\", \"AGENT_RUN_ERROR\"],\n [\"BudgetExceededError\", \"BUDGET_EXCEEDED\"],\n [\"CredentialPoolExhaustedError\", \"CREDENTIAL_POOL_EXHAUSTED\"],\n [\"UnknownAgentError\", \"INTERNAL_SERVER_ERROR\"],\n [\"MemoryAdapterError\", \"INTERNAL_SERVER_ERROR\"],\n]);\n\n/**\n * Translate any SDK error (or arbitrary thrown value) into the canonical\n * envelope shape at the wire boundary.\n *\n * - `TheokitAgentError` family → mapped by `Error.name` string.\n * - Plain `Error` → INTERNAL_SERVER_ERROR.\n * - Non-Error values → INTERNAL_SERVER_ERROR with synthetic message.\n *\n * Meta carries `sdkErrorName` for telemetry; provider metadata (when present\n * via SDK's `ErrorMetadata`) flows through `meta.provider` / `meta.endpoint`\n * / `meta.statusCode` for diagnostics. `RateLimitError` populates a\n * `RetryableExt`-shaped ext when `metadata.retryAfter` (seconds) is set.\n *\n * @public\n */\nexport function toEnvelope(value: unknown): TheokitErrorEnvelope {\n if (!(value instanceof Error)) {\n return {\n code: \"INTERNAL_SERVER_ERROR\",\n message: typeof value === \"string\" ? value : \"Unknown error\",\n };\n }\n const name = value.name;\n const code = NAME_TO_CODE.get(name) ?? \"INTERNAL_SERVER_ERROR\";\n const meta = buildMeta(name, value);\n const ext = buildExt(value);\n return {\n code,\n message: value.message,\n cause: (value as Error & { cause?: unknown }).cause,\n meta,\n ext,\n };\n}\n\nfunction buildMeta(name: string, err: Error): Record<string, unknown> {\n const meta: Record<string, unknown> = { sdkErrorName: name };\n if (err instanceof TheokitAgentError && err.metadata !== undefined) {\n meta.provider = err.metadata.provider;\n meta.endpoint = err.metadata.endpoint;\n if (err.metadata.statusCode !== undefined) {\n meta.statusCode = err.metadata.statusCode;\n }\n }\n return meta;\n}\n\nfunction buildExt(err: Error): unknown {\n if (err instanceof RateLimitError && err.metadata?.retryAfter !== undefined) {\n return {\n retryable: true as const,\n retryAfterMs: err.metadata.retryAfter * 1000,\n };\n }\n if (err instanceof CredentialPoolExhaustedError && err.nextRetryAt !== undefined) {\n const delayMs = Math.max(0, err.nextRetryAt - Date.now());\n return {\n retryable: true as const,\n retryAfterMs: delayMs,\n };\n }\n return undefined;\n}\n\n/**\n * Code -> reconstructor mapping. Each entry returns a fresh instance of the\n * SDK class hierarchy from an envelope, preserving message and (where the\n * constructor supports it) cause/ext context.\n *\n * Unmapped codes fall through to `UnknownAgentError` so consumer code that\n * relies on `err instanceof TheokitAgentError` still works.\n */\nconst CODE_TO_RECONSTRUCTOR: ReadonlyMap<\n TheokitErrorCode,\n (env: TheokitErrorEnvelope) => TheokitAgentError\n> = new Map<TheokitErrorCode, (env: TheokitErrorEnvelope) => TheokitAgentError>([\n [\"UNAUTHORIZED\", (env) => new AuthenticationError(env.message)],\n [\n \"RATE_LIMITED\",\n (env) => new RateLimitError(env.message, env.cause !== undefined ? { cause: env.cause } : {}),\n ],\n [\"PROVIDER_KEY_MISSING\", (env) => new ConfigurationError(env.message)],\n [\"SERVICE_UNAVAILABLE\", (env) => new NetworkError(env.message)],\n [\"GATEWAY_TIMEOUT\", (env) => new NetworkError(env.message)],\n [\n \"AGENT_RUN_ERROR\",\n (env) =>\n new AgentRunError(env.message, {\n code: \"unknown\",\n ...(env.cause !== undefined ? { cause: env.cause } : {}),\n }),\n ],\n [\"INTERNAL_SERVER_ERROR\", (env) => new UnknownAgentError(env.message)],\n // BUDGET_EXCEEDED + CREDENTIAL_POOL_EXHAUSTED reconstructors require\n // domain-specific args (budgetName, provider) that the envelope doesn't\n // always carry. Fall back to UnknownAgentError when those fields are\n // missing; consumer code that needs the typed class should call the\n // constructor directly.\n]);\n\n/**\n * Hydrate an envelope back into the SDK class hierarchy. Use at the inbound\n * boundary (e.g., on a worker process receiving an envelope from the main\n * process via IPC, or on a client deserializing a `RunResult.error`).\n *\n * @public\n */\nexport function fromEnvelope(env: TheokitErrorEnvelope): TheokitAgentError {\n const reconstructor = CODE_TO_RECONSTRUCTOR.get(env.code);\n if (reconstructor) return reconstructor(env);\n // Round-trip preservation: if the envelope's meta.sdkErrorName matches a\n // class without a generic reconstructor (e.g., BudgetExceededError), we\n // can't rebuild without domain args. Fall back to UnknownAgentError.\n return new UnknownAgentError(env.message);\n}\n\n// Re-export for ergonomic consumption alongside fromEnvelope.\nexport { MemoryAdapterError };\n"]}
@@ -1,10 +1,10 @@
1
- import { T as TheokitAgentError } from '../errors-BSoXcl3F.cjs';
2
- export { M as MemoryAdapterError } from '../errors-BSoXcl3F.cjs';
3
- import '../run-C8FBAC8o.cjs';
1
+ import { T as TheokitAgentError } from '../errors-BgJH9PHi.cjs';
2
+ export { M as MemoryAdapterError } from '../errors-BgJH9PHi.cjs';
3
+ import '../run-BYSHf58D.cjs';
4
4
  import 'zod';
5
5
 
6
6
  /**
7
- * @theokit/sdk/server/errors-envelope — G5 T2.2 boundary translation.
7
+ * G5 T2.2 boundary translation — `@theokit/sdk/server/errors-envelope`.
8
8
  *
9
9
  * Per plan g5-error-envelope-cross-layer v1.0 § Phase 2 / T2.2.
10
10
  * Blueprint ADR D3 — SDK keeps the 15+ Error class hierarchy internally;
@@ -1,10 +1,10 @@
1
- import { T as TheokitAgentError } from '../errors-CHllybaU.js';
2
- export { M as MemoryAdapterError } from '../errors-CHllybaU.js';
3
- import '../run-C8FBAC8o.js';
1
+ import { T as TheokitAgentError } from '../errors-C5fJUqLk.js';
2
+ export { M as MemoryAdapterError } from '../errors-C5fJUqLk.js';
3
+ import '../run-BYSHf58D.js';
4
4
  import 'zod';
5
5
 
6
6
  /**
7
- * @theokit/sdk/server/errors-envelope — G5 T2.2 boundary translation.
7
+ * G5 T2.2 boundary translation — `@theokit/sdk/server/errors-envelope`.
8
8
  *
9
9
  * Per plan g5-error-envelope-cross-layer v1.0 § Phase 2 / T2.2.
10
10
  * Blueprint ADR D3 — SDK keeps the 15+ Error class hierarchy internally;
@@ -1,6 +1,7 @@
1
- import { TheokitAgentError, RateLimitError, CredentialPoolExhaustedError, UnknownAgentError, AuthenticationError, ConfigurationError, NetworkError, AgentRunError } from '../chunk-U4UJHOSH.js';
2
- export { MemoryAdapterError } from '../chunk-U4UJHOSH.js';
3
- import '../chunk-5F5NWKPN.js';
1
+ import { TheokitAgentError, RateLimitError, CredentialPoolExhaustedError, UnknownAgentError, AuthenticationError, ConfigurationError, NetworkError, AgentRunError } from '../chunk-IDCKSLYH.js';
2
+ export { MemoryAdapterError } from '../chunk-IDCKSLYH.js';
3
+ import '../chunk-T7XEKOVW.js';
4
+ import '../chunk-T7O6K6PX.js';
4
5
 
5
6
  // src/server/errors-envelope.ts
6
7
  var NAME_TO_CODE = /* @__PURE__ */ new Map([
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/errors-envelope.ts"],"names":[],"mappings":"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","file":"errors-envelope.js","sourcesContent":["/**\n * @theokit/sdk/server/errors-envelope — G5 T2.2 boundary translation.\n *\n * Per plan g5-error-envelope-cross-layer v1.0 § Phase 2 / T2.2.\n * Blueprint ADR D3 — SDK keeps the 15+ Error class hierarchy internally;\n * `toEnvelope(err)` translates outward at the Agent.send -> RunResult egress\n * edge, `fromEnvelope(env)` reconstructs class identity on the inbound edge\n * (so consumer code can keep using `instanceof RateLimitError` patterns).\n *\n * Structurally-compatible envelope shape: identical fields to theokit/server\n * `TheoErrorEnvelope`. Re-declared locally to keep `@theokit/sdk` free of any\n * dependency on `theokit`. Consumer code that uses both packages gets the\n * same shape via duck-typing.\n */\n\nimport {\n AgentRunError,\n AuthenticationError,\n ConfigurationError,\n CredentialPoolExhaustedError,\n MemoryAdapterError,\n NetworkError,\n RateLimitError,\n TheokitAgentError,\n UnknownAgentError,\n} from \"../errors.js\";\n\n/**\n * Canonical envelope code union for cross-layer SDK boundary. Subset of the\n * full `TheoErrorCode` (theokit/server) covering codes the SDK actually emits.\n * Other layers (theokit/server, theokit/client, theokit/ui) handle the broader\n * union; the SDK never needs the HTTP-only codes (PRECONDITION_FAILED, etc.).\n *\n * @public\n */\nexport type TheokitErrorCode =\n | \"UNAUTHORIZED\"\n | \"RATE_LIMITED\"\n | \"INTERNAL_SERVER_ERROR\"\n | \"SERVICE_UNAVAILABLE\"\n | \"GATEWAY_TIMEOUT\"\n // SDK / agent-domain\n | \"AGENT_RUN_ERROR\"\n | \"PROVIDER_KEY_MISSING\"\n | \"BUDGET_EXCEEDED\"\n | \"CREDENTIAL_POOL_EXHAUSTED\";\n\n/**\n * Envelope shape — structurally identical to theokit/server `TheoErrorEnvelope`.\n *\n * @public\n */\nexport interface TheokitErrorEnvelope<TExt = unknown> {\n readonly code: TheokitErrorCode;\n readonly message: string;\n readonly cause?: unknown;\n readonly meta?: Record<string, unknown>;\n readonly ext?: TExt;\n}\n\n/**\n * Class-name -> envelope code mapping. Indexed by `Error.name` string so\n * subclasses inherit the mapping unless they override their `name` field.\n *\n * `IntegrationNotConnectedError` (subclass of `ConfigurationError`) takes\n * its own row because its `name` is `IntegrationNotConnectedError` and the\n * map is name-exact, not prototype-walked.\n */\nconst NAME_TO_CODE: ReadonlyMap<string, TheokitErrorCode> = new Map<string, TheokitErrorCode>([\n [\"AuthenticationError\", \"UNAUTHORIZED\"],\n [\"RateLimitError\", \"RATE_LIMITED\"],\n [\"ConfigurationError\", \"PROVIDER_KEY_MISSING\"],\n [\"IntegrationNotConnectedError\", \"PROVIDER_KEY_MISSING\"],\n [\"NetworkError\", \"SERVICE_UNAVAILABLE\"],\n [\"AgentRunError\", \"AGENT_RUN_ERROR\"],\n [\"BudgetExceededError\", \"BUDGET_EXCEEDED\"],\n [\"CredentialPoolExhaustedError\", \"CREDENTIAL_POOL_EXHAUSTED\"],\n [\"UnknownAgentError\", \"INTERNAL_SERVER_ERROR\"],\n [\"MemoryAdapterError\", \"INTERNAL_SERVER_ERROR\"],\n]);\n\n/**\n * Translate any SDK error (or arbitrary thrown value) into the canonical\n * envelope shape at the wire boundary.\n *\n * - `TheokitAgentError` family → mapped by `Error.name` string.\n * - Plain `Error` → INTERNAL_SERVER_ERROR.\n * - Non-Error values → INTERNAL_SERVER_ERROR with synthetic message.\n *\n * Meta carries `sdkErrorName` for telemetry; provider metadata (when present\n * via SDK's `ErrorMetadata`) flows through `meta.provider` / `meta.endpoint`\n * / `meta.statusCode` for diagnostics. `RateLimitError` populates a\n * `RetryableExt`-shaped ext when `metadata.retryAfter` (seconds) is set.\n *\n * @public\n */\nexport function toEnvelope(value: unknown): TheokitErrorEnvelope {\n if (!(value instanceof Error)) {\n return {\n code: \"INTERNAL_SERVER_ERROR\",\n message: typeof value === \"string\" ? value : \"Unknown error\",\n };\n }\n const name = value.name;\n const code = NAME_TO_CODE.get(name) ?? \"INTERNAL_SERVER_ERROR\";\n const meta = buildMeta(name, value);\n const ext = buildExt(value);\n return {\n code,\n message: value.message,\n cause: (value as Error & { cause?: unknown }).cause,\n meta,\n ext,\n };\n}\n\nfunction buildMeta(name: string, err: Error): Record<string, unknown> {\n const meta: Record<string, unknown> = { sdkErrorName: name };\n if (err instanceof TheokitAgentError && err.metadata !== undefined) {\n meta.provider = err.metadata.provider;\n meta.endpoint = err.metadata.endpoint;\n if (err.metadata.statusCode !== undefined) {\n meta.statusCode = err.metadata.statusCode;\n }\n }\n return meta;\n}\n\nfunction buildExt(err: Error): unknown {\n if (err instanceof RateLimitError && err.metadata?.retryAfter !== undefined) {\n return {\n retryable: true as const,\n retryAfterMs: err.metadata.retryAfter * 1000,\n };\n }\n if (err instanceof CredentialPoolExhaustedError && err.nextRetryAt !== undefined) {\n const delayMs = Math.max(0, err.nextRetryAt - Date.now());\n return {\n retryable: true as const,\n retryAfterMs: delayMs,\n };\n }\n return undefined;\n}\n\n/**\n * Code -> reconstructor mapping. Each entry returns a fresh instance of the\n * SDK class hierarchy from an envelope, preserving message and (where the\n * constructor supports it) cause/ext context.\n *\n * Unmapped codes fall through to `UnknownAgentError` so consumer code that\n * relies on `err instanceof TheokitAgentError` still works.\n */\nconst CODE_TO_RECONSTRUCTOR: ReadonlyMap<\n TheokitErrorCode,\n (env: TheokitErrorEnvelope) => TheokitAgentError\n> = new Map<TheokitErrorCode, (env: TheokitErrorEnvelope) => TheokitAgentError>([\n [\"UNAUTHORIZED\", (env) => new AuthenticationError(env.message)],\n [\n \"RATE_LIMITED\",\n (env) => new RateLimitError(env.message, env.cause !== undefined ? { cause: env.cause } : {}),\n ],\n [\"PROVIDER_KEY_MISSING\", (env) => new ConfigurationError(env.message)],\n [\"SERVICE_UNAVAILABLE\", (env) => new NetworkError(env.message)],\n [\"GATEWAY_TIMEOUT\", (env) => new NetworkError(env.message)],\n [\n \"AGENT_RUN_ERROR\",\n (env) =>\n new AgentRunError(env.message, {\n code: \"unknown\",\n ...(env.cause !== undefined ? { cause: env.cause } : {}),\n }),\n ],\n [\"INTERNAL_SERVER_ERROR\", (env) => new UnknownAgentError(env.message)],\n // BUDGET_EXCEEDED + CREDENTIAL_POOL_EXHAUSTED reconstructors require\n // domain-specific args (budgetName, provider) that the envelope doesn't\n // always carry. Fall back to UnknownAgentError when those fields are\n // missing; consumer code that needs the typed class should call the\n // constructor directly.\n]);\n\n/**\n * Hydrate an envelope back into the SDK class hierarchy. Use at the inbound\n * boundary (e.g., on a worker process receiving an envelope from the main\n * process via IPC, or on a client deserializing a `RunResult.error`).\n *\n * @public\n */\nexport function fromEnvelope(env: TheokitErrorEnvelope): TheokitAgentError {\n const reconstructor = CODE_TO_RECONSTRUCTOR.get(env.code);\n if (reconstructor) return reconstructor(env);\n // Round-trip preservation: if the envelope's meta.sdkErrorName matches a\n // class without a generic reconstructor (e.g., BudgetExceededError), we\n // can't rebuild without domain args. Fall back to UnknownAgentError.\n return new UnknownAgentError(env.message);\n}\n\n// Re-export for ergonomic consumption alongside fromEnvelope.\nexport { MemoryAdapterError };\n"]}
1
+ {"version":3,"sources":["../../src/server/errors-envelope.ts"],"names":[],"mappings":"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","file":"errors-envelope.js","sourcesContent":["/**\n * G5 T2.2 boundary translation — `@theokit/sdk/server/errors-envelope`.\n *\n * Per plan g5-error-envelope-cross-layer v1.0 § Phase 2 / T2.2.\n * Blueprint ADR D3 — SDK keeps the 15+ Error class hierarchy internally;\n * `toEnvelope(err)` translates outward at the Agent.send -> RunResult egress\n * edge, `fromEnvelope(env)` reconstructs class identity on the inbound edge\n * (so consumer code can keep using `instanceof RateLimitError` patterns).\n *\n * Structurally-compatible envelope shape: identical fields to theokit/server\n * `TheoErrorEnvelope`. Re-declared locally to keep `@theokit/sdk` free of any\n * dependency on `theokit`. Consumer code that uses both packages gets the\n * same shape via duck-typing.\n */\n\nimport {\n AgentRunError,\n AuthenticationError,\n ConfigurationError,\n CredentialPoolExhaustedError,\n MemoryAdapterError,\n NetworkError,\n RateLimitError,\n TheokitAgentError,\n UnknownAgentError,\n} from \"../errors.js\";\n\n/**\n * Canonical envelope code union for cross-layer SDK boundary. Subset of the\n * full `TheoErrorCode` (theokit/server) covering codes the SDK actually emits.\n * Other layers (theokit/server, theokit/client, theokit/ui) handle the broader\n * union; the SDK never needs the HTTP-only codes (PRECONDITION_FAILED, etc.).\n *\n * @public\n */\nexport type TheokitErrorCode =\n | \"UNAUTHORIZED\"\n | \"RATE_LIMITED\"\n | \"INTERNAL_SERVER_ERROR\"\n | \"SERVICE_UNAVAILABLE\"\n | \"GATEWAY_TIMEOUT\"\n // SDK / agent-domain\n | \"AGENT_RUN_ERROR\"\n | \"PROVIDER_KEY_MISSING\"\n | \"BUDGET_EXCEEDED\"\n | \"CREDENTIAL_POOL_EXHAUSTED\";\n\n/**\n * Envelope shape — structurally identical to theokit/server `TheoErrorEnvelope`.\n *\n * @public\n */\nexport interface TheokitErrorEnvelope<TExt = unknown> {\n readonly code: TheokitErrorCode;\n readonly message: string;\n readonly cause?: unknown;\n readonly meta?: Record<string, unknown>;\n readonly ext?: TExt;\n}\n\n/**\n * Class-name -> envelope code mapping. Indexed by `Error.name` string so\n * subclasses inherit the mapping unless they override their `name` field.\n *\n * `IntegrationNotConnectedError` (subclass of `ConfigurationError`) takes\n * its own row because its `name` is `IntegrationNotConnectedError` and the\n * map is name-exact, not prototype-walked.\n */\nconst NAME_TO_CODE: ReadonlyMap<string, TheokitErrorCode> = new Map<string, TheokitErrorCode>([\n [\"AuthenticationError\", \"UNAUTHORIZED\"],\n [\"RateLimitError\", \"RATE_LIMITED\"],\n [\"ConfigurationError\", \"PROVIDER_KEY_MISSING\"],\n [\"IntegrationNotConnectedError\", \"PROVIDER_KEY_MISSING\"],\n [\"NetworkError\", \"SERVICE_UNAVAILABLE\"],\n [\"AgentRunError\", \"AGENT_RUN_ERROR\"],\n [\"BudgetExceededError\", \"BUDGET_EXCEEDED\"],\n [\"CredentialPoolExhaustedError\", \"CREDENTIAL_POOL_EXHAUSTED\"],\n [\"UnknownAgentError\", \"INTERNAL_SERVER_ERROR\"],\n [\"MemoryAdapterError\", \"INTERNAL_SERVER_ERROR\"],\n]);\n\n/**\n * Translate any SDK error (or arbitrary thrown value) into the canonical\n * envelope shape at the wire boundary.\n *\n * - `TheokitAgentError` family → mapped by `Error.name` string.\n * - Plain `Error` → INTERNAL_SERVER_ERROR.\n * - Non-Error values → INTERNAL_SERVER_ERROR with synthetic message.\n *\n * Meta carries `sdkErrorName` for telemetry; provider metadata (when present\n * via SDK's `ErrorMetadata`) flows through `meta.provider` / `meta.endpoint`\n * / `meta.statusCode` for diagnostics. `RateLimitError` populates a\n * `RetryableExt`-shaped ext when `metadata.retryAfter` (seconds) is set.\n *\n * @public\n */\nexport function toEnvelope(value: unknown): TheokitErrorEnvelope {\n if (!(value instanceof Error)) {\n return {\n code: \"INTERNAL_SERVER_ERROR\",\n message: typeof value === \"string\" ? value : \"Unknown error\",\n };\n }\n const name = value.name;\n const code = NAME_TO_CODE.get(name) ?? \"INTERNAL_SERVER_ERROR\";\n const meta = buildMeta(name, value);\n const ext = buildExt(value);\n return {\n code,\n message: value.message,\n cause: (value as Error & { cause?: unknown }).cause,\n meta,\n ext,\n };\n}\n\nfunction buildMeta(name: string, err: Error): Record<string, unknown> {\n const meta: Record<string, unknown> = { sdkErrorName: name };\n if (err instanceof TheokitAgentError && err.metadata !== undefined) {\n meta.provider = err.metadata.provider;\n meta.endpoint = err.metadata.endpoint;\n if (err.metadata.statusCode !== undefined) {\n meta.statusCode = err.metadata.statusCode;\n }\n }\n return meta;\n}\n\nfunction buildExt(err: Error): unknown {\n if (err instanceof RateLimitError && err.metadata?.retryAfter !== undefined) {\n return {\n retryable: true as const,\n retryAfterMs: err.metadata.retryAfter * 1000,\n };\n }\n if (err instanceof CredentialPoolExhaustedError && err.nextRetryAt !== undefined) {\n const delayMs = Math.max(0, err.nextRetryAt - Date.now());\n return {\n retryable: true as const,\n retryAfterMs: delayMs,\n };\n }\n return undefined;\n}\n\n/**\n * Code -> reconstructor mapping. Each entry returns a fresh instance of the\n * SDK class hierarchy from an envelope, preserving message and (where the\n * constructor supports it) cause/ext context.\n *\n * Unmapped codes fall through to `UnknownAgentError` so consumer code that\n * relies on `err instanceof TheokitAgentError` still works.\n */\nconst CODE_TO_RECONSTRUCTOR: ReadonlyMap<\n TheokitErrorCode,\n (env: TheokitErrorEnvelope) => TheokitAgentError\n> = new Map<TheokitErrorCode, (env: TheokitErrorEnvelope) => TheokitAgentError>([\n [\"UNAUTHORIZED\", (env) => new AuthenticationError(env.message)],\n [\n \"RATE_LIMITED\",\n (env) => new RateLimitError(env.message, env.cause !== undefined ? { cause: env.cause } : {}),\n ],\n [\"PROVIDER_KEY_MISSING\", (env) => new ConfigurationError(env.message)],\n [\"SERVICE_UNAVAILABLE\", (env) => new NetworkError(env.message)],\n [\"GATEWAY_TIMEOUT\", (env) => new NetworkError(env.message)],\n [\n \"AGENT_RUN_ERROR\",\n (env) =>\n new AgentRunError(env.message, {\n code: \"unknown\",\n ...(env.cause !== undefined ? { cause: env.cause } : {}),\n }),\n ],\n [\"INTERNAL_SERVER_ERROR\", (env) => new UnknownAgentError(env.message)],\n // BUDGET_EXCEEDED + CREDENTIAL_POOL_EXHAUSTED reconstructors require\n // domain-specific args (budgetName, provider) that the envelope doesn't\n // always carry. Fall back to UnknownAgentError when those fields are\n // missing; consumer code that needs the typed class should call the\n // constructor directly.\n]);\n\n/**\n * Hydrate an envelope back into the SDK class hierarchy. Use at the inbound\n * boundary (e.g., on a worker process receiving an envelope from the main\n * process via IPC, or on a client deserializing a `RunResult.error`).\n *\n * @public\n */\nexport function fromEnvelope(env: TheokitErrorEnvelope): TheokitAgentError {\n const reconstructor = CODE_TO_RECONSTRUCTOR.get(env.code);\n if (reconstructor) return reconstructor(env);\n // Round-trip preservation: if the envelope's meta.sdkErrorName matches a\n // class without a generic reconstructor (e.g., BudgetExceededError), we\n // can't rebuild without domain args. Fall back to UnknownAgentError.\n return new UnknownAgentError(env.message);\n}\n\n// Re-export for ergonomic consumption alongside fromEnvelope.\nexport { MemoryAdapterError };\n"]}
@@ -0,0 +1,6 @@
1
+ export { SessionTranscript, defaultBaseDir, encodeProjectDir, expandTilde, readTranscript, reconstructMessages, safeSessionId, transcriptPath, transcriptRoot, writeTranscript } from './chunk-DZBSJX6J.js';
2
+ import './chunk-VF7EWVDG.js';
3
+ import './chunk-T7XEKOVW.js';
4
+ import './chunk-T7O6K6PX.js';
5
+ //# sourceMappingURL=session-transcript-AKDYYGXQ.js.map
6
+ //# sourceMappingURL=session-transcript-AKDYYGXQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"session-transcript-RAKEK76V.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"session-transcript-AKDYYGXQ.js"}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var chunkJHPGF3FP_cjs = require('./chunk-JHPGF3FP.cjs');
4
+ require('./chunk-I6TGFUCO.cjs');
5
+ require('./chunk-JTB5Q42C.cjs');
6
+ require('./chunk-NUKRL3I6.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "SessionTranscript", {
11
+ enumerable: true,
12
+ get: function () { return chunkJHPGF3FP_cjs.SessionTranscript; }
13
+ });
14
+ Object.defineProperty(exports, "defaultBaseDir", {
15
+ enumerable: true,
16
+ get: function () { return chunkJHPGF3FP_cjs.defaultBaseDir; }
17
+ });
18
+ Object.defineProperty(exports, "encodeProjectDir", {
19
+ enumerable: true,
20
+ get: function () { return chunkJHPGF3FP_cjs.encodeProjectDir; }
21
+ });
22
+ Object.defineProperty(exports, "expandTilde", {
23
+ enumerable: true,
24
+ get: function () { return chunkJHPGF3FP_cjs.expandTilde; }
25
+ });
26
+ Object.defineProperty(exports, "readTranscript", {
27
+ enumerable: true,
28
+ get: function () { return chunkJHPGF3FP_cjs.readTranscript; }
29
+ });
30
+ Object.defineProperty(exports, "reconstructMessages", {
31
+ enumerable: true,
32
+ get: function () { return chunkJHPGF3FP_cjs.reconstructMessages; }
33
+ });
34
+ Object.defineProperty(exports, "safeSessionId", {
35
+ enumerable: true,
36
+ get: function () { return chunkJHPGF3FP_cjs.safeSessionId; }
37
+ });
38
+ Object.defineProperty(exports, "transcriptPath", {
39
+ enumerable: true,
40
+ get: function () { return chunkJHPGF3FP_cjs.transcriptPath; }
41
+ });
42
+ Object.defineProperty(exports, "transcriptRoot", {
43
+ enumerable: true,
44
+ get: function () { return chunkJHPGF3FP_cjs.transcriptRoot; }
45
+ });
46
+ Object.defineProperty(exports, "writeTranscript", {
47
+ enumerable: true,
48
+ get: function () { return chunkJHPGF3FP_cjs.writeTranscript; }
49
+ });
50
+ //# sourceMappingURL=session-transcript-JXHFTB7G.cjs.map
51
+ //# sourceMappingURL=session-transcript-JXHFTB7G.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"session-transcript-DOM3UTXR.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"session-transcript-JXHFTB7G.cjs"}
package/dist/skills.cjs CHANGED
@@ -1,21 +1,22 @@
1
1
  'use strict';
2
2
 
3
- var chunkZN2DGEY3_cjs = require('./chunk-ZN2DGEY3.cjs');
4
- require('./chunk-ZT57WTUJ.cjs');
3
+ var chunk3YJNUKYN_cjs = require('./chunk-3YJNUKYN.cjs');
4
+ require('./chunk-R3UPQFKK.cjs');
5
5
  require('./chunk-VKJ7V7EB.cjs');
6
- require('./chunk-SZHU7A5B.cjs');
7
- require('./chunk-LPVIRJVF.cjs');
8
- require('./chunk-BM6N4KHO.cjs');
6
+ require('./chunk-IWBGCBR6.cjs');
7
+ require('./chunk-K3FW2XZD.cjs');
8
+ require('./chunk-JTB5Q42C.cjs');
9
+ require('./chunk-NUKRL3I6.cjs');
9
10
 
10
11
 
11
12
 
12
13
  Object.defineProperty(exports, "buildSkillsBlock", {
13
14
  enumerable: true,
14
- get: function () { return chunkZN2DGEY3_cjs.buildSkillsBlock; }
15
+ get: function () { return chunk3YJNUKYN_cjs.buildSkillsBlock; }
15
16
  });
16
17
  Object.defineProperty(exports, "discoverSkills", {
17
18
  enumerable: true,
18
- get: function () { return chunkZN2DGEY3_cjs.discoverSkills; }
19
+ get: function () { return chunk3YJNUKYN_cjs.discoverSkills; }
19
20
  });
20
21
  //# sourceMappingURL=skills.cjs.map
21
22
  //# sourceMappingURL=skills.cjs.map
package/dist/skills.js CHANGED
@@ -1,8 +1,9 @@
1
- export { buildSkillsBlock, discoverSkills } from './chunk-OY7O3Q6R.js';
2
- import './chunk-SK4QLUBK.js';
1
+ export { buildSkillsBlock, discoverSkills } from './chunk-4ERPXIVB.js';
2
+ import './chunk-QARJGQSA.js';
3
3
  import './chunk-RIAM53CP.js';
4
- import './chunk-DGOG5NXR.js';
5
- import './chunk-U4UJHOSH.js';
6
- import './chunk-5F5NWKPN.js';
4
+ import './chunk-AG5JPQIY.js';
5
+ import './chunk-IDCKSLYH.js';
6
+ import './chunk-T7XEKOVW.js';
7
+ import './chunk-T7O6K6PX.js';
7
8
  //# sourceMappingURL=skills.js.map
8
9
  //# sourceMappingURL=skills.js.map
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunkROYPRJH4_cjs = require('./chunk-ROYPRJH4.cjs');
4
+ require('./chunk-QDED6YO6.cjs');
5
+ require('./chunk-WJVHMTKB.cjs');
6
+ require('./chunk-K3FW2XZD.cjs');
7
+ require('./chunk-JTB5Q42C.cjs');
8
+ require('./chunk-NUKRL3I6.cjs');
9
+
10
+
11
+
12
+ Object.defineProperty(exports, "StreamObjectError", {
13
+ enumerable: true,
14
+ get: function () { return chunkROYPRJH4_cjs.StreamObjectError; }
15
+ });
16
+ Object.defineProperty(exports, "streamObjectImpl", {
17
+ enumerable: true,
18
+ get: function () { return chunkROYPRJH4_cjs.streamObjectImpl; }
19
+ });
20
+ //# sourceMappingURL=stream-object-BUCF5PHO.cjs.map
21
+ //# sourceMappingURL=stream-object-BUCF5PHO.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"stream-object-L3Q7PBMF.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"stream-object-BUCF5PHO.cjs"}
@@ -0,0 +1,8 @@
1
+ export { StreamObjectError, streamObjectImpl } from './chunk-WKRSH2VR.js';
2
+ import './chunk-AEOZTXVW.js';
3
+ import './chunk-4VPXM6UU.js';
4
+ import './chunk-IDCKSLYH.js';
5
+ import './chunk-T7XEKOVW.js';
6
+ import './chunk-T7O6K6PX.js';
7
+ //# sourceMappingURL=stream-object-L57K4OFS.js.map
8
+ //# sourceMappingURL=stream-object-L57K4OFS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"stream-object-ZYXWS4B2.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"stream-object-L57K4OFS.js"}
@@ -1,4 +1,4 @@
1
- import { resolveContinuation, promptForRound, continuationTail, addUsage, classifyRound, buildResult, isEmptyRound } from './chunk-UCFONJBG.js';
1
+ import { resolveContinuation, promptForRound, continuationTail, addUsage, classifyRound, buildResult, isEmptyRound } from './chunk-EPSICJLZ.js';
2
2
 
3
3
  // src/internal/runtime/lifecycle/stream-to-completion.ts
4
4
  function decideRound(result, round, maxRounds, state) {
@@ -26,5 +26,5 @@ async function* streamToCompletionImpl(agent, message, options) {
26
26
  }
27
27
 
28
28
  export { streamToCompletionImpl };
29
- //# sourceMappingURL=stream-to-completion-DFJ5T3BK.js.map
30
- //# sourceMappingURL=stream-to-completion-DFJ5T3BK.js.map
29
+ //# sourceMappingURL=stream-to-completion-QV5HCL3J.js.map
30
+ //# sourceMappingURL=stream-to-completion-QV5HCL3J.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/internal/runtime/lifecycle/stream-to-completion.ts"],"names":[],"mappings":";;;AA2DA,SAAS,WAAA,CACP,MAAA,EACA,KAAA,EACA,SAAA,EACA,KAAA,EACe;AACf,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,KAAA,CAAM,KAAA,EAAO,OAAO,KAAK,CAAA;AAChD,EAAA,MAAM,WAAW,aAAA,CAAc,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,MAAM,WAAW,CAAA;AAC1E,EAAA,IAAI,QAAA,KAAa,UAAA,EAAY,OAAO,EAAE,QAAA,EAAU,YAAY,QAAA,EAAU,KAAA,EAAO,MAAA,EAAQ,KAAK,CAAA,EAAE;AAC5F,EAAA,MAAM,cAAc,YAAA,CAAa,MAAM,CAAA,GAAI,KAAA,CAAM,cAAc,CAAA,GAAI,CAAA;AACnE,EAAA,OAAO,EAAE,IAAA,EAAM,EAAE,KAAA,EAAO,aAAY,EAAE;AACxC;AAQA,gBAAuB,sBAAA,CACrB,KAAA,EACA,OAAA,EACA,OAAA,EACsD;AACtD,EAAA,MAAM,GAAA,GAAM,oBAAoB,OAAO,CAAA;AACvC,EAAA,IAAI,QAAQ,GAAA,CAAI,KAAA;AAEhB,EAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,IAAK,KAAA,IAAS,CAAA,EAAG;AAChC,IAAA,MAAM,MAAA,GAAS,cAAA,CAAe,KAAA,EAAO,OAAA,EAAS,IAAI,kBAAkB,CAAA;AAEpE,IAAA,MAAM,YAAA,GACJ,KAAA,KAAU,CAAA,GACN,GAAA,CAAI,cACJ,EAAE,GAAI,GAAA,CAAI,WAAA,IAAe,EAAC,EAAI,MAAA,EAAQ,EAAE,IAAA,EAAM,qBAA6B,EAAE;AACnF,IAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,IAAA,CAAK,QAAQ,YAAY,CAAA;AAGjD,IAAA,OAAO,IAAI,MAAA,EAAO;AAClB,IAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,IAAA,EAAK;AAE9B,IAAA,MAAM,WAAW,WAAA,CAAY,MAAA,EAAQ,KAAA,EAAO,GAAA,CAAI,WAAW,KAAK,CAAA;AAChE,IAAA,IAAI,UAAA,IAAc,QAAA,EAAU,OAAO,QAAA,CAAS,QAAA;AAE5C,IAAA,KAAA,GAAQ,QAAA,CAAS,IAAA;AACjB,IAAA,MAAM,OAAA,GAAU,MAAM,gBAAA,CAAiB,KAAA,EAAO,MAAA,EAAQ,MAAM,KAAA,EAAO,GAAA,CAAI,WAAA,EAAa,GAAA,CAAI,MAAM,CAAA;AAC9F,IAAA,IAAI,OAAA,KAAY,QAAW,OAAO,OAAA;AAAA,EACpC;AACF","file":"stream-to-completion-DFJ5T3BK.js","sourcesContent":["/**\n * `streamToCompletion` — the STREAMING continuation driver (V3-4, plan\n * v34-stream-to-completion). The streaming twin of `runToCompletion`: it yields\n * each round's `SDKMessage`s LIVE (the V3-4 (a) gap a UI needs) while reusing the\n * SAME terminal policy as the M1 driver — `classifyRound` (done / step_limit /\n * no_progress) + bounded re-prompt + `addUsage` aggregation. It is NOT a second\n * policy (D1): the only difference from `runToCompletion` is surfacing events over\n * `Run.stream()` instead of returning only the final `Run.wait()` result.\n *\n * Stateful, like `runToCompletion` (the agent's session preserves history via the\n * native transcript; the continuation prompt is short). A stateless consumer\n * reconstructs history from the on-disk native transcript into a fresh agent.\n *\n * The `StreamToCompletionResult` is the generator's RETURN value, read via a\n * manual `gen.next()` loop (`while (!res.done) res = await gen.next()` → `res.value`).\n * A plain `for await...of` consumes the yielded messages but discards the return\n * value (EC-1).\n *\n * @internal\n */\n\nimport type { SDKMessage } from \"../../../types/messages.js\";\nimport type {\n RunResult,\n RunToCompletionOptions,\n SendOptions,\n StreamToCompletionResult,\n} from \"../../../types/run.js\";\n\nimport {\n addUsage,\n buildResult,\n classifyRound,\n continuationTail,\n isEmptyRound,\n promptForRound,\n type RoundState,\n resolveContinuation,\n} from \"./run-to-completion.js\";\n\n/** One streamed round handle: drain `stream()` (live events) then `wait()` (terminal result). */\ninterface StreamRun {\n stream(): AsyncGenerator<SDKMessage, void>;\n wait(): Promise<RunResult>;\n}\n\n/** Minimal agent port the streaming driver needs — the instance `.send()` surface. */\nexport interface StreamToCompletionAgent {\n send(message: string, options?: SendOptions): Promise<StreamRun>;\n}\n\n/** A round either reaches a terminal, or yields the state to carry forward. */\ntype RoundDecision = { terminal: StreamToCompletionResult } | { next: RoundState };\n\n/**\n * Fold this round's usage, classify it (reusing the M1 policy), and decide\n * whether to finish or carry state into the next round. Splits the decision out\n * of the generator body to keep its cognitive complexity in budget.\n */\nfunction decideRound(\n result: RunResult,\n round: number,\n maxRounds: number,\n state: RoundState,\n): RoundDecision {\n const usage = addUsage(state.usage, result.usage);\n const decision = classifyRound(result, round, maxRounds, state.emptyStreak);\n if (decision !== \"continue\") return { terminal: buildResult(decision, round, result, usage) };\n const emptyStreak = isEmptyRound(result) ? state.emptyStreak + 1 : 0;\n return { next: { usage, emptyStreak } };\n}\n\n/**\n * Drive `agent.send()` until a terminal, YIELDING each round's `SDKMessage`s\n * live. Returns the {@link StreamToCompletionResult} (the generator return value).\n *\n * @internal\n */\nexport async function* streamToCompletionImpl(\n agent: StreamToCompletionAgent,\n message: string,\n options?: RunToCompletionOptions,\n): AsyncGenerator<SDKMessage, StreamToCompletionResult> {\n const cfg = resolveContinuation(options);\n let state = cfg.state;\n\n for (let round = 0; ; round += 1) {\n const prompt = promptForRound(round, message, cfg.continuationPrompt);\n // SE3 — a continuation round is a driver-initiated turn; stamp its provenance.\n const roundOptions =\n round === 0\n ? cfg.sendOptions\n : { ...(cfg.sendOptions ?? {}), origin: { kind: \"auto-continuation\" as const } };\n const run = await agent.send(prompt, roundOptions);\n\n // (a) STREAMING: delegate the round's events live, before classifying.\n yield* run.stream();\n const result = await run.wait();\n\n const decision = decideRound(result, round, cfg.maxRounds, state);\n if (\"terminal\" in decision) return decision.terminal;\n\n state = decision.next;\n const aborted = await continuationTail(round, result, state.usage, cfg.onTruncated, cfg.signal);\n if (aborted !== undefined) return aborted;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/internal/runtime/lifecycle/stream-to-completion.ts"],"names":[],"mappings":";;;AA2DA,SAAS,WAAA,CACP,MAAA,EACA,KAAA,EACA,SAAA,EACA,KAAA,EACe;AACf,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,KAAA,CAAM,KAAA,EAAO,OAAO,KAAK,CAAA;AAChD,EAAA,MAAM,WAAW,aAAA,CAAc,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,MAAM,WAAW,CAAA;AAC1E,EAAA,IAAI,QAAA,KAAa,UAAA,EAAY,OAAO,EAAE,QAAA,EAAU,YAAY,QAAA,EAAU,KAAA,EAAO,MAAA,EAAQ,KAAK,CAAA,EAAE;AAC5F,EAAA,MAAM,cAAc,YAAA,CAAa,MAAM,CAAA,GAAI,KAAA,CAAM,cAAc,CAAA,GAAI,CAAA;AACnE,EAAA,OAAO,EAAE,IAAA,EAAM,EAAE,KAAA,EAAO,aAAY,EAAE;AACxC;AAQA,gBAAuB,sBAAA,CACrB,KAAA,EACA,OAAA,EACA,OAAA,EACsD;AACtD,EAAA,MAAM,GAAA,GAAM,oBAAoB,OAAO,CAAA;AACvC,EAAA,IAAI,QAAQ,GAAA,CAAI,KAAA;AAEhB,EAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,IAAK,KAAA,IAAS,CAAA,EAAG;AAChC,IAAA,MAAM,MAAA,GAAS,cAAA,CAAe,KAAA,EAAO,OAAA,EAAS,IAAI,kBAAkB,CAAA;AAEpE,IAAA,MAAM,YAAA,GACJ,KAAA,KAAU,CAAA,GACN,GAAA,CAAI,cACJ,EAAE,GAAI,GAAA,CAAI,WAAA,IAAe,EAAC,EAAI,MAAA,EAAQ,EAAE,IAAA,EAAM,qBAA6B,EAAE;AACnF,IAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,IAAA,CAAK,QAAQ,YAAY,CAAA;AAGjD,IAAA,OAAO,IAAI,MAAA,EAAO;AAClB,IAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,IAAA,EAAK;AAE9B,IAAA,MAAM,WAAW,WAAA,CAAY,MAAA,EAAQ,KAAA,EAAO,GAAA,CAAI,WAAW,KAAK,CAAA;AAChE,IAAA,IAAI,UAAA,IAAc,QAAA,EAAU,OAAO,QAAA,CAAS,QAAA;AAE5C,IAAA,KAAA,GAAQ,QAAA,CAAS,IAAA;AACjB,IAAA,MAAM,OAAA,GAAU,MAAM,gBAAA,CAAiB,KAAA,EAAO,MAAA,EAAQ,MAAM,KAAA,EAAO,GAAA,CAAI,WAAA,EAAa,GAAA,CAAI,MAAM,CAAA;AAC9F,IAAA,IAAI,OAAA,KAAY,QAAW,OAAO,OAAA;AAAA,EACpC;AACF","file":"stream-to-completion-QV5HCL3J.js","sourcesContent":["/**\n * `streamToCompletion` — the STREAMING continuation driver (V3-4, plan\n * v34-stream-to-completion). The streaming twin of `runToCompletion`: it yields\n * each round's `SDKMessage`s LIVE (the V3-4 (a) gap a UI needs) while reusing the\n * SAME terminal policy as the M1 driver — `classifyRound` (done / step_limit /\n * no_progress) + bounded re-prompt + `addUsage` aggregation. It is NOT a second\n * policy (D1): the only difference from `runToCompletion` is surfacing events over\n * `Run.stream()` instead of returning only the final `Run.wait()` result.\n *\n * Stateful, like `runToCompletion` (the agent's session preserves history via the\n * native transcript; the continuation prompt is short). A stateless consumer\n * reconstructs history from the on-disk native transcript into a fresh agent.\n *\n * The `StreamToCompletionResult` is the generator's RETURN value, read via a\n * manual `gen.next()` loop (`while (!res.done) res = await gen.next()` → `res.value`).\n * A plain `for await...of` consumes the yielded messages but discards the return\n * value (EC-1).\n *\n * @internal\n */\n\nimport type { SDKMessage } from \"../../../types/messages.js\";\nimport type {\n RunResult,\n RunToCompletionOptions,\n SendOptions,\n StreamToCompletionResult,\n} from \"../../../types/run.js\";\n\nimport {\n addUsage,\n buildResult,\n classifyRound,\n continuationTail,\n isEmptyRound,\n promptForRound,\n type RoundState,\n resolveContinuation,\n} from \"./run-to-completion.js\";\n\n/** One streamed round handle: drain `stream()` (live events) then `wait()` (terminal result). */\ninterface StreamRun {\n stream(): AsyncGenerator<SDKMessage, void>;\n wait(): Promise<RunResult>;\n}\n\n/** Minimal agent port the streaming driver needs — the instance `.send()` surface. */\nexport interface StreamToCompletionAgent {\n send(message: string, options?: SendOptions): Promise<StreamRun>;\n}\n\n/** A round either reaches a terminal, or yields the state to carry forward. */\ntype RoundDecision = { terminal: StreamToCompletionResult } | { next: RoundState };\n\n/**\n * Fold this round's usage, classify it (reusing the M1 policy), and decide\n * whether to finish or carry state into the next round. Splits the decision out\n * of the generator body to keep its cognitive complexity in budget.\n */\nfunction decideRound(\n result: RunResult,\n round: number,\n maxRounds: number,\n state: RoundState,\n): RoundDecision {\n const usage = addUsage(state.usage, result.usage);\n const decision = classifyRound(result, round, maxRounds, state.emptyStreak);\n if (decision !== \"continue\") return { terminal: buildResult(decision, round, result, usage) };\n const emptyStreak = isEmptyRound(result) ? state.emptyStreak + 1 : 0;\n return { next: { usage, emptyStreak } };\n}\n\n/**\n * Drive `agent.send()` until a terminal, YIELDING each round's `SDKMessage`s\n * live. Returns the {@link StreamToCompletionResult} (the generator return value).\n *\n * @internal\n */\nexport async function* streamToCompletionImpl(\n agent: StreamToCompletionAgent,\n message: string,\n options?: RunToCompletionOptions,\n): AsyncGenerator<SDKMessage, StreamToCompletionResult> {\n const cfg = resolveContinuation(options);\n let state = cfg.state;\n\n for (let round = 0; ; round += 1) {\n const prompt = promptForRound(round, message, cfg.continuationPrompt);\n // SE3 — a continuation round is a driver-initiated turn; stamp its provenance.\n const roundOptions =\n round === 0\n ? cfg.sendOptions\n : { ...(cfg.sendOptions ?? {}), origin: { kind: \"auto-continuation\" as const } };\n const run = await agent.send(prompt, roundOptions);\n\n // (a) STREAMING: delegate the round's events live, before classifying.\n yield* run.stream();\n const result = await run.wait();\n\n const decision = decideRound(result, round, cfg.maxRounds, state);\n if (\"terminal\" in decision) return decision.terminal;\n\n state = decision.next;\n const aborted = await continuationTail(round, result, state.usage, cfg.onTruncated, cfg.signal);\n if (aborted !== undefined) return aborted;\n }\n}\n"]}
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var chunkVK7MAV65_cjs = require('./chunk-VK7MAV65.cjs');
3
+ var chunkQKLOP4VC_cjs = require('./chunk-QKLOP4VC.cjs');
4
4
 
5
5
  // src/internal/runtime/lifecycle/stream-to-completion.ts
6
6
  function decideRound(result, round, maxRounds, state) {
7
- const usage = chunkVK7MAV65_cjs.addUsage(state.usage, result.usage);
8
- const decision = chunkVK7MAV65_cjs.classifyRound(result, round, maxRounds, state.emptyStreak);
9
- if (decision !== "continue") return { terminal: chunkVK7MAV65_cjs.buildResult(decision, round, result, usage) };
10
- const emptyStreak = chunkVK7MAV65_cjs.isEmptyRound(result) ? state.emptyStreak + 1 : 0;
7
+ const usage = chunkQKLOP4VC_cjs.addUsage(state.usage, result.usage);
8
+ const decision = chunkQKLOP4VC_cjs.classifyRound(result, round, maxRounds, state.emptyStreak);
9
+ if (decision !== "continue") return { terminal: chunkQKLOP4VC_cjs.buildResult(decision, round, result, usage) };
10
+ const emptyStreak = chunkQKLOP4VC_cjs.isEmptyRound(result) ? state.emptyStreak + 1 : 0;
11
11
  return { next: { usage, emptyStreak } };
12
12
  }
13
13
  async function* streamToCompletionImpl(agent, message, options) {
14
- const cfg = chunkVK7MAV65_cjs.resolveContinuation(options);
14
+ const cfg = chunkQKLOP4VC_cjs.resolveContinuation(options);
15
15
  let state = cfg.state;
16
16
  for (let round = 0; ; round += 1) {
17
- const prompt = chunkVK7MAV65_cjs.promptForRound(round, message, cfg.continuationPrompt);
17
+ const prompt = chunkQKLOP4VC_cjs.promptForRound(round, message, cfg.continuationPrompt);
18
18
  const roundOptions = round === 0 ? cfg.sendOptions : { ...cfg.sendOptions ?? {}, origin: { kind: "auto-continuation" } };
19
19
  const run = await agent.send(prompt, roundOptions);
20
20
  yield* run.stream();
@@ -22,11 +22,11 @@ async function* streamToCompletionImpl(agent, message, options) {
22
22
  const decision = decideRound(result, round, cfg.maxRounds, state);
23
23
  if ("terminal" in decision) return decision.terminal;
24
24
  state = decision.next;
25
- const aborted = await chunkVK7MAV65_cjs.continuationTail(round, result, state.usage, cfg.onTruncated, cfg.signal);
25
+ const aborted = await chunkQKLOP4VC_cjs.continuationTail(round, result, state.usage, cfg.onTruncated, cfg.signal);
26
26
  if (aborted !== void 0) return aborted;
27
27
  }
28
28
  }
29
29
 
30
30
  exports.streamToCompletionImpl = streamToCompletionImpl;
31
- //# sourceMappingURL=stream-to-completion-H2MHISSK.cjs.map
32
- //# sourceMappingURL=stream-to-completion-H2MHISSK.cjs.map
31
+ //# sourceMappingURL=stream-to-completion-SRISU5AB.cjs.map
32
+ //# sourceMappingURL=stream-to-completion-SRISU5AB.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/internal/runtime/lifecycle/stream-to-completion.ts"],"names":["addUsage","classifyRound","buildResult","isEmptyRound","resolveContinuation","promptForRound","continuationTail"],"mappings":";;;;;AA2DA,SAAS,WAAA,CACP,MAAA,EACA,KAAA,EACA,SAAA,EACA,KAAA,EACe;AACf,EAAA,MAAM,KAAA,GAAQA,0BAAA,CAAS,KAAA,CAAM,KAAA,EAAO,OAAO,KAAK,CAAA;AAChD,EAAA,MAAM,WAAWC,+BAAA,CAAc,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,MAAM,WAAW,CAAA;AAC1E,EAAA,IAAI,QAAA,KAAa,UAAA,EAAY,OAAO,EAAE,QAAA,EAAUC,8BAAY,QAAA,EAAU,KAAA,EAAO,MAAA,EAAQ,KAAK,CAAA,EAAE;AAC5F,EAAA,MAAM,cAAcC,8BAAA,CAAa,MAAM,CAAA,GAAI,KAAA,CAAM,cAAc,CAAA,GAAI,CAAA;AACnE,EAAA,OAAO,EAAE,IAAA,EAAM,EAAE,KAAA,EAAO,aAAY,EAAE;AACxC;AAQA,gBAAuB,sBAAA,CACrB,KAAA,EACA,OAAA,EACA,OAAA,EACsD;AACtD,EAAA,MAAM,GAAA,GAAMC,sCAAoB,OAAO,CAAA;AACvC,EAAA,IAAI,QAAQ,GAAA,CAAI,KAAA;AAEhB,EAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,IAAK,KAAA,IAAS,CAAA,EAAG;AAChC,IAAA,MAAM,MAAA,GAASC,gCAAA,CAAe,KAAA,EAAO,OAAA,EAAS,IAAI,kBAAkB,CAAA;AAEpE,IAAA,MAAM,YAAA,GACJ,KAAA,KAAU,CAAA,GACN,GAAA,CAAI,cACJ,EAAE,GAAI,GAAA,CAAI,WAAA,IAAe,EAAC,EAAI,MAAA,EAAQ,EAAE,IAAA,EAAM,qBAA6B,EAAE;AACnF,IAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,IAAA,CAAK,QAAQ,YAAY,CAAA;AAGjD,IAAA,OAAO,IAAI,MAAA,EAAO;AAClB,IAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,IAAA,EAAK;AAE9B,IAAA,MAAM,WAAW,WAAA,CAAY,MAAA,EAAQ,KAAA,EAAO,GAAA,CAAI,WAAW,KAAK,CAAA;AAChE,IAAA,IAAI,UAAA,IAAc,QAAA,EAAU,OAAO,QAAA,CAAS,QAAA;AAE5C,IAAA,KAAA,GAAQ,QAAA,CAAS,IAAA;AACjB,IAAA,MAAM,OAAA,GAAU,MAAMC,kCAAA,CAAiB,KAAA,EAAO,MAAA,EAAQ,MAAM,KAAA,EAAO,GAAA,CAAI,WAAA,EAAa,GAAA,CAAI,MAAM,CAAA;AAC9F,IAAA,IAAI,OAAA,KAAY,QAAW,OAAO,OAAA;AAAA,EACpC;AACF","file":"stream-to-completion-H2MHISSK.cjs","sourcesContent":["/**\n * `streamToCompletion` — the STREAMING continuation driver (V3-4, plan\n * v34-stream-to-completion). The streaming twin of `runToCompletion`: it yields\n * each round's `SDKMessage`s LIVE (the V3-4 (a) gap a UI needs) while reusing the\n * SAME terminal policy as the M1 driver — `classifyRound` (done / step_limit /\n * no_progress) + bounded re-prompt + `addUsage` aggregation. It is NOT a second\n * policy (D1): the only difference from `runToCompletion` is surfacing events over\n * `Run.stream()` instead of returning only the final `Run.wait()` result.\n *\n * Stateful, like `runToCompletion` (the agent's session preserves history via the\n * native transcript; the continuation prompt is short). A stateless consumer\n * reconstructs history from the on-disk native transcript into a fresh agent.\n *\n * The `StreamToCompletionResult` is the generator's RETURN value, read via a\n * manual `gen.next()` loop (`while (!res.done) res = await gen.next()` → `res.value`).\n * A plain `for await...of` consumes the yielded messages but discards the return\n * value (EC-1).\n *\n * @internal\n */\n\nimport type { SDKMessage } from \"../../../types/messages.js\";\nimport type {\n RunResult,\n RunToCompletionOptions,\n SendOptions,\n StreamToCompletionResult,\n} from \"../../../types/run.js\";\n\nimport {\n addUsage,\n buildResult,\n classifyRound,\n continuationTail,\n isEmptyRound,\n promptForRound,\n type RoundState,\n resolveContinuation,\n} from \"./run-to-completion.js\";\n\n/** One streamed round handle: drain `stream()` (live events) then `wait()` (terminal result). */\ninterface StreamRun {\n stream(): AsyncGenerator<SDKMessage, void>;\n wait(): Promise<RunResult>;\n}\n\n/** Minimal agent port the streaming driver needs — the instance `.send()` surface. */\nexport interface StreamToCompletionAgent {\n send(message: string, options?: SendOptions): Promise<StreamRun>;\n}\n\n/** A round either reaches a terminal, or yields the state to carry forward. */\ntype RoundDecision = { terminal: StreamToCompletionResult } | { next: RoundState };\n\n/**\n * Fold this round's usage, classify it (reusing the M1 policy), and decide\n * whether to finish or carry state into the next round. Splits the decision out\n * of the generator body to keep its cognitive complexity in budget.\n */\nfunction decideRound(\n result: RunResult,\n round: number,\n maxRounds: number,\n state: RoundState,\n): RoundDecision {\n const usage = addUsage(state.usage, result.usage);\n const decision = classifyRound(result, round, maxRounds, state.emptyStreak);\n if (decision !== \"continue\") return { terminal: buildResult(decision, round, result, usage) };\n const emptyStreak = isEmptyRound(result) ? state.emptyStreak + 1 : 0;\n return { next: { usage, emptyStreak } };\n}\n\n/**\n * Drive `agent.send()` until a terminal, YIELDING each round's `SDKMessage`s\n * live. Returns the {@link StreamToCompletionResult} (the generator return value).\n *\n * @internal\n */\nexport async function* streamToCompletionImpl(\n agent: StreamToCompletionAgent,\n message: string,\n options?: RunToCompletionOptions,\n): AsyncGenerator<SDKMessage, StreamToCompletionResult> {\n const cfg = resolveContinuation(options);\n let state = cfg.state;\n\n for (let round = 0; ; round += 1) {\n const prompt = promptForRound(round, message, cfg.continuationPrompt);\n // SE3 — a continuation round is a driver-initiated turn; stamp its provenance.\n const roundOptions =\n round === 0\n ? cfg.sendOptions\n : { ...(cfg.sendOptions ?? {}), origin: { kind: \"auto-continuation\" as const } };\n const run = await agent.send(prompt, roundOptions);\n\n // (a) STREAMING: delegate the round's events live, before classifying.\n yield* run.stream();\n const result = await run.wait();\n\n const decision = decideRound(result, round, cfg.maxRounds, state);\n if (\"terminal\" in decision) return decision.terminal;\n\n state = decision.next;\n const aborted = await continuationTail(round, result, state.usage, cfg.onTruncated, cfg.signal);\n if (aborted !== undefined) return aborted;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/internal/runtime/lifecycle/stream-to-completion.ts"],"names":["addUsage","classifyRound","buildResult","isEmptyRound","resolveContinuation","promptForRound","continuationTail"],"mappings":";;;;;AA2DA,SAAS,WAAA,CACP,MAAA,EACA,KAAA,EACA,SAAA,EACA,KAAA,EACe;AACf,EAAA,MAAM,KAAA,GAAQA,0BAAA,CAAS,KAAA,CAAM,KAAA,EAAO,OAAO,KAAK,CAAA;AAChD,EAAA,MAAM,WAAWC,+BAAA,CAAc,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,MAAM,WAAW,CAAA;AAC1E,EAAA,IAAI,QAAA,KAAa,UAAA,EAAY,OAAO,EAAE,QAAA,EAAUC,8BAAY,QAAA,EAAU,KAAA,EAAO,MAAA,EAAQ,KAAK,CAAA,EAAE;AAC5F,EAAA,MAAM,cAAcC,8BAAA,CAAa,MAAM,CAAA,GAAI,KAAA,CAAM,cAAc,CAAA,GAAI,CAAA;AACnE,EAAA,OAAO,EAAE,IAAA,EAAM,EAAE,KAAA,EAAO,aAAY,EAAE;AACxC;AAQA,gBAAuB,sBAAA,CACrB,KAAA,EACA,OAAA,EACA,OAAA,EACsD;AACtD,EAAA,MAAM,GAAA,GAAMC,sCAAoB,OAAO,CAAA;AACvC,EAAA,IAAI,QAAQ,GAAA,CAAI,KAAA;AAEhB,EAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,IAAK,KAAA,IAAS,CAAA,EAAG;AAChC,IAAA,MAAM,MAAA,GAASC,gCAAA,CAAe,KAAA,EAAO,OAAA,EAAS,IAAI,kBAAkB,CAAA;AAEpE,IAAA,MAAM,YAAA,GACJ,KAAA,KAAU,CAAA,GACN,GAAA,CAAI,cACJ,EAAE,GAAI,GAAA,CAAI,WAAA,IAAe,EAAC,EAAI,MAAA,EAAQ,EAAE,IAAA,EAAM,qBAA6B,EAAE;AACnF,IAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,IAAA,CAAK,QAAQ,YAAY,CAAA;AAGjD,IAAA,OAAO,IAAI,MAAA,EAAO;AAClB,IAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,IAAA,EAAK;AAE9B,IAAA,MAAM,WAAW,WAAA,CAAY,MAAA,EAAQ,KAAA,EAAO,GAAA,CAAI,WAAW,KAAK,CAAA;AAChE,IAAA,IAAI,UAAA,IAAc,QAAA,EAAU,OAAO,QAAA,CAAS,QAAA;AAE5C,IAAA,KAAA,GAAQ,QAAA,CAAS,IAAA;AACjB,IAAA,MAAM,OAAA,GAAU,MAAMC,kCAAA,CAAiB,KAAA,EAAO,MAAA,EAAQ,MAAM,KAAA,EAAO,GAAA,CAAI,WAAA,EAAa,GAAA,CAAI,MAAM,CAAA;AAC9F,IAAA,IAAI,OAAA,KAAY,QAAW,OAAO,OAAA;AAAA,EACpC;AACF","file":"stream-to-completion-SRISU5AB.cjs","sourcesContent":["/**\n * `streamToCompletion` — the STREAMING continuation driver (V3-4, plan\n * v34-stream-to-completion). The streaming twin of `runToCompletion`: it yields\n * each round's `SDKMessage`s LIVE (the V3-4 (a) gap a UI needs) while reusing the\n * SAME terminal policy as the M1 driver — `classifyRound` (done / step_limit /\n * no_progress) + bounded re-prompt + `addUsage` aggregation. It is NOT a second\n * policy (D1): the only difference from `runToCompletion` is surfacing events over\n * `Run.stream()` instead of returning only the final `Run.wait()` result.\n *\n * Stateful, like `runToCompletion` (the agent's session preserves history via the\n * native transcript; the continuation prompt is short). A stateless consumer\n * reconstructs history from the on-disk native transcript into a fresh agent.\n *\n * The `StreamToCompletionResult` is the generator's RETURN value, read via a\n * manual `gen.next()` loop (`while (!res.done) res = await gen.next()` → `res.value`).\n * A plain `for await...of` consumes the yielded messages but discards the return\n * value (EC-1).\n *\n * @internal\n */\n\nimport type { SDKMessage } from \"../../../types/messages.js\";\nimport type {\n RunResult,\n RunToCompletionOptions,\n SendOptions,\n StreamToCompletionResult,\n} from \"../../../types/run.js\";\n\nimport {\n addUsage,\n buildResult,\n classifyRound,\n continuationTail,\n isEmptyRound,\n promptForRound,\n type RoundState,\n resolveContinuation,\n} from \"./run-to-completion.js\";\n\n/** One streamed round handle: drain `stream()` (live events) then `wait()` (terminal result). */\ninterface StreamRun {\n stream(): AsyncGenerator<SDKMessage, void>;\n wait(): Promise<RunResult>;\n}\n\n/** Minimal agent port the streaming driver needs — the instance `.send()` surface. */\nexport interface StreamToCompletionAgent {\n send(message: string, options?: SendOptions): Promise<StreamRun>;\n}\n\n/** A round either reaches a terminal, or yields the state to carry forward. */\ntype RoundDecision = { terminal: StreamToCompletionResult } | { next: RoundState };\n\n/**\n * Fold this round's usage, classify it (reusing the M1 policy), and decide\n * whether to finish or carry state into the next round. Splits the decision out\n * of the generator body to keep its cognitive complexity in budget.\n */\nfunction decideRound(\n result: RunResult,\n round: number,\n maxRounds: number,\n state: RoundState,\n): RoundDecision {\n const usage = addUsage(state.usage, result.usage);\n const decision = classifyRound(result, round, maxRounds, state.emptyStreak);\n if (decision !== \"continue\") return { terminal: buildResult(decision, round, result, usage) };\n const emptyStreak = isEmptyRound(result) ? state.emptyStreak + 1 : 0;\n return { next: { usage, emptyStreak } };\n}\n\n/**\n * Drive `agent.send()` until a terminal, YIELDING each round's `SDKMessage`s\n * live. Returns the {@link StreamToCompletionResult} (the generator return value).\n *\n * @internal\n */\nexport async function* streamToCompletionImpl(\n agent: StreamToCompletionAgent,\n message: string,\n options?: RunToCompletionOptions,\n): AsyncGenerator<SDKMessage, StreamToCompletionResult> {\n const cfg = resolveContinuation(options);\n let state = cfg.state;\n\n for (let round = 0; ; round += 1) {\n const prompt = promptForRound(round, message, cfg.continuationPrompt);\n // SE3 — a continuation round is a driver-initiated turn; stamp its provenance.\n const roundOptions =\n round === 0\n ? cfg.sendOptions\n : { ...(cfg.sendOptions ?? {}), origin: { kind: \"auto-continuation\" as const } };\n const run = await agent.send(prompt, roundOptions);\n\n // (a) STREAMING: delegate the round's events live, before classifying.\n yield* run.stream();\n const result = await run.wait();\n\n const decision = decideRound(result, round, cfg.maxRounds, state);\n if (\"terminal\" in decision) return decision.terminal;\n\n state = decision.next;\n const aborted = await continuationTail(round, result, state.usage, cfg.onTruncated, cfg.signal);\n if (aborted !== undefined) return aborted;\n }\n}\n"]}