@keboola/api-client 50.0.0 → 52.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 (425) hide show
  1. package/AGENTS.md +46 -8
  2. package/API-SURFACE.md +2 -10
  3. package/CHANGELOG.md +37 -0
  4. package/README.md +2 -2
  5. package/dist/{ManagementSessionMintError-DNMbYauw.js → ManagementSessionMintError-BMHDcEqV.js} +2 -2
  6. package/dist/{ManagementSessionMintError-DNMbYauw.js.map → ManagementSessionMintError-BMHDcEqV.js.map} +1 -1
  7. package/dist/{ManagementSessionMintError-ByOulHQH.cjs → ManagementSessionMintError-Bc9bc7Ai.cjs} +2 -2
  8. package/dist/{ManagementSessionMintError-ByOulHQH.cjs.map → ManagementSessionMintError-Bc9bc7Ai.cjs.map} +1 -1
  9. package/dist/RowLevelSecurityError-CObFqj3E.js +33 -0
  10. package/dist/RowLevelSecurityError-CObFqj3E.js.map +1 -0
  11. package/dist/RowLevelSecurityError-RK_NhhAx.cjs +56 -0
  12. package/dist/RowLevelSecurityError-RK_NhhAx.cjs.map +1 -0
  13. package/dist/{adminRoles-FFyl7Dyx.d.cts → adminRoles-BTKVwEy8.d.cts} +2 -2
  14. package/dist/{adminRoles-DAwl657q.d.ts → adminRoles-Cm513r1G.d.ts} +2 -2
  15. package/dist/ai/index.cjs +2 -2
  16. package/dist/ai/index.d.cts +2 -2
  17. package/dist/ai/index.d.ts +2 -2
  18. package/dist/ai/index.js +2 -2
  19. package/dist/ai/types.d.cts +1 -1
  20. package/dist/ai/types.d.ts +1 -1
  21. package/dist/apps/index.cjs +3 -234
  22. package/dist/apps/index.d.cts +3 -212
  23. package/dist/apps/index.d.ts +3 -212
  24. package/dist/apps/index.js +1 -234
  25. package/dist/apps/types.d.cts +1 -2
  26. package/dist/apps/types.d.ts +1 -2
  27. package/dist/apps-BN7fWtSm.js +361 -0
  28. package/dist/apps-BN7fWtSm.js.map +1 -0
  29. package/dist/apps-C1x5IKNQ.cjs +376 -0
  30. package/dist/apps-C1x5IKNQ.cjs.map +1 -0
  31. package/dist/assets/index.cjs +1 -1
  32. package/dist/assets/index.d.cts +1 -1
  33. package/dist/assets/index.d.ts +1 -1
  34. package/dist/assets/index.js +1 -1
  35. package/dist/auth/index.cjs +1 -1
  36. package/dist/auth/index.d.cts +1 -1
  37. package/dist/auth/index.d.ts +1 -1
  38. package/dist/auth/index.js +1 -1
  39. package/dist/auth/types.d.cts +1 -1
  40. package/dist/auth/types.d.ts +1 -1
  41. package/dist/{auth-CvB4MukT.cjs → auth-AehUDNRK.cjs} +2 -2
  42. package/dist/{auth-CvB4MukT.cjs.map → auth-AehUDNRK.cjs.map} +1 -1
  43. package/dist/{auth-DYfQMQCs.js → auth-ZBQWCJPM.js} +2 -2
  44. package/dist/{auth-DYfQMQCs.js.map → auth-ZBQWCJPM.js.map} +1 -1
  45. package/dist/{authClient-oB5ydxWp.js → authClient-BM4L8XEN.js} +5 -5
  46. package/dist/{authClient-oB5ydxWp.js.map → authClient-BM4L8XEN.js.map} +1 -1
  47. package/dist/{authClient-DcKBpMcU.cjs → authClient-DspK50e7.cjs} +5 -5
  48. package/dist/{authClient-DcKBpMcU.cjs.map → authClient-DspK50e7.cjs.map} +1 -1
  49. package/dist/{authClient-Df3U4q_6.d.cts → authClient-NBi0pqD5.d.cts} +4 -4
  50. package/dist/{authClient-JtMVJWXY.d.ts → authClient-ij_Rm2Yn.d.ts} +4 -4
  51. package/dist/billing/index.cjs +2 -2
  52. package/dist/billing/index.d.cts +1 -1
  53. package/dist/billing/index.d.ts +1 -1
  54. package/dist/billing/index.js +2 -2
  55. package/dist/billing/types.d.cts +1 -1
  56. package/dist/billing/types.d.ts +1 -1
  57. package/dist/chat/index.cjs +3 -3
  58. package/dist/chat/index.d.cts +2 -2
  59. package/dist/chat/index.d.ts +2 -2
  60. package/dist/chat/index.js +3 -3
  61. package/dist/chat/types.d.cts +1 -1
  62. package/dist/chat/types.d.ts +1 -1
  63. package/dist/{componentId-b_qBbJEM.js → componentId-DZP1rBix.js} +54 -2
  64. package/dist/componentId-DZP1rBix.js.map +1 -0
  65. package/dist/{componentId-C8ZTXXDo.cjs → componentId-olp0tltf.cjs} +54 -2
  66. package/dist/componentId-olp0tltf.cjs.map +1 -0
  67. package/dist/componentsMcp/index.cjs +1 -1
  68. package/dist/componentsMcp/index.d.cts +1 -1
  69. package/dist/componentsMcp/index.d.ts +1 -1
  70. package/dist/componentsMcp/index.js +1 -1
  71. package/dist/componentsMcp/types.d.cts +1 -1
  72. package/dist/componentsMcp/types.d.ts +1 -1
  73. package/dist/{componentsMcp-BrB4js6b.js → componentsMcp-CAmrCpzV.js} +3 -3
  74. package/dist/{componentsMcp-BrB4js6b.js.map → componentsMcp-CAmrCpzV.js.map} +1 -1
  75. package/dist/{componentsMcp-BaHy5iLr.cjs → componentsMcp-DXu-0Qt-.cjs} +3 -3
  76. package/dist/{componentsMcp-BaHy5iLr.cjs.map → componentsMcp-DXu-0Qt-.cjs.map} +1 -1
  77. package/dist/constants/index.cjs +2 -2
  78. package/dist/constants/index.d.cts +3 -3
  79. package/dist/constants/index.d.ts +3 -3
  80. package/dist/constants/index.js +2 -2
  81. package/dist/{constants-BMSHGwOR.js → constants-Dqi0ewGv.js} +3 -2
  82. package/dist/constants-Dqi0ewGv.js.map +1 -0
  83. package/dist/{constants-DhFQWQgy.cjs → constants-d0Do9NSN.cjs} +3 -2
  84. package/dist/constants-d0Do9NSN.cjs.map +1 -0
  85. package/dist/{createFetchClient-DEkUH662.cjs → createFetchClient-CDKSkd7i.cjs} +19 -1
  86. package/dist/{createFetchClient-DlGCbltR.js.map → createFetchClient-CDKSkd7i.cjs.map} +1 -1
  87. package/dist/{createFetchClient-DlGCbltR.js → createFetchClient-Dc_ZMuq7.js} +8 -2
  88. package/dist/createFetchClient-Dc_ZMuq7.js.map +1 -0
  89. package/dist/{createGenericFetchClient-wGxemBwR.js → createGenericFetchClient-Ba4E4T-Y.js} +2 -2
  90. package/dist/{createGenericFetchClient-wGxemBwR.js.map → createGenericFetchClient-Ba4E4T-Y.js.map} +1 -1
  91. package/dist/{createGenericFetchClient-2oU-PXVo.cjs → createGenericFetchClient-BuYzzV_D.cjs} +2 -2
  92. package/dist/{createGenericFetchClient-2oU-PXVo.cjs.map → createGenericFetchClient-BuYzzV_D.cjs.map} +1 -1
  93. package/dist/{createOpenapiFetchClient-Bhz62MUE.js → createOpenapiFetchClient-DSk29o_s.js} +2 -2
  94. package/dist/{createOpenapiFetchClient-Bhz62MUE.js.map → createOpenapiFetchClient-DSk29o_s.js.map} +1 -1
  95. package/dist/{createOpenapiFetchClient-DL9w7vU-.cjs → createOpenapiFetchClient-dkssExkU.cjs} +2 -2
  96. package/dist/{createOpenapiFetchClient-DL9w7vU-.cjs.map → createOpenapiFetchClient-dkssExkU.cjs.map} +1 -1
  97. package/dist/dataScience/index.cjs +60 -4
  98. package/dist/dataScience/index.cjs.map +1 -0
  99. package/dist/dataScience/index.d.cts +105 -3
  100. package/dist/dataScience/index.d.ts +105 -3
  101. package/dist/dataScience/index.js +60 -3
  102. package/dist/dataScience/index.js.map +1 -0
  103. package/dist/dataScience/types.d.cts +2 -3
  104. package/dist/dataScience/types.d.ts +2 -3
  105. package/dist/developerPortal/index.cjs +1 -1
  106. package/dist/developerPortal/index.d.cts +2 -2
  107. package/dist/developerPortal/index.d.ts +2 -2
  108. package/dist/developerPortal/index.js +1 -1
  109. package/dist/developerPortal/types.d.cts +1 -1
  110. package/dist/developerPortal/types.d.ts +1 -1
  111. package/dist/{developerPortalClient-BfRxYrWj.cjs → developerPortalClient-BcK9F-Fs.cjs} +3 -3
  112. package/dist/{developerPortalClient-BfRxYrWj.cjs.map → developerPortalClient-BcK9F-Fs.cjs.map} +1 -1
  113. package/dist/{developerPortalClient-D9XOYwWF.js → developerPortalClient-CzCJ5sE3.js} +3 -3
  114. package/dist/{developerPortalClient-D9XOYwWF.js.map → developerPortalClient-CzCJ5sE3.js.map} +1 -1
  115. package/dist/domain/permissions/index.d.cts +1 -1
  116. package/dist/domain/permissions/index.d.ts +1 -1
  117. package/dist/editor/index.cjs +2 -2
  118. package/dist/editor/index.d.cts +2 -2
  119. package/dist/editor/index.d.ts +2 -2
  120. package/dist/editor/index.js +2 -2
  121. package/dist/editor/types.d.cts +1 -1
  122. package/dist/editor/types.d.ts +1 -1
  123. package/dist/encryption/index.cjs +1 -1
  124. package/dist/encryption/index.d.cts +1 -1
  125. package/dist/encryption/index.d.ts +1 -1
  126. package/dist/encryption/index.js +1 -1
  127. package/dist/encryption/types.d.cts +1 -1
  128. package/dist/encryption/types.d.ts +1 -1
  129. package/dist/import/index.cjs +1 -1
  130. package/dist/import/index.d.cts +3 -3
  131. package/dist/import/index.d.ts +3 -3
  132. package/dist/import/index.js +1 -1
  133. package/dist/{import-CABlFMQX.cjs → import-DHq6q3Fm.cjs} +3 -3
  134. package/dist/{import-CABlFMQX.cjs.map → import-DHq6q3Fm.cjs.map} +1 -1
  135. package/dist/{import-CT1Ce5Rp.js → import-DxN6CJzJ.js} +3 -3
  136. package/dist/{import-CT1Ce5Rp.js.map → import-DxN6CJzJ.js.map} +1 -1
  137. package/dist/{index-Db266tLz.d.cts → index-81wn1jc3.d.cts} +4 -4
  138. package/dist/{index-xX8-Stoq.d.cts → index-8QhOqFLY.d.cts} +4 -4
  139. package/dist/{index-DjSthn8d.d.ts → index-B5rELADq.d.cts} +55 -2
  140. package/dist/{index-CTMnmISl.d.cts → index-B7el5pJU.d.cts} +86 -152
  141. package/dist/index-B8K-Bbdq.d.cts +220 -0
  142. package/dist/{index-DQagqTVa.d.cts → index-BGE3eZfd.d.cts} +3 -3
  143. package/dist/{index-DVBQgFg0.d.ts → index-BVe4S2CK.d.ts} +4 -4
  144. package/dist/{index-CbSh3KFw.d.cts → index-BXgjPlZN.d.cts} +4 -4
  145. package/dist/{index-C9iNazAc.d.ts → index-C7JcNvbd.d.ts} +86 -152
  146. package/dist/{index-lTrNMlj6.d.ts → index-CEDjFidH.d.ts} +3 -3
  147. package/dist/{index-DgGpQsAT.d.cts → index-CNJBmCHM.d.cts} +4 -4
  148. package/dist/index-CQNwp6wX.d.ts +220 -0
  149. package/dist/{index-CuI8OI9E.d.ts → index-CZvBjQvl.d.ts} +4 -4
  150. package/dist/{index-CN0--VsY.d.ts → index-CdeWTy8t.d.ts} +7 -4
  151. package/dist/{index-Xpu7qIZk.d.ts → index-CveF5RFQ.d.ts} +3 -3
  152. package/dist/{index-m9-mN8Gg.d.ts → index-DLWMm1-T.d.ts} +4 -4
  153. package/dist/{index-BDPxm9qu.d.ts → index-DTGOEke4.d.ts} +3 -3
  154. package/dist/{index-DXoN8VwV.d.cts → index-Df8lZNSH.d.cts} +3 -3
  155. package/dist/{index-AA3MRfRn.d.cts → index-Dhyrg5zd.d.ts} +55 -2
  156. package/dist/{index-D1mduJne.d.cts → index-FrsEkDvX.d.cts} +7 -2
  157. package/dist/{index-D1mduJne.d.ts → index-FrsEkDvX.d.ts} +7 -2
  158. package/dist/{index-DIPMzH--.d.ts → index-JoKfPQND.d.ts} +4 -4
  159. package/dist/{index-CCcdySOC.d.cts → index-d9zxFmNI.d.cts} +7 -4
  160. package/dist/{index-z-2okomN.d.cts → index-iFCann29.d.cts} +3 -3
  161. package/dist/index.cjs +50 -42
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +7 -7
  164. package/dist/index.d.ts +7 -7
  165. package/dist/index.js +43 -37
  166. package/dist/index.js.map +1 -1
  167. package/dist/{isLoginPageRedirect-CoUxJi2x.cjs → isLoginPageRedirect-DUmsOC2o.cjs} +2 -2
  168. package/dist/{isLoginPageRedirect-CoUxJi2x.cjs.map → isLoginPageRedirect-DUmsOC2o.cjs.map} +1 -1
  169. package/dist/{isLoginPageRedirect-D-lqF_kZ.js → isLoginPageRedirect-lbeVmeB2.js} +2 -2
  170. package/dist/{isLoginPageRedirect-D-lqF_kZ.js.map → isLoginPageRedirect-lbeVmeB2.js.map} +1 -1
  171. package/dist/kaiAgent/index.cjs +1 -1
  172. package/dist/kaiAgent/index.d.cts +2 -2
  173. package/dist/kaiAgent/index.d.ts +2 -2
  174. package/dist/kaiAgent/index.js +1 -1
  175. package/dist/kaiAgent/types.d.cts +1 -1
  176. package/dist/kaiAgent/types.d.ts +1 -1
  177. package/dist/{kaiAgent-D2TiMDjW.js → kaiAgent-D0MoKqXe.js} +15 -5
  178. package/dist/kaiAgent-D0MoKqXe.js.map +1 -0
  179. package/dist/{kaiAgent-gaA7dqki.cjs → kaiAgent-De2T6G4G.cjs} +15 -5
  180. package/dist/kaiAgent-De2T6G4G.cjs.map +1 -0
  181. package/dist/{kaiMemory-oir_qCo_.js → kaiMemory-B1wIwH8Y.js} +2 -2
  182. package/dist/{kaiMemory-oir_qCo_.js.map → kaiMemory-B1wIwH8Y.js.map} +1 -1
  183. package/dist/{kaiMemory-CkLQfJXD.cjs → kaiMemory-DZ6hXni_.cjs} +2 -2
  184. package/dist/{kaiMemory-CkLQfJXD.cjs.map → kaiMemory-DZ6hXni_.cjs.map} +1 -1
  185. package/dist/management/index.cjs +1 -1
  186. package/dist/management/index.d.cts +1 -1
  187. package/dist/management/index.d.ts +1 -1
  188. package/dist/management/index.js +1 -1
  189. package/dist/management/types.d.cts +2 -2
  190. package/dist/management/types.d.ts +2 -2
  191. package/dist/{management-BEGOEQxM.cjs → management-CUXgB2rb.cjs} +6 -6
  192. package/dist/{management-BEGOEQxM.cjs.map → management-CUXgB2rb.cjs.map} +1 -1
  193. package/dist/{management-BcGHyxAP.js → management-Cz5ut18k.js} +6 -6
  194. package/dist/{management-BcGHyxAP.js.map → management-Cz5ut18k.js.map} +1 -1
  195. package/dist/metastore/index.cjs +1 -1
  196. package/dist/metastore/index.d.cts +1 -1
  197. package/dist/metastore/index.d.ts +1 -1
  198. package/dist/metastore/index.js +1 -1
  199. package/dist/metastore/types.d.cts +1 -1
  200. package/dist/metastore/types.d.ts +1 -1
  201. package/dist/{metastore-DeRQ2VIv.cjs → metastore-CV4DUDxP.cjs} +4 -4
  202. package/dist/{metastore-DeRQ2VIv.cjs.map → metastore-CV4DUDxP.cjs.map} +1 -1
  203. package/dist/{metastore-CGsgxjng.js → metastore-CkqFnEfu.js} +4 -4
  204. package/dist/{metastore-CGsgxjng.js.map → metastore-CkqFnEfu.js.map} +1 -1
  205. package/dist/microsoftGraph/index.cjs +2 -2
  206. package/dist/microsoftGraph/index.d.cts +2 -2
  207. package/dist/microsoftGraph/index.d.ts +2 -2
  208. package/dist/microsoftGraph/index.js +2 -2
  209. package/dist/microsoftGraph/types.d.cts +1 -1
  210. package/dist/microsoftGraph/types.d.ts +1 -1
  211. package/dist/{middleware-8zaJWcyU.js → middleware-DxGv7DG8.js} +2 -2
  212. package/dist/{middleware-8zaJWcyU.js.map → middleware-DxGv7DG8.js.map} +1 -1
  213. package/dist/{middleware-B9RNuLfD.cjs → middleware-vIaPDtQI.cjs} +2 -2
  214. package/dist/{middleware-B9RNuLfD.cjs.map → middleware-vIaPDtQI.cjs.map} +1 -1
  215. package/dist/notifications/index.cjs +3 -3
  216. package/dist/notifications/index.d.cts +2 -2
  217. package/dist/notifications/index.d.ts +2 -2
  218. package/dist/notifications/index.js +3 -3
  219. package/dist/notifications/types.d.cts +1 -1
  220. package/dist/notifications/types.d.ts +1 -1
  221. package/dist/oauth/index.cjs +1 -1
  222. package/dist/oauth/index.d.cts +2 -2
  223. package/dist/oauth/index.d.ts +2 -2
  224. package/dist/oauth/index.js +1 -1
  225. package/dist/oauth/types.d.cts +1 -1
  226. package/dist/oauth/types.d.ts +1 -1
  227. package/dist/{oauth-B5Biqz21.cjs → oauth-CSBChWuf.cjs} +5 -5
  228. package/dist/{oauth-B5Biqz21.cjs.map → oauth-CSBChWuf.cjs.map} +1 -1
  229. package/dist/{oauth-ByCdISsV.js → oauth-DOveZKUv.js} +5 -5
  230. package/dist/{oauth-ByCdISsV.js.map → oauth-DOveZKUv.js.map} +1 -1
  231. package/dist/omnisearch/index.cjs +2 -2
  232. package/dist/omnisearch/index.d.cts +2 -2
  233. package/dist/omnisearch/index.d.ts +2 -2
  234. package/dist/omnisearch/index.js +2 -2
  235. package/dist/omnisearch/types.d.cts +1 -1
  236. package/dist/omnisearch/types.d.ts +1 -1
  237. package/dist/{project-UHZGFmmG.d.cts → project-BGk9CtOq.d.cts} +3 -3
  238. package/dist/{project-iBm4cIIR.d.ts → project-DS0HOV3M.d.ts} +3 -3
  239. package/dist/queryService/index.cjs +1 -1
  240. package/dist/queryService/index.d.cts +2 -2
  241. package/dist/queryService/index.d.ts +2 -2
  242. package/dist/queryService/index.js +1 -1
  243. package/dist/queryService/types.d.cts +1 -1
  244. package/dist/queryService/types.d.ts +1 -1
  245. package/dist/queryService-C3BQ6GKW.cjs +214 -0
  246. package/dist/queryService-C3BQ6GKW.cjs.map +1 -0
  247. package/dist/queryService-DQHtHy2-.js +209 -0
  248. package/dist/queryService-DQHtHy2-.js.map +1 -0
  249. package/dist/queue/index.cjs +1 -1
  250. package/dist/queue/index.d.cts +3 -3
  251. package/dist/queue/index.d.ts +3 -3
  252. package/dist/queue/index.js +1 -1
  253. package/dist/queue/types.d.cts +1 -1
  254. package/dist/queue/types.d.ts +1 -1
  255. package/dist/{queue-BiIs9fX4.js → queue-6cywDnA-.js} +5 -5
  256. package/dist/{queue-BiIs9fX4.js.map → queue-6cywDnA-.js.map} +1 -1
  257. package/dist/{queue-CBi9Q8vp.cjs → queue-J2uXzXR9.cjs} +5 -5
  258. package/dist/{queue-CBi9Q8vp.cjs.map → queue-J2uXzXR9.cjs.map} +1 -1
  259. package/dist/scheduler/index.cjs +3 -3
  260. package/dist/scheduler/index.d.cts +2 -2
  261. package/dist/scheduler/index.d.ts +2 -2
  262. package/dist/scheduler/index.js +3 -3
  263. package/dist/scheduler/types.d.cts +1 -1
  264. package/dist/scheduler/types.d.ts +1 -1
  265. package/dist/sdk/configurations/index.cjs +3 -3
  266. package/dist/sdk/configurations/index.cjs.map +1 -1
  267. package/dist/sdk/configurations/index.d.cts +4 -4
  268. package/dist/sdk/configurations/index.d.ts +4 -4
  269. package/dist/sdk/configurations/index.js +3 -3
  270. package/dist/sdk/configurations/index.js.map +1 -1
  271. package/dist/sdk/developerPortal/index.cjs +3 -3
  272. package/dist/sdk/developerPortal/index.d.cts +3 -3
  273. package/dist/sdk/developerPortal/index.d.ts +3 -3
  274. package/dist/sdk/developerPortal/index.js +3 -3
  275. package/dist/sdk/kaiMemory/index.cjs +1 -1
  276. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  277. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  278. package/dist/sdk/kaiMemory/index.js +1 -1
  279. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  280. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  281. package/dist/sdk/queryService/index.d.cts +1 -1
  282. package/dist/sdk/queryService/index.d.ts +1 -1
  283. package/dist/sdk/semanticLayer/index.d.cts +1 -1
  284. package/dist/sdk/semanticLayer/index.d.ts +1 -1
  285. package/dist/sdk/semanticLayer/types.d.cts +1 -1
  286. package/dist/sdk/semanticLayer/types.d.ts +1 -1
  287. package/dist/sdk/tag/index.d.cts +2 -2
  288. package/dist/sdk/tag/index.d.ts +2 -2
  289. package/dist/sdk/tag/types.d.cts +1 -1
  290. package/dist/sdk/tag/types.d.ts +1 -1
  291. package/dist/sdk/vault/index.d.cts +1 -1
  292. package/dist/sdk/vault/index.d.ts +1 -1
  293. package/dist/status/index.cjs +1 -1
  294. package/dist/status/index.d.cts +1 -1
  295. package/dist/status/index.d.ts +1 -1
  296. package/dist/status/index.js +1 -1
  297. package/dist/storage/index.cjs +9 -7
  298. package/dist/storage/index.d.cts +4 -4
  299. package/dist/storage/index.d.ts +4 -4
  300. package/dist/storage/index.js +6 -6
  301. package/dist/storage/types.d.cts +5 -5
  302. package/dist/storage/types.d.ts +5 -5
  303. package/dist/{storage-BpOLWT6h.js → storage--2FvvLAw.js} +7 -7
  304. package/dist/{storage-BpOLWT6h.js.map → storage--2FvvLAw.js.map} +1 -1
  305. package/dist/{storage-KJ5Ki_ma.cjs → storage-BMrYlyLB.cjs} +7 -7
  306. package/dist/{storage-KJ5Ki_ma.cjs.map → storage-BMrYlyLB.cjs.map} +1 -1
  307. package/dist/stream/index.cjs +3 -3
  308. package/dist/stream/index.d.cts +2 -2
  309. package/dist/stream/index.d.ts +2 -2
  310. package/dist/stream/index.js +3 -3
  311. package/dist/stream/types.d.cts +1 -1
  312. package/dist/stream/types.d.ts +1 -1
  313. package/dist/syncActions/index.cjs +1 -1
  314. package/dist/syncActions/index.d.cts +2 -2
  315. package/dist/syncActions/index.d.ts +2 -2
  316. package/dist/syncActions/index.js +1 -1
  317. package/dist/syncActions/types.d.cts +1 -1
  318. package/dist/syncActions/types.d.ts +1 -1
  319. package/dist/{syncActions-BcX3jm2E.cjs → syncActions-DToUhyP3.cjs} +6 -6
  320. package/dist/{syncActions-BcX3jm2E.cjs.map → syncActions-DToUhyP3.cjs.map} +1 -1
  321. package/dist/{syncActions-giPLTfje.js → syncActions-DV_aObTQ.js} +6 -6
  322. package/dist/{syncActions-giPLTfje.js.map → syncActions-DV_aObTQ.js.map} +1 -1
  323. package/dist/telemetry/index.cjs +3 -3
  324. package/dist/telemetry/index.d.cts +2 -2
  325. package/dist/telemetry/index.d.ts +2 -2
  326. package/dist/telemetry/index.js +3 -3
  327. package/dist/telemetry/types.d.cts +1 -1
  328. package/dist/telemetry/types.d.ts +1 -1
  329. package/dist/{transientRetries-BKqmb85B.js → transientRetries-BORv47mH.js} +2 -2
  330. package/dist/{transientRetries-BKqmb85B.js.map → transientRetries-BORv47mH.js.map} +1 -1
  331. package/dist/{transientRetries-CM7rAEXQ.cjs → transientRetries-CBorl4Ue.cjs} +2 -2
  332. package/dist/{transientRetries-CM7rAEXQ.cjs.map → transientRetries-CBorl4Ue.cjs.map} +1 -1
  333. package/dist/{types-BWMOK6eL.d.cts → types-B4Vwz45w.d.cts} +2 -2
  334. package/dist/{types-Dryq2GGE.d.cts → types-B4ezB18r.d.cts} +2 -2
  335. package/dist/{types-Bdl7EFMc.d.ts → types-B6JcEPEu.d.ts} +2 -2
  336. package/dist/{types-eFi8xJIM.d.cts → types-B6f6LpZ_.d.cts} +2 -2
  337. package/dist/{types-C9okze_R.d.ts → types-BD0B1KQ6.d.ts} +3 -26
  338. package/dist/{types-DeyXJzWz.d.cts → types-BEw98Dd2.d.cts} +2 -2
  339. package/dist/{types-1IBnjBVJ.d.cts → types-BVJmcoqA.d.cts} +2 -2
  340. package/dist/{types-B1qe1etN.d.cts → types-BljDxuWG.d.cts} +3 -3
  341. package/dist/{types-BiDdBXSm.d.ts → types-Bp8G9yta.d.ts} +2 -2
  342. package/dist/{types-BCGrKW1K.d.cts → types-Bv2Ds1hL.d.cts} +125 -2
  343. package/dist/{types-D-tJt0hQ.d.cts → types-BynQKst1.d.cts} +2 -2
  344. package/dist/{types-BuclMPeY.d.cts → types-C5B3Pfob.d.cts} +2 -2
  345. package/dist/{types-DNgazFnF.d.cts → types-CIlBSV99.d.cts} +2 -2
  346. package/dist/{types-DschSZHf.d.cts → types-CKdNf_2k.d.cts} +3 -3
  347. package/dist/{types-B0e-no6u.d.ts → types-CLtYOszN.d.cts} +20 -3
  348. package/dist/{types-Du5o-tud.d.ts → types-CQYyULrw.d.ts} +2 -2
  349. package/dist/{types-BB49alHP.d.cts → types-CRC4lbPw.d.cts} +18 -5
  350. package/dist/{types-CxEJ77m3.d.cts → types-CSE8bHiq.d.cts} +3 -3
  351. package/dist/{types-DRCttnIN.d.ts → types-CTYTMXXj.d.ts} +2 -2
  352. package/dist/{types-6T04_qUf.d.ts → types-CepTvkfm.d.ts} +2 -2
  353. package/dist/{types-DHMxPJZq.d.cts → types-Cf0WE6qK.d.cts} +2 -2
  354. package/dist/{types-DwbTiyhZ.d.cts → types-ChOJ-Az7.d.cts} +2 -2
  355. package/dist/{types-wYrC2boT.d.ts → types-Cr6WA6CN.d.ts} +2 -2
  356. package/dist/{types-D6lre27s.d.ts → types-CsVRsObb.d.ts} +2 -2
  357. package/dist/{types-CcGp6O3B.d.cts → types-D-ufoskb.d.cts} +2 -2
  358. package/dist/{types-LconaX98.d.cts → types-D2hhEGem.d.cts} +2 -2
  359. package/dist/{types-inG9y3dP.d.ts → types-D5bxXqEU.d.ts} +2 -2
  360. package/dist/{types-BE8abIig.d.cts → types-DKKHKj19.d.cts} +2 -2
  361. package/dist/{types-E8tzafsk.d.cts → types-DNwIMEuB.d.cts} +3 -26
  362. package/dist/{types-DtOfhDzz.d.ts → types-DSWIIMdv.d.ts} +3 -3
  363. package/dist/{types-Bat0SIZA.d.cts → types-DU8aPTFW.d.cts} +2 -2
  364. package/dist/{types-Dz9vyloX.d.ts → types-DX1Dz0xK.d.ts} +125 -2
  365. package/dist/{types-ZZwdKCBl.d.ts → types-DbthI3r-.d.ts} +2 -2
  366. package/dist/{types-B3ri-iiC.d.ts → types-DjSjUKUl.d.ts} +2 -2
  367. package/dist/{types-YpOm4yXE.d.cts → types-DjWubjvP.d.cts} +2 -2
  368. package/dist/{types-CRubbBcU.d.cts → types-Do3__S4Q.d.cts} +2 -2
  369. package/dist/{types-BfB-XXLF.d.ts → types-DoSZQ1Bi.d.ts} +18 -5
  370. package/dist/{types-CWcdaq-K.d.ts → types-Dsf7CYmm.d.ts} +2 -2
  371. package/dist/{types-CPWjRdnj.d.cts → types-Ey59ZILC.d.ts} +20 -3
  372. package/dist/{types--Rp5wvaz.d.ts → types-OHt0D_f2.d.ts} +2 -2
  373. package/dist/{types-Cr5lyI99.d.ts → types-Rrcx-8LM.d.ts} +2 -2
  374. package/dist/{types-DUpVIuk7.d.ts → types-Tg3euEN_.d.ts} +2 -2
  375. package/dist/{types-37vwxse4.d.cts → types-Y4e8GGa3.d.cts} +2 -2
  376. package/dist/{types-DJzTVMu1.d.ts → types-d5Bt8Mr3.d.ts} +2 -2
  377. package/dist/{types-jjOulnni.d.ts → types-dU3EA8gk.d.ts} +2 -2
  378. package/dist/{types-ir7T2a9a.d.ts → types-iU1Sc1IM.d.ts} +3 -3
  379. package/dist/{types-zPY-XGnM.d.ts → types-kGZQQcIK.d.ts} +2 -2
  380. package/dist/{types-xzt_2H63.d.ts → types-zlYUn0oi.d.ts} +3 -3
  381. package/dist/{validateConnectionStatus-DYwWeWVo.js → validateConnectionStatus-DV00sDmu.js} +3 -3
  382. package/dist/{validateConnectionStatus-DYwWeWVo.js.map → validateConnectionStatus-DV00sDmu.js.map} +1 -1
  383. package/dist/{validateConnectionStatus-BjemGI1e.cjs → validateConnectionStatus-ckaHcRx8.cjs} +3 -3
  384. package/dist/{validateConnectionStatus-BjemGI1e.cjs.map → validateConnectionStatus-ckaHcRx8.cjs.map} +1 -1
  385. package/dist/vault/index.cjs +4 -4
  386. package/dist/vault/index.d.cts +1 -1
  387. package/dist/vault/index.d.ts +1 -1
  388. package/dist/vault/index.js +4 -4
  389. package/dist/vault/types.d.cts +1 -1
  390. package/dist/vault/types.d.ts +1 -1
  391. package/package.json +2 -2
  392. package/surface/apps.md +10 -10
  393. package/surface/dataScience.md +2 -11
  394. package/surface/editor.md +5 -5
  395. package/surface/kaiAgent.md +1 -0
  396. package/surface/queue.md +1 -1
  397. package/dist/QueryJobError-Iq9O90Uh.js +0 -21
  398. package/dist/QueryJobError-Iq9O90Uh.js.map +0 -1
  399. package/dist/QueryJobError-Oy0fl4aw.cjs +0 -32
  400. package/dist/QueryJobError-Oy0fl4aw.cjs.map +0 -1
  401. package/dist/appLogs-CTvZAihm.d.ts +0 -8
  402. package/dist/appLogs-CnLNMH7M.d.cts +0 -8
  403. package/dist/appLogs-CoAWQGxs.cjs +0 -152
  404. package/dist/appLogs-CoAWQGxs.cjs.map +0 -1
  405. package/dist/appLogs-DFcPwVk8.js +0 -131
  406. package/dist/appLogs-DFcPwVk8.js.map +0 -1
  407. package/dist/apps/index.cjs.map +0 -1
  408. package/dist/apps/index.js.map +0 -1
  409. package/dist/componentId-C8ZTXXDo.cjs.map +0 -1
  410. package/dist/componentId-b_qBbJEM.js.map +0 -1
  411. package/dist/constants-BMSHGwOR.js.map +0 -1
  412. package/dist/constants-DhFQWQgy.cjs.map +0 -1
  413. package/dist/createFetchClient-DEkUH662.cjs.map +0 -1
  414. package/dist/dataScience-CXmkEOAi.js +0 -118
  415. package/dist/dataScience-CXmkEOAi.js.map +0 -1
  416. package/dist/dataScience-CufjHPSd.cjs +0 -123
  417. package/dist/dataScience-CufjHPSd.cjs.map +0 -1
  418. package/dist/index-BZDxWvZW.d.ts +0 -214
  419. package/dist/index-ClIV2Lch.d.cts +0 -214
  420. package/dist/kaiAgent-D2TiMDjW.js.map +0 -1
  421. package/dist/kaiAgent-gaA7dqki.cjs.map +0 -1
  422. package/dist/queryService-Cg-eMysa.cjs +0 -126
  423. package/dist/queryService-Cg-eMysa.cjs.map +0 -1
  424. package/dist/queryService-x8kq8Z2-.js +0 -121
  425. package/dist/queryService-x8kq8Z2-.js.map +0 -1
@@ -1,4 +1,4 @@
1
- const require_createFetchClient = require("./createFetchClient-DEkUH662.cjs");
1
+ const require_createFetchClient = require("./createFetchClient-CDKSkd7i.cjs");
2
2
  // src/clients/isLoginPageRedirect.ts
3
3
  /**
4
4
  * Whether a response is Connection's login screen arriving in place of the endpoint's payload.
@@ -15,4 +15,4 @@ Object.defineProperty(exports, "isLoginPageRedirect", {
15
15
  }
16
16
  });
17
17
 
18
- //# sourceMappingURL=isLoginPageRedirect-CoUxJi2x.cjs.map
18
+ //# sourceMappingURL=isLoginPageRedirect-DUmsOC2o.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"isLoginPageRedirect-CoUxJi2x.cjs","names":["isHtmlResponse","isContentEmpty"],"sources":["../src/clients/isLoginPageRedirect.ts"],"sourcesContent":["import { type ApiResponse, isContentEmpty, isHtmlResponse } from '../fetchClient';\n\n/**\n * Whether a response is Connection's login screen arriving in place of the endpoint's payload.\n *\n * - An expired session `302`s to login; `fetch` follows it and resolves `200 text/html`.\n * - Caller checks the status: HTML on a failure is a real error page.\n * - Content type alone is not enough: Symfony stamps `text/html` on bodyless responses (e.g. `202`).\n */\nexport const isLoginPageRedirect = (apiResponse: ApiResponse) =>\n isHtmlResponse(apiResponse) && !isContentEmpty(apiResponse);\n"],"mappings":";;;;;;;;;AASA,MAAa,uBAAuB,gBAClCA,0BAAAA,eAAe,WAAW,KAAK,CAACC,0BAAAA,eAAe,WAAW"}
1
+ {"version":3,"file":"isLoginPageRedirect-DUmsOC2o.cjs","names":["isHtmlResponse","isContentEmpty"],"sources":["../src/clients/isLoginPageRedirect.ts"],"sourcesContent":["import { type ApiResponse, isContentEmpty, isHtmlResponse } from '../fetchClient';\n\n/**\n * Whether a response is Connection's login screen arriving in place of the endpoint's payload.\n *\n * - An expired session `302`s to login; `fetch` follows it and resolves `200 text/html`.\n * - Caller checks the status: HTML on a failure is a real error page.\n * - Content type alone is not enough: Symfony stamps `text/html` on bodyless responses (e.g. `202`).\n */\nexport const isLoginPageRedirect = (apiResponse: ApiResponse) =>\n isHtmlResponse(apiResponse) && !isContentEmpty(apiResponse);\n"],"mappings":";;;;;;;;;AASA,MAAa,uBAAuB,gBAClCA,0BAAAA,eAAe,WAAW,KAAK,CAACC,0BAAAA,eAAe,WAAW"}
@@ -1,4 +1,4 @@
1
- import { l as isContentEmpty, u as isHtmlResponse } from "./createFetchClient-DlGCbltR.js";
1
+ import { l as isContentEmpty, u as isHtmlResponse } from "./createFetchClient-Dc_ZMuq7.js";
2
2
  // src/clients/isLoginPageRedirect.ts
3
3
  /**
4
4
  * Whether a response is Connection's login screen arriving in place of the endpoint's payload.
@@ -10,4 +10,4 @@ import { l as isContentEmpty, u as isHtmlResponse } from "./createFetchClient-Dl
10
10
  const isLoginPageRedirect = (apiResponse) => isHtmlResponse(apiResponse) && !isContentEmpty(apiResponse);
11
11
  export { isLoginPageRedirect as t };
12
12
 
13
- //# sourceMappingURL=isLoginPageRedirect-D-lqF_kZ.js.map
13
+ //# sourceMappingURL=isLoginPageRedirect-lbeVmeB2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isLoginPageRedirect-D-lqF_kZ.js","names":[],"sources":["../src/clients/isLoginPageRedirect.ts"],"sourcesContent":["import { type ApiResponse, isContentEmpty, isHtmlResponse } from '../fetchClient';\n\n/**\n * Whether a response is Connection's login screen arriving in place of the endpoint's payload.\n *\n * - An expired session `302`s to login; `fetch` follows it and resolves `200 text/html`.\n * - Caller checks the status: HTML on a failure is a real error page.\n * - Content type alone is not enough: Symfony stamps `text/html` on bodyless responses (e.g. `202`).\n */\nexport const isLoginPageRedirect = (apiResponse: ApiResponse) =>\n isHtmlResponse(apiResponse) && !isContentEmpty(apiResponse);\n"],"mappings":";;;;;;;;;AASA,MAAa,uBAAuB,gBAClC,eAAe,WAAW,KAAK,CAAC,eAAe,WAAW"}
1
+ {"version":3,"file":"isLoginPageRedirect-lbeVmeB2.js","names":[],"sources":["../src/clients/isLoginPageRedirect.ts"],"sourcesContent":["import { type ApiResponse, isContentEmpty, isHtmlResponse } from '../fetchClient';\n\n/**\n * Whether a response is Connection's login screen arriving in place of the endpoint's payload.\n *\n * - An expired session `302`s to login; `fetch` follows it and resolves `200 text/html`.\n * - Caller checks the status: HTML on a failure is a real error page.\n * - Content type alone is not enough: Symfony stamps `text/html` on bodyless responses (e.g. `202`).\n */\nexport const isLoginPageRedirect = (apiResponse: ApiResponse) =>\n isHtmlResponse(apiResponse) && !isContentEmpty(apiResponse);\n"],"mappings":";;;;;;;;;AASA,MAAa,uBAAuB,gBAClC,eAAe,WAAW,KAAK,CAAC,eAAe,WAAW"}
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_kaiAgent = require("../kaiAgent-gaA7dqki.cjs");
2
+ const require_kaiAgent = require("../kaiAgent-De2T6G4G.cjs");
3
3
  exports.createKaiAgentClient = require_kaiAgent.createKaiAgentClient;
@@ -1,3 +1,3 @@
1
- import { h as ProjectToolPolicyValue, m as ProjectToolPolicy } from "../types-DwbTiyhZ.cjs";
2
- import { a as UserAgentSettings, n as MemorySaveMode, o as UserMemory, s as createKaiAgentClient, t as AgentSettings } from "../index-CCcdySOC.cjs";
1
+ import { h as ProjectToolPolicyValue, m as ProjectToolPolicy } from "../types-ChOJ-Az7.cjs";
2
+ import { a as UserAgentSettings, n as MemorySaveMode, o as UserMemory, s as createKaiAgentClient, t as AgentSettings } from "../index-d9zxFmNI.cjs";
3
3
  export { type AgentSettings, type MemorySaveMode, type ProjectToolPolicy, type ProjectToolPolicyValue, type UserAgentSettings, type UserMemory, createKaiAgentClient };
@@ -1,3 +1,3 @@
1
- import { h as ProjectToolPolicyValue, m as ProjectToolPolicy } from "../types--Rp5wvaz.js";
2
- import { a as UserAgentSettings, n as MemorySaveMode, o as UserMemory, s as createKaiAgentClient, t as AgentSettings } from "../index-CN0--VsY.js";
1
+ import { h as ProjectToolPolicyValue, m as ProjectToolPolicy } from "../types-OHt0D_f2.js";
2
+ import { a as UserAgentSettings, n as MemorySaveMode, o as UserMemory, s as createKaiAgentClient, t as AgentSettings } from "../index-CdeWTy8t.js";
3
3
  export { type AgentSettings, type MemorySaveMode, type ProjectToolPolicy, type ProjectToolPolicyValue, type UserAgentSettings, type UserMemory, createKaiAgentClient };
@@ -1 +1 @@
1
- export { t as createKaiAgentClient } from "../kaiAgent-D2TiMDjW.js";
1
+ export { t as createKaiAgentClient } from "../kaiAgent-D0MoKqXe.js";
@@ -1,2 +1,2 @@
1
- import { a as ChatWithMessages, c as GetChatPath, d as PrepareChatRequest, f as UsageResponse, i as ChatRequest, l as GetHistoryQuery, n as ArtifactListResponse, o as GetArtifactPath, p as VoteRequest, r as ArtifactResponse, s as GetArtifactsQuery, t as ApprovalBody, u as GetVotesQuery } from "../types-BCGrKW1K.cjs";
1
+ import { a as ChatWithMessages, c as GetChatPath, d as PrepareChatRequest, f as UsageResponse, i as ChatRequest, l as GetHistoryQuery, n as ArtifactListResponse, o as GetArtifactPath, p as VoteRequest, r as ArtifactResponse, s as GetArtifactsQuery, t as ApprovalBody, u as GetVotesQuery } from "../types-Bv2Ds1hL.cjs";
2
2
  export { ApprovalBody, ArtifactListResponse, ArtifactResponse, ChatRequest, ChatWithMessages, GetArtifactPath, GetArtifactsQuery, GetChatPath, GetHistoryQuery, GetVotesQuery, PrepareChatRequest, UsageResponse, VoteRequest };
@@ -1,2 +1,2 @@
1
- import { a as ChatWithMessages, c as GetChatPath, d as PrepareChatRequest, f as UsageResponse, i as ChatRequest, l as GetHistoryQuery, n as ArtifactListResponse, o as GetArtifactPath, p as VoteRequest, r as ArtifactResponse, s as GetArtifactsQuery, t as ApprovalBody, u as GetVotesQuery } from "../types-Dz9vyloX.js";
1
+ import { a as ChatWithMessages, c as GetChatPath, d as PrepareChatRequest, f as UsageResponse, i as ChatRequest, l as GetHistoryQuery, n as ArtifactListResponse, o as GetArtifactPath, p as VoteRequest, r as ArtifactResponse, s as GetArtifactsQuery, t as ApprovalBody, u as GetVotesQuery } from "../types-DX1Dz0xK.js";
2
2
  export { ApprovalBody, ArtifactListResponse, ArtifactResponse, ChatRequest, ChatWithMessages, GetArtifactPath, GetArtifactsQuery, GetChatPath, GetHistoryQuery, GetVotesQuery, PrepareChatRequest, UsageResponse, VoteRequest };
@@ -1,7 +1,7 @@
1
- import { g as HttpStatus, r as isApiError } from "./createFetchClient-DlGCbltR.js";
2
- import { t as createGenericFetchClient } from "./createGenericFetchClient-wGxemBwR.js";
3
- import { t as createOpenapiFetchClient } from "./createOpenapiFetchClient-Bhz62MUE.js";
4
- import { t as createAuthHeaders } from "./auth-DYfQMQCs.js";
1
+ import { _ as HttpStatus, r as isApiError } from "./createFetchClient-Dc_ZMuq7.js";
2
+ import { t as createGenericFetchClient } from "./createGenericFetchClient-Ba4E4T-Y.js";
3
+ import { t as createOpenapiFetchClient } from "./createOpenapiFetchClient-DSk29o_s.js";
4
+ import { t as createAuthHeaders } from "./auth-ZBQWCJPM.js";
5
5
  import { z } from "zod";
6
6
  // src/clients/kaiAgent/kaiAgentClient.ts
7
7
  const projectToolPolicyValueSchema = z.enum(["blocked", "always_ask"]);
@@ -167,6 +167,15 @@ const createKaiAgentClient = ({ baseUrl, middlewares, auth }) => {
167
167
  body
168
168
  });
169
169
  };
170
+ /**
171
+ * Give the chat's running turn the credential this client now authenticates with.
172
+ *
173
+ * - `updated: false` means no turn of the chat was running; nothing changed.
174
+ */
175
+ const updateTurnCredential = async (chatId) => {
176
+ const { data } = await client.post("/api/chat/{id}/credential", { path: { id: chatId } });
177
+ return data;
178
+ };
170
179
  const stopChat = async (chatId) => {
171
180
  const { data } = await client.post("/api/chat/{id}/stop", { path: { id: chatId } });
172
181
  return data;
@@ -313,6 +322,7 @@ const createKaiAgentClient = ({ baseUrl, middlewares, auth }) => {
313
322
  getArtifact,
314
323
  approveToolCall,
315
324
  submitToolOutput,
325
+ updateTurnCredential,
316
326
  stopChat,
317
327
  prepareChat,
318
328
  getSuggestions,
@@ -338,4 +348,4 @@ const createKaiAgentClient = ({ baseUrl, middlewares, auth }) => {
338
348
  };
339
349
  export { createKaiAgentClient as t };
340
350
 
341
- //# sourceMappingURL=kaiAgent-D2TiMDjW.js.map
351
+ //# sourceMappingURL=kaiAgent-D0MoKqXe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kaiAgent-D0MoKqXe.js","names":[],"sources":["../src/clients/kaiAgent/kaiAgentClient.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { createGenericFetchClient, createOpenapiFetchClient, isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\nimport { createAuthHeaders } from '../auth';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from '../chat/suggestions';\nimport type { ProjectToolPolicy, ProjectToolPolicyValue } from '../chat/types';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ApprovalBody,\n ArtifactListResponse,\n ArtifactResponse,\n ChatRequest,\n GetArtifactPath,\n GetArtifactsQuery,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n PrepareChatRequest,\n UsageResponse,\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 // Optional on the wire (rollout skew): an older kai-agent omits it, and its default is `auto`.\n memorySaveMode: z.enum(['auto', 'ask']).optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst userMemorySchema = z.object({ id: z.string(), content: z.string(), createdAt: z.string() });\n\nconst userMemoriesSchema = z.object({ memories: z.array(userMemorySchema) });\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 skillInfoSchema = z.object({\n name: z.string(),\n description: z.string().nullable(),\n source: z.enum(['first-party', 'vendored', 'project']),\n});\n\nconst builtInCommandSchema = z.object({\n name: z.string(),\n description: z.string(),\n});\n\nconst skillsListResponseSchema = z.object({\n skills: z.array(skillInfoSchema),\n commands: z.array(builtInCommandSchema),\n});\n\nconst sandboxFileEntrySchema = z.object({\n name: z.string(),\n path: z.string(),\n type: z.enum(['file', 'dir']),\n size: z.number().int().nonnegative().optional(),\n});\n\nconst sandboxFileListingSchema = z.object({\n entries: z.array(sandboxFileEntrySchema),\n});\n\nconst sandboxFileContentSchema = z.object({\n content: z.string(),\n encoding: z.enum(['utf-8', 'binary']),\n truncated: z.boolean(),\n size: z.number().int().nonnegative(),\n});\n\nconst sandboxGitBranchSchema = z.object({\n branch: z.string().nullable(),\n});\n\n// `userId` only: kai-agent cannot resolve project members. Join it against\n// `api.management.projects.getProjectUsers`.\nconst spendCapMemberSchema = z.object({\n userId: z.string(),\n overrideLimitPpu: z.number().nullable(),\n effectiveLimitPpu: z.number().nullable(),\n usedPpu: z.number(),\n overrideUpdatedAt: z.string().nullable(),\n overrideUpdatedByUserId: z.string().nullable(),\n});\n\nconst spendCapsViewSchema = z.object({\n // `null` = no configured cap, not unlimited — see `effectiveProjectCapPpu`.\n projectCapPpu: z.number().nullable(),\n // The enforced cap (`projectCapPpu` or kai-agent's DEFAULT_PROJECT_CAP_PPU).\n // Render this; `projectCapPpu` only tells configured from default.\n effectiveProjectCapPpu: z.number(),\n // Platform default regardless of what's saved; validates a cleared-but-unsaved field.\n // Optional on the wire (rollout skew); `withDefaultProjectCap` fills it in.\n defaultProjectCapPpu: z.number().optional(),\n defaultUserLimitPpu: z.number().nullable(),\n projectUsedPpu: z.number(),\n canWrite: z.boolean(),\n members: z.array(spendCapMemberSchema),\n updatedAt: z.string().nullable(),\n updatedByUserId: z.string().nullable(),\n});\n\nconst votesResponseSchema = z.array(\n z.object({\n chatId: z.string(),\n messageId: z.string(),\n isUpvoted: z.boolean(),\n }),\n);\n\nexport type SpendCapMember = z.infer<typeof spendCapMemberSchema>;\n// `defaultProjectCapPpu` is always present here — `getSpendCaps`/`updateSpendCaps` fill it in.\nexport type SpendCapsView = Omit<z.infer<typeof spendCapsViewSchema>, 'defaultProjectCapPpu'> & {\n defaultProjectCapPpu: number;\n};\nexport type AgentSettings = z.infer<typeof agentSettingsSchema>;\nexport type UserAgentSettings = z.infer<typeof userAgentSettingsSchema>;\nexport type UserMemory = z.infer<typeof userMemorySchema>;\nexport type MemorySaveMode = NonNullable<UserAgentSettings['memorySaveMode']>;\ntype ToolsListResponse = z.infer<typeof toolsListResponseSchema>;\ntype SkillsListResponse = z.infer<typeof skillsListResponseSchema>;\ntype SandboxFileListing = z.infer<typeof sandboxFileListingSchema>;\ntype SandboxFileContent = z.infer<typeof sandboxFileContentSchema>;\ntype SandboxGitBranch = z.infer<typeof sandboxGitBranchSchema>;\ntype VotesResponse = z.infer<typeof votesResponseSchema>;\n\ntype UpdateAgentSettingsRequest = {\n customInstructions?: string | null;\n};\n\ntype UpdateUserAgentSettingsRequest = {\n customInstructions?: string | null;\n toolPermissions?: Record<string, z.infer<typeof toolPermissionValueSchema>> | null;\n memorySaveMode?: MemorySaveMode;\n};\n\ntype UpdateSpendCapsRequest = {\n projectCapPpu?: number | null;\n defaultUserLimitPpu?: number | null;\n};\n\nexport const createKaiAgentClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const clientOptions = {\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n };\n\n const client = createOpenapiFetchClient<paths>(clientOptions);\n const genericClient = createGenericFetchClient(clientOptions);\n\n const getHistory = async (params?: GetHistoryQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/api/history', { query: params }, { signal });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/api/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/api/chat', { query: { id: chatId } });\n return data;\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/api/chat', { body: request });\n return response;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']): Promise<VotesResponse> => {\n const { data } = await client.get('/api/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('/api/vote', { body: params });\n };\n\n /**\n * Every artifact a chat produced, oldest first.\n *\n * - Read-only by design: artifacts are derived server-side at the end of a turn, so there is\n * no write route to pair with this.\n * - The chat is the authorization — a chat the caller cannot read has no artifacts.\n */\n const getArtifacts = async (\n chatId: GetArtifactsQuery['chatId'],\n signal?: AbortSignal,\n ): Promise<ArtifactListResponse> => {\n const { data } = await client.get('/api/artifacts', { query: { chatId } }, { signal });\n return data;\n };\n\n const getArtifact = async (\n artifactId: GetArtifactPath['id'],\n signal?: AbortSignal,\n ): Promise<ArtifactResponse> => {\n const { data } = await client.get(\n '/api/artifacts/{id}',\n { path: { id: artifactId } },\n {\n signal,\n },\n );\n return data;\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/api/usage', {}, { signal });\n // `freeAllowance` is ahead of the generated schema — a guard turns a missing field into `null`.\n const parsed = z\n .object({\n freeAllowance: z\n .object({ grantedPpu: z.number(), remainingPpu: z.number() })\n .nullable()\n .optional(),\n })\n .safeParse(data);\n const freeAllowance = parsed.success ? (parsed.data.freeAllowance ?? null) : null;\n return { ...data, freeAllowance };\n };\n\n const approveToolCall = async (chatId: string, body: ApprovalBody): Promise<void> => {\n await client.post('/api/chat/{id}/approval', { path: { id: chatId }, body });\n };\n\n const submitToolOutput = async (\n chatId: string,\n body: { toolUseId: string; output?: string; errorText?: string },\n ): Promise<void> => {\n await client.post('/api/chat/{id}/ui-tool-result', { path: { id: chatId }, body });\n };\n\n /**\n * Give the chat's running turn the credential this client now authenticates with.\n *\n * - `updated: false` means no turn of the chat was running; nothing changed.\n */\n const updateTurnCredential = async (chatId: string): Promise<{ updated: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/credential', { path: { id: chatId } });\n return data;\n };\n\n const stopChat = async (chatId: string): Promise<{ stopped: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/stop', { path: { id: chatId } });\n return data;\n };\n\n /**\n * Ask the engine to build this chat's sandbox before a turn needs one.\n *\n * - The work continues after the response.\n * - A host that does not pre-warm answers 404, returned as `{ started: false }`.\n */\n const prepareChat = async (\n chatId: string,\n signal?: AbortSignal,\n body: PrepareChatRequest = {},\n ): Promise<{ started: boolean }> => {\n try {\n const { data } = await client.post(\n '/api/chat/{id}/prepare',\n { path: { id: chatId }, body },\n { signal },\n );\n return data;\n } catch (error) {\n // 404 = pre-warm not supported here.\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n return { started: false };\n }\n throw error;\n }\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await client.post('/api/suggestions', { body: request }, { signal });\n return data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await genericClient.get<AgentSettings>('/api/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 genericClient.patch<AgentSettings>(\n '/api/settings',\n { body: request },\n { signal },\n );\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 updateProjectToolPolicy = async (\n toolPermissions: ProjectToolPolicy,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.put<AgentSettings>(\n '/api/settings/tool-permissions',\n { body: { toolPermissions } },\n { signal },\n );\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 genericClient.get<UserAgentSettings>(\n '/api/settings/user',\n {},\n { signal },\n );\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 genericClient.patch<UserAgentSettings>(\n '/api/settings/user',\n { body: request },\n { signal },\n );\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 // Not in `__generated__/schema` yet, hence `genericClient` + zod, like the spend caps below.\n const getUserMemories = async (signal?: AbortSignal): Promise<UserMemory[]> => {\n const { data } = await genericClient.get('/api/settings/user/memories', {}, { signal });\n const result = userMemoriesSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user memories response format');\n }\n return result.data.memories;\n };\n\n const updateUserMemory = async (\n memoryId: string,\n content: string,\n signal?: AbortSignal,\n ): Promise<UserMemory> => {\n const { data } = await genericClient.patch(\n `/api/settings/user/memories/${encodeURIComponent(memoryId)}`,\n { body: { content } },\n { signal },\n );\n const result = userMemorySchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user memory response format');\n }\n return result.data;\n };\n\n const deleteUserMemory = async (memoryId: string, signal?: AbortSignal): Promise<void> => {\n await genericClient.delete(\n `/api/settings/user/memories/${encodeURIComponent(memoryId)}`,\n {},\n { signal },\n );\n };\n\n // An older kai-agent omits `defaultProjectCapPpu`; fall back rather than throw.\n const withDefaultProjectCap = (view: z.infer<typeof spendCapsViewSchema>): SpendCapsView => ({\n ...view,\n defaultProjectCapPpu: view.defaultProjectCapPpu ?? view.effectiveProjectCapPpu,\n });\n\n // Not in `__generated__/schema` yet (see docs/regenerate-api-types.md), hence `genericClient`\n // + zod. Switch to `client.get('/api/settings/spend-caps')` once it regenerates.\n const getSpendCaps = async (signal?: AbortSignal): Promise<SpendCapsView> => {\n const { data } = await genericClient.get<SpendCapsView>(\n '/api/settings/spend-caps',\n {},\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const updateSpendCaps = async (\n request: UpdateSpendCapsRequest,\n signal?: AbortSignal,\n ): Promise<SpendCapsView> => {\n const { data } = await genericClient.patch<SpendCapsView>(\n '/api/settings/spend-caps',\n { body: request },\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const setUserSpendLimit = async (\n userId: string,\n overrideLimitPpu: number | null,\n signal?: AbortSignal,\n ): Promise<SpendCapMember> => {\n const { data } = await genericClient.put<SpendCapMember>(\n `/api/settings/spend-caps/users/${encodeURIComponent(userId)}`,\n { body: { overrideLimitPpu } },\n { signal },\n );\n const result = spendCapMemberSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend cap member response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await genericClient.get<ToolsListResponse>(\n '/api/settings/tools',\n {},\n { signal },\n );\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 const getSkillsList = async (signal?: AbortSignal): Promise<SkillsListResponse> => {\n const { data } = await genericClient.get<SkillsListResponse>('/api/skills', {}, { signal });\n const result = skillsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid skills list response format');\n }\n return result.data;\n };\n\n const listSandboxFiles = async (\n chatId: string,\n path?: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileListing> => {\n const { data } = await genericClient.get<SandboxFileListing>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/files`,\n { query: path ? { path } : undefined },\n { signal },\n );\n const result = sandboxFileListingSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox files response format');\n }\n return result.data;\n };\n\n const readSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileContent> => {\n const { data } = await genericClient.get<SandboxFileContent>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file`,\n { query: { path } },\n { signal },\n );\n const result = sandboxFileContentSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox file response format');\n }\n return result.data;\n };\n\n const downloadSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<Blob> => {\n // `parseData` returns a declared octet-stream body as a Blob, bytes intact.\n const { data } = await genericClient.get<Blob>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file/download`,\n { query: { path } },\n { signal },\n );\n if (!(data instanceof Blob)) {\n throw new Error('Invalid sandbox file download response format');\n }\n return data;\n };\n\n const getSandboxGitBranch = async (\n chatId: string,\n signal?: AbortSignal,\n ): Promise<SandboxGitBranch> => {\n const { data } = await genericClient.get<SandboxGitBranch>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/git-branch`,\n {},\n { signal },\n );\n const result = sandboxGitBranchSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox git-branch response format');\n }\n return result.data;\n };\n\n const chatStreamUrl = clientOptions.baseUrl + '/api/chat';\n\n // `/health`, not `/ping`: it returns `{\"status\":\"ok\"}` like other services, not a timestamp.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health', {}, { 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 getArtifacts,\n getArtifact,\n approveToolCall,\n submitToolOutput,\n updateTurnCredential,\n stopChat,\n prepareChat,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n updateProjectToolPolicy,\n getUserAgentSettings,\n updateUserAgentSettings,\n getUserMemories,\n updateUserMemory,\n deleteUserMemory,\n getSpendCaps,\n updateSpendCaps,\n setUserSpendLimit,\n getToolsList,\n getSkillsList,\n listSandboxFiles,\n readSandboxFile,\n downloadSandboxFile,\n getSandboxGitBranch,\n chatStreamUrl,\n };\n};\n"],"mappings":";;;;;;AAyBA,MAAM,+BAAkE,EAAE,KAAK,CAC7E,WACA,YACF,CAAC;AAED,MAAM,sBAAsB,EAAE,OAAO;CACnC,WAAW,EAAE,OAAO;CACpB,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS;CACxC,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxF,oBAAoB,EAAE,QAAQ,CAAC,CAAC,SAAS;CACzC,WAAW,EAAE,OAAO;CACpB,WAAW,EAAE,OAAO;AACtB,CAAC;AAED,MAAM,4BAA4B,EAAE,KAAK;CAAC;CAAgB;CAAc;AAAS,CAAC;AAElF,MAAM,0BAA0B,EAAE,OAAO;CACvC,WAAW,EAAE,OAAO;CACpB,QAAQ,EAAE,OAAO;CACjB,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS;CACxC,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,yBAAyB,CAAC,CAAC,SAAS;CAC1E,wBAAwB,EAAE,OAAO,EAAE,OAAO,GAAG,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAE/F,gBAAgB,EAAE,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,SAAS;CACjD,WAAW,EAAE,OAAO;CACpB,WAAW,EAAE,OAAO;AACtB,CAAC;AAED,MAAM,mBAAmB,EAAE,OAAO;CAAE,IAAI,EAAE,OAAO;CAAG,SAAS,EAAE,OAAO;CAAG,WAAW,EAAE,OAAO;AAAE,CAAC;AAEhG,MAAM,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,EAAE,CAAC;AAE3E,MAAM,iBAAiB,EAAE,OAAO;CAC9B,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO;CACtB,UAAU,EAAE,QAAQ;AACtB,CAAC;AAED,MAAM,0BAA0B,EAAE,OAAO,EACvC,OAAO,EAAE,MAAM,cAAc,EAC/B,CAAC;AAED,MAAM,kBAAkB,EAAE,OAAO;CAC/B,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,QAAQ,EAAE,KAAK;EAAC;EAAe;EAAY;CAAS,CAAC;AACvD,CAAC;AAED,MAAM,uBAAuB,EAAE,OAAO;CACpC,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO;AACxB,CAAC;AAED,MAAM,2BAA2B,EAAE,OAAO;CACxC,QAAQ,EAAE,MAAM,eAAe;CAC/B,UAAU,EAAE,MAAM,oBAAoB;AACxC,CAAC;AAED,MAAM,yBAAyB,EAAE,OAAO;CACtC,MAAM,EAAE,OAAO;CACf,MAAM,EAAE,OAAO;CACf,MAAM,EAAE,KAAK,CAAC,QAAQ,KAAK,CAAC;CAC5B,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS;AAChD,CAAC;AAED,MAAM,2BAA2B,EAAE,OAAO,EACxC,SAAS,EAAE,MAAM,sBAAsB,EACzC,CAAC;AAED,MAAM,2BAA2B,EAAE,OAAO;CACxC,SAAS,EAAE,OAAO;CAClB,UAAU,EAAE,KAAK,CAAC,SAAS,QAAQ,CAAC;CACpC,WAAW,EAAE,QAAQ;CACrB,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY;AACrC,CAAC;AAED,MAAM,yBAAyB,EAAE,OAAO,EACtC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAC9B,CAAC;AAID,MAAM,uBAAuB,EAAE,OAAO;CACpC,QAAQ,EAAE,OAAO;CACjB,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS;CACtC,mBAAmB,EAAE,OAAO,CAAC,CAAC,SAAS;CACvC,SAAS,EAAE,OAAO;CAClB,mBAAmB,EAAE,OAAO,CAAC,CAAC,SAAS;CACvC,yBAAyB,EAAE,OAAO,CAAC,CAAC,SAAS;AAC/C,CAAC;AAED,MAAM,sBAAsB,EAAE,OAAO;CAEnC,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS;CAGnC,wBAAwB,EAAE,OAAO;CAGjC,sBAAsB,EAAE,OAAO,CAAC,CAAC,SAAS;CAC1C,qBAAqB,EAAE,OAAO,CAAC,CAAC,SAAS;CACzC,gBAAgB,EAAE,OAAO;CACzB,UAAU,EAAE,QAAQ;CACpB,SAAS,EAAE,MAAM,oBAAoB;CACrC,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;AACvC,CAAC;AAED,MAAM,sBAAsB,EAAE,MAC5B,EAAE,OAAO;CACP,QAAQ,EAAE,OAAO;CACjB,WAAW,EAAE,OAAO;CACpB,WAAW,EAAE,QAAQ;AACvB,CAAC,CACH;AAiCA,MAAa,wBAAwB,EAAE,SAAS,aAAa,WAA8B;CACzF,MAAM,gBAAgB;EACpB;EACA;EACA,SAAS,kBAAkB,IAAI;CACjC;CAEA,MAAM,SAAS,yBAAgC,aAAa;CAC5D,MAAM,gBAAgB,yBAAyB,aAAa;CAE5D,MAAM,aAAa,OAAO,QAA0B,WAAyB;EAC3E,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,gBAAgB,EAAE,OAAO,OAAO,GAAG,EAAE,OAAO,CAAC;EAC/E,OAAO;CACT;CAEA,MAAM,UAAU,OAAO,QAA2B,WAAyB;EACzE,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kBAAkB,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC;EACxF,OAAO;CACT;CAEA,MAAM,aAAa,OAAO,WAAmB;EAC3C,MAAM,EAAE,SAAS,MAAM,OAAO,OAAO,aAAa,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;EAC3E,OAAO;CACT;CAEA,MAAM,aAAa,OAAO,YAAyB;EACjD,MAAM,EAAE,aAAa,MAAM,OAAO,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;EACrE,OAAO;CACT;CAEA,MAAM,WAAW,OAAO,WAA4D;EAClF,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;EAEpE,MAAM,SAAS,oBAAoB,UAAU,IAAI;EACjD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,+BAA+B;EAGjD,OAAO,OAAO;CAChB;CAEA,MAAM,aAAa,OAAO,WAAwB;EAChD,MAAM,OAAO,MAAM,aAAa,EAAE,MAAM,OAAO,CAAC;CAClD;;;;;;;;CASA,MAAM,eAAe,OACnB,QACA,WACkC;EAClC,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC;EACrF,OAAO;CACT;CAEA,MAAM,cAAc,OAClB,YACA,WAC8B;EAC9B,MAAM,EAAE,SAAS,MAAM,OAAO,IAC5B,uBACA,EAAE,MAAM,EAAE,IAAI,WAAW,EAAE,GAC3B,EACE,OACF,CACF;EACA,OAAO;CACT;CAEA,MAAM,WAAW,OAAO,WAAiD;EACvE,MAAM,EAAE,SAAS,MAAM,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;EAE9D,MAAM,SAAS,EACZ,OAAO,EACN,eAAe,EACZ,OAAO;GAAE,YAAY,EAAE,OAAO;GAAG,cAAc,EAAE,OAAO;EAAE,CAAC,CAAC,CAC5D,SAAS,CAAC,CACV,SAAS,EACd,CAAC,CAAC,CACD,UAAU,IAAI;EACjB,MAAM,gBAAgB,OAAO,UAAW,OAAO,KAAK,iBAAiB,OAAQ;EAC7E,OAAO;GAAE,GAAG;GAAM;EAAc;CAClC;CAEA,MAAM,kBAAkB,OAAO,QAAgB,SAAsC;EACnF,MAAM,OAAO,KAAK,2BAA2B;GAAE,MAAM,EAAE,IAAI,OAAO;GAAG;EAAK,CAAC;CAC7E;CAEA,MAAM,mBAAmB,OACvB,QACA,SACkB;EAClB,MAAM,OAAO,KAAK,iCAAiC;GAAE,MAAM,EAAE,IAAI,OAAO;GAAG;EAAK,CAAC;CACnF;;;;;;CAOA,MAAM,uBAAuB,OAAO,WAAkD;EACpF,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,6BAA6B,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;EACxF,OAAO;CACT;CAEA,MAAM,WAAW,OAAO,WAAkD;EACxE,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,uBAAuB,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;EAClF,OAAO;CACT;;;;;;;CAQA,MAAM,cAAc,OAClB,QACA,QACA,OAA2B,CAAC,MACM;EAClC,IAAI;GACF,MAAM,EAAE,SAAS,MAAM,OAAO,KAC5B,0BACA;IAAE,MAAM,EAAE,IAAI,OAAO;IAAG;GAAK,GAC7B,EAAE,OAAO,CACX;GACA,OAAO;EACT,SAAS,OAAO;GAEd,IAAI,WAAW,KAAK,KAAK,MAAM,SAAS,WAAW,WAAW,WAC5D,OAAO,EAAE,SAAS,MAAM;GAE1B,MAAM;EACR;CACF;CAEA,MAAM,iBAAiB,OACrB,SACA,WACoC;EACpC,MAAM,EAAE,SAAS,MAAM,OAAO,KAAK,oBAAoB,EAAE,MAAM,QAAQ,GAAG,EAAE,OAAO,CAAC;EACpF,OAAO;CACT;CAEA,MAAM,mBAAmB,OAAO,WAAiD;EAC/E,MAAM,EAAE,SAAS,MAAM,cAAc,IAAmB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;EACvF,MAAM,SAAS,oBAAoB,UAAU,IAAI;EACjD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,wCAAwC;EAE1D,OAAO,OAAO;CAChB;CAEA,MAAM,sBAAsB,OAC1B,SACA,WAC2B;EAC3B,MAAM,EAAE,SAAS,MAAM,cAAc,MACnC,iBACA,EAAE,MAAM,QAAQ,GAChB,EAAE,OAAO,CACX;EACA,MAAM,SAAS,oBAAoB,UAAU,IAAI;EACjD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,wCAAwC;EAE1D,OAAO,OAAO;CAChB;CAEA,MAAM,0BAA0B,OAC9B,iBACA,WAC2B;EAC3B,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,kCACA,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAC5B,EAAE,OAAO,CACX;EACA,MAAM,SAAS,oBAAoB,UAAU,IAAI;EACjD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,wCAAwC;EAE1D,OAAO,OAAO;CAChB;CAEA,MAAM,uBAAuB,OAAO,WAAqD;EACvF,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,sBACA,CAAC,GACD,EAAE,OAAO,CACX;EACA,MAAM,SAAS,wBAAwB,UAAU,IAAI;EACrD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,6CAA6C;EAE/D,OAAO,OAAO;CAChB;CAEA,MAAM,0BAA0B,OAC9B,SACA,WAC+B;EAC/B,MAAM,EAAE,SAAS,MAAM,cAAc,MACnC,sBACA,EAAE,MAAM,QAAQ,GAChB,EAAE,OAAO,CACX;EACA,MAAM,SAAS,wBAAwB,UAAU,IAAI;EACrD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,6CAA6C;EAE/D,OAAO,OAAO;CAChB;CAGA,MAAM,kBAAkB,OAAO,WAAgD;EAC7E,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,+BAA+B,CAAC,GAAG,EAAE,OAAO,CAAC;EACtF,MAAM,SAAS,mBAAmB,UAAU,IAAI;EAChD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,uCAAuC;EAEzD,OAAO,OAAO,KAAK;CACrB;CAEA,MAAM,mBAAmB,OACvB,UACA,SACA,WACwB;EACxB,MAAM,EAAE,SAAS,MAAM,cAAc,MACnC,+BAA+B,mBAAmB,QAAQ,KAC1D,EAAE,MAAM,EAAE,QAAQ,EAAE,GACpB,EAAE,OAAO,CACX;EACA,MAAM,SAAS,iBAAiB,UAAU,IAAI;EAC9C,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,qCAAqC;EAEvD,OAAO,OAAO;CAChB;CAEA,MAAM,mBAAmB,OAAO,UAAkB,WAAwC;EACxF,MAAM,cAAc,OAClB,+BAA+B,mBAAmB,QAAQ,KAC1D,CAAC,GACD,EAAE,OAAO,CACX;CACF;CAGA,MAAM,yBAAyB,UAA8D;EAC3F,GAAG;EACH,sBAAsB,KAAK,wBAAwB,KAAK;CAC1D;CAIA,MAAM,eAAe,OAAO,WAAiD;EAC3E,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,4BACA,CAAC,GACD,EAAE,OAAO,CACX;EACA,MAAM,SAAS,oBAAoB,UAAU,IAAI;EACjD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,oCAAoC;EAEtD,OAAO,sBAAsB,OAAO,IAAI;CAC1C;CAEA,MAAM,kBAAkB,OACtB,SACA,WAC2B;EAC3B,MAAM,EAAE,SAAS,MAAM,cAAc,MACnC,4BACA,EAAE,MAAM,QAAQ,GAChB,EAAE,OAAO,CACX;EACA,MAAM,SAAS,oBAAoB,UAAU,IAAI;EACjD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,oCAAoC;EAEtD,OAAO,sBAAsB,OAAO,IAAI;CAC1C;CAEA,MAAM,oBAAoB,OACxB,QACA,kBACA,WAC4B;EAC5B,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,kCAAkC,mBAAmB,MAAM,KAC3D,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAC7B,EAAE,OAAO,CACX;EACA,MAAM,SAAS,qBAAqB,UAAU,IAAI;EAClD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,0CAA0C;EAE5D,OAAO,OAAO;CAChB;CAEA,MAAM,eAAe,OAAO,WAAqD;EAC/E,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,uBACA,CAAC,GACD,EAAE,OAAO,CACX;EACA,MAAM,SAAS,wBAAwB,UAAU,IAAI;EACrD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,oCAAoC;EAEtD,OAAO,OAAO;CAChB;CAEA,MAAM,gBAAgB,OAAO,WAAsD;EACjF,MAAM,EAAE,SAAS,MAAM,cAAc,IAAwB,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC;EAC1F,MAAM,SAAS,yBAAyB,UAAU,IAAI;EACtD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,qCAAqC;EAEvD,OAAO,OAAO;CAChB;CAEA,MAAM,mBAAmB,OACvB,QACA,MACA,WACgC;EAChC,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,aAAa,mBAAmB,MAAM,EAAE,iBACxC,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,KAAA,EAAU,GACrC,EAAE,OAAO,CACX;EACA,MAAM,SAAS,yBAAyB,UAAU,IAAI;EACtD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,uCAAuC;EAEzD,OAAO,OAAO;CAChB;CAEA,MAAM,kBAAkB,OACtB,QACA,MACA,WACgC;EAChC,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,aAAa,mBAAmB,MAAM,EAAE,gBACxC,EAAE,OAAO,EAAE,KAAK,EAAE,GAClB,EAAE,OAAO,CACX;EACA,MAAM,SAAS,yBAAyB,UAAU,IAAI;EACtD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,sCAAsC;EAExD,OAAO,OAAO;CAChB;CAEA,MAAM,sBAAsB,OAC1B,QACA,MACA,WACkB;EAElB,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,aAAa,mBAAmB,MAAM,EAAE,yBACxC,EAAE,OAAO,EAAE,KAAK,EAAE,GAClB,EAAE,OAAO,CACX;EACA,IAAI,EAAE,gBAAgB,OACpB,MAAM,IAAI,MAAM,+CAA+C;EAEjE,OAAO;CACT;CAEA,MAAM,sBAAsB,OAC1B,QACA,WAC8B;EAC9B,MAAM,EAAE,SAAS,MAAM,cAAc,IACnC,aAAa,mBAAmB,MAAM,EAAE,sBACxC,CAAC,GACD,EAAE,OAAO,CACX;EACA,MAAM,SAAS,uBAAuB,UAAU,IAAI;EACpD,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,4CAA4C;EAE9D,OAAO,OAAO;CAChB;CAEA,MAAM,gBAAgB,cAAc,UAAU;CAG9C,MAAM,cAAc,OAAO,WAAyB;EAClD,MAAM,EAAE,SAAS,MAAM,cAAc,IAAI,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;EAElE,OAAO;CACT;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -1,7 +1,7 @@
1
- const require_createFetchClient = require("./createFetchClient-DEkUH662.cjs");
2
- const require_createGenericFetchClient = require("./createGenericFetchClient-2oU-PXVo.cjs");
3
- const require_createOpenapiFetchClient = require("./createOpenapiFetchClient-DL9w7vU-.cjs");
4
- const require_auth = require("./auth-CvB4MukT.cjs");
1
+ const require_createFetchClient = require("./createFetchClient-CDKSkd7i.cjs");
2
+ const require_createGenericFetchClient = require("./createGenericFetchClient-BuYzzV_D.cjs");
3
+ const require_createOpenapiFetchClient = require("./createOpenapiFetchClient-dkssExkU.cjs");
4
+ const require_auth = require("./auth-AehUDNRK.cjs");
5
5
  let zod = require("zod");
6
6
  // src/clients/kaiAgent/kaiAgentClient.ts
7
7
  const projectToolPolicyValueSchema = zod.z.enum(["blocked", "always_ask"]);
@@ -167,6 +167,15 @@ const createKaiAgentClient = ({ baseUrl, middlewares, auth }) => {
167
167
  body
168
168
  });
169
169
  };
170
+ /**
171
+ * Give the chat's running turn the credential this client now authenticates with.
172
+ *
173
+ * - `updated: false` means no turn of the chat was running; nothing changed.
174
+ */
175
+ const updateTurnCredential = async (chatId) => {
176
+ const { data } = await client.post("/api/chat/{id}/credential", { path: { id: chatId } });
177
+ return data;
178
+ };
170
179
  const stopChat = async (chatId) => {
171
180
  const { data } = await client.post("/api/chat/{id}/stop", { path: { id: chatId } });
172
181
  return data;
@@ -313,6 +322,7 @@ const createKaiAgentClient = ({ baseUrl, middlewares, auth }) => {
313
322
  getArtifact,
314
323
  approveToolCall,
315
324
  submitToolOutput,
325
+ updateTurnCredential,
316
326
  stopChat,
317
327
  prepareChat,
318
328
  getSuggestions,
@@ -343,4 +353,4 @@ Object.defineProperty(exports, "createKaiAgentClient", {
343
353
  }
344
354
  });
345
355
 
346
- //# sourceMappingURL=kaiAgent-gaA7dqki.cjs.map
356
+ //# sourceMappingURL=kaiAgent-De2T6G4G.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kaiAgent-De2T6G4G.cjs","names":["z","createAuthHeaders","createOpenapiFetchClient","createGenericFetchClient","isApiError","HttpStatus"],"sources":["../src/clients/kaiAgent/kaiAgentClient.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { createGenericFetchClient, createOpenapiFetchClient, isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\nimport { createAuthHeaders } from '../auth';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from '../chat/suggestions';\nimport type { ProjectToolPolicy, ProjectToolPolicyValue } from '../chat/types';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ApprovalBody,\n ArtifactListResponse,\n ArtifactResponse,\n ChatRequest,\n GetArtifactPath,\n GetArtifactsQuery,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n PrepareChatRequest,\n UsageResponse,\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 // Optional on the wire (rollout skew): an older kai-agent omits it, and its default is `auto`.\n memorySaveMode: z.enum(['auto', 'ask']).optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst userMemorySchema = z.object({ id: z.string(), content: z.string(), createdAt: z.string() });\n\nconst userMemoriesSchema = z.object({ memories: z.array(userMemorySchema) });\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 skillInfoSchema = z.object({\n name: z.string(),\n description: z.string().nullable(),\n source: z.enum(['first-party', 'vendored', 'project']),\n});\n\nconst builtInCommandSchema = z.object({\n name: z.string(),\n description: z.string(),\n});\n\nconst skillsListResponseSchema = z.object({\n skills: z.array(skillInfoSchema),\n commands: z.array(builtInCommandSchema),\n});\n\nconst sandboxFileEntrySchema = z.object({\n name: z.string(),\n path: z.string(),\n type: z.enum(['file', 'dir']),\n size: z.number().int().nonnegative().optional(),\n});\n\nconst sandboxFileListingSchema = z.object({\n entries: z.array(sandboxFileEntrySchema),\n});\n\nconst sandboxFileContentSchema = z.object({\n content: z.string(),\n encoding: z.enum(['utf-8', 'binary']),\n truncated: z.boolean(),\n size: z.number().int().nonnegative(),\n});\n\nconst sandboxGitBranchSchema = z.object({\n branch: z.string().nullable(),\n});\n\n// `userId` only: kai-agent cannot resolve project members. Join it against\n// `api.management.projects.getProjectUsers`.\nconst spendCapMemberSchema = z.object({\n userId: z.string(),\n overrideLimitPpu: z.number().nullable(),\n effectiveLimitPpu: z.number().nullable(),\n usedPpu: z.number(),\n overrideUpdatedAt: z.string().nullable(),\n overrideUpdatedByUserId: z.string().nullable(),\n});\n\nconst spendCapsViewSchema = z.object({\n // `null` = no configured cap, not unlimited — see `effectiveProjectCapPpu`.\n projectCapPpu: z.number().nullable(),\n // The enforced cap (`projectCapPpu` or kai-agent's DEFAULT_PROJECT_CAP_PPU).\n // Render this; `projectCapPpu` only tells configured from default.\n effectiveProjectCapPpu: z.number(),\n // Platform default regardless of what's saved; validates a cleared-but-unsaved field.\n // Optional on the wire (rollout skew); `withDefaultProjectCap` fills it in.\n defaultProjectCapPpu: z.number().optional(),\n defaultUserLimitPpu: z.number().nullable(),\n projectUsedPpu: z.number(),\n canWrite: z.boolean(),\n members: z.array(spendCapMemberSchema),\n updatedAt: z.string().nullable(),\n updatedByUserId: z.string().nullable(),\n});\n\nconst votesResponseSchema = z.array(\n z.object({\n chatId: z.string(),\n messageId: z.string(),\n isUpvoted: z.boolean(),\n }),\n);\n\nexport type SpendCapMember = z.infer<typeof spendCapMemberSchema>;\n// `defaultProjectCapPpu` is always present here — `getSpendCaps`/`updateSpendCaps` fill it in.\nexport type SpendCapsView = Omit<z.infer<typeof spendCapsViewSchema>, 'defaultProjectCapPpu'> & {\n defaultProjectCapPpu: number;\n};\nexport type AgentSettings = z.infer<typeof agentSettingsSchema>;\nexport type UserAgentSettings = z.infer<typeof userAgentSettingsSchema>;\nexport type UserMemory = z.infer<typeof userMemorySchema>;\nexport type MemorySaveMode = NonNullable<UserAgentSettings['memorySaveMode']>;\ntype ToolsListResponse = z.infer<typeof toolsListResponseSchema>;\ntype SkillsListResponse = z.infer<typeof skillsListResponseSchema>;\ntype SandboxFileListing = z.infer<typeof sandboxFileListingSchema>;\ntype SandboxFileContent = z.infer<typeof sandboxFileContentSchema>;\ntype SandboxGitBranch = z.infer<typeof sandboxGitBranchSchema>;\ntype VotesResponse = z.infer<typeof votesResponseSchema>;\n\ntype UpdateAgentSettingsRequest = {\n customInstructions?: string | null;\n};\n\ntype UpdateUserAgentSettingsRequest = {\n customInstructions?: string | null;\n toolPermissions?: Record<string, z.infer<typeof toolPermissionValueSchema>> | null;\n memorySaveMode?: MemorySaveMode;\n};\n\ntype UpdateSpendCapsRequest = {\n projectCapPpu?: number | null;\n defaultUserLimitPpu?: number | null;\n};\n\nexport const createKaiAgentClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const clientOptions = {\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n };\n\n const client = createOpenapiFetchClient<paths>(clientOptions);\n const genericClient = createGenericFetchClient(clientOptions);\n\n const getHistory = async (params?: GetHistoryQuery, signal?: AbortSignal) => {\n const { data } = await client.get('/api/history', { query: params }, { signal });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/api/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/api/chat', { query: { id: chatId } });\n return data;\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/api/chat', { body: request });\n return response;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']): Promise<VotesResponse> => {\n const { data } = await client.get('/api/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('/api/vote', { body: params });\n };\n\n /**\n * Every artifact a chat produced, oldest first.\n *\n * - Read-only by design: artifacts are derived server-side at the end of a turn, so there is\n * no write route to pair with this.\n * - The chat is the authorization — a chat the caller cannot read has no artifacts.\n */\n const getArtifacts = async (\n chatId: GetArtifactsQuery['chatId'],\n signal?: AbortSignal,\n ): Promise<ArtifactListResponse> => {\n const { data } = await client.get('/api/artifacts', { query: { chatId } }, { signal });\n return data;\n };\n\n const getArtifact = async (\n artifactId: GetArtifactPath['id'],\n signal?: AbortSignal,\n ): Promise<ArtifactResponse> => {\n const { data } = await client.get(\n '/api/artifacts/{id}',\n { path: { id: artifactId } },\n {\n signal,\n },\n );\n return data;\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/api/usage', {}, { signal });\n // `freeAllowance` is ahead of the generated schema — a guard turns a missing field into `null`.\n const parsed = z\n .object({\n freeAllowance: z\n .object({ grantedPpu: z.number(), remainingPpu: z.number() })\n .nullable()\n .optional(),\n })\n .safeParse(data);\n const freeAllowance = parsed.success ? (parsed.data.freeAllowance ?? null) : null;\n return { ...data, freeAllowance };\n };\n\n const approveToolCall = async (chatId: string, body: ApprovalBody): Promise<void> => {\n await client.post('/api/chat/{id}/approval', { path: { id: chatId }, body });\n };\n\n const submitToolOutput = async (\n chatId: string,\n body: { toolUseId: string; output?: string; errorText?: string },\n ): Promise<void> => {\n await client.post('/api/chat/{id}/ui-tool-result', { path: { id: chatId }, body });\n };\n\n /**\n * Give the chat's running turn the credential this client now authenticates with.\n *\n * - `updated: false` means no turn of the chat was running; nothing changed.\n */\n const updateTurnCredential = async (chatId: string): Promise<{ updated: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/credential', { path: { id: chatId } });\n return data;\n };\n\n const stopChat = async (chatId: string): Promise<{ stopped: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/stop', { path: { id: chatId } });\n return data;\n };\n\n /**\n * Ask the engine to build this chat's sandbox before a turn needs one.\n *\n * - The work continues after the response.\n * - A host that does not pre-warm answers 404, returned as `{ started: false }`.\n */\n const prepareChat = async (\n chatId: string,\n signal?: AbortSignal,\n body: PrepareChatRequest = {},\n ): Promise<{ started: boolean }> => {\n try {\n const { data } = await client.post(\n '/api/chat/{id}/prepare',\n { path: { id: chatId }, body },\n { signal },\n );\n return data;\n } catch (error) {\n // 404 = pre-warm not supported here.\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n return { started: false };\n }\n throw error;\n }\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await client.post('/api/suggestions', { body: request }, { signal });\n return data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await genericClient.get<AgentSettings>('/api/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 genericClient.patch<AgentSettings>(\n '/api/settings',\n { body: request },\n { signal },\n );\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 updateProjectToolPolicy = async (\n toolPermissions: ProjectToolPolicy,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.put<AgentSettings>(\n '/api/settings/tool-permissions',\n { body: { toolPermissions } },\n { signal },\n );\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 genericClient.get<UserAgentSettings>(\n '/api/settings/user',\n {},\n { signal },\n );\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 genericClient.patch<UserAgentSettings>(\n '/api/settings/user',\n { body: request },\n { signal },\n );\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 // Not in `__generated__/schema` yet, hence `genericClient` + zod, like the spend caps below.\n const getUserMemories = async (signal?: AbortSignal): Promise<UserMemory[]> => {\n const { data } = await genericClient.get('/api/settings/user/memories', {}, { signal });\n const result = userMemoriesSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user memories response format');\n }\n return result.data.memories;\n };\n\n const updateUserMemory = async (\n memoryId: string,\n content: string,\n signal?: AbortSignal,\n ): Promise<UserMemory> => {\n const { data } = await genericClient.patch(\n `/api/settings/user/memories/${encodeURIComponent(memoryId)}`,\n { body: { content } },\n { signal },\n );\n const result = userMemorySchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user memory response format');\n }\n return result.data;\n };\n\n const deleteUserMemory = async (memoryId: string, signal?: AbortSignal): Promise<void> => {\n await genericClient.delete(\n `/api/settings/user/memories/${encodeURIComponent(memoryId)}`,\n {},\n { signal },\n );\n };\n\n // An older kai-agent omits `defaultProjectCapPpu`; fall back rather than throw.\n const withDefaultProjectCap = (view: z.infer<typeof spendCapsViewSchema>): SpendCapsView => ({\n ...view,\n defaultProjectCapPpu: view.defaultProjectCapPpu ?? view.effectiveProjectCapPpu,\n });\n\n // Not in `__generated__/schema` yet (see docs/regenerate-api-types.md), hence `genericClient`\n // + zod. Switch to `client.get('/api/settings/spend-caps')` once it regenerates.\n const getSpendCaps = async (signal?: AbortSignal): Promise<SpendCapsView> => {\n const { data } = await genericClient.get<SpendCapsView>(\n '/api/settings/spend-caps',\n {},\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const updateSpendCaps = async (\n request: UpdateSpendCapsRequest,\n signal?: AbortSignal,\n ): Promise<SpendCapsView> => {\n const { data } = await genericClient.patch<SpendCapsView>(\n '/api/settings/spend-caps',\n { body: request },\n { signal },\n );\n const result = spendCapsViewSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend caps response format');\n }\n return withDefaultProjectCap(result.data);\n };\n\n const setUserSpendLimit = async (\n userId: string,\n overrideLimitPpu: number | null,\n signal?: AbortSignal,\n ): Promise<SpendCapMember> => {\n const { data } = await genericClient.put<SpendCapMember>(\n `/api/settings/spend-caps/users/${encodeURIComponent(userId)}`,\n { body: { overrideLimitPpu } },\n { signal },\n );\n const result = spendCapMemberSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid spend cap member response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await genericClient.get<ToolsListResponse>(\n '/api/settings/tools',\n {},\n { signal },\n );\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 const getSkillsList = async (signal?: AbortSignal): Promise<SkillsListResponse> => {\n const { data } = await genericClient.get<SkillsListResponse>('/api/skills', {}, { signal });\n const result = skillsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid skills list response format');\n }\n return result.data;\n };\n\n const listSandboxFiles = async (\n chatId: string,\n path?: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileListing> => {\n const { data } = await genericClient.get<SandboxFileListing>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/files`,\n { query: path ? { path } : undefined },\n { signal },\n );\n const result = sandboxFileListingSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox files response format');\n }\n return result.data;\n };\n\n const readSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileContent> => {\n const { data } = await genericClient.get<SandboxFileContent>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file`,\n { query: { path } },\n { signal },\n );\n const result = sandboxFileContentSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox file response format');\n }\n return result.data;\n };\n\n const downloadSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<Blob> => {\n // `parseData` returns a declared octet-stream body as a Blob, bytes intact.\n const { data } = await genericClient.get<Blob>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file/download`,\n { query: { path } },\n { signal },\n );\n if (!(data instanceof Blob)) {\n throw new Error('Invalid sandbox file download response format');\n }\n return data;\n };\n\n const getSandboxGitBranch = async (\n chatId: string,\n signal?: AbortSignal,\n ): Promise<SandboxGitBranch> => {\n const { data } = await genericClient.get<SandboxGitBranch>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/git-branch`,\n {},\n { signal },\n );\n const result = sandboxGitBranchSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox git-branch response format');\n }\n return result.data;\n };\n\n const chatStreamUrl = clientOptions.baseUrl + '/api/chat';\n\n // `/health`, not `/ping`: it returns `{\"status\":\"ok\"}` like other services, not a timestamp.\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health', {}, { 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 getArtifacts,\n getArtifact,\n approveToolCall,\n submitToolOutput,\n updateTurnCredential,\n stopChat,\n prepareChat,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n updateProjectToolPolicy,\n getUserAgentSettings,\n updateUserAgentSettings,\n getUserMemories,\n updateUserMemory,\n deleteUserMemory,\n getSpendCaps,\n updateSpendCaps,\n setUserSpendLimit,\n getToolsList,\n getSkillsList,\n listSandboxFiles,\n readSandboxFile,\n downloadSandboxFile,\n getSandboxGitBranch,\n chatStreamUrl,\n };\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { g as HttpStatus, r as isApiError } from "./createFetchClient-DlGCbltR.js";
1
+ import { _ as HttpStatus, r as isApiError } from "./createFetchClient-Dc_ZMuq7.js";
2
2
  import { i as parseOrThrow, n as formatValidationIssues } from "./ValidationError-BsdFDGY2.js";
3
3
  import { z } from "zod";
4
4
  // src/sdks/kaiMemory/vocabulary.ts
@@ -254,4 +254,4 @@ const createKaiMemorySdk = ({ metastoreClient }) => {
254
254
  };
255
255
  export { KAI_MEMORY_STATUSES as a, createKaiMemorySdk as i, KaiMemoryReviewConflictError as n, KaiMemoryUnreadableItemsError as r, KAI_MEMORY_OBJECT_TYPE as t };
256
256
 
257
- //# sourceMappingURL=kaiMemory-oir_qCo_.js.map
257
+ //# sourceMappingURL=kaiMemory-B1wIwH8Y.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kaiMemory-oir_qCo_.js","names":[],"sources":["../src/sdks/kaiMemory/vocabulary.ts","../src/sdks/kaiMemory/readSchemas.ts","../src/sdks/kaiMemory/kaiMemorySdk.ts"],"sourcesContent":["/**\n * The closed value set a `kai-memory` object's `status` accepts.\n *\n * A single runtime source for the union in `./types`, mirroring\n * `sdks/semanticLayer/vocabulary.ts`'s pattern — a value cannot exist in the type and be\n * missing from the list a validator or a UI dropdown is built from.\n */\nexport const KAI_MEMORY_STATUSES = ['pending', 'approved', 'rejected'] as const;\n","import { z } from 'zod';\n\nimport type { KaiMemoryData, KaiMemoryMeta } from './types';\nimport { KAI_MEMORY_STATUSES } from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back for a `kai-memory` object — see\n * `sdks/semanticLayer/readSchemas.ts` for the `looseObject` reasoning this mirrors.\n *\n * `status` drops as unrecognized rather than passing through: an item this SDK cannot classify\n * as pending/approved/rejected must never be treated as any of them, in particular `approved`.\n */\nconst kaiMemoryReadSchema: z.ZodType<KaiMemoryData, unknown> = z.looseObject({\n content: z.string(),\n status: z.enum(KAI_MEMORY_STATUSES),\n chatId: z.string(),\n createdBy: z.string().optional(),\n});\n\nconst kaiMemoryMetaSchema: z.ZodType<KaiMemoryMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `KaiMemoryItem` the SDK returns. `meta`\n * absent or `null` both normalize to `{}` — see `semanticObjectReadSchema` for why an envelope\n * omitting audit fields is a normalization, not a failure.\n */\nexport const kaiMemoryItemReadSchema = z\n .object({\n id: z.string(),\n attributes: kaiMemoryReadSchema,\n meta: kaiMemoryMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\n\nimport { kaiMemoryItemReadSchema } from './readSchemas';\nimport type {\n CreateKaiMemoryMeta,\n KaiMemoryData,\n KaiMemoryItem,\n KaiMemoryStatus,\n MetastoreClient,\n UpdateKaiMemoryMeta,\n} from './types';\n\n/** The metastore object type this SDK addresses — see `SEMANTIC_OBJECT_TYPE` for the convention. */\nexport const KAI_MEMORY_OBJECT_TYPE = 'kai-memory';\n\nconst DEFAULT_BRANCH = 'main';\n\n/**\n * The live metastore envelope for a write response — see `RawSemanticObject` in\n * `sdks/semanticLayer/semanticLayerSdk.ts` for why a write asserts this shape rather than parsing\n * it: the metastore is echoing back the object it has just validated and stored.\n */\ntype RawKaiMemoryObject = {\n type: string;\n id: string;\n attributes: KaiMemoryData;\n meta: KaiMemoryItem['meta'];\n};\n\nconst mapObject = (item: RawKaiMemoryObject): KaiMemoryItem => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/**\n * Thrown by `getItemsByStatusStrict` when any `kai-memory` item — of any status, not only the\n * one asked for — could not be parsed. See that function's docstring for why an unreadable item\n * anywhere in the collection fails the whole read rather than being dropped.\n */\nexport class KaiMemoryUnreadableItemsError extends Error {\n readonly unreadableIds: string[];\n\n constructor(unreadableIds: string[]) {\n super(\n `${unreadableIds.length} kai-memory item(s) could not be read, so the knowledge base ` +\n `cannot be treated as complete.`,\n );\n this.name = 'KaiMemoryUnreadableItemsError';\n this.unreadableIds = unreadableIds;\n }\n}\n\n/**\n * Thrown by `updateStatus` when the item is no longer `pending` at write time — see that\n * function's docstring for the race it closes.\n */\nexport class KaiMemoryReviewConflictError extends Error {\n readonly uuid: string;\n readonly currentStatus: KaiMemoryStatus;\n\n constructor(uuid: string, currentStatus: KaiMemoryStatus) {\n super(\n `This note was already reviewed (now \"${currentStatus}\") — refusing to overwrite a ` +\n `decision someone else already made.`,\n );\n this.name = 'KaiMemoryReviewConflictError';\n this.uuid = uuid;\n this.currentStatus = currentStatus;\n }\n}\n\ntype ParsedObjects = {\n objects: KaiMemoryItem[];\n /** Envelope ids (or `<no id>`) of items that did not match `kaiMemoryItemReadSchema`. */\n unreadableIds: string[];\n};\n\n/** Shared parse loop behind `getItems` (drops and logs) and `getItemsByStatusStrict` (fails). */\nconst parseObjects = (items: unknown[]): ParsedObjects => {\n const objects: KaiMemoryItem[] = [];\n const unreadableIds: string[] = [];\n\n for (const item of items) {\n const result = kaiMemoryItemReadSchema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n const id = envelopeId(item) ?? '<no id>';\n unreadableIds.push(id);\n // The object type, the UUID and the failing field, never the content: a memory note's\n // text is the customer's and does not belong in a console.\n console.warn(\n `kaiMemorySdk: kai-memory item \"${id}\" from the metastore response does not match its ` +\n `declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadableIds };\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createKaiMemorySdk = ({ metastoreClient }: Options) => {\n /**\n * The metastore's list endpoint looks up the `kai-memory` schema before querying, and 404s\n * (\"Schema not found\") when it was never registered — not an empty result. Since this SDK ships\n * independently of the backend PR that registers the schema, every read here would otherwise\n * throw on any stack that hasn't deployed it yet (or hasn't deployed it TO yet, mid-rollout),\n * indistinguishable from \"this project genuinely has zero kai-memory items\" from the caller's\n * point of view. Treat the two the same: no schema yet means no items yet.\n */\n const fetchObjects = async (signal?: AbortSignal): Promise<unknown[]> => {\n let response: Awaited<ReturnType<typeof metastoreClient.repository.getMetaObjects>>;\n try {\n response = await metastoreClient.repository.getMetaObjects(\n { objectType: KAI_MEMORY_OBJECT_TYPE },\n signal,\n );\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) return [];\n throw error;\n }\n return parseOrThrow(z.array(z.unknown()), response.data);\n };\n\n /**\n * Every `kai-memory` item in the project, parsed rather than asserted.\n *\n * - No server-side filter (AI-3975), so a caller after one status still pays for the collection.\n * - Degrade-on-drop: a malformed item is dropped and logged, for a display consumer (the admin\n * review list) that would rather show what it can. A steering-context consumer, where a\n * silently missing item is worse than a failed read, must use `getItemsByStatusStrict`.\n */\n const getItems = async (signal?: AbortSignal): Promise<KaiMemoryItem[]> => {\n const { objects } = parseObjects(await fetchObjects(signal));\n return objects;\n };\n\n /** `getItems` narrowed to one status, for the admin review list. */\n const getItemsByStatus = async (status: KaiMemoryStatus, signal?: AbortSignal) =>\n (await getItems(signal)).filter((item) => item.data.status === status);\n\n /**\n * `getItemsByStatus`, failing closed instead of dropping what it cannot parse.\n *\n * For the recall path (folded into every turn's prompt): an unclassifiable item must not be\n * silently omitted — it might be an `approved` note vanishing with no evidence anything was\n * missing (\"steering inputs fail the turn\"). Every unreadable item counts, not only ones\n * matching `status`, since an unparsed item's real status is unknown.\n */\n const getItemsByStatusStrict = async (\n status: KaiMemoryStatus,\n signal?: AbortSignal,\n ): Promise<KaiMemoryItem[]> => {\n const { objects, unreadableIds } = parseObjects(await fetchObjects(signal));\n if (unreadableIds.length > 0) throw new KaiMemoryUnreadableItemsError(unreadableIds);\n return objects.filter((item) => item.data.status === status);\n };\n\n /**\n * Envelope ids of every `kai-memory` item this SDK cannot parse, regardless of status — the\n * admin-facing counterpart to `getItemsByStatusStrict`'s failure. An unreadable item is invisible\n * to `getItems`/`getItemsByStatus` (dropped and logged) yet blocks every new chat's recall read,\n * so an admin needs a way to find and clear it; see `deleteUnreadableItem`.\n */\n const getUnreadableItemIds = async (signal?: AbortSignal): Promise<string[]> =>\n parseObjects(await fetchObjects(signal)).unreadableIds;\n\n /**\n * Deletes a `kai-memory` object by id without first reading and parsing it — `updateStatus`\n * can't be reused here because its pending-check read is exactly the parse that fails for an\n * unreadable item. Intended only for clearing an id surfaced by `getUnreadableItemIds`.\n */\n const deleteUnreadableItem = async (uuid: string): Promise<void> => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n };\n\n /**\n * Write a new `pending` note. `chatId` is a required, separate argument rather than a `data`\n * field — the caller (the memory-handler backend, never the sandboxed agent directly) is what\n * must supply it, taken from the turn's own ticket context, so a model cannot forge which\n * session a note came from.\n */\n const createItem = async (\n { content, chatId, createdBy }: { content: string; chatId: string; createdBy?: string },\n meta: CreateKaiMemoryMeta = {},\n ) => {\n const data: KaiMemoryData = { content, status: 'pending', chatId, createdBy };\n const response = await metastoreClient.repository.createMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n });\n\n return mapObject(response.data as unknown as RawKaiMemoryObject);\n };\n\n /**\n * Approve or reject a pending note (or otherwise move it between statuses).\n *\n * - Re-reads and refuses a no-longer-`pending` item (no PATCH precondition mechanism), closing\n * the realistic stale-tab race; `useUpdateKnowledgeBaseItemStatus` invalidates on every outcome.\n * - `rejected` deletes the object outright, so review no longer grows the metastore forever; the\n * return value is the pre-delete data with `status` overridden. A later 404 on the\n * conflict-check read (only reachable via a prior reject) becomes `KaiMemoryReviewConflictError`.\n */\n const updateStatus = async (\n uuid: string,\n status: KaiMemoryStatus,\n meta: UpdateKaiMemoryMeta = {},\n ) => {\n let current: Awaited<ReturnType<typeof metastoreClient.repository.getMetaObject>>;\n try {\n current = await metastoreClient.repository.getMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n throw new KaiMemoryReviewConflictError(uuid, 'rejected');\n }\n throw error;\n }\n\n const parsedCurrent = kaiMemoryItemReadSchema.safeParse(current.data);\n if (parsedCurrent.success && parsedCurrent.data.data.status !== 'pending') {\n throw new KaiMemoryReviewConflictError(uuid, parsedCurrent.data.data.status);\n }\n\n if (status === 'rejected') {\n const currentObject = current.data as unknown as RawKaiMemoryObject;\n await metastoreClient.repository.deleteMetaObject({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n\n return mapObject({\n ...currentObject,\n attributes: { ...currentObject.attributes, status },\n });\n }\n\n const response = await metastoreClient.repository.updateMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n data: { status },\n ...meta,\n });\n\n return mapObject(response.data as unknown as RawKaiMemoryObject);\n };\n\n return {\n getItems,\n getItemsByStatus,\n getItemsByStatusStrict,\n getUnreadableItemIds,\n deleteUnreadableItem,\n createItem,\n updateStatus,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"kaiMemory-B1wIwH8Y.js","names":[],"sources":["../src/sdks/kaiMemory/vocabulary.ts","../src/sdks/kaiMemory/readSchemas.ts","../src/sdks/kaiMemory/kaiMemorySdk.ts"],"sourcesContent":["/**\n * The closed value set a `kai-memory` object's `status` accepts.\n *\n * A single runtime source for the union in `./types`, mirroring\n * `sdks/semanticLayer/vocabulary.ts`'s pattern — a value cannot exist in the type and be\n * missing from the list a validator or a UI dropdown is built from.\n */\nexport const KAI_MEMORY_STATUSES = ['pending', 'approved', 'rejected'] as const;\n","import { z } from 'zod';\n\nimport type { KaiMemoryData, KaiMemoryMeta } from './types';\nimport { KAI_MEMORY_STATUSES } from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back for a `kai-memory` object — see\n * `sdks/semanticLayer/readSchemas.ts` for the `looseObject` reasoning this mirrors.\n *\n * `status` drops as unrecognized rather than passing through: an item this SDK cannot classify\n * as pending/approved/rejected must never be treated as any of them, in particular `approved`.\n */\nconst kaiMemoryReadSchema: z.ZodType<KaiMemoryData, unknown> = z.looseObject({\n content: z.string(),\n status: z.enum(KAI_MEMORY_STATUSES),\n chatId: z.string(),\n createdBy: z.string().optional(),\n});\n\nconst kaiMemoryMetaSchema: z.ZodType<KaiMemoryMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `KaiMemoryItem` the SDK returns. `meta`\n * absent or `null` both normalize to `{}` — see `semanticObjectReadSchema` for why an envelope\n * omitting audit fields is a normalization, not a failure.\n */\nexport const kaiMemoryItemReadSchema = z\n .object({\n id: z.string(),\n attributes: kaiMemoryReadSchema,\n meta: kaiMemoryMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\n\nimport { kaiMemoryItemReadSchema } from './readSchemas';\nimport type {\n CreateKaiMemoryMeta,\n KaiMemoryData,\n KaiMemoryItem,\n KaiMemoryStatus,\n MetastoreClient,\n UpdateKaiMemoryMeta,\n} from './types';\n\n/** The metastore object type this SDK addresses — see `SEMANTIC_OBJECT_TYPE` for the convention. */\nexport const KAI_MEMORY_OBJECT_TYPE = 'kai-memory';\n\nconst DEFAULT_BRANCH = 'main';\n\n/**\n * The live metastore envelope for a write response — see `RawSemanticObject` in\n * `sdks/semanticLayer/semanticLayerSdk.ts` for why a write asserts this shape rather than parsing\n * it: the metastore is echoing back the object it has just validated and stored.\n */\ntype RawKaiMemoryObject = {\n type: string;\n id: string;\n attributes: KaiMemoryData;\n meta: KaiMemoryItem['meta'];\n};\n\nconst mapObject = (item: RawKaiMemoryObject): KaiMemoryItem => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/**\n * Thrown by `getItemsByStatusStrict` when any `kai-memory` item — of any status, not only the\n * one asked for — could not be parsed. See that function's docstring for why an unreadable item\n * anywhere in the collection fails the whole read rather than being dropped.\n */\nexport class KaiMemoryUnreadableItemsError extends Error {\n readonly unreadableIds: string[];\n\n constructor(unreadableIds: string[]) {\n super(\n `${unreadableIds.length} kai-memory item(s) could not be read, so the knowledge base ` +\n `cannot be treated as complete.`,\n );\n this.name = 'KaiMemoryUnreadableItemsError';\n this.unreadableIds = unreadableIds;\n }\n}\n\n/**\n * Thrown by `updateStatus` when the item is no longer `pending` at write time — see that\n * function's docstring for the race it closes.\n */\nexport class KaiMemoryReviewConflictError extends Error {\n readonly uuid: string;\n readonly currentStatus: KaiMemoryStatus;\n\n constructor(uuid: string, currentStatus: KaiMemoryStatus) {\n super(\n `This note was already reviewed (now \"${currentStatus}\") — refusing to overwrite a ` +\n `decision someone else already made.`,\n );\n this.name = 'KaiMemoryReviewConflictError';\n this.uuid = uuid;\n this.currentStatus = currentStatus;\n }\n}\n\ntype ParsedObjects = {\n objects: KaiMemoryItem[];\n /** Envelope ids (or `<no id>`) of items that did not match `kaiMemoryItemReadSchema`. */\n unreadableIds: string[];\n};\n\n/** Shared parse loop behind `getItems` (drops and logs) and `getItemsByStatusStrict` (fails). */\nconst parseObjects = (items: unknown[]): ParsedObjects => {\n const objects: KaiMemoryItem[] = [];\n const unreadableIds: string[] = [];\n\n for (const item of items) {\n const result = kaiMemoryItemReadSchema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n const id = envelopeId(item) ?? '<no id>';\n unreadableIds.push(id);\n // The object type, the UUID and the failing field, never the content: a memory note's\n // text is the customer's and does not belong in a console.\n console.warn(\n `kaiMemorySdk: kai-memory item \"${id}\" from the metastore response does not match its ` +\n `declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadableIds };\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createKaiMemorySdk = ({ metastoreClient }: Options) => {\n /**\n * The metastore's list endpoint looks up the `kai-memory` schema before querying, and 404s\n * (\"Schema not found\") when it was never registered — not an empty result. Since this SDK ships\n * independently of the backend PR that registers the schema, every read here would otherwise\n * throw on any stack that hasn't deployed it yet (or hasn't deployed it TO yet, mid-rollout),\n * indistinguishable from \"this project genuinely has zero kai-memory items\" from the caller's\n * point of view. Treat the two the same: no schema yet means no items yet.\n */\n const fetchObjects = async (signal?: AbortSignal): Promise<unknown[]> => {\n let response: Awaited<ReturnType<typeof metastoreClient.repository.getMetaObjects>>;\n try {\n response = await metastoreClient.repository.getMetaObjects(\n { objectType: KAI_MEMORY_OBJECT_TYPE },\n signal,\n );\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) return [];\n throw error;\n }\n return parseOrThrow(z.array(z.unknown()), response.data);\n };\n\n /**\n * Every `kai-memory` item in the project, parsed rather than asserted.\n *\n * - No server-side filter (AI-3975), so a caller after one status still pays for the collection.\n * - Degrade-on-drop: a malformed item is dropped and logged, for a display consumer (the admin\n * review list) that would rather show what it can. A steering-context consumer, where a\n * silently missing item is worse than a failed read, must use `getItemsByStatusStrict`.\n */\n const getItems = async (signal?: AbortSignal): Promise<KaiMemoryItem[]> => {\n const { objects } = parseObjects(await fetchObjects(signal));\n return objects;\n };\n\n /** `getItems` narrowed to one status, for the admin review list. */\n const getItemsByStatus = async (status: KaiMemoryStatus, signal?: AbortSignal) =>\n (await getItems(signal)).filter((item) => item.data.status === status);\n\n /**\n * `getItemsByStatus`, failing closed instead of dropping what it cannot parse.\n *\n * For the recall path (folded into every turn's prompt): an unclassifiable item must not be\n * silently omitted — it might be an `approved` note vanishing with no evidence anything was\n * missing (\"steering inputs fail the turn\"). Every unreadable item counts, not only ones\n * matching `status`, since an unparsed item's real status is unknown.\n */\n const getItemsByStatusStrict = async (\n status: KaiMemoryStatus,\n signal?: AbortSignal,\n ): Promise<KaiMemoryItem[]> => {\n const { objects, unreadableIds } = parseObjects(await fetchObjects(signal));\n if (unreadableIds.length > 0) throw new KaiMemoryUnreadableItemsError(unreadableIds);\n return objects.filter((item) => item.data.status === status);\n };\n\n /**\n * Envelope ids of every `kai-memory` item this SDK cannot parse, regardless of status — the\n * admin-facing counterpart to `getItemsByStatusStrict`'s failure. An unreadable item is invisible\n * to `getItems`/`getItemsByStatus` (dropped and logged) yet blocks every new chat's recall read,\n * so an admin needs a way to find and clear it; see `deleteUnreadableItem`.\n */\n const getUnreadableItemIds = async (signal?: AbortSignal): Promise<string[]> =>\n parseObjects(await fetchObjects(signal)).unreadableIds;\n\n /**\n * Deletes a `kai-memory` object by id without first reading and parsing it — `updateStatus`\n * can't be reused here because its pending-check read is exactly the parse that fails for an\n * unreadable item. Intended only for clearing an id surfaced by `getUnreadableItemIds`.\n */\n const deleteUnreadableItem = async (uuid: string): Promise<void> => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n };\n\n /**\n * Write a new `pending` note. `chatId` is a required, separate argument rather than a `data`\n * field — the caller (the memory-handler backend, never the sandboxed agent directly) is what\n * must supply it, taken from the turn's own ticket context, so a model cannot forge which\n * session a note came from.\n */\n const createItem = async (\n { content, chatId, createdBy }: { content: string; chatId: string; createdBy?: string },\n meta: CreateKaiMemoryMeta = {},\n ) => {\n const data: KaiMemoryData = { content, status: 'pending', chatId, createdBy };\n const response = await metastoreClient.repository.createMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n });\n\n return mapObject(response.data as unknown as RawKaiMemoryObject);\n };\n\n /**\n * Approve or reject a pending note (or otherwise move it between statuses).\n *\n * - Re-reads and refuses a no-longer-`pending` item (no PATCH precondition mechanism), closing\n * the realistic stale-tab race; `useUpdateKnowledgeBaseItemStatus` invalidates on every outcome.\n * - `rejected` deletes the object outright, so review no longer grows the metastore forever; the\n * return value is the pre-delete data with `status` overridden. A later 404 on the\n * conflict-check read (only reachable via a prior reject) becomes `KaiMemoryReviewConflictError`.\n */\n const updateStatus = async (\n uuid: string,\n status: KaiMemoryStatus,\n meta: UpdateKaiMemoryMeta = {},\n ) => {\n let current: Awaited<ReturnType<typeof metastoreClient.repository.getMetaObject>>;\n try {\n current = await metastoreClient.repository.getMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n throw new KaiMemoryReviewConflictError(uuid, 'rejected');\n }\n throw error;\n }\n\n const parsedCurrent = kaiMemoryItemReadSchema.safeParse(current.data);\n if (parsedCurrent.success && parsedCurrent.data.data.status !== 'pending') {\n throw new KaiMemoryReviewConflictError(uuid, parsedCurrent.data.data.status);\n }\n\n if (status === 'rejected') {\n const currentObject = current.data as unknown as RawKaiMemoryObject;\n await metastoreClient.repository.deleteMetaObject({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n\n return mapObject({\n ...currentObject,\n attributes: { ...currentObject.attributes, status },\n });\n }\n\n const response = await metastoreClient.repository.updateMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n data: { status },\n ...meta,\n });\n\n return mapObject(response.data as unknown as RawKaiMemoryObject);\n };\n\n return {\n getItems,\n getItemsByStatus,\n getItemsByStatusStrict,\n getUnreadableItemIds,\n deleteUnreadableItem,\n createItem,\n updateStatus,\n };\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const require_createFetchClient = require("./createFetchClient-DEkUH662.cjs");
1
+ const require_createFetchClient = require("./createFetchClient-CDKSkd7i.cjs");
2
2
  const require_ValidationError = require("./ValidationError-BXcFX4nD.cjs");
3
3
  let zod = require("zod");
4
4
  // src/sdks/kaiMemory/vocabulary.ts
@@ -283,4 +283,4 @@ Object.defineProperty(exports, "createKaiMemorySdk", {
283
283
  }
284
284
  });
285
285
 
286
- //# sourceMappingURL=kaiMemory-CkLQfJXD.cjs.map
286
+ //# sourceMappingURL=kaiMemory-DZ6hXni_.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"kaiMemory-CkLQfJXD.cjs","names":["z","formatValidationIssues","isApiError","HttpStatus","parseOrThrow","z"],"sources":["../src/sdks/kaiMemory/vocabulary.ts","../src/sdks/kaiMemory/readSchemas.ts","../src/sdks/kaiMemory/kaiMemorySdk.ts"],"sourcesContent":["/**\n * The closed value set a `kai-memory` object's `status` accepts.\n *\n * A single runtime source for the union in `./types`, mirroring\n * `sdks/semanticLayer/vocabulary.ts`'s pattern — a value cannot exist in the type and be\n * missing from the list a validator or a UI dropdown is built from.\n */\nexport const KAI_MEMORY_STATUSES = ['pending', 'approved', 'rejected'] as const;\n","import { z } from 'zod';\n\nimport type { KaiMemoryData, KaiMemoryMeta } from './types';\nimport { KAI_MEMORY_STATUSES } from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back for a `kai-memory` object — see\n * `sdks/semanticLayer/readSchemas.ts` for the `looseObject` reasoning this mirrors.\n *\n * `status` drops as unrecognized rather than passing through: an item this SDK cannot classify\n * as pending/approved/rejected must never be treated as any of them, in particular `approved`.\n */\nconst kaiMemoryReadSchema: z.ZodType<KaiMemoryData, unknown> = z.looseObject({\n content: z.string(),\n status: z.enum(KAI_MEMORY_STATUSES),\n chatId: z.string(),\n createdBy: z.string().optional(),\n});\n\nconst kaiMemoryMetaSchema: z.ZodType<KaiMemoryMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `KaiMemoryItem` the SDK returns. `meta`\n * absent or `null` both normalize to `{}` — see `semanticObjectReadSchema` for why an envelope\n * omitting audit fields is a normalization, not a failure.\n */\nexport const kaiMemoryItemReadSchema = z\n .object({\n id: z.string(),\n attributes: kaiMemoryReadSchema,\n meta: kaiMemoryMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\n\nimport { kaiMemoryItemReadSchema } from './readSchemas';\nimport type {\n CreateKaiMemoryMeta,\n KaiMemoryData,\n KaiMemoryItem,\n KaiMemoryStatus,\n MetastoreClient,\n UpdateKaiMemoryMeta,\n} from './types';\n\n/** The metastore object type this SDK addresses — see `SEMANTIC_OBJECT_TYPE` for the convention. */\nexport const KAI_MEMORY_OBJECT_TYPE = 'kai-memory';\n\nconst DEFAULT_BRANCH = 'main';\n\n/**\n * The live metastore envelope for a write response — see `RawSemanticObject` in\n * `sdks/semanticLayer/semanticLayerSdk.ts` for why a write asserts this shape rather than parsing\n * it: the metastore is echoing back the object it has just validated and stored.\n */\ntype RawKaiMemoryObject = {\n type: string;\n id: string;\n attributes: KaiMemoryData;\n meta: KaiMemoryItem['meta'];\n};\n\nconst mapObject = (item: RawKaiMemoryObject): KaiMemoryItem => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/**\n * Thrown by `getItemsByStatusStrict` when any `kai-memory` item — of any status, not only the\n * one asked for — could not be parsed. See that function's docstring for why an unreadable item\n * anywhere in the collection fails the whole read rather than being dropped.\n */\nexport class KaiMemoryUnreadableItemsError extends Error {\n readonly unreadableIds: string[];\n\n constructor(unreadableIds: string[]) {\n super(\n `${unreadableIds.length} kai-memory item(s) could not be read, so the knowledge base ` +\n `cannot be treated as complete.`,\n );\n this.name = 'KaiMemoryUnreadableItemsError';\n this.unreadableIds = unreadableIds;\n }\n}\n\n/**\n * Thrown by `updateStatus` when the item is no longer `pending` at write time — see that\n * function's docstring for the race it closes.\n */\nexport class KaiMemoryReviewConflictError extends Error {\n readonly uuid: string;\n readonly currentStatus: KaiMemoryStatus;\n\n constructor(uuid: string, currentStatus: KaiMemoryStatus) {\n super(\n `This note was already reviewed (now \"${currentStatus}\") — refusing to overwrite a ` +\n `decision someone else already made.`,\n );\n this.name = 'KaiMemoryReviewConflictError';\n this.uuid = uuid;\n this.currentStatus = currentStatus;\n }\n}\n\ntype ParsedObjects = {\n objects: KaiMemoryItem[];\n /** Envelope ids (or `<no id>`) of items that did not match `kaiMemoryItemReadSchema`. */\n unreadableIds: string[];\n};\n\n/** Shared parse loop behind `getItems` (drops and logs) and `getItemsByStatusStrict` (fails). */\nconst parseObjects = (items: unknown[]): ParsedObjects => {\n const objects: KaiMemoryItem[] = [];\n const unreadableIds: string[] = [];\n\n for (const item of items) {\n const result = kaiMemoryItemReadSchema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n const id = envelopeId(item) ?? '<no id>';\n unreadableIds.push(id);\n // The object type, the UUID and the failing field, never the content: a memory note's\n // text is the customer's and does not belong in a console.\n console.warn(\n `kaiMemorySdk: kai-memory item \"${id}\" from the metastore response does not match its ` +\n `declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadableIds };\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createKaiMemorySdk = ({ metastoreClient }: Options) => {\n /**\n * The metastore's list endpoint looks up the `kai-memory` schema before querying, and 404s\n * (\"Schema not found\") when it was never registered — not an empty result. Since this SDK ships\n * independently of the backend PR that registers the schema, every read here would otherwise\n * throw on any stack that hasn't deployed it yet (or hasn't deployed it TO yet, mid-rollout),\n * indistinguishable from \"this project genuinely has zero kai-memory items\" from the caller's\n * point of view. Treat the two the same: no schema yet means no items yet.\n */\n const fetchObjects = async (signal?: AbortSignal): Promise<unknown[]> => {\n let response: Awaited<ReturnType<typeof metastoreClient.repository.getMetaObjects>>;\n try {\n response = await metastoreClient.repository.getMetaObjects(\n { objectType: KAI_MEMORY_OBJECT_TYPE },\n signal,\n );\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) return [];\n throw error;\n }\n return parseOrThrow(z.array(z.unknown()), response.data);\n };\n\n /**\n * Every `kai-memory` item in the project, parsed rather than asserted.\n *\n * - No server-side filter (AI-3975), so a caller after one status still pays for the collection.\n * - Degrade-on-drop: a malformed item is dropped and logged, for a display consumer (the admin\n * review list) that would rather show what it can. A steering-context consumer, where a\n * silently missing item is worse than a failed read, must use `getItemsByStatusStrict`.\n */\n const getItems = async (signal?: AbortSignal): Promise<KaiMemoryItem[]> => {\n const { objects } = parseObjects(await fetchObjects(signal));\n return objects;\n };\n\n /** `getItems` narrowed to one status, for the admin review list. */\n const getItemsByStatus = async (status: KaiMemoryStatus, signal?: AbortSignal) =>\n (await getItems(signal)).filter((item) => item.data.status === status);\n\n /**\n * `getItemsByStatus`, failing closed instead of dropping what it cannot parse.\n *\n * For the recall path (folded into every turn's prompt): an unclassifiable item must not be\n * silently omitted — it might be an `approved` note vanishing with no evidence anything was\n * missing (\"steering inputs fail the turn\"). Every unreadable item counts, not only ones\n * matching `status`, since an unparsed item's real status is unknown.\n */\n const getItemsByStatusStrict = async (\n status: KaiMemoryStatus,\n signal?: AbortSignal,\n ): Promise<KaiMemoryItem[]> => {\n const { objects, unreadableIds } = parseObjects(await fetchObjects(signal));\n if (unreadableIds.length > 0) throw new KaiMemoryUnreadableItemsError(unreadableIds);\n return objects.filter((item) => item.data.status === status);\n };\n\n /**\n * Envelope ids of every `kai-memory` item this SDK cannot parse, regardless of status — the\n * admin-facing counterpart to `getItemsByStatusStrict`'s failure. An unreadable item is invisible\n * to `getItems`/`getItemsByStatus` (dropped and logged) yet blocks every new chat's recall read,\n * so an admin needs a way to find and clear it; see `deleteUnreadableItem`.\n */\n const getUnreadableItemIds = async (signal?: AbortSignal): Promise<string[]> =>\n parseObjects(await fetchObjects(signal)).unreadableIds;\n\n /**\n * Deletes a `kai-memory` object by id without first reading and parsing it — `updateStatus`\n * can't be reused here because its pending-check read is exactly the parse that fails for an\n * unreadable item. Intended only for clearing an id surfaced by `getUnreadableItemIds`.\n */\n const deleteUnreadableItem = async (uuid: string): Promise<void> => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n };\n\n /**\n * Write a new `pending` note. `chatId` is a required, separate argument rather than a `data`\n * field — the caller (the memory-handler backend, never the sandboxed agent directly) is what\n * must supply it, taken from the turn's own ticket context, so a model cannot forge which\n * session a note came from.\n */\n const createItem = async (\n { content, chatId, createdBy }: { content: string; chatId: string; createdBy?: string },\n meta: CreateKaiMemoryMeta = {},\n ) => {\n const data: KaiMemoryData = { content, status: 'pending', chatId, createdBy };\n const response = await metastoreClient.repository.createMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n });\n\n return mapObject(response.data as unknown as RawKaiMemoryObject);\n };\n\n /**\n * Approve or reject a pending note (or otherwise move it between statuses).\n *\n * - Re-reads and refuses a no-longer-`pending` item (no PATCH precondition mechanism), closing\n * the realistic stale-tab race; `useUpdateKnowledgeBaseItemStatus` invalidates on every outcome.\n * - `rejected` deletes the object outright, so review no longer grows the metastore forever; the\n * return value is the pre-delete data with `status` overridden. A later 404 on the\n * conflict-check read (only reachable via a prior reject) becomes `KaiMemoryReviewConflictError`.\n */\n const updateStatus = async (\n uuid: string,\n status: KaiMemoryStatus,\n meta: UpdateKaiMemoryMeta = {},\n ) => {\n let current: Awaited<ReturnType<typeof metastoreClient.repository.getMetaObject>>;\n try {\n current = await metastoreClient.repository.getMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n throw new KaiMemoryReviewConflictError(uuid, 'rejected');\n }\n throw error;\n }\n\n const parsedCurrent = kaiMemoryItemReadSchema.safeParse(current.data);\n if (parsedCurrent.success && parsedCurrent.data.data.status !== 'pending') {\n throw new KaiMemoryReviewConflictError(uuid, parsedCurrent.data.data.status);\n }\n\n if (status === 'rejected') {\n const currentObject = current.data as unknown as RawKaiMemoryObject;\n await metastoreClient.repository.deleteMetaObject({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n\n return mapObject({\n ...currentObject,\n attributes: { ...currentObject.attributes, status },\n });\n }\n\n const response = await metastoreClient.repository.updateMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n data: { status },\n ...meta,\n });\n\n return mapObject(response.data as unknown as RawKaiMemoryObject);\n };\n\n return {\n getItems,\n getItemsByStatus,\n getItemsByStatusStrict,\n getUnreadableItemIds,\n deleteUnreadableItem,\n createItem,\n updateStatus,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"kaiMemory-DZ6hXni_.cjs","names":["z","formatValidationIssues","isApiError","HttpStatus","parseOrThrow","z"],"sources":["../src/sdks/kaiMemory/vocabulary.ts","../src/sdks/kaiMemory/readSchemas.ts","../src/sdks/kaiMemory/kaiMemorySdk.ts"],"sourcesContent":["/**\n * The closed value set a `kai-memory` object's `status` accepts.\n *\n * A single runtime source for the union in `./types`, mirroring\n * `sdks/semanticLayer/vocabulary.ts`'s pattern — a value cannot exist in the type and be\n * missing from the list a validator or a UI dropdown is built from.\n */\nexport const KAI_MEMORY_STATUSES = ['pending', 'approved', 'rejected'] as const;\n","import { z } from 'zod';\n\nimport type { KaiMemoryData, KaiMemoryMeta } from './types';\nimport { KAI_MEMORY_STATUSES } from './vocabulary';\n\n/**\n * What a read of the metastore is allowed to hand back for a `kai-memory` object — see\n * `sdks/semanticLayer/readSchemas.ts` for the `looseObject` reasoning this mirrors.\n *\n * `status` drops as unrecognized rather than passing through: an item this SDK cannot classify\n * as pending/approved/rejected must never be treated as any of them, in particular `approved`.\n */\nconst kaiMemoryReadSchema: z.ZodType<KaiMemoryData, unknown> = z.looseObject({\n content: z.string(),\n status: z.enum(KAI_MEMORY_STATUSES),\n chatId: z.string(),\n createdBy: z.string().optional(),\n});\n\nconst kaiMemoryMetaSchema: z.ZodType<KaiMemoryMeta, unknown> = z.looseObject({\n name: z.string().optional(),\n branch: z.string().optional(),\n projectId: z.number().optional(),\n organizationId: z.string().optional(),\n revision: z.number().optional(),\n schemaVersion: z.string().optional(),\n createdAt: z.string().optional(),\n lastUpdated: z.string().optional(),\n revisionCreatedAt: z.string().optional(),\n});\n\n/**\n * The envelope every read comes wrapped in, mapped to the `KaiMemoryItem` the SDK returns. `meta`\n * absent or `null` both normalize to `{}` — see `semanticObjectReadSchema` for why an envelope\n * omitting audit fields is a normalization, not a failure.\n */\nexport const kaiMemoryItemReadSchema = z\n .object({\n id: z.string(),\n attributes: kaiMemoryReadSchema,\n meta: kaiMemoryMetaSchema.nullish(),\n })\n .transform(({ id, attributes, meta }) => ({ uuid: id, data: attributes, meta: meta ?? {} }));\n","import { z } from 'zod';\n\nimport { formatValidationIssues, parseOrThrow } from '../../errors';\nimport { isApiError } from '../../fetchClient';\nimport { HttpStatus } from '../../internal';\n\nimport { kaiMemoryItemReadSchema } from './readSchemas';\nimport type {\n CreateKaiMemoryMeta,\n KaiMemoryData,\n KaiMemoryItem,\n KaiMemoryStatus,\n MetastoreClient,\n UpdateKaiMemoryMeta,\n} from './types';\n\n/** The metastore object type this SDK addresses — see `SEMANTIC_OBJECT_TYPE` for the convention. */\nexport const KAI_MEMORY_OBJECT_TYPE = 'kai-memory';\n\nconst DEFAULT_BRANCH = 'main';\n\n/**\n * The live metastore envelope for a write response — see `RawSemanticObject` in\n * `sdks/semanticLayer/semanticLayerSdk.ts` for why a write asserts this shape rather than parsing\n * it: the metastore is echoing back the object it has just validated and stored.\n */\ntype RawKaiMemoryObject = {\n type: string;\n id: string;\n attributes: KaiMemoryData;\n meta: KaiMemoryItem['meta'];\n};\n\nconst mapObject = (item: RawKaiMemoryObject): KaiMemoryItem => ({\n uuid: item.id,\n data: item.attributes,\n meta: item.meta,\n});\n\nconst envelopeId = (value: unknown): string | null => {\n if (typeof value !== 'object' || value === null) return null;\n const { id } = value as { id?: unknown };\n return typeof id === 'string' && id !== '' ? id : null;\n};\n\n/**\n * Thrown by `getItemsByStatusStrict` when any `kai-memory` item — of any status, not only the\n * one asked for — could not be parsed. See that function's docstring for why an unreadable item\n * anywhere in the collection fails the whole read rather than being dropped.\n */\nexport class KaiMemoryUnreadableItemsError extends Error {\n readonly unreadableIds: string[];\n\n constructor(unreadableIds: string[]) {\n super(\n `${unreadableIds.length} kai-memory item(s) could not be read, so the knowledge base ` +\n `cannot be treated as complete.`,\n );\n this.name = 'KaiMemoryUnreadableItemsError';\n this.unreadableIds = unreadableIds;\n }\n}\n\n/**\n * Thrown by `updateStatus` when the item is no longer `pending` at write time — see that\n * function's docstring for the race it closes.\n */\nexport class KaiMemoryReviewConflictError extends Error {\n readonly uuid: string;\n readonly currentStatus: KaiMemoryStatus;\n\n constructor(uuid: string, currentStatus: KaiMemoryStatus) {\n super(\n `This note was already reviewed (now \"${currentStatus}\") — refusing to overwrite a ` +\n `decision someone else already made.`,\n );\n this.name = 'KaiMemoryReviewConflictError';\n this.uuid = uuid;\n this.currentStatus = currentStatus;\n }\n}\n\ntype ParsedObjects = {\n objects: KaiMemoryItem[];\n /** Envelope ids (or `<no id>`) of items that did not match `kaiMemoryItemReadSchema`. */\n unreadableIds: string[];\n};\n\n/** Shared parse loop behind `getItems` (drops and logs) and `getItemsByStatusStrict` (fails). */\nconst parseObjects = (items: unknown[]): ParsedObjects => {\n const objects: KaiMemoryItem[] = [];\n const unreadableIds: string[] = [];\n\n for (const item of items) {\n const result = kaiMemoryItemReadSchema.safeParse(item);\n if (result.success) {\n objects.push(result.data);\n continue;\n }\n\n const id = envelopeId(item) ?? '<no id>';\n unreadableIds.push(id);\n // The object type, the UUID and the failing field, never the content: a memory note's\n // text is the customer's and does not belong in a console.\n console.warn(\n `kaiMemorySdk: kai-memory item \"${id}\" from the metastore response does not match its ` +\n `declared shape`,\n formatValidationIssues(result.error.issues),\n );\n }\n\n return { objects, unreadableIds };\n};\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createKaiMemorySdk = ({ metastoreClient }: Options) => {\n /**\n * The metastore's list endpoint looks up the `kai-memory` schema before querying, and 404s\n * (\"Schema not found\") when it was never registered — not an empty result. Since this SDK ships\n * independently of the backend PR that registers the schema, every read here would otherwise\n * throw on any stack that hasn't deployed it yet (or hasn't deployed it TO yet, mid-rollout),\n * indistinguishable from \"this project genuinely has zero kai-memory items\" from the caller's\n * point of view. Treat the two the same: no schema yet means no items yet.\n */\n const fetchObjects = async (signal?: AbortSignal): Promise<unknown[]> => {\n let response: Awaited<ReturnType<typeof metastoreClient.repository.getMetaObjects>>;\n try {\n response = await metastoreClient.repository.getMetaObjects(\n { objectType: KAI_MEMORY_OBJECT_TYPE },\n signal,\n );\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) return [];\n throw error;\n }\n return parseOrThrow(z.array(z.unknown()), response.data);\n };\n\n /**\n * Every `kai-memory` item in the project, parsed rather than asserted.\n *\n * - No server-side filter (AI-3975), so a caller after one status still pays for the collection.\n * - Degrade-on-drop: a malformed item is dropped and logged, for a display consumer (the admin\n * review list) that would rather show what it can. A steering-context consumer, where a\n * silently missing item is worse than a failed read, must use `getItemsByStatusStrict`.\n */\n const getItems = async (signal?: AbortSignal): Promise<KaiMemoryItem[]> => {\n const { objects } = parseObjects(await fetchObjects(signal));\n return objects;\n };\n\n /** `getItems` narrowed to one status, for the admin review list. */\n const getItemsByStatus = async (status: KaiMemoryStatus, signal?: AbortSignal) =>\n (await getItems(signal)).filter((item) => item.data.status === status);\n\n /**\n * `getItemsByStatus`, failing closed instead of dropping what it cannot parse.\n *\n * For the recall path (folded into every turn's prompt): an unclassifiable item must not be\n * silently omitted — it might be an `approved` note vanishing with no evidence anything was\n * missing (\"steering inputs fail the turn\"). Every unreadable item counts, not only ones\n * matching `status`, since an unparsed item's real status is unknown.\n */\n const getItemsByStatusStrict = async (\n status: KaiMemoryStatus,\n signal?: AbortSignal,\n ): Promise<KaiMemoryItem[]> => {\n const { objects, unreadableIds } = parseObjects(await fetchObjects(signal));\n if (unreadableIds.length > 0) throw new KaiMemoryUnreadableItemsError(unreadableIds);\n return objects.filter((item) => item.data.status === status);\n };\n\n /**\n * Envelope ids of every `kai-memory` item this SDK cannot parse, regardless of status — the\n * admin-facing counterpart to `getItemsByStatusStrict`'s failure. An unreadable item is invisible\n * to `getItems`/`getItemsByStatus` (dropped and logged) yet blocks every new chat's recall read,\n * so an admin needs a way to find and clear it; see `deleteUnreadableItem`.\n */\n const getUnreadableItemIds = async (signal?: AbortSignal): Promise<string[]> =>\n parseObjects(await fetchObjects(signal)).unreadableIds;\n\n /**\n * Deletes a `kai-memory` object by id without first reading and parsing it — `updateStatus`\n * can't be reused here because its pending-check read is exactly the parse that fails for an\n * unreadable item. Intended only for clearing an id surfaced by `getUnreadableItemIds`.\n */\n const deleteUnreadableItem = async (uuid: string): Promise<void> => {\n await metastoreClient.repository.deleteMetaObject({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n };\n\n /**\n * Write a new `pending` note. `chatId` is a required, separate argument rather than a `data`\n * field — the caller (the memory-handler backend, never the sandboxed agent directly) is what\n * must supply it, taken from the turn's own ticket context, so a model cannot forge which\n * session a note came from.\n */\n const createItem = async (\n { content, chatId, createdBy }: { content: string; chatId: string; createdBy?: string },\n meta: CreateKaiMemoryMeta = {},\n ) => {\n const data: KaiMemoryData = { content, status: 'pending', chatId, createdBy };\n const response = await metastoreClient.repository.createMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n data,\n branch: DEFAULT_BRANCH,\n ...meta,\n });\n\n return mapObject(response.data as unknown as RawKaiMemoryObject);\n };\n\n /**\n * Approve or reject a pending note (or otherwise move it between statuses).\n *\n * - Re-reads and refuses a no-longer-`pending` item (no PATCH precondition mechanism), closing\n * the realistic stale-tab race; `useUpdateKnowledgeBaseItemStatus` invalidates on every outcome.\n * - `rejected` deletes the object outright, so review no longer grows the metastore forever; the\n * return value is the pre-delete data with `status` overridden. A later 404 on the\n * conflict-check read (only reachable via a prior reject) becomes `KaiMemoryReviewConflictError`.\n */\n const updateStatus = async (\n uuid: string,\n status: KaiMemoryStatus,\n meta: UpdateKaiMemoryMeta = {},\n ) => {\n let current: Awaited<ReturnType<typeof metastoreClient.repository.getMetaObject>>;\n try {\n current = await metastoreClient.repository.getMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.NOT_FOUND) {\n throw new KaiMemoryReviewConflictError(uuid, 'rejected');\n }\n throw error;\n }\n\n const parsedCurrent = kaiMemoryItemReadSchema.safeParse(current.data);\n if (parsedCurrent.success && parsedCurrent.data.data.status !== 'pending') {\n throw new KaiMemoryReviewConflictError(uuid, parsedCurrent.data.data.status);\n }\n\n if (status === 'rejected') {\n const currentObject = current.data as unknown as RawKaiMemoryObject;\n await metastoreClient.repository.deleteMetaObject({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n });\n\n return mapObject({\n ...currentObject,\n attributes: { ...currentObject.attributes, status },\n });\n }\n\n const response = await metastoreClient.repository.updateMetaObject<KaiMemoryData>({\n objectType: KAI_MEMORY_OBJECT_TYPE,\n UUID: uuid,\n data: { status },\n ...meta,\n });\n\n return mapObject(response.data as unknown as RawKaiMemoryObject);\n };\n\n return {\n getItems,\n getItemsByStatus,\n getItemsByStatusStrict,\n getUnreadableItemIds,\n deleteUnreadableItem,\n createItem,\n updateStatus,\n };\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_management = require("../management-BEGOEQxM.cjs");
2
+ const require_management = require("../management-CUXgB2rb.cjs");
3
3
  exports.createManagementClient = require_management.createManagementClient;
4
4
  exports.isManagementClientAuthError = require_management.isManagementClientAuthError;
5
5
  exports.isManagementSessionMintError = require_management.isManagementSessionMintError;
@@ -1,2 +1,2 @@
1
- import { a as ManagementOpenApiFetchClient, i as ManagementGenericFetchClient, n as isManagementSessionMintError, o as createManagementClient, r as AuthStrategy, t as isManagementClientAuthError } from "../index-Db266tLz.cjs";
1
+ import { a as ManagementOpenApiFetchClient, i as ManagementGenericFetchClient, n as isManagementSessionMintError, o as createManagementClient, r as AuthStrategy, t as isManagementClientAuthError } from "../index-81wn1jc3.cjs";
2
2
  export { AuthStrategy, ManagementGenericFetchClient, ManagementOpenApiFetchClient, createManagementClient, isManagementClientAuthError, isManagementSessionMintError };
@@ -1,2 +1,2 @@
1
- import { a as ManagementOpenApiFetchClient, i as ManagementGenericFetchClient, n as isManagementSessionMintError, o as createManagementClient, r as AuthStrategy, t as isManagementClientAuthError } from "../index-DIPMzH--.js";
1
+ import { a as ManagementOpenApiFetchClient, i as ManagementGenericFetchClient, n as isManagementSessionMintError, o as createManagementClient, r as AuthStrategy, t as isManagementClientAuthError } from "../index-JoKfPQND.js";
2
2
  export { AuthStrategy, ManagementGenericFetchClient, ManagementOpenApiFetchClient, createManagementClient, isManagementClientAuthError, isManagementSessionMintError };
@@ -1 +1 @@
1
- export { t as createManagementClient, n as isManagementClientAuthError, r as isManagementSessionMintError } from "../management-BcGHyxAP.js";
1
+ export { t as createManagementClient, n as isManagementClientAuthError, r as isManagementSessionMintError } from "../management-Cz5ut18k.js";