@marinoscar/platform-contract 0.0.0-stage → 0.1.0-next.4

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 (758) hide show
  1. package/CHANGELOG.md +206 -0
  2. package/LICENSE +21 -0
  3. package/README.md +167 -2
  4. package/dist/cjs/ai/capabilities.d.ts +85 -0
  5. package/dist/cjs/ai/capabilities.d.ts.map +1 -0
  6. package/dist/cjs/ai/capabilities.js +93 -0
  7. package/dist/cjs/ai/capabilities.js.map +1 -0
  8. package/dist/cjs/ai/constants.d.ts +239 -0
  9. package/dist/cjs/ai/constants.d.ts.map +1 -0
  10. package/dist/cjs/ai/constants.js +233 -0
  11. package/dist/cjs/ai/constants.js.map +1 -0
  12. package/dist/cjs/ai/features.d.ts +24 -0
  13. package/dist/cjs/ai/features.d.ts.map +1 -0
  14. package/dist/cjs/ai/features.js +33 -0
  15. package/dist/cjs/ai/features.js.map +1 -0
  16. package/dist/cjs/ai/index.d.ts +11 -0
  17. package/dist/cjs/ai/index.d.ts.map +1 -0
  18. package/dist/cjs/ai/index.js +81 -0
  19. package/dist/cjs/ai/index.js.map +1 -0
  20. package/dist/cjs/ai/org-keys.d.ts +50 -0
  21. package/dist/cjs/ai/org-keys.d.ts.map +1 -0
  22. package/dist/cjs/ai/org-keys.js +43 -0
  23. package/dist/cjs/ai/org-keys.js.map +1 -0
  24. package/dist/cjs/ai/schemas.d.ts +642 -0
  25. package/dist/cjs/ai/schemas.d.ts.map +1 -0
  26. package/dist/cjs/ai/schemas.js +894 -0
  27. package/dist/cjs/ai/schemas.js.map +1 -0
  28. package/dist/cjs/android-app/constants.d.ts +337 -0
  29. package/dist/cjs/android-app/constants.d.ts.map +1 -0
  30. package/dist/cjs/android-app/constants.js +312 -0
  31. package/dist/cjs/android-app/constants.js.map +1 -0
  32. package/dist/cjs/android-app/index.d.ts +5 -0
  33. package/dist/cjs/android-app/index.d.ts.map +1 -0
  34. package/dist/cjs/android-app/index.js +57 -0
  35. package/dist/cjs/android-app/index.js.map +1 -0
  36. package/dist/cjs/android-app/schemas.d.ts +358 -0
  37. package/dist/cjs/android-app/schemas.d.ts.map +1 -0
  38. package/dist/cjs/android-app/schemas.js +310 -0
  39. package/dist/cjs/android-app/schemas.js.map +1 -0
  40. package/dist/cjs/credentials/constants.d.ts +35 -0
  41. package/dist/cjs/credentials/constants.d.ts.map +1 -0
  42. package/dist/cjs/credentials/constants.js +39 -0
  43. package/dist/cjs/credentials/constants.js.map +1 -0
  44. package/dist/cjs/credentials/index.d.ts +5 -0
  45. package/dist/cjs/credentials/index.d.ts.map +1 -0
  46. package/dist/cjs/credentials/index.js +17 -0
  47. package/dist/cjs/credentials/index.js.map +1 -0
  48. package/dist/cjs/credentials/schemas.d.ts +64 -0
  49. package/dist/cjs/credentials/schemas.d.ts.map +1 -0
  50. package/dist/cjs/credentials/schemas.js +82 -0
  51. package/dist/cjs/credentials/schemas.js.map +1 -0
  52. package/dist/cjs/db-backup/config.d.ts +76 -0
  53. package/dist/cjs/db-backup/config.d.ts.map +1 -0
  54. package/dist/cjs/db-backup/config.js +115 -0
  55. package/dist/cjs/db-backup/config.js.map +1 -0
  56. package/dist/cjs/db-backup/constants.d.ts +314 -0
  57. package/dist/cjs/db-backup/constants.d.ts.map +1 -0
  58. package/dist/cjs/db-backup/constants.js +243 -0
  59. package/dist/cjs/db-backup/constants.js.map +1 -0
  60. package/dist/cjs/db-backup/index.d.ts +19 -0
  61. package/dist/cjs/db-backup/index.d.ts.map +1 -0
  62. package/dist/cjs/db-backup/index.js +81 -0
  63. package/dist/cjs/db-backup/index.js.map +1 -0
  64. package/dist/cjs/db-backup/node-credential.d.ts +37 -0
  65. package/dist/cjs/db-backup/node-credential.d.ts.map +1 -0
  66. package/dist/cjs/db-backup/node-credential.js +107 -0
  67. package/dist/cjs/db-backup/node-credential.js.map +1 -0
  68. package/dist/cjs/db-backup/node-result.d.ts +34 -0
  69. package/dist/cjs/db-backup/node-result.d.ts.map +1 -0
  70. package/dist/cjs/db-backup/node-result.js +168 -0
  71. package/dist/cjs/db-backup/node-result.js.map +1 -0
  72. package/dist/cjs/db-backup/restore.d.ts +405 -0
  73. package/dist/cjs/db-backup/restore.d.ts.map +1 -0
  74. package/dist/cjs/db-backup/restore.js +497 -0
  75. package/dist/cjs/db-backup/restore.js.map +1 -0
  76. package/dist/cjs/db-backup/run-actions.d.ts +49 -0
  77. package/dist/cjs/db-backup/run-actions.d.ts.map +1 -0
  78. package/dist/cjs/db-backup/run-actions.js +121 -0
  79. package/dist/cjs/db-backup/run-actions.js.map +1 -0
  80. package/dist/cjs/db-backup/runs-list-query.d.ts +20 -0
  81. package/dist/cjs/db-backup/runs-list-query.d.ts.map +1 -0
  82. package/dist/cjs/db-backup/runs-list-query.js +53 -0
  83. package/dist/cjs/db-backup/runs-list-query.js.map +1 -0
  84. package/dist/cjs/db-backup/runs.d.ts +46 -0
  85. package/dist/cjs/db-backup/runs.d.ts.map +1 -0
  86. package/dist/cjs/db-backup/runs.js +232 -0
  87. package/dist/cjs/db-backup/runs.js.map +1 -0
  88. package/dist/cjs/db-backup/schemas.d.ts +9 -0
  89. package/dist/cjs/db-backup/schemas.d.ts.map +1 -0
  90. package/dist/cjs/db-backup/schemas.js +31 -0
  91. package/dist/cjs/db-backup/schemas.js.map +1 -0
  92. package/dist/cjs/db-backup/settings-schemas.d.ts +217 -0
  93. package/dist/cjs/db-backup/settings-schemas.d.ts.map +1 -0
  94. package/dist/cjs/db-backup/settings-schemas.js +319 -0
  95. package/dist/cjs/db-backup/settings-schemas.js.map +1 -0
  96. package/dist/cjs/doctor/constants.d.ts +59 -0
  97. package/dist/cjs/doctor/constants.d.ts.map +1 -0
  98. package/dist/cjs/doctor/constants.js +57 -0
  99. package/dist/cjs/doctor/constants.js.map +1 -0
  100. package/dist/cjs/doctor/index.d.ts +5 -0
  101. package/dist/cjs/doctor/index.d.ts.map +1 -0
  102. package/dist/cjs/doctor/index.js +24 -0
  103. package/dist/cjs/doctor/index.js.map +1 -0
  104. package/dist/cjs/doctor/schemas.d.ts +186 -0
  105. package/dist/cjs/doctor/schemas.d.ts.map +1 -0
  106. package/dist/cjs/doctor/schemas.js +183 -0
  107. package/dist/cjs/doctor/schemas.js.map +1 -0
  108. package/dist/cjs/email/constants.d.ts +82 -0
  109. package/dist/cjs/email/constants.d.ts.map +1 -0
  110. package/dist/cjs/email/constants.js +82 -0
  111. package/dist/cjs/email/constants.js.map +1 -0
  112. package/dist/cjs/email/index.d.ts +5 -0
  113. package/dist/cjs/email/index.d.ts.map +1 -0
  114. package/dist/cjs/email/index.js +30 -0
  115. package/dist/cjs/email/index.js.map +1 -0
  116. package/dist/cjs/email/schemas.d.ts +276 -0
  117. package/dist/cjs/email/schemas.d.ts.map +1 -0
  118. package/dist/cjs/email/schemas.js +280 -0
  119. package/dist/cjs/email/schemas.js.map +1 -0
  120. package/dist/cjs/exports/constants.d.ts +123 -0
  121. package/dist/cjs/exports/constants.d.ts.map +1 -0
  122. package/dist/cjs/exports/constants.js +109 -0
  123. package/dist/cjs/exports/constants.js.map +1 -0
  124. package/dist/cjs/exports/index.d.ts +5 -0
  125. package/dist/cjs/exports/index.d.ts.map +1 -0
  126. package/dist/cjs/exports/index.js +42 -0
  127. package/dist/cjs/exports/index.js.map +1 -0
  128. package/dist/cjs/exports/schemas.d.ts +386 -0
  129. package/dist/cjs/exports/schemas.d.ts.map +1 -0
  130. package/dist/cjs/exports/schemas.js +288 -0
  131. package/dist/cjs/exports/schemas.js.map +1 -0
  132. package/dist/cjs/identity/constants.d.ts +273 -0
  133. package/dist/cjs/identity/constants.d.ts.map +1 -0
  134. package/dist/cjs/identity/constants.js +248 -0
  135. package/dist/cjs/identity/constants.js.map +1 -0
  136. package/dist/cjs/identity/index.d.ts +5 -0
  137. package/dist/cjs/identity/index.d.ts.map +1 -0
  138. package/dist/cjs/identity/index.js +73 -0
  139. package/dist/cjs/identity/index.js.map +1 -0
  140. package/dist/cjs/identity/schemas.d.ts +784 -0
  141. package/dist/cjs/identity/schemas.d.ts.map +1 -0
  142. package/dist/cjs/identity/schemas.js +684 -0
  143. package/dist/cjs/identity/schemas.js.map +1 -0
  144. package/dist/cjs/index.d.ts +13 -0
  145. package/dist/cjs/index.d.ts.map +1 -0
  146. package/dist/cjs/index.js +16 -0
  147. package/dist/cjs/index.js.map +1 -0
  148. package/dist/cjs/jobs/constants.d.ts +135 -0
  149. package/dist/cjs/jobs/constants.d.ts.map +1 -0
  150. package/dist/cjs/jobs/constants.js +130 -0
  151. package/dist/cjs/jobs/constants.js.map +1 -0
  152. package/dist/cjs/jobs/index.d.ts +9 -0
  153. package/dist/cjs/jobs/index.d.ts.map +1 -0
  154. package/dist/cjs/jobs/index.js +59 -0
  155. package/dist/cjs/jobs/index.js.map +1 -0
  156. package/dist/cjs/jobs/retention-schemas.d.ts +252 -0
  157. package/dist/cjs/jobs/retention-schemas.d.ts.map +1 -0
  158. package/dist/cjs/jobs/retention-schemas.js +233 -0
  159. package/dist/cjs/jobs/retention-schemas.js.map +1 -0
  160. package/dist/cjs/jobs/schemas.d.ts +361 -0
  161. package/dist/cjs/jobs/schemas.d.ts.map +1 -0
  162. package/dist/cjs/jobs/schemas.js +706 -0
  163. package/dist/cjs/jobs/schemas.js.map +1 -0
  164. package/dist/cjs/jobs/settings-schemas.d.ts +84 -0
  165. package/dist/cjs/jobs/settings-schemas.d.ts.map +1 -0
  166. package/dist/cjs/jobs/settings-schemas.js +116 -0
  167. package/dist/cjs/jobs/settings-schemas.js.map +1 -0
  168. package/dist/cjs/nodes/admin-schemas.d.ts +204 -0
  169. package/dist/cjs/nodes/admin-schemas.d.ts.map +1 -0
  170. package/dist/cjs/nodes/admin-schemas.js +153 -0
  171. package/dist/cjs/nodes/admin-schemas.js.map +1 -0
  172. package/dist/cjs/nodes/constants.d.ts +86 -0
  173. package/dist/cjs/nodes/constants.d.ts.map +1 -0
  174. package/dist/cjs/nodes/constants.js +102 -0
  175. package/dist/cjs/nodes/constants.js.map +1 -0
  176. package/dist/cjs/nodes/index.d.ts +8 -0
  177. package/dist/cjs/nodes/index.d.ts.map +1 -0
  178. package/dist/cjs/nodes/index.js +50 -0
  179. package/dist/cjs/nodes/index.js.map +1 -0
  180. package/dist/cjs/nodes/schemas.d.ts +332 -0
  181. package/dist/cjs/nodes/schemas.d.ts.map +1 -0
  182. package/dist/cjs/nodes/schemas.js +937 -0
  183. package/dist/cjs/nodes/schemas.js.map +1 -0
  184. package/dist/cjs/nodes/settings-schemas.d.ts +82 -0
  185. package/dist/cjs/nodes/settings-schemas.d.ts.map +1 -0
  186. package/dist/cjs/nodes/settings-schemas.js +106 -0
  187. package/dist/cjs/nodes/settings-schemas.js.map +1 -0
  188. package/dist/cjs/notifications/constants.d.ts +197 -0
  189. package/dist/cjs/notifications/constants.d.ts.map +1 -0
  190. package/dist/cjs/notifications/constants.js +181 -0
  191. package/dist/cjs/notifications/constants.js.map +1 -0
  192. package/dist/cjs/notifications/index.d.ts +5 -0
  193. package/dist/cjs/notifications/index.d.ts.map +1 -0
  194. package/dist/cjs/notifications/index.js +86 -0
  195. package/dist/cjs/notifications/index.js.map +1 -0
  196. package/dist/cjs/notifications/schemas.d.ts +1016 -0
  197. package/dist/cjs/notifications/schemas.d.ts.map +1 -0
  198. package/dist/cjs/notifications/schemas.js +851 -0
  199. package/dist/cjs/notifications/schemas.js.map +1 -0
  200. package/dist/cjs/onboarding/constants.d.ts +138 -0
  201. package/dist/cjs/onboarding/constants.d.ts.map +1 -0
  202. package/dist/cjs/onboarding/constants.js +123 -0
  203. package/dist/cjs/onboarding/constants.js.map +1 -0
  204. package/dist/cjs/onboarding/index.d.ts +5 -0
  205. package/dist/cjs/onboarding/index.d.ts.map +1 -0
  206. package/dist/cjs/onboarding/index.js +42 -0
  207. package/dist/cjs/onboarding/index.js.map +1 -0
  208. package/dist/cjs/onboarding/schemas.d.ts +360 -0
  209. package/dist/cjs/onboarding/schemas.d.ts.map +1 -0
  210. package/dist/cjs/onboarding/schemas.js +260 -0
  211. package/dist/cjs/onboarding/schemas.js.map +1 -0
  212. package/dist/cjs/package.json +3 -0
  213. package/dist/cjs/settings/constants.d.ts +206 -0
  214. package/dist/cjs/settings/constants.d.ts.map +1 -0
  215. package/dist/cjs/settings/constants.js +200 -0
  216. package/dist/cjs/settings/constants.js.map +1 -0
  217. package/dist/cjs/settings/index.d.ts +6 -0
  218. package/dist/cjs/settings/index.d.ts.map +1 -0
  219. package/dist/cjs/settings/index.js +62 -0
  220. package/dist/cjs/settings/index.js.map +1 -0
  221. package/dist/cjs/settings/schemas.d.ts +574 -0
  222. package/dist/cjs/settings/schemas.d.ts.map +1 -0
  223. package/dist/cjs/settings/schemas.js +437 -0
  224. package/dist/cjs/settings/schemas.js.map +1 -0
  225. package/dist/cjs/settings/types.d.ts +79 -0
  226. package/dist/cjs/settings/types.d.ts.map +1 -0
  227. package/dist/cjs/settings/types.js +6 -0
  228. package/dist/cjs/settings/types.js.map +1 -0
  229. package/dist/cjs/sharing/constants.d.ts +216 -0
  230. package/dist/cjs/sharing/constants.d.ts.map +1 -0
  231. package/dist/cjs/sharing/constants.js +163 -0
  232. package/dist/cjs/sharing/constants.js.map +1 -0
  233. package/dist/cjs/sharing/enum.d.ts +5 -0
  234. package/dist/cjs/sharing/enum.d.ts.map +1 -0
  235. package/dist/cjs/sharing/enum.js +9 -0
  236. package/dist/cjs/sharing/enum.js.map +1 -0
  237. package/dist/cjs/sharing/grants.d.ts +490 -0
  238. package/dist/cjs/sharing/grants.d.ts.map +1 -0
  239. package/dist/cjs/sharing/grants.js +447 -0
  240. package/dist/cjs/sharing/grants.js.map +1 -0
  241. package/dist/cjs/sharing/groups.d.ts +410 -0
  242. package/dist/cjs/sharing/groups.d.ts.map +1 -0
  243. package/dist/cjs/sharing/groups.js +375 -0
  244. package/dist/cjs/sharing/groups.js.map +1 -0
  245. package/dist/cjs/sharing/index.d.ts +5 -0
  246. package/dist/cjs/sharing/index.d.ts.map +1 -0
  247. package/dist/cjs/sharing/index.js +77 -0
  248. package/dist/cjs/sharing/index.js.map +1 -0
  249. package/dist/cjs/sharing/schemas.d.ts +3 -0
  250. package/dist/cjs/sharing/schemas.d.ts.map +1 -0
  251. package/dist/cjs/sharing/schemas.js +21 -0
  252. package/dist/cjs/sharing/schemas.js.map +1 -0
  253. package/dist/cjs/storage/constants.d.ts +111 -0
  254. package/dist/cjs/storage/constants.d.ts.map +1 -0
  255. package/dist/cjs/storage/constants.js +107 -0
  256. package/dist/cjs/storage/constants.js.map +1 -0
  257. package/dist/cjs/storage/index.d.ts +27 -0
  258. package/dist/cjs/storage/index.d.ts.map +1 -0
  259. package/dist/cjs/storage/index.js +69 -0
  260. package/dist/cjs/storage/index.js.map +1 -0
  261. package/dist/cjs/storage/objects-complete-upload.d.ts +19 -0
  262. package/dist/cjs/storage/objects-complete-upload.d.ts.map +1 -0
  263. package/dist/cjs/storage/objects-complete-upload.js +19 -0
  264. package/dist/cjs/storage/objects-complete-upload.js.map +1 -0
  265. package/dist/cjs/storage/objects-download-url.d.ts +17 -0
  266. package/dist/cjs/storage/objects-download-url.d.ts.map +1 -0
  267. package/dist/cjs/storage/objects-download-url.js +16 -0
  268. package/dist/cjs/storage/objects-download-url.js.map +1 -0
  269. package/dist/cjs/storage/objects-init-upload.d.ts +39 -0
  270. package/dist/cjs/storage/objects-init-upload.d.ts.map +1 -0
  271. package/dist/cjs/storage/objects-init-upload.js +40 -0
  272. package/dist/cjs/storage/objects-init-upload.js.map +1 -0
  273. package/dist/cjs/storage/objects-list-query.d.ts +50 -0
  274. package/dist/cjs/storage/objects-list-query.d.ts.map +1 -0
  275. package/dist/cjs/storage/objects-list-query.js +23 -0
  276. package/dist/cjs/storage/objects-list-query.js.map +1 -0
  277. package/dist/cjs/storage/objects-object-response.d.ts +49 -0
  278. package/dist/cjs/storage/objects-object-response.d.ts.map +1 -0
  279. package/dist/cjs/storage/objects-object-response.js +54 -0
  280. package/dist/cjs/storage/objects-object-response.js.map +1 -0
  281. package/dist/cjs/storage/objects-update-metadata.d.ts +16 -0
  282. package/dist/cjs/storage/objects-update-metadata.d.ts.map +1 -0
  283. package/dist/cjs/storage/objects-update-metadata.js +14 -0
  284. package/dist/cjs/storage/objects-update-metadata.js.map +1 -0
  285. package/dist/cjs/storage/schemas.d.ts +13 -0
  286. package/dist/cjs/storage/schemas.d.ts.map +1 -0
  287. package/dist/cjs/storage/schemas.js +35 -0
  288. package/dist/cjs/storage/schemas.js.map +1 -0
  289. package/dist/cjs/storage/settings-schemas.d.ts +188 -0
  290. package/dist/cjs/storage/settings-schemas.d.ts.map +1 -0
  291. package/dist/cjs/storage/settings-schemas.js +223 -0
  292. package/dist/cjs/storage/settings-schemas.js.map +1 -0
  293. package/dist/cjs/storage/storage-bucket-provision.d.ts +152 -0
  294. package/dist/cjs/storage/storage-bucket-provision.d.ts.map +1 -0
  295. package/dist/cjs/storage/storage-bucket-provision.js +216 -0
  296. package/dist/cjs/storage/storage-bucket-provision.js.map +1 -0
  297. package/dist/cjs/storage/storage-config-response.d.ts +99 -0
  298. package/dist/cjs/storage/storage-config-response.d.ts.map +1 -0
  299. package/dist/cjs/storage/storage-config-response.js +173 -0
  300. package/dist/cjs/storage/storage-config-response.js.map +1 -0
  301. package/dist/cjs/storage/storage-config-update.d.ts +46 -0
  302. package/dist/cjs/storage/storage-config-update.d.ts.map +1 -0
  303. package/dist/cjs/storage/storage-config-update.js +133 -0
  304. package/dist/cjs/storage/storage-config-update.js.map +1 -0
  305. package/dist/cjs/storage/storage-connection-test.d.ts +129 -0
  306. package/dist/cjs/storage/storage-connection-test.d.ts.map +1 -0
  307. package/dist/cjs/storage/storage-connection-test.js +244 -0
  308. package/dist/cjs/storage/storage-connection-test.js.map +1 -0
  309. package/dist/cjs/storage/storage-status.d.ts +16 -0
  310. package/dist/cjs/storage/storage-status.d.ts.map +1 -0
  311. package/dist/cjs/storage/storage-status.js +23 -0
  312. package/dist/cjs/storage/storage-status.js.map +1 -0
  313. package/dist/cjs/telemetry/assistant.d.ts +173 -0
  314. package/dist/cjs/telemetry/assistant.d.ts.map +1 -0
  315. package/dist/cjs/telemetry/assistant.js +43 -0
  316. package/dist/cjs/telemetry/assistant.js.map +1 -0
  317. package/dist/cjs/telemetry/config.d.ts +96 -0
  318. package/dist/cjs/telemetry/config.d.ts.map +1 -0
  319. package/dist/cjs/telemetry/config.js +115 -0
  320. package/dist/cjs/telemetry/config.js.map +1 -0
  321. package/dist/cjs/telemetry/connection.d.ts +355 -0
  322. package/dist/cjs/telemetry/connection.d.ts.map +1 -0
  323. package/dist/cjs/telemetry/connection.js +451 -0
  324. package/dist/cjs/telemetry/connection.js.map +1 -0
  325. package/dist/cjs/telemetry/constants.d.ts +814 -0
  326. package/dist/cjs/telemetry/constants.d.ts.map +1 -0
  327. package/dist/cjs/telemetry/constants.js +685 -0
  328. package/dist/cjs/telemetry/constants.js.map +1 -0
  329. package/dist/cjs/telemetry/dashboard.d.ts +997 -0
  330. package/dist/cjs/telemetry/dashboard.d.ts.map +1 -0
  331. package/dist/cjs/telemetry/dashboard.js +755 -0
  332. package/dist/cjs/telemetry/dashboard.js.map +1 -0
  333. package/dist/cjs/telemetry/enum.d.ts +5 -0
  334. package/dist/cjs/telemetry/enum.d.ts.map +1 -0
  335. package/dist/cjs/telemetry/enum.js +12 -0
  336. package/dist/cjs/telemetry/enum.js.map +1 -0
  337. package/dist/cjs/telemetry/index.d.ts +5 -0
  338. package/dist/cjs/telemetry/index.d.ts.map +1 -0
  339. package/dist/cjs/telemetry/index.js +160 -0
  340. package/dist/cjs/telemetry/index.js.map +1 -0
  341. package/dist/cjs/telemetry/presentation.d.ts +243 -0
  342. package/dist/cjs/telemetry/presentation.d.ts.map +1 -0
  343. package/dist/cjs/telemetry/presentation.js +300 -0
  344. package/dist/cjs/telemetry/presentation.js.map +1 -0
  345. package/dist/cjs/telemetry/query.d.ts +147 -0
  346. package/dist/cjs/telemetry/query.d.ts.map +1 -0
  347. package/dist/cjs/telemetry/query.js +141 -0
  348. package/dist/cjs/telemetry/query.js.map +1 -0
  349. package/dist/cjs/telemetry/schemas.d.ts +20 -0
  350. package/dist/cjs/telemetry/schemas.d.ts.map +1 -0
  351. package/dist/cjs/telemetry/schemas.js +109 -0
  352. package/dist/cjs/telemetry/schemas.js.map +1 -0
  353. package/dist/cjs/telemetry/settings.d.ts +65 -0
  354. package/dist/cjs/telemetry/settings.d.ts.map +1 -0
  355. package/dist/cjs/telemetry/settings.js +77 -0
  356. package/dist/cjs/telemetry/settings.js.map +1 -0
  357. package/dist/cjs/telemetry/stack.d.ts +87 -0
  358. package/dist/cjs/telemetry/stack.d.ts.map +1 -0
  359. package/dist/cjs/telemetry/stack.js +93 -0
  360. package/dist/cjs/telemetry/stack.js.map +1 -0
  361. package/dist/cjs/telemetry/status.d.ts +65 -0
  362. package/dist/cjs/telemetry/status.d.ts.map +1 -0
  363. package/dist/cjs/telemetry/status.js +65 -0
  364. package/dist/cjs/telemetry/status.js.map +1 -0
  365. package/dist/cjs/telemetry/store.d.ts +111 -0
  366. package/dist/cjs/telemetry/store.d.ts.map +1 -0
  367. package/dist/cjs/telemetry/store.js +83 -0
  368. package/dist/cjs/telemetry/store.js.map +1 -0
  369. package/dist/cjs/user-data/constants.d.ts +157 -0
  370. package/dist/cjs/user-data/constants.d.ts.map +1 -0
  371. package/dist/cjs/user-data/constants.js +137 -0
  372. package/dist/cjs/user-data/constants.js.map +1 -0
  373. package/dist/cjs/user-data/index.d.ts +5 -0
  374. package/dist/cjs/user-data/index.d.ts.map +1 -0
  375. package/dist/cjs/user-data/index.js +46 -0
  376. package/dist/cjs/user-data/index.js.map +1 -0
  377. package/dist/cjs/user-data/schemas.d.ts +306 -0
  378. package/dist/cjs/user-data/schemas.d.ts.map +1 -0
  379. package/dist/cjs/user-data/schemas.js +333 -0
  380. package/dist/cjs/user-data/schemas.js.map +1 -0
  381. package/dist/esm/ai/capabilities.d.ts +85 -0
  382. package/dist/esm/ai/capabilities.d.ts.map +1 -0
  383. package/dist/esm/ai/capabilities.js +90 -0
  384. package/dist/esm/ai/capabilities.js.map +1 -0
  385. package/dist/esm/ai/constants.d.ts +239 -0
  386. package/dist/esm/ai/constants.d.ts.map +1 -0
  387. package/dist/esm/ai/constants.js +229 -0
  388. package/dist/esm/ai/constants.js.map +1 -0
  389. package/dist/esm/ai/features.d.ts +24 -0
  390. package/dist/esm/ai/features.d.ts.map +1 -0
  391. package/dist/esm/ai/features.js +30 -0
  392. package/dist/esm/ai/features.js.map +1 -0
  393. package/dist/esm/ai/index.d.ts +11 -0
  394. package/dist/esm/ai/index.d.ts.map +1 -0
  395. package/dist/esm/ai/index.js +16 -0
  396. package/dist/esm/ai/index.js.map +1 -0
  397. package/dist/esm/ai/org-keys.d.ts +50 -0
  398. package/dist/esm/ai/org-keys.d.ts.map +1 -0
  399. package/dist/esm/ai/org-keys.js +40 -0
  400. package/dist/esm/ai/org-keys.js.map +1 -0
  401. package/dist/esm/ai/schemas.d.ts +642 -0
  402. package/dist/esm/ai/schemas.d.ts.map +1 -0
  403. package/dist/esm/ai/schemas.js +889 -0
  404. package/dist/esm/ai/schemas.js.map +1 -0
  405. package/dist/esm/android-app/constants.d.ts +337 -0
  406. package/dist/esm/android-app/constants.d.ts.map +1 -0
  407. package/dist/esm/android-app/constants.js +306 -0
  408. package/dist/esm/android-app/constants.js.map +1 -0
  409. package/dist/esm/android-app/index.d.ts +5 -0
  410. package/dist/esm/android-app/index.d.ts.map +1 -0
  411. package/dist/esm/android-app/index.js +8 -0
  412. package/dist/esm/android-app/index.js.map +1 -0
  413. package/dist/esm/android-app/schemas.d.ts +358 -0
  414. package/dist/esm/android-app/schemas.d.ts.map +1 -0
  415. package/dist/esm/android-app/schemas.js +306 -0
  416. package/dist/esm/android-app/schemas.js.map +1 -0
  417. package/dist/esm/credentials/constants.d.ts +35 -0
  418. package/dist/esm/credentials/constants.d.ts.map +1 -0
  419. package/dist/esm/credentials/constants.js +36 -0
  420. package/dist/esm/credentials/constants.js.map +1 -0
  421. package/dist/esm/credentials/index.d.ts +5 -0
  422. package/dist/esm/credentials/index.d.ts.map +1 -0
  423. package/dist/esm/credentials/index.js +8 -0
  424. package/dist/esm/credentials/index.js.map +1 -0
  425. package/dist/esm/credentials/schemas.d.ts +64 -0
  426. package/dist/esm/credentials/schemas.d.ts.map +1 -0
  427. package/dist/esm/credentials/schemas.js +79 -0
  428. package/dist/esm/credentials/schemas.js.map +1 -0
  429. package/dist/esm/db-backup/config.d.ts +76 -0
  430. package/dist/esm/db-backup/config.d.ts.map +1 -0
  431. package/dist/esm/db-backup/config.js +112 -0
  432. package/dist/esm/db-backup/config.js.map +1 -0
  433. package/dist/esm/db-backup/constants.d.ts +314 -0
  434. package/dist/esm/db-backup/constants.d.ts.map +1 -0
  435. package/dist/esm/db-backup/constants.js +240 -0
  436. package/dist/esm/db-backup/constants.js.map +1 -0
  437. package/dist/esm/db-backup/index.d.ts +19 -0
  438. package/dist/esm/db-backup/index.d.ts.map +1 -0
  439. package/dist/esm/db-backup/index.js +25 -0
  440. package/dist/esm/db-backup/index.js.map +1 -0
  441. package/dist/esm/db-backup/node-credential.d.ts +37 -0
  442. package/dist/esm/db-backup/node-credential.d.ts.map +1 -0
  443. package/dist/esm/db-backup/node-credential.js +104 -0
  444. package/dist/esm/db-backup/node-credential.js.map +1 -0
  445. package/dist/esm/db-backup/node-result.d.ts +34 -0
  446. package/dist/esm/db-backup/node-result.d.ts.map +1 -0
  447. package/dist/esm/db-backup/node-result.js +165 -0
  448. package/dist/esm/db-backup/node-result.js.map +1 -0
  449. package/dist/esm/db-backup/restore.d.ts +405 -0
  450. package/dist/esm/db-backup/restore.d.ts.map +1 -0
  451. package/dist/esm/db-backup/restore.js +494 -0
  452. package/dist/esm/db-backup/restore.js.map +1 -0
  453. package/dist/esm/db-backup/run-actions.d.ts +49 -0
  454. package/dist/esm/db-backup/run-actions.d.ts.map +1 -0
  455. package/dist/esm/db-backup/run-actions.js +118 -0
  456. package/dist/esm/db-backup/run-actions.js.map +1 -0
  457. package/dist/esm/db-backup/runs-list-query.d.ts +20 -0
  458. package/dist/esm/db-backup/runs-list-query.d.ts.map +1 -0
  459. package/dist/esm/db-backup/runs-list-query.js +50 -0
  460. package/dist/esm/db-backup/runs-list-query.js.map +1 -0
  461. package/dist/esm/db-backup/runs.d.ts +46 -0
  462. package/dist/esm/db-backup/runs.d.ts.map +1 -0
  463. package/dist/esm/db-backup/runs.js +229 -0
  464. package/dist/esm/db-backup/runs.js.map +1 -0
  465. package/dist/esm/db-backup/schemas.d.ts +9 -0
  466. package/dist/esm/db-backup/schemas.d.ts.map +1 -0
  467. package/dist/esm/db-backup/schemas.js +15 -0
  468. package/dist/esm/db-backup/schemas.js.map +1 -0
  469. package/dist/esm/db-backup/settings-schemas.d.ts +217 -0
  470. package/dist/esm/db-backup/settings-schemas.d.ts.map +1 -0
  471. package/dist/esm/db-backup/settings-schemas.js +316 -0
  472. package/dist/esm/db-backup/settings-schemas.js.map +1 -0
  473. package/dist/esm/doctor/constants.d.ts +59 -0
  474. package/dist/esm/doctor/constants.d.ts.map +1 -0
  475. package/dist/esm/doctor/constants.js +54 -0
  476. package/dist/esm/doctor/constants.js.map +1 -0
  477. package/dist/esm/doctor/index.d.ts +5 -0
  478. package/dist/esm/doctor/index.d.ts.map +1 -0
  479. package/dist/esm/doctor/index.js +10 -0
  480. package/dist/esm/doctor/index.js.map +1 -0
  481. package/dist/esm/doctor/schemas.d.ts +186 -0
  482. package/dist/esm/doctor/schemas.d.ts.map +1 -0
  483. package/dist/esm/doctor/schemas.js +180 -0
  484. package/dist/esm/doctor/schemas.js.map +1 -0
  485. package/dist/esm/email/constants.d.ts +82 -0
  486. package/dist/esm/email/constants.d.ts.map +1 -0
  487. package/dist/esm/email/constants.js +79 -0
  488. package/dist/esm/email/constants.js.map +1 -0
  489. package/dist/esm/email/index.d.ts +5 -0
  490. package/dist/esm/email/index.d.ts.map +1 -0
  491. package/dist/esm/email/index.js +8 -0
  492. package/dist/esm/email/index.js.map +1 -0
  493. package/dist/esm/email/schemas.d.ts +276 -0
  494. package/dist/esm/email/schemas.d.ts.map +1 -0
  495. package/dist/esm/email/schemas.js +277 -0
  496. package/dist/esm/email/schemas.js.map +1 -0
  497. package/dist/esm/exports/constants.d.ts +123 -0
  498. package/dist/esm/exports/constants.d.ts.map +1 -0
  499. package/dist/esm/exports/constants.js +106 -0
  500. package/dist/esm/exports/constants.js.map +1 -0
  501. package/dist/esm/exports/index.d.ts +5 -0
  502. package/dist/esm/exports/index.d.ts.map +1 -0
  503. package/dist/esm/exports/index.js +7 -0
  504. package/dist/esm/exports/index.js.map +1 -0
  505. package/dist/esm/exports/schemas.d.ts +386 -0
  506. package/dist/esm/exports/schemas.d.ts.map +1 -0
  507. package/dist/esm/exports/schemas.js +285 -0
  508. package/dist/esm/exports/schemas.js.map +1 -0
  509. package/dist/esm/identity/constants.d.ts +273 -0
  510. package/dist/esm/identity/constants.d.ts.map +1 -0
  511. package/dist/esm/identity/constants.js +244 -0
  512. package/dist/esm/identity/constants.js.map +1 -0
  513. package/dist/esm/identity/index.d.ts +5 -0
  514. package/dist/esm/identity/index.d.ts.map +1 -0
  515. package/dist/esm/identity/index.js +10 -0
  516. package/dist/esm/identity/index.js.map +1 -0
  517. package/dist/esm/identity/schemas.d.ts +784 -0
  518. package/dist/esm/identity/schemas.d.ts.map +1 -0
  519. package/dist/esm/identity/schemas.js +681 -0
  520. package/dist/esm/identity/schemas.js.map +1 -0
  521. package/dist/esm/index.d.ts +13 -0
  522. package/dist/esm/index.d.ts.map +1 -0
  523. package/dist/esm/index.js +13 -0
  524. package/dist/esm/index.js.map +1 -0
  525. package/dist/esm/jobs/constants.d.ts +135 -0
  526. package/dist/esm/jobs/constants.d.ts.map +1 -0
  527. package/dist/esm/jobs/constants.js +127 -0
  528. package/dist/esm/jobs/constants.js.map +1 -0
  529. package/dist/esm/jobs/index.d.ts +9 -0
  530. package/dist/esm/jobs/index.d.ts.map +1 -0
  531. package/dist/esm/jobs/index.js +11 -0
  532. package/dist/esm/jobs/index.js.map +1 -0
  533. package/dist/esm/jobs/retention-schemas.d.ts +252 -0
  534. package/dist/esm/jobs/retention-schemas.d.ts.map +1 -0
  535. package/dist/esm/jobs/retention-schemas.js +229 -0
  536. package/dist/esm/jobs/retention-schemas.js.map +1 -0
  537. package/dist/esm/jobs/schemas.d.ts +361 -0
  538. package/dist/esm/jobs/schemas.d.ts.map +1 -0
  539. package/dist/esm/jobs/schemas.js +703 -0
  540. package/dist/esm/jobs/schemas.js.map +1 -0
  541. package/dist/esm/jobs/settings-schemas.d.ts +84 -0
  542. package/dist/esm/jobs/settings-schemas.d.ts.map +1 -0
  543. package/dist/esm/jobs/settings-schemas.js +113 -0
  544. package/dist/esm/jobs/settings-schemas.js.map +1 -0
  545. package/dist/esm/nodes/admin-schemas.d.ts +204 -0
  546. package/dist/esm/nodes/admin-schemas.d.ts.map +1 -0
  547. package/dist/esm/nodes/admin-schemas.js +150 -0
  548. package/dist/esm/nodes/admin-schemas.js.map +1 -0
  549. package/dist/esm/nodes/constants.d.ts +86 -0
  550. package/dist/esm/nodes/constants.d.ts.map +1 -0
  551. package/dist/esm/nodes/constants.js +99 -0
  552. package/dist/esm/nodes/constants.js.map +1 -0
  553. package/dist/esm/nodes/index.d.ts +8 -0
  554. package/dist/esm/nodes/index.d.ts.map +1 -0
  555. package/dist/esm/nodes/index.js +11 -0
  556. package/dist/esm/nodes/index.js.map +1 -0
  557. package/dist/esm/nodes/schemas.d.ts +332 -0
  558. package/dist/esm/nodes/schemas.d.ts.map +1 -0
  559. package/dist/esm/nodes/schemas.js +934 -0
  560. package/dist/esm/nodes/schemas.js.map +1 -0
  561. package/dist/esm/nodes/settings-schemas.d.ts +82 -0
  562. package/dist/esm/nodes/settings-schemas.d.ts.map +1 -0
  563. package/dist/esm/nodes/settings-schemas.js +103 -0
  564. package/dist/esm/nodes/settings-schemas.js.map +1 -0
  565. package/dist/esm/notifications/constants.d.ts +197 -0
  566. package/dist/esm/notifications/constants.d.ts.map +1 -0
  567. package/dist/esm/notifications/constants.js +178 -0
  568. package/dist/esm/notifications/constants.js.map +1 -0
  569. package/dist/esm/notifications/index.d.ts +5 -0
  570. package/dist/esm/notifications/index.d.ts.map +1 -0
  571. package/dist/esm/notifications/index.js +9 -0
  572. package/dist/esm/notifications/index.js.map +1 -0
  573. package/dist/esm/notifications/schemas.d.ts +1016 -0
  574. package/dist/esm/notifications/schemas.d.ts.map +1 -0
  575. package/dist/esm/notifications/schemas.js +848 -0
  576. package/dist/esm/notifications/schemas.js.map +1 -0
  577. package/dist/esm/onboarding/constants.d.ts +138 -0
  578. package/dist/esm/onboarding/constants.d.ts.map +1 -0
  579. package/dist/esm/onboarding/constants.js +120 -0
  580. package/dist/esm/onboarding/constants.js.map +1 -0
  581. package/dist/esm/onboarding/index.d.ts +5 -0
  582. package/dist/esm/onboarding/index.d.ts.map +1 -0
  583. package/dist/esm/onboarding/index.js +7 -0
  584. package/dist/esm/onboarding/index.js.map +1 -0
  585. package/dist/esm/onboarding/schemas.d.ts +360 -0
  586. package/dist/esm/onboarding/schemas.d.ts.map +1 -0
  587. package/dist/esm/onboarding/schemas.js +257 -0
  588. package/dist/esm/onboarding/schemas.js.map +1 -0
  589. package/dist/esm/package.json +3 -0
  590. package/dist/esm/settings/constants.d.ts +206 -0
  591. package/dist/esm/settings/constants.d.ts.map +1 -0
  592. package/dist/esm/settings/constants.js +197 -0
  593. package/dist/esm/settings/constants.js.map +1 -0
  594. package/dist/esm/settings/index.d.ts +6 -0
  595. package/dist/esm/settings/index.d.ts.map +1 -0
  596. package/dist/esm/settings/index.js +11 -0
  597. package/dist/esm/settings/index.js.map +1 -0
  598. package/dist/esm/settings/schemas.d.ts +574 -0
  599. package/dist/esm/settings/schemas.d.ts.map +1 -0
  600. package/dist/esm/settings/schemas.js +434 -0
  601. package/dist/esm/settings/schemas.js.map +1 -0
  602. package/dist/esm/settings/types.d.ts +79 -0
  603. package/dist/esm/settings/types.d.ts.map +1 -0
  604. package/dist/esm/settings/types.js +5 -0
  605. package/dist/esm/settings/types.js.map +1 -0
  606. package/dist/esm/sharing/constants.d.ts +216 -0
  607. package/dist/esm/sharing/constants.d.ts.map +1 -0
  608. package/dist/esm/sharing/constants.js +159 -0
  609. package/dist/esm/sharing/constants.js.map +1 -0
  610. package/dist/esm/sharing/enum.d.ts +5 -0
  611. package/dist/esm/sharing/enum.d.ts.map +1 -0
  612. package/dist/esm/sharing/enum.js +6 -0
  613. package/dist/esm/sharing/enum.js.map +1 -0
  614. package/dist/esm/sharing/grants.d.ts +490 -0
  615. package/dist/esm/sharing/grants.d.ts.map +1 -0
  616. package/dist/esm/sharing/grants.js +444 -0
  617. package/dist/esm/sharing/grants.js.map +1 -0
  618. package/dist/esm/sharing/groups.d.ts +410 -0
  619. package/dist/esm/sharing/groups.d.ts.map +1 -0
  620. package/dist/esm/sharing/groups.js +372 -0
  621. package/dist/esm/sharing/groups.js.map +1 -0
  622. package/dist/esm/sharing/index.d.ts +5 -0
  623. package/dist/esm/sharing/index.d.ts.map +1 -0
  624. package/dist/esm/sharing/index.js +11 -0
  625. package/dist/esm/sharing/index.js.map +1 -0
  626. package/dist/esm/sharing/schemas.d.ts +3 -0
  627. package/dist/esm/sharing/schemas.d.ts.map +1 -0
  628. package/dist/esm/sharing/schemas.js +5 -0
  629. package/dist/esm/sharing/schemas.js.map +1 -0
  630. package/dist/esm/storage/constants.d.ts +111 -0
  631. package/dist/esm/storage/constants.d.ts.map +1 -0
  632. package/dist/esm/storage/constants.js +104 -0
  633. package/dist/esm/storage/constants.js.map +1 -0
  634. package/dist/esm/storage/index.d.ts +27 -0
  635. package/dist/esm/storage/index.d.ts.map +1 -0
  636. package/dist/esm/storage/index.js +23 -0
  637. package/dist/esm/storage/index.js.map +1 -0
  638. package/dist/esm/storage/objects-complete-upload.d.ts +19 -0
  639. package/dist/esm/storage/objects-complete-upload.d.ts.map +1 -0
  640. package/dist/esm/storage/objects-complete-upload.js +16 -0
  641. package/dist/esm/storage/objects-complete-upload.js.map +1 -0
  642. package/dist/esm/storage/objects-download-url.d.ts +17 -0
  643. package/dist/esm/storage/objects-download-url.d.ts.map +1 -0
  644. package/dist/esm/storage/objects-download-url.js +13 -0
  645. package/dist/esm/storage/objects-download-url.js.map +1 -0
  646. package/dist/esm/storage/objects-init-upload.d.ts +39 -0
  647. package/dist/esm/storage/objects-init-upload.d.ts.map +1 -0
  648. package/dist/esm/storage/objects-init-upload.js +37 -0
  649. package/dist/esm/storage/objects-init-upload.js.map +1 -0
  650. package/dist/esm/storage/objects-list-query.d.ts +50 -0
  651. package/dist/esm/storage/objects-list-query.d.ts.map +1 -0
  652. package/dist/esm/storage/objects-list-query.js +20 -0
  653. package/dist/esm/storage/objects-list-query.js.map +1 -0
  654. package/dist/esm/storage/objects-object-response.d.ts +49 -0
  655. package/dist/esm/storage/objects-object-response.d.ts.map +1 -0
  656. package/dist/esm/storage/objects-object-response.js +51 -0
  657. package/dist/esm/storage/objects-object-response.js.map +1 -0
  658. package/dist/esm/storage/objects-update-metadata.d.ts +16 -0
  659. package/dist/esm/storage/objects-update-metadata.d.ts.map +1 -0
  660. package/dist/esm/storage/objects-update-metadata.js +11 -0
  661. package/dist/esm/storage/objects-update-metadata.js.map +1 -0
  662. package/dist/esm/storage/schemas.d.ts +13 -0
  663. package/dist/esm/storage/schemas.d.ts.map +1 -0
  664. package/dist/esm/storage/schemas.js +19 -0
  665. package/dist/esm/storage/schemas.js.map +1 -0
  666. package/dist/esm/storage/settings-schemas.d.ts +188 -0
  667. package/dist/esm/storage/settings-schemas.d.ts.map +1 -0
  668. package/dist/esm/storage/settings-schemas.js +220 -0
  669. package/dist/esm/storage/settings-schemas.js.map +1 -0
  670. package/dist/esm/storage/storage-bucket-provision.d.ts +152 -0
  671. package/dist/esm/storage/storage-bucket-provision.d.ts.map +1 -0
  672. package/dist/esm/storage/storage-bucket-provision.js +213 -0
  673. package/dist/esm/storage/storage-bucket-provision.js.map +1 -0
  674. package/dist/esm/storage/storage-config-response.d.ts +99 -0
  675. package/dist/esm/storage/storage-config-response.d.ts.map +1 -0
  676. package/dist/esm/storage/storage-config-response.js +170 -0
  677. package/dist/esm/storage/storage-config-response.js.map +1 -0
  678. package/dist/esm/storage/storage-config-update.d.ts +46 -0
  679. package/dist/esm/storage/storage-config-update.d.ts.map +1 -0
  680. package/dist/esm/storage/storage-config-update.js +130 -0
  681. package/dist/esm/storage/storage-config-update.js.map +1 -0
  682. package/dist/esm/storage/storage-connection-test.d.ts +129 -0
  683. package/dist/esm/storage/storage-connection-test.d.ts.map +1 -0
  684. package/dist/esm/storage/storage-connection-test.js +241 -0
  685. package/dist/esm/storage/storage-connection-test.js.map +1 -0
  686. package/dist/esm/storage/storage-status.d.ts +16 -0
  687. package/dist/esm/storage/storage-status.d.ts.map +1 -0
  688. package/dist/esm/storage/storage-status.js +20 -0
  689. package/dist/esm/storage/storage-status.js.map +1 -0
  690. package/dist/esm/telemetry/assistant.d.ts +173 -0
  691. package/dist/esm/telemetry/assistant.d.ts.map +1 -0
  692. package/dist/esm/telemetry/assistant.js +40 -0
  693. package/dist/esm/telemetry/assistant.js.map +1 -0
  694. package/dist/esm/telemetry/config.d.ts +96 -0
  695. package/dist/esm/telemetry/config.d.ts.map +1 -0
  696. package/dist/esm/telemetry/config.js +112 -0
  697. package/dist/esm/telemetry/config.js.map +1 -0
  698. package/dist/esm/telemetry/connection.d.ts +355 -0
  699. package/dist/esm/telemetry/connection.d.ts.map +1 -0
  700. package/dist/esm/telemetry/connection.js +447 -0
  701. package/dist/esm/telemetry/connection.js.map +1 -0
  702. package/dist/esm/telemetry/constants.d.ts +814 -0
  703. package/dist/esm/telemetry/constants.d.ts.map +1 -0
  704. package/dist/esm/telemetry/constants.js +681 -0
  705. package/dist/esm/telemetry/constants.js.map +1 -0
  706. package/dist/esm/telemetry/dashboard.d.ts +997 -0
  707. package/dist/esm/telemetry/dashboard.d.ts.map +1 -0
  708. package/dist/esm/telemetry/dashboard.js +748 -0
  709. package/dist/esm/telemetry/dashboard.js.map +1 -0
  710. package/dist/esm/telemetry/enum.d.ts +5 -0
  711. package/dist/esm/telemetry/enum.d.ts.map +1 -0
  712. package/dist/esm/telemetry/enum.js +9 -0
  713. package/dist/esm/telemetry/enum.js.map +1 -0
  714. package/dist/esm/telemetry/index.d.ts +5 -0
  715. package/dist/esm/telemetry/index.d.ts.map +1 -0
  716. package/dist/esm/telemetry/index.js +10 -0
  717. package/dist/esm/telemetry/index.js.map +1 -0
  718. package/dist/esm/telemetry/presentation.d.ts +243 -0
  719. package/dist/esm/telemetry/presentation.d.ts.map +1 -0
  720. package/dist/esm/telemetry/presentation.js +297 -0
  721. package/dist/esm/telemetry/presentation.js.map +1 -0
  722. package/dist/esm/telemetry/query.d.ts +147 -0
  723. package/dist/esm/telemetry/query.d.ts.map +1 -0
  724. package/dist/esm/telemetry/query.js +138 -0
  725. package/dist/esm/telemetry/query.js.map +1 -0
  726. package/dist/esm/telemetry/schemas.d.ts +20 -0
  727. package/dist/esm/telemetry/schemas.d.ts.map +1 -0
  728. package/dist/esm/telemetry/schemas.js +14 -0
  729. package/dist/esm/telemetry/schemas.js.map +1 -0
  730. package/dist/esm/telemetry/settings.d.ts +65 -0
  731. package/dist/esm/telemetry/settings.d.ts.map +1 -0
  732. package/dist/esm/telemetry/settings.js +74 -0
  733. package/dist/esm/telemetry/settings.js.map +1 -0
  734. package/dist/esm/telemetry/stack.d.ts +87 -0
  735. package/dist/esm/telemetry/stack.d.ts.map +1 -0
  736. package/dist/esm/telemetry/stack.js +90 -0
  737. package/dist/esm/telemetry/stack.js.map +1 -0
  738. package/dist/esm/telemetry/status.d.ts +65 -0
  739. package/dist/esm/telemetry/status.d.ts.map +1 -0
  740. package/dist/esm/telemetry/status.js +62 -0
  741. package/dist/esm/telemetry/status.js.map +1 -0
  742. package/dist/esm/telemetry/store.d.ts +111 -0
  743. package/dist/esm/telemetry/store.d.ts.map +1 -0
  744. package/dist/esm/telemetry/store.js +80 -0
  745. package/dist/esm/telemetry/store.js.map +1 -0
  746. package/dist/esm/user-data/constants.d.ts +157 -0
  747. package/dist/esm/user-data/constants.d.ts.map +1 -0
  748. package/dist/esm/user-data/constants.js +134 -0
  749. package/dist/esm/user-data/constants.js.map +1 -0
  750. package/dist/esm/user-data/index.d.ts +5 -0
  751. package/dist/esm/user-data/index.d.ts.map +1 -0
  752. package/dist/esm/user-data/index.js +7 -0
  753. package/dist/esm/user-data/index.js.map +1 -0
  754. package/dist/esm/user-data/schemas.d.ts +306 -0
  755. package/dist/esm/user-data/schemas.d.ts.map +1 -0
  756. package/dist/esm/user-data/schemas.js +330 -0
  757. package/dist/esm/user-data/schemas.js.map +1 -0
  758. package/package.json +228 -4
@@ -0,0 +1,894 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // The `ai` settings namespaces (issue #739, PP-8.6)
4
+ // =============================================================================
5
+ //
6
+ // The schemas of the AI platform's system namespace `ai` (stored shape, PATCH
7
+ // partial, PUT and PATCH request-body branches, response branch), of its org
8
+ // layer (#733: what one organization may set, tighten-only) and of the per-user
9
+ // namespace `ai`, moved verbatim from the reference app's
10
+ // `common/schemas/settings.schema.ts`, `system-settings-wire.schemas.ts` and
11
+ // `system-settings-response.schemas.ts`. The API registers the namespaces
12
+ // (`@marinoscar/platform-api/ai`); the web validates its forms with the same
13
+ // bounds. zod only: no Node API (this file also runs in the browser).
14
+ // =============================================================================
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AI_SETTINGS_CARRIES_NO_SECRET = exports.orgAiSettingsSchema = exports.aiResponseSchema = exports.aiSettingsPatchSchema = exports.aiSettingsSchema = exports.aiLimitsSettingsSchema = exports.systemAiPatchSchema = exports.systemAiSchema = exports.orgAiProvidersSchema = exports.aiProvidersResponseSchema = exports.systemAiProvidersPatchSchema = exports.systemAiProvidersSchema = exports.aiProviderSlotPatchSchema = exports.aiProviderSlotSchema = exports.aiProviderIdSchema = exports.systemAiCompatibleProviderSchema = exports.systemAiAzureProviderSchema = exports.aiAzureDeploymentsSchema = exports.systemAiProviderSchema = exports.systemAiLimitsSchema = exports.aiLimitValueSchema = exports.userAiSettingsPatchSchema = exports.userAiSettingsSchema = void 0;
17
+ exports.aiEndpointUrlSchema = aiEndpointUrlSchema;
18
+ exports.tightenAiPolicy = tightenAiPolicy;
19
+ const zod_1 = require("zod");
20
+ const constants_js_1 = require("./constants.js");
21
+ // =============================================================================
22
+ // User namespace `ai`
23
+ // =============================================================================
24
+ /**
25
+ * Per-user AI preferences (`ai`) — issue #423, epic #419, umbrella #418.
26
+ *
27
+ * `defaultModel` is the ONLY field this issue adds: which (provider, model)
28
+ * a caller's AI surface should pre-select, so a user who has settled on one
29
+ * model does not re-pick it every time. Nullable, and the namespace itself
30
+ * optional — see below for why both.
31
+ *
32
+ * NON-SECRET ONLY, and this is the whole namespace, not a policy exception:
33
+ * a user's own provider key is `UserAiKey.secret`, ciphertext in its own
34
+ * table (`apps/api/prisma/schema.prisma`), never in `user_settings.value`,
35
+ * which — like `system_settings.value` — is returned wholesale by
36
+ * `GET /api/user-settings` and copied verbatim into whatever audit trail
37
+ * later issues add. `provider`/`modelId` here are the same kind of
38
+ * IDENTIFIER `systemStorageSchema.accessKeyId` is: they name a selection,
39
+ * they authorise nothing.
40
+ *
41
+ * `provider`/`modelId` are plain strings, not `z.enum(AI_PROVIDER_IDS)` /
42
+ * a foreign key into `AiModel`: this schema has no access to the database to
43
+ * validate a model still exists, and — matching `Job.type`'s and
44
+ * `AiModel.provider`'s own "a row must outlive the registry that produced it"
45
+ * reasoning throughout this codebase — a user's saved preference for a model
46
+ * later disabled or removed by an admin must remain a value this schema can
47
+ * represent, even though nothing routes to it any more.
48
+ *
49
+ * @stability experimental
50
+ */
51
+ exports.userAiSettingsSchema = zod_1.z.object({
52
+ /** The model an AI surface pre-selects; `null` means none chosen. */
53
+ defaultModel: zod_1.z
54
+ .object({
55
+ /** Provider id. */
56
+ provider: zod_1.z.string(),
57
+ /** Model id. */
58
+ modelId: zod_1.z.string(),
59
+ })
60
+ .nullable(),
61
+ });
62
+ /**
63
+ * `ai`, PATCH counterpart. `defaultModel` stays required-but-nullable inside
64
+ * the object (an explicit `{ "ai": { "defaultModel": null } }` clears the
65
+ * selection back to "none chosen"; the whole `ai` object itself is optional
66
+ * to send at all, matching `dataTables`/`navigation` above).
67
+ *
68
+ * @stability experimental
69
+ */
70
+ exports.userAiSettingsPatchSchema = zod_1.z.object({
71
+ /** The model an AI surface pre-selects; `null` means none chosen. */
72
+ defaultModel: zod_1.z
73
+ .object({
74
+ /** Provider id. */
75
+ provider: zod_1.z.string(),
76
+ /** Model id. */
77
+ modelId: zod_1.z.string(),
78
+ })
79
+ .nullable(),
80
+ });
81
+ // A factory, not a shared instance: every field gets its own enum, exactly as
82
+ // when each was written inline (the generated OpenAPI document is unchanged).
83
+ const keyPolicyEnum = () => zod_1.z.enum(constants_js_1.AI_KEY_POLICIES);
84
+ const mcpAllowedHostSchema = zod_1.z.string().max(253).regex(constants_js_1.AI_MCP_ALLOWED_HOST_PATTERN);
85
+ /**
86
+ * One limit value: a positive integer up to `AI_LIMIT_VALUE_MAX`.
87
+ *
88
+ * @stability experimental
89
+ */
90
+ exports.aiLimitValueSchema = zod_1.z.number().int().positive().max(constants_js_1.AI_LIMIT_VALUE_MAX);
91
+ /**
92
+ * `ai.limits` (#450) — per-user and per-model rate limits and output caps.
93
+ * EVERY FIELD IS OPTIONAL, AND ABSENT MEANS UNLIMITED: `{}` (the default) is
94
+ * a deployment with no limits at all, which is exactly Phase 1's behaviour.
95
+ *
96
+ * - `perUser.requestsPerMinute` / `.requestsPerDay` — every inference call a
97
+ * user makes, whoever's key pays.
98
+ * - `orgKey.requestsPerDayPerUser` / `.tokensPerDayPerUser` — only calls the
99
+ * ORG key pays for (`keySource: 'org'`); a user on their own key is never
100
+ * counted against these.
101
+ * - `perModel['<provider>:<modelId>']` — `maxOutputTokens` clamps the call
102
+ * (together with `defaults.maxOutputTokensCap`, the smaller wins), and
103
+ * `requestsPerMinutePerUser` limits each user's calls to that one model.
104
+ *
105
+ * Enforced by `AiLimitsService` (`ai/runtime/ai-limits.service.ts`); see
106
+ * `docs/specs/ai-platform.md` §2.22.
107
+ *
108
+ * @stability experimental
109
+ */
110
+ exports.systemAiLimitsSchema = zod_1.z.object({
111
+ /** Limits on every call a user makes, whoever's key pays. */
112
+ perUser: zod_1.z
113
+ .object({
114
+ /** Requests per minute. */
115
+ requestsPerMinute: exports.aiLimitValueSchema.optional(),
116
+ /** Requests per UTC day. */
117
+ requestsPerDay: exports.aiLimitValueSchema.optional(),
118
+ })
119
+ .optional(),
120
+ /** Limits on the calls an administrator-managed key pays for. */
121
+ orgKey: zod_1.z
122
+ .object({
123
+ /** Requests per UTC day, per user. */
124
+ requestsPerDayPerUser: exports.aiLimitValueSchema.optional(),
125
+ /** Input plus output tokens per UTC day, per user. */
126
+ tokensPerDayPerUser: exports.aiLimitValueSchema.optional(),
127
+ })
128
+ .optional(),
129
+ // #739: the deployment default PER ORGANIZATION (requests and output tokens
130
+ // per UTC day, counted over every call made in that organization); absent
131
+ // means unlimited. An organization may only lower it (its org layer).
132
+ /** Limits on one organization's whole daily volume, whoever's key pays (#739). */
133
+ perOrg: zod_1.z
134
+ .object({
135
+ /** Requests per UTC day. */
136
+ requestsPerDay: exports.aiLimitValueSchema.optional(),
137
+ /** Output tokens per UTC day. */
138
+ outputTokensPerDay: exports.aiLimitValueSchema.optional(),
139
+ })
140
+ .optional(),
141
+ /** Per-model limits, keyed `<provider>:<modelId>`. */
142
+ perModel: zod_1.z
143
+ .record(zod_1.z.string().max(constants_js_1.AI_LIMIT_MODEL_KEY_MAX).regex(constants_js_1.AI_LIMIT_MODEL_KEY_PATTERN), zod_1.z.object({
144
+ /** Output-token ceiling for every call to the model. */
145
+ maxOutputTokens: exports.aiLimitValueSchema.optional(),
146
+ /** Requests per minute, per user, to the model. */
147
+ requestsPerMinutePerUser: exports.aiLimitValueSchema.optional(),
148
+ }))
149
+ .refine((value) => Object.keys(value).length <= constants_js_1.AI_LIMITS_PER_MODEL_MAX, {
150
+ message: `At most ${constants_js_1.AI_LIMITS_PER_MODEL_MAX} per-model limits`,
151
+ })
152
+ .optional(),
153
+ });
154
+ /**
155
+ * Deployment-wide AI platform policy (`ai`).
156
+ *
157
+ * `enabled` is the master switch: OFF by default, matching every other
158
+ * feature namespace in this file that ships ahead of its own UI
159
+ * (`databaseBackup.enabled`, `nodes.jobSecretBrokerEnabled`) — a capability
160
+ * this deployment did not ask for must not turn itself on by existing in the
161
+ * schema.
162
+ *
163
+ * `providers.openai.baseUrl` IS AN ENDPOINT OVERRIDE, NOT A CREDENTIAL — the
164
+ * exact counterpart of `systemStorageSchema.endpoint`. It exists for
165
+ * OpenAI-compatible proxies and self-hosted gateways, and is optional because
166
+ * absent means "use the provider's own default host". `providers` is a RECORD
167
+ * keyed by provider id (PP-14.6, #924), open to a provider an app or package
168
+ * registers: this schema checks the id and `enabled`, and the provider's own
169
+ * `settingsSchema` (the API's provider registry) validates the rest, which a
170
+ * schema in this package cannot, since it does not know which providers a
171
+ * deployment registered. The stored shape of the five built-in providers is
172
+ * unchanged.
173
+ *
174
+ * `defaults.maxOutputTokensCap` bounds every call regardless of what the
175
+ * caller (or the model's own `maxOutputTokens`) requests, and is optional:
176
+ * absent means "no deployment-wide cap", not zero.
177
+ * `defaults.allowBackgroundRuns` decides whether a call may be queued as an `AiRun`
178
+ * job at all rather than only served synchronously; ON by default, since the
179
+ * job queue is this application's normal way of doing anything that takes a
180
+ * while (see the "Every Long-Running Activity Is a Queue Job" rules) and a
181
+ * deployment that has not thought about AI at all should not have quietly
182
+ * disabled the queue path the moment this namespace materialises.
183
+ *
184
+ * `defaults.allowRealtime` (#449) decides whether a user may mint a realtime
185
+ * voice session (`POST /api/ai/realtime/sessions`) — an ephemeral provider
186
+ * secret handed to the BROWSER, after which the server can neither see nor
187
+ * meter the conversation. OFF by default: that loss of per-call control is
188
+ * an administrator's decision (docs/specs/ai-platform.md §2.15). A row
189
+ * written before the field existed reads it as `false` without disturbing
190
+ * the rest of `defaults` (`SystemSettingsService.withAiSlots`).
191
+ *
192
+ * `logPromptContent` is OFF by default and is a deliberate, named privacy
193
+ * decision: whether this deployment's own logs/telemetry may capture prompt
194
+ * text at all, independent of `enabled`. A deployment can turn AI on while
195
+ * still refusing to let prompts (which may carry a user's own sensitive
196
+ * input) land in a log line nobody scoped for that.
197
+ *
198
+ * ⚠ THERE IS NO API KEY FIELD ANYWHERE IN THIS NAMESPACE, AND THERE MUST
199
+ * NEVER BE ONE — see the compile-time proof at the bottom of this file. A
200
+ * user's own key is `UserAiKey.secret`, ciphertext in its own table, never
201
+ * in this JSONB blob; an org-wide fallback key (
202
+ * `AI_KEY_POLICIES.byok_with_org_fallback`) is credential material for the same reason
203
+ * `systemStorageSchema`'s own header gives for the storage secret access
204
+ * key: this object is returned WHOLESALE by `GET /api/system-settings` and
205
+ * copied verbatim into every settings audit row, so a secret here is one
206
+ * admin GET away from being on the wire.
207
+ *
208
+ * `usageRetentionDays` (#443) is how long `ai_usage_events` rows are kept
209
+ * before the daily `ai.usage.purge` job deletes them — 180 days by default,
210
+ * comfortably past the 90-day window the usage report can show. It is a data
211
+ * retention decision, so it applies whether or not AI is currently enabled.
212
+ *
213
+ * `hostedTools` (#442) switches each provider-hosted tool type on for the
214
+ * deployment — web search, file search, code interpreter, image generation
215
+ * and remote MCP. ALL OFF BY DEFAULT: each one reaches outside this
216
+ * deployment (the open web, a third-party MCP server) and bills per use, so
217
+ * it is an administrator's decision, never a side effect of upgrading.
218
+ * `mcpAllowedHosts` optionally narrows which hosts an MCP `serverUrl` may
219
+ * name (`*.example.com` for subdomains); empty means any `https` host. It is
220
+ * a list of HOSTNAMES — MCP credentials travel per request, in the tool's
221
+ * `headers`, and are never stored here or anywhere else.
222
+ *
223
+ * `limits` (#450) holds the per-user and per-model rate limits and output
224
+ * caps — see `systemAiLimitsSchema`. Every field inside it is optional and
225
+ * absent means unlimited; the default is `{}`.
226
+ *
227
+ * NO `.default()` ON ANY FIELD, matching every namespace above it in this
228
+ * file. The defaults live in `DEFAULT_SYSTEM_SETTINGS` (settings.types.ts)
229
+ * and nowhere else.
230
+ */
231
+ /**
232
+ * One provider's slot in `ai.providers`: its switch and optional endpoint
233
+ * override. Every provider id has at least this shape; the two #448 slots
234
+ * below extend it.
235
+ *
236
+ * @stability experimental
237
+ */
238
+ exports.systemAiProviderSchema = zod_1.z.object({
239
+ /** Whether AI is switched on (the kill switch). */
240
+ enabled: zod_1.z.boolean(),
241
+ /** The endpoint override; absent means the provider's default. */
242
+ baseUrl: zod_1.z.string().url().optional(),
243
+ });
244
+ // ---- OpenAI-family endpoints (#448) ------------------------------------------
245
+ //
246
+ // SSRF POSTURE. `azure-openai` and `openai-compatible` point this server's
247
+ // outbound AI calls at an administrator-chosen host, so their `baseUrl` is
248
+ // validated harder than `openai.baseUrl` (which is left as it was):
249
+ //
250
+ // - scheme `https` only for Azure (every Azure OpenAI resource is https),
251
+ // `http` or `https` for a compatible server (a self-hosted Ollama on a
252
+ // private network is commonly plain http);
253
+ // - no credentials in the URL (`https://user:pass@host`) — a key belongs in
254
+ // the encrypted credential store, never in a JSONB blob `GET
255
+ // /api/system-settings` returns wholesale;
256
+ // - no fragment, which no HTTP request can carry anyway.
257
+ //
258
+ // POINTING AT AN INTERNAL HOST IS AN EXPLICIT ADMINISTRATOR DECISION, not
259
+ // something this validation refuses: `http://ollama.internal:11434/v1` is the
260
+ // canonical self-hosted setup, and the setting is writable only with
261
+ // `ai_config:write` / `system_settings:write`, both seeded Admin-only. What the
262
+ // adapters additionally refuse is being REDIRECTED somewhere else: their
263
+ // transport follows no redirect to another origin (see
264
+ // `ai/providers/openai/openai-redirect-guard.ts`).
265
+ /**
266
+ * A `baseUrl` for an admin-chosen OpenAI-family endpoint, restricted to `schemes`.
267
+ *
268
+ * @stability experimental
269
+ */
270
+ function aiEndpointUrlSchema(schemes) {
271
+ return zod_1.z
272
+ .string()
273
+ .max(constants_js_1.AI_ENDPOINT_URL_MAX)
274
+ .superRefine((value, ctx) => {
275
+ const problem = (0, constants_js_1.aiEndpointUrlProblem)(value, schemes);
276
+ if (problem)
277
+ ctx.addIssue({ code: 'custom', message: problem });
278
+ });
279
+ }
280
+ const apiStyleEnum = () => zod_1.z.enum(constants_js_1.AI_OPENAI_API_STYLES);
281
+ /**
282
+ * Azure OpenAI's model id to deployment name map.
283
+ *
284
+ * @stability experimental
285
+ */
286
+ exports.aiAzureDeploymentsSchema = zod_1.z
287
+ .record(zod_1.z.string().min(1).max(constants_js_1.AI_AZURE_MODEL_ID_MAX), zod_1.z.string().regex(constants_js_1.AI_AZURE_DEPLOYMENT_PATTERN, 'An Azure deployment name'))
288
+ .refine((value) => Object.keys(value).length <= constants_js_1.AI_AZURE_DEPLOYMENTS_MAX, {
289
+ message: `At most ${constants_js_1.AI_AZURE_DEPLOYMENTS_MAX} deployments`,
290
+ });
291
+ /**
292
+ * `providers['azure-openai']` (#448).
293
+ *
294
+ * - `baseUrl` — the resource endpoint, `https://<resource>.openai.azure.com`
295
+ * (the SDK appends `/openai`). Named `baseUrl`, like every other slot, so
296
+ * every generic consumer (the admin test's override, the catalog sync, the
297
+ * per-call context) handles it with no Azure special case. Required before
298
+ * the provider can be enabled — see `AiConfigAdminService`.
299
+ * - `apiVersion` — the `api-version` query value; absent means
300
+ * `AZURE_OPENAI_DEFAULT_API_VERSION` (`ai/providers/azure-openai`).
301
+ * - `apiStyle` — `responses` (the default: current api-versions serve the
302
+ * Responses API) or `chat_completions` for an older api-version or a
303
+ * deployment the Responses API does not cover.
304
+ * - `deployments` — model id → deployment name. Azure routes by DEPLOYMENT,
305
+ * and a deployment may be named anything; when this map is set its keys
306
+ * ARE the model list the catalog discovers, and a model id missing from it
307
+ * is sent as its own deployment name.
308
+ *
309
+ * @stability experimental
310
+ */
311
+ exports.systemAiAzureProviderSchema = exports.systemAiProviderSchema.extend({
312
+ /** The endpoint override; absent means the provider's default. */
313
+ baseUrl: aiEndpointUrlSchema(constants_js_1.AI_AZURE_ENDPOINT_SCHEMES).optional(),
314
+ /** Azure OpenAI: the API version. */
315
+ apiVersion: zod_1.z.string().regex(constants_js_1.AI_AZURE_API_VERSION_PATTERN).optional(),
316
+ /** Which API shape the server speaks (`responses` or `chat_completions`). */
317
+ apiStyle: apiStyleEnum().optional(),
318
+ /** Azure OpenAI: model id to deployment name. */
319
+ deployments: exports.aiAzureDeploymentsSchema.optional(),
320
+ });
321
+ /**
322
+ * `providers['openai-compatible']` (#448) — Ollama, vLLM, LM Studio or any
323
+ * other server speaking the OpenAI wire protocol.
324
+ *
325
+ * - `baseUrl` — the server's API root, INCLUDING its version segment
326
+ * (`http://ollama.internal:11434/v1`); required before enabling.
327
+ * - `apiStyle` — `chat_completions` (the default: what every compatible
328
+ * server serves) or `responses` for one that also serves the Responses API.
329
+ * - `requiresKey` — absent or `true`: a key is resolved like any provider's
330
+ * (BYOK, or the org fallback). `false` is the ADMINISTRATOR'S OPT-IN to a
331
+ * keyless server: calls carry no credential, no user needs a key, and
332
+ * usage is recorded with `keySource: 'none'` (docs/specs/ai-platform.md
333
+ * §2.24).
334
+ *
335
+ * @stability experimental
336
+ */
337
+ exports.systemAiCompatibleProviderSchema = exports.systemAiProviderSchema.extend({
338
+ /** The endpoint override; absent means the provider's default. */
339
+ baseUrl: aiEndpointUrlSchema(constants_js_1.AI_COMPATIBLE_ENDPOINT_SCHEMES).optional(),
340
+ /** Which API shape the server speaks (`responses` or `chat_completions`). */
341
+ apiStyle: apiStyleEnum().optional(),
342
+ /** OpenAI-compatible: whether the server needs a key. */
343
+ requiresKey: zod_1.z.boolean().optional(),
344
+ });
345
+ // ---- the open `providers` record (PP-14.6, issue #924) ------------------------------------
346
+ //
347
+ // `ai.providers` is a RECORD keyed by provider id, not an object with one fixed
348
+ // key per provider. A provider an app or package adds
349
+ // (`registerAiProvider`, `@marinoscar/platform-api/ai`) has a slot with no
350
+ // change here. The record only checks the id and the one field every slot
351
+ // has (`enabled`); the provider-specific fields pass through and are validated
352
+ // by the provider's own `settingsSchema` where the registry is (the API's
353
+ // `ai` namespace read and merge), never by this package, which cannot know
354
+ // which providers a deployment registered.
355
+ /**
356
+ * A provider id: a lower-case letter, then lower-case letters, digits and
357
+ * hyphens (2 to 48 characters). The pattern of the pluggable-kind registry
358
+ * and the provider part of an `ai.limits.perModel` key.
359
+ *
360
+ * @extensionPoint schema
361
+ * @stability experimental
362
+ */
363
+ exports.aiProviderIdSchema = zod_1.z.string().regex(constants_js_1.AI_PROVIDER_ID_PATTERN);
364
+ /**
365
+ * One provider's slot in the stored `ai.providers` record: the switch every
366
+ * provider has, plus the provider's own non-secret settings (`baseUrl`,
367
+ * `region`, ...), which pass through. Carries no key.
368
+ *
369
+ * @extensionPoint schema
370
+ * @stability experimental
371
+ */
372
+ exports.aiProviderSlotSchema = zod_1.z.looseObject({
373
+ /** Whether the provider is switched on. */
374
+ enabled: zod_1.z.boolean(),
375
+ });
376
+ /**
377
+ * One provider's slot in a PATCH: every field optional, and a provider's own
378
+ * optional setting takes `null` to remove it (back to its default).
379
+ *
380
+ * @stability experimental
381
+ */
382
+ exports.aiProviderSlotPatchSchema = zod_1.z.looseObject({
383
+ /** Whether the provider is switched on. */
384
+ enabled: zod_1.z.boolean().optional(),
385
+ });
386
+ /**
387
+ * `ai.providers` as stored and as a PUT carries it: slots by provider id.
388
+ *
389
+ * @stability experimental
390
+ */
391
+ exports.systemAiProvidersSchema = zod_1.z.record(exports.aiProviderIdSchema, exports.aiProviderSlotSchema);
392
+ /**
393
+ * `ai.providers` in a PATCH: the slots to change, by provider id; a provider
394
+ * left out keeps its stored settings.
395
+ *
396
+ * @stability experimental
397
+ */
398
+ exports.systemAiProvidersPatchSchema = zod_1.z.record(exports.aiProviderIdSchema, exports.aiProviderSlotPatchSchema);
399
+ /**
400
+ * `ai.providers` as `GET /api/system-settings` answers it. `hasKey` is
401
+ * reported by consumers that know whether a deployment key is stored.
402
+ *
403
+ * @stability experimental
404
+ */
405
+ exports.aiProvidersResponseSchema = zod_1.z.record(exports.aiProviderIdSchema, zod_1.z.looseObject({
406
+ /** Whether the provider is switched on. */
407
+ enabled: zod_1.z.boolean(),
408
+ /** Whether the deployment stores a key for the provider. */
409
+ hasKey: zod_1.z.boolean().optional(),
410
+ }));
411
+ /**
412
+ * `ai.providers` in an organization's overrides: it may only switch a
413
+ * provider off for its members.
414
+ *
415
+ * @stability experimental
416
+ */
417
+ exports.orgAiProvidersSchema = zod_1.z.record(exports.aiProviderIdSchema, zod_1.z.object({
418
+ /** `false` switches the provider off for the organization's members. */
419
+ enabled: zod_1.z.boolean().optional(),
420
+ }));
421
+ /**
422
+ * The stored `ai` system settings namespace: the deployment's AI policy.
423
+ * It carries no key (see `AI_SETTINGS_CARRIES_NO_SECRET`).
424
+ *
425
+ * @stability experimental
426
+ */
427
+ exports.systemAiSchema = zod_1.z.object({
428
+ /** Whether AI is switched on (the kill switch). */
429
+ enabled: zod_1.z.boolean(),
430
+ /** Whose key pays: the caller's own only (`byok`), or an administrator's as a fallback. */
431
+ keyPolicy: keyPolicyEnum(),
432
+ /** Per-provider settings, by provider id. */
433
+ providers: exports.systemAiProvidersSchema,
434
+ /** Deployment-wide defaults a call cannot exceed. */
435
+ defaults: zod_1.z.object({
436
+ /** Output-token ceiling for every call; `null` means no cap. */
437
+ maxOutputTokensCap: zod_1.z.number().int().positive().optional(),
438
+ /** Whether a call may be queued as a background run. */
439
+ allowBackgroundRuns: zod_1.z.boolean(),
440
+ // #449. Appended; see the header for how an older row reads it.
441
+ /** Whether realtime voice sessions may be minted. */
442
+ allowRealtime: zod_1.z.boolean(),
443
+ }),
444
+ /** Whether prompt and response text is written to the logs. */
445
+ logPromptContent: zod_1.z.boolean(),
446
+ /** Days usage rows are kept. */
447
+ usageRetentionDays: zod_1.z.number().int().min(1).max(constants_js_1.AI_USAGE_RETENTION_MAX_DAYS),
448
+ /** Which provider-hosted tools are switched on (all off by default). */
449
+ hostedTools: zod_1.z.object({
450
+ /** Hosted web search. */
451
+ web_search: zod_1.z.boolean(),
452
+ /** Hosted file search. */
453
+ file_search: zod_1.z.boolean(),
454
+ /** Hosted code execution. */
455
+ code_interpreter: zod_1.z.boolean(),
456
+ /** Hosted image generation. */
457
+ image_generation: zod_1.z.boolean(),
458
+ /** Remote MCP servers. */
459
+ mcp: zod_1.z.boolean(),
460
+ /** Hosts a remote MCP server may be on; empty means any `https://` host. */
461
+ mcpAllowedHosts: zod_1.z.array(mcpAllowedHostSchema).max(constants_js_1.AI_MCP_ALLOWED_HOSTS_MAX),
462
+ }),
463
+ /** Rate limits and output caps; every absent field is unlimited. */
464
+ limits: exports.systemAiLimitsSchema,
465
+ // #739: whether the DEPLOYMENT's provider key (the `ai` credential of the
466
+ // system tier) may serve a call made in an organization that has no key of
467
+ // its own, under the same rule an organization key does. `true`: today's
468
+ // behaviour, where the deployment key is the only administrator key.
469
+ /** Whether the deployment's keys pay for an organization that stores no key of its own (#739). */
470
+ deploymentKeyServesOrgs: zod_1.z.boolean(),
471
+ });
472
+ /**
473
+ * `ai`, one level deep — matching `systemStoragePatchSchema`'s own shape one
474
+ * level further in: `providers` and `defaults` are each optional as a whole
475
+ * AND optional field by field inside, so
476
+ * `{ "ai": { "providers": { "openai": { "enabled": true } } } }` is a legal body that leaves `defaults` and
477
+ * `logPromptContent` untouched. See `SystemSettingsService.patchSettings`
478
+ * for the merge this shape is built to support.
479
+ */
480
+ //
481
+ // `baseUrl` and `maxOutputTokensCap` are the two OPTIONAL fields of the stored
482
+ // value, so they are the two a PATCH must be able to REMOVE: absent leaves the
483
+ // stored value alone, explicit `null` deletes it (back to "provider default
484
+ // host" / "no cap"). The same absent-vs-null distinction
485
+ // `storage.forcePathStyle` and `maintenance.startedAt` already draw; without
486
+ // it an override, once set, could be changed but never cleared (#428).
487
+ /**
488
+ * A `PATCH /api/system-settings` body's `ai` member: every field optional.
489
+ *
490
+ * @stability experimental
491
+ */
492
+ exports.systemAiPatchSchema = zod_1.z.object({
493
+ /** Whether AI is switched on (the kill switch). */
494
+ enabled: zod_1.z.boolean().optional(),
495
+ /** Whose key pays: the caller's own only (`byok`), or an administrator's as a fallback. */
496
+ keyPolicy: keyPolicyEnum().optional(),
497
+ /** Per-provider settings, by provider id. */
498
+ providers: exports.systemAiProvidersPatchSchema.optional(),
499
+ /** Deployment-wide defaults a call cannot exceed. */
500
+ defaults: zod_1.z
501
+ .object({
502
+ /** Output-token ceiling for every call; `null` means no cap. */
503
+ maxOutputTokensCap: zod_1.z.number().int().positive().nullable().optional(),
504
+ /** Whether a call may be queued as a background run. */
505
+ allowBackgroundRuns: zod_1.z.boolean().optional(),
506
+ /** Whether realtime voice sessions may be minted. */
507
+ allowRealtime: zod_1.z.boolean().optional(),
508
+ })
509
+ .optional(),
510
+ /** Whether prompt and response text is written to the logs. */
511
+ logPromptContent: zod_1.z.boolean().optional(),
512
+ /** Days usage rows are kept. */
513
+ usageRetentionDays: zod_1.z.number().int().min(1).max(constants_js_1.AI_USAGE_RETENTION_MAX_DAYS).optional(),
514
+ // Field by field; `mcpAllowedHosts` REPLACES wholesale (RFC 7396's rule
515
+ // for arrays, and `notifications.disabledEvents`' precedent).
516
+ /** Which provider-hosted tools are switched on (all off by default). */
517
+ hostedTools: zod_1.z
518
+ .object({
519
+ /** Hosted web search. */
520
+ web_search: zod_1.z.boolean().optional(),
521
+ /** Hosted file search. */
522
+ file_search: zod_1.z.boolean().optional(),
523
+ /** Hosted code execution. */
524
+ code_interpreter: zod_1.z.boolean().optional(),
525
+ /** Hosted image generation. */
526
+ image_generation: zod_1.z.boolean().optional(),
527
+ /** Remote MCP servers. */
528
+ mcp: zod_1.z.boolean().optional(),
529
+ /** Hosts a remote MCP server may be on; empty means any `https://` host. */
530
+ mcpAllowedHosts: zod_1.z.array(mcpAllowedHostSchema).max(constants_js_1.AI_MCP_ALLOWED_HOSTS_MAX).optional(),
531
+ })
532
+ .optional(),
533
+ // #450. REPLACES WHOLESALE when present — the whole `limits` object is the
534
+ // new value. A field-by-field merge could never REMOVE a limit (or a
535
+ // per-model entry), and "absent means unlimited" is the one way to lift
536
+ // one; the same reasoning as `mcpAllowedHosts` above.
537
+ /** Rate limits and output caps; every absent field is unlimited. */
538
+ limits: exports.systemAiLimitsSchema.optional(),
539
+ // #739. See `systemAiSchema`.
540
+ /** Whether the deployment's keys pay for an organization that stores no key of its own (#739). */
541
+ deploymentKeyServesOrgs: zod_1.z.boolean().optional(),
542
+ });
543
+ // =============================================================================
544
+ // AI platform policy on the wire (#423, epic #419, umbrella #418)
545
+ // =============================================================================
546
+ //
547
+ // Restated here rather than imported, for the reason at the top of this file.
548
+ // Optional in the PUT body like the operations namespaces and `storage`
549
+ // above, and for the identical reason: this block ships ahead of every
550
+ // client that knows it exists.
551
+ //
552
+ // NO API KEY FIELD, ON EITHER SCHEMA, EVER. A user's own key is
553
+ // `UserAiKey.secret`, written through its own dedicated endpoint (#428), not
554
+ // through this document; an org-wide fallback key belongs in the encrypted
555
+ // credential store. See `common/schemas/settings.schema.ts`, which carries
556
+ // the argument and a compile-time proof of the absence.
557
+ //
558
+ // Bounds mirror `systemAiSchema` exactly.
559
+ // `ai.limits` (#450). Every field optional — absent means unlimited. Used by
560
+ // the PUT body and (whole, since a PATCH replaces it wholesale) the PATCH body.
561
+ /**
562
+ * The admin `PUT /api/admin/ai/config` body's `limits`.
563
+ *
564
+ * @stability experimental
565
+ */
566
+ exports.aiLimitsSettingsSchema = zod_1.z.object({
567
+ /** Limits on every call a user makes, whoever's key pays. */
568
+ perUser: zod_1.z
569
+ .object({
570
+ /** Requests per minute. */
571
+ requestsPerMinute: exports.aiLimitValueSchema.optional(),
572
+ /** Requests per UTC day. */
573
+ requestsPerDay: exports.aiLimitValueSchema.optional(),
574
+ })
575
+ .optional(),
576
+ /** Limits on the calls an administrator-managed key pays for. */
577
+ orgKey: zod_1.z
578
+ .object({
579
+ /** Requests per UTC day, per user. */
580
+ requestsPerDayPerUser: exports.aiLimitValueSchema.optional(),
581
+ /** Input plus output tokens per UTC day, per user. */
582
+ tokensPerDayPerUser: exports.aiLimitValueSchema.optional(),
583
+ })
584
+ .optional(),
585
+ // #739: the deployment default PER ORGANIZATION (requests and output tokens
586
+ // per UTC day, counted over every call made in that organization); absent
587
+ // means unlimited. An organization may only lower it (its org layer).
588
+ /** Limits on one organization's whole daily volume, whoever's key pays (#739). */
589
+ perOrg: zod_1.z
590
+ .object({
591
+ /** Requests per UTC day. */
592
+ requestsPerDay: exports.aiLimitValueSchema.optional(),
593
+ /** Output tokens per UTC day. */
594
+ outputTokensPerDay: exports.aiLimitValueSchema.optional(),
595
+ })
596
+ .optional(),
597
+ /** Per-model limits, keyed `<provider>:<modelId>`. */
598
+ perModel: zod_1.z
599
+ .record(zod_1.z.string().max(constants_js_1.AI_LIMIT_MODEL_KEY_MAX).regex(constants_js_1.AI_LIMIT_MODEL_KEY_PATTERN), zod_1.z.object({
600
+ /** Output-token ceiling for every call to the model. */
601
+ maxOutputTokens: exports.aiLimitValueSchema.optional(),
602
+ /** Requests per minute, per user, to the model. */
603
+ requestsPerMinutePerUser: exports.aiLimitValueSchema.optional(),
604
+ }))
605
+ .refine((value) => Object.keys(value).length <= constants_js_1.AI_LIMITS_PER_MODEL_MAX, {
606
+ message: `At most ${constants_js_1.AI_LIMITS_PER_MODEL_MAX} per-model limits`,
607
+ })
608
+ .optional(),
609
+ });
610
+ /**
611
+ * The `ai` namespace on the wire of `PUT /api/system-settings`.
612
+ *
613
+ * @stability experimental
614
+ */
615
+ exports.aiSettingsSchema = zod_1.z.object({
616
+ /** Whether AI is switched on (the kill switch). */
617
+ enabled: zod_1.z.boolean(),
618
+ /** Whose key pays: the caller's own only (`byok`), or an administrator's as a fallback. */
619
+ keyPolicy: keyPolicyEnum(),
620
+ /** Per-provider settings, by provider id. */
621
+ providers: exports.systemAiProvidersSchema,
622
+ /** Deployment-wide defaults a call cannot exceed. */
623
+ defaults: zod_1.z.object({
624
+ /** Output-token ceiling for every call; `null` means no cap. */
625
+ maxOutputTokensCap: zod_1.z.number().int().positive().optional(),
626
+ /** Whether a call may be queued as a background run. */
627
+ allowBackgroundRuns: zod_1.z.boolean(),
628
+ /** Whether realtime voice sessions may be minted. */
629
+ allowRealtime: zod_1.z.boolean(),
630
+ }),
631
+ /** Whether prompt and response text is written to the logs. */
632
+ logPromptContent: zod_1.z.boolean(),
633
+ /** Days usage rows are kept. */
634
+ usageRetentionDays: zod_1.z.number().int().min(1).max(constants_js_1.AI_USAGE_RETENTION_MAX_DAYS),
635
+ /** Which provider-hosted tools are switched on (all off by default). */
636
+ hostedTools: zod_1.z.object({
637
+ /** Hosted web search. */
638
+ web_search: zod_1.z.boolean(),
639
+ /** Hosted file search. */
640
+ file_search: zod_1.z.boolean(),
641
+ /** Hosted code execution. */
642
+ code_interpreter: zod_1.z.boolean(),
643
+ /** Hosted image generation. */
644
+ image_generation: zod_1.z.boolean(),
645
+ /** Remote MCP servers. */
646
+ mcp: zod_1.z.boolean(),
647
+ /** Hosts a remote MCP server may be on; empty means any `https://` host. */
648
+ mcpAllowedHosts: zod_1.z
649
+ .array(zod_1.z.string().max(253).regex(constants_js_1.AI_MCP_ALLOWED_HOST_PATTERN))
650
+ .max(constants_js_1.AI_MCP_ALLOWED_HOSTS_MAX),
651
+ }),
652
+ /** Rate limits and output caps; every absent field is unlimited. */
653
+ limits: exports.aiLimitsSettingsSchema,
654
+ // #739: optional on the wire, so a client that predates it still PUTs a
655
+ // legal body; absent keeps the stored value (default `true`).
656
+ /** Whether the deployment's keys pay for an organization that stores no key of its own (#739). */
657
+ deploymentKeyServesOrgs: zod_1.z.boolean().optional(),
658
+ });
659
+ // #423, epic #419. Optional at the namespace level and field by field
660
+ // inside, one level into each `providers.<id>` and `defaults`, matching
661
+ // `storage` above — `{ "ai": { "enabled": true } }` must be a legal body,
662
+ // or the admin page has to send the whole namespace to flip one switch.
663
+ // NO API KEY FIELD — see the section header above.
664
+ /**
665
+ * The `ai` namespace on the wire of `PATCH /api/system-settings`.
666
+ *
667
+ * @stability experimental
668
+ */
669
+ exports.aiSettingsPatchSchema = zod_1.z.object({
670
+ /** Whether AI is switched on (the kill switch). */
671
+ enabled: zod_1.z.boolean().optional(),
672
+ /** Whose key pays: the caller's own only (`byok`), or an administrator's as a fallback. */
673
+ keyPolicy: keyPolicyEnum().optional(),
674
+ /** Per-provider settings, by provider id. */
675
+ providers: exports.systemAiProvidersPatchSchema.optional(),
676
+ /** Deployment-wide defaults a call cannot exceed. */
677
+ defaults: zod_1.z
678
+ .object({
679
+ // Absent leaves it alone; explicit `null` removes the cap.
680
+ /** Output-token ceiling for every call; `null` means no cap. */
681
+ maxOutputTokensCap: zod_1.z.number().int().positive().nullable().optional(),
682
+ /** Whether a call may be queued as a background run. */
683
+ allowBackgroundRuns: zod_1.z.boolean().optional(),
684
+ /** Whether realtime voice sessions may be minted. */
685
+ allowRealtime: zod_1.z.boolean().optional(),
686
+ })
687
+ .optional(),
688
+ /** Whether prompt and response text is written to the logs. */
689
+ logPromptContent: zod_1.z.boolean().optional(),
690
+ /** Days usage rows are kept. */
691
+ usageRetentionDays: zod_1.z.number().int().min(1).max(constants_js_1.AI_USAGE_RETENTION_MAX_DAYS).optional(),
692
+ // #442. Booleans field by field; `mcpAllowedHosts` replaces wholesale.
693
+ /** Which provider-hosted tools are switched on (all off by default). */
694
+ hostedTools: zod_1.z
695
+ .object({
696
+ /** Hosted web search. */
697
+ web_search: zod_1.z.boolean().optional(),
698
+ /** Hosted file search. */
699
+ file_search: zod_1.z.boolean().optional(),
700
+ /** Hosted code execution. */
701
+ code_interpreter: zod_1.z.boolean().optional(),
702
+ /** Hosted image generation. */
703
+ image_generation: zod_1.z.boolean().optional(),
704
+ /** Remote MCP servers. */
705
+ mcp: zod_1.z.boolean().optional(),
706
+ /** Hosts a remote MCP server may be on; empty means any `https://` host. */
707
+ mcpAllowedHosts: zod_1.z
708
+ .array(zod_1.z.string().max(253).regex(constants_js_1.AI_MCP_ALLOWED_HOST_PATTERN))
709
+ .max(constants_js_1.AI_MCP_ALLOWED_HOSTS_MAX)
710
+ .optional(),
711
+ })
712
+ .optional(),
713
+ // #450. Replaces wholesale when present — see `systemAiPatchSchema`.
714
+ /** Rate limits and output caps; every absent field is unlimited. */
715
+ limits: exports.aiLimitsSettingsSchema.optional(),
716
+ /** Whether the deployment's keys pay for an organization that stores no key of its own (#739). */
717
+ deploymentKeyServesOrgs: zod_1.z.boolean().optional(),
718
+ });
719
+ // #423, epic #419, umbrella #418 — the AI platform policy, published for
720
+ // the same reason the operations namespaces and `storage` above are: a
721
+ // block this response omits is a block no client can echo back in a PUT.
722
+ //
723
+ // THERE IS NO API KEY FIELD AND THERE MUST NEVER BE ONE. A user's own key
724
+ // is `UserAiKey.secret`, in its own table; an org-wide fallback key belongs
725
+ // in the encrypted credential store. See
726
+ // `common/schemas/settings.schema.ts` for the full argument and its
727
+ // compile-time proof.
728
+ /**
729
+ * The `ai` namespace as `GET /api/system-settings` answers it.
730
+ *
731
+ * @stability experimental
732
+ */
733
+ exports.aiResponseSchema = zod_1.z.object({
734
+ /** Whether AI is switched on (the kill switch). */
735
+ enabled: zod_1.z.boolean(),
736
+ /** Whose key pays: the caller's own only (`byok`), or an administrator's as a fallback. */
737
+ keyPolicy: keyPolicyEnum(),
738
+ /** Per-provider settings, by provider id. */
739
+ providers: exports.aiProvidersResponseSchema,
740
+ /** Deployment-wide defaults a call cannot exceed. */
741
+ defaults: zod_1.z.object({
742
+ /** Output-token ceiling for every call; `null` means no cap. */
743
+ maxOutputTokensCap: zod_1.z.number().optional(),
744
+ /** Whether a call may be queued as a background run. */
745
+ allowBackgroundRuns: zod_1.z.boolean(),
746
+ /** Whether realtime voice sessions may be minted. */
747
+ allowRealtime: zod_1.z.boolean(),
748
+ }),
749
+ /** Whether prompt and response text is written to the logs. */
750
+ logPromptContent: zod_1.z.boolean(),
751
+ /** Days usage rows are kept. */
752
+ usageRetentionDays: zod_1.z.number().int(),
753
+ /** Which provider-hosted tools are switched on (all off by default). */
754
+ hostedTools: zod_1.z.object({
755
+ /** Hosted web search. */
756
+ web_search: zod_1.z.boolean(),
757
+ /** Hosted file search. */
758
+ file_search: zod_1.z.boolean(),
759
+ /** Hosted code execution. */
760
+ code_interpreter: zod_1.z.boolean(),
761
+ /** Hosted image generation. */
762
+ image_generation: zod_1.z.boolean(),
763
+ /** Remote MCP servers. */
764
+ mcp: zod_1.z.boolean(),
765
+ /** Hosts a remote MCP server may be on; empty means any `https://` host. */
766
+ mcpAllowedHosts: zod_1.z.array(zod_1.z.string()),
767
+ }),
768
+ /** Rate limits and output caps; every absent field is unlimited. */
769
+ limits: zod_1.z.object({
770
+ /** Limits on every call a user makes, whoever's key pays. */
771
+ perUser: zod_1.z
772
+ .object({
773
+ /** Requests per minute. */
774
+ requestsPerMinute: zod_1.z.number().int().optional(),
775
+ /** Requests per UTC day. */
776
+ requestsPerDay: zod_1.z.number().int().optional(),
777
+ })
778
+ .optional(),
779
+ /** Limits on the calls an administrator-managed key pays for. */
780
+ orgKey: zod_1.z
781
+ .object({
782
+ /** Requests per UTC day, per user. */
783
+ requestsPerDayPerUser: zod_1.z.number().int().optional(),
784
+ /** Input plus output tokens per UTC day, per user. */
785
+ tokensPerDayPerUser: zod_1.z.number().int().optional(),
786
+ })
787
+ .optional(),
788
+ /** Limits on one organization's whole daily volume, whoever's key pays (#739). */
789
+ perOrg: zod_1.z
790
+ .object({
791
+ /** Requests per UTC day. */
792
+ requestsPerDay: zod_1.z.number().int().optional(),
793
+ /** Output tokens per UTC day. */
794
+ outputTokensPerDay: zod_1.z.number().int().optional(),
795
+ })
796
+ .optional(),
797
+ /** Per-model limits, keyed `<provider>:<modelId>`. */
798
+ perModel: zod_1.z
799
+ .record(zod_1.z.string(), zod_1.z.object({
800
+ /** Output-token ceiling for every call to the model. */
801
+ maxOutputTokens: zod_1.z.number().int().optional(),
802
+ /** Requests per minute, per user, to the model. */
803
+ requestsPerMinutePerUser: zod_1.z.number().int().optional(),
804
+ }))
805
+ .optional(),
806
+ }),
807
+ /** Whether the deployment's keys pay for an organization that stores no key of its own (#739). */
808
+ deploymentKeyServesOrgs: zod_1.z.boolean(),
809
+ });
810
+ // =============================================================================
811
+ // The org layer of `ai` (issue #739): what one organization may set
812
+ // =============================================================================
813
+ //
814
+ // An organization can only TIGHTEN the deployment's policy (`/api/org-settings`,
815
+ // `org_ai_config:write`): turn AI off for its members, narrow `keyPolicy` from
816
+ // `byok_with_org_fallback` to `byok` (never the reverse), lower the per-org
817
+ // daily caps, and switch providers off. Every field optional (an org stores
818
+ // only what it overrides), no `.default()`, no secret.
819
+ /**
820
+ * The fields of the `ai` namespace an organization may set for itself.
821
+ *
822
+ * @stability experimental
823
+ */
824
+ exports.orgAiSettingsSchema = zod_1.z.object({
825
+ /** Whether AI is switched on (the kill switch). */
826
+ enabled: zod_1.z.boolean().optional(),
827
+ /** Whose key pays: the caller's own only (`byok`), or an administrator's as a fallback. */
828
+ keyPolicy: keyPolicyEnum().optional(),
829
+ /** Per-provider settings, by provider id. */
830
+ providers: exports.orgAiProvidersSchema.optional(),
831
+ /** Rate limits and output caps; every absent field is unlimited. */
832
+ limits: zod_1.z
833
+ .object({
834
+ /** Limits on one organization's whole daily volume, whoever's key pays (#739). */
835
+ perOrg: zod_1.z
836
+ .object({
837
+ /** Requests per UTC day. */
838
+ requestsPerDay: exports.aiLimitValueSchema.optional(),
839
+ /** Output tokens per UTC day. */
840
+ outputTokensPerDay: exports.aiLimitValueSchema.optional(),
841
+ })
842
+ .optional(),
843
+ })
844
+ .optional(),
845
+ });
846
+ function lower(system, org) {
847
+ if (system === undefined)
848
+ return org;
849
+ if (org === undefined)
850
+ return system;
851
+ return Math.min(system, org);
852
+ }
853
+ /**
854
+ * The effective `ai` policy of an organization: the deployment's value with
855
+ * the organization's overrides applied, each of which can only tighten it.
856
+ *
857
+ * @param system - the deployment's `ai` value.
858
+ * @param org - the organization's stored overrides.
859
+ * @returns the effective value (a new object; `system` is not modified).
860
+ *
861
+ * @stability experimental
862
+ */
863
+ function tightenAiPolicy(system, org) {
864
+ const keyPolicy = system.keyPolicy === 'byok' || org.keyPolicy === 'byok' ? 'byok' : system.keyPolicy;
865
+ const providers = Object.fromEntries(Object.entries(system.providers).map(([id, slot]) => {
866
+ const override = org.providers?.[id];
867
+ return [id, { ...slot, enabled: slot.enabled && (override?.enabled ?? true) }];
868
+ }));
869
+ const systemPerOrg = system.limits.perOrg;
870
+ const orgPerOrg = org.limits?.perOrg;
871
+ const requestsPerDay = lower(systemPerOrg?.requestsPerDay, orgPerOrg?.requestsPerDay);
872
+ const outputTokensPerDay = lower(systemPerOrg?.outputTokensPerDay, orgPerOrg?.outputTokensPerDay);
873
+ const perOrg = requestsPerDay !== undefined || outputTokensPerDay !== undefined
874
+ ? {
875
+ ...(requestsPerDay !== undefined ? { requestsPerDay } : {}),
876
+ ...(outputTokensPerDay !== undefined ? { outputTokensPerDay } : {}),
877
+ }
878
+ : undefined;
879
+ const { perOrg: _drop, ...limits } = system.limits;
880
+ return {
881
+ ...system,
882
+ enabled: system.enabled && (org.enabled ?? true),
883
+ keyPolicy,
884
+ providers,
885
+ limits: { ...limits, ...(perOrg ? { perOrg } : {}) },
886
+ };
887
+ }
888
+ /**
889
+ * The proof's witness value.
890
+ *
891
+ * @stability experimental
892
+ */
893
+ exports.AI_SETTINGS_CARRIES_NO_SECRET = true;
894
+ //# sourceMappingURL=schemas.js.map