@theokit/sdk 4.50.0 → 4.51.1

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 (308) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/agent-2KSLHB6B.cjs +57 -0
  3. package/dist/{agent-JA4ILE5O.cjs.map → agent-2KSLHB6B.cjs.map} +1 -1
  4. package/dist/agent-QWNWBCQZ.js +48 -0
  5. package/dist/{agent-GKX5FE5K.js.map → agent-QWNWBCQZ.js.map} +1 -1
  6. package/dist/agent-session-store-EPX2WQI4.cjs +23 -0
  7. package/dist/{agent-session-store-EPUERCUU.cjs.map → agent-session-store-EPX2WQI4.cjs.map} +1 -1
  8. package/dist/agent-session-store-JMU7ASDB.js +6 -0
  9. package/dist/{agent-session-store-TXP5ZVOD.js.map → agent-session-store-JMU7ASDB.js.map} +1 -1
  10. package/dist/auth/index.cjs +16 -16
  11. package/dist/auth/index.js +4 -4
  12. package/dist/{batch-OUF4N2TM.js → batch-NLIS4QTW.js} +9 -9
  13. package/dist/{batch-OUF4N2TM.js.map → batch-NLIS4QTW.js.map} +1 -1
  14. package/dist/{batch-URTEXK77.cjs → batch-WQ3AJCDV.cjs} +26 -26
  15. package/dist/{batch-URTEXK77.cjs.map → batch-WQ3AJCDV.cjs.map} +1 -1
  16. package/dist/{chunk-NETYW4V3.cjs → chunk-2CFEET3Y.cjs} +4 -4
  17. package/dist/{chunk-NETYW4V3.cjs.map → chunk-2CFEET3Y.cjs.map} +1 -1
  18. package/dist/{chunk-74VVGK7P.cjs → chunk-2S7IB4O3.cjs} +24 -24
  19. package/dist/{chunk-74VVGK7P.cjs.map → chunk-2S7IB4O3.cjs.map} +1 -1
  20. package/dist/{chunk-YULF6FPB.cjs → chunk-2YGIBOUH.cjs} +8 -8
  21. package/dist/{chunk-YULF6FPB.cjs.map → chunk-2YGIBOUH.cjs.map} +1 -1
  22. package/dist/{chunk-3NLOQEJR.js → chunk-34XOCZJO.js} +5 -16
  23. package/dist/chunk-34XOCZJO.js.map +1 -0
  24. package/dist/{chunk-FAUKVJCC.cjs → chunk-3BKWFISQ.cjs} +8 -8
  25. package/dist/{chunk-FAUKVJCC.cjs.map → chunk-3BKWFISQ.cjs.map} +1 -1
  26. package/dist/{chunk-FZ4YMZA3.cjs → chunk-3R4ZCQAZ.cjs} +5 -5
  27. package/dist/{chunk-FZ4YMZA3.cjs.map → chunk-3R4ZCQAZ.cjs.map} +1 -1
  28. package/dist/{chunk-HECR7KF5.cjs → chunk-3YYDHUNH.cjs} +11 -11
  29. package/dist/{chunk-HECR7KF5.cjs.map → chunk-3YYDHUNH.cjs.map} +1 -1
  30. package/dist/{chunk-BRHRQOJA.cjs → chunk-44IISBRZ.cjs} +4 -4
  31. package/dist/{chunk-BRHRQOJA.cjs.map → chunk-44IISBRZ.cjs.map} +1 -1
  32. package/dist/{chunk-PBML2FHN.js → chunk-4X3SBHPK.js} +2 -2
  33. package/dist/chunk-4X3SBHPK.js.map +1 -0
  34. package/dist/{chunk-OLLOUAUJ.js → chunk-5XXUYU3M.js} +3 -3
  35. package/dist/{chunk-OLLOUAUJ.js.map → chunk-5XXUYU3M.js.map} +1 -1
  36. package/dist/{chunk-XARLSCKA.js → chunk-6CSIUJ5W.js} +38 -38
  37. package/dist/chunk-6CSIUJ5W.js.map +1 -0
  38. package/dist/{chunk-KCQUYQ3V.cjs → chunk-6DCTL32L.cjs} +17 -17
  39. package/dist/{chunk-KCQUYQ3V.cjs.map → chunk-6DCTL32L.cjs.map} +1 -1
  40. package/dist/{chunk-EON4YTR6.js → chunk-6PTCKXD3.js} +8 -8
  41. package/dist/{chunk-EON4YTR6.js.map → chunk-6PTCKXD3.js.map} +1 -1
  42. package/dist/{chunk-XR4LPBXH.cjs → chunk-7HQVDLFI.cjs} +9 -9
  43. package/dist/{chunk-XR4LPBXH.cjs.map → chunk-7HQVDLFI.cjs.map} +1 -1
  44. package/dist/{chunk-GNMPCZNN.js → chunk-7TB5U7RK.js} +6 -6
  45. package/dist/{chunk-GNMPCZNN.js.map → chunk-7TB5U7RK.js.map} +1 -1
  46. package/dist/{chunk-7PESI6YD.cjs → chunk-ADVZIC43.cjs} +10 -10
  47. package/dist/{chunk-7PESI6YD.cjs.map → chunk-ADVZIC43.cjs.map} +1 -1
  48. package/dist/{chunk-NNNUQELM.cjs → chunk-AMYY3JHQ.cjs} +9 -9
  49. package/dist/{chunk-NNNUQELM.cjs.map → chunk-AMYY3JHQ.cjs.map} +1 -1
  50. package/dist/{chunk-L4JFQCG4.js → chunk-BKRTYDVN.js} +3 -3
  51. package/dist/{chunk-L4JFQCG4.js.map → chunk-BKRTYDVN.js.map} +1 -1
  52. package/dist/{chunk-MZQHVN7C.js → chunk-BVT6LFQ3.js} +5 -5
  53. package/dist/{chunk-MZQHVN7C.js.map → chunk-BVT6LFQ3.js.map} +1 -1
  54. package/dist/{chunk-UJMEWGO6.cjs → chunk-BWGXYOBZ.cjs} +4 -4
  55. package/dist/{chunk-UJMEWGO6.cjs.map → chunk-BWGXYOBZ.cjs.map} +1 -1
  56. package/dist/{chunk-2S6B5B2A.js → chunk-BXVSBYGW.js} +5 -5
  57. package/dist/{chunk-2S6B5B2A.js.map → chunk-BXVSBYGW.js.map} +1 -1
  58. package/dist/{chunk-AF4BBKIF.js → chunk-C4EU627W.js} +4 -4
  59. package/dist/{chunk-AF4BBKIF.js.map → chunk-C4EU627W.js.map} +1 -1
  60. package/dist/{chunk-VQFSEKU5.js → chunk-CHVSMEKM.js} +3 -3
  61. package/dist/{chunk-VQFSEKU5.js.map → chunk-CHVSMEKM.js.map} +1 -1
  62. package/dist/{chunk-6X2HUT4A.cjs → chunk-CZHPR2G7.cjs} +8 -8
  63. package/dist/{chunk-6X2HUT4A.cjs.map → chunk-CZHPR2G7.cjs.map} +1 -1
  64. package/dist/{chunk-F4RUADRC.js → chunk-DHVNJYTO.js} +3 -3
  65. package/dist/{chunk-F4RUADRC.js.map → chunk-DHVNJYTO.js.map} +1 -1
  66. package/dist/{chunk-UJ7HK7BX.js → chunk-DRRSUUI5.js} +5 -5
  67. package/dist/{chunk-UJ7HK7BX.js.map → chunk-DRRSUUI5.js.map} +1 -1
  68. package/dist/{chunk-S4Q5OMIK.cjs → chunk-E3OCRJU6.cjs} +11 -11
  69. package/dist/{chunk-S4Q5OMIK.cjs.map → chunk-E3OCRJU6.cjs.map} +1 -1
  70. package/dist/{chunk-3KY7MHR4.js → chunk-E6T264NS.js} +3 -3
  71. package/dist/{chunk-3KY7MHR4.js.map → chunk-E6T264NS.js.map} +1 -1
  72. package/dist/{chunk-WCXOKGOQ.cjs → chunk-ECPL5RV6.cjs} +8 -8
  73. package/dist/{chunk-WCXOKGOQ.cjs.map → chunk-ECPL5RV6.cjs.map} +1 -1
  74. package/dist/{chunk-LLE7HPRI.js → chunk-EFXJ5C7X.js} +5 -5
  75. package/dist/{chunk-LLE7HPRI.js.map → chunk-EFXJ5C7X.js.map} +1 -1
  76. package/dist/{chunk-GH52NOCL.cjs → chunk-EQMLJ52C.cjs} +26 -26
  77. package/dist/{chunk-GH52NOCL.cjs.map → chunk-EQMLJ52C.cjs.map} +1 -1
  78. package/dist/{chunk-WIGJGFH4.cjs → chunk-EUBGGYPH.cjs} +5 -5
  79. package/dist/{chunk-WIGJGFH4.cjs.map → chunk-EUBGGYPH.cjs.map} +1 -1
  80. package/dist/{chunk-RBQYHEZD.cjs → chunk-FBZMSLDC.cjs} +4 -4
  81. package/dist/{chunk-RBQYHEZD.cjs.map → chunk-FBZMSLDC.cjs.map} +1 -1
  82. package/dist/{chunk-64TJCXY5.cjs → chunk-FUASIT3E.cjs} +15 -15
  83. package/dist/{chunk-64TJCXY5.cjs.map → chunk-FUASIT3E.cjs.map} +1 -1
  84. package/dist/{chunk-MRKSSN36.js → chunk-HI4ZW62S.js} +3 -3
  85. package/dist/{chunk-MRKSSN36.js.map → chunk-HI4ZW62S.js.map} +1 -1
  86. package/dist/{chunk-O3IZ7JEL.js → chunk-I732VEDW.js} +3 -3
  87. package/dist/{chunk-O3IZ7JEL.js.map → chunk-I732VEDW.js.map} +1 -1
  88. package/dist/{chunk-AZ6FKDQR.js → chunk-ITQ4NO4P.js} +3 -3
  89. package/dist/{chunk-AZ6FKDQR.js.map → chunk-ITQ4NO4P.js.map} +1 -1
  90. package/dist/{chunk-PYM5OUL4.js → chunk-J4RY5DTI.js} +5 -5
  91. package/dist/{chunk-PYM5OUL4.js.map → chunk-J4RY5DTI.js.map} +1 -1
  92. package/dist/{chunk-NOM2YWFP.js → chunk-JJZ4NIAG.js} +5 -5
  93. package/dist/{chunk-NOM2YWFP.js.map → chunk-JJZ4NIAG.js.map} +1 -1
  94. package/dist/{chunk-GC44RATP.cjs → chunk-K42QGAKM.cjs} +10 -10
  95. package/dist/{chunk-GC44RATP.cjs.map → chunk-K42QGAKM.cjs.map} +1 -1
  96. package/dist/{chunk-FRQ6F44U.js → chunk-KIX45IKP.js} +4 -4
  97. package/dist/{chunk-FRQ6F44U.js.map → chunk-KIX45IKP.js.map} +1 -1
  98. package/dist/{chunk-OEFFPR2S.cjs → chunk-KNZU4YO5.cjs} +4 -4
  99. package/dist/{chunk-OEFFPR2S.cjs.map → chunk-KNZU4YO5.cjs.map} +1 -1
  100. package/dist/{chunk-HK4HRLWE.js → chunk-KZBB4YKU.js} +3 -3
  101. package/dist/{chunk-HK4HRLWE.js.map → chunk-KZBB4YKU.js.map} +1 -1
  102. package/dist/{chunk-ZS6SLELQ.js → chunk-L7EGRCKJ.js} +4 -4
  103. package/dist/{chunk-ZS6SLELQ.js.map → chunk-L7EGRCKJ.js.map} +1 -1
  104. package/dist/{chunk-LXKNENHK.js → chunk-MV4TOCUK.js} +3 -3
  105. package/dist/{chunk-LXKNENHK.js.map → chunk-MV4TOCUK.js.map} +1 -1
  106. package/dist/{chunk-PAV4ZPSW.js → chunk-N43XLTHZ.js} +3 -3
  107. package/dist/{chunk-PAV4ZPSW.js.map → chunk-N43XLTHZ.js.map} +1 -1
  108. package/dist/{chunk-QFFNMJAS.cjs → chunk-N6NUMXAJ.cjs} +121 -121
  109. package/dist/{chunk-QFFNMJAS.cjs.map → chunk-N6NUMXAJ.cjs.map} +1 -1
  110. package/dist/{chunk-ZNW2TXLO.js → chunk-NACDF3PK.js} +3 -3
  111. package/dist/{chunk-ZNW2TXLO.js.map → chunk-NACDF3PK.js.map} +1 -1
  112. package/dist/{chunk-27DYRARU.cjs → chunk-NFATC6ZF.cjs} +4 -4
  113. package/dist/{chunk-27DYRARU.cjs.map → chunk-NFATC6ZF.cjs.map} +1 -1
  114. package/dist/{chunk-RJBHWM6D.js → chunk-NOS7PTKP.js} +7 -7
  115. package/dist/{chunk-RJBHWM6D.js.map → chunk-NOS7PTKP.js.map} +1 -1
  116. package/dist/{chunk-NRA36JKG.cjs → chunk-OI6RHLGC.cjs} +11 -11
  117. package/dist/{chunk-NRA36JKG.cjs.map → chunk-OI6RHLGC.cjs.map} +1 -1
  118. package/dist/{chunk-J5RW43IR.js → chunk-OIBHY6JQ.js} +4 -4
  119. package/dist/{chunk-J5RW43IR.js.map → chunk-OIBHY6JQ.js.map} +1 -1
  120. package/dist/{chunk-UU7MAO2D.cjs → chunk-OKLYRPKL.cjs} +4 -16
  121. package/dist/chunk-OKLYRPKL.cjs.map +1 -0
  122. package/dist/{chunk-SNKY3C2L.js → chunk-OZXPA3ME.js} +4 -4
  123. package/dist/{chunk-SNKY3C2L.js.map → chunk-OZXPA3ME.js.map} +1 -1
  124. package/dist/{chunk-35NFZ7QB.js → chunk-PLUCC4N5.js} +3 -3
  125. package/dist/{chunk-35NFZ7QB.js.map → chunk-PLUCC4N5.js.map} +1 -1
  126. package/dist/{chunk-MMZX557L.cjs → chunk-PVBANCWU.cjs} +5 -5
  127. package/dist/{chunk-MMZX557L.cjs.map → chunk-PVBANCWU.cjs.map} +1 -1
  128. package/dist/{chunk-BV42CCRP.cjs → chunk-QLAWEGTZ.cjs} +7 -7
  129. package/dist/{chunk-BV42CCRP.cjs.map → chunk-QLAWEGTZ.cjs.map} +1 -1
  130. package/dist/{chunk-TDDRPFO3.js → chunk-QVIUICFM.js} +9 -9
  131. package/dist/{chunk-TDDRPFO3.js.map → chunk-QVIUICFM.js.map} +1 -1
  132. package/dist/{chunk-HKSSM5RK.js → chunk-R7TKOQMJ.js} +3 -3
  133. package/dist/{chunk-HKSSM5RK.js.map → chunk-R7TKOQMJ.js.map} +1 -1
  134. package/dist/{chunk-HLNLYLNN.cjs → chunk-RAACTJ7C.cjs} +4 -4
  135. package/dist/{chunk-HLNLYLNN.cjs.map → chunk-RAACTJ7C.cjs.map} +1 -1
  136. package/dist/chunk-RIAM53CP.js +22 -0
  137. package/dist/chunk-RIAM53CP.js.map +1 -0
  138. package/dist/{chunk-X2YQP452.cjs → chunk-RTLUZKDL.cjs} +11 -11
  139. package/dist/{chunk-X2YQP452.cjs.map → chunk-RTLUZKDL.cjs.map} +1 -1
  140. package/dist/{chunk-6W4U2G3J.cjs → chunk-SDJYLCJK.cjs} +5 -5
  141. package/dist/{chunk-6W4U2G3J.cjs.map → chunk-SDJYLCJK.cjs.map} +1 -1
  142. package/dist/{chunk-ZHPET3LZ.cjs → chunk-SXSPMRSV.cjs} +2 -2
  143. package/dist/chunk-SXSPMRSV.cjs.map +1 -0
  144. package/dist/{chunk-JA4FEA5Z.cjs → chunk-T6QUCG7L.cjs} +4 -4
  145. package/dist/{chunk-JA4FEA5Z.cjs.map → chunk-T6QUCG7L.cjs.map} +1 -1
  146. package/dist/{chunk-GLEKLAUW.cjs → chunk-T6ZCG5AP.cjs} +12 -12
  147. package/dist/{chunk-GLEKLAUW.cjs.map → chunk-T6ZCG5AP.cjs.map} +1 -1
  148. package/dist/{chunk-ZTEAJAE6.js → chunk-UJ3SXRZZ.js} +3 -3
  149. package/dist/{chunk-ZTEAJAE6.js.map → chunk-UJ3SXRZZ.js.map} +1 -1
  150. package/dist/{chunk-Z6N6SDNR.js → chunk-V2EJLKGA.js} +4 -4
  151. package/dist/{chunk-Z6N6SDNR.js.map → chunk-V2EJLKGA.js.map} +1 -1
  152. package/dist/{chunk-57KX5WTP.cjs → chunk-V45L2OYP.cjs} +9 -9
  153. package/dist/{chunk-57KX5WTP.cjs.map → chunk-V45L2OYP.cjs.map} +1 -1
  154. package/dist/chunk-VKJ7V7EB.cjs +25 -0
  155. package/dist/chunk-VKJ7V7EB.cjs.map +1 -0
  156. package/dist/{chunk-2WB6EIYW.js → chunk-W4FV7JBH.js} +4 -4
  157. package/dist/{chunk-2WB6EIYW.js.map → chunk-W4FV7JBH.js.map} +1 -1
  158. package/dist/{chunk-TJRPNBY5.js → chunk-XGYI2KQH.js} +4 -4
  159. package/dist/{chunk-TJRPNBY5.js.map → chunk-XGYI2KQH.js.map} +1 -1
  160. package/dist/{chunk-TSK4VVBW.cjs → chunk-XI4L45SS.cjs} +301 -301
  161. package/dist/chunk-XI4L45SS.cjs.map +1 -0
  162. package/dist/{chunk-4JRRFRV4.cjs → chunk-XK54DTRF.cjs} +4 -4
  163. package/dist/{chunk-4JRRFRV4.cjs.map → chunk-XK54DTRF.cjs.map} +1 -1
  164. package/dist/{chunk-6FSQ3CHQ.js → chunk-XWCTBGYK.js} +6 -7
  165. package/dist/chunk-XWCTBGYK.js.map +1 -0
  166. package/dist/{chunk-XA3TSBAH.cjs → chunk-YTO5BRBD.cjs} +10 -11
  167. package/dist/chunk-YTO5BRBD.cjs.map +1 -0
  168. package/dist/{chunk-JO76RWCA.cjs → chunk-Z5U2JGEK.cjs} +11 -11
  169. package/dist/{chunk-JO76RWCA.cjs.map → chunk-Z5U2JGEK.cjs.map} +1 -1
  170. package/dist/{chunk-Q4DTGCSD.js → chunk-ZSJPRPN7.js} +3 -3
  171. package/dist/{chunk-Q4DTGCSD.js.map → chunk-ZSJPRPN7.js.map} +1 -1
  172. package/dist/compact-session-AAFICMPQ.cjs +56 -0
  173. package/dist/{compact-session-UUCBTBCZ.cjs.map → compact-session-AAFICMPQ.cjs.map} +1 -1
  174. package/dist/compact-session-LR73ESZX.js +19 -0
  175. package/dist/{compact-session-GF2CBKXB.js.map → compact-session-LR73ESZX.js.map} +1 -1
  176. package/dist/compaction.cjs +16 -16
  177. package/dist/compaction.js +3 -3
  178. package/dist/concurrency.cjs +6 -6
  179. package/dist/concurrency.js +4 -4
  180. package/dist/context/index.cjs +6 -5
  181. package/dist/context/index.cjs.map +1 -1
  182. package/dist/context/index.js +3 -2
  183. package/dist/context/index.js.map +1 -1
  184. package/dist/context-4HGPCOH6.cjs +22 -0
  185. package/dist/{context-2G4375BZ.cjs.map → context-4HGPCOH6.cjs.map} +1 -1
  186. package/dist/context-DCECDKWN.js +5 -0
  187. package/dist/{context-GSQYVVMJ.js.map → context-DCECDKWN.js.map} +1 -1
  188. package/dist/cron.cjs +33 -32
  189. package/dist/cron.js +32 -31
  190. package/dist/errors.cjs +21 -21
  191. package/dist/errors.js +2 -2
  192. package/dist/eval.cjs +38 -37
  193. package/dist/eval.cjs.map +1 -1
  194. package/dist/eval.js +32 -31
  195. package/dist/eval.js.map +1 -1
  196. package/dist/{executor-VQLTQY53.js → executor-3CGPLVJL.js} +7 -7
  197. package/dist/{executor-VQLTQY53.js.map → executor-3CGPLVJL.js.map} +1 -1
  198. package/dist/{executor-CB75B5BH.cjs → executor-4SW7QGZ4.cjs} +24 -24
  199. package/dist/{executor-CB75B5BH.cjs.map → executor-4SW7QGZ4.cjs.map} +1 -1
  200. package/dist/filesystem/index.cjs +8 -7
  201. package/dist/filesystem/index.cjs.map +1 -1
  202. package/dist/filesystem/index.js +4 -3
  203. package/dist/filesystem/index.js.map +1 -1
  204. package/dist/fs-session-store-2TF3ZWMT.js +10 -0
  205. package/dist/{fs-session-store-ZNUYZHYI.js.map → fs-session-store-2TF3ZWMT.js.map} +1 -1
  206. package/dist/fs-session-store-TL4RJTXZ.cjs +19 -0
  207. package/dist/{fs-session-store-MAZV5FXJ.cjs.map → fs-session-store-TL4RJTXZ.cjs.map} +1 -1
  208. package/dist/generate-object-E465DX5I.cjs +20 -0
  209. package/dist/{generate-object-6PWGH5DZ.cjs.map → generate-object-E465DX5I.cjs.map} +1 -1
  210. package/dist/generate-object-TVQCW2IZ.js +7 -0
  211. package/dist/{generate-object-IXMJ7FUX.js.map → generate-object-TVQCW2IZ.js.map} +1 -1
  212. package/dist/index-manager-EA6FGIQG.js +12 -0
  213. package/dist/{index-manager-X5IPG2JL.js.map → index-manager-EA6FGIQG.js.map} +1 -1
  214. package/dist/index-manager-HGGL4DD5.cjs +21 -0
  215. package/dist/{index-manager-YFFEPISE.cjs.map → index-manager-HGGL4DD5.cjs.map} +1 -1
  216. package/dist/index.cjs +226 -134
  217. package/dist/index.cjs.map +1 -1
  218. package/dist/index.d.cts +239 -1
  219. package/dist/index.d.ts +239 -1
  220. package/dist/index.js +131 -46
  221. package/dist/index.js.map +1 -1
  222. package/dist/{inject-session-NR64GB3T.js → inject-session-6ZAFN7F7.js} +7 -7
  223. package/dist/{inject-session-NR64GB3T.js.map → inject-session-6ZAFN7F7.js.map} +1 -1
  224. package/dist/{inject-session-I3HK3AHB.cjs → inject-session-KOGUD6KM.cjs} +9 -9
  225. package/dist/{inject-session-I3HK3AHB.cjs.map → inject-session-KOGUD6KM.cjs.map} +1 -1
  226. package/dist/internal/memory/adapters/index.cjs +9 -8
  227. package/dist/internal/memory/adapters/index.js +8 -7
  228. package/dist/internal/persistence/index.cjs +25 -25
  229. package/dist/internal/persistence/index.js +6 -6
  230. package/dist/internal/security/index.cjs +14 -13
  231. package/dist/internal/security/index.js +4 -3
  232. package/dist/judge-call-GVIJWQVE.cjs +22 -0
  233. package/dist/{judge-call-J5EETJL3.cjs.map → judge-call-GVIJWQVE.cjs.map} +1 -1
  234. package/dist/judge-call-QMKGC2ZK.js +5 -0
  235. package/dist/{judge-call-3QZO5H5N.js.map → judge-call-QMKGC2ZK.js.map} +1 -1
  236. package/dist/models.cjs +20 -20
  237. package/dist/models.js +5 -5
  238. package/dist/path-safety.cjs +11 -10
  239. package/dist/path-safety.js +4 -3
  240. package/dist/persistence.cjs +28 -28
  241. package/dist/persistence.js +8 -8
  242. package/dist/project.cjs +5 -5
  243. package/dist/project.js +3 -3
  244. package/dist/registry-GC7BQMSV.js +9 -0
  245. package/dist/{registry-PPFMCM4A.js.map → registry-GC7BQMSV.js.map} +1 -1
  246. package/dist/registry-UBY26R4I.cjs +46 -0
  247. package/dist/{registry-KB3TS6BM.cjs.map → registry-UBY26R4I.cjs.map} +1 -1
  248. package/dist/retry.cjs +4 -4
  249. package/dist/retry.js +3 -3
  250. package/dist/sandbox/index.cjs +6 -6
  251. package/dist/sandbox/index.js +2 -2
  252. package/dist/server/errors-envelope.cjs +14 -14
  253. package/dist/server/errors-envelope.js +3 -3
  254. package/dist/session-transcript-SKIRBEJE.js +5 -0
  255. package/dist/{session-transcript-7FWTO4BK.js.map → session-transcript-SKIRBEJE.js.map} +1 -1
  256. package/dist/session-transcript-TNAJ4O3M.cjs +50 -0
  257. package/dist/{session-transcript-FYRKWRWV.cjs.map → session-transcript-TNAJ4O3M.cjs.map} +1 -1
  258. package/dist/skills.cjs +8 -7
  259. package/dist/skills.js +6 -5
  260. package/dist/stream-object-QMNR3YFF.js +7 -0
  261. package/dist/{stream-object-NPJXDZXO.js.map → stream-object-QMNR3YFF.js.map} +1 -1
  262. package/dist/stream-object-T4DAMNVB.cjs +20 -0
  263. package/dist/{stream-object-3R3HZPQN.cjs.map → stream-object-T4DAMNVB.cjs.map} +1 -1
  264. package/dist/subagents-loader-3CXBQWWY.cjs +15 -0
  265. package/dist/{subagents-loader-FDXPBBRA.cjs.map → subagents-loader-3CXBQWWY.cjs.map} +1 -1
  266. package/dist/subagents-loader-WN2SB6PV.js +6 -0
  267. package/dist/{subagents-loader-5KQVYUNS.js.map → subagents-loader-WN2SB6PV.js.map} +1 -1
  268. package/dist/subagents-loader.cjs +6 -6
  269. package/dist/subagents-loader.js +4 -4
  270. package/dist/subscription/index.cjs +3 -3
  271. package/dist/subscription/index.js +2 -2
  272. package/dist/task-store.cjs +7 -7
  273. package/dist/task-store.js +4 -4
  274. package/dist/workflow.cjs +28 -27
  275. package/dist/workflow.js +7 -6
  276. package/package.json +1 -1
  277. package/dist/agent-GKX5FE5K.js +0 -47
  278. package/dist/agent-JA4ILE5O.cjs +0 -56
  279. package/dist/agent-session-store-EPUERCUU.cjs +0 -23
  280. package/dist/agent-session-store-TXP5ZVOD.js +0 -6
  281. package/dist/chunk-3NLOQEJR.js.map +0 -1
  282. package/dist/chunk-6FSQ3CHQ.js.map +0 -1
  283. package/dist/chunk-PBML2FHN.js.map +0 -1
  284. package/dist/chunk-TSK4VVBW.cjs.map +0 -1
  285. package/dist/chunk-UU7MAO2D.cjs.map +0 -1
  286. package/dist/chunk-XA3TSBAH.cjs.map +0 -1
  287. package/dist/chunk-XARLSCKA.js.map +0 -1
  288. package/dist/chunk-ZHPET3LZ.cjs.map +0 -1
  289. package/dist/compact-session-GF2CBKXB.js +0 -18
  290. package/dist/compact-session-UUCBTBCZ.cjs +0 -55
  291. package/dist/context-2G4375BZ.cjs +0 -22
  292. package/dist/context-GSQYVVMJ.js +0 -5
  293. package/dist/fs-session-store-MAZV5FXJ.cjs +0 -19
  294. package/dist/fs-session-store-ZNUYZHYI.js +0 -10
  295. package/dist/generate-object-6PWGH5DZ.cjs +0 -20
  296. package/dist/generate-object-IXMJ7FUX.js +0 -7
  297. package/dist/index-manager-X5IPG2JL.js +0 -11
  298. package/dist/index-manager-YFFEPISE.cjs +0 -20
  299. package/dist/judge-call-3QZO5H5N.js +0 -5
  300. package/dist/judge-call-J5EETJL3.cjs +0 -22
  301. package/dist/registry-KB3TS6BM.cjs +0 -46
  302. package/dist/registry-PPFMCM4A.js +0 -9
  303. package/dist/session-transcript-7FWTO4BK.js +0 -5
  304. package/dist/session-transcript-FYRKWRWV.cjs +0 -50
  305. package/dist/stream-object-3R3HZPQN.cjs +0 -20
  306. package/dist/stream-object-NPJXDZXO.js +0 -7
  307. package/dist/subagents-loader-5KQVYUNS.js +0 -6
  308. package/dist/subagents-loader-FDXPBBRA.cjs +0 -15
package/dist/index.d.cts CHANGED
@@ -806,6 +806,122 @@ declare class AgentFactory {
806
806
  static create(common: Partial<AgentOptions>): AgentFactory;
807
807
  }
808
808
 
809
+ /**
810
+ * Decide whether a tool call proceeds, and say WHY — as a typed signal rather than a tool result.
811
+ *
812
+ * When a veto is delivered as an ordinary tool result, the MODEL reads it as output: it sees a
813
+ * string, concludes the tool failed for some reason, and retries or works around it. A denial, an
814
+ * error, and a tool that legitimately returned the word "denied" become indistinguishable to
815
+ * everything downstream — including the surface that should be telling the user what happened.
816
+ *
817
+ * ## What is generic, and what is not
818
+ *
819
+ * The RULE is a precedence: an explicit per-tool decision outranks the mode, a convenience mode does
820
+ * not overturn an explicit refusal, and anything undecided falls to the mode. The VOCABULARY is not
821
+ * — which tools exist belongs to the product and arrives as data. Nothing here names one.
822
+ *
823
+ * Deliberately separate from the blast-radius policy: that one answers "what does this action
824
+ * reach", this one answers "who said yes". Keeping them apart is what lets a product gate on reach
825
+ * without re-implementing the mode ladder, and compose both where it needs to.
826
+ *
827
+ * @public
828
+ */
829
+ /** What the operator chose for everything not decided per tool. @public */
830
+ type ApprovalMode = "ask" | "never-ask" | "refuse-all";
831
+ /** @public */
832
+ type ApprovalOutcome = "allow" | "ask" | "deny";
833
+ /** @public */
834
+ type ApprovalReason = "explicitly-allowed" | "explicitly-denied" | "mode-ask" | "mode-never-ask" | "mode-refuse-all";
835
+ /** @public */
836
+ interface ApprovalInput {
837
+ readonly tool: string;
838
+ readonly mode: ApprovalMode;
839
+ /** Tools the operator allowed once and for all. */
840
+ readonly allowed?: readonly string[];
841
+ /** Tools the operator refused. Outranks `allowed` and every mode. */
842
+ readonly denied?: readonly string[];
843
+ }
844
+ /** @public */
845
+ interface ApprovalDecision {
846
+ readonly outcome: ApprovalOutcome;
847
+ readonly reason: ApprovalReason;
848
+ /** The tool the decision was about, so a surface names it without re-deriving it. */
849
+ readonly tool: string;
850
+ }
851
+ /**
852
+ * @returns the outcome, why it was reached, and the tool it was about.
853
+ * @public
854
+ */
855
+ declare function decideApproval(input: ApprovalInput): ApprovalDecision;
856
+
857
+ /**
858
+ * Decide an action by what it REACHES and whether it can be undone — not by its name.
859
+ *
860
+ * A sandbox answers "which files may this process touch", and that is a different question from the
861
+ * one that decides whether an action is safe. A tool that drops a production database touches no
862
+ * file the sandbox cares about; a tool that lists pods reaches an entire cluster while writing
863
+ * nothing. Confinement covers the disk, not the reach.
864
+ *
865
+ * With nothing better available, every product gates on the tool's NAME: an allowlist of strings
866
+ * that says nothing about what the tool does, drifts the moment one is renamed, and cannot be
867
+ * reasoned about by anyone who did not write it. A guard each product re-implements is a guard some
868
+ * product forgets.
869
+ *
870
+ * ## What is generic here, and what is not
871
+ *
872
+ * The RULE is: an action declares the scope it reaches and whether it is reversible, and a policy
873
+ * decides from those two facts plus what the operator granted. The VOCABULARY is not — which scopes
874
+ * exist ("cluster:prod", "billing-account", "the laptop") belongs to the product and arrives as
875
+ * data. Nothing in this module names a scope, the same way the security floor names no sandbox mode
876
+ * and the trust posture names no capability.
877
+ *
878
+ * ## Why the reason is part of the answer
879
+ *
880
+ * "The sandbox stopped this" and "you never granted reach to that scope" are different facts with
881
+ * different fixes, and an operator told the wrong one widens the wrong thing. So a decision carries
882
+ * WHY — the same reason a trust posture reports its `source` and a wiring record distinguishes
883
+ * withheld-by-trust from never-configured.
884
+ *
885
+ * @public
886
+ */
887
+ /** What an action reaches, and whether it can be taken back. @public */
888
+ interface DeclaredAction {
889
+ /**
890
+ * The product's name for what this action reaches. An empty string is treated as UNDECLARED and
891
+ * refused: a tool that forgot to declare is not a tool that reaches nothing.
892
+ */
893
+ readonly scope: string;
894
+ /**
895
+ * Whether the action can be undone. Reversible actions inside a granted scope proceed;
896
+ * irreversible ones ask, because granting reach is not granting destruction.
897
+ */
898
+ readonly reversible: boolean;
899
+ }
900
+ /** @public */
901
+ interface BlastRadiusInput {
902
+ readonly action: DeclaredAction;
903
+ /** Scopes the operator granted reach to. Empty grants nothing — never everything. */
904
+ readonly granted: readonly string[];
905
+ /** Scopes where the operator pre-approved irreversible actions, so an unattended run can work. */
906
+ readonly irreversibleAllowed?: readonly string[];
907
+ }
908
+ /** @public */
909
+ type BlastRadiusOutcome = "allow" | "require-approval" | "refuse";
910
+ /** Why the decision came out that way. Rendered to the operator and read by an audit. @public */
911
+ type BlastRadiusReason = "within-granted-scope" | "irreversible" | "scope-not-granted" | "scope-undeclared";
912
+ /** @public */
913
+ interface BlastRadiusDecision {
914
+ readonly outcome: BlastRadiusOutcome;
915
+ readonly reason: BlastRadiusReason;
916
+ /** The scope the decision was made about, so a surface can name it without re-deriving it. */
917
+ readonly scope: string;
918
+ }
919
+ /**
920
+ * @returns the outcome with the reason and the scope it was decided on.
921
+ * @public
922
+ */
923
+ declare function evaluateBlastRadius(input: BlastRadiusInput): BlastRadiusDecision;
924
+
809
925
  /**
810
926
  * computeCost — apply pricing entries to a TokenUsage and produce a
811
927
  * CostBreakdown (ADRs D377, D378).
@@ -1067,6 +1183,48 @@ declare class UnicodeNormalizer {
1067
1183
  static create(opts?: UnicodeNormalizerOptions): Processor;
1068
1184
  }
1069
1185
 
1186
+ /**
1187
+ * Report whether a credential resolved — never what it is.
1188
+ *
1189
+ * Every agent product grows a "why can't I use this model?" surface: a doctor command, a status
1190
+ * panel, a startup diagnostic. Each needs to know whether a credential resolved, and each is one
1191
+ * careless line from printing it. The line is careless precisely because it is convenient — the
1192
+ * value is right there, and whoever is debugging a routing problem wants to see it.
1193
+ *
1194
+ * So presence-only is the DEFAULT here rather than each consumer's discipline. Discipline is what
1195
+ * every product has until the day it does not, and a leaked key is not a defect anyone can withdraw.
1196
+ *
1197
+ * ## Why a fingerprint and not a prefix
1198
+ *
1199
+ * A report has to be actionable: two people asking "is it the same key?" need something to compare.
1200
+ * The convenient answer — the first eight characters — is still the secret, and it is enough to
1201
+ * identify a key in a breach corpus. A hash is not.
1202
+ *
1203
+ * @public
1204
+ */
1205
+ /** @public */
1206
+ interface CredentialInput {
1207
+ /** The product's name for the provider. This module never knows one of its own. */
1208
+ readonly provider: string;
1209
+ /** The resolved secret, or `undefined`/empty when nothing resolved. */
1210
+ readonly value: string | undefined;
1211
+ /** Where it came from, in the product's vocabulary — `env`, `file`, `keychain`, `oauth`. */
1212
+ readonly source: string;
1213
+ }
1214
+ /** @public */
1215
+ interface CredentialReport {
1216
+ readonly provider: string;
1217
+ readonly present: boolean;
1218
+ readonly source: string;
1219
+ /** Eight hex characters of a hash. Absent when no credential resolved. Never a prefix. */
1220
+ readonly fingerprint?: string;
1221
+ }
1222
+ /**
1223
+ * @returns a report safe to log, render and attach to a support bundle.
1224
+ * @public
1225
+ */
1226
+ declare function describeCredential(input: CredentialInput): CredentialReport;
1227
+
1070
1228
  /**
1071
1229
  * Plugin contract — RUNTIME value + type re-exports (T1.1, ADRs D97-D101).
1072
1230
  *
@@ -2235,6 +2393,51 @@ interface SecurityFloorInput {
2235
2393
  */
2236
2394
  declare function applySecurityFloor(input: SecurityFloorInput): string | undefined;
2237
2395
 
2396
+ /**
2397
+ * Refuse to destroy a session another process is still writing.
2398
+ *
2399
+ * Every agent product that lets a user delete or overwrite a session needs this, and the failure is
2400
+ * unrecoverable in the worst way: a transcript removed underneath a running session takes with it
2401
+ * everything that session had not flushed, and nothing errors. The user sees a successful delete.
2402
+ *
2403
+ * ## The ordering is the point
2404
+ *
2405
+ * The check runs BEFORE anything is mutated. Removing a registry entry and then refusing leaves a
2406
+ * session that can be neither opened nor deleted — worse than either outcome on its own. So this is
2407
+ * a function the caller passes through rather than a flag it may consult afterwards: the throw is
2408
+ * what stops the mutation, and there is no way to read the answer and forget to act on it.
2409
+ *
2410
+ * ## What is generic, and what is not
2411
+ *
2412
+ * The RULE is: a session declared live is not destroyable, and refusing says which one and why. The
2413
+ * VOCABULARY is not — how a product decides liveness (a pointer file, the newest transcript, a
2414
+ * lease, an active registry entry) is its own. Nothing here touches a filesystem.
2415
+ *
2416
+ * @public
2417
+ */
2418
+
2419
+ /** Why the destruction was refused. @public */
2420
+ type LiveSessionReason = "session-is-live" | "liveness-undetermined";
2421
+ /** @public */
2422
+ declare class LiveSessionError extends TheokitAgentError {
2423
+ readonly name = "LiveSessionError";
2424
+ readonly sessionId: string;
2425
+ readonly reason: LiveSessionReason;
2426
+ constructor(sessionId: string, reason: LiveSessionReason);
2427
+ }
2428
+ /**
2429
+ * Throw unless `sessionId` is safe to destroy.
2430
+ *
2431
+ * @param live - the sessions the product declares live, or `undefined` when it could not tell.
2432
+ * The distinction is load-bearing: an EMPTY set is a legitimate answer (nothing is open), while
2433
+ * `undefined` refuses. A product that swallowed a read error and returned `[]` would hand this
2434
+ * guard the one input that disables it entirely, on exactly the path that destroys data.
2435
+ * @throws LiveSessionError naming the session and the reason — "close that session" and "the guard
2436
+ * could not read" have different fixes, and conflating them sends the user to close nothing.
2437
+ * @public
2438
+ */
2439
+ declare function guardSessionDestruction(sessionId: string, live: readonly string[] | undefined): void;
2440
+
2238
2441
  /**
2239
2442
  * M3 #62 — scoped session state.
2240
2443
  *
@@ -2723,6 +2926,41 @@ declare class Theokit {
2723
2926
  };
2724
2927
  }
2725
2928
 
2929
+ /**
2930
+ * Attach a blast-radius declaration to a tool, so the approval layer gates on what the tool DOES.
2931
+ *
2932
+ * Without this the only key available to a policy is the tool's NAME, which says nothing about the
2933
+ * action, drifts the moment a tool is renamed, and cannot be reviewed by anyone who did not write
2934
+ * it. `delete_namespace` and `list_pods` differ by a word.
2935
+ *
2936
+ * ## Why a wrapper rather than a field on the input schema
2937
+ *
2938
+ * `inputSchema` is what the MODEL sees. Blast radius is not for the model — it is for the approval
2939
+ * layer — and putting it there would leak policy into the prompt and let a model-authored argument
2940
+ * influence its own gate. The declaration rides alongside the tool instead, under a symbol so it
2941
+ * cannot collide with a tool's own properties or be serialised into a prompt by accident.
2942
+ *
2943
+ * @public
2944
+ */
2945
+
2946
+ /** @public */
2947
+ type WithBlastRadius<T> = T & {
2948
+ readonly [DECLARED]?: DeclaredAction;
2949
+ };
2950
+ /**
2951
+ * @returns the same tool, with its action declared. The tool is not otherwise altered — the model
2952
+ * must see exactly what it saw before.
2953
+ * @public
2954
+ */
2955
+ declare function withBlastRadius<T extends object>(tool: T, action: DeclaredAction): WithBlastRadius<T>;
2956
+ /**
2957
+ * @returns the declared action, or `undefined` when the tool never declared one — NOT an empty
2958
+ * action. "Never declared" and "declared as reaching nothing" are different facts, and collapsing
2959
+ * them is how an unreviewed tool passes as harmless.
2960
+ * @public
2961
+ */
2962
+ declare function describeAction(tool: object): DeclaredAction | undefined;
2963
+
2726
2964
  /**
2727
2965
  * SE7 — `ToolError`: thrown FROM a tool `handler` to report a failure back to
2728
2966
  * the model with structured content (text and/or an image), not just a string.
@@ -2973,4 +3211,4 @@ interface WiringRecordInput<K extends string> {
2973
3211
  */
2974
3212
  declare function recordWiring<K extends string>(input: WiringRecordInput<K>): Readonly<Record<K, WiredEntity>>;
2975
3213
 
2976
- export { Agent, AgentBuilder, AgentDefinition, AgentDescription, AgentFactory, AgentOperationOptions, AgentOptions, type AgentPromptResult, type AgentRegistryOptions, type BatchItem, type BatchOptions, type BatchProgress, type BatchResult, Budget, BudgetHandle, BudgetOptions, BudgetSnapshot, BudgetTracker, CloudOptions, ContextSettings, type CounterBudgetTrackerOptions, CustomTool, type DeclaredLayer, type DeepPartial, type DefineProviderOptions, type DefineToolSpec, type DiagnosticsSink, type DreamingSweepOptions, type DreamingSweepResult, type EnvOptOut, type EnvReachabilityAudit, type EnvReachabilityInput, ErrorMetadata, EventBus, type EvictReason, GOAL_CONTINUATION_MARKER, GenerateObjectError, type GenerateObjectOptions, type GenerateObjectResult, GetAgentOptions, GetRunOptions, GoalEvent, type GoalLoopAgent, GoalOptions, GoalResult, InlineSkill, JobQueue, type JobQueueOptions, JudgeCredentialError, JudgeResult, type KeepReason, type KeptArtifact, LayerOrderError, type LayerValues, ListAgentsOptions, ListResult, ListRunsOptions, LiveAgentRegistry, LocalOptions, McpServerConfig, Memory, MemoryId, MemoryProvider, MemorySettings, type MigrateOptions, type MigrateResult, type ModelListItem, type ModelParameterDefinition, ModelSelection, type ModelVariant, NoopMemoryProvider, type NormalizedJsonSchema, PermissionEngine, type PermissionGate, type PermissionGateContext, type PermissionGateDecision, PermissionMode, PermissionPlugin, type PermissionPluginOptions, Plugin, PluginsSettings, PreToolCallDecision, Processor, Provider, ProviderProfile, ProviderRoutingSettings, type ReapPlan, type ReapPlanInput, type ReapableArtifact, type RetentionPolicy, RetentionPolicyError, Run, RunEventSink, RunResult, SDKAgent, SDKAgentInfo, SDKMessage, type SDKModel, SDKProvider, type SDKRepository, type SDKUser, SOVEREIGN_ENV_KEYS, Security, type SecurityFloorInput, type SessionMessage, type SessionMessagePart, type SessionScope, type ShareGptMessage, type ShareGptTrajectory, SkillReadTool, SkillsSettings, type SovereignEnvKey, Squad, type SquadOptions, type SquadRun, StreamObjectError, type StreamObjectEvent, type StreamObjectOptions, SystemPromptResolver, TASK_RESERVED_PREFIXES, Task, type TaskCancelResult, type TaskConfigureOptions, type TaskEvent, type TaskFilter, type TaskHandle, type TaskKind, type TaskState, type TaskStoreOptions, type TaskSubmitOptions, type TaskWorkContext, type TaskWorkFn, Theokit, TheokitAgentError, type TheokitRequestOptions, TokenLimiter, type TokenLimiterOptions, Tool, ToolError, ToolResultContentBlock, type TrustLevel, type TrustPosture, type TrustPostureInput, type TrustSource, UngatedCapabilityError, UnicodeNormalizer, type UnicodeNormalizerOptions, UsageAccumulator, type WiredEntity, type WiringRecordInput, applySecurityFloor, auditEnvReachability, chargeAndCheckThresholds, computeCost, createCounterBudgetTracker, estimateTokens, extractRawId, foldLayers, getPricingEntry, inferApiMode, isValidTaskId, loadProjectEnv, migrateSqliteToLance, mkMemoryId, normalizeSchema, normalizeUsage, planReaping, preflightCheck, recordWiring, resolveTrustPosture, runGoalLoop, scopedConversationId, sessionScopePrefix, setDiagnosticsSink, toShareGptTrajectory, verifyLayerOrdering, withCwdMutex };
3214
+ export { Agent, AgentBuilder, AgentDefinition, AgentDescription, AgentFactory, AgentOperationOptions, AgentOptions, type AgentPromptResult, type AgentRegistryOptions, type ApprovalDecision, type ApprovalInput, type ApprovalMode, type ApprovalOutcome, type ApprovalReason, type BatchItem, type BatchOptions, type BatchProgress, type BatchResult, type BlastRadiusDecision, type BlastRadiusInput, type BlastRadiusOutcome, type BlastRadiusReason, Budget, BudgetHandle, BudgetOptions, BudgetSnapshot, BudgetTracker, CloudOptions, ContextSettings, type CounterBudgetTrackerOptions, type CredentialInput, type CredentialReport, CustomTool, type DeclaredAction, type DeclaredLayer, type DeepPartial, type DefineProviderOptions, type DefineToolSpec, type DiagnosticsSink, type DreamingSweepOptions, type DreamingSweepResult, type EnvOptOut, type EnvReachabilityAudit, type EnvReachabilityInput, ErrorMetadata, EventBus, type EvictReason, GOAL_CONTINUATION_MARKER, GenerateObjectError, type GenerateObjectOptions, type GenerateObjectResult, GetAgentOptions, GetRunOptions, GoalEvent, type GoalLoopAgent, GoalOptions, GoalResult, InlineSkill, JobQueue, type JobQueueOptions, JudgeCredentialError, JudgeResult, type KeepReason, type KeptArtifact, LayerOrderError, type LayerValues, ListAgentsOptions, ListResult, ListRunsOptions, LiveAgentRegistry, LiveSessionError, type LiveSessionReason, LocalOptions, McpServerConfig, Memory, MemoryId, MemoryProvider, MemorySettings, type MigrateOptions, type MigrateResult, type ModelListItem, type ModelParameterDefinition, ModelSelection, type ModelVariant, NoopMemoryProvider, type NormalizedJsonSchema, PermissionEngine, type PermissionGate, type PermissionGateContext, type PermissionGateDecision, PermissionMode, PermissionPlugin, type PermissionPluginOptions, Plugin, PluginsSettings, PreToolCallDecision, Processor, Provider, ProviderProfile, ProviderRoutingSettings, type ReapPlan, type ReapPlanInput, type ReapableArtifact, type RetentionPolicy, RetentionPolicyError, Run, RunEventSink, RunResult, SDKAgent, SDKAgentInfo, SDKMessage, type SDKModel, SDKProvider, type SDKRepository, type SDKUser, SOVEREIGN_ENV_KEYS, Security, type SecurityFloorInput, type SessionMessage, type SessionMessagePart, type SessionScope, type ShareGptMessage, type ShareGptTrajectory, SkillReadTool, SkillsSettings, type SovereignEnvKey, Squad, type SquadOptions, type SquadRun, StreamObjectError, type StreamObjectEvent, type StreamObjectOptions, SystemPromptResolver, TASK_RESERVED_PREFIXES, Task, type TaskCancelResult, type TaskConfigureOptions, type TaskEvent, type TaskFilter, type TaskHandle, type TaskKind, type TaskState, type TaskStoreOptions, type TaskSubmitOptions, type TaskWorkContext, type TaskWorkFn, Theokit, TheokitAgentError, type TheokitRequestOptions, TokenLimiter, type TokenLimiterOptions, Tool, ToolError, ToolResultContentBlock, type TrustLevel, type TrustPosture, type TrustPostureInput, type TrustSource, UngatedCapabilityError, UnicodeNormalizer, type UnicodeNormalizerOptions, UsageAccumulator, type WiredEntity, type WiringRecordInput, type WithBlastRadius, applySecurityFloor, auditEnvReachability, chargeAndCheckThresholds, computeCost, createCounterBudgetTracker, decideApproval, describeAction, describeCredential, estimateTokens, evaluateBlastRadius, extractRawId, foldLayers, getPricingEntry, guardSessionDestruction, inferApiMode, isValidTaskId, loadProjectEnv, migrateSqliteToLance, mkMemoryId, normalizeSchema, normalizeUsage, planReaping, preflightCheck, recordWiring, resolveTrustPosture, runGoalLoop, scopedConversationId, sessionScopePrefix, setDiagnosticsSink, toShareGptTrajectory, verifyLayerOrdering, withBlastRadius, withCwdMutex };
package/dist/index.d.ts CHANGED
@@ -806,6 +806,122 @@ declare class AgentFactory {
806
806
  static create(common: Partial<AgentOptions>): AgentFactory;
807
807
  }
808
808
 
809
+ /**
810
+ * Decide whether a tool call proceeds, and say WHY — as a typed signal rather than a tool result.
811
+ *
812
+ * When a veto is delivered as an ordinary tool result, the MODEL reads it as output: it sees a
813
+ * string, concludes the tool failed for some reason, and retries or works around it. A denial, an
814
+ * error, and a tool that legitimately returned the word "denied" become indistinguishable to
815
+ * everything downstream — including the surface that should be telling the user what happened.
816
+ *
817
+ * ## What is generic, and what is not
818
+ *
819
+ * The RULE is a precedence: an explicit per-tool decision outranks the mode, a convenience mode does
820
+ * not overturn an explicit refusal, and anything undecided falls to the mode. The VOCABULARY is not
821
+ * — which tools exist belongs to the product and arrives as data. Nothing here names one.
822
+ *
823
+ * Deliberately separate from the blast-radius policy: that one answers "what does this action
824
+ * reach", this one answers "who said yes". Keeping them apart is what lets a product gate on reach
825
+ * without re-implementing the mode ladder, and compose both where it needs to.
826
+ *
827
+ * @public
828
+ */
829
+ /** What the operator chose for everything not decided per tool. @public */
830
+ type ApprovalMode = "ask" | "never-ask" | "refuse-all";
831
+ /** @public */
832
+ type ApprovalOutcome = "allow" | "ask" | "deny";
833
+ /** @public */
834
+ type ApprovalReason = "explicitly-allowed" | "explicitly-denied" | "mode-ask" | "mode-never-ask" | "mode-refuse-all";
835
+ /** @public */
836
+ interface ApprovalInput {
837
+ readonly tool: string;
838
+ readonly mode: ApprovalMode;
839
+ /** Tools the operator allowed once and for all. */
840
+ readonly allowed?: readonly string[];
841
+ /** Tools the operator refused. Outranks `allowed` and every mode. */
842
+ readonly denied?: readonly string[];
843
+ }
844
+ /** @public */
845
+ interface ApprovalDecision {
846
+ readonly outcome: ApprovalOutcome;
847
+ readonly reason: ApprovalReason;
848
+ /** The tool the decision was about, so a surface names it without re-deriving it. */
849
+ readonly tool: string;
850
+ }
851
+ /**
852
+ * @returns the outcome, why it was reached, and the tool it was about.
853
+ * @public
854
+ */
855
+ declare function decideApproval(input: ApprovalInput): ApprovalDecision;
856
+
857
+ /**
858
+ * Decide an action by what it REACHES and whether it can be undone — not by its name.
859
+ *
860
+ * A sandbox answers "which files may this process touch", and that is a different question from the
861
+ * one that decides whether an action is safe. A tool that drops a production database touches no
862
+ * file the sandbox cares about; a tool that lists pods reaches an entire cluster while writing
863
+ * nothing. Confinement covers the disk, not the reach.
864
+ *
865
+ * With nothing better available, every product gates on the tool's NAME: an allowlist of strings
866
+ * that says nothing about what the tool does, drifts the moment one is renamed, and cannot be
867
+ * reasoned about by anyone who did not write it. A guard each product re-implements is a guard some
868
+ * product forgets.
869
+ *
870
+ * ## What is generic here, and what is not
871
+ *
872
+ * The RULE is: an action declares the scope it reaches and whether it is reversible, and a policy
873
+ * decides from those two facts plus what the operator granted. The VOCABULARY is not — which scopes
874
+ * exist ("cluster:prod", "billing-account", "the laptop") belongs to the product and arrives as
875
+ * data. Nothing in this module names a scope, the same way the security floor names no sandbox mode
876
+ * and the trust posture names no capability.
877
+ *
878
+ * ## Why the reason is part of the answer
879
+ *
880
+ * "The sandbox stopped this" and "you never granted reach to that scope" are different facts with
881
+ * different fixes, and an operator told the wrong one widens the wrong thing. So a decision carries
882
+ * WHY — the same reason a trust posture reports its `source` and a wiring record distinguishes
883
+ * withheld-by-trust from never-configured.
884
+ *
885
+ * @public
886
+ */
887
+ /** What an action reaches, and whether it can be taken back. @public */
888
+ interface DeclaredAction {
889
+ /**
890
+ * The product's name for what this action reaches. An empty string is treated as UNDECLARED and
891
+ * refused: a tool that forgot to declare is not a tool that reaches nothing.
892
+ */
893
+ readonly scope: string;
894
+ /**
895
+ * Whether the action can be undone. Reversible actions inside a granted scope proceed;
896
+ * irreversible ones ask, because granting reach is not granting destruction.
897
+ */
898
+ readonly reversible: boolean;
899
+ }
900
+ /** @public */
901
+ interface BlastRadiusInput {
902
+ readonly action: DeclaredAction;
903
+ /** Scopes the operator granted reach to. Empty grants nothing — never everything. */
904
+ readonly granted: readonly string[];
905
+ /** Scopes where the operator pre-approved irreversible actions, so an unattended run can work. */
906
+ readonly irreversibleAllowed?: readonly string[];
907
+ }
908
+ /** @public */
909
+ type BlastRadiusOutcome = "allow" | "require-approval" | "refuse";
910
+ /** Why the decision came out that way. Rendered to the operator and read by an audit. @public */
911
+ type BlastRadiusReason = "within-granted-scope" | "irreversible" | "scope-not-granted" | "scope-undeclared";
912
+ /** @public */
913
+ interface BlastRadiusDecision {
914
+ readonly outcome: BlastRadiusOutcome;
915
+ readonly reason: BlastRadiusReason;
916
+ /** The scope the decision was made about, so a surface can name it without re-deriving it. */
917
+ readonly scope: string;
918
+ }
919
+ /**
920
+ * @returns the outcome with the reason and the scope it was decided on.
921
+ * @public
922
+ */
923
+ declare function evaluateBlastRadius(input: BlastRadiusInput): BlastRadiusDecision;
924
+
809
925
  /**
810
926
  * computeCost — apply pricing entries to a TokenUsage and produce a
811
927
  * CostBreakdown (ADRs D377, D378).
@@ -1067,6 +1183,48 @@ declare class UnicodeNormalizer {
1067
1183
  static create(opts?: UnicodeNormalizerOptions): Processor;
1068
1184
  }
1069
1185
 
1186
+ /**
1187
+ * Report whether a credential resolved — never what it is.
1188
+ *
1189
+ * Every agent product grows a "why can't I use this model?" surface: a doctor command, a status
1190
+ * panel, a startup diagnostic. Each needs to know whether a credential resolved, and each is one
1191
+ * careless line from printing it. The line is careless precisely because it is convenient — the
1192
+ * value is right there, and whoever is debugging a routing problem wants to see it.
1193
+ *
1194
+ * So presence-only is the DEFAULT here rather than each consumer's discipline. Discipline is what
1195
+ * every product has until the day it does not, and a leaked key is not a defect anyone can withdraw.
1196
+ *
1197
+ * ## Why a fingerprint and not a prefix
1198
+ *
1199
+ * A report has to be actionable: two people asking "is it the same key?" need something to compare.
1200
+ * The convenient answer — the first eight characters — is still the secret, and it is enough to
1201
+ * identify a key in a breach corpus. A hash is not.
1202
+ *
1203
+ * @public
1204
+ */
1205
+ /** @public */
1206
+ interface CredentialInput {
1207
+ /** The product's name for the provider. This module never knows one of its own. */
1208
+ readonly provider: string;
1209
+ /** The resolved secret, or `undefined`/empty when nothing resolved. */
1210
+ readonly value: string | undefined;
1211
+ /** Where it came from, in the product's vocabulary — `env`, `file`, `keychain`, `oauth`. */
1212
+ readonly source: string;
1213
+ }
1214
+ /** @public */
1215
+ interface CredentialReport {
1216
+ readonly provider: string;
1217
+ readonly present: boolean;
1218
+ readonly source: string;
1219
+ /** Eight hex characters of a hash. Absent when no credential resolved. Never a prefix. */
1220
+ readonly fingerprint?: string;
1221
+ }
1222
+ /**
1223
+ * @returns a report safe to log, render and attach to a support bundle.
1224
+ * @public
1225
+ */
1226
+ declare function describeCredential(input: CredentialInput): CredentialReport;
1227
+
1070
1228
  /**
1071
1229
  * Plugin contract — RUNTIME value + type re-exports (T1.1, ADRs D97-D101).
1072
1230
  *
@@ -2235,6 +2393,51 @@ interface SecurityFloorInput {
2235
2393
  */
2236
2394
  declare function applySecurityFloor(input: SecurityFloorInput): string | undefined;
2237
2395
 
2396
+ /**
2397
+ * Refuse to destroy a session another process is still writing.
2398
+ *
2399
+ * Every agent product that lets a user delete or overwrite a session needs this, and the failure is
2400
+ * unrecoverable in the worst way: a transcript removed underneath a running session takes with it
2401
+ * everything that session had not flushed, and nothing errors. The user sees a successful delete.
2402
+ *
2403
+ * ## The ordering is the point
2404
+ *
2405
+ * The check runs BEFORE anything is mutated. Removing a registry entry and then refusing leaves a
2406
+ * session that can be neither opened nor deleted — worse than either outcome on its own. So this is
2407
+ * a function the caller passes through rather than a flag it may consult afterwards: the throw is
2408
+ * what stops the mutation, and there is no way to read the answer and forget to act on it.
2409
+ *
2410
+ * ## What is generic, and what is not
2411
+ *
2412
+ * The RULE is: a session declared live is not destroyable, and refusing says which one and why. The
2413
+ * VOCABULARY is not — how a product decides liveness (a pointer file, the newest transcript, a
2414
+ * lease, an active registry entry) is its own. Nothing here touches a filesystem.
2415
+ *
2416
+ * @public
2417
+ */
2418
+
2419
+ /** Why the destruction was refused. @public */
2420
+ type LiveSessionReason = "session-is-live" | "liveness-undetermined";
2421
+ /** @public */
2422
+ declare class LiveSessionError extends TheokitAgentError {
2423
+ readonly name = "LiveSessionError";
2424
+ readonly sessionId: string;
2425
+ readonly reason: LiveSessionReason;
2426
+ constructor(sessionId: string, reason: LiveSessionReason);
2427
+ }
2428
+ /**
2429
+ * Throw unless `sessionId` is safe to destroy.
2430
+ *
2431
+ * @param live - the sessions the product declares live, or `undefined` when it could not tell.
2432
+ * The distinction is load-bearing: an EMPTY set is a legitimate answer (nothing is open), while
2433
+ * `undefined` refuses. A product that swallowed a read error and returned `[]` would hand this
2434
+ * guard the one input that disables it entirely, on exactly the path that destroys data.
2435
+ * @throws LiveSessionError naming the session and the reason — "close that session" and "the guard
2436
+ * could not read" have different fixes, and conflating them sends the user to close nothing.
2437
+ * @public
2438
+ */
2439
+ declare function guardSessionDestruction(sessionId: string, live: readonly string[] | undefined): void;
2440
+
2238
2441
  /**
2239
2442
  * M3 #62 — scoped session state.
2240
2443
  *
@@ -2723,6 +2926,41 @@ declare class Theokit {
2723
2926
  };
2724
2927
  }
2725
2928
 
2929
+ /**
2930
+ * Attach a blast-radius declaration to a tool, so the approval layer gates on what the tool DOES.
2931
+ *
2932
+ * Without this the only key available to a policy is the tool's NAME, which says nothing about the
2933
+ * action, drifts the moment a tool is renamed, and cannot be reviewed by anyone who did not write
2934
+ * it. `delete_namespace` and `list_pods` differ by a word.
2935
+ *
2936
+ * ## Why a wrapper rather than a field on the input schema
2937
+ *
2938
+ * `inputSchema` is what the MODEL sees. Blast radius is not for the model — it is for the approval
2939
+ * layer — and putting it there would leak policy into the prompt and let a model-authored argument
2940
+ * influence its own gate. The declaration rides alongside the tool instead, under a symbol so it
2941
+ * cannot collide with a tool's own properties or be serialised into a prompt by accident.
2942
+ *
2943
+ * @public
2944
+ */
2945
+
2946
+ /** @public */
2947
+ type WithBlastRadius<T> = T & {
2948
+ readonly [DECLARED]?: DeclaredAction;
2949
+ };
2950
+ /**
2951
+ * @returns the same tool, with its action declared. The tool is not otherwise altered — the model
2952
+ * must see exactly what it saw before.
2953
+ * @public
2954
+ */
2955
+ declare function withBlastRadius<T extends object>(tool: T, action: DeclaredAction): WithBlastRadius<T>;
2956
+ /**
2957
+ * @returns the declared action, or `undefined` when the tool never declared one — NOT an empty
2958
+ * action. "Never declared" and "declared as reaching nothing" are different facts, and collapsing
2959
+ * them is how an unreviewed tool passes as harmless.
2960
+ * @public
2961
+ */
2962
+ declare function describeAction(tool: object): DeclaredAction | undefined;
2963
+
2726
2964
  /**
2727
2965
  * SE7 — `ToolError`: thrown FROM a tool `handler` to report a failure back to
2728
2966
  * the model with structured content (text and/or an image), not just a string.
@@ -2973,4 +3211,4 @@ interface WiringRecordInput<K extends string> {
2973
3211
  */
2974
3212
  declare function recordWiring<K extends string>(input: WiringRecordInput<K>): Readonly<Record<K, WiredEntity>>;
2975
3213
 
2976
- export { Agent, AgentBuilder, AgentDefinition, AgentDescription, AgentFactory, AgentOperationOptions, AgentOptions, type AgentPromptResult, type AgentRegistryOptions, type BatchItem, type BatchOptions, type BatchProgress, type BatchResult, Budget, BudgetHandle, BudgetOptions, BudgetSnapshot, BudgetTracker, CloudOptions, ContextSettings, type CounterBudgetTrackerOptions, CustomTool, type DeclaredLayer, type DeepPartial, type DefineProviderOptions, type DefineToolSpec, type DiagnosticsSink, type DreamingSweepOptions, type DreamingSweepResult, type EnvOptOut, type EnvReachabilityAudit, type EnvReachabilityInput, ErrorMetadata, EventBus, type EvictReason, GOAL_CONTINUATION_MARKER, GenerateObjectError, type GenerateObjectOptions, type GenerateObjectResult, GetAgentOptions, GetRunOptions, GoalEvent, type GoalLoopAgent, GoalOptions, GoalResult, InlineSkill, JobQueue, type JobQueueOptions, JudgeCredentialError, JudgeResult, type KeepReason, type KeptArtifact, LayerOrderError, type LayerValues, ListAgentsOptions, ListResult, ListRunsOptions, LiveAgentRegistry, LocalOptions, McpServerConfig, Memory, MemoryId, MemoryProvider, MemorySettings, type MigrateOptions, type MigrateResult, type ModelListItem, type ModelParameterDefinition, ModelSelection, type ModelVariant, NoopMemoryProvider, type NormalizedJsonSchema, PermissionEngine, type PermissionGate, type PermissionGateContext, type PermissionGateDecision, PermissionMode, PermissionPlugin, type PermissionPluginOptions, Plugin, PluginsSettings, PreToolCallDecision, Processor, Provider, ProviderProfile, ProviderRoutingSettings, type ReapPlan, type ReapPlanInput, type ReapableArtifact, type RetentionPolicy, RetentionPolicyError, Run, RunEventSink, RunResult, SDKAgent, SDKAgentInfo, SDKMessage, type SDKModel, SDKProvider, type SDKRepository, type SDKUser, SOVEREIGN_ENV_KEYS, Security, type SecurityFloorInput, type SessionMessage, type SessionMessagePart, type SessionScope, type ShareGptMessage, type ShareGptTrajectory, SkillReadTool, SkillsSettings, type SovereignEnvKey, Squad, type SquadOptions, type SquadRun, StreamObjectError, type StreamObjectEvent, type StreamObjectOptions, SystemPromptResolver, TASK_RESERVED_PREFIXES, Task, type TaskCancelResult, type TaskConfigureOptions, type TaskEvent, type TaskFilter, type TaskHandle, type TaskKind, type TaskState, type TaskStoreOptions, type TaskSubmitOptions, type TaskWorkContext, type TaskWorkFn, Theokit, TheokitAgentError, type TheokitRequestOptions, TokenLimiter, type TokenLimiterOptions, Tool, ToolError, ToolResultContentBlock, type TrustLevel, type TrustPosture, type TrustPostureInput, type TrustSource, UngatedCapabilityError, UnicodeNormalizer, type UnicodeNormalizerOptions, UsageAccumulator, type WiredEntity, type WiringRecordInput, applySecurityFloor, auditEnvReachability, chargeAndCheckThresholds, computeCost, createCounterBudgetTracker, estimateTokens, extractRawId, foldLayers, getPricingEntry, inferApiMode, isValidTaskId, loadProjectEnv, migrateSqliteToLance, mkMemoryId, normalizeSchema, normalizeUsage, planReaping, preflightCheck, recordWiring, resolveTrustPosture, runGoalLoop, scopedConversationId, sessionScopePrefix, setDiagnosticsSink, toShareGptTrajectory, verifyLayerOrdering, withCwdMutex };
3214
+ export { Agent, AgentBuilder, AgentDefinition, AgentDescription, AgentFactory, AgentOperationOptions, AgentOptions, type AgentPromptResult, type AgentRegistryOptions, type ApprovalDecision, type ApprovalInput, type ApprovalMode, type ApprovalOutcome, type ApprovalReason, type BatchItem, type BatchOptions, type BatchProgress, type BatchResult, type BlastRadiusDecision, type BlastRadiusInput, type BlastRadiusOutcome, type BlastRadiusReason, Budget, BudgetHandle, BudgetOptions, BudgetSnapshot, BudgetTracker, CloudOptions, ContextSettings, type CounterBudgetTrackerOptions, type CredentialInput, type CredentialReport, CustomTool, type DeclaredAction, type DeclaredLayer, type DeepPartial, type DefineProviderOptions, type DefineToolSpec, type DiagnosticsSink, type DreamingSweepOptions, type DreamingSweepResult, type EnvOptOut, type EnvReachabilityAudit, type EnvReachabilityInput, ErrorMetadata, EventBus, type EvictReason, GOAL_CONTINUATION_MARKER, GenerateObjectError, type GenerateObjectOptions, type GenerateObjectResult, GetAgentOptions, GetRunOptions, GoalEvent, type GoalLoopAgent, GoalOptions, GoalResult, InlineSkill, JobQueue, type JobQueueOptions, JudgeCredentialError, JudgeResult, type KeepReason, type KeptArtifact, LayerOrderError, type LayerValues, ListAgentsOptions, ListResult, ListRunsOptions, LiveAgentRegistry, LiveSessionError, type LiveSessionReason, LocalOptions, McpServerConfig, Memory, MemoryId, MemoryProvider, MemorySettings, type MigrateOptions, type MigrateResult, type ModelListItem, type ModelParameterDefinition, ModelSelection, type ModelVariant, NoopMemoryProvider, type NormalizedJsonSchema, PermissionEngine, type PermissionGate, type PermissionGateContext, type PermissionGateDecision, PermissionMode, PermissionPlugin, type PermissionPluginOptions, Plugin, PluginsSettings, PreToolCallDecision, Processor, Provider, ProviderProfile, ProviderRoutingSettings, type ReapPlan, type ReapPlanInput, type ReapableArtifact, type RetentionPolicy, RetentionPolicyError, Run, RunEventSink, RunResult, SDKAgent, SDKAgentInfo, SDKMessage, type SDKModel, SDKProvider, type SDKRepository, type SDKUser, SOVEREIGN_ENV_KEYS, Security, type SecurityFloorInput, type SessionMessage, type SessionMessagePart, type SessionScope, type ShareGptMessage, type ShareGptTrajectory, SkillReadTool, SkillsSettings, type SovereignEnvKey, Squad, type SquadOptions, type SquadRun, StreamObjectError, type StreamObjectEvent, type StreamObjectOptions, SystemPromptResolver, TASK_RESERVED_PREFIXES, Task, type TaskCancelResult, type TaskConfigureOptions, type TaskEvent, type TaskFilter, type TaskHandle, type TaskKind, type TaskState, type TaskStoreOptions, type TaskSubmitOptions, type TaskWorkContext, type TaskWorkFn, Theokit, TheokitAgentError, type TheokitRequestOptions, TokenLimiter, type TokenLimiterOptions, Tool, ToolError, ToolResultContentBlock, type TrustLevel, type TrustPosture, type TrustPostureInput, type TrustSource, UngatedCapabilityError, UnicodeNormalizer, type UnicodeNormalizerOptions, UsageAccumulator, type WiredEntity, type WiringRecordInput, type WithBlastRadius, applySecurityFloor, auditEnvReachability, chargeAndCheckThresholds, computeCost, createCounterBudgetTracker, decideApproval, describeAction, describeCredential, estimateTokens, evaluateBlastRadius, extractRawId, foldLayers, getPricingEntry, guardSessionDestruction, inferApiMode, isValidTaskId, loadProjectEnv, migrateSqliteToLance, mkMemoryId, normalizeSchema, normalizeUsage, planReaping, preflightCheck, recordWiring, resolveTrustPosture, runGoalLoop, scopedConversationId, sessionScopePrefix, setDiagnosticsSink, toShareGptTrajectory, verifyLayerOrdering, withBlastRadius, withCwdMutex };