@marinoscar/platform-api 0.1.0-next.18 → 0.1.0-next.20

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 (598) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +1 -0
  3. package/dist/ai/runtime/ai-limits.service.d.ts.map +1 -1
  4. package/dist/ai/runtime/ai-limits.service.js +8 -1
  5. package/dist/ai/runtime/ai-limits.service.js.map +1 -1
  6. package/dist/ai/usage/ai-usage-admin.controller.d.ts +6 -3
  7. package/dist/ai/usage/ai-usage-admin.controller.d.ts.map +1 -1
  8. package/dist/ai/usage/ai-usage-admin.controller.js +31 -17
  9. package/dist/ai/usage/ai-usage-admin.controller.js.map +1 -1
  10. package/dist/ai/usage/ai-usage.controller.d.ts +5 -2
  11. package/dist/ai/usage/ai-usage.controller.d.ts.map +1 -1
  12. package/dist/ai/usage/ai-usage.controller.js +18 -11
  13. package/dist/ai/usage/ai-usage.controller.js.map +1 -1
  14. package/dist/ai/usage/ai-usage.service.d.ts +19 -4
  15. package/dist/ai/usage/ai-usage.service.d.ts.map +1 -1
  16. package/dist/ai/usage/ai-usage.service.js +84 -43
  17. package/dist/ai/usage/ai-usage.service.js.map +1 -1
  18. package/dist/ai/usage/dto/ai-usage.dto.d.ts +8 -0
  19. package/dist/ai/usage/dto/ai-usage.dto.d.ts.map +1 -1
  20. package/dist/ai/usage/dto/ai-usage.dto.js +16 -5
  21. package/dist/ai/usage/dto/ai-usage.dto.js.map +1 -1
  22. package/dist/alerts/alerts-admin.controller.d.ts +40 -0
  23. package/dist/alerts/alerts-admin.controller.d.ts.map +1 -0
  24. package/dist/alerts/alerts-admin.controller.js +297 -0
  25. package/dist/alerts/alerts-admin.controller.js.map +1 -0
  26. package/dist/alerts/alerts-context.service.d.ts +64 -0
  27. package/dist/alerts/alerts-context.service.d.ts.map +1 -0
  28. package/dist/alerts/alerts-context.service.js +190 -0
  29. package/dist/alerts/alerts-context.service.js.map +1 -0
  30. package/dist/alerts/alerts-dispatch.service.d.ts +53 -0
  31. package/dist/alerts/alerts-dispatch.service.d.ts.map +1 -0
  32. package/dist/alerts/alerts-dispatch.service.js +135 -0
  33. package/dist/alerts/alerts-dispatch.service.js.map +1 -0
  34. package/dist/alerts/alerts-evaluation.service.d.ts +88 -0
  35. package/dist/alerts/alerts-evaluation.service.d.ts.map +1 -0
  36. package/dist/alerts/alerts-evaluation.service.js +296 -0
  37. package/dist/alerts/alerts-evaluation.service.js.map +1 -0
  38. package/dist/alerts/alerts-event.listener.d.ts +22 -0
  39. package/dist/alerts/alerts-event.listener.d.ts.map +1 -0
  40. package/dist/alerts/alerts-event.listener.js +72 -0
  41. package/dist/alerts/alerts-event.listener.js.map +1 -0
  42. package/dist/alerts/alerts-incidents.service.d.ts +86 -0
  43. package/dist/alerts/alerts-incidents.service.d.ts.map +1 -0
  44. package/dist/alerts/alerts-incidents.service.js +144 -0
  45. package/dist/alerts/alerts-incidents.service.js.map +1 -0
  46. package/dist/alerts/alerts-rules.service.d.ts +73 -0
  47. package/dist/alerts/alerts-rules.service.d.ts.map +1 -0
  48. package/dist/alerts/alerts-rules.service.js +205 -0
  49. package/dist/alerts/alerts-rules.service.js.map +1 -0
  50. package/dist/alerts/alerts-seed.service.d.ts +25 -0
  51. package/dist/alerts/alerts-seed.service.d.ts.map +1 -0
  52. package/dist/alerts/alerts-seed.service.js +82 -0
  53. package/dist/alerts/alerts-seed.service.js.map +1 -0
  54. package/dist/alerts/alerts.constants.d.ts +53 -0
  55. package/dist/alerts/alerts.constants.d.ts.map +1 -0
  56. package/dist/alerts/alerts.constants.js +57 -0
  57. package/dist/alerts/alerts.constants.js.map +1 -0
  58. package/dist/alerts/alerts.errors.d.ts +44 -0
  59. package/dist/alerts/alerts.errors.d.ts.map +1 -0
  60. package/dist/alerts/alerts.errors.js +47 -0
  61. package/dist/alerts/alerts.errors.js.map +1 -0
  62. package/dist/alerts/alerts.metrics.d.ts +60 -0
  63. package/dist/alerts/alerts.metrics.d.ts.map +1 -0
  64. package/dist/alerts/alerts.metrics.js +135 -0
  65. package/dist/alerts/alerts.metrics.js.map +1 -0
  66. package/dist/alerts/alerts.module.d.ts +35 -0
  67. package/dist/alerts/alerts.module.d.ts.map +1 -0
  68. package/dist/alerts/alerts.module.js +96 -0
  69. package/dist/alerts/alerts.module.js.map +1 -0
  70. package/dist/alerts/alerts.options.d.ts +64 -0
  71. package/dist/alerts/alerts.options.d.ts.map +1 -0
  72. package/dist/alerts/alerts.options.js +34 -0
  73. package/dist/alerts/alerts.options.js.map +1 -0
  74. package/dist/alerts/alerts.permissions.d.ts +27 -0
  75. package/dist/alerts/alerts.permissions.d.ts.map +1 -0
  76. package/dist/alerts/alerts.permissions.js +29 -0
  77. package/dist/alerts/alerts.permissions.js.map +1 -0
  78. package/dist/alerts/alerts.types.d.ts +182 -0
  79. package/dist/alerts/alerts.types.d.ts.map +1 -0
  80. package/dist/alerts/alerts.types.js +3 -0
  81. package/dist/alerts/alerts.types.js.map +1 -0
  82. package/dist/alerts/data/alerts-db.d.ts +169 -0
  83. package/dist/alerts/data/alerts-db.d.ts.map +1 -0
  84. package/dist/alerts/data/alerts-db.js +18 -0
  85. package/dist/alerts/data/alerts-db.js.map +1 -0
  86. package/dist/alerts/dto/alerts.dto.d.ts +132 -0
  87. package/dist/alerts/dto/alerts.dto.d.ts.map +1 -0
  88. package/dist/alerts/dto/alerts.dto.js +42 -0
  89. package/dist/alerts/dto/alerts.dto.js.map +1 -0
  90. package/dist/alerts/handlers/alerts-evaluate-event.handler.d.ts +23 -0
  91. package/dist/alerts/handlers/alerts-evaluate-event.handler.d.ts.map +1 -0
  92. package/dist/alerts/handlers/alerts-evaluate-event.handler.js +71 -0
  93. package/dist/alerts/handlers/alerts-evaluate-event.handler.js.map +1 -0
  94. package/dist/alerts/handlers/alerts-evaluate.handler.d.ts +25 -0
  95. package/dist/alerts/handlers/alerts-evaluate.handler.d.ts.map +1 -0
  96. package/dist/alerts/handlers/alerts-evaluate.handler.js +54 -0
  97. package/dist/alerts/handlers/alerts-evaluate.handler.js.map +1 -0
  98. package/dist/alerts/handlers/alerts-incidents-purge.handler.d.ts +29 -0
  99. package/dist/alerts/handlers/alerts-incidents-purge.handler.d.ts.map +1 -0
  100. package/dist/alerts/handlers/alerts-incidents-purge.handler.js +76 -0
  101. package/dist/alerts/handlers/alerts-incidents-purge.handler.js.map +1 -0
  102. package/dist/alerts/index.d.ts +45 -0
  103. package/dist/alerts/index.d.ts.map +1 -0
  104. package/dist/alerts/index.js +108 -0
  105. package/dist/alerts/index.js.map +1 -0
  106. package/dist/alerts/kinds/alert-kind.registry.d.ts +33 -0
  107. package/dist/alerts/kinds/alert-kind.registry.d.ts.map +1 -0
  108. package/dist/alerts/kinds/alert-kind.registry.js +63 -0
  109. package/dist/alerts/kinds/alert-kind.registry.js.map +1 -0
  110. package/dist/alerts/kinds/builtin-kinds.d.ts +18 -0
  111. package/dist/alerts/kinds/builtin-kinds.d.ts.map +1 -0
  112. package/dist/alerts/kinds/builtin-kinds.js +33 -0
  113. package/dist/alerts/kinds/builtin-kinds.js.map +1 -0
  114. package/dist/alerts/kinds/metric-threshold.kind.d.ts +11 -0
  115. package/dist/alerts/kinds/metric-threshold.kind.d.ts.map +1 -0
  116. package/dist/alerts/kinds/metric-threshold.kind.js +63 -0
  117. package/dist/alerts/kinds/metric-threshold.kind.js.map +1 -0
  118. package/dist/alerts/kinds/metric-threshold.sql.d.ts +41 -0
  119. package/dist/alerts/kinds/metric-threshold.sql.d.ts.map +1 -0
  120. package/dist/alerts/kinds/metric-threshold.sql.js +124 -0
  121. package/dist/alerts/kinds/metric-threshold.sql.js.map +1 -0
  122. package/dist/alerts/kinds/node-event.kind.d.ts +44 -0
  123. package/dist/alerts/kinds/node-event.kind.d.ts.map +1 -0
  124. package/dist/alerts/kinds/node-event.kind.js +113 -0
  125. package/dist/alerts/kinds/node-event.kind.js.map +1 -0
  126. package/dist/alerts/kinds/node-offline.kind.d.ts +11 -0
  127. package/dist/alerts/kinds/node-offline.kind.d.ts.map +1 -0
  128. package/dist/alerts/kinds/node-offline.kind.js +41 -0
  129. package/dist/alerts/kinds/node-offline.kind.js.map +1 -0
  130. package/dist/alerts/kinds/telemetry-unavailable.kind.d.ts +11 -0
  131. package/dist/alerts/kinds/telemetry-unavailable.kind.d.ts.map +1 -0
  132. package/dist/alerts/kinds/telemetry-unavailable.kind.js +40 -0
  133. package/dist/alerts/kinds/telemetry-unavailable.kind.js.map +1 -0
  134. package/dist/alerts/kinds/verdict.kind.d.ts +13 -0
  135. package/dist/alerts/kinds/verdict.kind.d.ts.map +1 -0
  136. package/dist/alerts/kinds/verdict.kind.js +34 -0
  137. package/dist/alerts/kinds/verdict.kind.js.map +1 -0
  138. package/dist/alerts/notifications/alerts.notifications.d.ts +77 -0
  139. package/dist/alerts/notifications/alerts.notifications.d.ts.map +1 -0
  140. package/dist/alerts/notifications/alerts.notifications.js +145 -0
  141. package/dist/alerts/notifications/alerts.notifications.js.map +1 -0
  142. package/dist/alerts/starter-rules.d.ts +21 -0
  143. package/dist/alerts/starter-rules.d.ts.map +1 -0
  144. package/dist/alerts/starter-rules.js +141 -0
  145. package/dist/alerts/starter-rules.js.map +1 -0
  146. package/dist/alerts/state/alert-state-machine.d.ts +92 -0
  147. package/dist/alerts/state/alert-state-machine.d.ts.map +1 -0
  148. package/dist/alerts/state/alert-state-machine.js +96 -0
  149. package/dist/alerts/state/alert-state-machine.js.map +1 -0
  150. package/dist/alerts/tasks/alerts-evaluate.task.d.ts +18 -0
  151. package/dist/alerts/tasks/alerts-evaluate.task.d.ts.map +1 -0
  152. package/dist/alerts/tasks/alerts-evaluate.task.js +61 -0
  153. package/dist/alerts/tasks/alerts-evaluate.task.js.map +1 -0
  154. package/dist/alerts/tasks/alerts-purge.task.d.ts +15 -0
  155. package/dist/alerts/tasks/alerts-purge.task.d.ts.map +1 -0
  156. package/dist/alerts/tasks/alerts-purge.task.js +58 -0
  157. package/dist/alerts/tasks/alerts-purge.task.js.map +1 -0
  158. package/dist/alerts/testing/conformance.d.ts +58 -0
  159. package/dist/alerts/testing/conformance.d.ts.map +1 -0
  160. package/dist/alerts/testing/conformance.js +198 -0
  161. package/dist/alerts/testing/conformance.js.map +1 -0
  162. package/dist/alerts/testing/fakes.d.ts +80 -0
  163. package/dist/alerts/testing/fakes.d.ts.map +1 -0
  164. package/dist/alerts/testing/fakes.js +230 -0
  165. package/dist/alerts/testing/fakes.js.map +1 -0
  166. package/dist/alerts/testing/index.d.ts +5 -0
  167. package/dist/alerts/testing/index.d.ts.map +1 -0
  168. package/dist/alerts/testing/index.js +15 -0
  169. package/dist/alerts/testing/index.js.map +1 -0
  170. package/dist/core/index.d.ts +3 -0
  171. package/dist/core/index.d.ts.map +1 -1
  172. package/dist/core/index.js +13 -2
  173. package/dist/core/index.js.map +1 -1
  174. package/dist/core/net/ip-classify.d.ts +39 -0
  175. package/dist/core/net/ip-classify.d.ts.map +1 -0
  176. package/dist/core/net/ip-classify.js +196 -0
  177. package/dist/core/net/ip-classify.js.map +1 -0
  178. package/dist/core/timezone/request-time-zone.d.ts +61 -0
  179. package/dist/core/timezone/request-time-zone.d.ts.map +1 -0
  180. package/dist/core/timezone/request-time-zone.js +71 -0
  181. package/dist/core/timezone/request-time-zone.js.map +1 -0
  182. package/dist/credentials/testing/conformance.d.ts.map +1 -1
  183. package/dist/credentials/testing/conformance.js +1 -0
  184. package/dist/credentials/testing/conformance.js.map +1 -1
  185. package/dist/email/email-settings.controller.d.ts +5 -2
  186. package/dist/email/email-settings.controller.d.ts.map +1 -1
  187. package/dist/email/email-settings.controller.js +11 -5
  188. package/dist/email/email-settings.controller.js.map +1 -1
  189. package/dist/email/email-test-send.service.d.ts +11 -1
  190. package/dist/email/email-test-send.service.d.ts.map +1 -1
  191. package/dist/email/email-test-send.service.js +17 -3
  192. package/dist/email/email-test-send.service.js.map +1 -1
  193. package/dist/email/index.d.ts +2 -2
  194. package/dist/email/index.d.ts.map +1 -1
  195. package/dist/email/index.js +3 -1
  196. package/dist/email/index.js.map +1 -1
  197. package/dist/email/templates/backup-failed.email.d.ts.map +1 -1
  198. package/dist/email/templates/backup-failed.email.js +9 -5
  199. package/dist/email/templates/backup-failed.email.js.map +1 -1
  200. package/dist/email/templates/format-date.d.ts +39 -0
  201. package/dist/email/templates/format-date.d.ts.map +1 -0
  202. package/dist/email/templates/format-date.js +103 -0
  203. package/dist/email/templates/format-date.js.map +1 -0
  204. package/dist/email/templates/index.d.ts +2 -0
  205. package/dist/email/templates/index.d.ts.map +1 -1
  206. package/dist/email/templates/index.js +4 -1
  207. package/dist/email/templates/index.js.map +1 -1
  208. package/dist/email/templates/job-failed.email.d.ts +1 -1
  209. package/dist/email/templates/job-failed.email.d.ts.map +1 -1
  210. package/dist/email/templates/job-failed.email.js +6 -6
  211. package/dist/email/templates/job-failed.email.js.map +1 -1
  212. package/dist/email/templates/node-offline.email.d.ts.map +1 -1
  213. package/dist/email/templates/node-offline.email.js +11 -7
  214. package/dist/email/templates/node-offline.email.js.map +1 -1
  215. package/dist/email/templates/render-context.d.ts +5 -0
  216. package/dist/email/templates/render-context.d.ts.map +1 -1
  217. package/dist/email/templates/render-context.js.map +1 -1
  218. package/dist/email/templates/restore-completed.email.d.ts.map +1 -1
  219. package/dist/email/templates/restore-completed.email.js +9 -5
  220. package/dist/email/templates/restore-completed.email.js.map +1 -1
  221. package/dist/email/templates/role-changed.email.d.ts +1 -1
  222. package/dist/email/templates/role-changed.email.d.ts.map +1 -1
  223. package/dist/email/templates/role-changed.email.js +6 -7
  224. package/dist/email/templates/role-changed.email.js.map +1 -1
  225. package/dist/email/templates/test-email.email.d.ts +1 -1
  226. package/dist/email/templates/test-email.email.d.ts.map +1 -1
  227. package/dist/email/templates/test-email.email.js +6 -11
  228. package/dist/email/templates/test-email.email.js.map +1 -1
  229. package/dist/exports/export-job.d.ts +1 -0
  230. package/dist/exports/export-job.d.ts.map +1 -1
  231. package/dist/exports/export-job.js +2 -0
  232. package/dist/exports/export-job.js.map +1 -1
  233. package/dist/exports/export.types.d.ts +8 -0
  234. package/dist/exports/export.types.d.ts.map +1 -1
  235. package/dist/exports/exports.controller.d.ts +4 -2
  236. package/dist/exports/exports.controller.d.ts.map +1 -1
  237. package/dist/exports/exports.controller.js +15 -6
  238. package/dist/exports/exports.controller.js.map +1 -1
  239. package/dist/exports/exports.service.d.ts +5 -0
  240. package/dist/exports/exports.service.d.ts.map +1 -1
  241. package/dist/exports/exports.service.js +3 -0
  242. package/dist/exports/exports.service.js.map +1 -1
  243. package/dist/exports/handlers/export-run.handler.d.ts.map +1 -1
  244. package/dist/exports/handlers/export-run.handler.js +4 -1
  245. package/dist/exports/handlers/export-run.handler.js.map +1 -1
  246. package/dist/exports/index.d.ts +1 -0
  247. package/dist/exports/index.d.ts.map +1 -1
  248. package/dist/exports/index.js +7 -2
  249. package/dist/exports/index.js.map +1 -1
  250. package/dist/exports/testing/conformance.d.ts.map +1 -1
  251. package/dist/exports/testing/conformance.js +1 -0
  252. package/dist/exports/testing/conformance.js.map +1 -1
  253. package/dist/host/http/cors-options.d.ts +5 -1
  254. package/dist/host/http/cors-options.d.ts.map +1 -1
  255. package/dist/host/http/cors-options.js.map +1 -1
  256. package/dist/identity/pat/pat.controller.d.ts +4 -3
  257. package/dist/identity/pat/pat.controller.d.ts.map +1 -1
  258. package/dist/identity/pat/pat.controller.js +19 -5
  259. package/dist/identity/pat/pat.controller.js.map +1 -1
  260. package/dist/identity/pat/pat.service.d.ts +21 -0
  261. package/dist/identity/pat/pat.service.d.ts.map +1 -1
  262. package/dist/identity/pat/pat.service.js +27 -10
  263. package/dist/identity/pat/pat.service.js.map +1 -1
  264. package/dist/jobs/data/jobs-db.d.ts +26 -0
  265. package/dist/jobs/data/jobs-db.d.ts.map +1 -1
  266. package/dist/jobs/index.d.ts +1 -1
  267. package/dist/jobs/index.d.ts.map +1 -1
  268. package/dist/jobs/index.js.map +1 -1
  269. package/dist/manifest/platform-model-ownership.d.ts +1 -1
  270. package/dist/manifest/platform-model-ownership.d.ts.map +1 -1
  271. package/dist/manifest/platform-model-ownership.js +30 -1
  272. package/dist/manifest/platform-model-ownership.js.map +1 -1
  273. package/dist/manifest/platform-permissions.d.ts +6 -2
  274. package/dist/manifest/platform-permissions.d.ts.map +1 -1
  275. package/dist/manifest/platform-permissions.js +56 -44
  276. package/dist/manifest/platform-permissions.js.map +1 -1
  277. package/dist/manifest/platform-user-owned-models.d.ts.map +1 -1
  278. package/dist/manifest/platform-user-owned-models.js +16 -0
  279. package/dist/manifest/platform-user-owned-models.js.map +1 -1
  280. package/dist/nodes/dto/node-admin.dto.d.ts +5 -0
  281. package/dist/nodes/dto/node-admin.dto.d.ts.map +1 -1
  282. package/dist/nodes/dto/node-admin.dto.js +19 -0
  283. package/dist/nodes/dto/node-admin.dto.js.map +1 -1
  284. package/dist/nodes/dto/node-control-plane.dto.d.ts +26 -0
  285. package/dist/nodes/dto/node-control-plane.dto.d.ts.map +1 -1
  286. package/dist/nodes/dto/node-event.dto.d.ts +100 -0
  287. package/dist/nodes/dto/node-event.dto.d.ts.map +1 -0
  288. package/dist/nodes/dto/node-event.dto.js +239 -0
  289. package/dist/nodes/dto/node-event.dto.js.map +1 -0
  290. package/dist/nodes/dto/node-response.dto.d.ts +21 -0
  291. package/dist/nodes/dto/node-response.dto.d.ts.map +1 -1
  292. package/dist/nodes/dto/node-response.dto.js +42 -1
  293. package/dist/nodes/dto/node-response.dto.js.map +1 -1
  294. package/dist/nodes/events/node-event.event.d.ts +41 -0
  295. package/dist/nodes/events/node-event.event.d.ts.map +1 -0
  296. package/dist/nodes/events/node-event.event.js +69 -0
  297. package/dist/nodes/events/node-event.event.js.map +1 -0
  298. package/dist/nodes/handlers/node-events-purge.handler.d.ts +31 -0
  299. package/dist/nodes/handlers/node-events-purge.handler.d.ts.map +1 -0
  300. package/dist/nodes/handlers/node-events-purge.handler.js +91 -0
  301. package/dist/nodes/handlers/node-events-purge.handler.js.map +1 -0
  302. package/dist/nodes/index.d.ts +11 -4
  303. package/dist/nodes/index.d.ts.map +1 -1
  304. package/dist/nodes/index.js +20 -1
  305. package/dist/nodes/index.js.map +1 -1
  306. package/dist/nodes/node-events.service.d.ts +87 -0
  307. package/dist/nodes/node-events.service.d.ts.map +1 -0
  308. package/dist/nodes/node-events.service.js +271 -0
  309. package/dist/nodes/node-events.service.js.map +1 -0
  310. package/dist/nodes/node-fleet-metrics.service.d.ts +10 -1
  311. package/dist/nodes/node-fleet-metrics.service.d.ts.map +1 -1
  312. package/dist/nodes/node-fleet-metrics.service.js +31 -0
  313. package/dist/nodes/node-fleet-metrics.service.js.map +1 -1
  314. package/dist/nodes/node-lifecycle.service.d.ts +16 -1
  315. package/dist/nodes/node-lifecycle.service.d.ts.map +1 -1
  316. package/dist/nodes/node-lifecycle.service.js +7 -0
  317. package/dist/nodes/node-lifecycle.service.js.map +1 -1
  318. package/dist/nodes/nodes-admin.controller.d.ts +5 -1
  319. package/dist/nodes/nodes-admin.controller.d.ts.map +1 -1
  320. package/dist/nodes/nodes-admin.controller.js +32 -2
  321. package/dist/nodes/nodes-admin.controller.js.map +1 -1
  322. package/dist/nodes/nodes.controller.d.ts +7 -3
  323. package/dist/nodes/nodes.controller.d.ts.map +1 -1
  324. package/dist/nodes/nodes.controller.js +46 -6
  325. package/dist/nodes/nodes.controller.js.map +1 -1
  326. package/dist/nodes/nodes.metrics.d.ts +23 -1
  327. package/dist/nodes/nodes.metrics.d.ts.map +1 -1
  328. package/dist/nodes/nodes.metrics.js +80 -1
  329. package/dist/nodes/nodes.metrics.js.map +1 -1
  330. package/dist/nodes/nodes.module.d.ts.map +1 -1
  331. package/dist/nodes/nodes.module.js +6 -0
  332. package/dist/nodes/nodes.module.js.map +1 -1
  333. package/dist/nodes/nodes.options.d.ts +17 -0
  334. package/dist/nodes/nodes.options.d.ts.map +1 -1
  335. package/dist/nodes/nodes.options.js +13 -2
  336. package/dist/nodes/nodes.options.js.map +1 -1
  337. package/dist/nodes/nodes.service.d.ts +3 -1
  338. package/dist/nodes/nodes.service.d.ts.map +1 -1
  339. package/dist/nodes/nodes.service.js +14 -3
  340. package/dist/nodes/nodes.service.js.map +1 -1
  341. package/dist/nodes/tasks/node-events-purge.task.d.ts +13 -0
  342. package/dist/nodes/tasks/node-events-purge.task.d.ts.map +1 -0
  343. package/dist/nodes/tasks/node-events-purge.task.js +73 -0
  344. package/dist/nodes/tasks/node-events-purge.task.js.map +1 -0
  345. package/dist/notifications/channels/browser-notification.channel.js +1 -1
  346. package/dist/notifications/channels/browser-notification.channel.js.map +1 -1
  347. package/dist/notifications/channels/browser-templates.d.ts +12 -1
  348. package/dist/notifications/channels/browser-templates.d.ts.map +1 -1
  349. package/dist/notifications/channels/browser-templates.js +5 -4
  350. package/dist/notifications/channels/browser-templates.js.map +1 -1
  351. package/dist/notifications/channels/email-notification.channel.d.ts.map +1 -1
  352. package/dist/notifications/channels/email-notification.channel.js +3 -3
  353. package/dist/notifications/channels/email-notification.channel.js.map +1 -1
  354. package/dist/notifications/channels/push-notification.channel.js +1 -1
  355. package/dist/notifications/channels/push-notification.channel.js.map +1 -1
  356. package/dist/notifications/index.d.ts +1 -1
  357. package/dist/notifications/index.d.ts.map +1 -1
  358. package/dist/notifications/notification.types.d.ts +15 -0
  359. package/dist/notifications/notification.types.d.ts.map +1 -1
  360. package/dist/notifications/notification.types.js.map +1 -1
  361. package/dist/notifications/notifications.service.d.ts.map +1 -1
  362. package/dist/notifications/notifications.service.js +8 -0
  363. package/dist/notifications/notifications.service.js.map +1 -1
  364. package/dist/notifications/push-config.controller.d.ts +5 -2
  365. package/dist/notifications/push-config.controller.d.ts.map +1 -1
  366. package/dist/notifications/push-config.controller.js +11 -5
  367. package/dist/notifications/push-config.controller.js.map +1 -1
  368. package/dist/notifications/push-test.service.d.ts +1 -1
  369. package/dist/notifications/push-test.service.d.ts.map +1 -1
  370. package/dist/notifications/push-test.service.js +6 -4
  371. package/dist/notifications/push-test.service.js.map +1 -1
  372. package/dist/settings/settings-resolver.d.ts +28 -1
  373. package/dist/settings/settings-resolver.d.ts.map +1 -1
  374. package/dist/settings/settings-resolver.js +41 -0
  375. package/dist/settings/settings-resolver.js.map +1 -1
  376. package/dist/settings/settings.module.d.ts.map +1 -1
  377. package/dist/settings/settings.module.js +9 -4
  378. package/dist/settings/settings.module.js.map +1 -1
  379. package/dist/settings/user-settings/user-settings.service.d.ts.map +1 -1
  380. package/dist/settings/user-settings/user-settings.service.js +2 -4
  381. package/dist/settings/user-settings/user-settings.service.js.map +1 -1
  382. package/dist/sharing/grants/grants.service.js +2 -2
  383. package/dist/sharing/grants/grants.service.js.map +1 -1
  384. package/dist/sharing/groups/group-invites.service.js +1 -1
  385. package/dist/sharing/groups/group-invites.service.js.map +1 -1
  386. package/dist/sharing/groups/sharing-effects.d.ts +2 -1
  387. package/dist/sharing/groups/sharing-effects.d.ts.map +1 -1
  388. package/dist/sharing/groups/sharing-effects.js +4 -4
  389. package/dist/sharing/groups/sharing-effects.js.map +1 -1
  390. package/dist/sharing/index.d.ts +1 -1
  391. package/dist/sharing/index.d.ts.map +1 -1
  392. package/dist/sharing/index.js.map +1 -1
  393. package/dist/sharing/notifications/group-invitation.templates.d.ts +23 -0
  394. package/dist/sharing/notifications/group-invitation.templates.d.ts.map +1 -1
  395. package/dist/sharing/notifications/group-invitation.templates.js +17 -2
  396. package/dist/sharing/notifications/group-invitation.templates.js.map +1 -1
  397. package/dist/sharing/notifications/shared-with-you.templates.d.ts +1 -1
  398. package/dist/sharing/notifications/shared-with-you.templates.d.ts.map +1 -1
  399. package/dist/sharing/notifications/shared-with-you.templates.js +3 -2
  400. package/dist/sharing/notifications/shared-with-you.templates.js.map +1 -1
  401. package/dist/sharing/ports.d.ts +15 -2
  402. package/dist/sharing/ports.d.ts.map +1 -1
  403. package/dist/sharing/ports.js.map +1 -1
  404. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +30 -8
  405. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -1
  406. package/dist/telemetry/dashboard/telemetry-dashboard.service.js +12 -0
  407. package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -1
  408. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +15 -0
  409. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -1
  410. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +17 -2
  411. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -1
  412. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +3 -3
  413. package/dist/telemetry/index.d.ts +4 -2
  414. package/dist/telemetry/index.d.ts.map +1 -1
  415. package/dist/telemetry/index.js +4 -1
  416. package/dist/telemetry/index.js.map +1 -1
  417. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -1
  418. package/dist/telemetry/metrics/groups/nodes.metric-group.js +77 -0
  419. package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -1
  420. package/dist/telemetry/metrics/metric-verdict.d.ts +1 -1
  421. package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -1
  422. package/dist/telemetry/metrics/metric-verdict.js +15 -1
  423. package/dist/telemetry/metrics/metric-verdict.js.map +1 -1
  424. package/dist/telemetry/query/telemetry-query-facade.d.ts +1 -1
  425. package/dist/telemetry/query/telemetry-query-facade.d.ts.map +1 -1
  426. package/dist/telemetry/query/telemetry-query-facade.js.map +1 -1
  427. package/dist/telemetry/query/telemetry-query.service.d.ts +2 -2
  428. package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -1
  429. package/dist/telemetry/query/telemetry-query.service.js +4 -0
  430. package/dist/telemetry/query/telemetry-query.service.js.map +1 -1
  431. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +1 -1
  432. package/dist/telemetry/telemetry-support-bundle.section.d.ts +4 -4
  433. package/dist/telemetry/telemetry.module.d.ts.map +1 -1
  434. package/dist/telemetry/telemetry.module.js +1 -0
  435. package/dist/telemetry/telemetry.module.js.map +1 -1
  436. package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -1
  437. package/dist/telemetry/testing/metric-schema.fixture.js +56 -0
  438. package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -1
  439. package/dist/user-data/platform-user-data.d.ts.map +1 -1
  440. package/dist/user-data/platform-user-data.js +2 -0
  441. package/dist/user-data/platform-user-data.js.map +1 -1
  442. package/dist/webhooks/data/webhooks-db.d.ts +176 -0
  443. package/dist/webhooks/data/webhooks-db.d.ts.map +1 -0
  444. package/dist/webhooks/data/webhooks-db.js +14 -0
  445. package/dist/webhooks/data/webhooks-db.js.map +1 -0
  446. package/dist/webhooks/egress/egress-guard.d.ts +99 -0
  447. package/dist/webhooks/egress/egress-guard.d.ts.map +1 -0
  448. package/dist/webhooks/egress/egress-guard.js +172 -0
  449. package/dist/webhooks/egress/egress-guard.js.map +1 -0
  450. package/dist/webhooks/egress/transport.d.ts +58 -0
  451. package/dist/webhooks/egress/transport.d.ts.map +1 -0
  452. package/dist/webhooks/egress/transport.js +115 -0
  453. package/dist/webhooks/egress/transport.js.map +1 -0
  454. package/dist/webhooks/handlers/webhook-deliver.handler.d.ts +76 -0
  455. package/dist/webhooks/handlers/webhook-deliver.handler.d.ts.map +1 -0
  456. package/dist/webhooks/handlers/webhook-deliver.handler.js +332 -0
  457. package/dist/webhooks/handlers/webhook-deliver.handler.js.map +1 -0
  458. package/dist/webhooks/handlers/webhook-fanout.handler.d.ts +28 -0
  459. package/dist/webhooks/handlers/webhook-fanout.handler.d.ts.map +1 -0
  460. package/dist/webhooks/handlers/webhook-fanout.handler.js +73 -0
  461. package/dist/webhooks/handlers/webhook-fanout.handler.js.map +1 -0
  462. package/dist/webhooks/handlers/webhook-purge.handler.d.ts +33 -0
  463. package/dist/webhooks/handlers/webhook-purge.handler.d.ts.map +1 -0
  464. package/dist/webhooks/handlers/webhook-purge.handler.js +77 -0
  465. package/dist/webhooks/handlers/webhook-purge.handler.js.map +1 -0
  466. package/dist/webhooks/http/admin-webhooks.controller.d.ts +36 -0
  467. package/dist/webhooks/http/admin-webhooks.controller.d.ts.map +1 -0
  468. package/dist/webhooks/http/admin-webhooks.controller.js +250 -0
  469. package/dist/webhooks/http/admin-webhooks.controller.js.map +1 -0
  470. package/dist/webhooks/http/org-webhooks.controller.d.ts +36 -0
  471. package/dist/webhooks/http/org-webhooks.controller.d.ts.map +1 -0
  472. package/dist/webhooks/http/org-webhooks.controller.js +249 -0
  473. package/dist/webhooks/http/org-webhooks.controller.js.map +1 -0
  474. package/dist/webhooks/http/scope-context.d.ts +17 -0
  475. package/dist/webhooks/http/scope-context.d.ts.map +1 -0
  476. package/dist/webhooks/http/scope-context.js +28 -0
  477. package/dist/webhooks/http/scope-context.js.map +1 -0
  478. package/dist/webhooks/http/webhook.dto.d.ts +174 -0
  479. package/dist/webhooks/http/webhook.dto.d.ts.map +1 -0
  480. package/dist/webhooks/http/webhook.dto.js +58 -0
  481. package/dist/webhooks/http/webhook.dto.js.map +1 -0
  482. package/dist/webhooks/http/webhooks.controller.d.ts +36 -0
  483. package/dist/webhooks/http/webhooks.controller.d.ts.map +1 -0
  484. package/dist/webhooks/http/webhooks.controller.js +243 -0
  485. package/dist/webhooks/http/webhooks.controller.js.map +1 -0
  486. package/dist/webhooks/index.d.ts +43 -0
  487. package/dist/webhooks/index.d.ts.map +1 -0
  488. package/dist/webhooks/index.js +147 -0
  489. package/dist/webhooks/index.js.map +1 -0
  490. package/dist/webhooks/listeners/webhook-event.listeners.d.ts +23 -0
  491. package/dist/webhooks/listeners/webhook-event.listeners.d.ts.map +1 -0
  492. package/dist/webhooks/listeners/webhook-event.listeners.js +120 -0
  493. package/dist/webhooks/listeners/webhook-event.listeners.js.map +1 -0
  494. package/dist/webhooks/notifications/webhook-notification.channel.d.ts +31 -0
  495. package/dist/webhooks/notifications/webhook-notification.channel.d.ts.map +1 -0
  496. package/dist/webhooks/notifications/webhook-notification.channel.js +127 -0
  497. package/dist/webhooks/notifications/webhook-notification.channel.js.map +1 -0
  498. package/dist/webhooks/notifications/webhook-notifications.d.ts +98 -0
  499. package/dist/webhooks/notifications/webhook-notifications.d.ts.map +1 -0
  500. package/dist/webhooks/notifications/webhook-notifications.js +150 -0
  501. package/dist/webhooks/notifications/webhook-notifications.js.map +1 -0
  502. package/dist/webhooks/ports.d.ts +29 -0
  503. package/dist/webhooks/ports.d.ts.map +1 -0
  504. package/dist/webhooks/ports.js +23 -0
  505. package/dist/webhooks/ports.js.map +1 -0
  506. package/dist/webhooks/registry/builtin-events.d.ts +57 -0
  507. package/dist/webhooks/registry/builtin-events.d.ts.map +1 -0
  508. package/dist/webhooks/registry/builtin-events.js +113 -0
  509. package/dist/webhooks/registry/builtin-events.js.map +1 -0
  510. package/dist/webhooks/registry/webhook-catalog.d.ts +63 -0
  511. package/dist/webhooks/registry/webhook-catalog.d.ts.map +1 -0
  512. package/dist/webhooks/registry/webhook-catalog.js +123 -0
  513. package/dist/webhooks/registry/webhook-catalog.js.map +1 -0
  514. package/dist/webhooks/registry/webhook-event.registry.d.ts +116 -0
  515. package/dist/webhooks/registry/webhook-event.registry.d.ts.map +1 -0
  516. package/dist/webhooks/registry/webhook-event.registry.js +152 -0
  517. package/dist/webhooks/registry/webhook-event.registry.js.map +1 -0
  518. package/dist/webhooks/signing.d.ts +31 -0
  519. package/dist/webhooks/signing.d.ts.map +1 -0
  520. package/dist/webhooks/signing.js +48 -0
  521. package/dist/webhooks/signing.js.map +1 -0
  522. package/dist/webhooks/tasks/webhook-purge.task.d.ts +17 -0
  523. package/dist/webhooks/tasks/webhook-purge.task.d.ts.map +1 -0
  524. package/dist/webhooks/tasks/webhook-purge.task.js +68 -0
  525. package/dist/webhooks/tasks/webhook-purge.task.js.map +1 -0
  526. package/dist/webhooks/testing/conformance.d.ts +61 -0
  527. package/dist/webhooks/testing/conformance.d.ts.map +1 -0
  528. package/dist/webhooks/testing/conformance.js +316 -0
  529. package/dist/webhooks/testing/conformance.js.map +1 -0
  530. package/dist/webhooks/testing/in-memory.d.ts +156 -0
  531. package/dist/webhooks/testing/in-memory.d.ts.map +1 -0
  532. package/dist/webhooks/testing/in-memory.js +323 -0
  533. package/dist/webhooks/testing/in-memory.js.map +1 -0
  534. package/dist/webhooks/testing/index.d.ts +7 -0
  535. package/dist/webhooks/testing/index.d.ts.map +1 -0
  536. package/dist/webhooks/testing/index.js +25 -0
  537. package/dist/webhooks/testing/index.js.map +1 -0
  538. package/dist/webhooks/testing/kit.d.ts +86 -0
  539. package/dist/webhooks/testing/kit.d.ts.map +1 -0
  540. package/dist/webhooks/testing/kit.js +113 -0
  541. package/dist/webhooks/testing/kit.js.map +1 -0
  542. package/dist/webhooks/webhook-endpoints.service.d.ts +142 -0
  543. package/dist/webhooks/webhook-endpoints.service.d.ts.map +1 -0
  544. package/dist/webhooks/webhook-endpoints.service.js +366 -0
  545. package/dist/webhooks/webhook-endpoints.service.js.map +1 -0
  546. package/dist/webhooks/webhook-envelope.d.ts +36 -0
  547. package/dist/webhooks/webhook-envelope.d.ts.map +1 -0
  548. package/dist/webhooks/webhook-envelope.js +46 -0
  549. package/dist/webhooks/webhook-envelope.js.map +1 -0
  550. package/dist/webhooks/webhook-secrets.service.d.ts +49 -0
  551. package/dist/webhooks/webhook-secrets.service.d.ts.map +1 -0
  552. package/dist/webhooks/webhook-secrets.service.js +118 -0
  553. package/dist/webhooks/webhook-secrets.service.js.map +1 -0
  554. package/dist/webhooks/webhook-views.d.ts +34 -0
  555. package/dist/webhooks/webhook-views.d.ts.map +1 -0
  556. package/dist/webhooks/webhook-views.js +83 -0
  557. package/dist/webhooks/webhook-views.js.map +1 -0
  558. package/dist/webhooks/webhooks.access.d.ts +28 -0
  559. package/dist/webhooks/webhooks.access.d.ts.map +1 -0
  560. package/dist/webhooks/webhooks.access.js +55 -0
  561. package/dist/webhooks/webhooks.access.js.map +1 -0
  562. package/dist/webhooks/webhooks.constants.d.ts +73 -0
  563. package/dist/webhooks/webhooks.constants.d.ts.map +1 -0
  564. package/dist/webhooks/webhooks.constants.js +100 -0
  565. package/dist/webhooks/webhooks.constants.js.map +1 -0
  566. package/dist/webhooks/webhooks.credentials.d.ts +28 -0
  567. package/dist/webhooks/webhooks.credentials.d.ts.map +1 -0
  568. package/dist/webhooks/webhooks.credentials.js +51 -0
  569. package/dist/webhooks/webhooks.credentials.js.map +1 -0
  570. package/dist/webhooks/webhooks.errors.d.ts +25 -0
  571. package/dist/webhooks/webhooks.errors.d.ts.map +1 -0
  572. package/dist/webhooks/webhooks.errors.js +65 -0
  573. package/dist/webhooks/webhooks.errors.js.map +1 -0
  574. package/dist/webhooks/webhooks.metrics.d.ts +24 -0
  575. package/dist/webhooks/webhooks.metrics.d.ts.map +1 -0
  576. package/dist/webhooks/webhooks.metrics.js +70 -0
  577. package/dist/webhooks/webhooks.metrics.js.map +1 -0
  578. package/dist/webhooks/webhooks.module.d.ts +29 -0
  579. package/dist/webhooks/webhooks.module.d.ts.map +1 -0
  580. package/dist/webhooks/webhooks.module.js +108 -0
  581. package/dist/webhooks/webhooks.module.js.map +1 -0
  582. package/dist/webhooks/webhooks.options.d.ts +119 -0
  583. package/dist/webhooks/webhooks.options.d.ts.map +1 -0
  584. package/dist/webhooks/webhooks.options.js +80 -0
  585. package/dist/webhooks/webhooks.options.js.map +1 -0
  586. package/dist/webhooks/webhooks.permissions.d.ts +47 -0
  587. package/dist/webhooks/webhooks.permissions.d.ts.map +1 -0
  588. package/dist/webhooks/webhooks.permissions.js +83 -0
  589. package/dist/webhooks/webhooks.permissions.js.map +1 -0
  590. package/dist/webhooks/webhooks.repository.d.ts +162 -0
  591. package/dist/webhooks/webhooks.repository.d.ts.map +1 -0
  592. package/dist/webhooks/webhooks.repository.js +246 -0
  593. package/dist/webhooks/webhooks.repository.js.map +1 -0
  594. package/dist/webhooks/webhooks.service.d.ts +91 -0
  595. package/dist/webhooks/webhooks.service.d.ts.map +1 -0
  596. package/dist/webhooks/webhooks.service.js +216 -0
  597. package/dist/webhooks/webhooks.service.js.map +1 -0
  598. package/package.json +19 -3
@@ -24,6 +24,7 @@ const operation_registry_1 = require("../core/operation-registry");
24
24
  const ai_feature_registry_1 = require("../features/ai-feature.registry");
25
25
  const provider_registry_1 = require("../core/provider-registry");
26
26
  const ai_usage_dto_1 = require("./dto/ai-usage.dto");
27
+ const timezone_1 = require("@marinoscar/platform-contract/timezone");
27
28
  // =============================================================================
28
29
  // AiUsageService — aggregates over `ai_usage_events` (issue #443, epic #420)
29
30
  // =============================================================================
@@ -41,10 +42,18 @@ const ai_usage_dto_1 = require("./dto/ai-usage.dto");
41
42
  // admin report and the `(user_id, created_at)` index for a user's own.
42
43
  //
43
44
  // ⚠ THE GROUP KEY IS A FIXED SQL FRAGMENT PICKED FROM `GROUP_KEY_SQL` BY AN
44
- // ENUM THE DTO VALIDATED — never text from the request. It must also contain
45
- // no bound parameter: it appears three times in each statement, and Postgres
46
- // only matches `GROUPING(expr)` / `SELECT expr` to `GROUP BY expr` when the
47
- // three are textually the same expression.
45
+ // ENUM THE DTO VALIDATED — never text from the request. The `day` key carries
46
+ // the report's time zone as a BOUND parameter (`AT TIME ZONE $n`), and a
47
+ // parameter repeated in `GROUPING(expr)` / `SELECT expr` / `GROUP BY expr`
48
+ // becomes three different placeholders that Postgres will not match. So the key
49
+ // is computed ONCE, in the derived table `src` (`gkey`), and every statement
50
+ // groups by the plain column.
51
+ //
52
+ // DAYS ARE CALENDAR DAYS IN THE REPORT'S TIME ZONE (the caller's `tz`, else
53
+ // their profile zone, else UTC), echoed back as `timeZone`. `from`/`to` are
54
+ // local midnights converted to instants, so a day may be 23 or 25 hours long.
55
+ // The AI DAILY LIMITS are not this: they reset at UTC midnight on purpose (see
56
+ // the limits service).
48
57
  //
49
58
  // Every count/sum is cast at the database (`::int`, `::float8`): `count(*)` is
50
59
  // `bigint` and `sum(int)` is `bigint`/`numeric`, which Prisma returns as a JS
@@ -58,8 +67,8 @@ const DAY_MS = 24 * 60 * 60 * 1000;
58
67
  exports.AI_USAGE_NO_USER_KEY = 'system';
59
68
  /** Stable reason code for an unusable range (in `details.reason`). */
60
69
  exports.AI_USAGE_RANGE_INVALID = 'AI_USAGE_RANGE_INVALID';
70
+ /** The group key fragments. `day` is built per report (it binds the zone), see {@link groupKeySql}. */
61
71
  const GROUP_KEY_SQL = {
62
- day: prisma_1.Prisma.raw(`to_char(created_at AT TIME ZONE 'UTC', 'YYYY-MM-DD')`),
63
72
  user: prisma_1.Prisma.raw(`user_id::text`),
64
73
  model: prisma_1.Prisma.raw(`provider || ':' || model_id`),
65
74
  provider: prisma_1.Prisma.raw(`provider`),
@@ -113,10 +122,12 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
113
122
  * every organization's through the system client.
114
123
  */
115
124
  async report(query, now = new Date(), orgId) {
116
- const range = resolveAiUsageRange(query.from, query.to, now);
117
- const key = GROUP_KEY_SQL[query.groupBy];
118
- const where = whereSql(range, query);
119
125
  const db = orgId ? this.prisma.forOrg(orgId) : this.system.asSystem('admin-aggregate');
126
+ // A zone Intl accepts but Postgres does not know would make `AT TIME ZONE` fail: fall back to UTC.
127
+ const timeZone = await this.databaseKnowsZone(db, query.timeZone);
128
+ const range = resolveAiUsageRange(query.from, query.to, now, timeZone);
129
+ const key = prisma_1.Prisma.raw('gkey');
130
+ const src = sourceSql(groupKeySql(query.groupBy, range.timeZone), whereSql(range, query));
120
131
  const [rows, unitRows] = await Promise.all([
121
132
  db.$queryRaw(prisma_1.Prisma.sql `
122
133
  SELECT
@@ -131,8 +142,7 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
131
142
  (count(*) FILTER (WHERE key_source = 'org'))::int AS org_requests,
132
143
  coalesce(sum(input_tokens) FILTER (WHERE key_source = 'org'), 0)::float8 AS org_input_tokens,
133
144
  coalesce(sum(output_tokens) FILTER (WHERE key_source = 'org'), 0)::float8 AS org_output_tokens
134
- FROM ai_usage_events
135
- ${where}
145
+ FROM ${src}
136
146
  GROUP BY GROUPING SETS ((${key}), ())
137
147
  `),
138
148
  // `CASE` rather than a WHERE on `jsonb_typeof`: `jsonb_each` raises on a
@@ -144,12 +154,11 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
144
154
  ${key} AS key,
145
155
  u.unit AS unit,
146
156
  sum((u.amount)::numeric)::float8 AS amount
147
- FROM ai_usage_events,
157
+ FROM ${src},
148
158
  LATERAL jsonb_each(
149
159
  CASE WHEN jsonb_typeof(units) = 'object' THEN units ELSE '{}'::jsonb END
150
160
  ) AS u(unit, amount)
151
- ${where}
152
- AND jsonb_typeof(u.amount) = 'number'
161
+ WHERE jsonb_typeof(u.amount) = 'number'
153
162
  GROUP BY GROUPING SETS ((${key}, u.unit), (u.unit))
154
163
  `),
155
164
  ]);
@@ -177,7 +186,7 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
177
186
  }
178
187
  const priced = query.withCost === true && this.pricing !== undefined;
179
188
  if (priced) {
180
- const costs = await this.costs(db, key, where);
189
+ const costs = await this.costs(db, key, src);
181
190
  totals = { ...totals, cost: costs.total };
182
191
  for (const group of groups)
183
192
  group.bucket = { ...group.bucket, cost: costs.byKey.get(group.key) ?? null };
@@ -187,12 +196,32 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
187
196
  : await this.labelled(query.groupBy, groups);
188
197
  return {
189
198
  range: { from: range.from, to: range.to },
199
+ timeZone: range.timeZone,
190
200
  groupBy: query.groupBy,
191
201
  ...(query.withCost === true ? { priced } : {}),
192
202
  totals,
193
203
  series,
194
204
  };
195
205
  }
206
+ /** Per-zone answers of `pg_timezone_names`, kept for the life of the process. */
207
+ knownZones = new Map();
208
+ /**
209
+ * The zone to bucket in: `requested` when Postgres knows it (checked once per
210
+ * zone against `pg_timezone_names`, then cached), else UTC. UTC is never queried.
211
+ */
212
+ async databaseKnowsZone(db, requested) {
213
+ if (!requested || requested === timezone_1.DEFAULT_SERVER_TIME_ZONE)
214
+ return timezone_1.DEFAULT_SERVER_TIME_ZONE;
215
+ let known = this.knownZones.get(requested);
216
+ if (known === undefined) {
217
+ const rows = await db.$queryRaw(prisma_1.Prisma.sql `SELECT 1 FROM pg_timezone_names WHERE name = ${requested} LIMIT 1`);
218
+ known = Array.isArray(rows) && rows.length > 0;
219
+ this.knownZones.set(requested, known);
220
+ if (!known)
221
+ this.logger.warn(`Postgres does not know the time zone "${requested}"; the usage report falls back to UTC`);
222
+ }
223
+ return known ? requested : timezone_1.DEFAULT_SERVER_TIME_ZONE;
224
+ }
196
225
  /** Non-day groups, labelled, most requests first (ties by key, so the order is stable). */
197
226
  async labelled(groupBy, groups) {
198
227
  const emails = groupBy === 'user' ? await this.emailsFor(groups) : new Map();
@@ -243,7 +272,7 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
243
272
  * do not here, but `day` and `user` reports are different cuts of the same
244
273
  * slices).
245
274
  */
246
- async costs(db, key, where) {
275
+ async costs(db, key, src) {
247
276
  const pricing = this.pricing;
248
277
  const [rows, unitRows] = await Promise.all([
249
278
  db.$queryRaw(prisma_1.Prisma.sql `
@@ -257,8 +286,7 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
257
286
  coalesce(sum(output_tokens), 0)::float8 AS output_tokens,
258
287
  coalesce(sum(reasoning_tokens), 0)::float8 AS reasoning_tokens,
259
288
  coalesce(sum(cached_input_tokens), 0)::float8 AS cached_input_tokens
260
- FROM ai_usage_events
261
- ${where}
289
+ FROM ${src}
262
290
  GROUP BY ${key}, provider, model_id, operation
263
291
  `),
264
292
  db.$queryRaw(prisma_1.Prisma.sql `
@@ -269,12 +297,11 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
269
297
  operation,
270
298
  u.unit AS unit,
271
299
  sum((u.amount)::numeric)::float8 AS amount
272
- FROM ai_usage_events,
300
+ FROM ${src},
273
301
  LATERAL jsonb_each(
274
302
  CASE WHEN jsonb_typeof(units) = 'object' THEN units ELSE '{}'::jsonb END
275
303
  ) AS u(unit, amount)
276
- ${where}
277
- AND jsonb_typeof(u.amount) = 'number'
304
+ WHERE jsonb_typeof(u.amount) = 'number'
278
305
  GROUP BY ${key}, provider, model_id, operation, u.unit
279
306
  `),
280
307
  ]);
@@ -360,6 +387,19 @@ exports.AiUsageService = AiUsageService = AiUsageService_1 = __decorate([
360
387
  __param(3, (0, common_1.Inject)(ports_1.AI_PRICING)),
361
388
  __metadata("design:paramtypes", [Object, provider_registry_1.AiProviderRegistry, Object, Object])
362
389
  ], AiUsageService);
390
+ /**
391
+ * The group key expression. `day` is the calendar day in `timeZone`, bound as a
392
+ * parameter (the key is evaluated once, in {@link sourceSql}).
393
+ */
394
+ function groupKeySql(groupBy, timeZone) {
395
+ return groupBy === 'day'
396
+ ? prisma_1.Prisma.sql `to_char(created_at AT TIME ZONE ${timeZone}::text, 'YYYY-MM-DD')`
397
+ : GROUP_KEY_SQL[groupBy];
398
+ }
399
+ /** The filtered rows with the group key computed once as `gkey`. */
400
+ function sourceSql(key, where) {
401
+ return prisma_1.Prisma.sql `(SELECT *, ${key} AS gkey FROM ai_usage_events ${where}) AS src`;
402
+ }
363
403
  function whereSql(range, query) {
364
404
  const clauses = [
365
405
  prisma_1.Prisma.sql `created_at >= ${range.start}::timestamptz`,
@@ -381,45 +421,46 @@ function whereSql(range, query) {
381
421
  * The window a report covers. Pure, so the defaults and bounds are unit
382
422
  * testable without a database.
383
423
  *
384
- * Defaults: `to` = today (UTC); `from` = `to` minus 29 days (30 days
385
- * inclusive). Refused with 400 `AI_USAGE_RANGE_INVALID` when `from` is after
424
+ * Days are CALENDAR DAYS IN `timeZone`. Defaults: `to` = today there; `from` =
425
+ * `to` minus 29 days (30 days inclusive). `start` is local midnight of `from`
426
+ * and `end` local midnight after `to`, as instants, so a DST day is 23 or 25
427
+ * hours long. Refused with 400 `AI_USAGE_RANGE_INVALID` when `from` is after
386
428
  * `to` or the span exceeds `MAX_AI_USAGE_RANGE_DAYS` — refused, not clamped:
387
429
  * a caller who asked for a year and silently got a quarter would compare the
388
430
  * wrong numbers (the job-insights argument).
389
431
  */
390
- function resolveAiUsageRange(from, to, now) {
391
- const toDay = to ? parseDay(to) : startOfUtcDay(now);
392
- const fromDay = from ? parseDay(from) : new Date(toDay.getTime() - (ai_usage_dto_1.DEFAULT_AI_USAGE_RANGE_DAYS - 1) * DAY_MS);
393
- if (fromDay.getTime() > toDay.getTime()) {
432
+ function resolveAiUsageRange(from, to, now, timeZone = timezone_1.DEFAULT_SERVER_TIME_ZONE) {
433
+ const toDay = to ? checkedDay(to) : (0, timezone_1.zonedDateKey)(now, timeZone);
434
+ const fromDay = from ? checkedDay(from) : (0, timezone_1.addDaysToDateKey)(toDay, -(ai_usage_dto_1.DEFAULT_AI_USAGE_RANGE_DAYS - 1));
435
+ if (fromDay > toDay) {
394
436
  throw rangeError('`from` must not be after `to`.');
395
437
  }
396
- const days = Math.round((toDay.getTime() - fromDay.getTime()) / DAY_MS) + 1;
438
+ const days = Math.round((dayNumber(toDay) - dayNumber(fromDay))) + 1;
397
439
  if (days > ai_usage_dto_1.MAX_AI_USAGE_RANGE_DAYS) {
398
440
  throw rangeError(`The range covers ${days} days; at most ${ai_usage_dto_1.MAX_AI_USAGE_RANGE_DAYS} are allowed.`);
399
441
  }
400
442
  return {
401
- from: isoDay(fromDay),
402
- to: isoDay(toDay),
403
- start: fromDay,
404
- end: new Date(toDay.getTime() + DAY_MS),
443
+ from: fromDay,
444
+ to: toDay,
445
+ start: (0, timezone_1.zonedDayStart)(fromDay, timeZone),
446
+ end: (0, timezone_1.zonedDayStart)((0, timezone_1.addDaysToDateKey)(toDay, 1), timeZone),
447
+ timeZone,
405
448
  };
406
449
  }
407
- function parseDay(day) {
450
+ /** Whole days since the epoch of a `YYYY-MM-DD` (zone-free calendar arithmetic). */
451
+ function dayNumber(day) {
452
+ return Date.parse(`${day}T00:00:00.000Z`) / DAY_MS;
453
+ }
454
+ function checkedDay(day) {
408
455
  const parsed = new Date(`${day}T00:00:00.000Z`);
409
- if (Number.isNaN(parsed.getTime()) || isoDay(parsed) !== day) {
456
+ if (Number.isNaN(parsed.getTime()) || parsed.toISOString().slice(0, 10) !== day) {
410
457
  throw rangeError(`"${day}" is not a valid date (YYYY-MM-DD).`);
411
458
  }
412
- return parsed;
459
+ return day;
413
460
  }
414
461
  function rangeError(message) {
415
462
  return new common_1.BadRequestException({ message, details: { reason: exports.AI_USAGE_RANGE_INVALID } });
416
463
  }
417
- function startOfUtcDay(date) {
418
- return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
419
- }
420
- function isoDay(date) {
421
- return date.toISOString().slice(0, 10);
422
- }
423
464
  function emptyBucket() {
424
465
  return {
425
466
  requests: 0,
@@ -448,12 +489,12 @@ function toBucket(row, units) {
448
489
  orgKeyOutputTokens: Number(row.org_output_tokens),
449
490
  };
450
491
  }
451
- /** Every day of the range, in order, with a zero bucket where nothing was recorded. */
492
+ /** Every calendar day of the range, in order, with a zero bucket where nothing was recorded. */
452
493
  function zeroFilledDays(range, groups) {
453
494
  const byDay = new Map(groups.map((g) => [g.key, g.bucket]));
454
495
  const series = [];
455
- for (let t = range.start.getTime(); t < range.end.getTime(); t += DAY_MS) {
456
- const day = isoDay(new Date(t));
496
+ // Stepped on the calendar (never by 24 hours), so a DST day cannot skip or repeat a key.
497
+ for (let day = range.from; day <= range.to; day = (0, timezone_1.addDaysToDateKey)(day, 1)) {
457
498
  series.push({ key: day, label: day, ...(byDay.get(day) ?? emptyBucket()) });
458
499
  }
459
500
  return series;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage.service.js","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-usage.service.js","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.service.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export type AiUsageGroupBy = (typeof AI_USAGE_ADMIN_GROUP_BY)[number];
13
13
  export declare const aiUsageMeQuerySchema: z.ZodObject<{
14
14
  from: z.ZodOptional<z.ZodISODate>;
15
15
  to: z.ZodOptional<z.ZodISODate>;
16
+ tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
16
17
  groupBy: z.ZodDefault<z.ZodEnum<{
17
18
  model: "model";
18
19
  day: "day";
@@ -21,6 +22,7 @@ export declare const aiUsageMeQuerySchema: z.ZodObject<{
21
22
  export declare const aiUsageAdminQuerySchema: z.ZodObject<{
22
23
  from: z.ZodOptional<z.ZodISODate>;
23
24
  to: z.ZodOptional<z.ZodISODate>;
25
+ tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
24
26
  groupBy: z.ZodDefault<z.ZodEnum<{
25
27
  org: "org";
26
28
  user: "user";
@@ -44,6 +46,7 @@ export declare const aiUsageAdminQuerySchema: z.ZodObject<{
44
46
  export declare const aiUsageOrgQuerySchema: z.ZodObject<{
45
47
  from: z.ZodOptional<z.ZodISODate>;
46
48
  to: z.ZodOptional<z.ZodISODate>;
49
+ tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
47
50
  groupBy: z.ZodDefault<z.ZodEnum<{
48
51
  user: "user";
49
52
  model: "model";
@@ -61,6 +64,7 @@ export declare const aiUsageOrgQuerySchema: z.ZodObject<{
61
64
  declare const AiUsageOrgQueryDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
62
65
  from: z.ZodOptional<z.ZodISODate>;
63
66
  to: z.ZodOptional<z.ZodISODate>;
67
+ tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
64
68
  groupBy: z.ZodDefault<z.ZodEnum<{
65
69
  user: "user";
66
70
  model: "model";
@@ -81,6 +85,7 @@ export type AiUsageOrgQuery = z.output<typeof aiUsageOrgQuerySchema>;
81
85
  declare const AiUsageMeQueryDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
82
86
  from: z.ZodOptional<z.ZodISODate>;
83
87
  to: z.ZodOptional<z.ZodISODate>;
88
+ tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
84
89
  groupBy: z.ZodDefault<z.ZodEnum<{
85
90
  model: "model";
86
91
  day: "day";
@@ -91,6 +96,7 @@ export declare class AiUsageMeQueryDto extends AiUsageMeQueryDto_base {
91
96
  declare const AiUsageAdminQueryDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
92
97
  from: z.ZodOptional<z.ZodISODate>;
93
98
  to: z.ZodOptional<z.ZodISODate>;
99
+ tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
94
100
  groupBy: z.ZodDefault<z.ZodEnum<{
95
101
  org: "org";
96
102
  user: "user";
@@ -160,6 +166,7 @@ export declare const aiUsageReportSchema: z.ZodObject<{
160
166
  from: z.ZodISODate;
161
167
  to: z.ZodISODate;
162
168
  }, z.core.$strip>;
169
+ timeZone: z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
163
170
  groupBy: z.ZodEnum<{
164
171
  org: "org";
165
172
  user: "user";
@@ -211,6 +218,7 @@ declare const AiUsageReportDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
211
218
  from: z.ZodISODate;
212
219
  to: z.ZodISODate;
213
220
  }, z.core.$strip>;
221
+ timeZone: z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
214
222
  groupBy: z.ZodEnum<{
215
223
  org: "org";
216
224
  user: "user";
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage.dto.d.ts","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,2FAU1B,CAAC;AAEX,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,oFAAqF,CAAC;AAExH,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,2BAA4B,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAItE,eAAO,MAAM,oBAAoB;;;;;;;iBAM/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;iBAclC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;iBAShC,CAAC;;;;;;;;;;;;;;;;;;AAEH,qBAAa,kBAAmB,SAAQ,uBAAmC;CAAG;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;;;;;;;;;AAErE,qBAAa,iBAAkB,SAAQ,sBAAkC;CAAG;;;;;;;;;;;;;;;;;;;;AAC5E,qBAAa,oBAAqB,SAAQ,yBAAqC;CAAG;AAElF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAYzE;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAqB9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAclC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qBAAa,gBAAiB,SAAQ,qBAAiC;CAAG;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"ai-usage.dto.d.ts","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,2FAU1B,CAAC;AAEX,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,oFAAqF,CAAC;AAExH,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,2BAA4B,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAItE,eAAO,MAAM,oBAAoB;;;;;;;;iBAQ/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;iBAgBlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;iBAWhC,CAAC;;;;;;;;;;;;;;;;;;;AAEH,qBAAa,kBAAmB,SAAQ,uBAAmC;CAAG;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;;;;;;;;;;AAErE,qBAAa,iBAAkB,SAAQ,sBAAkC;CAAG;;;;;;;;;;;;;;;;;;;;;AAC5E,qBAAa,oBAAqB,SAAQ,yBAAqC;CAAG;AAElF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAYzE;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAqB9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAclC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qBAAa,gBAAiB,SAAQ,qBAAiC;CAAG;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AiUsageReportDto = exports.aiUsageReportSchema = exports.aiUsageSeriesItemSchema = exports.aiUsageBucketSchema = exports.AiUsageAdminQueryDto = exports.AiUsageMeQueryDto = exports.AiUsageOrgQueryDto = exports.aiUsageOrgQuerySchema = exports.aiUsageAdminQuerySchema = exports.aiUsageMeQuerySchema = exports.AI_USAGE_ME_GROUP_BY = exports.AI_USAGE_ORG_GROUP_BY = exports.AI_USAGE_ADMIN_GROUP_BY = exports.DEFAULT_AI_USAGE_RANGE_DAYS = exports.MAX_AI_USAGE_RANGE_DAYS = void 0;
4
4
  const ai_1 = require("@marinoscar/platform-contract/ai");
5
+ const settings_1 = require("@marinoscar/platform-contract/settings");
5
6
  const nestjs_zod_1 = require("nestjs-zod");
6
7
  const zod_1 = require("zod");
7
8
  // =============================================================================
@@ -15,8 +16,10 @@ const zod_1 = require("zod");
15
16
  // renders either. Aggregated in SQL over `ai_usage_events` (the `created_at`
16
17
  // and `(user_id, created_at)` indexes); see `ai-usage.service.ts`.
17
18
  //
18
- // DATES ARE UTC CALENDAR DAYS, BOTH ENDS INCLUSIVE. `from=2026-09-01&to=
19
- // 2026-09-30` is thirty whole UTC days. Default: the last 30 days ending today;
19
+ // DATES ARE CALENDAR DAYS IN THE REPORT'S TIME ZONE, BOTH ENDS INCLUSIVE.
20
+ // `tz` (an IANA id) defaults to the caller's `profile.timezone`, then the
21
+ // `X-Time-Zone` header, then UTC; the report echoes the zone used as
22
+ // `timeZone`. `from=2026-09-01&to=2026-09-30` is thirty whole days there. Default: the last 30 days ending today;
20
23
  // the span is at most `MAX_AI_USAGE_RANGE_DAYS` (the job-insights bound).
21
24
  // =============================================================================
22
25
  /** Largest window a report may cover, in days (inclusive). Same bound as job insights. */
@@ -41,15 +44,19 @@ exports.AI_USAGE_ORG_GROUP_BY = ['day', 'user', 'model', 'provider', 'keySource'
41
44
  exports.AI_USAGE_ME_GROUP_BY = ['day', 'model'];
42
45
  const isoDay = zod_1.z.iso.date();
43
46
  exports.aiUsageMeQuerySchema = zod_1.z.object({
44
- /** First UTC day included (`YYYY-MM-DD`). Default: 29 days before `to`. */
47
+ /** First day included (`YYYY-MM-DD`, in `tz`). Default: 29 days before `to`. */
45
48
  from: isoDay.optional(),
46
- /** Last UTC day included (`YYYY-MM-DD`). Default: today (UTC). */
49
+ /** Last day included (`YYYY-MM-DD`, in `tz`). Default: today in `tz`. */
47
50
  to: isoDay.optional(),
51
+ /** IANA time zone the days are cut in. Default: your profile zone, then `X-Time-Zone`, then UTC. */
52
+ tz: settings_1.timeZoneIdSchema.optional(),
48
53
  groupBy: zod_1.z.enum(exports.AI_USAGE_ME_GROUP_BY).default('day'),
49
54
  });
50
55
  exports.aiUsageAdminQuerySchema = zod_1.z.object({
51
56
  from: isoDay.optional(),
52
57
  to: isoDay.optional(),
58
+ /** IANA time zone the days are cut in. Default: the caller's profile zone, then `X-Time-Zone`, then UTC. */
59
+ tz: settings_1.timeZoneIdSchema.optional(),
53
60
  groupBy: zod_1.z.enum(exports.AI_USAGE_ADMIN_GROUP_BY).default('day'),
54
61
  /** Only this user's events. */
55
62
  userId: zod_1.z.uuid().optional(),
@@ -69,6 +76,8 @@ exports.aiUsageAdminQuerySchema = zod_1.z.object({
69
76
  exports.aiUsageOrgQuerySchema = zod_1.z.object({
70
77
  from: isoDay.optional(),
71
78
  to: isoDay.optional(),
79
+ /** IANA time zone the days are cut in. Default: the caller's profile zone, then `X-Time-Zone`, then UTC. */
80
+ tz: settings_1.timeZoneIdSchema.optional(),
72
81
  groupBy: zod_1.z.enum(exports.AI_USAGE_ORG_GROUP_BY).default('day'),
73
82
  userId: zod_1.z.uuid().optional(),
74
83
  provider: zod_1.z.string().min(1).max(64).optional(),
@@ -141,8 +150,10 @@ exports.aiUsageSeriesItemSchema = exports.aiUsageBucketSchema.extend({
141
150
  label: zod_1.z.string(),
142
151
  });
143
152
  exports.aiUsageReportSchema = zod_1.z.object({
144
- /** The window actually reported, UTC days, both inclusive. */
153
+ /** The window actually reported: calendar days in `timeZone`, both inclusive. */
145
154
  range: zod_1.z.object({ from: isoDay, to: isoDay }),
155
+ /** The IANA zone the days were cut in (the request's `tz`, else the caller's zone, else `UTC`). */
156
+ timeZone: settings_1.timeZoneIdSchema,
146
157
  groupBy: zod_1.z.enum(exports.AI_USAGE_ADMIN_GROUP_BY),
147
158
  /** Whether a pricing port is bound, so buckets carry a `cost` (PP-14.17). */
148
159
  priced: zod_1.z.boolean().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage.dto.js","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-usage.dto.js","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type AlertIncident, type AlertKind, type AlertRule, type AlertRuleTestResponse, type AlertSummary } from '@marinoscar/platform-contract/alerts';
2
+ import { AlertsEvaluationService } from './alerts-evaluation.service';
3
+ import { AlertsIncidentsService, type AlertIncidentPage } from './alerts-incidents.service';
4
+ import { AlertsRulesService } from './alerts-rules.service';
5
+ import { AlertIncidentListQueryDto, AlertRuleListQueryDto, CreateAlertRuleDto, UpdateAlertRuleDto } from './dto/alerts.dto';
6
+ /**
7
+ * The alerts admin routes: rules, the kind catalog, incidents and the firing
8
+ * summary.
9
+ *
10
+ * @stability experimental
11
+ */
12
+ export declare class AlertsAdminController {
13
+ private readonly rules;
14
+ private readonly incidents;
15
+ private readonly evaluation;
16
+ constructor(rules: AlertsRulesService, incidents: AlertsIncidentsService, evaluation: AlertsEvaluationService);
17
+ /** Lists the rules. */
18
+ listRules(query: AlertRuleListQueryDto): Promise<AlertRule[]>;
19
+ /** Creates a rule. */
20
+ createRule(body: CreateAlertRuleDto, userId: string): Promise<AlertRule>;
21
+ /** One rule. */
22
+ getRule(id: string): Promise<AlertRule>;
23
+ /** Updates a rule. */
24
+ updateRule(id: string, body: UpdateAlertRuleDto): Promise<AlertRule>;
25
+ /** Deletes a rule. */
26
+ deleteRule(id: string): Promise<void>;
27
+ /** Evaluates a rule now without storing or dispatching anything. */
28
+ testRule(id: string): Promise<AlertRuleTestResponse>;
29
+ /** The registered kinds. */
30
+ listKinds(): AlertKind[];
31
+ /** Lists incidents. */
32
+ listIncidents(query: AlertIncidentListQueryDto): Promise<AlertIncidentPage>;
33
+ /** One incident. */
34
+ getIncident(id: string): Promise<AlertIncident>;
35
+ /** Acknowledges an incident. */
36
+ acknowledge(id: string, userId: string): Promise<AlertIncident>;
37
+ /** The firing summary. */
38
+ summary(): Promise<AlertSummary>;
39
+ }
40
+ //# sourceMappingURL=alerts-admin.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-admin.controller.d.ts","sourceRoot":"","sources":["../../src/alerts/alerts-admin.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAEL,yBAAyB,EAGzB,qBAAqB,EAGrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAmC1B;;;;;GAKG;AACH,qBAEa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,uBAAuB;IAGtD,uBAAuB;IAMvB,SAAS,CAAU,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAItE,sBAAsB;IAWtB,UAAU,CAAS,IAAI,EAAE,kBAAkB,EAAqB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAInG,gBAAgB;IAQhB,OAAO,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAInE,sBAAsB;IAYtB,UAAU,CAA6B,EAAE,EAAE,MAAM,EAAU,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxG,sBAAsB;IAUhB,UAAU,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,oEAAoE;IAY9D,QAAQ,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBtF,4BAA4B;IAM5B,SAAS,IAAI,SAAS,EAAE;IAWxB,uBAAuB;IAMvB,aAAa,CAAU,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpF,oBAAoB;IAQpB,WAAW,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3E,gCAAgC;IAShC,WAAW,CAA6B,EAAE,EAAE,MAAM,EAAqB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9G,0BAA0B;IAM1B,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;CAGjC"}