@keboola/api-client 39.0.0 → 41.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/AGENTS.md +121 -100
  2. package/API-SURFACE.md +27 -2
  3. package/CHANGELOG.md +129 -0
  4. package/README.md +3 -3
  5. package/dist/{ManagementClientAuthError-FcfMJNhr.cjs → ManagementClientAuthError-DE7lNGZQ.cjs} +2 -2
  6. package/dist/{ManagementClientAuthError-FcfMJNhr.cjs.map → ManagementClientAuthError-DE7lNGZQ.cjs.map} +1 -1
  7. package/dist/{ManagementClientAuthError-Cr9IOsnJ.js → ManagementClientAuthError-H30lti_Q.js} +2 -2
  8. package/dist/{ManagementClientAuthError-Cr9IOsnJ.js.map → ManagementClientAuthError-H30lti_Q.js.map} +1 -1
  9. package/dist/{ValidationError-CLVJCCwH.cjs → ValidationError-D65QU0uq.cjs} +10 -16
  10. package/dist/ValidationError-D65QU0uq.cjs.map +1 -0
  11. package/dist/ValidationError-DjhtNMfZ.js +42 -0
  12. package/dist/ValidationError-DjhtNMfZ.js.map +1 -0
  13. package/dist/ai/index.cjs +2 -2
  14. package/dist/ai/index.d.cts +2 -2
  15. package/dist/ai/index.d.ts +2 -2
  16. package/dist/ai/index.js +2 -2
  17. package/dist/ai/types.d.cts +1 -1
  18. package/dist/ai/types.d.ts +1 -1
  19. package/dist/{appLogs-C_zP0lpv.cjs → appLogs-B9zFJIuy.cjs} +2 -2
  20. package/dist/{appLogs-C_zP0lpv.cjs.map → appLogs-B9zFJIuy.cjs.map} +1 -1
  21. package/dist/{appLogs-Cl7Q_MR9.js → appLogs-BBkkUOW1.js} +2 -2
  22. package/dist/{appLogs-Cl7Q_MR9.js.map → appLogs-BBkkUOW1.js.map} +1 -1
  23. package/dist/{appLogs-Ch7DYpzx.d.ts → appLogs-BS6ViVGR.d.ts} +2 -2
  24. package/dist/{appLogs-D5A13Y0y.d.cts → appLogs-C9YlJ2g8.d.cts} +2 -2
  25. package/dist/apps/index.cjs +30 -56
  26. package/dist/apps/index.cjs.map +1 -1
  27. package/dist/apps/index.d.cts +8 -13
  28. package/dist/apps/index.d.ts +8 -13
  29. package/dist/apps/index.js +30 -56
  30. package/dist/apps/index.js.map +1 -1
  31. package/dist/apps/types.d.cts +2 -2
  32. package/dist/apps/types.d.ts +2 -2
  33. package/dist/assets/index.cjs +1 -1
  34. package/dist/assets/index.d.cts +1 -1
  35. package/dist/assets/index.d.ts +1 -1
  36. package/dist/assets/index.js +1 -1
  37. package/dist/auth/index.cjs +8 -4
  38. package/dist/auth/index.d.cts +2 -2
  39. package/dist/auth/index.d.ts +2 -2
  40. package/dist/auth/index.js +2 -2
  41. package/dist/auth/types.d.cts +2 -2
  42. package/dist/auth/types.d.ts +2 -2
  43. package/dist/{auth-DLWnl18b.cjs → auth-Dm0F2rOh.cjs} +2 -2
  44. package/dist/{auth-DLWnl18b.cjs.map → auth-Dm0F2rOh.cjs.map} +1 -1
  45. package/dist/{auth-BjmkFOgd.js → auth-DworfoPy.js} +2 -2
  46. package/dist/{auth-BjmkFOgd.js.map → auth-DworfoPy.js.map} +1 -1
  47. package/dist/{authClient-8yU1last.cjs → authClient-BmuUo0J4.cjs} +141 -48
  48. package/dist/authClient-BmuUo0J4.cjs.map +1 -0
  49. package/dist/{authClient-CTHNs6Tq.d.cts → authClient-CHXWJ9x3.d.ts} +109 -76
  50. package/dist/{authClient-BTo4Afm6.js → authClient-CgcDGd30.js} +108 -39
  51. package/dist/authClient-CgcDGd30.js.map +1 -0
  52. package/dist/{authClient-D8i3JTM-.d.ts → authClient-vEt_7_uk.d.cts} +109 -76
  53. package/dist/billing/index.cjs +2 -2
  54. package/dist/billing/index.d.cts +1 -1
  55. package/dist/billing/index.d.ts +1 -1
  56. package/dist/billing/index.js +2 -2
  57. package/dist/billing/types.d.cts +1 -1
  58. package/dist/billing/types.d.ts +1 -1
  59. package/dist/businessWorkspaceApi/index.cjs +1 -1
  60. package/dist/businessWorkspaceApi/index.d.cts +1 -1
  61. package/dist/businessWorkspaceApi/index.d.ts +1 -1
  62. package/dist/businessWorkspaceApi/index.js +1 -1
  63. package/dist/businessWorkspaceApi/types.d.cts +1 -1
  64. package/dist/businessWorkspaceApi/types.d.ts +1 -1
  65. package/dist/{businessWorkspaceApi-wyBdbpIJ.cjs → businessWorkspaceApi-6tCDdpnY.cjs} +3 -3
  66. package/dist/{businessWorkspaceApi-wyBdbpIJ.cjs.map → businessWorkspaceApi-6tCDdpnY.cjs.map} +1 -1
  67. package/dist/{businessWorkspaceApi-BD-iUj07.js → businessWorkspaceApi-BLUdefRF.js} +3 -3
  68. package/dist/{businessWorkspaceApi-BD-iUj07.js.map → businessWorkspaceApi-BLUdefRF.js.map} +1 -1
  69. package/dist/{businessWorkspaceApiClient-CRM1U8b-.d.cts → businessWorkspaceApiClient-BHDJlHFo.d.cts} +3 -3
  70. package/dist/{businessWorkspaceApiClient-C2WyWN3b.d.ts → businessWorkspaceApiClient-DI-z1VIH.d.ts} +3 -3
  71. package/dist/chat/index.cjs +7 -3
  72. package/dist/chat/index.cjs.map +1 -1
  73. package/dist/chat/index.d.cts +2 -2
  74. package/dist/chat/index.d.ts +2 -2
  75. package/dist/chat/index.js +7 -3
  76. package/dist/chat/index.js.map +1 -1
  77. package/dist/chat/types.cjs +1 -3
  78. package/dist/chat/types.cjs.map +1 -1
  79. package/dist/chat/types.d.cts +2 -2
  80. package/dist/chat/types.d.ts +2 -2
  81. package/dist/chat/types.js +1 -3
  82. package/dist/chat/types.js.map +1 -1
  83. package/dist/{componentId-vJz-kWs6.js → componentId-BJLfnaGc.js} +6 -2
  84. package/dist/componentId-BJLfnaGc.js.map +1 -0
  85. package/dist/{componentId-DkyQ8PM0.cjs → componentId-_IKXxICq.cjs} +6 -2
  86. package/dist/componentId-_IKXxICq.cjs.map +1 -0
  87. package/dist/{concurrent-CH9fbNr3.js → concurrent-BacWxPwi.js} +5 -7
  88. package/dist/concurrent-BacWxPwi.js.map +1 -0
  89. package/dist/{concurrent-tbiIa0UL.cjs → concurrent-CdVfR1N5.cjs} +5 -7
  90. package/dist/concurrent-CdVfR1N5.cjs.map +1 -0
  91. package/dist/{configurations-CyFF9Dtu.cjs → configurations-BTRHVSRq.cjs} +20 -53
  92. package/dist/configurations-BTRHVSRq.cjs.map +1 -0
  93. package/dist/{configurations-VtNE0nrT.js → configurations-CF3xz7RB.js} +14 -22
  94. package/dist/configurations-CF3xz7RB.js.map +1 -0
  95. package/dist/{configurations-BVvcimzo.js → configurations-Chg_JwJ1.js} +20 -53
  96. package/dist/configurations-Chg_JwJ1.js.map +1 -0
  97. package/dist/{configurations-zkNjr73Q.cjs → configurations-VlfQ_37Y.cjs} +14 -22
  98. package/dist/configurations-VlfQ_37Y.cjs.map +1 -0
  99. package/dist/constants/index.cjs +1 -1
  100. package/dist/constants/index.d.cts +1 -1
  101. package/dist/constants/index.d.ts +1 -1
  102. package/dist/constants/index.js +1 -1
  103. package/dist/{createFetchClient-BlgPbjFj.cjs → createFetchClient-Cwp8max9.cjs} +11 -4
  104. package/dist/createFetchClient-Cwp8max9.cjs.map +1 -0
  105. package/dist/{createFetchClient-C-cadpBx.js → createFetchClient-DXHQK63w.js} +11 -4
  106. package/dist/createFetchClient-DXHQK63w.js.map +1 -0
  107. package/dist/{createGenericFetchClient-Bnf1QK9W.js → createGenericFetchClient-Dg1rgzmG.js} +2 -2
  108. package/dist/{createGenericFetchClient-Bnf1QK9W.js.map → createGenericFetchClient-Dg1rgzmG.js.map} +1 -1
  109. package/dist/{createGenericFetchClient-lcozzwk2.cjs → createGenericFetchClient-Dl9cqTvR.cjs} +2 -2
  110. package/dist/{createGenericFetchClient-lcozzwk2.cjs.map → createGenericFetchClient-Dl9cqTvR.cjs.map} +1 -1
  111. package/dist/{createOpenapiFetchClient-C3UmDXpe.cjs → createOpenapiFetchClient-BYqW-9tm.cjs} +2 -2
  112. package/dist/{createOpenapiFetchClient-C3UmDXpe.cjs.map → createOpenapiFetchClient-BYqW-9tm.cjs.map} +1 -1
  113. package/dist/{createOpenapiFetchClient-COaPeeQ0.js → createOpenapiFetchClient-DZUOVupy.js} +2 -2
  114. package/dist/{createOpenapiFetchClient-COaPeeQ0.js.map → createOpenapiFetchClient-DZUOVupy.js.map} +1 -1
  115. package/dist/dataScience/index.cjs +2 -2
  116. package/dist/dataScience/index.d.cts +2 -2
  117. package/dist/dataScience/index.d.ts +2 -2
  118. package/dist/dataScience/index.js +2 -2
  119. package/dist/dataScience/types.d.cts +2 -2
  120. package/dist/dataScience/types.d.ts +2 -2
  121. package/dist/{dataScience-D-hyc4GY.cjs → dataScience-B5QxZnvW.cjs} +5 -5
  122. package/dist/{dataScience-D-hyc4GY.cjs.map → dataScience-B5QxZnvW.cjs.map} +1 -1
  123. package/dist/{dataScience-B_BmnB1m.js → dataScience-OXcwdk1p.js} +5 -5
  124. package/dist/{dataScience-B_BmnB1m.js.map → dataScience-OXcwdk1p.js.map} +1 -1
  125. package/dist/dedupe-Cky1gSUu.js +21 -0
  126. package/dist/dedupe-Cky1gSUu.js.map +1 -0
  127. package/dist/dedupe-OSnnst2u.cjs +26 -0
  128. package/dist/dedupe-OSnnst2u.cjs.map +1 -0
  129. package/dist/developerPortal/index.cjs +1 -1
  130. package/dist/developerPortal/index.d.cts +2 -2
  131. package/dist/developerPortal/index.d.ts +2 -2
  132. package/dist/developerPortal/index.js +1 -1
  133. package/dist/developerPortal/types.d.cts +1 -1
  134. package/dist/developerPortal/types.d.ts +1 -1
  135. package/dist/{developerPortalClient-yHFTkKPb.js → developerPortalClient-B1QZ1rYi.js} +6 -8
  136. package/dist/{developerPortalClient-yHFTkKPb.js.map → developerPortalClient-B1QZ1rYi.js.map} +1 -1
  137. package/dist/{developerPortalClient-CutPqoAa.cjs → developerPortalClient-CLPpBksD.cjs} +6 -8
  138. package/dist/{developerPortalClient-CutPqoAa.cjs.map → developerPortalClient-CLPpBksD.cjs.map} +1 -1
  139. package/dist/domain/permissions/index.cjs +9 -30
  140. package/dist/domain/permissions/index.cjs.map +1 -1
  141. package/dist/domain/permissions/index.d.cts +29 -102
  142. package/dist/domain/permissions/index.d.ts +29 -102
  143. package/dist/domain/permissions/index.js +9 -30
  144. package/dist/domain/permissions/index.js.map +1 -1
  145. package/dist/domain/storageTable/index.d.cts +1 -1
  146. package/dist/domain/storageTable/index.d.ts +1 -1
  147. package/dist/editor/index.cjs +2 -2
  148. package/dist/editor/index.cjs.map +1 -1
  149. package/dist/editor/index.d.cts +2 -2
  150. package/dist/editor/index.d.ts +2 -2
  151. package/dist/editor/index.js +2 -2
  152. package/dist/editor/index.js.map +1 -1
  153. package/dist/editor/types.d.cts +1 -1
  154. package/dist/editor/types.d.ts +1 -1
  155. package/dist/encryption/index.cjs +2 -22
  156. package/dist/encryption/index.cjs.map +1 -1
  157. package/dist/encryption/index.d.cts +1 -1
  158. package/dist/encryption/index.d.ts +1 -1
  159. package/dist/encryption/index.js +2 -22
  160. package/dist/encryption/index.js.map +1 -1
  161. package/dist/encryption/types.d.cts +1 -1
  162. package/dist/encryption/types.d.ts +1 -1
  163. package/dist/import/index.cjs +1 -1
  164. package/dist/import/index.d.cts +3 -3
  165. package/dist/import/index.d.ts +3 -3
  166. package/dist/import/index.js +1 -1
  167. package/dist/{import-7YyyD_U_.cjs → import-CNk89mqy.cjs} +3 -3
  168. package/dist/{import-7YyyD_U_.cjs.map → import-CNk89mqy.cjs.map} +1 -1
  169. package/dist/{import-xliONVib.js → import-DiMQCzLa.js} +3 -3
  170. package/dist/{import-xliONVib.js.map → import-DiMQCzLa.js.map} +1 -1
  171. package/dist/{index-1r_CskjU.d.ts → index--ZpnE3YT.d.cts} +3 -3
  172. package/dist/{index-DBklbaTp.d.cts → index-B5w7WlaU.d.cts} +5 -1
  173. package/dist/{index-DBklbaTp.d.ts → index-B5w7WlaU.d.ts} +5 -1
  174. package/dist/{index-C77vTm2K.d.ts → index-BDZvaRud.d.ts} +6 -6
  175. package/dist/{index-KuQ79Mnz.d.ts → index-BVhHt5lx.d.cts} +18 -26
  176. package/dist/{index-NC1dXRTD.d.ts → index-BfqkgPGI.d.cts} +7 -13
  177. package/dist/{index-NC1dXRTD.d.cts → index-BfqkgPGI.d.ts} +7 -13
  178. package/dist/{index-V7XKUQm9.d.cts → index-BgR5zcjJ.d.ts} +18 -26
  179. package/dist/{index-BK-qHT39.d.ts → index-ByRpNVcs.d.cts} +83 -17
  180. package/dist/{index-pXN4LWUX.d.ts → index-C11JSxBY.d.ts} +8 -11
  181. package/dist/{index-GjcJTCbz.d.cts → index-C4TNAA8-.d.cts} +8 -11
  182. package/dist/{index-BMqLPS6S.d.ts → index-CXcWpZQ2.d.cts} +4 -12
  183. package/dist/{index-BMqLPS6S.d.cts → index-CXcWpZQ2.d.ts} +4 -12
  184. package/dist/{index-GfKzh267.d.ts → index-CaaTOANF.d.ts} +395 -297
  185. package/dist/{index-Dx52hNLP.d.cts → index-CcMHJcuP.d.cts} +3 -3
  186. package/dist/{index-DVw4Av4b.d.cts → index-Cvbjp3jx.d.cts} +6 -6
  187. package/dist/{index-DppA4k3b.d.cts → index-Cz0MXhzs.d.cts} +5 -5
  188. package/dist/{index-6Xe81qN3.d.ts → index-D-VMgpGc.d.ts} +5 -5
  189. package/dist/{index-DWf6FXOr.d.cts → index-D7-o-oGa.d.ts} +3 -3
  190. package/dist/{index-CWoEnDJ_.d.cts → index-DCRKjihs.d.ts} +83 -17
  191. package/dist/{kaiAgentClient-CHpULyeG.d.cts → index-DNThyEej.d.cts} +14 -5
  192. package/dist/{index-DXSmFkol.d.cts → index-DOAZmWvh.d.cts} +6 -6
  193. package/dist/{index-BuegqrS1.d.ts → index-D_-4uQF8.d.ts} +3 -3
  194. package/dist/index-DbLFwXgb.d.cts +116 -0
  195. package/dist/{index-De5qUWhp.d.ts → index-DnQTuc6t.d.ts} +6 -6
  196. package/dist/{kaiAgentClient-B5L4gbQ1.d.ts → index-Qb7X6-ph.d.ts} +14 -5
  197. package/dist/{index-CHXnJQ9s.d.cts → index-cWp_V6K5.d.cts} +395 -297
  198. package/dist/index-rwK7GcB2.d.ts +116 -0
  199. package/dist/index.cjs +1498 -901
  200. package/dist/index.cjs.map +1 -1
  201. package/dist/index.d.cts +7 -7
  202. package/dist/index.d.ts +7 -7
  203. package/dist/index.js +1497 -902
  204. package/dist/index.js.map +1 -1
  205. package/dist/isLoginPageRedirect-XPwAOKK3.js +14 -0
  206. package/dist/isLoginPageRedirect-XPwAOKK3.js.map +1 -0
  207. package/dist/isLoginPageRedirect-jQHiLrG7.cjs +19 -0
  208. package/dist/isLoginPageRedirect-jQHiLrG7.cjs.map +1 -0
  209. package/dist/{jobStatus-0_Y3Sr4i.cjs → jobStatus-BMlsyXWI.cjs} +19 -45
  210. package/dist/jobStatus-BMlsyXWI.cjs.map +1 -0
  211. package/dist/{jobStatus-PSZJMTiA.js → jobStatus-CfRtsIpv.js} +19 -45
  212. package/dist/jobStatus-CfRtsIpv.js.map +1 -0
  213. package/dist/kaiAgent/index.cjs +1 -1
  214. package/dist/kaiAgent/index.d.cts +3 -2
  215. package/dist/kaiAgent/index.d.ts +3 -2
  216. package/dist/kaiAgent/index.js +1 -1
  217. package/dist/kaiAgent/types.d.cts +2 -2
  218. package/dist/kaiAgent/types.d.ts +2 -2
  219. package/dist/{kaiAgent-CcT2oNip.js → kaiAgent-Dp20HLTh.js} +32 -11
  220. package/dist/kaiAgent-Dp20HLTh.js.map +1 -0
  221. package/dist/{kaiAgent-DaB6UCsh.cjs → kaiAgent-QNoeVKPs.cjs} +32 -11
  222. package/dist/kaiAgent-QNoeVKPs.cjs.map +1 -0
  223. package/dist/kaiMemory-CClSPInt.cjs +289 -0
  224. package/dist/kaiMemory-CClSPInt.cjs.map +1 -0
  225. package/dist/kaiMemory-D0Y_16U4.js +260 -0
  226. package/dist/kaiMemory-D0Y_16U4.js.map +1 -0
  227. package/dist/management/index.cjs +1 -1
  228. package/dist/management/index.d.cts +1 -1
  229. package/dist/management/index.d.ts +1 -1
  230. package/dist/management/index.js +1 -1
  231. package/dist/management/types.d.cts +2 -2
  232. package/dist/management/types.d.ts +2 -2
  233. package/dist/{management-DeZiQSlw.cjs → management-CCY0IYnq.cjs} +59 -24
  234. package/dist/management-CCY0IYnq.cjs.map +1 -0
  235. package/dist/{management-ckdnu1dA.js → management-DvmPiG64.js} +59 -24
  236. package/dist/management-DvmPiG64.js.map +1 -0
  237. package/dist/metastore/index.cjs +1 -1
  238. package/dist/metastore/index.d.cts +1 -1
  239. package/dist/metastore/index.d.ts +1 -1
  240. package/dist/metastore/index.js +1 -1
  241. package/dist/metastore/types.d.cts +2 -2
  242. package/dist/metastore/types.d.ts +2 -2
  243. package/dist/{metastore-B0PolCjQ.js → metastore-BycJxe7A.js} +14 -8
  244. package/dist/metastore-BycJxe7A.js.map +1 -0
  245. package/dist/{metastore-9AGrwjmN.cjs → metastore-XtWciCZT.cjs} +14 -8
  246. package/dist/metastore-XtWciCZT.cjs.map +1 -0
  247. package/dist/microsoftGraph/index.cjs +2 -2
  248. package/dist/microsoftGraph/index.d.cts +2 -2
  249. package/dist/microsoftGraph/index.d.ts +2 -2
  250. package/dist/microsoftGraph/index.js +2 -2
  251. package/dist/microsoftGraph/types.d.cts +1 -1
  252. package/dist/microsoftGraph/types.d.ts +1 -1
  253. package/dist/middleware-CBwrtgQd.js +34 -0
  254. package/dist/middleware-CBwrtgQd.js.map +1 -0
  255. package/dist/middleware-IjYx3d5u.cjs +45 -0
  256. package/dist/middleware-IjYx3d5u.cjs.map +1 -0
  257. package/dist/notifications/index.cjs +4 -4
  258. package/dist/notifications/index.d.cts +2 -2
  259. package/dist/notifications/index.d.ts +2 -2
  260. package/dist/notifications/index.js +4 -4
  261. package/dist/notifications/types.d.cts +1 -1
  262. package/dist/notifications/types.d.ts +1 -1
  263. package/dist/oauth/index.cjs +1 -1
  264. package/dist/oauth/index.d.cts +2 -2
  265. package/dist/oauth/index.d.ts +2 -2
  266. package/dist/oauth/index.js +1 -1
  267. package/dist/oauth/types.d.cts +1 -1
  268. package/dist/oauth/types.d.ts +1 -1
  269. package/dist/{oauth-DNtv4Ihb.cjs → oauth--2p8jkJf.cjs} +5 -5
  270. package/dist/{oauth-DNtv4Ihb.cjs.map → oauth--2p8jkJf.cjs.map} +1 -1
  271. package/dist/{oauth-BnHVf4cB.js → oauth-l5zE39cD.js} +5 -5
  272. package/dist/{oauth-BnHVf4cB.js.map → oauth-l5zE39cD.js.map} +1 -1
  273. package/dist/omnisearch/index.cjs +6 -14
  274. package/dist/omnisearch/index.cjs.map +1 -1
  275. package/dist/omnisearch/index.d.cts +6 -14
  276. package/dist/omnisearch/index.d.ts +6 -14
  277. package/dist/omnisearch/index.js +6 -14
  278. package/dist/omnisearch/index.js.map +1 -1
  279. package/dist/omnisearch/types.d.cts +1 -1
  280. package/dist/omnisearch/types.d.ts +1 -1
  281. package/dist/{project-DCHOxRWd.d.ts → project-B15gStbM.d.ts} +2 -2
  282. package/dist/{project-BRpzv3yE.d.cts → project-cHKuGvqJ.d.cts} +2 -2
  283. package/dist/queryService/index.cjs +1 -1
  284. package/dist/queryService/index.d.cts +1 -1
  285. package/dist/queryService/index.d.ts +1 -1
  286. package/dist/queryService/index.js +1 -1
  287. package/dist/queryService/types.d.cts +1 -1
  288. package/dist/queryService/types.d.ts +1 -1
  289. package/dist/{queryService-j3XZ2mX6.js → queryService-CCOYbRbw.js} +6 -6
  290. package/dist/{queryService-j3XZ2mX6.js.map → queryService-CCOYbRbw.js.map} +1 -1
  291. package/dist/{queryService-BVwD6Vmc.cjs → queryService-CQzclHdL.cjs} +6 -6
  292. package/dist/{queryService-BVwD6Vmc.cjs.map → queryService-CQzclHdL.cjs.map} +1 -1
  293. package/dist/queue/index.cjs +1 -1
  294. package/dist/queue/index.d.cts +3 -3
  295. package/dist/queue/index.d.ts +3 -3
  296. package/dist/queue/index.js +1 -1
  297. package/dist/queue/types.d.cts +1 -1
  298. package/dist/queue/types.d.ts +1 -1
  299. package/dist/{queue-Dagl0sdP.js → queue-Cowbg6bR.js} +8 -11
  300. package/dist/queue-Cowbg6bR.js.map +1 -0
  301. package/dist/{queue-e3rMWbmK.cjs → queue-UG_BWKIC.cjs} +8 -11
  302. package/dist/queue-UG_BWKIC.cjs.map +1 -0
  303. package/dist/scheduler/index.cjs +4 -4
  304. package/dist/scheduler/index.d.cts +2 -2
  305. package/dist/scheduler/index.d.ts +2 -2
  306. package/dist/scheduler/index.js +4 -4
  307. package/dist/scheduler/types.d.cts +1 -1
  308. package/dist/scheduler/types.d.ts +1 -1
  309. package/dist/sdk/configurations/index.cjs +1 -1
  310. package/dist/sdk/configurations/index.d.cts +11 -11
  311. package/dist/sdk/configurations/index.d.ts +11 -11
  312. package/dist/sdk/configurations/index.js +1 -1
  313. package/dist/sdk/developerPortal/index.cjs +10 -18
  314. package/dist/sdk/developerPortal/index.cjs.map +1 -1
  315. package/dist/sdk/developerPortal/index.d.cts +7 -15
  316. package/dist/sdk/developerPortal/index.d.ts +7 -15
  317. package/dist/sdk/developerPortal/index.js +7 -15
  318. package/dist/sdk/developerPortal/index.js.map +1 -1
  319. package/dist/sdk/kaiMemory/index.cjs +7 -0
  320. package/dist/sdk/kaiMemory/index.d.cts +41 -0
  321. package/dist/sdk/kaiMemory/index.d.ts +41 -0
  322. package/dist/sdk/kaiMemory/index.js +2 -0
  323. package/dist/sdk/kaiMemory/types.cjs +0 -0
  324. package/dist/sdk/kaiMemory/types.d.cts +2 -0
  325. package/dist/sdk/kaiMemory/types.d.ts +2 -0
  326. package/dist/sdk/kaiMemory/types.js +1 -0
  327. package/dist/sdk/queryService/index.cjs +2 -2
  328. package/dist/sdk/queryService/index.d.cts +1 -1
  329. package/dist/sdk/queryService/index.d.ts +1 -1
  330. package/dist/sdk/queryService/index.js +2 -2
  331. package/dist/sdk/semanticLayer/index.cjs +1 -1
  332. package/dist/sdk/semanticLayer/index.d.cts +16 -40
  333. package/dist/sdk/semanticLayer/index.d.ts +16 -40
  334. package/dist/sdk/semanticLayer/index.js +1 -1
  335. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  336. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  337. package/dist/sdk/storage/index.cjs +0 -5
  338. package/dist/sdk/storage/index.cjs.map +1 -1
  339. package/dist/sdk/storage/index.d.cts +2 -2
  340. package/dist/sdk/storage/index.d.ts +2 -2
  341. package/dist/sdk/storage/index.js +1 -5
  342. package/dist/sdk/storage/index.js.map +1 -1
  343. package/dist/sdk/tag/index.cjs +1 -1
  344. package/dist/sdk/tag/index.d.cts +3 -3
  345. package/dist/sdk/tag/index.d.ts +3 -3
  346. package/dist/sdk/tag/index.js +1 -1
  347. package/dist/sdk/tag/types.d.cts +1 -1
  348. package/dist/sdk/tag/types.d.ts +1 -1
  349. package/dist/sdk/vault/index.cjs +1 -1
  350. package/dist/sdk/vault/index.d.cts +1 -1
  351. package/dist/sdk/vault/index.d.ts +1 -1
  352. package/dist/sdk/vault/index.js +1 -1
  353. package/dist/{semanticLayer-9uTaU7UT.cjs → semanticLayer-CKDVkU56.cjs} +62 -183
  354. package/dist/semanticLayer-CKDVkU56.cjs.map +1 -0
  355. package/dist/{semanticLayer-6_gtFxDu.js → semanticLayer-pYy082Ju.js} +62 -183
  356. package/dist/semanticLayer-pYy082Ju.js.map +1 -0
  357. package/dist/status/index.cjs +1 -1
  358. package/dist/status/index.d.cts +1 -1
  359. package/dist/status/index.d.ts +1 -1
  360. package/dist/status/index.js +1 -1
  361. package/dist/storage/index.cjs +5 -5
  362. package/dist/storage/index.d.cts +2 -2
  363. package/dist/storage/index.d.ts +2 -2
  364. package/dist/storage/index.js +5 -5
  365. package/dist/storage/types.d.cts +2 -2
  366. package/dist/storage/types.d.ts +2 -2
  367. package/dist/{storage-Ob1LUIDq.js → storage-CZQHZcXG.js} +109 -302
  368. package/dist/storage-CZQHZcXG.js.map +1 -0
  369. package/dist/{storage-HFUdEy7P.cjs → storage-JinL1y1s.cjs} +109 -302
  370. package/dist/storage-JinL1y1s.cjs.map +1 -0
  371. package/dist/stream/index.cjs +3 -3
  372. package/dist/stream/index.d.cts +2 -2
  373. package/dist/stream/index.d.ts +2 -2
  374. package/dist/stream/index.js +3 -3
  375. package/dist/stream/types.d.cts +1 -1
  376. package/dist/stream/types.d.ts +1 -1
  377. package/dist/syncActions/index.cjs +1 -1
  378. package/dist/syncActions/index.d.cts +1 -1
  379. package/dist/syncActions/index.d.ts +1 -1
  380. package/dist/syncActions/index.js +1 -1
  381. package/dist/syncActions/types.d.cts +2 -2
  382. package/dist/syncActions/types.d.ts +2 -2
  383. package/dist/{syncActions-B3NS5a0g.js → syncActions-ChNWuhYA.js} +260 -111
  384. package/dist/syncActions-ChNWuhYA.js.map +1 -0
  385. package/dist/{syncActions-D2DhY6pP.cjs → syncActions-mFlF16cl.cjs} +260 -111
  386. package/dist/syncActions-mFlF16cl.cjs.map +1 -0
  387. package/dist/{tag-CsoOZWB_.cjs → tag-DHS_soa7.cjs} +2 -2
  388. package/dist/{tag-CsoOZWB_.cjs.map → tag-DHS_soa7.cjs.map} +1 -1
  389. package/dist/{tag-DCsoewjL.js → tag-hh-1nhNr.js} +2 -2
  390. package/dist/{tag-DCsoewjL.js.map → tag-hh-1nhNr.js.map} +1 -1
  391. package/dist/telemetry/index.cjs +7 -11
  392. package/dist/telemetry/index.cjs.map +1 -1
  393. package/dist/telemetry/index.d.cts +5 -9
  394. package/dist/telemetry/index.d.ts +5 -9
  395. package/dist/telemetry/index.js +7 -11
  396. package/dist/telemetry/index.js.map +1 -1
  397. package/dist/telemetry/types.d.cts +1 -1
  398. package/dist/telemetry/types.d.ts +1 -1
  399. package/dist/{types-DqxIx9Pi.d.cts → types-6kuMW4JW.d.cts} +2 -2
  400. package/dist/{types-Ct0YPy2w.d.ts → types-B2w2TtSA.d.ts} +3 -3
  401. package/dist/{types-M46WuBSm.d.cts → types-B61aCifg.d.cts} +2 -2
  402. package/dist/{types-COL1kVEB.d.cts → types-B8N_k79M.d.cts} +2 -2
  403. package/dist/{types-Jw10xuOW.d.cts → types-BIECJYun.d.ts} +171 -44
  404. package/dist/{types-DZk3XHiN.d.cts → types-BLNB882w.d.cts} +3 -3
  405. package/dist/{types-BEe50G2r.d.cts → types-BPy5Ozee.d.cts} +2 -2
  406. package/dist/{types-gi4Eay19.d.ts → types-BS4jwuMi.d.ts} +7 -15
  407. package/dist/{types-BrYkBQo4.d.ts → types-BTK7Bv3n.d.cts} +171 -44
  408. package/dist/{types-D6UmMa6E.d.ts → types-BZDV8DZk.d.ts} +3 -3
  409. package/dist/{types-Cz83RiVu.d.cts → types-B_iLJlp4.d.ts} +255 -12
  410. package/dist/{types-CmF3pR2n.d.cts → types-BiMahEK8.d.cts} +91 -237
  411. package/dist/{types-BH5LLeJy.d.ts → types-Bl03Cg2n.d.cts} +255 -12
  412. package/dist/{types-bGQb4Jtl.d.cts → types-ByLH46Dt.d.cts} +13 -8
  413. package/dist/{types-g3vU7hcg.d.cts → types-Bydx6ga_.d.cts} +2 -2
  414. package/dist/{types-B95uNQ9o.d.ts → types-CKmTZSPG.d.ts} +91 -237
  415. package/dist/{types-D_j2Uq5X.d.cts → types-CMzQSHAQ.d.cts} +3 -3
  416. package/dist/{types-N3EChotg.d.cts → types-CP_LBmw3.d.cts} +2 -2
  417. package/dist/{types-CW6lCqrC.d.cts → types-CQFOCQzk.d.ts} +230 -43
  418. package/dist/{types-zZBxJ0P-.d.ts → types-CWyXTMwy.d.ts} +2 -2
  419. package/dist/{types-CPB-eF82.d.ts → types-CZJlLCbA.d.ts} +2 -2
  420. package/dist/{types-l9o4gFsI.d.ts → types-CZXPu3gn.d.ts} +2 -2
  421. package/dist/{types-BztF4HeB.d.ts → types-CaOtNjSZ.d.ts} +6 -13
  422. package/dist/{types-BTWIPEiU.d.ts → types-CfwqVkEA.d.ts} +2 -2
  423. package/dist/types-Cg14ncdV.d.ts +63 -0
  424. package/dist/{types-BsxLGDoC.d.cts → types-CoJVrRAD.d.ts} +2 -2
  425. package/dist/{types-DYzJ6K2e.d.ts → types-CqwHP7mN.d.cts} +230 -43
  426. package/dist/{types-CKiW3n6v.d.ts → types-D3wcs4tp.d.ts} +2 -2
  427. package/dist/{types-DOyNe7oe.d.cts → types-DDOa07rU.d.cts} +7 -15
  428. package/dist/{types-BW2BXUB4.d.cts → types-DE9hgr7i.d.cts} +2 -2
  429. package/dist/{types-BOqD3Hqy.d.cts → types-DEzW1CfI.d.cts} +3 -3
  430. package/dist/{types-OaD-cbbl.d.ts → types-DIiOMV-t.d.ts} +3 -3
  431. package/dist/{types-B-P4vQe0.d.cts → types-DKc1gmd9.d.ts} +857 -131
  432. package/dist/{types-BrPlv-NS.d.ts → types-DRCMBt89.d.ts} +3 -3
  433. package/dist/{types-BQvv4RaI.d.cts → types-DUMal2E-.d.cts} +5 -8
  434. package/dist/types-DWiLcrxt.d.cts +63 -0
  435. package/dist/{types-DNxOHnZI.d.cts → types-Dd31Lw4S.d.cts} +2 -2
  436. package/dist/{types-Dmu-8g4O.d.ts → types-DekYAlA-.d.ts} +3 -3
  437. package/dist/{types-B2U9cFcx.d.ts → types-DgJeO9Nd.d.ts} +2 -2
  438. package/dist/{types-nrviNdzZ.d.ts → types-DicSaNwq.d.ts} +2 -2
  439. package/dist/{types-Crhy0c9m.d.cts → types-DinIJ1D_.d.cts} +40 -11
  440. package/dist/{types-DhDNS-5B.d.ts → types-DlQw6FCi.d.ts} +13 -8
  441. package/dist/{types-_RhBCj4_.d.cts → types-DoZtE9tz.d.cts} +3 -3
  442. package/dist/{types-Bxhh2SJr.d.ts → types-DrvKfXXd.d.cts} +2 -2
  443. package/dist/{types-DPl8pZsY.d.ts → types-Dtuvhm3K.d.cts} +857 -131
  444. package/dist/{types-CcrvrAJX.d.ts → types-DwVSj-Da.d.ts} +5 -8
  445. package/dist/{types-C2vefB4D.d.ts → types-FwRmjsNN.d.ts} +10 -34
  446. package/dist/{types-C0_2KZ-A.d.ts → types-RbrfiY8T.d.ts} +2 -2
  447. package/dist/{types-DfvdbRPL.d.ts → types-WZBztugL.d.ts} +2 -2
  448. package/dist/{types-52irAt99.d.cts → types-YHUEArkR.d.cts} +2 -2
  449. package/dist/{types-fX4gbxfV.d.cts → types-bc-4z_gc.d.cts} +10 -34
  450. package/dist/{types-3eUgOA7I.d.cts → types-ePSqbXRr.d.cts} +6 -13
  451. package/dist/{types-DrqKICcK.d.ts → types-n4PTnLii.d.ts} +40 -11
  452. package/dist/{types-DXskkNp8.d.cts → types-pvQzbgNE.d.cts} +3 -3
  453. package/dist/{types-DajzGOKB.d.ts → types-q-1r_9d1.d.ts} +2 -2
  454. package/dist/{types-D8Rrz51O.d.cts → types-tKkeLa2B.d.cts} +2 -2
  455. package/dist/{validateConnectionStatus-828HV8WL.js → validateConnectionStatus-BEGu8wXT.js} +6 -10
  456. package/dist/validateConnectionStatus-BEGu8wXT.js.map +1 -0
  457. package/dist/{validateConnectionStatus-CvBKyeDO.cjs → validateConnectionStatus-BEYkQpu9.cjs} +6 -10
  458. package/dist/validateConnectionStatus-BEYkQpu9.cjs.map +1 -0
  459. package/dist/vault/index.cjs +4 -4
  460. package/dist/vault/index.d.cts +1 -1
  461. package/dist/vault/index.d.ts +1 -1
  462. package/dist/vault/index.js +4 -4
  463. package/dist/vault/types.d.cts +1 -1
  464. package/dist/vault/types.d.ts +1 -1
  465. package/package.json +32 -4
  466. package/surface/apps.md +3 -3
  467. package/surface/auth.md +13 -6
  468. package/surface/chat.md +6 -6
  469. package/surface/kaiAgent.md +9 -8
  470. package/surface/management.md +14 -5
  471. package/surface/metastore.md +2 -2
  472. package/surface/queue.md +3 -3
  473. package/surface/sdk.md +13 -3
  474. package/surface/storage.md +6 -6
  475. package/surface/syncActions.md +16 -0
  476. package/dist/ValidationError-BekhphAq.js +0 -48
  477. package/dist/ValidationError-BekhphAq.js.map +0 -1
  478. package/dist/ValidationError-CLVJCCwH.cjs.map +0 -1
  479. package/dist/authClient-8yU1last.cjs.map +0 -1
  480. package/dist/authClient-BTo4Afm6.js.map +0 -1
  481. package/dist/componentId-DkyQ8PM0.cjs.map +0 -1
  482. package/dist/componentId-vJz-kWs6.js.map +0 -1
  483. package/dist/concurrent-CH9fbNr3.js.map +0 -1
  484. package/dist/concurrent-tbiIa0UL.cjs.map +0 -1
  485. package/dist/configurations-BVvcimzo.js.map +0 -1
  486. package/dist/configurations-CyFF9Dtu.cjs.map +0 -1
  487. package/dist/configurations-VtNE0nrT.js.map +0 -1
  488. package/dist/configurations-zkNjr73Q.cjs.map +0 -1
  489. package/dist/createFetchClient-BlgPbjFj.cjs.map +0 -1
  490. package/dist/createFetchClient-C-cadpBx.js.map +0 -1
  491. package/dist/credential-CAulvfZ-.cjs +0 -47
  492. package/dist/credential-CAulvfZ-.cjs.map +0 -1
  493. package/dist/credential-DWXbo4IX.js +0 -36
  494. package/dist/credential-DWXbo4IX.js.map +0 -1
  495. package/dist/dedupe-CiskLkGR.cjs +0 -30
  496. package/dist/dedupe-CiskLkGR.cjs.map +0 -1
  497. package/dist/dedupe-DYIHgZoG.js +0 -25
  498. package/dist/dedupe-DYIHgZoG.js.map +0 -1
  499. package/dist/index-3LUk2rpD.d.ts +0 -65
  500. package/dist/index-CW3Pj7DY.d.cts +0 -65
  501. package/dist/isLoginPageRedirect-Cm6Pn8Pj.cjs +0 -25
  502. package/dist/isLoginPageRedirect-Cm6Pn8Pj.cjs.map +0 -1
  503. package/dist/isLoginPageRedirect-hyPqyWNX.js +0 -20
  504. package/dist/isLoginPageRedirect-hyPqyWNX.js.map +0 -1
  505. package/dist/jobStatus-0_Y3Sr4i.cjs.map +0 -1
  506. package/dist/jobStatus-PSZJMTiA.js.map +0 -1
  507. package/dist/kaiAgent-CcT2oNip.js.map +0 -1
  508. package/dist/kaiAgent-DaB6UCsh.cjs.map +0 -1
  509. package/dist/management-DeZiQSlw.cjs.map +0 -1
  510. package/dist/management-ckdnu1dA.js.map +0 -1
  511. package/dist/metastore-9AGrwjmN.cjs.map +0 -1
  512. package/dist/metastore-B0PolCjQ.js.map +0 -1
  513. package/dist/queue-Dagl0sdP.js.map +0 -1
  514. package/dist/queue-e3rMWbmK.cjs.map +0 -1
  515. package/dist/semanticLayer-6_gtFxDu.js.map +0 -1
  516. package/dist/semanticLayer-9uTaU7UT.cjs.map +0 -1
  517. package/dist/storage-HFUdEy7P.cjs.map +0 -1
  518. package/dist/storage-Ob1LUIDq.js.map +0 -1
  519. package/dist/syncActions-B3NS5a0g.js.map +0 -1
  520. package/dist/syncActions-D2DhY6pP.cjs.map +0 -1
  521. package/dist/validateConnectionStatus-828HV8WL.js.map +0 -1
  522. package/dist/validateConnectionStatus-CvBKyeDO.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/clients/chat/chatClient.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { KeboolaHttpHeader } from '../../internal';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from './suggestions';\nimport { suggestionsApiResponseSchema } from './suggestions';\nimport type {\n AgentSettings,\n ChatRequest,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n ToolsListResponse,\n UpdateAgentSettingsRequest,\n UpdateUserAgentSettingsRequest,\n UsageResponse,\n UserAgentSettings,\n Vote,\n VoteRequest,\n} from './types';\n\nconst agentSettingsSchema = z.object({\n projectId: z.string(),\n customInstructions: z.string().nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolPermissionValueSchema = z.enum(['always_allow', 'always_ask', 'blocked']);\n\nconst userAgentSettingsSchema = z.object({\n projectId: z.string(),\n userId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), toolPermissionValueSchema).nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolInfoSchema = z.object({\n name: z.string(),\n description: z.string(),\n readOnly: z.boolean(),\n});\n\nconst toolsListResponseSchema = z.object({\n tools: z.array(toolInfoSchema),\n});\n\nconst votesResponseSchema = z.array(\n z.object({\n chatId: z.string(),\n messageId: z.string(),\n isUpvoted: z.boolean(),\n }),\n);\n\ntype ChatClientOptions = ClientInitOptions & {\n storageApiUrl: string;\n};\n\nexport const createChatClient = ({\n baseUrl,\n middlewares,\n storageApiUrl,\n auth,\n}: ChatClientOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n headers: new Headers({\n [KeboolaHttpHeader.STORAGE_API_URL]: storageApiUrl,\n ...createAuthHeaders(auth),\n }),\n middlewares,\n });\n\n const getHistory = async (params?: GetHistoryQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/history', { query: params }, { signal });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/chat', { query: { id: chatId } });\n return data;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']): Promise<Vote[]> => {\n const { data } = await client.get('/vote', { query: { chatId } });\n\n const result = votesResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid votes response format');\n }\n\n return result.data;\n };\n\n const submitVote = async (params: VoteRequest) => {\n await client.patch('/vote', { body: params });\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/chat', { body: request });\n return response;\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/usage', {}, { signal });\n return data;\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await client.post('/suggestions', { body: request }, { signal });\n\n const result = suggestionsApiResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid suggestions response format');\n }\n\n return result.data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await client.get('/settings', {}, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateAgentSettings = async (\n request: UpdateAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await client.patch('/settings', { body: request }, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const getUserAgentSettings = async (signal?: AbortSignal): Promise<UserAgentSettings> => {\n const { data } = await client.get('/settings/user', {}, { signal });\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const updateUserAgentSettings = async (\n request: UpdateUserAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<UserAgentSettings> => {\n const { data } = await client.patch('/settings/user', { body: request }, { signal });\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await client.get('/settings/tools', {}, { signal });\n const result = toolsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid tools list response format');\n }\n return result.data;\n };\n\n // `/ping` is the only public probe here: `/health-check` and `/health` both 401.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/ping', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n getHistory,\n getChat,\n deleteChat,\n createChat,\n getVotes,\n submitVote,\n getUsage,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n getUserAgentSettings,\n updateUserAgentSettings,\n getToolsList,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/clients/chat/chatClient.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { KeboolaHttpHeader } from '../../internal';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from './suggestions';\nimport { suggestionsApiResponseSchema } from './suggestions';\nimport type {\n AgentSettings,\n ChatRequest,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n ProjectToolPolicyValue,\n ToolsListResponse,\n UpdateAgentSettingsRequest,\n UpdateUserAgentSettingsRequest,\n UsageResponse,\n UserAgentSettings,\n Vote,\n VoteRequest,\n} from './types';\n\nconst projectToolPolicyValueSchema: z.ZodType<ProjectToolPolicyValue> = z.enum([\n 'blocked',\n 'always_ask',\n]);\n\nconst agentSettingsSchema = z.object({\n projectId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), projectToolPolicyValueSchema).nullable().optional(),\n canWriteToolPolicy: z.boolean().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolPermissionValueSchema = z.enum(['always_allow', 'always_ask', 'blocked']);\n\nconst userAgentSettingsSchema = z.object({\n projectId: z.string(),\n userId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), toolPermissionValueSchema).nullable(),\n projectToolPermissions: z.record(z.string(), projectToolPolicyValueSchema).nullable().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolInfoSchema = z.object({\n name: z.string(),\n description: z.string(),\n readOnly: z.boolean(),\n});\n\nconst toolsListResponseSchema = z.object({\n tools: z.array(toolInfoSchema),\n});\n\nconst votesResponseSchema = z.array(\n z.object({\n chatId: z.string(),\n messageId: z.string(),\n isUpvoted: z.boolean(),\n }),\n);\n\ntype ChatClientOptions = ClientInitOptions & {\n storageApiUrl: string;\n};\n\nexport const createChatClient = ({\n baseUrl,\n middlewares,\n storageApiUrl,\n auth,\n}: ChatClientOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n headers: new Headers({\n [KeboolaHttpHeader.STORAGE_API_URL]: storageApiUrl,\n ...createAuthHeaders(auth),\n }),\n middlewares,\n });\n\n const getHistory = async (params?: GetHistoryQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/history', { query: params }, { signal });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/chat', { query: { id: chatId } });\n return data;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']): Promise<Vote[]> => {\n const { data } = await client.get('/vote', { query: { chatId } });\n\n const result = votesResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid votes response format');\n }\n\n return result.data;\n };\n\n const submitVote = async (params: VoteRequest) => {\n await client.patch('/vote', { body: params });\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/chat', { body: request });\n return response;\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/usage', {}, { signal });\n return data;\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await client.post('/suggestions', { body: request }, { signal });\n\n const result = suggestionsApiResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid suggestions response format');\n }\n\n return result.data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await client.get('/settings', {}, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateAgentSettings = async (\n request: UpdateAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await client.patch('/settings', { body: request }, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const getUserAgentSettings = async (signal?: AbortSignal): Promise<UserAgentSettings> => {\n const { data } = await client.get('/settings/user', {}, { signal });\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const updateUserAgentSettings = async (\n request: UpdateUserAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<UserAgentSettings> => {\n const { data } = await client.patch('/settings/user', { body: request }, { signal });\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await client.get('/settings/tools', {}, { signal });\n const result = toolsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid tools list response format');\n }\n return result.data;\n };\n\n // `/ping` is the only public probe here: `/health-check` and `/health` both 401.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/ping', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n getHistory,\n getChat,\n deleteChat,\n createChat,\n getVotes,\n submitVote,\n getUsage,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n getUserAgentSettings,\n updateUserAgentSettings,\n getToolsList,\n };\n};\n"],"mappings":"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"}
@@ -5,9 +5,7 @@ const askUserQuestionAnswersSchema = zod.z.record(zod.z.string(), zod.z.string()
5
5
  /**
6
6
  * Why an approval slot the client posted to is gone.
7
7
  *
8
- * - kai-agent keeps a tombstone per removed slot and returns the reason as the
9
- * error envelope's `subtype` on a 409.
10
- * - A 404 means no tombstone either — the toolUseId was never registered.
8
+ * - Sent as the error envelope's `subtype` on a 409; a 404 means the toolUseId was never registered.
11
9
  * - `resolved` is benign: the decision was already recorded (double-click).
12
10
  * - `timed_out` / `swept` are genuine expiry — the run is dead.
13
11
  * - `chat_cancelled` / `shutdown` are server-side teardown, not user inaction.
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","names":["z"],"sources":["../../src/clients/chat/types.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport type {\n OpenapiBodyType,\n OpenapiPathType,\n OpenapiQueryType,\n OpenapiReturnType,\n} from '../../fetchClient';\n\nimport type { components, paths } from './__generated__/schema';\n\n// Wire-format answer map produced by the AskUserQuestion approval flow.\n// Keys are full question text; values are user-selected labels (multi-select\n// joined with \", \"). Shared between kbc-ui (sender) and kai-agent (receiver).\nexport const askUserQuestionAnswersSchema = z.record(z.string(), z.string());\nexport type AskUserQuestionAnswers = z.Infer<typeof askUserQuestionAnswersSchema>;\n\n/**\n * Why an approval slot the client posted to is gone.\n *\n * - kai-agent keeps a tombstone per removed slot and returns the reason as the\n * error envelope's `subtype` on a 409.\n * - A 404 means no tombstone either — the toolUseId was never registered.\n * - `resolved` is benign: the decision was already recorded (double-click).\n * - `timed_out` / `swept` are genuine expiry — the run is dead.\n * - `chat_cancelled` / `shutdown` are server-side teardown, not user inaction.\n */\nexport const approvalGoneReasonSchema = z.enum([\n 'resolved',\n 'timed_out',\n 'chat_cancelled',\n 'swept',\n 'shutdown',\n]);\nexport type ApprovalGoneReason = z.Infer<typeof approvalGoneReasonSchema>;\n\n// Query Types\nexport type GetHistoryQuery = OpenapiQueryType<paths['/history']['get']>;\nexport type GetVotesQuery = OpenapiQueryType<paths['/vote']['get']>;\n\n// Path Types\nexport type GetChatPath = OpenapiPathType<paths['/chat/{id}']['get']>;\n\n// Body Types\nexport type VoteRequest = OpenapiBodyType<paths['/vote']['patch']>;\nexport type ChatRequest = OpenapiBodyType<paths['/chat']['post']>;\n\n// Return Types\nexport type HistoryResponse = OpenapiReturnType<paths['/history']['get']>;\nexport type ChatWithMessages = OpenapiReturnType<paths['/chat/{id}']['get']>;\nexport type VotesResponse = OpenapiReturnType<paths['/vote']['get']>;\nexport type UsageResponse = OpenapiReturnType<paths['/usage']['get']>;\n\n// Schema Types\nexport type Chat = components['schemas']['Chat'];\nexport type Vote = VotesResponse[number];\nexport type ChatWithMessage = components['schemas']['ChatWithMessages'];\nexport type ChatMessage = ChatWithMessage['messages'][number];\nexport type UserMessage = components['schemas']['Message'];\nexport type TextPart = UserMessage['parts'][number];\nexport type MessageStatus = NonNullable<UserMessage['status']>;\nexport type AgentSettings = components['schemas']['AgentSettings'];\nexport type UpdateAgentSettingsRequest = components['schemas']['UpdateAgentSettingsRequest'];\nexport type UserAgentSettings = components['schemas']['UserAgentSettings'];\nexport type UpdateUserAgentSettingsRequest =\n components['schemas']['UpdateUserAgentSettingsRequest'];\nexport type ToolPermissionValue = components['schemas']['ToolPermissionValue'];\nexport type ToolInfo = components['schemas']['ToolInfo'];\nexport type ToolsListResponse = components['schemas']['ToolsListResponse'];\n"],"mappings":";;;AAcA,MAAa,+BAA+BA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,OAAO,CAAC;;;;;;;;;;;AAa3E,MAAa,2BAA2BA,IAAAA,EAAE,KAAK;CAC7C;CACA;CACA;CACA;CACA;AACF,CAAC"}
1
+ {"version":3,"file":"types.cjs","names":["z"],"sources":["../../src/clients/chat/types.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport type {\n OpenapiBodyType,\n OpenapiPathType,\n OpenapiQueryType,\n OpenapiReturnType,\n} from '../../fetchClient';\n\nimport type { components, paths } from './__generated__/schema';\n\nexport type ProjectToolPolicyValue = 'blocked' | 'always_ask';\nexport type ProjectToolPolicy = Record<string, ProjectToolPolicyValue>;\n\n// AskUserQuestion answers: question text → selected labels (multi-select joined with \", \").\n// Shared by kbc-ui (sender) and kai-agent (receiver).\nexport const askUserQuestionAnswersSchema = z.record(z.string(), z.string());\nexport type AskUserQuestionAnswers = z.Infer<typeof askUserQuestionAnswersSchema>;\n\n/**\n * Why an approval slot the client posted to is gone.\n *\n * - Sent as the error envelope's `subtype` on a 409; a 404 means the toolUseId was never registered.\n * - `resolved` is benign: the decision was already recorded (double-click).\n * - `timed_out` / `swept` are genuine expiry — the run is dead.\n * - `chat_cancelled` / `shutdown` are server-side teardown, not user inaction.\n */\nexport const approvalGoneReasonSchema = z.enum([\n 'resolved',\n 'timed_out',\n 'chat_cancelled',\n 'swept',\n 'shutdown',\n]);\nexport type ApprovalGoneReason = z.Infer<typeof approvalGoneReasonSchema>;\n\nexport type GetHistoryQuery = OpenapiQueryType<paths['/history']['get']>;\nexport type GetVotesQuery = OpenapiQueryType<paths['/vote']['get']>;\n\nexport type GetChatPath = OpenapiPathType<paths['/chat/{id}']['get']>;\n\nexport type VoteRequest = OpenapiBodyType<paths['/vote']['patch']>;\nexport type ChatRequest = OpenapiBodyType<paths['/chat']['post']>;\n\nexport type HistoryResponse = OpenapiReturnType<paths['/history']['get']>;\nexport type ChatWithMessages = OpenapiReturnType<paths['/chat/{id}']['get']>;\nexport type VotesResponse = OpenapiReturnType<paths['/vote']['get']>;\nexport type UsageResponse = OpenapiReturnType<paths['/usage']['get']>;\n\nexport type Chat = components['schemas']['Chat'];\nexport type Vote = VotesResponse[number];\nexport type ChatWithMessage = components['schemas']['ChatWithMessages'];\nexport type ChatMessage = ChatWithMessage['messages'][number];\nexport type UserMessage = components['schemas']['Message'];\nexport type TextPart = UserMessage['parts'][number];\nexport type MessageStatus = NonNullable<UserMessage['status']>;\nexport type AgentSettings = components['schemas']['AgentSettings'] & {\n toolPermissions?: ProjectToolPolicy | null;\n canWriteToolPolicy?: boolean;\n};\nexport type UpdateAgentSettingsRequest = components['schemas']['UpdateAgentSettingsRequest'];\nexport type UserAgentSettings = components['schemas']['UserAgentSettings'] & {\n projectToolPermissions?: ProjectToolPolicy | null;\n};\nexport type UpdateUserAgentSettingsRequest =\n components['schemas']['UpdateUserAgentSettingsRequest'];\nexport type ToolPermissionValue = components['schemas']['ToolPermissionValue'];\nexport type ToolInfo = components['schemas']['ToolInfo'];\nexport type ToolsListResponse = components['schemas']['ToolsListResponse'];\n"],"mappings":";;;AAgBA,MAAa,+BAA+BA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,OAAO,CAAC;;;;;;;;;AAW3E,MAAa,2BAA2BA,IAAAA,EAAE,KAAK;CAC7C;CACA;CACA;CACA;CACA;AACF,CAAC"}
@@ -1,2 +1,2 @@
1
- import { C as Vote, D as askUserQuestionAnswersSchema, E as approvalGoneReasonSchema, S as UserMessage, T as VotesResponse, _ as ToolsListResponse, a as ChatMessage, b as UsageResponse, c as ChatWithMessages, d as GetVotesQuery, f as HistoryResponse, g as ToolPermissionValue, h as ToolInfo, i as Chat, l as GetChatPath, m as TextPart, n as ApprovalGoneReason, o as ChatRequest, p as MessageStatus, r as AskUserQuestionAnswers, s as ChatWithMessage, t as AgentSettings, u as GetHistoryQuery, v as UpdateAgentSettingsRequest, w as VoteRequest, x as UserAgentSettings, y as UpdateUserAgentSettingsRequest } from "../types-bGQb4Jtl.cjs";
2
- export { AgentSettings, ApprovalGoneReason, AskUserQuestionAnswers, Chat, ChatMessage, ChatRequest, ChatWithMessage, ChatWithMessages, GetChatPath, GetHistoryQuery, GetVotesQuery, HistoryResponse, MessageStatus, TextPart, ToolInfo, ToolPermissionValue, ToolsListResponse, UpdateAgentSettingsRequest, UpdateUserAgentSettingsRequest, UsageResponse, UserAgentSettings, UserMessage, Vote, VoteRequest, VotesResponse, approvalGoneReasonSchema, askUserQuestionAnswersSchema };
1
+ import { C as UserAgentSettings, D as VotesResponse, E as VoteRequest, O as approvalGoneReasonSchema, S as UsageResponse, T as Vote, _ as ToolInfo, a as ChatMessage, b as UpdateAgentSettingsRequest, c as ChatWithMessages, d as GetVotesQuery, f as HistoryResponse, g as TextPart, h as ProjectToolPolicyValue, i as Chat, k as askUserQuestionAnswersSchema, l as GetChatPath, m as ProjectToolPolicy, n as ApprovalGoneReason, o as ChatRequest, p as MessageStatus, r as AskUserQuestionAnswers, s as ChatWithMessage, t as AgentSettings, u as GetHistoryQuery, v as ToolPermissionValue, w as UserMessage, x as UpdateUserAgentSettingsRequest, y as ToolsListResponse } from "../types-ByLH46Dt.cjs";
2
+ export { AgentSettings, ApprovalGoneReason, AskUserQuestionAnswers, Chat, ChatMessage, ChatRequest, ChatWithMessage, ChatWithMessages, GetChatPath, GetHistoryQuery, GetVotesQuery, HistoryResponse, MessageStatus, ProjectToolPolicy, ProjectToolPolicyValue, TextPart, ToolInfo, ToolPermissionValue, ToolsListResponse, UpdateAgentSettingsRequest, UpdateUserAgentSettingsRequest, UsageResponse, UserAgentSettings, UserMessage, Vote, VoteRequest, VotesResponse, approvalGoneReasonSchema, askUserQuestionAnswersSchema };
@@ -1,2 +1,2 @@
1
- import { C as Vote, D as askUserQuestionAnswersSchema, E as approvalGoneReasonSchema, S as UserMessage, T as VotesResponse, _ as ToolsListResponse, a as ChatMessage, b as UsageResponse, c as ChatWithMessages, d as GetVotesQuery, f as HistoryResponse, g as ToolPermissionValue, h as ToolInfo, i as Chat, l as GetChatPath, m as TextPart, n as ApprovalGoneReason, o as ChatRequest, p as MessageStatus, r as AskUserQuestionAnswers, s as ChatWithMessage, t as AgentSettings, u as GetHistoryQuery, v as UpdateAgentSettingsRequest, w as VoteRequest, x as UserAgentSettings, y as UpdateUserAgentSettingsRequest } from "../types-DhDNS-5B.js";
2
- export { AgentSettings, ApprovalGoneReason, AskUserQuestionAnswers, Chat, ChatMessage, ChatRequest, ChatWithMessage, ChatWithMessages, GetChatPath, GetHistoryQuery, GetVotesQuery, HistoryResponse, MessageStatus, TextPart, ToolInfo, ToolPermissionValue, ToolsListResponse, UpdateAgentSettingsRequest, UpdateUserAgentSettingsRequest, UsageResponse, UserAgentSettings, UserMessage, Vote, VoteRequest, VotesResponse, approvalGoneReasonSchema, askUserQuestionAnswersSchema };
1
+ import { C as UserAgentSettings, D as VotesResponse, E as VoteRequest, O as approvalGoneReasonSchema, S as UsageResponse, T as Vote, _ as ToolInfo, a as ChatMessage, b as UpdateAgentSettingsRequest, c as ChatWithMessages, d as GetVotesQuery, f as HistoryResponse, g as TextPart, h as ProjectToolPolicyValue, i as Chat, k as askUserQuestionAnswersSchema, l as GetChatPath, m as ProjectToolPolicy, n as ApprovalGoneReason, o as ChatRequest, p as MessageStatus, r as AskUserQuestionAnswers, s as ChatWithMessage, t as AgentSettings, u as GetHistoryQuery, v as ToolPermissionValue, w as UserMessage, x as UpdateUserAgentSettingsRequest, y as ToolsListResponse } from "../types-DlQw6FCi.js";
2
+ export { AgentSettings, ApprovalGoneReason, AskUserQuestionAnswers, Chat, ChatMessage, ChatRequest, ChatWithMessage, ChatWithMessages, GetChatPath, GetHistoryQuery, GetVotesQuery, HistoryResponse, MessageStatus, ProjectToolPolicy, ProjectToolPolicyValue, TextPart, ToolInfo, ToolPermissionValue, ToolsListResponse, UpdateAgentSettingsRequest, UpdateUserAgentSettingsRequest, UsageResponse, UserAgentSettings, UserMessage, Vote, VoteRequest, VotesResponse, approvalGoneReasonSchema, askUserQuestionAnswersSchema };
@@ -4,9 +4,7 @@ const askUserQuestionAnswersSchema = z.record(z.string(), z.string());
4
4
  /**
5
5
  * Why an approval slot the client posted to is gone.
6
6
  *
7
- * - kai-agent keeps a tombstone per removed slot and returns the reason as the
8
- * error envelope's `subtype` on a 409.
9
- * - A 404 means no tombstone either — the toolUseId was never registered.
7
+ * - Sent as the error envelope's `subtype` on a 409; a 404 means the toolUseId was never registered.
10
8
  * - `resolved` is benign: the decision was already recorded (double-click).
11
9
  * - `timed_out` / `swept` are genuine expiry — the run is dead.
12
10
  * - `chat_cancelled` / `shutdown` are server-side teardown, not user inaction.
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/clients/chat/types.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport type {\n OpenapiBodyType,\n OpenapiPathType,\n OpenapiQueryType,\n OpenapiReturnType,\n} from '../../fetchClient';\n\nimport type { components, paths } from './__generated__/schema';\n\n// Wire-format answer map produced by the AskUserQuestion approval flow.\n// Keys are full question text; values are user-selected labels (multi-select\n// joined with \", \"). Shared between kbc-ui (sender) and kai-agent (receiver).\nexport const askUserQuestionAnswersSchema = z.record(z.string(), z.string());\nexport type AskUserQuestionAnswers = z.Infer<typeof askUserQuestionAnswersSchema>;\n\n/**\n * Why an approval slot the client posted to is gone.\n *\n * - kai-agent keeps a tombstone per removed slot and returns the reason as the\n * error envelope's `subtype` on a 409.\n * - A 404 means no tombstone either — the toolUseId was never registered.\n * - `resolved` is benign: the decision was already recorded (double-click).\n * - `timed_out` / `swept` are genuine expiry — the run is dead.\n * - `chat_cancelled` / `shutdown` are server-side teardown, not user inaction.\n */\nexport const approvalGoneReasonSchema = z.enum([\n 'resolved',\n 'timed_out',\n 'chat_cancelled',\n 'swept',\n 'shutdown',\n]);\nexport type ApprovalGoneReason = z.Infer<typeof approvalGoneReasonSchema>;\n\n// Query Types\nexport type GetHistoryQuery = OpenapiQueryType<paths['/history']['get']>;\nexport type GetVotesQuery = OpenapiQueryType<paths['/vote']['get']>;\n\n// Path Types\nexport type GetChatPath = OpenapiPathType<paths['/chat/{id}']['get']>;\n\n// Body Types\nexport type VoteRequest = OpenapiBodyType<paths['/vote']['patch']>;\nexport type ChatRequest = OpenapiBodyType<paths['/chat']['post']>;\n\n// Return Types\nexport type HistoryResponse = OpenapiReturnType<paths['/history']['get']>;\nexport type ChatWithMessages = OpenapiReturnType<paths['/chat/{id}']['get']>;\nexport type VotesResponse = OpenapiReturnType<paths['/vote']['get']>;\nexport type UsageResponse = OpenapiReturnType<paths['/usage']['get']>;\n\n// Schema Types\nexport type Chat = components['schemas']['Chat'];\nexport type Vote = VotesResponse[number];\nexport type ChatWithMessage = components['schemas']['ChatWithMessages'];\nexport type ChatMessage = ChatWithMessage['messages'][number];\nexport type UserMessage = components['schemas']['Message'];\nexport type TextPart = UserMessage['parts'][number];\nexport type MessageStatus = NonNullable<UserMessage['status']>;\nexport type AgentSettings = components['schemas']['AgentSettings'];\nexport type UpdateAgentSettingsRequest = components['schemas']['UpdateAgentSettingsRequest'];\nexport type UserAgentSettings = components['schemas']['UserAgentSettings'];\nexport type UpdateUserAgentSettingsRequest =\n components['schemas']['UpdateUserAgentSettingsRequest'];\nexport type ToolPermissionValue = components['schemas']['ToolPermissionValue'];\nexport type ToolInfo = components['schemas']['ToolInfo'];\nexport type ToolsListResponse = components['schemas']['ToolsListResponse'];\n"],"mappings":";;AAcA,MAAa,+BAA+B,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC;;;;;;;;;;;AAa3E,MAAa,2BAA2B,EAAE,KAAK;CAC7C;CACA;CACA;CACA;CACA;AACF,CAAC"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../src/clients/chat/types.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport type {\n OpenapiBodyType,\n OpenapiPathType,\n OpenapiQueryType,\n OpenapiReturnType,\n} from '../../fetchClient';\n\nimport type { components, paths } from './__generated__/schema';\n\nexport type ProjectToolPolicyValue = 'blocked' | 'always_ask';\nexport type ProjectToolPolicy = Record<string, ProjectToolPolicyValue>;\n\n// AskUserQuestion answers: question text → selected labels (multi-select joined with \", \").\n// Shared by kbc-ui (sender) and kai-agent (receiver).\nexport const askUserQuestionAnswersSchema = z.record(z.string(), z.string());\nexport type AskUserQuestionAnswers = z.Infer<typeof askUserQuestionAnswersSchema>;\n\n/**\n * Why an approval slot the client posted to is gone.\n *\n * - Sent as the error envelope's `subtype` on a 409; a 404 means the toolUseId was never registered.\n * - `resolved` is benign: the decision was already recorded (double-click).\n * - `timed_out` / `swept` are genuine expiry — the run is dead.\n * - `chat_cancelled` / `shutdown` are server-side teardown, not user inaction.\n */\nexport const approvalGoneReasonSchema = z.enum([\n 'resolved',\n 'timed_out',\n 'chat_cancelled',\n 'swept',\n 'shutdown',\n]);\nexport type ApprovalGoneReason = z.Infer<typeof approvalGoneReasonSchema>;\n\nexport type GetHistoryQuery = OpenapiQueryType<paths['/history']['get']>;\nexport type GetVotesQuery = OpenapiQueryType<paths['/vote']['get']>;\n\nexport type GetChatPath = OpenapiPathType<paths['/chat/{id}']['get']>;\n\nexport type VoteRequest = OpenapiBodyType<paths['/vote']['patch']>;\nexport type ChatRequest = OpenapiBodyType<paths['/chat']['post']>;\n\nexport type HistoryResponse = OpenapiReturnType<paths['/history']['get']>;\nexport type ChatWithMessages = OpenapiReturnType<paths['/chat/{id}']['get']>;\nexport type VotesResponse = OpenapiReturnType<paths['/vote']['get']>;\nexport type UsageResponse = OpenapiReturnType<paths['/usage']['get']>;\n\nexport type Chat = components['schemas']['Chat'];\nexport type Vote = VotesResponse[number];\nexport type ChatWithMessage = components['schemas']['ChatWithMessages'];\nexport type ChatMessage = ChatWithMessage['messages'][number];\nexport type UserMessage = components['schemas']['Message'];\nexport type TextPart = UserMessage['parts'][number];\nexport type MessageStatus = NonNullable<UserMessage['status']>;\nexport type AgentSettings = components['schemas']['AgentSettings'] & {\n toolPermissions?: ProjectToolPolicy | null;\n canWriteToolPolicy?: boolean;\n};\nexport type UpdateAgentSettingsRequest = components['schemas']['UpdateAgentSettingsRequest'];\nexport type UserAgentSettings = components['schemas']['UserAgentSettings'] & {\n projectToolPermissions?: ProjectToolPolicy | null;\n};\nexport type UpdateUserAgentSettingsRequest =\n components['schemas']['UpdateUserAgentSettingsRequest'];\nexport type ToolPermissionValue = components['schemas']['ToolPermissionValue'];\nexport type ToolInfo = components['schemas']['ToolInfo'];\nexport type ToolsListResponse = components['schemas']['ToolsListResponse'];\n"],"mappings":";;AAgBA,MAAa,+BAA+B,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC;;;;;;;;;AAW3E,MAAa,2BAA2B,EAAE,KAAK;CAC7C;CACA;CACA;CACA;CACA;AACF,CAAC"}
@@ -43,6 +43,8 @@ const ComponentId = {
43
43
  KDS_EX_NETSUITE: "kds-team.ex-netsuite",
44
44
  KDS_EX_PROGRESS_DB: "kds-team.ex-progress-db",
45
45
  EX_GOOGLE_ADS: "keboola.ex-google-ads",
46
+ EX_ONEDRIVE: "keboola.ex-onedrive",
47
+ WR_ONEDRIVE: "keboola.wr-onedrive",
46
48
  EX_HTTP: "keboola.ex-http",
47
49
  EX_FTP: "keboola.ex-ftp",
48
50
  EX_FTP_CSAS: "keboola.ex-ftp-csas",
@@ -60,9 +62,11 @@ const ComponentId = {
60
62
  DBT_TRANSFORMATION_REMOTE_MSSQL: "keboola.dbt-transformation-remote-mssql",
61
63
  DBT_TRANSFORMATION_REMOTE_POSTGRESQL: "keboola.dbt-transformation-remote-postgresql",
62
64
  DBT_TRANSFORMATION_REMOTE_REDSHIFT: "keboola.dbt-transformation-remote-redshift",
63
- DBT_TRANSFORMATION_REMOTE_SNOWFLAKE: "keboola.dbt-transformation-remote-snowflake"
65
+ DBT_TRANSFORMATION_REMOTE_SNOWFLAKE: "keboola.dbt-transformation-remote-snowflake",
66
+ FLOW_MIGRATION_TOOL: "keboola.flow-migration-tool",
67
+ SSH_KEYGEN_V2: "keboola.ssh-keygen-v2"
64
68
  };
65
69
  //#endregion
66
70
  export { ComponentId as t };
67
71
 
68
- //# sourceMappingURL=componentId-vJz-kWs6.js.map
72
+ //# sourceMappingURL=componentId-BJLfnaGc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"componentId-BJLfnaGc.js","names":[],"sources":["../src/constants/componentId.ts"],"sourcesContent":["export const ComponentId = {\n WR_DB_MYSQL: 'keboola.wr-db-mysql',\n WR_DB_PGSQL: 'keboola.wr-db-pgsql',\n WR_DB_ORACLE: 'keboola.wr-db-oracle',\n WR_DB_SNOWFLAKE: 'keboola.wr-db-snowflake',\n WR_DB_SNOWFLAKE_GCS: 'keboola.wr-db-snowflake-gcs',\n WR_DB_SNOWFLAKE_GCS_S3: 'keboola.wr-db-snowflake-gcs-s3',\n WR_SNOWFLAKE_BLOB_STORAGE: 'keboola.wr-snowflake-blob-storage',\n WR_LOOKER_V2: 'keboola.wr-looker-v2',\n APP_DATA_GATEWAY: 'keboola.app-data-gateway',\n WR_SYNAPSE: 'keboola.wr-synapse',\n WR_REDSHIFT: 'keboola.wr-redshift-v2',\n WR_DB_MSSQL: 'keboola.wr-db-mssql-v2',\n WR_DB_HIVE: 'keboola.wr-db-hive',\n WR_DB_IMPALA: 'keboola.wr-db-impala',\n WR_PAIRITY: 'kds-team.wr-pairity',\n WR_EXASOL: 'kds-team.wr-exasol',\n WR_FIREBOLT: 'kds-team.wr-firebolt',\n WR_HIVE_CSAS: 'kds-team.wr-hive-csas',\n WR_THOUGHTSPOT: 'keboola.wr-thoughtspot',\n WR_SISENSE: 'keboola.wr-sisense',\n SCHEDULER: 'keboola.scheduler',\n\n // App-specific writers (bespoke credential blocks)\n APP_SNOWFLAKE_DWH_MANAGER: 'keboola.app-snowflake-dwh-manager',\n GOODDATA_WRITER: 'keboola.gooddata-writer',\n\n // DB extractors (ex-db-generic family)\n EX_DB_MYSQL: 'keboola.ex-db-mysql',\n EX_DB_PGSQL: 'keboola.ex-db-pgsql',\n EX_DB_REDSHIFT: 'keboola.ex-db-redshift',\n EX_DB_FIREBIRD: 'keboola.ex-db-firebird',\n EX_DB_DB2: 'keboola.ex-db-db2',\n EX_DB_DB2_BATA: 'keboola.ex-db-db2-bata',\n EX_DB_MSSQL: 'keboola.ex-db-mssql',\n EX_DB_MSSQL_CDATA: 'keboola.ex-db-mssql-cdata',\n EX_DB_ORACLE: 'keboola.ex-db-oracle',\n EX_DB_SNOWFLAKE: 'keboola.ex-db-snowflake',\n EX_DB_NETSUITE: 'keboola.ex-db-netsuite',\n EX_DB_INFORMIX: 'keboola.ex-db-informix',\n EX_DB_IMPALA: 'keboola.ex-db-impala',\n EX_DB_HIVE: 'keboola.ex-db-hive',\n EX_DB_HIVE_CSAS: 'keboola.ex-db-hive-csas',\n EX_DB_HIVE_CSAS_TEST: 'keboola.ex-db-hive-csas-test',\n EX_TERADATA: 'keboola.ex-teradata',\n KDS_EX_NETSUITE: 'kds-team.ex-netsuite',\n KDS_EX_PROGRESS_DB: 'kds-team.ex-progress-db',\n\n // Google (OAuth) components\n EX_GOOGLE_ADS: 'keboola.ex-google-ads',\n\n // Microsoft OneDrive (OAuth) components\n EX_ONEDRIVE: 'keboola.ex-onedrive',\n WR_ONEDRIVE: 'keboola.wr-onedrive',\n\n // File/connection extractors (ex family, no shared credential base)\n EX_HTTP: 'keboola.ex-http',\n EX_FTP: 'keboola.ex-ftp',\n EX_FTP_CSAS: 'keboola.ex-ftp-csas',\n EX_AWS_S3: 'keboola.ex-aws-s3',\n KDS_EX_AZURE_BLOB_STORAGE_V2: 'kds-team.ex-azure-blob-storage-v2',\n KDS_EX_AZURE_DATA_LAKE_GEN2: 'kds-team.ex-azure-data-lake-gen2',\n APIFY: 'apify.apify',\n\n // Data-app family — a git repository lives under `parameters.dataApp.git`\n DATA_APPS: 'keboola.data-apps',\n SANDBOXES: 'keboola.sandboxes',\n\n // dbt transformations — a git repository lives under `parameters.git`\n DBT_TEST_CORE_KEY_PAIR: 'keboola-test.dbt-core-key-pair',\n DBT_TEST_REMOTE_SNOWFLAKE: 'keboola-test.dbt-remote-snowflake',\n DBT_TRANSFORMATION: 'keboola.dbt-transformation',\n DBT_TRANSFORMATION_LOCAL_BIGQUERY: 'keboola.dbt-transformation-local-bigquery',\n DBT_TRANSFORMATION_REMOTE_BIGQUERY: 'keboola.dbt-transformation-remote-bigquery',\n DBT_TRANSFORMATION_REMOTE_MSSQL: 'keboola.dbt-transformation-remote-mssql',\n DBT_TRANSFORMATION_REMOTE_POSTGRESQL: 'keboola.dbt-transformation-remote-postgresql',\n DBT_TRANSFORMATION_REMOTE_REDSHIFT: 'keboola.dbt-transformation-remote-redshift',\n DBT_TRANSFORMATION_REMOTE_SNOWFLAKE: 'keboola.dbt-transformation-remote-snowflake',\n\n FLOW_MIGRATION_TOOL: 'keboola.flow-migration-tool',\n\n // Utility components, called only for their sync actions\n SSH_KEYGEN_V2: 'keboola.ssh-keygen-v2',\n} as const;\n\nexport type ComponentId = (typeof ComponentId)[keyof typeof ComponentId];\n"],"mappings":";AAAA,MAAa,cAAc;CACzB,aAAa;CACb,aAAa;CACb,cAAc;CACd,iBAAiB;CACjB,qBAAqB;CACrB,wBAAwB;CACxB,2BAA2B;CAC3B,cAAc;CACd,kBAAkB;CAClB,YAAY;CACZ,aAAa;CACb,aAAa;CACb,YAAY;CACZ,cAAc;CACd,YAAY;CACZ,WAAW;CACX,aAAa;CACb,cAAc;CACd,gBAAgB;CAChB,YAAY;CACZ,WAAW;CAGX,2BAA2B;CAC3B,iBAAiB;CAGjB,aAAa;CACb,aAAa;CACb,gBAAgB;CAChB,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB,aAAa;CACb,mBAAmB;CACnB,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,gBAAgB;CAChB,cAAc;CACd,YAAY;CACZ,iBAAiB;CACjB,sBAAsB;CACtB,aAAa;CACb,iBAAiB;CACjB,oBAAoB;CAGpB,eAAe;CAGf,aAAa;CACb,aAAa;CAGb,SAAS;CACT,QAAQ;CACR,aAAa;CACb,WAAW;CACX,8BAA8B;CAC9B,6BAA6B;CAC7B,OAAO;CAGP,WAAW;CACX,WAAW;CAGX,wBAAwB;CACxB,2BAA2B;CAC3B,oBAAoB;CACpB,mCAAmC;CACnC,oCAAoC;CACpC,iCAAiC;CACjC,sCAAsC;CACtC,oCAAoC;CACpC,qCAAqC;CAErC,qBAAqB;CAGrB,eAAe;AACjB"}
@@ -43,6 +43,8 @@ const ComponentId = {
43
43
  KDS_EX_NETSUITE: "kds-team.ex-netsuite",
44
44
  KDS_EX_PROGRESS_DB: "kds-team.ex-progress-db",
45
45
  EX_GOOGLE_ADS: "keboola.ex-google-ads",
46
+ EX_ONEDRIVE: "keboola.ex-onedrive",
47
+ WR_ONEDRIVE: "keboola.wr-onedrive",
46
48
  EX_HTTP: "keboola.ex-http",
47
49
  EX_FTP: "keboola.ex-ftp",
48
50
  EX_FTP_CSAS: "keboola.ex-ftp-csas",
@@ -60,7 +62,9 @@ const ComponentId = {
60
62
  DBT_TRANSFORMATION_REMOTE_MSSQL: "keboola.dbt-transformation-remote-mssql",
61
63
  DBT_TRANSFORMATION_REMOTE_POSTGRESQL: "keboola.dbt-transformation-remote-postgresql",
62
64
  DBT_TRANSFORMATION_REMOTE_REDSHIFT: "keboola.dbt-transformation-remote-redshift",
63
- DBT_TRANSFORMATION_REMOTE_SNOWFLAKE: "keboola.dbt-transformation-remote-snowflake"
65
+ DBT_TRANSFORMATION_REMOTE_SNOWFLAKE: "keboola.dbt-transformation-remote-snowflake",
66
+ FLOW_MIGRATION_TOOL: "keboola.flow-migration-tool",
67
+ SSH_KEYGEN_V2: "keboola.ssh-keygen-v2"
64
68
  };
65
69
  //#endregion
66
70
  Object.defineProperty(exports, "ComponentId", {
@@ -70,4 +74,4 @@ Object.defineProperty(exports, "ComponentId", {
70
74
  }
71
75
  });
72
76
 
73
- //# sourceMappingURL=componentId-DkyQ8PM0.cjs.map
77
+ //# sourceMappingURL=componentId-_IKXxICq.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"componentId-_IKXxICq.cjs","names":[],"sources":["../src/constants/componentId.ts"],"sourcesContent":["export const ComponentId = {\n WR_DB_MYSQL: 'keboola.wr-db-mysql',\n WR_DB_PGSQL: 'keboola.wr-db-pgsql',\n WR_DB_ORACLE: 'keboola.wr-db-oracle',\n WR_DB_SNOWFLAKE: 'keboola.wr-db-snowflake',\n WR_DB_SNOWFLAKE_GCS: 'keboola.wr-db-snowflake-gcs',\n WR_DB_SNOWFLAKE_GCS_S3: 'keboola.wr-db-snowflake-gcs-s3',\n WR_SNOWFLAKE_BLOB_STORAGE: 'keboola.wr-snowflake-blob-storage',\n WR_LOOKER_V2: 'keboola.wr-looker-v2',\n APP_DATA_GATEWAY: 'keboola.app-data-gateway',\n WR_SYNAPSE: 'keboola.wr-synapse',\n WR_REDSHIFT: 'keboola.wr-redshift-v2',\n WR_DB_MSSQL: 'keboola.wr-db-mssql-v2',\n WR_DB_HIVE: 'keboola.wr-db-hive',\n WR_DB_IMPALA: 'keboola.wr-db-impala',\n WR_PAIRITY: 'kds-team.wr-pairity',\n WR_EXASOL: 'kds-team.wr-exasol',\n WR_FIREBOLT: 'kds-team.wr-firebolt',\n WR_HIVE_CSAS: 'kds-team.wr-hive-csas',\n WR_THOUGHTSPOT: 'keboola.wr-thoughtspot',\n WR_SISENSE: 'keboola.wr-sisense',\n SCHEDULER: 'keboola.scheduler',\n\n // App-specific writers (bespoke credential blocks)\n APP_SNOWFLAKE_DWH_MANAGER: 'keboola.app-snowflake-dwh-manager',\n GOODDATA_WRITER: 'keboola.gooddata-writer',\n\n // DB extractors (ex-db-generic family)\n EX_DB_MYSQL: 'keboola.ex-db-mysql',\n EX_DB_PGSQL: 'keboola.ex-db-pgsql',\n EX_DB_REDSHIFT: 'keboola.ex-db-redshift',\n EX_DB_FIREBIRD: 'keboola.ex-db-firebird',\n EX_DB_DB2: 'keboola.ex-db-db2',\n EX_DB_DB2_BATA: 'keboola.ex-db-db2-bata',\n EX_DB_MSSQL: 'keboola.ex-db-mssql',\n EX_DB_MSSQL_CDATA: 'keboola.ex-db-mssql-cdata',\n EX_DB_ORACLE: 'keboola.ex-db-oracle',\n EX_DB_SNOWFLAKE: 'keboola.ex-db-snowflake',\n EX_DB_NETSUITE: 'keboola.ex-db-netsuite',\n EX_DB_INFORMIX: 'keboola.ex-db-informix',\n EX_DB_IMPALA: 'keboola.ex-db-impala',\n EX_DB_HIVE: 'keboola.ex-db-hive',\n EX_DB_HIVE_CSAS: 'keboola.ex-db-hive-csas',\n EX_DB_HIVE_CSAS_TEST: 'keboola.ex-db-hive-csas-test',\n EX_TERADATA: 'keboola.ex-teradata',\n KDS_EX_NETSUITE: 'kds-team.ex-netsuite',\n KDS_EX_PROGRESS_DB: 'kds-team.ex-progress-db',\n\n // Google (OAuth) components\n EX_GOOGLE_ADS: 'keboola.ex-google-ads',\n\n // Microsoft OneDrive (OAuth) components\n EX_ONEDRIVE: 'keboola.ex-onedrive',\n WR_ONEDRIVE: 'keboola.wr-onedrive',\n\n // File/connection extractors (ex family, no shared credential base)\n EX_HTTP: 'keboola.ex-http',\n EX_FTP: 'keboola.ex-ftp',\n EX_FTP_CSAS: 'keboola.ex-ftp-csas',\n EX_AWS_S3: 'keboola.ex-aws-s3',\n KDS_EX_AZURE_BLOB_STORAGE_V2: 'kds-team.ex-azure-blob-storage-v2',\n KDS_EX_AZURE_DATA_LAKE_GEN2: 'kds-team.ex-azure-data-lake-gen2',\n APIFY: 'apify.apify',\n\n // Data-app family — a git repository lives under `parameters.dataApp.git`\n DATA_APPS: 'keboola.data-apps',\n SANDBOXES: 'keboola.sandboxes',\n\n // dbt transformations — a git repository lives under `parameters.git`\n DBT_TEST_CORE_KEY_PAIR: 'keboola-test.dbt-core-key-pair',\n DBT_TEST_REMOTE_SNOWFLAKE: 'keboola-test.dbt-remote-snowflake',\n DBT_TRANSFORMATION: 'keboola.dbt-transformation',\n DBT_TRANSFORMATION_LOCAL_BIGQUERY: 'keboola.dbt-transformation-local-bigquery',\n DBT_TRANSFORMATION_REMOTE_BIGQUERY: 'keboola.dbt-transformation-remote-bigquery',\n DBT_TRANSFORMATION_REMOTE_MSSQL: 'keboola.dbt-transformation-remote-mssql',\n DBT_TRANSFORMATION_REMOTE_POSTGRESQL: 'keboola.dbt-transformation-remote-postgresql',\n DBT_TRANSFORMATION_REMOTE_REDSHIFT: 'keboola.dbt-transformation-remote-redshift',\n DBT_TRANSFORMATION_REMOTE_SNOWFLAKE: 'keboola.dbt-transformation-remote-snowflake',\n\n FLOW_MIGRATION_TOOL: 'keboola.flow-migration-tool',\n\n // Utility components, called only for their sync actions\n SSH_KEYGEN_V2: 'keboola.ssh-keygen-v2',\n} as const;\n\nexport type ComponentId = (typeof ComponentId)[keyof typeof ComponentId];\n"],"mappings":";AAAA,MAAa,cAAc;CACzB,aAAa;CACb,aAAa;CACb,cAAc;CACd,iBAAiB;CACjB,qBAAqB;CACrB,wBAAwB;CACxB,2BAA2B;CAC3B,cAAc;CACd,kBAAkB;CAClB,YAAY;CACZ,aAAa;CACb,aAAa;CACb,YAAY;CACZ,cAAc;CACd,YAAY;CACZ,WAAW;CACX,aAAa;CACb,cAAc;CACd,gBAAgB;CAChB,YAAY;CACZ,WAAW;CAGX,2BAA2B;CAC3B,iBAAiB;CAGjB,aAAa;CACb,aAAa;CACb,gBAAgB;CAChB,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB,aAAa;CACb,mBAAmB;CACnB,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,gBAAgB;CAChB,cAAc;CACd,YAAY;CACZ,iBAAiB;CACjB,sBAAsB;CACtB,aAAa;CACb,iBAAiB;CACjB,oBAAoB;CAGpB,eAAe;CAGf,aAAa;CACb,aAAa;CAGb,SAAS;CACT,QAAQ;CACR,aAAa;CACb,WAAW;CACX,8BAA8B;CAC9B,6BAA6B;CAC7B,OAAO;CAGP,WAAW;CACX,WAAW;CAGX,wBAAwB;CACxB,2BAA2B;CAC3B,oBAAoB;CACpB,mCAAmC;CACnC,oCAAoC;CACpC,iCAAiC;CACjC,sCAAsC;CACtC,oCAAoC;CACpC,qCAAqC;CAErC,qBAAqB;CAGrB,eAAe;AACjB"}
@@ -1,11 +1,9 @@
1
1
  //#region src/utils/async/concurrent.ts
2
2
  /**
3
- * Executes a callback function on an array of items, processing multiple items concurrently with a specified concurrency limit.
4
- * It behaves similarly to Promise.all(), failing on the first rejected promise.
5
- * After the first rejection no further items are started: items already in flight run to
6
- * completion (they cannot be cancelled), but the rest of the queue is abandoned — nothing
7
- * keeps executing detached behind the caller's back after the returned promise has settled.
8
- * The order of the results matches the order of the promises.
3
+ * Runs `process` over `items` with at most `concurrency` in flight; results keep item order.
4
+ *
5
+ * - Rejects on the first failure, like `Promise.all`.
6
+ * - After a rejection no further items start; in-flight ones run to completion.
9
7
  */
10
8
  const concurrent = async ({ items, process, concurrency = 2, middlewares = [] }) => {
11
9
  if (concurrency < 1) throw new Error("Concurrency must be greater than 0");
@@ -31,4 +29,4 @@ const concurrent = async ({ items, process, concurrency = 2, middlewares = [] })
31
29
  //#endregion
32
30
  export { concurrent as t };
33
31
 
34
- //# sourceMappingURL=concurrent-CH9fbNr3.js.map
32
+ //# sourceMappingURL=concurrent-BacWxPwi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrent-BacWxPwi.js","names":[],"sources":["../src/utils/async/concurrent.ts"],"sourcesContent":["// Sync returns are accepted so callers needn't wrap them in `Promise.resolve`.\ntype ProcessFn<T, R> = (item: T, index: number, arrayLength: number) => R | PromiseLike<R>;\nexport type MiddlewareFn<T, R> = (next: ProcessFn<T, R>) => ProcessFn<T, R>;\n\nexport type ConcurrentOptions<T, R> = {\n items: T[];\n process: ProcessFn<T, R>;\n concurrency?: number;\n middlewares?: MiddlewareFn<T, R>[];\n};\n\n/**\n * Runs `process` over `items` with at most `concurrency` in flight; results keep item order.\n *\n * - Rejects on the first failure, like `Promise.all`.\n * - After a rejection no further items start; in-flight ones run to completion.\n */\nexport const concurrent = async <T, R>({\n items,\n process,\n concurrency = 2,\n middlewares = [],\n}: ConcurrentOptions<T, R>): Promise<R[]> => {\n if (concurrency < 1) throw new Error('Concurrency must be greater than 0');\n if (items.length === 0) return [];\n if (concurrency === Infinity)\n return Promise.all(items.map((item, index) => process(item, index, items.length)));\n\n const n = items.length;\n const results: R[] = Array.from({ length: n });\n\n const processWithMiddlewares = middlewares.reduceRight(\n (next, middleware) => middleware(next),\n process,\n );\n\n const queue = items.map((item, index) => async () => {\n results[index] = await processWithMiddlewares(item, index, items.length);\n });\n\n const workers = Array.from(\n { length: Math.min(concurrency, items.length) },\n async function processQueue() {\n while (queue.length) {\n try {\n await queue.shift()?.();\n } catch (error) {\n // The call has rejected; further items would run detached from the caller.\n queue.length = 0;\n throw error;\n }\n }\n },\n );\n\n await Promise.all(workers);\n return results;\n};\n"],"mappings":";;;;;;;AAiBA,MAAa,aAAa,OAAa,EACrC,OACA,SACA,cAAc,GACd,cAAc,CAAC,QAC4B;CAC3C,IAAI,cAAc,GAAG,MAAM,IAAI,MAAM,oCAAoC;CACzE,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC;CAChC,IAAI,gBAAgB,UAClB,OAAO,QAAQ,IAAI,MAAM,KAAK,MAAM,UAAU,QAAQ,MAAM,OAAO,MAAM,MAAM,CAAC,CAAC;CAEnF,MAAM,IAAI,MAAM;CAChB,MAAM,UAAe,MAAM,KAAK,EAAE,QAAQ,EAAE,CAAC;CAE7C,MAAM,yBAAyB,YAAY,aACxC,MAAM,eAAe,WAAW,IAAI,GACrC,OACF;CAEA,MAAM,QAAQ,MAAM,KAAK,MAAM,UAAU,YAAY;EACnD,QAAQ,SAAS,MAAM,uBAAuB,MAAM,OAAO,MAAM,MAAM;CACzE,CAAC;CAED,MAAM,UAAU,MAAM,KACpB,EAAE,QAAQ,KAAK,IAAI,aAAa,MAAM,MAAM,EAAE,GAC9C,eAAe,eAAe;EAC5B,OAAO,MAAM,QACX,IAAI;GACF,MAAM,MAAM,MAAM,CAAC,GAAG;EACxB,SAAS,OAAO;GAEd,MAAM,SAAS;GACf,MAAM;EACR;CAEJ,CACF;CAEA,MAAM,QAAQ,IAAI,OAAO;CACzB,OAAO;AACT"}
@@ -1,11 +1,9 @@
1
1
  //#region src/utils/async/concurrent.ts
2
2
  /**
3
- * Executes a callback function on an array of items, processing multiple items concurrently with a specified concurrency limit.
4
- * It behaves similarly to Promise.all(), failing on the first rejected promise.
5
- * After the first rejection no further items are started: items already in flight run to
6
- * completion (they cannot be cancelled), but the rest of the queue is abandoned — nothing
7
- * keeps executing detached behind the caller's back after the returned promise has settled.
8
- * The order of the results matches the order of the promises.
3
+ * Runs `process` over `items` with at most `concurrency` in flight; results keep item order.
4
+ *
5
+ * - Rejects on the first failure, like `Promise.all`.
6
+ * - After a rejection no further items start; in-flight ones run to completion.
9
7
  */
10
8
  const concurrent = async ({ items, process, concurrency = 2, middlewares = [] }) => {
11
9
  if (concurrency < 1) throw new Error("Concurrency must be greater than 0");
@@ -36,4 +34,4 @@ Object.defineProperty(exports, "concurrent", {
36
34
  }
37
35
  });
38
36
 
39
- //# sourceMappingURL=concurrent-tbiIa0UL.cjs.map
37
+ //# sourceMappingURL=concurrent-CdVfR1N5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrent-CdVfR1N5.cjs","names":[],"sources":["../src/utils/async/concurrent.ts"],"sourcesContent":["// Sync returns are accepted so callers needn't wrap them in `Promise.resolve`.\ntype ProcessFn<T, R> = (item: T, index: number, arrayLength: number) => R | PromiseLike<R>;\nexport type MiddlewareFn<T, R> = (next: ProcessFn<T, R>) => ProcessFn<T, R>;\n\nexport type ConcurrentOptions<T, R> = {\n items: T[];\n process: ProcessFn<T, R>;\n concurrency?: number;\n middlewares?: MiddlewareFn<T, R>[];\n};\n\n/**\n * Runs `process` over `items` with at most `concurrency` in flight; results keep item order.\n *\n * - Rejects on the first failure, like `Promise.all`.\n * - After a rejection no further items start; in-flight ones run to completion.\n */\nexport const concurrent = async <T, R>({\n items,\n process,\n concurrency = 2,\n middlewares = [],\n}: ConcurrentOptions<T, R>): Promise<R[]> => {\n if (concurrency < 1) throw new Error('Concurrency must be greater than 0');\n if (items.length === 0) return [];\n if (concurrency === Infinity)\n return Promise.all(items.map((item, index) => process(item, index, items.length)));\n\n const n = items.length;\n const results: R[] = Array.from({ length: n });\n\n const processWithMiddlewares = middlewares.reduceRight(\n (next, middleware) => middleware(next),\n process,\n );\n\n const queue = items.map((item, index) => async () => {\n results[index] = await processWithMiddlewares(item, index, items.length);\n });\n\n const workers = Array.from(\n { length: Math.min(concurrency, items.length) },\n async function processQueue() {\n while (queue.length) {\n try {\n await queue.shift()?.();\n } catch (error) {\n // The call has rejected; further items would run detached from the caller.\n queue.length = 0;\n throw error;\n }\n }\n },\n );\n\n await Promise.all(workers);\n return results;\n};\n"],"mappings":";;;;;;;AAiBA,MAAa,aAAa,OAAa,EACrC,OACA,SACA,cAAc,GACd,cAAc,CAAC,QAC4B;CAC3C,IAAI,cAAc,GAAG,MAAM,IAAI,MAAM,oCAAoC;CACzE,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC;CAChC,IAAI,gBAAgB,UAClB,OAAO,QAAQ,IAAI,MAAM,KAAK,MAAM,UAAU,QAAQ,MAAM,OAAO,MAAM,MAAM,CAAC,CAAC;CAEnF,MAAM,IAAI,MAAM;CAChB,MAAM,UAAe,MAAM,KAAK,EAAE,QAAQ,EAAE,CAAC;CAE7C,MAAM,yBAAyB,YAAY,aACxC,MAAM,eAAe,WAAW,IAAI,GACrC,OACF;CAEA,MAAM,QAAQ,MAAM,KAAK,MAAM,UAAU,YAAY;EACnD,QAAQ,SAAS,MAAM,uBAAuB,MAAM,OAAO,MAAM,MAAM;CACzE,CAAC;CAED,MAAM,UAAU,MAAM,KACpB,EAAE,QAAQ,KAAK,IAAI,aAAa,MAAM,MAAM,EAAE,GAC9C,eAAe,eAAe;EAC5B,OAAO,MAAM,QACX,IAAI;GACF,MAAM,MAAM,MAAM,CAAC,GAAG;EACxB,SAAS,OAAO;GAEd,MAAM,SAAS;GACf,MAAM;EACR;CAEJ,CACF;CAEA,MAAM,QAAQ,IAAI,OAAO;CACzB,OAAO;AACT"}
@@ -3,18 +3,8 @@ const require_adminRoles = require("./adminRoles-CO7J5qAy.cjs");
3
3
  /**
4
4
  * @module domain/permissions/errors
5
5
  *
6
- * Stable error contract for permission denials.
7
- *
8
- * `PermissionDeniedError` is what every `assertCan*` pair throws on denial. The
9
- * three public fields are part of the SDK's published contract — consumers
10
- * (kbc-ui, kai-agent, third-party TS callers) may pattern-match on `action`
11
- * and surface `reason` in UI, so renames here are breaking changes.
12
- *
13
- * PII boundary on `subject`:
14
- * `subject` is optional and intended for debugging hints only — admin id,
15
- * role name, configuration id, branch id, etc. It MUST NOT carry the full
16
- * `StorageToken`, raw tokens, secrets, or any value that could be logged or
17
- * surfaced to a user without further redaction.
6
+ * - What every `assertCan*` throws; its public fields are SDK contract — renames break consumers.
7
+ * - `subject` is a debugging hint only — never a `StorageToken`, raw token or secret.
18
8
  */
19
9
  var PermissionDeniedError = class extends Error {
20
10
  action;
@@ -37,34 +27,18 @@ const isProductionManager = (token) => role(token) === require_adminRoles.AdminR
37
27
  const isDeveloperOrReviewer = (token) => role(token) === require_adminRoles.AdminRole.Developer || role(token) === require_adminRoles.AdminRole.Reviewer;
38
28
  const isReadOnlyRole = (token) => role(token) === require_adminRoles.AdminRole.ReadOnly;
39
29
  /**
40
- * Whether a role string is a member of `AdminRole` at all — distinct from
41
- * whether it may do any particular thing. A role failing this check is not
42
- * "denied", it's *unrecognized*: either Storage started returning a role this
43
- * client has never heard of, or something upstream is sending garbage. Callers
44
- * that deny-by-default on every predicate here (the common case) still want to
45
- * know about this distinction, because it never shows up as a failed request —
46
- * a caller should log it loudly rather than treat it as routine.
30
+ * Whether a role string is a member of `AdminRole` at all.
31
+ *
32
+ * - Failing it means *unrecognized*, not denied — log it loudly.
47
33
  */
48
34
  const isKnownAdminRole = (adminRole) => Object.values(require_adminRoles.AdminRole).includes(adminRole ?? "");
49
35
  /**
50
- * Whether an admin role may write Kai's **project-wide** settings (custom
51
- * instructions injected into every project member's system prompt).
36
+ * Whether an admin role may write Kai's project-wide settings.
52
37
  *
53
- * `admin` and `share` only. The value is a shared prompt-injection surface, so
54
- * changing it counts as project administration rather than project work:
55
- * `productionManager` and `guest` are read-only for project management in kbc-ui,
56
- * and `developer`/`reviewer` are denied because `agent_settings` is keyed by
57
- * `project_id` alone — editing it "inside a dev branch" writes production-visible
58
- * global config.
59
- *
60
- * An allowlist, deliberately: `AdminRole` gains members upstream, and a denylist
61
- * would admit each new one silently with no test failing. Takes the raw role
62
- * string so a caller holding an unparsed `tokens.verify()` response can use it
63
- * without fabricating a `StorageToken`. AI-3671.
64
- *
65
- * @see ./organization#canWriteKaiSpendCaps — spend caps (AI-3738) are
66
- * organization-admin only and use that predicate; do not widen this one to
67
- * cover them.
38
+ * - `admin` and `share` only: a shared prompt-injection surface is project administration.
39
+ * - `developer`/`reviewer` are denied: `agent_settings` is keyed by `project_id` alone, so a dev-branch edit hits production.
40
+ * - An allowlist, so new upstream `AdminRole` members are denied by default.
41
+ * - Spend caps use `./organization#canWriteKaiSpendCaps`; don't widen this for them.
68
42
  */
69
43
  const isKaiSettingsWriterRole = (adminRole) => {
70
44
  switch (adminRole) {
@@ -74,10 +48,9 @@ const isKaiSettingsWriterRole = (adminRole) => {
74
48
  }
75
49
  };
76
50
  /**
77
- * Whether this token may write Kai's project-wide settings. A limited
78
- * (non-master) token never may: it carries no project role at all, and its
79
- * `admin` block is absent despite the hand-authored type declaring it required
80
- * (AI-3593) — hence the optional chain.
51
+ * Whether this token may write Kai's project-wide settings.
52
+ *
53
+ * - A limited (non-master) token never may; its `admin` block is absent despite the type.
81
54
  */
82
55
  const canWriteKaiSettings = (token) => token.isMasterToken && isKaiSettingsWriterRole(token.admin?.role);
83
56
  const assertCanWriteKaiSettings = (token) => {
@@ -87,20 +60,14 @@ const assertCanWriteKaiSettings = (token) => {
87
60
  });
88
61
  };
89
62
  /**
90
- * Whether this token may write the project's semantic layer — models and their
91
- * datasets, metrics, relationships, glossary terms and constraints in the
92
- * metastore.
63
+ * Whether this token may write the project's semantic layer in the metastore.
93
64
  *
94
- * - A denylist, unlike `isKaiSettingsWriterRole` above: the metastore's
95
- * project-level ACL admits ordinary project work, so every role that can edit
96
- * configurations can edit the model. Only `readOnly` is refused.
97
- * - A limited (non-master) token carries no project role and its `admin` block is
98
- * absent (AI-3593) — hence the optional chain. It is not denied here: the
99
- * metastore, not this client, decides what such a token may do.
100
- * - Organization-scope promotion is a separate, narrower right the metastore
101
- * answers with a 403; surface that error rather than pre-empting it here.
65
+ * - Mirrors the metastore's role mapping (go-monorepo `services/metastore/internal/authz`):
66
+ * only a master token with the `admin` or `productionManager` role gets `project-admin`.
67
+ * - Every other role, and a limited token (no `admin` block), gets a 403.
68
+ * - Organization-scope promotion is left to the metastore's 403.
102
69
  */
103
- const canWriteSemanticLayer = (token) => token.admin?.role !== require_adminRoles.AdminRole.ReadOnly;
70
+ const canWriteSemanticLayer = (token) => token.admin?.role === require_adminRoles.AdminRole.Admin || token.admin?.role === require_adminRoles.AdminRole.ProductionManager;
104
71
  const assertCanAdmin = (token) => {
105
72
  if (!isAdmin(token)) throw new PermissionDeniedError({
106
73
  action: "admin",
@@ -335,4 +302,4 @@ Object.defineProperty(exports, "isReadOnlyRole", {
335
302
  }
336
303
  });
337
304
 
338
- //# sourceMappingURL=configurations-CyFF9Dtu.cjs.map
305
+ //# sourceMappingURL=configurations-BTRHVSRq.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurations-BTRHVSRq.cjs","names":["AdminRole"],"sources":["../src/domain/permissions/errors.ts","../src/domain/permissions/admin.ts","../src/domain/permissions/configurations.ts"],"sourcesContent":["/**\n * @module domain/permissions/errors\n *\n * - What every `assertCan*` throws; its public fields are SDK contract — renames break consumers.\n * - `subject` is a debugging hint only — never a `StorageToken`, raw token or secret.\n */\nexport class PermissionDeniedError extends Error {\n public readonly action: string;\n public readonly reason?: string;\n public readonly subject?: string;\n\n constructor({ action, reason, subject }: { action: string; reason?: string; subject?: string }) {\n super(reason ? `Permission denied: ${action} (${reason})` : `Permission denied: ${action}`);\n this.name = 'PermissionDeniedError';\n this.action = action;\n this.reason = reason;\n this.subject = subject;\n }\n}\n","/**\n * @module domain/permissions/admin\n *\n * Admin-role predicates read from `token.admin.role` alone.\n */\nimport type { StorageToken } from '../../clients/storage/tokens/types';\nimport { AdminRole } from '../../constants/adminRoles';\n\nimport { PermissionDeniedError } from './errors';\n\nconst role = (token: StorageToken): string => token.admin.role;\n\nexport const isAdmin = (token: StorageToken): boolean => role(token) === AdminRole.Admin;\n\nexport const isAdminOrShare = (token: StorageToken): boolean =>\n role(token) === AdminRole.Admin || role(token) === AdminRole.Share;\n\nexport const isProductionManager = (token: StorageToken): boolean =>\n role(token) === AdminRole.ProductionManager;\n\nexport const isDeveloperOrReviewer = (token: StorageToken): boolean =>\n role(token) === AdminRole.Developer || role(token) === AdminRole.Reviewer;\n\nexport const isReadOnlyRole = (token: StorageToken): boolean => role(token) === AdminRole.ReadOnly;\n\n/**\n * Whether a role string is a member of `AdminRole` at all.\n *\n * - Failing it means *unrecognized*, not denied — log it loudly.\n */\nexport const isKnownAdminRole = (adminRole: string | null | undefined): boolean =>\n (Object.values(AdminRole) as string[]).includes(adminRole ?? '');\n\n/**\n * Whether an admin role may write Kai's project-wide settings.\n *\n * - `admin` and `share` only: a shared prompt-injection surface is project administration.\n * - `developer`/`reviewer` are denied: `agent_settings` is keyed by `project_id` alone, so a dev-branch edit hits production.\n * - An allowlist, so new upstream `AdminRole` members are denied by default.\n * - Spend caps use `./organization#canWriteKaiSpendCaps`; don't widen this for them.\n */\nexport const isKaiSettingsWriterRole = (adminRole: string | null | undefined): boolean => {\n switch (adminRole) {\n case AdminRole.Admin:\n case AdminRole.Share:\n return true;\n default:\n return false;\n }\n};\n\n/**\n * Whether this token may write Kai's project-wide settings.\n *\n * - A limited (non-master) token never may; its `admin` block is absent despite the type.\n */\nexport const canWriteKaiSettings = (token: StorageToken): boolean =>\n token.isMasterToken && isKaiSettingsWriterRole(token.admin?.role);\n\nexport const assertCanWriteKaiSettings = (token: StorageToken): void => {\n if (!canWriteKaiSettings(token)) {\n throw new PermissionDeniedError({\n action: 'write-kai-settings',\n reason: token.isMasterToken\n ? `role '${token.admin?.role ?? 'none'}' may not write Kai settings`\n : 'a limited (non-master) token may not write Kai settings',\n });\n }\n};\n\n/**\n * Whether this token may write the project's semantic layer in the metastore.\n *\n * - Mirrors the metastore's role mapping (go-monorepo `services/metastore/internal/authz`):\n * only a master token with the `admin` or `productionManager` role gets `project-admin`.\n * - Every other role, and a limited token (no `admin` block), gets a 403.\n * - Organization-scope promotion is left to the metastore's 403.\n */\nexport const canWriteSemanticLayer = (token: StorageToken): boolean =>\n token.admin?.role === AdminRole.Admin || token.admin?.role === AdminRole.ProductionManager;\n\nexport const assertCanAdmin = (token: StorageToken): void => {\n if (!isAdmin(token)) {\n throw new PermissionDeniedError({\n action: 'admin',\n reason: `role '${role(token)}' is not admin`,\n });\n }\n};\n\nexport const assertCanAdminOrShare = (token: StorageToken): void => {\n if (!isAdminOrShare(token)) {\n throw new PermissionDeniedError({\n action: 'admin-or-share',\n reason: `role '${role(token)}' is not admin or share`,\n });\n }\n};\n\nexport const assertCanProductionManage = (token: StorageToken): void => {\n if (!isProductionManager(token)) {\n throw new PermissionDeniedError({\n action: 'production-manage',\n reason: `role '${role(token)}' is not productionManager`,\n });\n }\n};\n\nexport const assertCanDevelopOrReview = (token: StorageToken): void => {\n if (!isDeveloperOrReviewer(token)) {\n throw new PermissionDeniedError({\n action: 'develop-or-review',\n reason: `role '${role(token)}' is not developer or reviewer`,\n });\n }\n};\n","/**\n * @module domain/permissions/configurations\n *\n * - Dev branch → developer or reviewer; production → production manager.\n * - Purge is admin-only in any branch mode; its `ctx` is ignored.\n */\nimport type { StorageToken } from '../../clients/storage/tokens/types';\n\nimport { isAdmin, isDeveloperOrReviewer, isProductionManager } from './admin';\nimport { PermissionDeniedError } from './errors';\n\n/**\n * Caller-supplied context for configuration predicates.\n *\n * @property isDevModeActive — `true` on any branch other than the default (`isDefault`) one.\n */\nexport type ConfigurationCtx = {\n isDevModeActive: boolean;\n};\n\nconst meetsBaseRule = (token: StorageToken, ctx: ConfigurationCtx): boolean =>\n ctx.isDevModeActive ? isDeveloperOrReviewer(token) : isProductionManager(token);\n\nconst baseDenialReason = (ctx: ConfigurationCtx): string =>\n ctx.isDevModeActive\n ? 'dev branch requires developer or reviewer role'\n : 'production requires productionManager role';\n\nexport const canCreateConfiguration = (token: StorageToken, ctx: ConfigurationCtx): boolean =>\n meetsBaseRule(token, ctx);\n\nexport const canUpdateConfiguration = (token: StorageToken, ctx: ConfigurationCtx): boolean =>\n meetsBaseRule(token, ctx);\n\nexport const canCopyConfiguration = (token: StorageToken, ctx: ConfigurationCtx): boolean =>\n meetsBaseRule(token, ctx);\n\nexport const canMigrateFromTemplate = (token: StorageToken, ctx: ConfigurationCtx): boolean =>\n meetsBaseRule(token, ctx);\n\nexport const canPurgeConfiguration: (token: StorageToken, ctx: ConfigurationCtx) => boolean = (\n token,\n) => isAdmin(token);\n\nexport const canAssignFolder = (token: StorageToken, ctx: ConfigurationCtx): boolean =>\n meetsBaseRule(token, ctx);\n\nexport const assertCanCreateConfiguration = (token: StorageToken, ctx: ConfigurationCtx): void => {\n if (!canCreateConfiguration(token, ctx)) {\n throw new PermissionDeniedError({\n action: 'create-configuration',\n reason: baseDenialReason(ctx),\n });\n }\n};\n\nexport const assertCanUpdateConfiguration = (token: StorageToken, ctx: ConfigurationCtx): void => {\n if (!canUpdateConfiguration(token, ctx)) {\n throw new PermissionDeniedError({\n action: 'update-configuration',\n reason: baseDenialReason(ctx),\n });\n }\n};\n\nexport const assertCanCopyConfiguration = (token: StorageToken, ctx: ConfigurationCtx): void => {\n if (!canCopyConfiguration(token, ctx)) {\n throw new PermissionDeniedError({\n action: 'copy-configuration',\n reason: baseDenialReason(ctx),\n });\n }\n};\n\nexport const assertCanMigrateFromTemplate = (token: StorageToken, ctx: ConfigurationCtx): void => {\n if (!canMigrateFromTemplate(token, ctx)) {\n throw new PermissionDeniedError({\n action: 'migrate-from-template',\n reason: baseDenialReason(ctx),\n });\n }\n};\n\nexport const assertCanPurgeConfiguration = (token: StorageToken, ctx: ConfigurationCtx): void => {\n if (!canPurgeConfiguration(token, ctx)) {\n throw new PermissionDeniedError({\n action: 'purge-configuration',\n reason: 'purge requires admin role',\n });\n }\n};\n\nexport const assertCanAssignFolder = (token: StorageToken, ctx: ConfigurationCtx): void => {\n if (!canAssignFolder(token, ctx)) {\n throw new PermissionDeniedError({\n action: 'assign-folder',\n reason: baseDenialReason(ctx),\n });\n }\n};\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { t as isPlainObject } from "./isPlainObject-LYW-03uB.js";
2
- import { o as assertCanUpdateConfiguration, r as assertCanCreateConfiguration } from "./configurations-BVvcimzo.js";
3
- import { t as ComponentId } from "./componentId-vJz-kWs6.js";
2
+ import { o as assertCanUpdateConfiguration, r as assertCanCreateConfiguration } from "./configurations-Chg_JwJ1.js";
3
+ import { t as ComponentId } from "./componentId-BJLfnaGc.js";
4
4
  import { z } from "zod";
5
5
  //#region src/utils/isEmptyDeep.ts
6
6
  /**
@@ -22,19 +22,13 @@ const isEmptyDeep = (value) => {
22
22
  /** Strip optional/nullable/default wrappers to reach the structural schema node. */
23
23
  const unwrap = (schema) => schema instanceof z.ZodOptional || schema instanceof z.ZodNullable || schema instanceof z.ZodDefault ? unwrap(schema.unwrap()) : schema;
24
24
  /**
25
- * Merge `patch` into `base`, guided by `schema`: descend only through object schemas, merging
26
- * key-by-key. At every non-object node — a `z.union` (e.g. Snowflake's password|keypair auth),
27
- * an array, or a primitive — the patch REPLACES the base wholesale. That replace is what lets an
28
- * update *delete* keys the additive `deepMerge` cannot: switching a credential union to the other
29
- * variant drops the abandoned variant's secret, because the entire union subtree is swapped.
25
+ * Merge `patch` into `base`, descending only through object schemas.
30
26
  *
31
- * Consequence: a union (or array) subtree is all-or-nothing — the caller must send the complete
32
- * block, since a partial patch replaces (and so loses) the omitted siblings.
33
- *
34
- * Object keys present only in `base` (e.g. `storage`, `processors`, anything the schema omits) are
35
- * preserved at every level; `undefined` patch values are skipped. Assumes `patch` is already
36
- * schema-validated (so every object-valued patch key has a matching schema node). Pure — neither
37
- * argument is mutated.
27
+ * - At a non-object node (union, array, primitive) the patch replaces the base wholesale, so
28
+ * switching a union variant drops the old variant's secret.
29
+ * - Hence a union or array subtree is all-or-nothing: send the complete block.
30
+ * - Keys only in `base` are kept; `undefined` patch values are skipped.
31
+ * - Assumes `patch` is schema-validated. Pure.
38
32
  */
39
33
  const schemaGuidedMerge = (schema, base, patch) => {
40
34
  const node = unwrap(schema);
@@ -243,13 +237,10 @@ const exHttpSchema = z.object({ parameters: z.object({
243
237
  //#endregion
244
238
  //#region src/sdks/configurations/schemas/exDb/exDbDefaultSchema.ts
245
239
  /**
246
- * Default extractor credentials — host/port/user/#password/database + optional SSH tunnel, the
247
- * same `parameters.db` block the writers use. Tunnel support mirrors kbc-ui's `hasSshTunnel` /
248
- * `hasSsl` (`apps/kbc-ui/src/scripts/modules/ex-db-generic/helpers.ts`): most drivers accept an
249
- * SSH tunnel, only pgsql/mysql/mssql also accept SSL, and a handful accept neither. This shared
250
- * schema covers the generic SSH-only drivers: redshift, db2(-bata), mssql-cdata, impala,
251
- * hive(-csas, -csas-test). SSL-capable pgsql and the tunnel-less progress-db get their own
252
- * schema, as do drivers with extra/renamed fields.
240
+ * Default extractor credentials with an optional SSH tunnel, for the generic SSH-only drivers.
241
+ *
242
+ * - Keep in sync with kbc-ui's `hasSshTunnel` / `hasSsl` (`ex-db-generic/helpers.ts`).
243
+ * - SSL-capable, tunnel-less and extra-field drivers get their own schema.
253
244
  */
254
245
  const exDbDefaultSchema = dbConfig(dbConnectionSchema.extend({ ssh: sshTunnelSchema.optional() }));
255
246
  //#endregion
@@ -445,6 +436,7 @@ const exGoogleAdsSchema = z.object({
445
436
  parameters: z.object({
446
437
  customerId: z.array(z.string()),
447
438
  onlyEnabledCustomers: z.boolean().optional(),
439
+ continueOnFailure: z.boolean().optional(),
448
440
  getAccountChildren: z.boolean().optional()
449
441
  })
450
442
  });
@@ -723,4 +715,4 @@ const createConfigurationSdk = ({ storageClient, encryptionClient, context }) =>
723
715
  //#endregion
724
716
  export { schemaGuidedMerge as n, isEmptyDeep as r, createConfigurationSdk as t };
725
717
 
726
- //# sourceMappingURL=configurations-VtNE0nrT.js.map
718
+ //# sourceMappingURL=configurations-CF3xz7RB.js.map