@theokit/sdk 5.15.1 → 5.15.2

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 (355) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/a2a/index.cjs +3 -3
  3. package/dist/a2a/index.js +1 -1
  4. package/dist/agent-D6WBBNGR.cjs +72 -0
  5. package/dist/{agent-CB27KF6O.cjs.map → agent-D6WBBNGR.cjs.map} +1 -1
  6. package/dist/agent-QRIFX2SY.js +63 -0
  7. package/dist/{agent-66U5QCPF.js.map → agent-QRIFX2SY.js.map} +1 -1
  8. package/dist/agent-session-store-2LQEPS4H.js +6 -0
  9. package/dist/{agent-session-store-22GKA7O4.js.map → agent-session-store-2LQEPS4H.js.map} +1 -1
  10. package/dist/agent-session-store-IOH6BREF.cjs +23 -0
  11. package/dist/{agent-session-store-WP6NGDVX.cjs.map → agent-session-store-IOH6BREF.cjs.map} +1 -1
  12. package/dist/auth/index.cjs +15 -15
  13. package/dist/auth/index.js +3 -3
  14. package/dist/{batch-N2XDYZED.js → batch-7IGV2OKA.js} +8 -8
  15. package/dist/{batch-N2XDYZED.js.map → batch-7IGV2OKA.js.map} +1 -1
  16. package/dist/{batch-VFR2MAUE.cjs → batch-FIWQZ3JD.cjs} +14 -14
  17. package/dist/{batch-VFR2MAUE.cjs.map → batch-FIWQZ3JD.cjs.map} +1 -1
  18. package/dist/{chunk-AT2PESXB.cjs → chunk-2UYAL4N7.cjs} +5 -5
  19. package/dist/chunk-2UYAL4N7.cjs.map +1 -0
  20. package/dist/{chunk-K2BQQ445.js → chunk-3GQYMKVJ.js} +3 -3
  21. package/dist/{chunk-K2BQQ445.js.map → chunk-3GQYMKVJ.js.map} +1 -1
  22. package/dist/{chunk-YSTXFWQE.cjs → chunk-3HL43XBD.cjs} +4 -4
  23. package/dist/{chunk-YSTXFWQE.cjs.map → chunk-3HL43XBD.cjs.map} +1 -1
  24. package/dist/{chunk-XESYJ4JC.js → chunk-3VX7JHJI.js} +7 -7
  25. package/dist/{chunk-XESYJ4JC.js.map → chunk-3VX7JHJI.js.map} +1 -1
  26. package/dist/{chunk-6XQLTQB6.cjs → chunk-3YCNBOX7.cjs} +3 -3
  27. package/dist/{chunk-6XQLTQB6.cjs.map → chunk-3YCNBOX7.cjs.map} +1 -1
  28. package/dist/{chunk-CHKV2L2Y.cjs → chunk-46YYJIHL.cjs} +30 -30
  29. package/dist/chunk-46YYJIHL.cjs.map +1 -0
  30. package/dist/{chunk-73IITAF7.js → chunk-4C37ELQL.js} +9 -9
  31. package/dist/{chunk-73IITAF7.js.map → chunk-4C37ELQL.js.map} +1 -1
  32. package/dist/{chunk-AGO5S5WD.js → chunk-4E4D6H77.js} +3 -3
  33. package/dist/{chunk-AGO5S5WD.js.map → chunk-4E4D6H77.js.map} +1 -1
  34. package/dist/{chunk-R35ZJAYT.cjs → chunk-4JF52NED.cjs} +12 -12
  35. package/dist/{chunk-R35ZJAYT.cjs.map → chunk-4JF52NED.cjs.map} +1 -1
  36. package/dist/{chunk-INVEGVGO.js → chunk-4TA47IK4.js} +8 -8
  37. package/dist/{chunk-INVEGVGO.js.map → chunk-4TA47IK4.js.map} +1 -1
  38. package/dist/{chunk-MLGETTYX.js → chunk-4YUIYSZO.js} +6 -6
  39. package/dist/{chunk-MLGETTYX.js.map → chunk-4YUIYSZO.js.map} +1 -1
  40. package/dist/{chunk-RZL2W4C3.js → chunk-5L7S2VOL.js} +5 -5
  41. package/dist/{chunk-RZL2W4C3.js.map → chunk-5L7S2VOL.js.map} +1 -1
  42. package/dist/{chunk-3WKWBYPO.cjs → chunk-6EHOJLJ3.cjs} +20 -20
  43. package/dist/chunk-6EHOJLJ3.cjs.map +1 -0
  44. package/dist/{chunk-XOU3CL7S.cjs → chunk-6HQFPX7N.cjs} +28 -28
  45. package/dist/chunk-6HQFPX7N.cjs.map +1 -0
  46. package/dist/{chunk-3E3VSMB6.cjs → chunk-6XT5LAZG.cjs} +58 -58
  47. package/dist/chunk-6XT5LAZG.cjs.map +1 -0
  48. package/dist/{chunk-R427EOZE.cjs → chunk-7EFT6N5C.cjs} +13 -13
  49. package/dist/{chunk-R427EOZE.cjs.map → chunk-7EFT6N5C.cjs.map} +1 -1
  50. package/dist/{chunk-L7V4DDIE.cjs → chunk-7VNFOGRD.cjs} +12 -12
  51. package/dist/chunk-7VNFOGRD.cjs.map +1 -0
  52. package/dist/{chunk-YKNBTHMD.js → chunk-AQ23NII7.js} +3 -3
  53. package/dist/{chunk-YKNBTHMD.js.map → chunk-AQ23NII7.js.map} +1 -1
  54. package/dist/{chunk-O2RCS3SJ.js → chunk-ATGSV4GS.js} +4 -4
  55. package/dist/{chunk-O2RCS3SJ.js.map → chunk-ATGSV4GS.js.map} +1 -1
  56. package/dist/{chunk-H7HD6RXO.cjs → chunk-AW72G4TC.cjs} +5 -5
  57. package/dist/{chunk-H7HD6RXO.cjs.map → chunk-AW72G4TC.cjs.map} +1 -1
  58. package/dist/{chunk-M4U24U6G.js → chunk-AZK3QM36.js} +5 -5
  59. package/dist/{chunk-M4U24U6G.js.map → chunk-AZK3QM36.js.map} +1 -1
  60. package/dist/{chunk-QK2ERTO3.js → chunk-BH6M2DGV.js} +4 -4
  61. package/dist/{chunk-QK2ERTO3.js.map → chunk-BH6M2DGV.js.map} +1 -1
  62. package/dist/{chunk-26UQG242.cjs → chunk-BTGYRM4J.cjs} +264 -264
  63. package/dist/chunk-BTGYRM4J.cjs.map +1 -0
  64. package/dist/{chunk-ZQWRUJHE.js → chunk-CG64VPPU.js} +50 -50
  65. package/dist/{chunk-ZQWRUJHE.js.map → chunk-CG64VPPU.js.map} +1 -1
  66. package/dist/{chunk-CBBT42VX.js → chunk-CMDM4VF6.js} +3 -3
  67. package/dist/{chunk-CBBT42VX.js.map → chunk-CMDM4VF6.js.map} +1 -1
  68. package/dist/{chunk-OLJOI4LK.js → chunk-CN732Z5C.js} +4 -4
  69. package/dist/{chunk-OLJOI4LK.js.map → chunk-CN732Z5C.js.map} +1 -1
  70. package/dist/{chunk-SETHRLQS.cjs → chunk-D3BL3EEB.cjs} +9 -9
  71. package/dist/chunk-D3BL3EEB.cjs.map +1 -0
  72. package/dist/{chunk-LCCT5ZXJ.js → chunk-DB5RYCXX.js} +13 -13
  73. package/dist/{chunk-LCCT5ZXJ.js.map → chunk-DB5RYCXX.js.map} +1 -1
  74. package/dist/{chunk-SV63WTA2.js → chunk-DBH2WA2U.js} +4 -4
  75. package/dist/{chunk-SV63WTA2.js.map → chunk-DBH2WA2U.js.map} +1 -1
  76. package/dist/{chunk-XE3CAY6Z.cjs → chunk-DEHPRORL.cjs} +4 -4
  77. package/dist/{chunk-XE3CAY6Z.cjs.map → chunk-DEHPRORL.cjs.map} +1 -1
  78. package/dist/{chunk-UKMBRMGT.js → chunk-DGO4LPLP.js} +4 -4
  79. package/dist/{chunk-UKMBRMGT.js.map → chunk-DGO4LPLP.js.map} +1 -1
  80. package/dist/{chunk-RS7YQR4X.cjs → chunk-EBX6XUN7.cjs} +7 -7
  81. package/dist/{chunk-RS7YQR4X.cjs.map → chunk-EBX6XUN7.cjs.map} +1 -1
  82. package/dist/chunk-EDIYR4VR.cjs +18 -0
  83. package/dist/{chunk-SPEN7RJU.cjs.map → chunk-EDIYR4VR.cjs.map} +1 -1
  84. package/dist/{chunk-QGDPMM3C.js → chunk-EF5IONLL.js} +5 -5
  85. package/dist/{chunk-QGDPMM3C.js.map → chunk-EF5IONLL.js.map} +1 -1
  86. package/dist/{chunk-MSW7LB2V.cjs → chunk-EOWIUDKG.cjs} +5 -5
  87. package/dist/{chunk-MSW7LB2V.cjs.map → chunk-EOWIUDKG.cjs.map} +1 -1
  88. package/dist/{chunk-L7JPXZ2C.cjs → chunk-ER3BF23R.cjs} +19 -19
  89. package/dist/{chunk-L7JPXZ2C.cjs.map → chunk-ER3BF23R.cjs.map} +1 -1
  90. package/dist/{chunk-BNEUB52I.cjs → chunk-ERBKPA2N.cjs} +4 -4
  91. package/dist/{chunk-BNEUB52I.cjs.map → chunk-ERBKPA2N.cjs.map} +1 -1
  92. package/dist/{chunk-4QCJAJAG.js → chunk-F54PXZIA.js} +5 -5
  93. package/dist/{chunk-4QCJAJAG.js.map → chunk-F54PXZIA.js.map} +1 -1
  94. package/dist/{chunk-2XWAYCFM.cjs → chunk-FBT2SF2S.cjs} +12 -12
  95. package/dist/{chunk-2XWAYCFM.cjs.map → chunk-FBT2SF2S.cjs.map} +1 -1
  96. package/dist/{chunk-AUH2EVWY.cjs → chunk-FZSPVIFK.cjs} +16 -16
  97. package/dist/chunk-FZSPVIFK.cjs.map +1 -0
  98. package/dist/{chunk-CYWOJA6B.js → chunk-GA27FFT5.js} +3 -3
  99. package/dist/{chunk-CYWOJA6B.js.map → chunk-GA27FFT5.js.map} +1 -1
  100. package/dist/{chunk-HWMGR3HA.js → chunk-GEQLHBJM.js} +6 -6
  101. package/dist/{chunk-HWMGR3HA.js.map → chunk-GEQLHBJM.js.map} +1 -1
  102. package/dist/{chunk-IJ7M6GOG.cjs → chunk-GKERJ52A.cjs} +4 -4
  103. package/dist/{chunk-IJ7M6GOG.cjs.map → chunk-GKERJ52A.cjs.map} +1 -1
  104. package/dist/{chunk-NEH3BPFD.cjs → chunk-HI5TJWQE.cjs} +19 -19
  105. package/dist/{chunk-NEH3BPFD.cjs.map → chunk-HI5TJWQE.cjs.map} +1 -1
  106. package/dist/{chunk-ZOFRNNZD.cjs → chunk-IZV72OEI.cjs} +11 -11
  107. package/dist/chunk-IZV72OEI.cjs.map +1 -0
  108. package/dist/{chunk-KU5O7WPK.js → chunk-JD3EKKKB.js} +4 -4
  109. package/dist/{chunk-KU5O7WPK.js.map → chunk-JD3EKKKB.js.map} +1 -1
  110. package/dist/{chunk-DFBWYETS.js → chunk-JRP2W2DR.js} +3 -3
  111. package/dist/{chunk-DFBWYETS.js.map → chunk-JRP2W2DR.js.map} +1 -1
  112. package/dist/{chunk-26GI3OYA.js → chunk-JRQJMZKY.js} +13 -13
  113. package/dist/{chunk-26GI3OYA.js.map → chunk-JRQJMZKY.js.map} +1 -1
  114. package/dist/{chunk-YQ3XC6C2.cjs → chunk-JVH3NNJ3.cjs} +13 -13
  115. package/dist/chunk-JVH3NNJ3.cjs.map +1 -0
  116. package/dist/{chunk-VWYFGE27.cjs → chunk-KC2HKUPT.cjs} +56 -56
  117. package/dist/chunk-KC2HKUPT.cjs.map +1 -0
  118. package/dist/{chunk-PDOXYXWX.cjs → chunk-KDJTECE6.cjs} +4 -4
  119. package/dist/{chunk-PDOXYXWX.cjs.map → chunk-KDJTECE6.cjs.map} +1 -1
  120. package/dist/{chunk-QD6B6W6I.js → chunk-L2KC2G7H.js} +5 -5
  121. package/dist/{chunk-QD6B6W6I.js.map → chunk-L2KC2G7H.js.map} +1 -1
  122. package/dist/{chunk-3BBTHFGJ.js → chunk-L5B7EWWH.js} +5 -5
  123. package/dist/{chunk-3BBTHFGJ.js.map → chunk-L5B7EWWH.js.map} +1 -1
  124. package/dist/{chunk-X7CE7Y5W.js → chunk-LG4JCJEI.js} +11 -11
  125. package/dist/{chunk-X7CE7Y5W.js.map → chunk-LG4JCJEI.js.map} +1 -1
  126. package/dist/{chunk-2HXTNVLM.js → chunk-LSURFRJA.js} +6 -6
  127. package/dist/{chunk-2HXTNVLM.js.map → chunk-LSURFRJA.js.map} +1 -1
  128. package/dist/{chunk-55LLQFHW.cjs → chunk-MJGY3E3C.cjs} +4 -4
  129. package/dist/{chunk-55LLQFHW.cjs.map → chunk-MJGY3E3C.cjs.map} +1 -1
  130. package/dist/{chunk-EQ5IDL6W.cjs → chunk-MKS5FFH5.cjs} +15 -15
  131. package/dist/chunk-MKS5FFH5.cjs.map +1 -0
  132. package/dist/{chunk-WM646HEN.js → chunk-MTNCJ7MQ.js} +6 -6
  133. package/dist/{chunk-WM646HEN.js.map → chunk-MTNCJ7MQ.js.map} +1 -1
  134. package/dist/{chunk-SA6K24NB.cjs → chunk-MXJJMP4U.cjs} +7 -7
  135. package/dist/chunk-MXJJMP4U.cjs.map +1 -0
  136. package/dist/{chunk-FTXY4D44.cjs → chunk-N2ORTDSO.cjs} +20 -20
  137. package/dist/chunk-N2ORTDSO.cjs.map +1 -0
  138. package/dist/{chunk-7YUPSBDV.cjs → chunk-NDXZXGVP.cjs} +6 -6
  139. package/dist/{chunk-7YUPSBDV.cjs.map → chunk-NDXZXGVP.cjs.map} +1 -1
  140. package/dist/{chunk-3UMPP553.cjs → chunk-NMRNE6QX.cjs} +11 -11
  141. package/dist/{chunk-3UMPP553.cjs.map → chunk-NMRNE6QX.cjs.map} +1 -1
  142. package/dist/{chunk-PKRPV3R7.js → chunk-NO6AG22P.js} +6 -6
  143. package/dist/{chunk-PKRPV3R7.js.map → chunk-NO6AG22P.js.map} +1 -1
  144. package/dist/{chunk-NK5EOTDY.js → chunk-OIOSY5G6.js} +3 -3
  145. package/dist/{chunk-NK5EOTDY.js.map → chunk-OIOSY5G6.js.map} +1 -1
  146. package/dist/{chunk-RGVMJU57.js → chunk-P7B64NFK.js} +8 -8
  147. package/dist/{chunk-RGVMJU57.js.map → chunk-P7B64NFK.js.map} +1 -1
  148. package/dist/{chunk-TDED5XES.js → chunk-PCPYTBVV.js} +6 -6
  149. package/dist/chunk-PCPYTBVV.js.map +1 -0
  150. package/dist/{chunk-FBIDOOJM.cjs → chunk-PDFSLD5P.cjs} +6 -6
  151. package/dist/{chunk-FBIDOOJM.cjs.map → chunk-PDFSLD5P.cjs.map} +1 -1
  152. package/dist/{chunk-YMVTUV5K.js → chunk-PISZRLES.js} +5 -5
  153. package/dist/{chunk-YMVTUV5K.js.map → chunk-PISZRLES.js.map} +1 -1
  154. package/dist/{chunk-BUUUWQMB.cjs → chunk-PNL63WDP.cjs} +4 -4
  155. package/dist/{chunk-BUUUWQMB.cjs.map → chunk-PNL63WDP.cjs.map} +1 -1
  156. package/dist/{chunk-VNRNZ3WI.js → chunk-PSMWZYW6.js} +4 -4
  157. package/dist/{chunk-VNRNZ3WI.js.map → chunk-PSMWZYW6.js.map} +1 -1
  158. package/dist/{chunk-5645PMVU.cjs → chunk-PXYINWBC.cjs} +20 -20
  159. package/dist/chunk-PXYINWBC.cjs.map +1 -0
  160. package/dist/{chunk-RTDVSHJR.cjs → chunk-Q4UOCMAO.cjs} +5 -5
  161. package/dist/{chunk-RTDVSHJR.cjs.map → chunk-Q4UOCMAO.cjs.map} +1 -1
  162. package/dist/{chunk-5IRDK5BC.js → chunk-QH6MWGOA.js} +4 -4
  163. package/dist/{chunk-5IRDK5BC.js.map → chunk-QH6MWGOA.js.map} +1 -1
  164. package/dist/{chunk-3LMVJTNJ.js → chunk-QPUKIZOT.js} +3 -3
  165. package/dist/{chunk-3LMVJTNJ.js.map → chunk-QPUKIZOT.js.map} +1 -1
  166. package/dist/{chunk-SWALPLFQ.cjs → chunk-RTCO3USA.cjs} +16 -16
  167. package/dist/chunk-RTCO3USA.cjs.map +1 -0
  168. package/dist/{chunk-SAGRF4IB.js → chunk-S2CMEJ5F.js} +3 -3
  169. package/dist/{chunk-SAGRF4IB.js.map → chunk-S2CMEJ5F.js.map} +1 -1
  170. package/dist/{chunk-VZGE7NAI.js → chunk-S5ERB3CH.js} +3 -3
  171. package/dist/{chunk-VZGE7NAI.js.map → chunk-S5ERB3CH.js.map} +1 -1
  172. package/dist/{chunk-XJ3WU5CZ.js → chunk-S7IZEVXX.js} +6 -6
  173. package/dist/{chunk-XJ3WU5CZ.js.map → chunk-S7IZEVXX.js.map} +1 -1
  174. package/dist/{chunk-Q7UG242V.js → chunk-TIYQDJFK.js} +3 -3
  175. package/dist/{chunk-Q7UG242V.js.map → chunk-TIYQDJFK.js.map} +1 -1
  176. package/dist/{chunk-POBZXULR.cjs → chunk-TTNJOM5W.cjs} +16 -16
  177. package/dist/{chunk-POBZXULR.cjs.map → chunk-TTNJOM5W.cjs.map} +1 -1
  178. package/dist/{chunk-VCQ37TC5.js → chunk-TTXRNCXY.js} +3 -3
  179. package/dist/{chunk-VCQ37TC5.js.map → chunk-TTXRNCXY.js.map} +1 -1
  180. package/dist/{chunk-3HA7N2BB.cjs → chunk-TYKBAKAS.cjs} +5 -5
  181. package/dist/{chunk-3HA7N2BB.cjs.map → chunk-TYKBAKAS.cjs.map} +1 -1
  182. package/dist/{chunk-A77UMVMD.cjs → chunk-UMCCYXFZ.cjs} +8 -8
  183. package/dist/{chunk-A77UMVMD.cjs.map → chunk-UMCCYXFZ.cjs.map} +1 -1
  184. package/dist/{chunk-3GTN4HOO.js → chunk-UNP4NCMZ.js} +3 -3
  185. package/dist/{chunk-3GTN4HOO.js.map → chunk-UNP4NCMZ.js.map} +1 -1
  186. package/dist/{chunk-BPL5CVZ5.js → chunk-VFT63FJF.js} +3 -3
  187. package/dist/{chunk-BPL5CVZ5.js.map → chunk-VFT63FJF.js.map} +1 -1
  188. package/dist/{chunk-3KIUY67P.cjs → chunk-VHY6NVCJ.cjs} +30 -30
  189. package/dist/chunk-VHY6NVCJ.cjs.map +1 -0
  190. package/dist/{chunk-TRPRTZEH.cjs → chunk-VT3NWHFH.cjs} +6 -6
  191. package/dist/{chunk-TRPRTZEH.cjs.map → chunk-VT3NWHFH.cjs.map} +1 -1
  192. package/dist/{chunk-FJWQP6EE.js → chunk-WJ6OGKAO.js} +3 -3
  193. package/dist/{chunk-FJWQP6EE.js.map → chunk-WJ6OGKAO.js.map} +1 -1
  194. package/dist/{chunk-FLDHYF5C.cjs → chunk-X2XLSE2N.cjs} +9 -9
  195. package/dist/chunk-X2XLSE2N.cjs.map +1 -0
  196. package/dist/{chunk-UDAKAE4Z.cjs → chunk-X4ZYEZPD.cjs} +12 -12
  197. package/dist/chunk-X4ZYEZPD.cjs.map +1 -0
  198. package/dist/{chunk-QG4SXZ2A.cjs → chunk-XR6O6G3B.cjs} +27 -27
  199. package/dist/chunk-XR6O6G3B.cjs.map +1 -0
  200. package/dist/{chunk-BWYC7RZG.cjs → chunk-XTQWTVVI.cjs} +11 -11
  201. package/dist/chunk-XTQWTVVI.cjs.map +1 -0
  202. package/dist/{chunk-MLJDW2YK.js → chunk-YSGS57DA.js} +4 -4
  203. package/dist/{chunk-MLJDW2YK.js.map → chunk-YSGS57DA.js.map} +1 -1
  204. package/dist/{chunk-KCM3RMKR.js → chunk-YUQNHLKN.js} +8 -8
  205. package/dist/{chunk-KCM3RMKR.js.map → chunk-YUQNHLKN.js.map} +1 -1
  206. package/dist/{chunk-P7QYG4RZ.cjs → chunk-Z5MB2HAN.cjs} +8 -8
  207. package/dist/{chunk-P7QYG4RZ.cjs.map → chunk-Z5MB2HAN.cjs.map} +1 -1
  208. package/dist/{chunk-HJ2LV464.js → chunk-ZUWVO442.js} +4 -4
  209. package/dist/{chunk-HJ2LV464.js.map → chunk-ZUWVO442.js.map} +1 -1
  210. package/dist/{compact-session-CHBJOYWP.cjs → compact-session-5DWFHMW4.cjs} +21 -21
  211. package/dist/{compact-session-CHBJOYWP.cjs.map → compact-session-5DWFHMW4.cjs.map} +1 -1
  212. package/dist/{compact-session-F3J3FMEU.js → compact-session-AL65PEMX.js} +12 -12
  213. package/dist/{compact-session-F3J3FMEU.js.map → compact-session-AL65PEMX.js.map} +1 -1
  214. package/dist/context/index.cjs +11 -11
  215. package/dist/context/index.js +6 -6
  216. package/dist/context-4XSD2V3G.js +7 -0
  217. package/dist/{context-7EBZST3L.js.map → context-4XSD2V3G.js.map} +1 -1
  218. package/dist/context-ZX2VBGSX.cjs +24 -0
  219. package/dist/{context-4RSI3AXT.cjs.map → context-ZX2VBGSX.cjs.map} +1 -1
  220. package/dist/cron.cjs +40 -40
  221. package/dist/cron.js +39 -39
  222. package/dist/eval.cjs +51 -51
  223. package/dist/eval.cjs.map +1 -1
  224. package/dist/eval.js +41 -41
  225. package/dist/{executor-THUXNAFR.js → executor-ZHIUSHRV.js} +7 -7
  226. package/dist/{executor-THUXNAFR.js.map → executor-ZHIUSHRV.js.map} +1 -1
  227. package/dist/{executor-5QL5AXIZ.cjs → executor-ZTLJZ5LK.cjs} +24 -24
  228. package/dist/{executor-5QL5AXIZ.cjs.map → executor-ZTLJZ5LK.cjs.map} +1 -1
  229. package/dist/filesystem/index.cjs +14 -14
  230. package/dist/filesystem/index.cjs.map +1 -1
  231. package/dist/filesystem/index.js +4 -4
  232. package/dist/{fork-agent-S2EPIML7.js → fork-agent-BHVTALT5.js} +3 -3
  233. package/dist/{fork-agent-S2EPIML7.js.map → fork-agent-BHVTALT5.js.map} +1 -1
  234. package/dist/{fork-agent-WAEQI2DL.cjs → fork-agent-DCOPPXM2.cjs} +4 -4
  235. package/dist/{fork-agent-WAEQI2DL.cjs.map → fork-agent-DCOPPXM2.cjs.map} +1 -1
  236. package/dist/fs-session-store-EZ32TFGB.js +11 -0
  237. package/dist/{fs-session-store-MYQEVUFL.js.map → fs-session-store-EZ32TFGB.js.map} +1 -1
  238. package/dist/fs-session-store-G664LDDN.cjs +20 -0
  239. package/dist/{fs-session-store-CYNTEPJZ.cjs.map → fs-session-store-G664LDDN.cjs.map} +1 -1
  240. package/dist/generate-object-JFZTK567.cjs +20 -0
  241. package/dist/{generate-object-A5F576IT.cjs.map → generate-object-JFZTK567.cjs.map} +1 -1
  242. package/dist/{generate-object-TBDOBBYW.js → generate-object-RPBXY2U3.js} +4 -4
  243. package/dist/{generate-object-TBDOBBYW.js.map → generate-object-RPBXY2U3.js.map} +1 -1
  244. package/dist/index-manager-2MJEEN2O.js +18 -0
  245. package/dist/{index-manager-NF2WRLOU.js.map → index-manager-2MJEEN2O.js.map} +1 -1
  246. package/dist/index-manager-CT6MMG7S.cjs +27 -0
  247. package/dist/{index-manager-2KH75BRW.cjs.map → index-manager-CT6MMG7S.cjs.map} +1 -1
  248. package/dist/index.cjs +130 -130
  249. package/dist/index.cjs.map +1 -1
  250. package/dist/index.js +56 -56
  251. package/dist/{inject-session-LC2TROHM.js → inject-session-E2SZ4A35.js} +6 -6
  252. package/dist/{inject-session-LC2TROHM.js.map → inject-session-E2SZ4A35.js.map} +1 -1
  253. package/dist/{inject-session-T4RXANG3.cjs → inject-session-QZULG65O.cjs} +8 -8
  254. package/dist/{inject-session-T4RXANG3.cjs.map → inject-session-QZULG65O.cjs.map} +1 -1
  255. package/dist/internal/memory/adapters/index.cjs +4 -4
  256. package/dist/internal/memory/adapters/index.js +3 -3
  257. package/dist/internal/memory/storage/index.cjs +45 -45
  258. package/dist/internal/memory/storage/index.js +9 -9
  259. package/dist/internal/persistence/index.cjs +22 -22
  260. package/dist/internal/persistence/index.js +6 -6
  261. package/dist/internal/security/index.cjs +9 -9
  262. package/dist/internal/security/index.js +2 -2
  263. package/dist/mcp-auth.cjs +8 -8
  264. package/dist/mcp-auth.js +3 -3
  265. package/dist/models.cjs +30 -30
  266. package/dist/models.cjs.map +1 -1
  267. package/dist/models.js +8 -8
  268. package/dist/{oauth-transaction-store-U34YLEGP.js → oauth-transaction-store-QQBWGNE2.js} +3 -3
  269. package/dist/{oauth-transaction-store-U34YLEGP.js.map → oauth-transaction-store-QQBWGNE2.js.map} +1 -1
  270. package/dist/{oauth-transaction-store-OMX436YB.cjs → oauth-transaction-store-YF7WOA6B.cjs} +10 -10
  271. package/dist/{oauth-transaction-store-OMX436YB.cjs.map → oauth-transaction-store-YF7WOA6B.cjs.map} +1 -1
  272. package/dist/path-safety.cjs +9 -9
  273. package/dist/path-safety.js +2 -2
  274. package/dist/persistence.cjs +41 -41
  275. package/dist/persistence.cjs.map +1 -1
  276. package/dist/persistence.js +11 -11
  277. package/dist/project.cjs +7 -7
  278. package/dist/project.cjs.map +1 -1
  279. package/dist/project.js +4 -4
  280. package/dist/providers.cjs +6 -6
  281. package/dist/providers.js +4 -4
  282. package/dist/{registry-5TDAF7RK.js → registry-DOYBR237.js} +6 -6
  283. package/dist/{registry-5TDAF7RK.js.map → registry-DOYBR237.js.map} +1 -1
  284. package/dist/{registry-W7TSCLQO.cjs → registry-PB7JFVUJ.cjs} +14 -14
  285. package/dist/{registry-W7TSCLQO.cjs.map → registry-PB7JFVUJ.cjs.map} +1 -1
  286. package/dist/sandbox/index.cjs +41 -41
  287. package/dist/sandbox/index.cjs.map +1 -1
  288. package/dist/sandbox/index.js +7 -7
  289. package/dist/sanitize/index.cjs +2 -2
  290. package/dist/sanitize/index.js +1 -1
  291. package/dist/server/auth/index.cjs +9 -9
  292. package/dist/server/auth/index.cjs.map +1 -1
  293. package/dist/server/auth/index.js +4 -4
  294. package/dist/{session-transcript-7TZ6HXSX.cjs → session-transcript-EBVGLZ6B.cjs} +17 -17
  295. package/dist/{session-transcript-7TZ6HXSX.cjs.map → session-transcript-EBVGLZ6B.cjs.map} +1 -1
  296. package/dist/{session-transcript-BSHZYYY6.js → session-transcript-GU2VE7JX.js} +4 -4
  297. package/dist/{session-transcript-BSHZYYY6.js.map → session-transcript-GU2VE7JX.js.map} +1 -1
  298. package/dist/skills.cjs +7 -7
  299. package/dist/skills.js +4 -4
  300. package/dist/stream-object-3AU7QDHT.js +7 -0
  301. package/dist/{stream-object-EKM4WGTI.js.map → stream-object-3AU7QDHT.js.map} +1 -1
  302. package/dist/stream-object-SLGR2KIA.cjs +20 -0
  303. package/dist/{stream-object-AS4YYM4B.cjs.map → stream-object-SLGR2KIA.cjs.map} +1 -1
  304. package/dist/subagents-loader-4PQS7ULK.cjs +16 -0
  305. package/dist/{subagents-loader-KLWF4QPD.cjs.map → subagents-loader-4PQS7ULK.cjs.map} +1 -1
  306. package/dist/subagents-loader-CPFVLWLH.js +7 -0
  307. package/dist/{subagents-loader-SXETS2F2.js.map → subagents-loader-CPFVLWLH.js.map} +1 -1
  308. package/dist/subagents-loader.cjs +4 -4
  309. package/dist/subagents-loader.js +3 -3
  310. package/dist/subagents.cjs +2 -2
  311. package/dist/subagents.js +1 -1
  312. package/dist/task-store.cjs +5 -5
  313. package/dist/task-store.js +2 -2
  314. package/dist/workflow.cjs +28 -28
  315. package/dist/workflow.js +5 -5
  316. package/package.json +1 -1
  317. package/dist/agent-66U5QCPF.js +0 -63
  318. package/dist/agent-CB27KF6O.cjs +0 -72
  319. package/dist/agent-session-store-22GKA7O4.js +0 -6
  320. package/dist/agent-session-store-WP6NGDVX.cjs +0 -23
  321. package/dist/chunk-26UQG242.cjs.map +0 -1
  322. package/dist/chunk-3E3VSMB6.cjs.map +0 -1
  323. package/dist/chunk-3KIUY67P.cjs.map +0 -1
  324. package/dist/chunk-3WKWBYPO.cjs.map +0 -1
  325. package/dist/chunk-5645PMVU.cjs.map +0 -1
  326. package/dist/chunk-AT2PESXB.cjs.map +0 -1
  327. package/dist/chunk-AUH2EVWY.cjs.map +0 -1
  328. package/dist/chunk-BWYC7RZG.cjs.map +0 -1
  329. package/dist/chunk-CHKV2L2Y.cjs.map +0 -1
  330. package/dist/chunk-EQ5IDL6W.cjs.map +0 -1
  331. package/dist/chunk-FLDHYF5C.cjs.map +0 -1
  332. package/dist/chunk-FTXY4D44.cjs.map +0 -1
  333. package/dist/chunk-L7V4DDIE.cjs.map +0 -1
  334. package/dist/chunk-QG4SXZ2A.cjs.map +0 -1
  335. package/dist/chunk-SA6K24NB.cjs.map +0 -1
  336. package/dist/chunk-SETHRLQS.cjs.map +0 -1
  337. package/dist/chunk-SPEN7RJU.cjs +0 -18
  338. package/dist/chunk-SWALPLFQ.cjs.map +0 -1
  339. package/dist/chunk-TDED5XES.js.map +0 -1
  340. package/dist/chunk-UDAKAE4Z.cjs.map +0 -1
  341. package/dist/chunk-VWYFGE27.cjs.map +0 -1
  342. package/dist/chunk-XOU3CL7S.cjs.map +0 -1
  343. package/dist/chunk-YQ3XC6C2.cjs.map +0 -1
  344. package/dist/chunk-ZOFRNNZD.cjs.map +0 -1
  345. package/dist/context-4RSI3AXT.cjs +0 -24
  346. package/dist/context-7EBZST3L.js +0 -7
  347. package/dist/fs-session-store-CYNTEPJZ.cjs +0 -20
  348. package/dist/fs-session-store-MYQEVUFL.js +0 -11
  349. package/dist/generate-object-A5F576IT.cjs +0 -20
  350. package/dist/index-manager-2KH75BRW.cjs +0 -27
  351. package/dist/index-manager-NF2WRLOU.js +0 -18
  352. package/dist/stream-object-AS4YYM4B.cjs +0 -20
  353. package/dist/stream-object-EKM4WGTI.js +0 -7
  354. package/dist/subagents-loader-KLWF4QPD.cjs +0 -16
  355. package/dist/subagents-loader-SXETS2F2.js +0 -7
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkL7V4DDIE_cjs = require('../../chunk-L7V4DDIE.cjs');
3
+ var chunk7VNFOGRD_cjs = require('../../chunk-7VNFOGRD.cjs');
4
4
  var chunkIOFMRS6T_cjs = require('../../chunk-IOFMRS6T.cjs');
5
5
  require('../../chunk-CEGU5AVD.cjs');
6
6
  require('../../chunk-RNXXYF22.cjs');
7
- var crypto = require('crypto');
7
+ var node_crypto = require('node:crypto');
8
8
 
9
9
  // src/server/auth/validate-return-to.ts
10
10
  function validateReturnTo(returnTo, baseUrl) {
@@ -31,11 +31,11 @@ function validateReturnTo(returnTo, baseUrl) {
31
31
  // src/server/auth/orchestrator.ts
32
32
  var PROVIDER_NAME_RE = /^[a-z0-9-]{1,32}$/;
33
33
  function randomState() {
34
- const bytes = crypto.webcrypto.getRandomValues(new Uint8Array(24));
34
+ const bytes = node_crypto.webcrypto.getRandomValues(new Uint8Array(24));
35
35
  return Buffer.from(bytes).toString("base64url");
36
36
  }
37
37
  function generatePkceVerifier() {
38
- const bytes = crypto.webcrypto.getRandomValues(new Uint8Array(32));
38
+ const bytes = node_crypto.webcrypto.getRandomValues(new Uint8Array(32));
39
39
  return Buffer.from(bytes).toString("base64url");
40
40
  }
41
41
  function txCookieSecret(opts) {
@@ -88,7 +88,7 @@ function defineAuth(opts) {
88
88
  const safeReturnTo = validateReturnTo(startOpts?.returnTo, baseUrl);
89
89
  const state = randomState();
90
90
  const pkceVerifier = generatePkceVerifier();
91
- const tx = chunkL7V4DDIE_cjs.newTransaction({
91
+ const tx = chunk7VNFOGRD_cjs.newTransaction({
92
92
  state,
93
93
  pkceVerifier,
94
94
  returnTo: safeReturnTo === "/" ? void 0 : safeReturnTo
@@ -96,7 +96,7 @@ function defineAuth(opts) {
96
96
  const authUrl = await provider.createAuthorizationURL(tx);
97
97
  const headers = new Headers();
98
98
  headers.set("Location", authUrl.toString());
99
- const { encodeTransaction, COOKIE_NAME } = await import('../../oauth-transaction-store-OMX436YB.cjs');
99
+ const { encodeTransaction, COOKIE_NAME } = await import('../../oauth-transaction-store-YF7WOA6B.cjs');
100
100
  const encodedTx = await encodeTransaction(tx, txSecret);
101
101
  headers.set(
102
102
  "Set-Cookie",
@@ -118,7 +118,7 @@ function defineAuth(opts) {
118
118
  `Provider returned error: ${errorParam}${errorDescription ? ` (${errorDescription})` : ""}`
119
119
  );
120
120
  }
121
- const tx = await chunkL7V4DDIE_cjs.getTransaction(req, txSecret);
121
+ const tx = await chunk7VNFOGRD_cjs.getTransaction(req, txSecret);
122
122
  if (!tx) {
123
123
  throw new chunkIOFMRS6T_cjs.AuthCallbackError(
124
124
  "oauth_transaction_expired",
@@ -144,7 +144,7 @@ function defineAuth(opts) {
144
144
  } catch {
145
145
  }
146
146
  await opts.session.createSession(res, sessionData);
147
- chunkL7V4DDIE_cjs.clearTransaction(res);
147
+ chunk7VNFOGRD_cjs.clearTransaction(res);
148
148
  return { session: sessionData, returnTo: tx.returnTo };
149
149
  }
150
150
  async function signIn(profile, providerName, req, res) {
@@ -186,7 +186,7 @@ var Auth = class {
186
186
 
187
187
  Object.defineProperty(exports, "AuthSecretTooShortError", {
188
188
  enumerable: true,
189
- get: function () { return chunkL7V4DDIE_cjs.AuthSecretTooShortError; }
189
+ get: function () { return chunk7VNFOGRD_cjs.AuthSecretTooShortError; }
190
190
  });
191
191
  Object.defineProperty(exports, "AuthCallbackError", {
192
192
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/auth/validate-return-to.ts","../../../src/server/auth/orchestrator.ts"],"names":["webcrypto","AuthConfigError","AuthProviderNotFoundError","newTransaction","AuthCancelledError","AuthCallbackError","getTransaction","clearTransaction"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Clamp a caller-supplied `returnTo` to a same-origin destination, falling back\n * to `'/'` for anything else. This is the open-redirect guard for a post-login\n * redirect (`@theokit/sdk/server/auth`; OWASP A01:2021, v1.1 EC-2). Without it,\n * `/login?returnTo=https://evil.com` would send the freshly authenticated session\n * to an attacker's domain.\n *\n * validateReturnTo(req.query.returnTo, new URL(\"https://app.example.com\"));\n *\n * Pure and synchronous. It never throws and always returns a string:\n * - undefined / empty / whitespace-only `returnTo` -> `'/'`\n * - protocol-relative `//evil.com` -> `'/'` (a browser would resolve it against\n * the current protocol)\n * - absolute URL whose origin differs from `baseUrl.origin` -> `'/'`\n * - absolute URL on `baseUrl.origin` -> its `pathname + search + hash`, with\n * the origin dropped\n * - relative path starting with `'/'` -> kept verbatim\n * - anything else, including `javascript:` and `data:` -> `'/'`\n *\n * `baseUrl` is compared by ORIGIN only (scheme + host + port); its path is\n * ignored, so an app mounted under a sub-path gets no extra containment from it.\n *\n * Trap: this defends the origin, not the route. A same-origin relative path is\n * returned unchanged — `..` segments included, and with no notion of whether the\n * user is allowed there. Authorise the destination separately.\n */\nexport function validateReturnTo(returnTo: string | undefined, baseUrl: URL): string {\n if (!returnTo || typeof returnTo !== \"string\" || returnTo.trim() === \"\") {\n return \"/\";\n }\n\n const trimmed = returnTo.trim();\n\n // Protocol-relative URLs (//evil.com) are dangerous — browser would resolve to current protocol\n if (trimmed.startsWith(\"//\")) {\n return \"/\";\n }\n\n // Try absolute URL parsing first\n if (URL.canParse(trimmed)) {\n const parsed = new URL(trimmed);\n if (parsed.origin === baseUrl.origin) {\n // Same-origin absolute URL — return the pathname+search+hash portion (drop origin)\n return parsed.pathname + parsed.search + parsed.hash;\n }\n // Cross-origin — reject\n return \"/\";\n }\n\n // Not parseable as absolute. Must start with '/' to be a valid relative path\n if (trimmed.startsWith(\"/\")) {\n return trimmed;\n }\n\n // Anything else (e.g., \"javascript:alert\", \"data:...\" that wasn't parseable, or bare strings) → default\n return \"/\";\n}\n","/**\n * DefineAuth orchestrator runtime (Path C Hybrid) — `@theokit/sdk/server/auth`.\n *\n * Plan T1.2 implementation per blueprint Q5 § Path C signatures.\n * Composes existing primitives + the v1.1 EC-1/EC-2/EC-10 fixes.\n */\n\nimport { webcrypto } from \"node:crypto\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport {\n AuthCallbackError,\n AuthCancelledError,\n AuthConfigError,\n AuthProviderNotFoundError,\n} from \"./errors.js\";\nimport { clearTransaction, getTransaction, newTransaction } from \"./oauth-transaction-store.js\";\nimport type { AuthOrchestrator, AuthProvider, DefineAuthOptions } from \"./types.js\";\nimport { validateReturnTo } from \"./validate-return-to.js\";\n\nconst PROVIDER_NAME_RE = /^[a-z0-9-]{1,32}$/;\n\nfunction randomState(): string {\n const bytes = webcrypto.getRandomValues(new Uint8Array(24));\n return Buffer.from(bytes).toString(\"base64url\");\n}\n\n/**\n * Generate a PKCE code_verifier per RFC 7636 §4.1 — 43..128 chars from the\n * unreserved set [A-Z][a-z][0-9]-._~ (base64url is a strict subset).\n *\n * 32 random bytes → 43 base64url chars satisfies the minimum. Provided by\n * the orchestrator so every transaction carries one; PKCE-aware providers\n * (Google) consume it; PKCE-ignorant providers (GitHub) discard it.\n */\nfunction generatePkceVerifier(): string {\n const bytes = webcrypto.getRandomValues(new Uint8Array(32));\n return Buffer.from(bytes).toString(\"base64url\");\n}\n\nfunction txCookieSecret<TSession>(opts: DefineAuthOptions<TSession>): string {\n // Read through the PORT. This was `opts.session as unknown as { secret?: string | string[] }` —\n // and `as unknown as` is the tell: TypeScript would have refused the property access, so the code\n // asserted a shape `SessionManager` does not offer. No conforming caller could reach the branch,\n // nothing in src/ supplied the field, and it was green only because a test double carried one. The\n // comment that stood here said this code WANTED a `getCookieSecret()` method; `SessionManager` now\n // declares it, optional and additive, so the branch is reachable through the contract and the\n // double conforms rather than the code conforming to the double.\n const fromManager = opts.session.getCookieSecret?.();\n if (Array.isArray(fromManager)) {\n // First entry encrypts; the rest exist to verify cookies written before the last rotation.\n const first = fromManager[0];\n if (first !== undefined && first !== \"\") return first;\n } else if (fromManager !== undefined && fromManager !== \"\") {\n return fromManager;\n }\n const fromEnv = process.env.THEOKIT_OAUTH_TX_SECRET;\n if (fromEnv) return fromEnv;\n\n // The comment that used to sit here said this fallback \"will fail in production scrutiny —\n // flagged by future audit\". This is that audit, and the fallback is now refused where it matters.\n //\n // The cookie this secret encrypts carries `state` and `pkceVerifier` — the two values that make\n // an authorization-code flow safe against CSRF and code interception. Encrypting them with a\n // constant published inside the package protects nothing from anyone who can read npm.\n //\n // `AuthSecretTooShortError` never caught it: the constant is 48 characters, and that guard checks\n // LENGTH, not provenance.\n //\n // Refused in production only. Blocking it everywhere would break every `pnpm dev`, and the risk\n // is a deployed app rather than a laptop. The branch above (`opts.session.secret`) stays for\n // callers who wire one, though `SessionManager` declares no such field today.\n if (process.env.NODE_ENV === \"production\") {\n throw new AuthConfigError(\n \"missing_tx_secret\",\n \"No OAuth transaction secret is configured. Set THEOKIT_OAUTH_TX_SECRET to a 32+ character \" +\n \"random value — e.g. `openssl rand -hex 32`. Refusing to encrypt the transaction cookie \" +\n \"with the development fallback, which ships inside this package and protects nothing.\",\n );\n }\n return \"DEV_ONLY_INSECURE_OAUTH_TX_SECRET_REPLACE_IN_PROD\";\n}\n\nfunction defineAuth<TSession>(opts: DefineAuthOptions<TSession>): AuthOrchestrator<TSession> {\n // Validate config at define-time (per blueprint Q5 invariants)\n if (!opts.session) {\n throw new AuthConfigError(\"missing_session\", \"defineAuth({ session }) is required\");\n }\n\n const providersMap = new Map<string, AuthProvider<unknown, string>>();\n for (const provider of opts.providers ?? []) {\n if (!provider.name || !PROVIDER_NAME_RE.test(provider.name)) {\n throw new AuthConfigError(\n \"invalid_provider_name\",\n `Provider name must match ${PROVIDER_NAME_RE} (got: '${provider.name}')`,\n );\n }\n if (providersMap.has(provider.name)) {\n throw new AuthConfigError(\n \"duplicate_provider_name\",\n `Duplicate provider name: '${provider.name}'`,\n );\n }\n providersMap.set(provider.name, provider);\n }\n\n const txSecret = txCookieSecret(opts);\n\n function requireProvider(name: string): AuthProvider<unknown, string> {\n const p = providersMap.get(name);\n if (!p) throw new AuthProviderNotFoundError(name);\n return p;\n }\n\n async function startSignIn(\n providerName: string,\n req: IncomingMessage,\n startOpts?: { returnTo?: string },\n ): Promise<Response> {\n const provider = requireProvider(providerName);\n\n // EC-2 (v1.1) — validate returnTo same-origin\n const baseUrl = new URL(`http://${req.headers.host ?? \"localhost\"}${req.url ?? \"/\"}`);\n const safeReturnTo = validateReturnTo(startOpts?.returnTo, baseUrl);\n\n // Generate transaction. Always include a PKCE verifier — PKCE-aware\n // providers (Google OIDC) consume it; PKCE-ignorant providers (GitHub\n // OAuth 2.0) discard it. Generating unconditionally simplifies the\n // provider contract: every tx is PKCE-ready.\n const state = randomState();\n const pkceVerifier = generatePkceVerifier();\n const tx = newTransaction({\n state,\n pkceVerifier,\n returnTo: safeReturnTo === \"/\" ? undefined : safeReturnTo,\n });\n\n // Persist transaction cookie via headers (since we return Response, need Set-Cookie header manually)\n const authUrl = await provider.createAuthorizationURL(tx);\n\n // Build response with Set-Cookie + redirect\n const headers = new Headers();\n headers.set(\"Location\", authUrl.toString());\n const { encodeTransaction, COOKIE_NAME } = await import(\"./oauth-transaction-store.js\");\n const encodedTx = await encodeTransaction(tx, txSecret);\n // COOKIE_NAME, never a literal: this header used to be written by hand as `theo_oauth_tx=`,\n // while the store reads the `__Host-` prefixed name — so `finishSignIn` never found the cookie\n // and every sign-in failed at the callback. One constant, one name.\n //\n // The `__Host-` prefix requires exactly what is set below: `Secure`, `Path=/`, and NO `Domain`.\n headers.set(\n \"Set-Cookie\",\n `${COOKIE_NAME}=${encodedTx}; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=600`,\n );\n\n return new Response(null, { status: 302, headers });\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: OAuth callback handler must validate 6 distinct error conditions sequentially (provider error / state / tx fetch / PKCE / code exchange / session) — extracting helpers fragments the linear control flow without clarifying intent (per EC-1 v1.1 absorbed)\n async function finishSignIn(\n providerName: string,\n req: IncomingMessage,\n res: ServerResponse,\n ): Promise<{ session: TSession; returnTo?: string }> {\n const provider = requireProvider(providerName);\n\n // EC-1 (v1.1) — OAuth provider error response (user declined consent) check BEFORE code-exchange\n const url = new URL(`http://${req.headers.host ?? \"localhost\"}${req.url ?? \"/\"}`);\n const errorParam = url.searchParams.get(\"error\");\n if (errorParam) {\n const errorDescription = url.searchParams.get(\"error_description\") ?? undefined;\n if (errorParam === \"access_denied\") {\n throw new AuthCancelledError(errorDescription);\n }\n throw new AuthCallbackError(\n \"oauth_provider_error\",\n `Provider returned error: ${errorParam}${errorDescription ? ` (${errorDescription})` : \"\"}`,\n );\n }\n\n // Read + validate transaction cookie\n const tx = await getTransaction(req, txSecret);\n if (!tx) {\n throw new AuthCallbackError(\n \"oauth_transaction_expired\",\n \"OAuth transaction cookie missing or expired (>10min). Please retry sign-in.\",\n );\n }\n\n // Verify state matches query param (CSRF defense per RFC 6749 §10.12)\n const queryState = url.searchParams.get(\"state\");\n if (!queryState || queryState !== tx.state) {\n throw new AuthCallbackError(\n \"oauth_state_mismatch\",\n \"OAuth state mismatch. Possible CSRF attempt or stale callback.\",\n );\n }\n\n // Provider-specific callback handling (token exchange + userinfo fetch)\n const result = await provider.handleCallback(req, tx);\n\n // Invoke onSignIn callback if defined to derive session shape\n let sessionData: TSession;\n if (opts.onSignIn) {\n sessionData = await opts.onSignIn({ profile: result.profile, provider: result.providerName });\n } else {\n // No onSignIn — pass the raw profile as session (consumers must type their own TSession)\n sessionData = result.profile as unknown as TSession;\n }\n\n // EC-10 (v1.1) — OWASP A07:2021 session fixation mitigation: rotate session ID BEFORE creating new session\n try {\n await opts.session.rotateSession(req, res);\n } catch {\n // rotateSession may no-op if no pre-existing session — non-fatal\n }\n\n // Create session cookie\n await opts.session.createSession(res, sessionData);\n\n // Clear transaction cookie\n clearTransaction(res);\n\n return { session: sessionData, returnTo: tx.returnTo };\n }\n\n async function signIn<TProfile>(\n profile: TProfile,\n providerName: string,\n req: IncomingMessage,\n res: ServerResponse,\n ): Promise<TSession> {\n // Path A escape hatch — skip OAuth flow, directly derive + persist session\n let sessionData: TSession;\n if (opts.onSignIn) {\n sessionData = await opts.onSignIn({ profile, provider: providerName });\n } else {\n sessionData = profile as unknown as TSession;\n }\n\n try {\n await opts.session.rotateSession(req, res);\n } catch {\n /* no-op if no pre-existing session */\n }\n\n await opts.session.createSession(res, sessionData);\n return sessionData;\n }\n\n async function signOut(res: ServerResponse): Promise<void> {\n // Read current session before destroying (so onSignOut can see it)\n let sessionData: TSession | null = null;\n if (opts.onSignOut) {\n // We don't have req here per AuthOrchestrator contract; onSignOut receives null\n // when no pre-existing session is available. Apps that need session-aware\n // signOut should use the manual session.destroySession + custom logic.\n sessionData = null;\n }\n\n opts.session.destroySession(res);\n\n if (opts.onSignOut) {\n await opts.onSignOut(sessionData);\n }\n }\n\n async function getSession(req: IncomingMessage): Promise<TSession | null> {\n return opts.session.getSession(req);\n }\n\n return { startSignIn, finishSignIn, signIn, signOut, getSession };\n}\n\n/** SE36 — `Auth.create` replaces `defineAuth` (ADR 0015). @public *\n * `Auth.create` returns an **`AuthOrchestrator<TSession>`**, not an `Auth`. The class is\n * the namespace; the orchestrator is the product.\n */\nexport class Auth {\n private constructor() {}\n static create<TSession>(opts: DefineAuthOptions<TSession>): AuthOrchestrator<TSession> {\n return defineAuth(opts);\n }\n}\n\n/**\n * Test seam over {@link txCookieSecret}.\n *\n * Exported so the resolution order can be exercised through a CONFORMING `SessionManager` — the\n * point of the change that introduced `getCookieSecret`. Without a seam the only way to reach it is\n * a full `defineAuth` round trip, which is what let the previous version go untested through the\n * port and tested only through a cast.\n *\n * @internal\n */\nexport function _txCookieSecretForTests<TSession>(\n opts: Pick<DefineAuthOptions<TSession>, \"session\">,\n): string {\n return txCookieSecret(opts as DefineAuthOptions<TSession>);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/server/auth/validate-return-to.ts","../../../src/server/auth/orchestrator.ts"],"names":["webcrypto","AuthConfigError","AuthProviderNotFoundError","newTransaction","AuthCancelledError","AuthCallbackError","getTransaction","clearTransaction"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Clamp a caller-supplied `returnTo` to a same-origin destination, falling back\n * to `'/'` for anything else. This is the open-redirect guard for a post-login\n * redirect (`@theokit/sdk/server/auth`; OWASP A01:2021, v1.1 EC-2). Without it,\n * `/login?returnTo=https://evil.com` would send the freshly authenticated session\n * to an attacker's domain.\n *\n * validateReturnTo(req.query.returnTo, new URL(\"https://app.example.com\"));\n *\n * Pure and synchronous. It never throws and always returns a string:\n * - undefined / empty / whitespace-only `returnTo` -> `'/'`\n * - protocol-relative `//evil.com` -> `'/'` (a browser would resolve it against\n * the current protocol)\n * - absolute URL whose origin differs from `baseUrl.origin` -> `'/'`\n * - absolute URL on `baseUrl.origin` -> its `pathname + search + hash`, with\n * the origin dropped\n * - relative path starting with `'/'` -> kept verbatim\n * - anything else, including `javascript:` and `data:` -> `'/'`\n *\n * `baseUrl` is compared by ORIGIN only (scheme + host + port); its path is\n * ignored, so an app mounted under a sub-path gets no extra containment from it.\n *\n * Trap: this defends the origin, not the route. A same-origin relative path is\n * returned unchanged — `..` segments included, and with no notion of whether the\n * user is allowed there. Authorise the destination separately.\n */\nexport function validateReturnTo(returnTo: string | undefined, baseUrl: URL): string {\n if (!returnTo || typeof returnTo !== \"string\" || returnTo.trim() === \"\") {\n return \"/\";\n }\n\n const trimmed = returnTo.trim();\n\n // Protocol-relative URLs (//evil.com) are dangerous — browser would resolve to current protocol\n if (trimmed.startsWith(\"//\")) {\n return \"/\";\n }\n\n // Try absolute URL parsing first\n if (URL.canParse(trimmed)) {\n const parsed = new URL(trimmed);\n if (parsed.origin === baseUrl.origin) {\n // Same-origin absolute URL — return the pathname+search+hash portion (drop origin)\n return parsed.pathname + parsed.search + parsed.hash;\n }\n // Cross-origin — reject\n return \"/\";\n }\n\n // Not parseable as absolute. Must start with '/' to be a valid relative path\n if (trimmed.startsWith(\"/\")) {\n return trimmed;\n }\n\n // Anything else (e.g., \"javascript:alert\", \"data:...\" that wasn't parseable, or bare strings) → default\n return \"/\";\n}\n","/**\n * DefineAuth orchestrator runtime (Path C Hybrid) — `@theokit/sdk/server/auth`.\n *\n * Plan T1.2 implementation per blueprint Q5 § Path C signatures.\n * Composes existing primitives + the v1.1 EC-1/EC-2/EC-10 fixes.\n */\n\nimport { webcrypto } from \"node:crypto\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport {\n AuthCallbackError,\n AuthCancelledError,\n AuthConfigError,\n AuthProviderNotFoundError,\n} from \"./errors.js\";\nimport { clearTransaction, getTransaction, newTransaction } from \"./oauth-transaction-store.js\";\nimport type { AuthOrchestrator, AuthProvider, DefineAuthOptions } from \"./types.js\";\nimport { validateReturnTo } from \"./validate-return-to.js\";\n\nconst PROVIDER_NAME_RE = /^[a-z0-9-]{1,32}$/;\n\nfunction randomState(): string {\n const bytes = webcrypto.getRandomValues(new Uint8Array(24));\n return Buffer.from(bytes).toString(\"base64url\");\n}\n\n/**\n * Generate a PKCE code_verifier per RFC 7636 §4.1 — 43..128 chars from the\n * unreserved set [A-Z][a-z][0-9]-._~ (base64url is a strict subset).\n *\n * 32 random bytes → 43 base64url chars satisfies the minimum. Provided by\n * the orchestrator so every transaction carries one; PKCE-aware providers\n * (Google) consume it; PKCE-ignorant providers (GitHub) discard it.\n */\nfunction generatePkceVerifier(): string {\n const bytes = webcrypto.getRandomValues(new Uint8Array(32));\n return Buffer.from(bytes).toString(\"base64url\");\n}\n\nfunction txCookieSecret<TSession>(opts: DefineAuthOptions<TSession>): string {\n // Read through the PORT. This was `opts.session as unknown as { secret?: string | string[] }` —\n // and `as unknown as` is the tell: TypeScript would have refused the property access, so the code\n // asserted a shape `SessionManager` does not offer. No conforming caller could reach the branch,\n // nothing in src/ supplied the field, and it was green only because a test double carried one. The\n // comment that stood here said this code WANTED a `getCookieSecret()` method; `SessionManager` now\n // declares it, optional and additive, so the branch is reachable through the contract and the\n // double conforms rather than the code conforming to the double.\n const fromManager = opts.session.getCookieSecret?.();\n if (Array.isArray(fromManager)) {\n // First entry encrypts; the rest exist to verify cookies written before the last rotation.\n const first = fromManager[0];\n if (first !== undefined && first !== \"\") return first;\n } else if (fromManager !== undefined && fromManager !== \"\") {\n return fromManager;\n }\n const fromEnv = process.env.THEOKIT_OAUTH_TX_SECRET;\n if (fromEnv) return fromEnv;\n\n // The comment that used to sit here said this fallback \"will fail in production scrutiny —\n // flagged by future audit\". This is that audit, and the fallback is now refused where it matters.\n //\n // The cookie this secret encrypts carries `state` and `pkceVerifier` — the two values that make\n // an authorization-code flow safe against CSRF and code interception. Encrypting them with a\n // constant published inside the package protects nothing from anyone who can read npm.\n //\n // `AuthSecretTooShortError` never caught it: the constant is 48 characters, and that guard checks\n // LENGTH, not provenance.\n //\n // Refused in production only. Blocking it everywhere would break every `pnpm dev`, and the risk\n // is a deployed app rather than a laptop. The branch above (`opts.session.secret`) stays for\n // callers who wire one, though `SessionManager` declares no such field today.\n if (process.env.NODE_ENV === \"production\") {\n throw new AuthConfigError(\n \"missing_tx_secret\",\n \"No OAuth transaction secret is configured. Set THEOKIT_OAUTH_TX_SECRET to a 32+ character \" +\n \"random value — e.g. `openssl rand -hex 32`. Refusing to encrypt the transaction cookie \" +\n \"with the development fallback, which ships inside this package and protects nothing.\",\n );\n }\n return \"DEV_ONLY_INSECURE_OAUTH_TX_SECRET_REPLACE_IN_PROD\";\n}\n\nfunction defineAuth<TSession>(opts: DefineAuthOptions<TSession>): AuthOrchestrator<TSession> {\n // Validate config at define-time (per blueprint Q5 invariants)\n if (!opts.session) {\n throw new AuthConfigError(\"missing_session\", \"defineAuth({ session }) is required\");\n }\n\n const providersMap = new Map<string, AuthProvider<unknown, string>>();\n for (const provider of opts.providers ?? []) {\n if (!provider.name || !PROVIDER_NAME_RE.test(provider.name)) {\n throw new AuthConfigError(\n \"invalid_provider_name\",\n `Provider name must match ${PROVIDER_NAME_RE} (got: '${provider.name}')`,\n );\n }\n if (providersMap.has(provider.name)) {\n throw new AuthConfigError(\n \"duplicate_provider_name\",\n `Duplicate provider name: '${provider.name}'`,\n );\n }\n providersMap.set(provider.name, provider);\n }\n\n const txSecret = txCookieSecret(opts);\n\n function requireProvider(name: string): AuthProvider<unknown, string> {\n const p = providersMap.get(name);\n if (!p) throw new AuthProviderNotFoundError(name);\n return p;\n }\n\n async function startSignIn(\n providerName: string,\n req: IncomingMessage,\n startOpts?: { returnTo?: string },\n ): Promise<Response> {\n const provider = requireProvider(providerName);\n\n // EC-2 (v1.1) — validate returnTo same-origin\n const baseUrl = new URL(`http://${req.headers.host ?? \"localhost\"}${req.url ?? \"/\"}`);\n const safeReturnTo = validateReturnTo(startOpts?.returnTo, baseUrl);\n\n // Generate transaction. Always include a PKCE verifier — PKCE-aware\n // providers (Google OIDC) consume it; PKCE-ignorant providers (GitHub\n // OAuth 2.0) discard it. Generating unconditionally simplifies the\n // provider contract: every tx is PKCE-ready.\n const state = randomState();\n const pkceVerifier = generatePkceVerifier();\n const tx = newTransaction({\n state,\n pkceVerifier,\n returnTo: safeReturnTo === \"/\" ? undefined : safeReturnTo,\n });\n\n // Persist transaction cookie via headers (since we return Response, need Set-Cookie header manually)\n const authUrl = await provider.createAuthorizationURL(tx);\n\n // Build response with Set-Cookie + redirect\n const headers = new Headers();\n headers.set(\"Location\", authUrl.toString());\n const { encodeTransaction, COOKIE_NAME } = await import(\"./oauth-transaction-store.js\");\n const encodedTx = await encodeTransaction(tx, txSecret);\n // COOKIE_NAME, never a literal: this header used to be written by hand as `theo_oauth_tx=`,\n // while the store reads the `__Host-` prefixed name — so `finishSignIn` never found the cookie\n // and every sign-in failed at the callback. One constant, one name.\n //\n // The `__Host-` prefix requires exactly what is set below: `Secure`, `Path=/`, and NO `Domain`.\n headers.set(\n \"Set-Cookie\",\n `${COOKIE_NAME}=${encodedTx}; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=600`,\n );\n\n return new Response(null, { status: 302, headers });\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: OAuth callback handler must validate 6 distinct error conditions sequentially (provider error / state / tx fetch / PKCE / code exchange / session) — extracting helpers fragments the linear control flow without clarifying intent (per EC-1 v1.1 absorbed)\n async function finishSignIn(\n providerName: string,\n req: IncomingMessage,\n res: ServerResponse,\n ): Promise<{ session: TSession; returnTo?: string }> {\n const provider = requireProvider(providerName);\n\n // EC-1 (v1.1) — OAuth provider error response (user declined consent) check BEFORE code-exchange\n const url = new URL(`http://${req.headers.host ?? \"localhost\"}${req.url ?? \"/\"}`);\n const errorParam = url.searchParams.get(\"error\");\n if (errorParam) {\n const errorDescription = url.searchParams.get(\"error_description\") ?? undefined;\n if (errorParam === \"access_denied\") {\n throw new AuthCancelledError(errorDescription);\n }\n throw new AuthCallbackError(\n \"oauth_provider_error\",\n `Provider returned error: ${errorParam}${errorDescription ? ` (${errorDescription})` : \"\"}`,\n );\n }\n\n // Read + validate transaction cookie\n const tx = await getTransaction(req, txSecret);\n if (!tx) {\n throw new AuthCallbackError(\n \"oauth_transaction_expired\",\n \"OAuth transaction cookie missing or expired (>10min). Please retry sign-in.\",\n );\n }\n\n // Verify state matches query param (CSRF defense per RFC 6749 §10.12)\n const queryState = url.searchParams.get(\"state\");\n if (!queryState || queryState !== tx.state) {\n throw new AuthCallbackError(\n \"oauth_state_mismatch\",\n \"OAuth state mismatch. Possible CSRF attempt or stale callback.\",\n );\n }\n\n // Provider-specific callback handling (token exchange + userinfo fetch)\n const result = await provider.handleCallback(req, tx);\n\n // Invoke onSignIn callback if defined to derive session shape\n let sessionData: TSession;\n if (opts.onSignIn) {\n sessionData = await opts.onSignIn({ profile: result.profile, provider: result.providerName });\n } else {\n // No onSignIn — pass the raw profile as session (consumers must type their own TSession)\n sessionData = result.profile as unknown as TSession;\n }\n\n // EC-10 (v1.1) — OWASP A07:2021 session fixation mitigation: rotate session ID BEFORE creating new session\n try {\n await opts.session.rotateSession(req, res);\n } catch {\n // rotateSession may no-op if no pre-existing session — non-fatal\n }\n\n // Create session cookie\n await opts.session.createSession(res, sessionData);\n\n // Clear transaction cookie\n clearTransaction(res);\n\n return { session: sessionData, returnTo: tx.returnTo };\n }\n\n async function signIn<TProfile>(\n profile: TProfile,\n providerName: string,\n req: IncomingMessage,\n res: ServerResponse,\n ): Promise<TSession> {\n // Path A escape hatch — skip OAuth flow, directly derive + persist session\n let sessionData: TSession;\n if (opts.onSignIn) {\n sessionData = await opts.onSignIn({ profile, provider: providerName });\n } else {\n sessionData = profile as unknown as TSession;\n }\n\n try {\n await opts.session.rotateSession(req, res);\n } catch {\n /* no-op if no pre-existing session */\n }\n\n await opts.session.createSession(res, sessionData);\n return sessionData;\n }\n\n async function signOut(res: ServerResponse): Promise<void> {\n // Read current session before destroying (so onSignOut can see it)\n let sessionData: TSession | null = null;\n if (opts.onSignOut) {\n // We don't have req here per AuthOrchestrator contract; onSignOut receives null\n // when no pre-existing session is available. Apps that need session-aware\n // signOut should use the manual session.destroySession + custom logic.\n sessionData = null;\n }\n\n opts.session.destroySession(res);\n\n if (opts.onSignOut) {\n await opts.onSignOut(sessionData);\n }\n }\n\n async function getSession(req: IncomingMessage): Promise<TSession | null> {\n return opts.session.getSession(req);\n }\n\n return { startSignIn, finishSignIn, signIn, signOut, getSession };\n}\n\n/** SE36 — `Auth.create` replaces `defineAuth` (ADR 0015). @public *\n * `Auth.create` returns an **`AuthOrchestrator<TSession>`**, not an `Auth`. The class is\n * the namespace; the orchestrator is the product.\n */\nexport class Auth {\n private constructor() {}\n static create<TSession>(opts: DefineAuthOptions<TSession>): AuthOrchestrator<TSession> {\n return defineAuth(opts);\n }\n}\n\n/**\n * Test seam over {@link txCookieSecret}.\n *\n * Exported so the resolution order can be exercised through a CONFORMING `SessionManager` — the\n * point of the change that introduced `getCookieSecret`. Without a seam the only way to reach it is\n * a full `defineAuth` round trip, which is what let the previous version go untested through the\n * port and tested only through a cast.\n *\n * @internal\n */\nexport function _txCookieSecretForTests<TSession>(\n opts: Pick<DefineAuthOptions<TSession>, \"session\">,\n): string {\n return txCookieSecret(opts as DefineAuthOptions<TSession>);\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { getTransaction, clearTransaction, newTransaction } from '../../chunk-SV63WTA2.js';
2
- export { AuthSecretTooShortError } from '../../chunk-SV63WTA2.js';
1
+ import { getTransaction, clearTransaction, newTransaction } from '../../chunk-DBH2WA2U.js';
2
+ export { AuthSecretTooShortError } from '../../chunk-DBH2WA2U.js';
3
3
  import { AuthConfigError, AuthCancelledError, AuthCallbackError, AuthProviderNotFoundError } from '../../chunk-5IUDICRK.js';
4
4
  export { AuthCallbackError, AuthCancelledError, AuthConfigError, AuthProviderNotFoundError } from '../../chunk-5IUDICRK.js';
5
5
  import '../../chunk-TNFOU6SB.js';
6
6
  import '../../chunk-3OY6H3I7.js';
7
- import { webcrypto } from 'crypto';
7
+ import { webcrypto } from 'node:crypto';
8
8
 
9
9
  // src/server/auth/validate-return-to.ts
10
10
  function validateReturnTo(returnTo, baseUrl) {
@@ -96,7 +96,7 @@ function defineAuth(opts) {
96
96
  const authUrl = await provider.createAuthorizationURL(tx);
97
97
  const headers = new Headers();
98
98
  headers.set("Location", authUrl.toString());
99
- const { encodeTransaction, COOKIE_NAME } = await import('../../oauth-transaction-store-U34YLEGP.js');
99
+ const { encodeTransaction, COOKIE_NAME } = await import('../../oauth-transaction-store-QQBWGNE2.js');
100
100
  const encodedTx = await encodeTransaction(tx, txSecret);
101
101
  headers.set(
102
102
  "Set-Cookie",
@@ -1,62 +1,62 @@
1
1
  'use strict';
2
2
 
3
- var chunk3WKWBYPO_cjs = require('./chunk-3WKWBYPO.cjs');
4
- require('./chunk-ZOFRNNZD.cjs');
3
+ var chunk6EHOJLJ3_cjs = require('./chunk-6EHOJLJ3.cjs');
4
+ require('./chunk-IZV72OEI.cjs');
5
5
  require('./chunk-RNXXYF22.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "SessionTranscript", {
10
10
  enumerable: true,
11
- get: function () { return chunk3WKWBYPO_cjs.SessionTranscript; }
11
+ get: function () { return chunk6EHOJLJ3_cjs.SessionTranscript; }
12
12
  });
13
13
  Object.defineProperty(exports, "defaultBaseDir", {
14
14
  enumerable: true,
15
- get: function () { return chunk3WKWBYPO_cjs.defaultBaseDir; }
15
+ get: function () { return chunk6EHOJLJ3_cjs.defaultBaseDir; }
16
16
  });
17
17
  Object.defineProperty(exports, "encodeProjectDir", {
18
18
  enumerable: true,
19
- get: function () { return chunk3WKWBYPO_cjs.encodeProjectDir; }
19
+ get: function () { return chunk6EHOJLJ3_cjs.encodeProjectDir; }
20
20
  });
21
21
  Object.defineProperty(exports, "expandTilde", {
22
22
  enumerable: true,
23
- get: function () { return chunk3WKWBYPO_cjs.expandTilde; }
23
+ get: function () { return chunk6EHOJLJ3_cjs.expandTilde; }
24
24
  });
25
25
  Object.defineProperty(exports, "isSessionUuid", {
26
26
  enumerable: true,
27
- get: function () { return chunk3WKWBYPO_cjs.isSessionUuid; }
27
+ get: function () { return chunk6EHOJLJ3_cjs.isSessionUuid; }
28
28
  });
29
29
  Object.defineProperty(exports, "legacyTranscriptPath", {
30
30
  enumerable: true,
31
- get: function () { return chunk3WKWBYPO_cjs.legacyTranscriptPath; }
31
+ get: function () { return chunk6EHOJLJ3_cjs.legacyTranscriptPath; }
32
32
  });
33
33
  Object.defineProperty(exports, "readTranscript", {
34
34
  enumerable: true,
35
- get: function () { return chunk3WKWBYPO_cjs.readTranscript; }
35
+ get: function () { return chunk6EHOJLJ3_cjs.readTranscript; }
36
36
  });
37
37
  Object.defineProperty(exports, "reconstructMessages", {
38
38
  enumerable: true,
39
- get: function () { return chunk3WKWBYPO_cjs.reconstructMessages; }
39
+ get: function () { return chunk6EHOJLJ3_cjs.reconstructMessages; }
40
40
  });
41
41
  Object.defineProperty(exports, "safeSessionId", {
42
42
  enumerable: true,
43
- get: function () { return chunk3WKWBYPO_cjs.safeSessionId; }
43
+ get: function () { return chunk6EHOJLJ3_cjs.safeSessionId; }
44
44
  });
45
45
  Object.defineProperty(exports, "sessionUuidFor", {
46
46
  enumerable: true,
47
- get: function () { return chunk3WKWBYPO_cjs.sessionUuidFor; }
47
+ get: function () { return chunk6EHOJLJ3_cjs.sessionUuidFor; }
48
48
  });
49
49
  Object.defineProperty(exports, "transcriptPath", {
50
50
  enumerable: true,
51
- get: function () { return chunk3WKWBYPO_cjs.transcriptPath; }
51
+ get: function () { return chunk6EHOJLJ3_cjs.transcriptPath; }
52
52
  });
53
53
  Object.defineProperty(exports, "transcriptRoot", {
54
54
  enumerable: true,
55
- get: function () { return chunk3WKWBYPO_cjs.transcriptRoot; }
55
+ get: function () { return chunk6EHOJLJ3_cjs.transcriptRoot; }
56
56
  });
57
57
  Object.defineProperty(exports, "writeTranscript", {
58
58
  enumerable: true,
59
- get: function () { return chunk3WKWBYPO_cjs.writeTranscript; }
59
+ get: function () { return chunk6EHOJLJ3_cjs.writeTranscript; }
60
60
  });
61
- //# sourceMappingURL=session-transcript-7TZ6HXSX.cjs.map
62
- //# sourceMappingURL=session-transcript-7TZ6HXSX.cjs.map
61
+ //# sourceMappingURL=session-transcript-EBVGLZ6B.cjs.map
62
+ //# sourceMappingURL=session-transcript-EBVGLZ6B.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"session-transcript-7TZ6HXSX.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"session-transcript-EBVGLZ6B.cjs"}
@@ -1,5 +1,5 @@
1
- export { SessionTranscript, defaultBaseDir, encodeProjectDir, expandTilde, isSessionUuid, legacyTranscriptPath, readTranscript, reconstructMessages, safeSessionId, sessionUuidFor, transcriptPath, transcriptRoot, writeTranscript } from './chunk-XESYJ4JC.js';
2
- import './chunk-M4U24U6G.js';
1
+ export { SessionTranscript, defaultBaseDir, encodeProjectDir, expandTilde, isSessionUuid, legacyTranscriptPath, readTranscript, reconstructMessages, safeSessionId, sessionUuidFor, transcriptPath, transcriptRoot, writeTranscript } from './chunk-3VX7JHJI.js';
2
+ import './chunk-AZK3QM36.js';
3
3
  import './chunk-3OY6H3I7.js';
4
- //# sourceMappingURL=session-transcript-BSHZYYY6.js.map
5
- //# sourceMappingURL=session-transcript-BSHZYYY6.js.map
4
+ //# sourceMappingURL=session-transcript-GU2VE7JX.js.map
5
+ //# sourceMappingURL=session-transcript-GU2VE7JX.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"session-transcript-BSHZYYY6.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"session-transcript-GU2VE7JX.js"}
package/dist/skills.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunk3UMPP553_cjs = require('./chunk-3UMPP553.cjs');
4
- require('./chunk-3KIUY67P.cjs');
5
- require('./chunk-SA6K24NB.cjs');
6
- require('./chunk-6XQLTQB6.cjs');
3
+ var chunkNMRNE6QX_cjs = require('./chunk-NMRNE6QX.cjs');
4
+ require('./chunk-VHY6NVCJ.cjs');
5
+ require('./chunk-MXJJMP4U.cjs');
6
+ require('./chunk-3YCNBOX7.cjs');
7
7
  require('./chunk-CEGU5AVD.cjs');
8
8
  require('./chunk-RNXXYF22.cjs');
9
9
 
@@ -11,15 +11,15 @@ require('./chunk-RNXXYF22.cjs');
11
11
 
12
12
  Object.defineProperty(exports, "buildSkillsBlock", {
13
13
  enumerable: true,
14
- get: function () { return chunk3UMPP553_cjs.buildSkillsBlock; }
14
+ get: function () { return chunkNMRNE6QX_cjs.buildSkillsBlock; }
15
15
  });
16
16
  Object.defineProperty(exports, "discoverSkills", {
17
17
  enumerable: true,
18
- get: function () { return chunk3UMPP553_cjs.discoverSkills; }
18
+ get: function () { return chunkNMRNE6QX_cjs.discoverSkills; }
19
19
  });
20
20
  Object.defineProperty(exports, "loadSkillInstructions", {
21
21
  enumerable: true,
22
- get: function () { return chunk3UMPP553_cjs.loadSkillInstructions; }
22
+ get: function () { return chunkNMRNE6QX_cjs.loadSkillInstructions; }
23
23
  });
24
24
  //# sourceMappingURL=skills.cjs.map
25
25
  //# sourceMappingURL=skills.cjs.map
package/dist/skills.js CHANGED
@@ -1,7 +1,7 @@
1
- export { buildSkillsBlock, discoverSkills, loadSkillInstructions } from './chunk-2HXTNVLM.js';
2
- import './chunk-PKRPV3R7.js';
3
- import './chunk-UKMBRMGT.js';
4
- import './chunk-Q7UG242V.js';
1
+ export { buildSkillsBlock, discoverSkills, loadSkillInstructions } from './chunk-LSURFRJA.js';
2
+ import './chunk-NO6AG22P.js';
3
+ import './chunk-DGO4LPLP.js';
4
+ import './chunk-TIYQDJFK.js';
5
5
  import './chunk-TNFOU6SB.js';
6
6
  import './chunk-3OY6H3I7.js';
7
7
  //# sourceMappingURL=skills.js.map
@@ -0,0 +1,7 @@
1
+ export { StreamObjectError, streamObjectImpl } from './chunk-GA27FFT5.js';
2
+ import './chunk-JRP2W2DR.js';
3
+ import './chunk-7I5Z3UBJ.js';
4
+ import './chunk-TNFOU6SB.js';
5
+ import './chunk-3OY6H3I7.js';
6
+ //# sourceMappingURL=stream-object-3AU7QDHT.js.map
7
+ //# sourceMappingURL=stream-object-3AU7QDHT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"stream-object-EKM4WGTI.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"stream-object-3AU7QDHT.js"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var chunkFBT2SF2S_cjs = require('./chunk-FBT2SF2S.cjs');
4
+ require('./chunk-KDJTECE6.cjs');
5
+ require('./chunk-AA27GEYS.cjs');
6
+ require('./chunk-CEGU5AVD.cjs');
7
+ require('./chunk-RNXXYF22.cjs');
8
+
9
+
10
+
11
+ Object.defineProperty(exports, "StreamObjectError", {
12
+ enumerable: true,
13
+ get: function () { return chunkFBT2SF2S_cjs.StreamObjectError; }
14
+ });
15
+ Object.defineProperty(exports, "streamObjectImpl", {
16
+ enumerable: true,
17
+ get: function () { return chunkFBT2SF2S_cjs.streamObjectImpl; }
18
+ });
19
+ //# sourceMappingURL=stream-object-SLGR2KIA.cjs.map
20
+ //# sourceMappingURL=stream-object-SLGR2KIA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"stream-object-AS4YYM4B.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"stream-object-SLGR2KIA.cjs"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var chunkFZSPVIFK_cjs = require('./chunk-FZSPVIFK.cjs');
4
+ require('./chunk-JVH3NNJ3.cjs');
5
+ require('./chunk-3YCNBOX7.cjs');
6
+ require('./chunk-CEGU5AVD.cjs');
7
+ require('./chunk-RNXXYF22.cjs');
8
+
9
+
10
+
11
+ Object.defineProperty(exports, "loadSubagents", {
12
+ enumerable: true,
13
+ get: function () { return chunkFZSPVIFK_cjs.loadSubagents; }
14
+ });
15
+ //# sourceMappingURL=subagents-loader-4PQS7ULK.cjs.map
16
+ //# sourceMappingURL=subagents-loader-4PQS7ULK.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"subagents-loader-KLWF4QPD.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"subagents-loader-4PQS7ULK.cjs"}
@@ -0,0 +1,7 @@
1
+ export { loadSubagents } from './chunk-MTNCJ7MQ.js';
2
+ import './chunk-PISZRLES.js';
3
+ import './chunk-TIYQDJFK.js';
4
+ import './chunk-TNFOU6SB.js';
5
+ import './chunk-3OY6H3I7.js';
6
+ //# sourceMappingURL=subagents-loader-CPFVLWLH.js.map
7
+ //# sourceMappingURL=subagents-loader-CPFVLWLH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"subagents-loader-SXETS2F2.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"subagents-loader-CPFVLWLH.js"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkAUH2EVWY_cjs = require('./chunk-AUH2EVWY.cjs');
4
- require('./chunk-YQ3XC6C2.cjs');
5
- require('./chunk-6XQLTQB6.cjs');
3
+ var chunkFZSPVIFK_cjs = require('./chunk-FZSPVIFK.cjs');
4
+ require('./chunk-JVH3NNJ3.cjs');
5
+ require('./chunk-3YCNBOX7.cjs');
6
6
  var chunkCEGU5AVD_cjs = require('./chunk-CEGU5AVD.cjs');
7
7
  require('./chunk-RNXXYF22.cjs');
8
8
 
@@ -23,7 +23,7 @@ function resolveSources(options) {
23
23
  }
24
24
  async function discoverSubagents(cwd, options) {
25
25
  const sources = resolveSources(options);
26
- return chunkAUH2EVWY_cjs.loadSubagents(cwd, sources.includes("project"), void 0, options?.compatSources ?? []);
26
+ return chunkFZSPVIFK_cjs.loadSubagents(cwd, sources.includes("project"), void 0, options?.compatSources ?? []);
27
27
  }
28
28
  async function loadSubagentDefinition(name, cwd, options) {
29
29
  return (await discoverSubagents(cwd, options))[name];
@@ -1,6 +1,6 @@
1
- import { loadSubagents } from './chunk-WM646HEN.js';
2
- import './chunk-YMVTUV5K.js';
3
- import './chunk-Q7UG242V.js';
1
+ import { loadSubagents } from './chunk-MTNCJ7MQ.js';
2
+ import './chunk-PISZRLES.js';
3
+ import './chunk-TIYQDJFK.js';
4
4
  import { ConfigurationError } from './chunk-TNFOU6SB.js';
5
5
  import './chunk-3OY6H3I7.js';
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkIJ7M6GOG_cjs = require('./chunk-IJ7M6GOG.cjs');
3
+ var chunkGKERJ52A_cjs = require('./chunk-GKERJ52A.cjs');
4
4
 
5
5
  // src/internal/runtime/skills/subagent-tool-scope.ts
6
6
  function subagentToolWhitelist(definition) {
@@ -9,7 +9,7 @@ function subagentToolWhitelist(definition) {
9
9
  }
10
10
  function withSubagentToolScope(definition, fn) {
11
11
  const whitelist = subagentToolWhitelist(definition);
12
- return whitelist ? chunkIJ7M6GOG_cjs.withToolWhitelist(whitelist, fn) : fn();
12
+ return whitelist ? chunkGKERJ52A_cjs.withToolWhitelist(whitelist, fn) : fn();
13
13
  }
14
14
 
15
15
  exports.subagentToolWhitelist = subagentToolWhitelist;
package/dist/subagents.js CHANGED
@@ -1,4 +1,4 @@
1
- import { withToolWhitelist } from './chunk-SAGRF4IB.js';
1
+ import { withToolWhitelist } from './chunk-S2CMEJ5F.js';
2
2
 
3
3
  // src/internal/runtime/skills/subagent-tool-scope.ts
4
4
  function subagentToolWhitelist(definition) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkBWYC7RZG_cjs = require('./chunk-BWYC7RZG.cjs');
4
- require('./chunk-ZOFRNNZD.cjs');
3
+ var chunkXTQWTVVI_cjs = require('./chunk-XTQWTVVI.cjs');
4
+ require('./chunk-IZV72OEI.cjs');
5
5
  require('./chunk-CEGU5AVD.cjs');
6
6
  require('./chunk-RNXXYF22.cjs');
7
7
 
@@ -9,15 +9,15 @@ require('./chunk-RNXXYF22.cjs');
9
9
 
10
10
  Object.defineProperty(exports, "InMemoryTaskStore", {
11
11
  enumerable: true,
12
- get: function () { return chunkBWYC7RZG_cjs.InMemoryTaskStore; }
12
+ get: function () { return chunkXTQWTVVI_cjs.InMemoryTaskStore; }
13
13
  });
14
14
  Object.defineProperty(exports, "JsonFileTaskStore", {
15
15
  enumerable: true,
16
- get: function () { return chunkBWYC7RZG_cjs.JsonFileTaskStore; }
16
+ get: function () { return chunkXTQWTVVI_cjs.JsonFileTaskStore; }
17
17
  });
18
18
  Object.defineProperty(exports, "getTaskStoreFor", {
19
19
  enumerable: true,
20
- get: function () { return chunkBWYC7RZG_cjs.getTaskStoreFor; }
20
+ get: function () { return chunkXTQWTVVI_cjs.getTaskStoreFor; }
21
21
  });
22
22
  //# sourceMappingURL=task-store.cjs.map
23
23
  //# sourceMappingURL=task-store.cjs.map
@@ -1,5 +1,5 @@
1
- export { InMemoryTaskStore, JsonFileTaskStore, getTaskStoreFor } from './chunk-MLGETTYX.js';
2
- import './chunk-M4U24U6G.js';
1
+ export { InMemoryTaskStore, JsonFileTaskStore, getTaskStoreFor } from './chunk-4YUIYSZO.js';
2
+ import './chunk-AZK3QM36.js';
3
3
  import './chunk-TNFOU6SB.js';
4
4
  import './chunk-3OY6H3I7.js';
5
5
  //# sourceMappingURL=task-store.js.map