@theokit/sdk 4.36.0 → 4.37.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 (301) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/agent-K5LYVJGJ.cjs +51 -0
  3. package/dist/{agent-P77NPBF4.cjs.map → agent-K5LYVJGJ.cjs.map} +1 -1
  4. package/dist/agent-ODWMOAEC.js +42 -0
  5. package/dist/{agent-H6HL5ITH.js.map → agent-ODWMOAEC.js.map} +1 -1
  6. package/dist/agent.d.ts +2 -1
  7. package/dist/auth/index.cjs +15 -15
  8. package/dist/auth/index.js +4 -4
  9. package/dist/{batch-2FSD2UNL.cjs → batch-3SEPDXCU.cjs} +23 -23
  10. package/dist/{batch-2FSD2UNL.cjs.map → batch-3SEPDXCU.cjs.map} +1 -1
  11. package/dist/{batch-MR2HKYMS.js → batch-SY5GZLFD.js} +9 -9
  12. package/dist/{batch-MR2HKYMS.js.map → batch-SY5GZLFD.js.map} +1 -1
  13. package/dist/{chunk-JLMXKTBX.cjs → chunk-2423XDPT.cjs} +26 -26
  14. package/dist/{chunk-JLMXKTBX.cjs.map → chunk-2423XDPT.cjs.map} +1 -1
  15. package/dist/{chunk-5IB2UKSN.js → chunk-2WFB5ZOX.js} +5 -5
  16. package/dist/{chunk-5IB2UKSN.js.map → chunk-2WFB5ZOX.js.map} +1 -1
  17. package/dist/{chunk-EPYZOCOL.cjs → chunk-3ILFUXNE.cjs} +5 -5
  18. package/dist/{chunk-EPYZOCOL.cjs.map → chunk-3ILFUXNE.cjs.map} +1 -1
  19. package/dist/{chunk-KSKU6JY6.cjs → chunk-3O2ELBST.cjs} +5 -5
  20. package/dist/{chunk-KSKU6JY6.cjs.map → chunk-3O2ELBST.cjs.map} +1 -1
  21. package/dist/{chunk-M2PU44HP.cjs → chunk-4YB7B3RP.cjs} +8 -8
  22. package/dist/{chunk-M2PU44HP.cjs.map → chunk-4YB7B3RP.cjs.map} +1 -1
  23. package/dist/{chunk-S2BBRVQX.js → chunk-56OXYUZE.js} +8 -7
  24. package/dist/chunk-56OXYUZE.js.map +1 -0
  25. package/dist/{chunk-D42XHI4O.cjs → chunk-56ZM6P7Z.cjs} +13 -14
  26. package/dist/chunk-56ZM6P7Z.cjs.map +1 -0
  27. package/dist/{chunk-7BTE3RXJ.js → chunk-5SB4V74H.js} +7 -8
  28. package/dist/chunk-5SB4V74H.js.map +1 -0
  29. package/dist/{chunk-MZ5ZRORA.cjs → chunk-6EDQBX7U.cjs} +17 -16
  30. package/dist/chunk-6EDQBX7U.cjs.map +1 -0
  31. package/dist/{chunk-RKG6QFCJ.js → chunk-6VP3XGEK.js} +4 -4
  32. package/dist/{chunk-RKG6QFCJ.js.map → chunk-6VP3XGEK.js.map} +1 -1
  33. package/dist/{chunk-KAP4GJHO.js → chunk-77WHPVXE.js} +10 -11
  34. package/dist/chunk-77WHPVXE.js.map +1 -0
  35. package/dist/{chunk-LALRCFSN.cjs → chunk-7DXLNNKH.cjs} +4 -4
  36. package/dist/{chunk-LALRCFSN.cjs.map → chunk-7DXLNNKH.cjs.map} +1 -1
  37. package/dist/{chunk-WEHUJ7ZS.cjs → chunk-ALU3KC4G.cjs} +267 -120
  38. package/dist/chunk-ALU3KC4G.cjs.map +1 -0
  39. package/dist/{chunk-Z2OC3UIW.cjs → chunk-BJMKQOY2.cjs} +11 -11
  40. package/dist/{chunk-Z2OC3UIW.cjs.map → chunk-BJMKQOY2.cjs.map} +1 -1
  41. package/dist/{chunk-WLKFWQSJ.js → chunk-CD73YHEH.js} +3 -3
  42. package/dist/{chunk-WLKFWQSJ.js.map → chunk-CD73YHEH.js.map} +1 -1
  43. package/dist/{chunk-BXV2QUIC.js → chunk-CSZRJ4RE.js} +6 -5
  44. package/dist/chunk-CSZRJ4RE.js.map +1 -0
  45. package/dist/{chunk-6M6A6WWW.cjs → chunk-D4ZUJTFB.cjs} +9 -10
  46. package/dist/chunk-D4ZUJTFB.cjs.map +1 -0
  47. package/dist/{chunk-XAUBQMQU.js → chunk-DCJ5MCJ3.js} +7 -7
  48. package/dist/{chunk-XAUBQMQU.js.map → chunk-DCJ5MCJ3.js.map} +1 -1
  49. package/dist/{chunk-Y66627E4.cjs → chunk-E7X2B66S.cjs} +24 -24
  50. package/dist/{chunk-Y66627E4.cjs.map → chunk-E7X2B66S.cjs.map} +1 -1
  51. package/dist/{chunk-6CLRANZA.js → chunk-EXQV452X.js} +3 -3
  52. package/dist/{chunk-6CLRANZA.js.map → chunk-EXQV452X.js.map} +1 -1
  53. package/dist/{chunk-EKFA76N4.js → chunk-F3X7Q4BF.js} +344 -453
  54. package/dist/chunk-F3X7Q4BF.js.map +1 -0
  55. package/dist/{chunk-XIG2IE3L.js → chunk-F6Y4IEQM.js} +5 -4
  56. package/dist/chunk-F6Y4IEQM.js.map +1 -0
  57. package/dist/{chunk-N24XBYNX.cjs → chunk-FAY3QDGC.cjs} +11 -10
  58. package/dist/chunk-FAY3QDGC.cjs.map +1 -0
  59. package/dist/{chunk-JD74LN7R.cjs → chunk-FK4EJD2I.cjs} +7 -6
  60. package/dist/chunk-FK4EJD2I.cjs.map +1 -0
  61. package/dist/{chunk-IX2LKBCD.js → chunk-GL7CFBVC.js} +176 -35
  62. package/dist/chunk-GL7CFBVC.js.map +1 -0
  63. package/dist/{chunk-77FOZCOT.js → chunk-GLUWH6JO.js} +6 -5
  64. package/dist/chunk-GLUWH6JO.js.map +1 -0
  65. package/dist/{chunk-RZQ6E5YZ.cjs → chunk-GM7QDQ24.cjs} +11 -11
  66. package/dist/{chunk-RZQ6E5YZ.cjs.map → chunk-GM7QDQ24.cjs.map} +1 -1
  67. package/dist/{chunk-G4WI3VW2.cjs → chunk-H5YVJB4K.cjs} +9 -10
  68. package/dist/chunk-H5YVJB4K.cjs.map +1 -0
  69. package/dist/{chunk-HRA3CPGG.js → chunk-HEN5WXXI.js} +9 -8
  70. package/dist/chunk-HEN5WXXI.js.map +1 -0
  71. package/dist/{chunk-LU7VALW5.js → chunk-I35DI7ES.js} +3 -3
  72. package/dist/{chunk-LU7VALW5.js.map → chunk-I35DI7ES.js.map} +1 -1
  73. package/dist/{chunk-TIZ4TS5V.cjs → chunk-ICYBIC6N.cjs} +8 -7
  74. package/dist/chunk-ICYBIC6N.cjs.map +1 -0
  75. package/dist/{chunk-2DYI7MIF.cjs → chunk-IEUDKUPM.cjs} +8 -8
  76. package/dist/{chunk-2DYI7MIF.cjs.map → chunk-IEUDKUPM.cjs.map} +1 -1
  77. package/dist/{chunk-AIDNODHJ.cjs → chunk-ITLS5LRF.cjs} +11 -11
  78. package/dist/{chunk-AIDNODHJ.cjs.map → chunk-ITLS5LRF.cjs.map} +1 -1
  79. package/dist/{chunk-M72RJVPC.js → chunk-JNIWFCKI.js} +3 -3
  80. package/dist/{chunk-M72RJVPC.js.map → chunk-JNIWFCKI.js.map} +1 -1
  81. package/dist/{chunk-LEJXBUBD.js → chunk-LISL36B6.js} +5 -5
  82. package/dist/{chunk-LEJXBUBD.js.map → chunk-LISL36B6.js.map} +1 -1
  83. package/dist/{chunk-3XJ7CS2C.cjs → chunk-LMWXF4LL.cjs} +554 -666
  84. package/dist/chunk-LMWXF4LL.cjs.map +1 -0
  85. package/dist/{chunk-BEURCLDV.cjs → chunk-LTCOPATU.cjs} +9 -3
  86. package/dist/chunk-LTCOPATU.cjs.map +1 -0
  87. package/dist/{chunk-TQKCU7CL.js → chunk-M5ZQBOIZ.js} +3 -3
  88. package/dist/{chunk-TQKCU7CL.js.map → chunk-M5ZQBOIZ.js.map} +1 -1
  89. package/dist/{chunk-A44COQJJ.cjs → chunk-MHCKWQR3.cjs} +8 -8
  90. package/dist/{chunk-A44COQJJ.cjs.map → chunk-MHCKWQR3.cjs.map} +1 -1
  91. package/dist/{chunk-7S7KKUO6.cjs → chunk-MRODLUGY.cjs} +4 -4
  92. package/dist/{chunk-7S7KKUO6.cjs.map → chunk-MRODLUGY.cjs.map} +1 -1
  93. package/dist/{chunk-BOTK6ZUP.js → chunk-MXSMAGDU.js} +3 -3
  94. package/dist/{chunk-BOTK6ZUP.js.map → chunk-MXSMAGDU.js.map} +1 -1
  95. package/dist/{chunk-5PZMMF4H.js → chunk-NFCKEBHI.js} +3 -3
  96. package/dist/{chunk-5PZMMF4H.js.map → chunk-NFCKEBHI.js.map} +1 -1
  97. package/dist/{chunk-6M4ODB2V.cjs → chunk-NNSKJCBM.cjs} +10 -10
  98. package/dist/{chunk-6M4ODB2V.cjs.map → chunk-NNSKJCBM.cjs.map} +1 -1
  99. package/dist/{chunk-4WL52CXU.cjs → chunk-NQ4AC2U4.cjs} +9 -9
  100. package/dist/{chunk-4WL52CXU.cjs.map → chunk-NQ4AC2U4.cjs.map} +1 -1
  101. package/dist/{chunk-YRXTIESB.cjs → chunk-P34DHHYQ.cjs} +4 -4
  102. package/dist/{chunk-YRXTIESB.cjs.map → chunk-P34DHHYQ.cjs.map} +1 -1
  103. package/dist/{chunk-HFPGOTVF.cjs → chunk-PAEJPLVN.cjs} +4 -4
  104. package/dist/{chunk-HFPGOTVF.cjs.map → chunk-PAEJPLVN.cjs.map} +1 -1
  105. package/dist/{chunk-S5RCBTSF.js → chunk-QFMXXUUT.js} +3 -3
  106. package/dist/{chunk-S5RCBTSF.js.map → chunk-QFMXXUUT.js.map} +1 -1
  107. package/dist/{chunk-V4XRLPEF.js → chunk-QGDKZDPN.js} +3 -3
  108. package/dist/{chunk-V4XRLPEF.js.map → chunk-QGDKZDPN.js.map} +1 -1
  109. package/dist/{chunk-DHLZIMP6.cjs → chunk-QUFSDDNU.cjs} +15 -15
  110. package/dist/{chunk-DHLZIMP6.cjs.map → chunk-QUFSDDNU.cjs.map} +1 -1
  111. package/dist/{chunk-BFWPZMG7.js → chunk-SDIBMLL5.js} +8 -8
  112. package/dist/{chunk-BFWPZMG7.js.map → chunk-SDIBMLL5.js.map} +1 -1
  113. package/dist/{chunk-GIW4L6HY.cjs → chunk-SWIBQFPH.cjs} +4 -4
  114. package/dist/{chunk-GIW4L6HY.cjs.map → chunk-SWIBQFPH.cjs.map} +1 -1
  115. package/dist/{chunk-JTFYYKDT.js → chunk-TAPQWDW2.js} +9 -4
  116. package/dist/chunk-TAPQWDW2.js.map +1 -0
  117. package/dist/{chunk-4GTXATWK.cjs → chunk-THEYGCYS.cjs} +4 -4
  118. package/dist/{chunk-4GTXATWK.cjs.map → chunk-THEYGCYS.cjs.map} +1 -1
  119. package/dist/{chunk-CJVMDRQB.cjs → chunk-TQI3KRXZ.cjs} +5 -4
  120. package/dist/chunk-TQI3KRXZ.cjs.map +1 -0
  121. package/dist/{chunk-LUSXDZPV.cjs → chunk-U2WLFOA3.cjs} +4 -4
  122. package/dist/{chunk-LUSXDZPV.cjs.map → chunk-U2WLFOA3.cjs.map} +1 -1
  123. package/dist/{chunk-FKCC2MED.js → chunk-UQPDFW4E.js} +3 -3
  124. package/dist/{chunk-FKCC2MED.js.map → chunk-UQPDFW4E.js.map} +1 -1
  125. package/dist/{chunk-CR3DGWUQ.js → chunk-VNNK6AKU.js} +3 -3
  126. package/dist/{chunk-CR3DGWUQ.js.map → chunk-VNNK6AKU.js.map} +1 -1
  127. package/dist/{chunk-ANIZEWTU.cjs → chunk-W4QN5CMG.cjs} +9 -8
  128. package/dist/chunk-W4QN5CMG.cjs.map +1 -0
  129. package/dist/{chunk-POQT2OIF.js → chunk-WDGCZDRG.js} +3 -3
  130. package/dist/{chunk-POQT2OIF.js.map → chunk-WDGCZDRG.js.map} +1 -1
  131. package/dist/{chunk-Q56IYTBZ.js → chunk-XAEAMI5H.js} +4 -4
  132. package/dist/{chunk-Q56IYTBZ.js.map → chunk-XAEAMI5H.js.map} +1 -1
  133. package/dist/{chunk-BWT67BI4.cjs → chunk-XAYVHS2B.cjs} +4 -4
  134. package/dist/{chunk-BWT67BI4.cjs.map → chunk-XAYVHS2B.cjs.map} +1 -1
  135. package/dist/{chunk-KIO7QFIV.cjs → chunk-YBFDBOUN.cjs} +8 -8
  136. package/dist/{chunk-KIO7QFIV.cjs.map → chunk-YBFDBOUN.cjs.map} +1 -1
  137. package/dist/{chunk-BNIFFFH3.js → chunk-YCXMSDSP.js} +4 -4
  138. package/dist/{chunk-BNIFFFH3.js.map → chunk-YCXMSDSP.js.map} +1 -1
  139. package/dist/{chunk-UVNG67DG.js → chunk-YDLNI7J6.js} +3 -3
  140. package/dist/{chunk-UVNG67DG.js.map → chunk-YDLNI7J6.js.map} +1 -1
  141. package/dist/{chunk-UAYYNWYJ.js → chunk-YHZXBDAW.js} +5 -4
  142. package/dist/chunk-YHZXBDAW.js.map +1 -0
  143. package/dist/{chunk-OKXUMCGM.js → chunk-YVTNFKZO.js} +5 -5
  144. package/dist/{chunk-OKXUMCGM.js.map → chunk-YVTNFKZO.js.map} +1 -1
  145. package/dist/{chunk-GJAGKFTR.js → chunk-ZJN6NTHE.js} +3 -3
  146. package/dist/{chunk-GJAGKFTR.js.map → chunk-ZJN6NTHE.js.map} +1 -1
  147. package/dist/{chunk-XV2RBL6D.js → chunk-ZW345YOI.js} +8 -9
  148. package/dist/chunk-ZW345YOI.js.map +1 -0
  149. package/dist/compact-session-H5TKLD55.cjs +54 -0
  150. package/dist/{compact-session-BEA3IOON.cjs.map → compact-session-H5TKLD55.cjs.map} +1 -1
  151. package/dist/compact-session-WNKKIIDW.js +17 -0
  152. package/dist/{compact-session-5BDD4HIB.js.map → compact-session-WNKKIIDW.js.map} +1 -1
  153. package/dist/compaction.cjs +16 -16
  154. package/dist/compaction.js +3 -3
  155. package/dist/concurrency.cjs +6 -6
  156. package/dist/concurrency.js +4 -4
  157. package/dist/context-VAYLPT4O.js +5 -0
  158. package/dist/{context-GWANQLX4.js.map → context-VAYLPT4O.js.map} +1 -1
  159. package/dist/context-ZV33V4DC.cjs +22 -0
  160. package/dist/{context-KNWVTZSY.cjs.map → context-ZV33V4DC.cjs.map} +1 -1
  161. package/dist/cron.cjs +28 -28
  162. package/dist/cron.js +27 -27
  163. package/dist/errors.cjs +21 -21
  164. package/dist/errors.js +2 -2
  165. package/dist/eval.cjs +31 -31
  166. package/dist/eval.js +27 -27
  167. package/dist/{executor-Y4MKPIUD.cjs → executor-OZSYXDKF.cjs} +23 -23
  168. package/dist/{executor-Y4MKPIUD.cjs.map → executor-OZSYXDKF.cjs.map} +1 -1
  169. package/dist/{executor-ORJS5GV2.js → executor-PAH72CB5.js} +7 -7
  170. package/dist/{executor-ORJS5GV2.js.map → executor-PAH72CB5.js.map} +1 -1
  171. package/dist/filesystem/index.cjs +7 -7
  172. package/dist/filesystem/index.js +3 -3
  173. package/dist/fs-session-store-6MY7PNI2.js +10 -0
  174. package/dist/{fs-session-store-4ALCDU3K.js.map → fs-session-store-6MY7PNI2.js.map} +1 -1
  175. package/dist/fs-session-store-7E7UPLF2.cjs +19 -0
  176. package/dist/{fs-session-store-IQYE35HX.cjs.map → fs-session-store-7E7UPLF2.cjs.map} +1 -1
  177. package/dist/generate-object-5SCEH2EE.cjs +20 -0
  178. package/dist/{generate-object-H3RNAM6S.cjs.map → generate-object-5SCEH2EE.cjs.map} +1 -1
  179. package/dist/generate-object-I7UD4NWN.js +7 -0
  180. package/dist/{generate-object-YJPDV5BS.js.map → generate-object-I7UD4NWN.js.map} +1 -1
  181. package/dist/index-manager-KKAK7NT3.js +10 -0
  182. package/dist/{index-manager-P7ZUX2RG.js.map → index-manager-KKAK7NT3.js.map} +1 -1
  183. package/dist/index-manager-R6ZJFEZF.cjs +19 -0
  184. package/dist/{index-manager-H7HUMW52.cjs.map → index-manager-R6ZJFEZF.cjs.map} +1 -1
  185. package/dist/index.cjs +124 -129
  186. package/dist/index.cjs.map +1 -1
  187. package/dist/index.d.cts +2 -1
  188. package/dist/index.d.ts +2 -1
  189. package/dist/index.js +45 -50
  190. package/dist/index.js.map +1 -1
  191. package/dist/{inject-session-SMH56NXP.cjs → inject-session-DM4SKTZO.cjs} +8 -8
  192. package/dist/{inject-session-SMH56NXP.cjs.map → inject-session-DM4SKTZO.cjs.map} +1 -1
  193. package/dist/{inject-session-V5FTK72N.js → inject-session-UXNJQTZ6.js} +6 -6
  194. package/dist/{inject-session-V5FTK72N.js.map → inject-session-UXNJQTZ6.js.map} +1 -1
  195. package/dist/internal/diagnostics.d.ts +54 -0
  196. package/dist/internal/local-agent/local-agent-invalidate.d.ts +0 -7
  197. package/dist/internal/local-agent/local-agent-lifecycle.d.ts +13 -0
  198. package/dist/internal/local-agent/local-agent.d.ts +1 -93
  199. package/dist/internal/persistence/index.cjs +25 -25
  200. package/dist/internal/persistence/index.js +6 -6
  201. package/dist/internal/persistence/sqlite-wal.d.cts +0 -9
  202. package/dist/internal/persistence/sqlite-wal.d.ts +0 -9
  203. package/dist/internal/persistence/transcript-ops.d.cts +14 -0
  204. package/dist/internal/persistence/transcript-ops.d.ts +14 -0
  205. package/dist/internal/plugins/lifecycle.d.cts +1 -0
  206. package/dist/internal/plugins/lifecycle.d.ts +1 -0
  207. package/dist/internal/runtime/fixtures/fixture-run-base.d.ts +19 -0
  208. package/dist/internal/runtime/registry/agent-registry.d.ts +0 -1
  209. package/dist/internal/security/index.cjs +13 -13
  210. package/dist/internal/security/index.js +3 -3
  211. package/dist/internal/security/redact.d.cts +0 -18
  212. package/dist/internal/security/redact.d.ts +0 -18
  213. package/dist/judge-call-SP3G3X2Y.cjs +22 -0
  214. package/dist/{judge-call-2FULQ6KL.cjs.map → judge-call-SP3G3X2Y.cjs.map} +1 -1
  215. package/dist/judge-call-TAEIXMYG.js +5 -0
  216. package/dist/{judge-call-D7R3ZTZS.js.map → judge-call-TAEIXMYG.js.map} +1 -1
  217. package/dist/models.cjs +22 -26
  218. package/dist/models.cjs.map +1 -1
  219. package/dist/models.js +13 -17
  220. package/dist/models.js.map +1 -1
  221. package/dist/path-safety.cjs +10 -10
  222. package/dist/path-safety.js +3 -3
  223. package/dist/persistence.cjs +27 -27
  224. package/dist/persistence.cjs.map +1 -1
  225. package/dist/persistence.js +8 -8
  226. package/dist/persistence.js.map +1 -1
  227. package/dist/project.cjs +5 -5
  228. package/dist/project.js +3 -3
  229. package/dist/registry-N3GTKYCI.cjs +46 -0
  230. package/dist/{registry-APYDISL6.cjs.map → registry-N3GTKYCI.cjs.map} +1 -1
  231. package/dist/registry-SOXE4RY6.js +9 -0
  232. package/dist/{registry-34IWWDQQ.js.map → registry-SOXE4RY6.js.map} +1 -1
  233. package/dist/retry.cjs +4 -4
  234. package/dist/retry.js +3 -3
  235. package/dist/sandbox/index.cjs +6 -6
  236. package/dist/sandbox/index.js +2 -2
  237. package/dist/server/errors-envelope.cjs +14 -14
  238. package/dist/server/errors-envelope.js +3 -3
  239. package/dist/session-transcript-6WKLYIN4.js +5 -0
  240. package/dist/{session-transcript-F2ANTA2M.js.map → session-transcript-6WKLYIN4.js.map} +1 -1
  241. package/dist/session-transcript-EAKR4D2W.cjs +50 -0
  242. package/dist/{session-transcript-JXFMPLOT.cjs.map → session-transcript-EAKR4D2W.cjs.map} +1 -1
  243. package/dist/skills.cjs +7 -7
  244. package/dist/skills.js +5 -5
  245. package/dist/stream-object-OFM66VUT.js +7 -0
  246. package/dist/{stream-object-WUQSSRY2.js.map → stream-object-OFM66VUT.js.map} +1 -1
  247. package/dist/stream-object-Y7YCX3BI.cjs +20 -0
  248. package/dist/{stream-object-QEQJJDTI.cjs.map → stream-object-Y7YCX3BI.cjs.map} +1 -1
  249. package/dist/subagents-loader.cjs +6 -6
  250. package/dist/subagents-loader.js +4 -4
  251. package/dist/subscription/index.cjs +3 -3
  252. package/dist/subscription/index.js +2 -2
  253. package/dist/task-store.cjs +7 -7
  254. package/dist/task-store.js +4 -4
  255. package/dist/workflow.cjs +27 -27
  256. package/dist/workflow.js +6 -6
  257. package/package.json +13 -12
  258. package/dist/agent-H6HL5ITH.js +0 -42
  259. package/dist/agent-P77NPBF4.cjs +0 -51
  260. package/dist/chunk-3XJ7CS2C.cjs.map +0 -1
  261. package/dist/chunk-6M6A6WWW.cjs.map +0 -1
  262. package/dist/chunk-77FOZCOT.js.map +0 -1
  263. package/dist/chunk-7BTE3RXJ.js.map +0 -1
  264. package/dist/chunk-ANIZEWTU.cjs.map +0 -1
  265. package/dist/chunk-BEURCLDV.cjs.map +0 -1
  266. package/dist/chunk-BXV2QUIC.js.map +0 -1
  267. package/dist/chunk-CJVMDRQB.cjs.map +0 -1
  268. package/dist/chunk-D42XHI4O.cjs.map +0 -1
  269. package/dist/chunk-EKFA76N4.js.map +0 -1
  270. package/dist/chunk-G4WI3VW2.cjs.map +0 -1
  271. package/dist/chunk-HRA3CPGG.js.map +0 -1
  272. package/dist/chunk-IX2LKBCD.js.map +0 -1
  273. package/dist/chunk-JD74LN7R.cjs.map +0 -1
  274. package/dist/chunk-JTFYYKDT.js.map +0 -1
  275. package/dist/chunk-KAP4GJHO.js.map +0 -1
  276. package/dist/chunk-MZ5ZRORA.cjs.map +0 -1
  277. package/dist/chunk-N24XBYNX.cjs.map +0 -1
  278. package/dist/chunk-S2BBRVQX.js.map +0 -1
  279. package/dist/chunk-TIZ4TS5V.cjs.map +0 -1
  280. package/dist/chunk-UAYYNWYJ.js.map +0 -1
  281. package/dist/chunk-WEHUJ7ZS.cjs.map +0 -1
  282. package/dist/chunk-XIG2IE3L.js.map +0 -1
  283. package/dist/chunk-XV2RBL6D.js.map +0 -1
  284. package/dist/compact-session-5BDD4HIB.js +0 -17
  285. package/dist/compact-session-BEA3IOON.cjs +0 -54
  286. package/dist/context-GWANQLX4.js +0 -5
  287. package/dist/context-KNWVTZSY.cjs +0 -22
  288. package/dist/fs-session-store-4ALCDU3K.js +0 -10
  289. package/dist/fs-session-store-IQYE35HX.cjs +0 -19
  290. package/dist/generate-object-H3RNAM6S.cjs +0 -20
  291. package/dist/generate-object-YJPDV5BS.js +0 -7
  292. package/dist/index-manager-H7HUMW52.cjs +0 -19
  293. package/dist/index-manager-P7ZUX2RG.js +0 -10
  294. package/dist/judge-call-2FULQ6KL.cjs +0 -22
  295. package/dist/judge-call-D7R3ZTZS.js +0 -5
  296. package/dist/registry-34IWWDQQ.js +0 -9
  297. package/dist/registry-APYDISL6.cjs +0 -46
  298. package/dist/session-transcript-F2ANTA2M.js +0 -5
  299. package/dist/session-transcript-JXFMPLOT.cjs +0 -50
  300. package/dist/stream-object-QEQJJDTI.cjs +0 -20
  301. package/dist/stream-object-WUQSSRY2.js +0 -7
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkLUSXDZPV_cjs = require('./chunk-LUSXDZPV.cjs');
3
+ var chunkU2WLFOA3_cjs = require('./chunk-U2WLFOA3.cjs');
4
4
  var chunkIT3PWBW4_cjs = require('./chunk-IT3PWBW4.cjs');
5
5
  var chunk6JSIEDKL_cjs = require('./chunk-6JSIEDKL.cjs');
6
- var chunk2DYI7MIF_cjs = require('./chunk-2DYI7MIF.cjs');
7
- var chunkM2PU44HP_cjs = require('./chunk-M2PU44HP.cjs');
8
- var chunkD42XHI4O_cjs = require('./chunk-D42XHI4O.cjs');
9
- var chunkA44COQJJ_cjs = require('./chunk-A44COQJJ.cjs');
10
- var chunkBEURCLDV_cjs = require('./chunk-BEURCLDV.cjs');
6
+ var chunkIEUDKUPM_cjs = require('./chunk-IEUDKUPM.cjs');
7
+ var chunk4YB7B3RP_cjs = require('./chunk-4YB7B3RP.cjs');
8
+ var chunk56ZM6P7Z_cjs = require('./chunk-56ZM6P7Z.cjs');
9
+ var chunkMHCKWQR3_cjs = require('./chunk-MHCKWQR3.cjs');
10
+ var chunkLTCOPATU_cjs = require('./chunk-LTCOPATU.cjs');
11
11
  var fs = require('fs');
12
12
  var promises = require('fs/promises');
13
13
  var os = require('os');
@@ -16,7 +16,7 @@ var url = require('url');
16
16
  var module$1 = require('module');
17
17
 
18
18
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
19
- var discoveryState = chunkD42XHI4O_cjs.globalSingleton("theokit-sdk.providers.discovered", () => ({
19
+ var discoveryState = chunk56ZM6P7Z_cjs.globalSingleton("theokit-sdk.providers.discovered", () => ({
20
20
  done: false
21
21
  }));
22
22
  function pluginsRoot() {
@@ -38,19 +38,19 @@ function loadTrustedNames() {
38
38
  else discarded += 1;
39
39
  }
40
40
  if (discarded > 0) {
41
- process.stderr.write(
41
+ chunkLTCOPATU_cjs.diag(
42
42
  `[theokit-sdk] WARN: ${path} contains ${discarded} non-string entr${discarded === 1 ? "y" : "ies"} \u2014 discarded (entries must be plugin-name strings)
43
43
  `
44
44
  );
45
45
  }
46
46
  } else {
47
- process.stderr.write(
47
+ chunkLTCOPATU_cjs.diag(
48
48
  `[theokit-sdk] WARN: ${path} is not a JSON array \u2014 trusting NO provider plugins (fail-closed)
49
49
  `
50
50
  );
51
51
  }
52
52
  } catch {
53
- process.stderr.write(
53
+ chunkLTCOPATU_cjs.diag(
54
54
  `[theokit-sdk] WARN: ${path} is not valid JSON \u2014 trusting NO provider plugins (fail-closed)
55
55
  `
56
56
  );
@@ -76,7 +76,7 @@ async function discoverProviderPlugins() {
76
76
  const trusted = loadTrustedNames();
77
77
  for (const entry of entries) {
78
78
  if (!trusted.has(entry)) {
79
- process.stderr.write(
79
+ chunkLTCOPATU_cjs.diag(
80
80
  `[theokit-sdk] WARN: provider plugin "${entry}" is present but NOT trusted \u2014 skipped. To trust it, add "${entry}" to ${trustFilePath()} (JSON array of names) or THEOKIT_TRUSTED_PROVIDERS (comma-separated), then restart the process.
81
81
  `
82
82
  );
@@ -95,13 +95,13 @@ async function loadOne(dir, entryName) {
95
95
  if (plugin !== null && typeof plugin === "object" && plugin.kind === "model-provider") {
96
96
  const profile = plugin.profile;
97
97
  if (profile !== void 0 && typeof profile === "object") {
98
- chunkD42XHI4O_cjs.registerProvider(profile);
98
+ chunk56ZM6P7Z_cjs.registerProvider(profile);
99
99
  }
100
100
  }
101
101
  return;
102
102
  } catch (err) {
103
103
  const msg = err instanceof Error ? err.message : String(err);
104
- process.stderr.write(`[theokit-sdk] failed to load provider plugin "${entryName}": ${msg}
104
+ chunkLTCOPATU_cjs.diag(`[theokit-sdk] failed to load provider plugin "${entryName}": ${msg}
105
105
  `);
106
106
  return;
107
107
  }
@@ -124,7 +124,7 @@ function truncateRaw(body) {
124
124
  if (body === null || body === void 0) return void 0;
125
125
  const s = typeof body === "string" ? body : JSON.stringify(body);
126
126
  const truncated = s.length <= RAW_MAX_BYTES ? s : `${s.slice(0, RAW_MAX_BYTES)}\u2026`;
127
- return chunkBEURCLDV_cjs.redactSecrets(truncated);
127
+ return chunkLTCOPATU_cjs.redactSecrets(truncated);
128
128
  }
129
129
  function buildErrorMetadata(args) {
130
130
  const retryAfter = parseRetryAfter(args.headers);
@@ -153,24 +153,24 @@ function mapAnthropicError(args) {
153
153
  body
154
154
  });
155
155
  if (status === 401 || status === 403) {
156
- return new chunkA44COQJJ_cjs.AuthenticationError(message, { code: "anthropic_auth_failed", metadata });
156
+ return new chunkMHCKWQR3_cjs.AuthenticationError(message, { code: "anthropic_auth_failed", metadata });
157
157
  }
158
158
  if (status === 429) {
159
- return new chunkA44COQJJ_cjs.RateLimitError(message, { code: "anthropic_rate_limit", metadata });
159
+ return new chunkMHCKWQR3_cjs.RateLimitError(message, { code: "anthropic_rate_limit", metadata });
160
160
  }
161
161
  if (status === 400) {
162
- return new chunkA44COQJJ_cjs.ConfigurationError(message, {
162
+ return new chunkMHCKWQR3_cjs.ConfigurationError(message, {
163
163
  code: `anthropic_${code}`,
164
164
  metadata
165
165
  });
166
166
  }
167
167
  if (status === 408) {
168
- return new chunkA44COQJJ_cjs.NetworkError(message, { code: "anthropic_timeout", metadata });
168
+ return new chunkMHCKWQR3_cjs.NetworkError(message, { code: "anthropic_timeout", metadata });
169
169
  }
170
170
  if (status >= 500 && status < 600) {
171
- return new chunkA44COQJJ_cjs.NetworkError(message, { code: "anthropic_server_error", metadata });
171
+ return new chunkMHCKWQR3_cjs.NetworkError(message, { code: "anthropic_server_error", metadata });
172
172
  }
173
- return new chunkA44COQJJ_cjs.UnknownAgentError(message, { code: "anthropic_unknown", metadata });
173
+ return new chunkMHCKWQR3_cjs.UnknownAgentError(message, { code: "anthropic_unknown", metadata });
174
174
  }
175
175
  function mapAnthropicStatusToCode(status, body) {
176
176
  if (status === 401 || status === 403) return "auth_failed";
@@ -240,7 +240,7 @@ function toBlockToolResultContent(content) {
240
240
  function toStringToolResultContent(content, providerName) {
241
241
  if (typeof content === "string") return content;
242
242
  if (content.some((block) => block.type === "image")) {
243
- throw new chunkA44COQJJ_cjs.ConfigurationError(
243
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
244
244
  `provider "${providerName}" does not support image content in tool results`
245
245
  );
246
246
  }
@@ -406,7 +406,7 @@ function readWithIdleTimeout(reader, idleTimeoutMs) {
406
406
  (resolve, reject) => {
407
407
  const timer = setTimeout(() => {
408
408
  reject(
409
- new chunkA44COQJJ_cjs.NetworkError(`SSE stream idle for ${idleTimeoutMs}ms \u2014 upstream stalled`, {
409
+ new chunkMHCKWQR3_cjs.NetworkError(`SSE stream idle for ${idleTimeoutMs}ms \u2014 upstream stalled`, {
410
410
  code: "stream_idle_timeout"
411
411
  })
412
412
  );
@@ -483,9 +483,9 @@ function ehAbort(err) {
483
483
  }
484
484
  function wrapTransportError(err, ctx) {
485
485
  if (ehAbort(err)) return err;
486
- if (err instanceof chunkA44COQJJ_cjs.NetworkError) return err;
486
+ if (err instanceof chunkMHCKWQR3_cjs.NetworkError) return err;
487
487
  const detalhe = err instanceof Error ? err.message : String(err);
488
- return new chunkA44COQJJ_cjs.NetworkError(`${ctx.providerId} transport failure on ${ctx.endpoint}: ${detalhe}`, {
488
+ return new chunkMHCKWQR3_cjs.NetworkError(`${ctx.providerId} transport failure on ${ctx.endpoint}: ${detalhe}`, {
489
489
  code: "transport_failure",
490
490
  cause: err
491
491
  });
@@ -549,7 +549,7 @@ var AnthropicClient = class {
549
549
  for (const event of events) yield event;
550
550
  }
551
551
  if (!accumulator.finishReasonSeen) {
552
- throw new chunkA44COQJJ_cjs.NetworkError("Anthropic SSE stream truncated (no stop_reason)", {
552
+ throw new chunkMHCKWQR3_cjs.NetworkError("Anthropic SSE stream truncated (no stop_reason)", {
553
553
  code: "stream_truncated"
554
554
  });
555
555
  }
@@ -690,19 +690,19 @@ function mapBedrockError(args) {
690
690
  const metadata = buildBedrockMetadata(args, code);
691
691
  switch (code) {
692
692
  case "rate_limit":
693
- return new chunkA44COQJJ_cjs.RateLimitError(`Bedrock throttled: ${message}`, { metadata });
693
+ return new chunkMHCKWQR3_cjs.RateLimitError(`Bedrock throttled: ${message}`, { metadata });
694
694
  case "auth_failed":
695
- return new chunkA44COQJJ_cjs.AuthenticationError(`Bedrock auth: ${message}`, { metadata });
695
+ return new chunkMHCKWQR3_cjs.AuthenticationError(`Bedrock auth: ${message}`, { metadata });
696
696
  case "invalid_request": {
697
697
  const friendly = message.includes("use case details") ? `Bedrock account setup required: ${message} (AWS Console \u2192 Bedrock \u2192 Model access \u2192 Anthropic \u2192 Submit use case form, then retry in 15 min.)` : `Bedrock validation: ${message}`;
698
- return new chunkA44COQJJ_cjs.ConfigurationError(friendly, { metadata });
698
+ return new chunkMHCKWQR3_cjs.ConfigurationError(friendly, { metadata });
699
699
  }
700
700
  case "timeout":
701
- return new chunkA44COQJJ_cjs.NetworkError(`Bedrock timeout: ${message}`, { metadata });
701
+ return new chunkMHCKWQR3_cjs.NetworkError(`Bedrock timeout: ${message}`, { metadata });
702
702
  case "server_error":
703
- return new chunkA44COQJJ_cjs.NetworkError(`Bedrock server error: ${message}`, { metadata });
703
+ return new chunkMHCKWQR3_cjs.NetworkError(`Bedrock server error: ${message}`, { metadata });
704
704
  default:
705
- return new chunkA44COQJJ_cjs.UnknownAgentError(`Bedrock unknown: ${message}`, { metadata });
705
+ return new chunkMHCKWQR3_cjs.UnknownAgentError(`Bedrock unknown: ${message}`, { metadata });
706
706
  }
707
707
  }
708
708
  function parseBody(body) {
@@ -726,7 +726,7 @@ async function resolveBedrockToken(region) {
726
726
  return cachedToken.value;
727
727
  }
728
728
  try {
729
- const r = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-WEHUJ7ZS.cjs', document.baseURI).href)));
729
+ const r = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-ALU3KC4G.cjs', document.baseURI).href)));
730
730
  const gen = r("@aws/bedrock-token-generator");
731
731
  if (typeof gen.getToken !== "function") return void 0;
732
732
  const providers = r("@aws-sdk/credential-providers");
@@ -754,16 +754,16 @@ var BedrockAnthropicClient = class {
754
754
  if (fromOpts !== void 0 && fromOpts.length > 0) return fromOpts;
755
755
  const fromEnv = await resolveBedrockToken(region);
756
756
  if (fromEnv !== void 0 && fromEnv.length > 0) return fromEnv;
757
- throw new chunkA44COQJJ_cjs.ConfigurationError(
757
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
758
758
  "Bedrock requires AWS_BEARER_TOKEN_BEDROCK env var, or install `@aws/bedrock-token-generator` for auto-refresh, or pass apiKey explicitly.",
759
759
  { code: "auth_failed" }
760
760
  );
761
761
  }
762
762
  async *stream(request, signal) {
763
- const region = chunkD42XHI4O_cjs.inferRegionFromModelId(request.model) ?? process.env.AWS_REGION ?? "us-east-1";
763
+ const region = chunk56ZM6P7Z_cjs.inferRegionFromModelId(request.model) ?? process.env.AWS_REGION ?? "us-east-1";
764
764
  const token = await this.resolveTokenOrThrow(region);
765
- const bareModel = chunkD42XHI4O_cjs.stripBedrockPrefix(request.model);
766
- const baseUrl = this.options.baseUrl ?? chunkD42XHI4O_cjs.resolveBedrockBaseUrl(request.model);
765
+ const bareModel = chunk56ZM6P7Z_cjs.stripBedrockPrefix(request.model);
766
+ const baseUrl = this.options.baseUrl ?? chunk56ZM6P7Z_cjs.resolveBedrockBaseUrl(request.model);
767
767
  const endpoint = `/model/${encodeURIComponent(bareModel)}/invoke`;
768
768
  const url = `${baseUrl}${endpoint}`;
769
769
  const response = await postAnthropicRequest({
@@ -803,21 +803,21 @@ function mapOpenAICompatibleError(args) {
803
803
  body
804
804
  });
805
805
  if (status === 401 || status === 403) {
806
- return new chunkA44COQJJ_cjs.AuthenticationError(message, { code: `${providerId}_auth_failed`, metadata });
806
+ return new chunkMHCKWQR3_cjs.AuthenticationError(message, { code: `${providerId}_auth_failed`, metadata });
807
807
  }
808
808
  if (status === 429) {
809
- return new chunkA44COQJJ_cjs.RateLimitError(message, { code: `${providerId}_rate_limit`, metadata });
809
+ return new chunkMHCKWQR3_cjs.RateLimitError(message, { code: `${providerId}_rate_limit`, metadata });
810
810
  }
811
811
  if (status === 400) {
812
- return new chunkA44COQJJ_cjs.ConfigurationError(message, { code: `${providerId}_${code}`, metadata });
812
+ return new chunkMHCKWQR3_cjs.ConfigurationError(message, { code: `${providerId}_${code}`, metadata });
813
813
  }
814
814
  if (status === 408) {
815
- return new chunkA44COQJJ_cjs.NetworkError(message, { code: `${providerId}_timeout`, metadata });
815
+ return new chunkMHCKWQR3_cjs.NetworkError(message, { code: `${providerId}_timeout`, metadata });
816
816
  }
817
817
  if (status >= 500 && status < 600) {
818
- return new chunkA44COQJJ_cjs.NetworkError(message, { code: `${providerId}_server_error`, metadata });
818
+ return new chunkMHCKWQR3_cjs.NetworkError(message, { code: `${providerId}_server_error`, metadata });
819
819
  }
820
- return new chunkA44COQJJ_cjs.UnknownAgentError(message, { code: `${providerId}_unknown`, metadata });
820
+ return new chunkMHCKWQR3_cjs.UnknownAgentError(message, { code: `${providerId}_unknown`, metadata });
821
821
  }
822
822
  function extractOpenAiErrorCode(body) {
823
823
  if (body === null || typeof body !== "object") return void 0;
@@ -929,7 +929,7 @@ function parseOverrideOrWarnOnce() {
929
929
  function warnInvalidJsonOnce(_raw) {
930
930
  if (warnedInvalidJson) return;
931
931
  warnedInvalidJson = true;
932
- process.stderr.write(
932
+ chunkLTCOPATU_cjs.diag(
933
933
  `[theokit-sdk] ${ENV_OVERRIDE_KEY} is set but value is not valid JSON of shape \`{"status": number, "body": object | string}\`. Falling back to real LLM call. This warning is shown once per process.
934
934
  `
935
935
  );
@@ -965,7 +965,7 @@ function mapOllamaTransportError(args) {
965
965
  headers: void 0,
966
966
  body: { cause: causeCode }
967
967
  });
968
- return new chunkA44COQJJ_cjs.ConfigurationError(
968
+ return new chunkMHCKWQR3_cjs.ConfigurationError(
969
969
  "Ollama is not reachable. Run `ollama serve` to start the local runtime, or set OLLAMA_HOST to point at a remote Ollama server.",
970
970
  { code: "ollama_unreachable", metadata }
971
971
  );
@@ -984,7 +984,7 @@ function mapOllamaHttpError(args) {
984
984
  body: args.body
985
985
  });
986
986
  const pullCmd = modelHint !== void 0 ? `ollama pull ${modelHint}` : "ollama pull <model>";
987
- return new chunkA44COQJJ_cjs.ConfigurationError(
987
+ return new chunkMHCKWQR3_cjs.ConfigurationError(
988
988
  `Ollama model is not pulled. Run \`${pullCmd}\` to download it first.`,
989
989
  { code: "ollama_model_not_pulled", metadata }
990
990
  );
@@ -998,7 +998,7 @@ function mapOllamaHttpError(args) {
998
998
  headers: args.headers,
999
999
  body: args.body
1000
1000
  });
1001
- return new chunkA44COQJJ_cjs.NetworkError(
1001
+ return new chunkMHCKWQR3_cjs.NetworkError(
1002
1002
  "Ollama model is loading. Retry in a few seconds \u2014 Ollama is warming up the model into memory.",
1003
1003
  { code: "ollama_model_loading", metadata }
1004
1004
  );
@@ -1219,7 +1219,7 @@ function toOllamaMessages(message) {
1219
1219
  }
1220
1220
  if (message.role === "user") {
1221
1221
  if (message.content.some((p) => p.type === "image")) {
1222
- throw new chunkA44COQJJ_cjs.ConfigurationError(
1222
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
1223
1223
  "image input is not supported on the ollama-native provider; use an OpenAI/OpenRouter model for multimodal turns",
1224
1224
  { code: "ollama_image_unsupported" }
1225
1225
  );
@@ -1266,6 +1266,156 @@ function toOllamaTools(tools) {
1266
1266
  }
1267
1267
  }));
1268
1268
  }
1269
+ var FIXTURE_API_KEY_PREFIX = "theo_test_";
1270
+ function isFixtureApiKey(apiKey) {
1271
+ if (apiKey === void 0) return false;
1272
+ return apiKey.startsWith(FIXTURE_API_KEY_PREFIX);
1273
+ }
1274
+ function getConfiguredBaseUrl() {
1275
+ const value = process.env.THEOKIT_API_BASE_URL;
1276
+ if (value === void 0 || value.length === 0) return void 0;
1277
+ return value;
1278
+ }
1279
+ function shouldUseFixtureMode(apiKey) {
1280
+ if (getConfiguredBaseUrl() !== void 0) return false;
1281
+ return isFixtureApiKey(apiKey);
1282
+ }
1283
+ function shouldUseRealLocalRuntime(apiKey) {
1284
+ if (isFixtureApiKey(apiKey)) return false;
1285
+ if (apiKey === void 0 || apiKey.length === 0) return false;
1286
+ return typeof process.env.ANTHROPIC_API_KEY === "string" && process.env.ANTHROPIC_API_KEY.length > 0 || typeof process.env.OPENAI_API_KEY === "string" && process.env.OPENAI_API_KEY.length > 0 || typeof process.env.OPENROUTER_API_KEY === "string" && process.env.OPENROUTER_API_KEY.length > 0 || isAwsBedrockAuthAvailable() || isGcpVertexAuthAvailable() || isLocalNoAuthProviderAvailable();
1287
+ }
1288
+ function isAwsBedrockAuthAvailable() {
1289
+ if (typeof process.env.AWS_BEARER_TOKEN_BEDROCK === "string" && process.env.AWS_BEARER_TOKEN_BEDROCK.length > 0) {
1290
+ return true;
1291
+ }
1292
+ if (typeof process.env.AWS_ACCESS_KEY_ID === "string" && process.env.AWS_ACCESS_KEY_ID.length > 0) {
1293
+ return true;
1294
+ }
1295
+ if (typeof process.env.AWS_PROFILE === "string" && process.env.AWS_PROFILE.length > 0) {
1296
+ return true;
1297
+ }
1298
+ return awsCredentialsFileExists();
1299
+ }
1300
+ function awsCredentialsFileExists() {
1301
+ try {
1302
+ const home = process.env.HOME ?? process.env.USERPROFILE;
1303
+ if (home === void 0 || home.length === 0) return false;
1304
+ return fs.existsSync(`${home}/.aws/credentials`) || fs.existsSync(`${home}/.aws/config`);
1305
+ } catch {
1306
+ return false;
1307
+ }
1308
+ }
1309
+ function isGcpVertexAuthAvailable() {
1310
+ if (typeof process.env.GOOGLE_APPLICATION_CREDENTIALS === "string" && process.env.GOOGLE_APPLICATION_CREDENTIALS.length > 0) {
1311
+ return true;
1312
+ }
1313
+ if (typeof process.env.GOOGLE_CLOUD_PROJECT === "string" && process.env.GOOGLE_CLOUD_PROJECT.length > 0) {
1314
+ return true;
1315
+ }
1316
+ return false;
1317
+ }
1318
+ function isLocalNoAuthProviderAvailable() {
1319
+ return true;
1320
+ }
1321
+
1322
+ // src/internal/http.ts
1323
+ var DEFAULT_BASE_URL = "https://api.usetheo.dev";
1324
+ function resolveBaseUrl() {
1325
+ return getConfiguredBaseUrl() ?? DEFAULT_BASE_URL;
1326
+ }
1327
+ async function httpRequest(path, options) {
1328
+ const url = `${resolveBaseUrl()}${path}`;
1329
+ const fetchFn = options.fetchFn ?? globalThis.fetch;
1330
+ const headers = {
1331
+ "content-type": "application/json",
1332
+ authorization: `Bearer ${options.apiKey}`,
1333
+ ...options.headers ?? {}
1334
+ };
1335
+ const body = options.body !== void 0 ? JSON.stringify(options.body) : void 0;
1336
+ const response = await safeFetch(fetchFn, url, {
1337
+ method: options.method ?? "GET",
1338
+ headers,
1339
+ body
1340
+ });
1341
+ if (!response.ok) {
1342
+ const parsed = await safeParseJsonResponse(response);
1343
+ throw mapHttpStatusToError(response.status, parsed);
1344
+ }
1345
+ return await safeParseJsonResponse(response);
1346
+ }
1347
+ async function safeFetch(fetchFn, url, init) {
1348
+ try {
1349
+ return await fetchFn(url, init);
1350
+ } catch (cause) {
1351
+ throw new chunkMHCKWQR3_cjs.NetworkError("HTTP request failed", { code: "network_error", cause });
1352
+ }
1353
+ }
1354
+ async function safeParseJsonResponse(response) {
1355
+ try {
1356
+ return await response.json();
1357
+ } catch {
1358
+ return void 0;
1359
+ }
1360
+ }
1361
+ async function readErrorResponseBody(response) {
1362
+ const text = await response.text().catch(() => "");
1363
+ try {
1364
+ return JSON.parse(text);
1365
+ } catch {
1366
+ return text;
1367
+ }
1368
+ }
1369
+ function mapHttpStatusToError(status, body) {
1370
+ const envelope = extractErrorEnvelope(body);
1371
+ const message = envelope.message ?? `HTTP ${status}`;
1372
+ const errorOptions = {
1373
+ code: envelope.code,
1374
+ protoErrorCode: envelope.protoErrorCode,
1375
+ cause: body
1376
+ };
1377
+ if (envelope.code === "integration_not_connected") {
1378
+ return new chunkMHCKWQR3_cjs.IntegrationNotConnectedError(message, {
1379
+ provider: envelope.provider ?? "unknown",
1380
+ helpUrl: envelope.helpUrl ?? "",
1381
+ code: envelope.code,
1382
+ cause: body
1383
+ });
1384
+ }
1385
+ if (status === 401 || status === 403) {
1386
+ return new chunkMHCKWQR3_cjs.AuthenticationError(message, errorOptions);
1387
+ }
1388
+ if (status === 429) {
1389
+ return new chunkMHCKWQR3_cjs.RateLimitError(message, errorOptions);
1390
+ }
1391
+ if (status >= 400 && status < 500) {
1392
+ return new chunkMHCKWQR3_cjs.ConfigurationError(message, errorOptions);
1393
+ }
1394
+ if (status >= 500) {
1395
+ return new chunkMHCKWQR3_cjs.NetworkError(message, errorOptions);
1396
+ }
1397
+ return new chunkMHCKWQR3_cjs.UnknownAgentError(message, errorOptions);
1398
+ }
1399
+ function extractErrorEnvelope(body) {
1400
+ if (!body || typeof body !== "object") return {};
1401
+ const record = body;
1402
+ const inner = record.error;
1403
+ const source = inner && typeof inner === "object" ? inner : record;
1404
+ return readEnvelopeFields(source);
1405
+ }
1406
+ function readEnvelopeFields(record) {
1407
+ return {
1408
+ code: pickString(record, "code"),
1409
+ message: pickString(record, "message"),
1410
+ protoErrorCode: pickString(record, "protoErrorCode"),
1411
+ provider: pickString(record, "provider"),
1412
+ helpUrl: pickString(record, "helpUrl")
1413
+ };
1414
+ }
1415
+ function pickString(record, key) {
1416
+ const value = record[key];
1417
+ return typeof value === "string" ? value : void 0;
1418
+ }
1269
1419
 
1270
1420
  // src/internal/llm/hermes-tool-extract.ts
1271
1421
  var HERMES_BLOCK = /<function=\s*([^>\s]+)\s*>([\s\S]*?)<\/tool_call>/g;
@@ -1489,12 +1639,7 @@ var OpenAIClient = class {
1489
1639
  throw wrapTransportError(fetchErr, { providerId, endpoint: "/v1/chat/completions" });
1490
1640
  }
1491
1641
  if (!response.ok) {
1492
- const text = await response.text().catch(() => "");
1493
- let body = text;
1494
- try {
1495
- body = JSON.parse(text);
1496
- } catch {
1497
- }
1642
+ const body = await readErrorResponseBody(response);
1498
1643
  const ollamaMapped = mapOllamaHttpError({
1499
1644
  providerId,
1500
1645
  status: response.status,
@@ -1544,7 +1689,7 @@ var OpenAIClient = class {
1544
1689
  for (const event of events) yield event;
1545
1690
  }
1546
1691
  if (!sawDone && !accumulator.finishReasonSeen) {
1547
- throw new chunkA44COQJJ_cjs.NetworkError("SSE stream truncated (no finish_reason / [DONE])", {
1692
+ throw new chunkMHCKWQR3_cjs.NetworkError("SSE stream truncated (no finish_reason / [DONE])", {
1548
1693
  code: "stream_truncated"
1549
1694
  });
1550
1695
  }
@@ -1676,13 +1821,13 @@ var OpenAIStreamAccumulator = class {
1676
1821
  toolCalls.push(...recovered.toolCalls);
1677
1822
  text = recovered.residualText;
1678
1823
  stopReason = "tool_use";
1679
- process.stderr.write(
1824
+ chunkLTCOPATU_cjs.diag(
1680
1825
  `[theokit-sdk] recovered ${recovered.toolCalls.length} leaked tool call(s) from assistant content (provider="${this.providerName}", names=${recovered.toolCalls.map((c) => c.name).join(",")})
1681
1826
  `
1682
1827
  );
1683
1828
  }
1684
1829
  if (recovered.droppedNames.length > 0) {
1685
- process.stderr.write(
1830
+ chunkLTCOPATU_cjs.diag(
1686
1831
  `[theokit-sdk] dropped ${recovered.droppedNames.length} leaked block(s) whose name is not a tool in the request (provider="${this.providerName}", names=${recovered.droppedNames.join(",")})
1687
1832
  `
1688
1833
  );
@@ -1804,13 +1949,11 @@ async function tryFirstEvent(client, request, signal, logFallback = false) {
1804
1949
  const firstResult = await generator.next();
1805
1950
  return { kind: "ok", generator, firstResult };
1806
1951
  } catch (cause) {
1807
- if (cause instanceof chunkA44COQJJ_cjs.NetworkError || cause instanceof chunkA44COQJJ_cjs.RateLimitError || cause instanceof chunkA44COQJJ_cjs.AuthenticationError) {
1952
+ if (cause instanceof chunkMHCKWQR3_cjs.NetworkError || cause instanceof chunkMHCKWQR3_cjs.RateLimitError || cause instanceof chunkMHCKWQR3_cjs.AuthenticationError) {
1808
1953
  if (logFallback) {
1809
1954
  const errCode = cause.metadata?.code ?? cause.code ?? "unknown";
1810
- process.stderr.write(
1811
- `[theokit-sdk] provider ${client.name} failed (${errCode}): falling back
1812
- `
1813
- );
1955
+ chunkLTCOPATU_cjs.diag(`[theokit-sdk] provider ${client.name} failed (${errCode}): falling back
1956
+ `);
1814
1957
  }
1815
1958
  return { kind: "handshake_error", error: cause };
1816
1959
  }
@@ -1851,7 +1994,7 @@ var PoolAwareLlmClient = class {
1851
1994
  // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: stream() must serialize pool-select → build client → first-event probe → classify → retry/rotate/propagate. Extracting helpers fragments the linear narrative; the comments above each branch keep it readable.
1852
1995
  async *stream(request, signal) {
1853
1996
  if (this.breaker.shouldSkip(this.pool.provider)) {
1854
- throw new chunkA44COQJJ_cjs.NetworkError(`${this.pool.provider} circuit open \u2014 failing fast`, {
1997
+ throw new chunkMHCKWQR3_cjs.NetworkError(`${this.pool.provider} circuit open \u2014 failing fast`, {
1855
1998
  code: "circuit_open"
1856
1999
  });
1857
2000
  }
@@ -1870,7 +2013,7 @@ var PoolAwareLlmClient = class {
1870
2013
  }
1871
2014
  if (entry === null) {
1872
2015
  this.breaker.recordTimeout(this.pool.provider);
1873
- throw new chunkA44COQJJ_cjs.CredentialPoolExhaustedError(
2016
+ throw new chunkMHCKWQR3_cjs.CredentialPoolExhaustedError(
1874
2017
  `All ${this.pool.provider} credentials exhausted; next retry available at ${this.nextRetryHint() ?? "unknown"}`,
1875
2018
  { provider: this.pool.provider, nextRetryAt: this.nextRetryHint() }
1876
2019
  );
@@ -1884,13 +2027,13 @@ var PoolAwareLlmClient = class {
1884
2027
  }
1885
2028
  const decision = classifyAndDecide(attempt.error, hasRetried429);
1886
2029
  if (decision === "retry") {
1887
- const backoffMs = chunkLUSXDZPV_cjs.computeBackoffMs({
2030
+ const backoffMs = chunkU2WLFOA3_cjs.computeBackoffMs({
1888
2031
  attempt: 0,
1889
2032
  ...this.backoffBaseMs !== void 0 ? { baseMs: this.backoffBaseMs } : {},
1890
2033
  ...this.rng !== void 0 ? { rng: this.rng } : {}
1891
2034
  });
1892
2035
  this.onRateLimit?.({ attempt: 1, retryAfterMs: backoffMs });
1893
- await chunkLUSXDZPV_cjs.sleepWithAbort(backoffMs, signal);
2036
+ await chunkU2WLFOA3_cjs.sleepWithAbort(backoffMs, signal);
1894
2037
  hasRetried429 = true;
1895
2038
  continue;
1896
2039
  }
@@ -1902,7 +2045,7 @@ var PoolAwareLlmClient = class {
1902
2045
  ...parseRetryAfterMs(attempt.error) !== void 0 ? { resetAtMs: parseRetryAfterMs(attempt.error) } : {}
1903
2046
  });
1904
2047
  } catch (persistErr) {
1905
- process.stderr.write(
2048
+ chunkLTCOPATU_cjs.diag(
1906
2049
  `[theokit-sdk] credential-pool: persist failed during rotate; continuing in-memory: ${persistErr instanceof Error ? persistErr.message : String(persistErr)}
1907
2050
  `
1908
2051
  );
@@ -1924,8 +2067,8 @@ var PoolAwareLlmClient = class {
1924
2067
  }
1925
2068
  };
1926
2069
  function classifyAndDecide(error, hasRetried429) {
1927
- if (error instanceof chunkA44COQJJ_cjs.NetworkError) return "propagate";
1928
- if (error instanceof chunkA44COQJJ_cjs.AuthenticationError) return "rotate";
2070
+ if (error instanceof chunkMHCKWQR3_cjs.NetworkError) return "propagate";
2071
+ if (error instanceof chunkMHCKWQR3_cjs.AuthenticationError) return "rotate";
1929
2072
  const status = error.metadata?.statusCode ?? 429;
1930
2073
  if (status === 402) return "rotate";
1931
2074
  return hasRetried429 ? "rotate" : "retry";
@@ -1938,8 +2081,8 @@ function parseRetryAfterMs(error) {
1938
2081
  return void 0;
1939
2082
  }
1940
2083
  function inferStatusCode(error) {
1941
- if (error instanceof chunkA44COQJJ_cjs.AuthenticationError) return 401;
1942
- if (error instanceof chunkA44COQJJ_cjs.RateLimitError) return 429;
2084
+ if (error instanceof chunkMHCKWQR3_cjs.AuthenticationError) return 401;
2085
+ if (error instanceof chunkMHCKWQR3_cjs.RateLimitError) return 429;
1943
2086
  return 0;
1944
2087
  }
1945
2088
  function abortError(signal) {
@@ -2151,14 +2294,14 @@ function abortError2(signal) {
2151
2294
  // src/internal/llm/retrying-client.ts
2152
2295
  var MAX_TENTATIVAS = 3;
2153
2296
  function ehTransitorio(err) {
2154
- if (!chunkA44COQJJ_cjs.isTransientError(err)) return false;
2155
- if (err instanceof chunkA44COQJJ_cjs.CredentialPoolExhaustedError) return false;
2156
- if (err instanceof chunkA44COQJJ_cjs.TheokitAgentError && err.code === "circuit_open") return false;
2157
- if (err instanceof chunkA44COQJJ_cjs.RateLimitError && err.metadata?.statusCode === 402) return false;
2297
+ if (!chunkMHCKWQR3_cjs.isTransientError(err)) return false;
2298
+ if (err instanceof chunkMHCKWQR3_cjs.CredentialPoolExhaustedError) return false;
2299
+ if (err instanceof chunkMHCKWQR3_cjs.TheokitAgentError && err.code === "circuit_open") return false;
2300
+ if (err instanceof chunkMHCKWQR3_cjs.RateLimitError && err.metadata?.statusCode === 402) return false;
2158
2301
  return true;
2159
2302
  }
2160
2303
  function dicaDeRetryAfterMs(err) {
2161
- if (!(err instanceof chunkA44COQJJ_cjs.RateLimitError)) return void 0;
2304
+ if (!(err instanceof chunkMHCKWQR3_cjs.RateLimitError)) return void 0;
2162
2305
  const segundos = err.metadata?.retryAfter;
2163
2306
  return typeof segundos === "number" && segundos > 0 ? segundos * 1e3 : void 0;
2164
2307
  }
@@ -2204,12 +2347,12 @@ var RetryingLlmClient = class {
2204
2347
  */
2205
2348
  async #esperarBackoff(err, tentativa, signal) {
2206
2349
  const dica = dicaDeRetryAfterMs(err);
2207
- const ms = chunkLUSXDZPV_cjs.computeBackoffMs({
2350
+ const ms = chunkU2WLFOA3_cjs.computeBackoffMs({
2208
2351
  attempt: tentativa,
2209
2352
  ...dica !== void 0 ? { retryAfterMs: dica } : {},
2210
2353
  ...this.#rng !== void 0 ? { rng: this.#rng } : {}
2211
2354
  });
2212
- await chunkLUSXDZPV_cjs.sleepWithAbort(ms, signal);
2355
+ await chunkU2WLFOA3_cjs.sleepWithAbort(ms, signal);
2213
2356
  }
2214
2357
  async *stream(request, signal) {
2215
2358
  let ultimoErro;
@@ -2257,23 +2400,23 @@ function vertexMetadata(args, code) {
2257
2400
  });
2258
2401
  }
2259
2402
  var VERTEX_ERROR_BUILDERS = {
2260
- rate_limit: (args, msg) => new chunkA44COQJJ_cjs.RateLimitError(`Vertex quota exhausted: ${msg}`, {
2403
+ rate_limit: (args, msg) => new chunkMHCKWQR3_cjs.RateLimitError(`Vertex quota exhausted: ${msg}`, {
2261
2404
  metadata: vertexMetadata(args, "rate_limit")
2262
2405
  }),
2263
- auth_unauthenticated: (args, msg) => new chunkA44COQJJ_cjs.AuthenticationError(`Vertex unauthenticated: ${msg}`, {
2406
+ auth_unauthenticated: (args, msg) => new chunkMHCKWQR3_cjs.AuthenticationError(`Vertex unauthenticated: ${msg}`, {
2264
2407
  metadata: vertexMetadata(args, "auth_failed")
2265
2408
  }),
2266
- auth_permission: (args, msg) => new chunkA44COQJJ_cjs.AuthenticationError(`Vertex permission denied: ${msg}`, {
2409
+ auth_permission: (args, msg) => new chunkMHCKWQR3_cjs.AuthenticationError(`Vertex permission denied: ${msg}`, {
2267
2410
  metadata: vertexMetadata(args, "auth_failed")
2268
2411
  }),
2269
- invalid_request: (args, msg) => new chunkA44COQJJ_cjs.ConfigurationError(`Vertex validation: ${msg}`, {
2412
+ invalid_request: (args, msg) => new chunkMHCKWQR3_cjs.ConfigurationError(`Vertex validation: ${msg}`, {
2270
2413
  metadata: vertexMetadata(args, "invalid_request")
2271
2414
  }),
2272
- timeout: (args, msg) => new chunkA44COQJJ_cjs.NetworkError(`Vertex timeout: ${msg}`, { metadata: vertexMetadata(args, "timeout") }),
2273
- server_error: (args, msg) => new chunkA44COQJJ_cjs.NetworkError(`Vertex server error: ${msg}`, {
2415
+ timeout: (args, msg) => new chunkMHCKWQR3_cjs.NetworkError(`Vertex timeout: ${msg}`, { metadata: vertexMetadata(args, "timeout") }),
2416
+ server_error: (args, msg) => new chunkMHCKWQR3_cjs.NetworkError(`Vertex server error: ${msg}`, {
2274
2417
  metadata: vertexMetadata(args, "server_error")
2275
2418
  }),
2276
- unknown: (args, msg) => new chunkA44COQJJ_cjs.UnknownAgentError(`Vertex unknown: ${msg}`, { metadata: vertexMetadata(args, "unknown") })
2419
+ unknown: (args, msg) => new chunkMHCKWQR3_cjs.UnknownAgentError(`Vertex unknown: ${msg}`, { metadata: vertexMetadata(args, "unknown") })
2277
2420
  };
2278
2421
  function mapVertexError(args) {
2279
2422
  const parsed = parseBody2(args.body);
@@ -2309,12 +2452,12 @@ async function resolveVertexAccessToken() {
2309
2452
  async function getAuthClientOrThrow() {
2310
2453
  let mod;
2311
2454
  try {
2312
- const r = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-WEHUJ7ZS.cjs', document.baseURI).href)));
2455
+ const r = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-ALU3KC4G.cjs', document.baseURI).href)));
2313
2456
  mod = r("google-auth-library");
2314
2457
  } catch (err) {
2315
2458
  const isModuleMissing = err instanceof Error && (err.message.includes("Cannot find module") || err.code === "MODULE_NOT_FOUND");
2316
2459
  if (isModuleMissing) {
2317
- throw new chunkA44COQJJ_cjs.ConfigurationError(
2460
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
2318
2461
  "Vertex provider requires `google-auth-library`. Install: `pnpm add google-auth-library`.",
2319
2462
  { code: "auth_failed", cause: err }
2320
2463
  );
@@ -2325,7 +2468,7 @@ async function getAuthClientOrThrow() {
2325
2468
  const auth = new mod.GoogleAuth({ scopes: [SCOPE_CLOUD_PLATFORM] });
2326
2469
  return await auth.getClient();
2327
2470
  } catch (err) {
2328
- process.stderr.write(
2471
+ chunkLTCOPATU_cjs.diag(
2329
2472
  `[theokit-sdk] Vertex ADC initialization failed: ${err instanceof Error ? err.message : String(err)}
2330
2473
  `
2331
2474
  );
@@ -2351,7 +2494,7 @@ var VertexAnthropicClient = class {
2351
2494
  resolveProjectOrThrow() {
2352
2495
  const projectId = this.options.projectId ?? resolveVertexProjectId();
2353
2496
  if (projectId !== void 0) return projectId;
2354
- throw new chunkA44COQJJ_cjs.ConfigurationError(
2497
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
2355
2498
  "Vertex requires a project id. Set GOOGLE_CLOUD_PROJECT env var or run `gcloud config set project <id>`.",
2356
2499
  { code: "auth_failed" }
2357
2500
  );
@@ -2361,7 +2504,7 @@ var VertexAnthropicClient = class {
2361
2504
  if (fromOpts !== void 0 && fromOpts.length > 0) return fromOpts;
2362
2505
  const fromAdc = await resolveVertexAccessToken();
2363
2506
  if (fromAdc !== void 0 && fromAdc.length > 0) return fromAdc;
2364
- throw new chunkA44COQJJ_cjs.ConfigurationError(
2507
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
2365
2508
  "Vertex could not resolve an access token. Run `gcloud auth application-default login` or set GOOGLE_APPLICATION_CREDENTIALS to a service-account JSON path.",
2366
2509
  { code: "auth_failed" }
2367
2510
  );
@@ -2370,8 +2513,8 @@ var VertexAnthropicClient = class {
2370
2513
  const projectId = this.resolveProjectOrThrow();
2371
2514
  const location = this.options.location ?? resolveVertexLocation();
2372
2515
  const accessToken = await this.resolveTokenOrThrow();
2373
- const baseUrl = chunkD42XHI4O_cjs.resolveVertexBaseUrl({ projectId, location, modelDialect: "anthropic" });
2374
- const bareModel = chunkD42XHI4O_cjs.stripVertexPrefix(request.model);
2516
+ const baseUrl = chunk56ZM6P7Z_cjs.resolveVertexBaseUrl({ projectId, location, modelDialect: "anthropic" });
2517
+ const bareModel = chunk56ZM6P7Z_cjs.stripVertexPrefix(request.model);
2375
2518
  const endpoint = `/models/${encodeURIComponent(bareModel)}:rawPredict`;
2376
2519
  const url = `${baseUrl}${endpoint}`;
2377
2520
  const response = await postAnthropicRequest({
@@ -2407,7 +2550,7 @@ var VertexGeminiClient = class {
2407
2550
  async *stream(request, signal) {
2408
2551
  const projectId = this.options.projectId ?? resolveVertexProjectId();
2409
2552
  if (projectId === void 0) {
2410
- throw new chunkA44COQJJ_cjs.ConfigurationError(
2553
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
2411
2554
  "Vertex requires a project id. Set GOOGLE_CLOUD_PROJECT env var or run `gcloud config set project <id>`.",
2412
2555
  { code: "auth_failed" }
2413
2556
  );
@@ -2415,12 +2558,12 @@ var VertexGeminiClient = class {
2415
2558
  const location = this.options.location ?? resolveVertexLocation();
2416
2559
  const accessToken = this.options.apiKey !== void 0 && this.options.apiKey.length > 0 ? this.options.apiKey : await resolveVertexAccessToken();
2417
2560
  if (accessToken === void 0 || accessToken.length === 0) {
2418
- throw new chunkA44COQJJ_cjs.ConfigurationError(
2561
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
2419
2562
  "Vertex could not resolve an access token. Run `gcloud auth application-default login` or set GOOGLE_APPLICATION_CREDENTIALS to a service-account JSON path.",
2420
2563
  { code: "auth_failed" }
2421
2564
  );
2422
2565
  }
2423
- const baseUrl = chunkD42XHI4O_cjs.resolveVertexBaseUrl({ projectId, location, modelDialect: "gemini" });
2566
+ const baseUrl = chunk56ZM6P7Z_cjs.resolveVertexBaseUrl({ projectId, location, modelDialect: "gemini" });
2424
2567
  const url = `${baseUrl}/chat/completions`;
2425
2568
  const innerFetch = this.options.fetch ?? fetch;
2426
2569
  const rewriteFetch = (input, init) => {
@@ -2446,7 +2589,7 @@ var VertexRouterClient = class {
2446
2589
  options;
2447
2590
  name = "vertex";
2448
2591
  async *stream(request, signal) {
2449
- const dialect = chunkD42XHI4O_cjs.inferModelDialect(request.model);
2592
+ const dialect = chunk56ZM6P7Z_cjs.inferModelDialect(request.model);
2450
2593
  if (dialect === "anthropic") {
2451
2594
  const inner2 = new VertexAnthropicClient(this.options);
2452
2595
  return yield* inner2.stream(request, signal);
@@ -2458,7 +2601,7 @@ var VertexRouterClient = class {
2458
2601
 
2459
2602
  // src/internal/llm/router.ts
2460
2603
  function resolveProviderChain(options) {
2461
- chunkD42XHI4O_cjs.registerBuiltins();
2604
+ chunk56ZM6P7Z_cjs.registerBuiltins();
2462
2605
  return buildChain(options);
2463
2606
  }
2464
2607
  function buildChain(options) {
@@ -2475,7 +2618,7 @@ function buildChain(options) {
2475
2618
  addClient(options.primary);
2476
2619
  for (const fallback of options.fallback ?? []) addClient(fallback);
2477
2620
  if (clients.length === 0) {
2478
- throw new chunkA44COQJJ_cjs.ConfigurationError(
2621
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
2479
2622
  `No provider client could be resolved (primary=${options.primary}). Set ANTHROPIC_API_KEY or OPENAI_API_KEY / OPENROUTER_API_KEY.`,
2480
2623
  { code: "provider_unresolved" }
2481
2624
  );
@@ -2483,11 +2626,11 @@ function buildChain(options) {
2483
2626
  return clients;
2484
2627
  }
2485
2628
  function buildClient(name, routerOptions) {
2486
- const baseProfile = chunkD42XHI4O_cjs.getProviderProfile(name);
2629
+ const baseProfile = chunk56ZM6P7Z_cjs.getProviderProfile(name);
2487
2630
  if (baseProfile === void 0) return void 0;
2488
2631
  const profile = routerOptions.extractToolCallsFromContent === true && baseProfile.extractToolCallsFromContent !== true ? { ...baseProfile, extractToolCallsFromContent: true } : baseProfile;
2489
2632
  const resilience = routerOptions.onRateLimit !== void 0 ? { onRateLimit: routerOptions.onRateLimit } : {};
2490
- const ambient = chunkLUSXDZPV_cjs.currentCredentialPool(name);
2633
+ const ambient = chunkU2WLFOA3_cjs.currentCredentialPool(name);
2491
2634
  if (ambient !== void 0) {
2492
2635
  return new RetryingLlmClient(
2493
2636
  new PoolAwareLlmClient(
@@ -2517,9 +2660,9 @@ function buildPoolOrSingle(args) {
2517
2660
  if (poolKeys !== void 0 && poolKeys.length >= 2) {
2518
2661
  const strategy = routerOptions.credentialPoolStrategy?.[name] ?? "fill_first";
2519
2662
  const entries = poolKeys.map(
2520
- (accessToken, priority) => chunkLUSXDZPV_cjs.newPooledCredential({ provider: name, accessToken, priority, source: "manual" })
2663
+ (accessToken, priority) => chunkU2WLFOA3_cjs.newPooledCredential({ provider: name, accessToken, priority, source: "manual" })
2521
2664
  );
2522
- const pool = new chunkLUSXDZPV_cjs.CredentialPool(name, entries, strategy);
2665
+ const pool = new chunkU2WLFOA3_cjs.CredentialPool(name, entries, strategy);
2523
2666
  const resilience = routerOptions.onRateLimit !== void 0 ? { onRateLimit: routerOptions.onRateLimit } : {};
2524
2667
  return new RetryingLlmClient(
2525
2668
  new PoolAwareLlmClient(
@@ -2554,7 +2697,7 @@ var warnedNoAuthApiKeys = /* @__PURE__ */ new Set();
2554
2697
  function warnNoAuthApiKeysIgnoredOnce(provider) {
2555
2698
  if (warnedNoAuthApiKeys.has(provider)) return;
2556
2699
  warnedNoAuthApiKeys.add(provider);
2557
- process.stderr.write(
2700
+ chunkLTCOPATU_cjs.diag(
2558
2701
  `[theokit-sdk] provider "${provider}" has authType: "none" \u2014 apiKeys ignored (no auth required for local runtime).
2559
2702
  `
2560
2703
  );
@@ -2580,10 +2723,10 @@ function warnUnknownProvidersInApiKeys(apiKeys) {
2580
2723
  if (apiKeys === void 0) return;
2581
2724
  for (const name of Object.keys(apiKeys)) {
2582
2725
  if (warnedProviders.has(name)) continue;
2583
- const profile = chunkD42XHI4O_cjs.getProviderProfile(name);
2726
+ const profile = chunk56ZM6P7Z_cjs.getProviderProfile(name);
2584
2727
  if (profile === void 0) {
2585
2728
  warnedProviders.add(name);
2586
- process.stderr.write(
2729
+ chunkLTCOPATU_cjs.diag(
2587
2730
  `[theokit-sdk] credential-pool: unknown provider "${name}" in apiKeys (no profile registered)
2588
2731
  `
2589
2732
  );
@@ -2615,7 +2758,7 @@ function selectTransport(profile, apiKey) {
2615
2758
  if (apiKey !== "__oauth_lazy_token__") return;
2616
2759
  const auth = t.headers?.authorization ?? t.headers?.Authorization;
2617
2760
  if (t.fetch === void 0 && auth === void 0) {
2618
- throw new chunkA44COQJJ_cjs.ConfigurationError(
2761
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
2619
2762
  `provider "${profile.name}" uses OAuth (authType: ${profile.authType}) but no credential was resolved. Register a ProviderProfile.transform whose fetch (or headers.authorization) supplies the bearer \u2014 typically via resolveCredential() from "@theokit/sdk/auth".`
2620
2763
  );
2621
2764
  }
@@ -2666,7 +2809,7 @@ function selectTransport(profile, apiKey) {
2666
2809
  providerName: profile.name
2667
2810
  });
2668
2811
  }
2669
- throw new chunkA44COQJJ_cjs.ConfigurationError(
2812
+ throw new chunkMHCKWQR3_cjs.ConfigurationError(
2670
2813
  `Provider "${profile.name}" requires apiMode "${profile.apiMode}" but no transport is registered. Install a third-party transport plugin (@theokit-transport-${profile.apiMode}) or use a provider with apiMode "chat_completions" or "anthropic_messages".`,
2671
2814
  { code: "transport_unavailable" }
2672
2815
  );
@@ -2681,7 +2824,7 @@ function inferProviderFromApiKey(apiKey) {
2681
2824
  { provider: "openai", prefix: "sk-" }
2682
2825
  ];
2683
2826
  for (const { provider, prefix } of byPrefix) {
2684
- if (apiKey.startsWith(prefix) && chunkD42XHI4O_cjs.getProviderProfile(provider) !== void 0) {
2827
+ if (apiKey.startsWith(prefix) && chunk56ZM6P7Z_cjs.getProviderProfile(provider) !== void 0) {
2685
2828
  return provider;
2686
2829
  }
2687
2830
  }
@@ -2820,7 +2963,7 @@ function plainText(content) {
2820
2963
  }
2821
2964
  async function compactSessionTranscript(opts) {
2822
2965
  const prior = await opts.store.readRecords(opts.loc.agentId);
2823
- const history = chunk2DYI7MIF_cjs.reconstructMessages(prior);
2966
+ const history = chunkIEUDKUPM_cjs.reconstructMessages(prior);
2824
2967
  const compressible = [];
2825
2968
  for (const m of history) {
2826
2969
  const text = plainText(m.content);
@@ -2828,14 +2971,14 @@ async function compactSessionTranscript(opts) {
2828
2971
  compressible.push({ role: m.role, content: text });
2829
2972
  }
2830
2973
  }
2831
- const preTokens = chunkM2PU44HP_cjs.estimateTokens(compressible.map((m) => m.content).join("\n"));
2974
+ const preTokens = chunk4YB7B3RP_cjs.estimateTokens(compressible.map((m) => m.content).join("\n"));
2832
2975
  const summaryBody = await opts.summarize(compressible);
2833
2976
  const preserved = [];
2834
2977
  let budget = 0;
2835
2978
  for (let i = compressible.length - 1; i >= 0; i--) {
2836
2979
  const m = compressible[i];
2837
2980
  if (m === void 0 || m.role !== "user" || isCompactSummary(m.content)) continue;
2838
- const cost = chunkM2PU44HP_cjs.estimateTokens(m.content);
2981
+ const cost = chunk4YB7B3RP_cjs.estimateTokens(m.content);
2839
2982
  if (budget + cost > COMPACT_USER_MESSAGE_MAX_TOKENS) {
2840
2983
  const remaining = COMPACT_USER_MESSAGE_MAX_TOKENS - budget;
2841
2984
  if (remaining > 50) {
@@ -2849,7 +2992,7 @@ async function compactSessionTranscript(opts) {
2849
2992
  }
2850
2993
  const summary = `${COMPACT_SUMMARY_MARKER}
2851
2994
  ${summaryBody}`;
2852
- const transcript = chunk2DYI7MIF_cjs.SessionTranscript.fromRecords(prior, {
2995
+ const transcript = chunkIEUDKUPM_cjs.SessionTranscript.fromRecords(prior, {
2853
2996
  cwd: opts.loc.cwd,
2854
2997
  sessionId: opts.sessionId,
2855
2998
  model: opts.loc.model ?? "unknown"
@@ -2860,7 +3003,7 @@ ${summaryBody}`;
2860
3003
  const delta = transcript.records().slice(prior.length);
2861
3004
  await opts.store.appendRecords(opts.loc.agentId, delta);
2862
3005
  chunkIT3PWBW4_cjs.invalidateSessionCache(opts.loc.cwd, opts.loc.agentId);
2863
- const postTokens = chunkM2PU44HP_cjs.estimateTokens([...preserved, summary].join("\n"));
3006
+ const postTokens = chunk4YB7B3RP_cjs.estimateTokens([...preserved, summary].join("\n"));
2864
3007
  return { preTokens, postTokens };
2865
3008
  }
2866
3009
  function resolveSummarizerRoute(opts) {
@@ -2869,9 +3012,9 @@ function resolveSummarizerRoute(opts) {
2869
3012
  }
2870
3013
  function buildDefaultSummarizer(opts) {
2871
3014
  return async (messages) => {
2872
- chunkD42XHI4O_cjs.registerBuiltins();
3015
+ chunk56ZM6P7Z_cjs.registerBuiltins();
2873
3016
  const modelPrefix = opts.agentModel.includes("/") ? opts.agentModel.slice(0, opts.agentModel.indexOf("/")) : void 0;
2874
- const prefixProfile = modelPrefix !== void 0 ? chunkD42XHI4O_cjs.getProviderProfile(modelPrefix) : void 0;
3017
+ const prefixProfile = modelPrefix !== void 0 ? chunk56ZM6P7Z_cjs.getProviderProfile(modelPrefix) : void 0;
2875
3018
  const prefixUsable = prefixProfile !== void 0 && (prefixProfile.authType !== "api_key" || prefixProfile.envVars.some((v) => (process.env[v] ?? "").length > 0));
2876
3019
  const route = resolveSummarizerRoute({
2877
3020
  keyProvider: inferProviderFromApiKey(opts.apiKey),
@@ -2942,10 +3085,8 @@ async function autoCompactIfNeeded(opts) {
2942
3085
  return true;
2943
3086
  } catch (cause) {
2944
3087
  const msg = cause instanceof Error ? cause.message : String(cause);
2945
- process.stderr.write(
2946
- `[theokit-sdk] auto-compaction failed (left transcript untouched): ${msg}
2947
- `
2948
- );
3088
+ chunkLTCOPATU_cjs.diag(`[theokit-sdk] auto-compaction failed (left transcript untouched): ${msg}
3089
+ `);
2949
3090
  return false;
2950
3091
  }
2951
3092
  }
@@ -2958,17 +3099,23 @@ exports.buildDefaultSummarizer = buildDefaultSummarizer;
2958
3099
  exports.compactSessionTranscript = compactSessionTranscript;
2959
3100
  exports.detectPrimaryProvider = detectPrimaryProvider;
2960
3101
  exports.discoverProviderPlugins = discoverProviderPlugins;
3102
+ exports.getConfiguredBaseUrl = getConfiguredBaseUrl;
3103
+ exports.httpRequest = httpRequest;
2961
3104
  exports.inferProviderFromApiKey = inferProviderFromApiKey;
2962
3105
  exports.isCompactSummary = isCompactSummary;
3106
+ exports.isFixtureApiKey = isFixtureApiKey;
2963
3107
  exports.mapOllamaHttpError = mapOllamaHttpError;
2964
3108
  exports.mapOllamaTransportError = mapOllamaTransportError;
2965
3109
  exports.mapOpenAICompatibleError = mapOpenAICompatibleError;
2966
3110
  exports.parseSseStream = parseSseStream;
3111
+ exports.readErrorResponseBody = readErrorResponseBody;
2967
3112
  exports.relayStream = relayStream;
2968
3113
  exports.renderToolResultContentText = renderToolResultContentText;
2969
3114
  exports.resolveProviderChain = resolveProviderChain;
2970
3115
  exports.resolveSummarizerRoute = resolveSummarizerRoute;
2971
3116
  exports.shouldAutoCompact = shouldAutoCompact;
3117
+ exports.shouldUseFixtureMode = shouldUseFixtureMode;
3118
+ exports.shouldUseRealLocalRuntime = shouldUseRealLocalRuntime;
2972
3119
  exports.tryFirstEvent = tryFirstEvent;
2973
- //# sourceMappingURL=chunk-WEHUJ7ZS.cjs.map
2974
- //# sourceMappingURL=chunk-WEHUJ7ZS.cjs.map
3120
+ //# sourceMappingURL=chunk-ALU3KC4G.cjs.map
3121
+ //# sourceMappingURL=chunk-ALU3KC4G.cjs.map