@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @marinoscar/platform-api
2
2
 
3
+ ## 0.1.0-next.20
4
+
5
+ ### Minor Changes
6
+
7
+ - 7b5796f: Add the `alerts` slice (#1047). `@marinoscar/platform-contract/alerts` carries the wire shapes (rules, the configs of the built-in kinds, incidents, the dry-run response, the kind catalog, the summary). `@marinoscar/platform-api/alerts` adds `AlertsModule.forRoot`, the open rule-kind registry (`registerAlertRuleKind`) with the `metric_threshold`, `node_event`, `verdict`, `node_offline` and `telemetry_unavailable` kinds, the pending/firing/resolved state machine, the `alerts.evaluate`, `alerts.evaluate_event` and `alerts.incidents_purge` server-only jobs, notifications on a transition with an optional webhook port (`ALERTS_WEBHOOK_EMITTER`), eight disabled starter rules, the `/api/admin/alerts` routes behind the new `alerts:read` and `alerts:write` permissions, and the `alerts` conformance suite (`@marinoscar/platform-api/alerts/testing`). The telemetry slice now exports `TelemetryDashboardService` and `createQueryFacade`, accepts a `null` (system) user and an `alert` query source, and the nodes slice exports `deriveNodeHealth`. `@marinoscar/platform-db` adds migration `0040_add_alerts` (`alert_rules`, `alert_incidents` and the raw-SQL partial unique index `alert_incidents_open_uniq_idx`).
8
+ - 6949b6b: Worker nodes report host vitals, power state and events (#1045). Contract: `vitals.host` and `vitals.power`, heartbeat `events` (at most 50, `nodeEventSchema`, `NODE_EVENT_TYPES`), `serverFeatures` / `NODE_SERVER_CAPABILITY_HOST_VITALS` (`node_host_vitals`), the admin event list schemas and `nodeEventListQuerySchema`; the nodes telemetry presentation gains host CPU, host memory, load, power source and battery columns. API: `POST /api/nodes/register` and `POST /api/nodes/:id/heartbeat` advertise `serverFeatures` (the heartbeat repeats it beside the node fields, so a node that never re-registers learns it); heartbeat `events` are persisted to `worker_node_events` (occurredAt clamped to [now-24h, now+5m], at most 120 events per node per hour, the excess dropped and logged) and announced after the write as the `nodes.node.event` domain event (`NODE_EVENT_REPORTED`, `NodeEventReportedEvent`), an `app.nodes.events` counter, a bounded `node.event` span and a log line; `GET /api/nodes/:id/events` (`nodes:read`, same 404/403 answers as `GET /api/nodes/:id`) and `GET /api/admin/nodes/:id/events` (Admin role, `nodes:read`) list them; new gauges `app.nodes.host.cpu.utilization`, `app.nodes.host.memory.used|total|available`, `app.nodes.host.load1`, `app.nodes.power.on_battery` and `app.nodes.power.battery_percent` (a series is skipped when the node did not report the field); the telemetry `nodes` group shows them per node and a node on battery at 10 % or less degrades the dashboard verdict; the daily `nodes.node_events_purge` job (enqueued by `NodeEventsPurgeTask`, kept for `NodesModule.forRoot({ nodeEventsRetentionDays })`, default 30 days, switch `tasks.nodeEventsPurge`) deletes old events. The jobs slice's `JobsTx` gains the `workerNodeEvent` delegate. DB: migration `0038_add_worker_node_events` (already shipped with the table). CLI: the node samples host CPU, load and memory, probes power per OS, turns transitions into events and sends them only after the server advertises `node_host_vitals`, learned from the register response or from any heartbeat response; an already-registered node no longer re-registers on start.
9
+ - fb02006: Add the `@marinoscar/platform-api/webhooks` slice and its `/testing` entry (issue #1046): signed outbound webhooks for a member, an organization or the deployment (`/api/webhooks`, `/api/org/webhooks`, `/api/admin/webhooks`), an open event registry (`registerWebhookEvent`) with built-in node and job events, `WebhooksService.emit`, an SSRF-safe egress guard with a pinned address, signing secrets in the credentials store, the server-only `webhooks.deliver`, `webhooks.fanout` and `webhooks.deliveries_purge` jobs with retries and a circuit breaker, the `webhook` notification channel and `webhooks.endpoint_disabled` event, the `webhooks:*`, `org_webhooks:*` and `system_webhooks:*` permissions (added to `@marinoscar/platform-api/manifest`), the `webhooks` conformance suite and an in-memory test kit. Core gains `isBlockedAddress` (public-address classification). Needs platform migration `0039_add_webhooks`.
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [7b5796f]
14
+ - Updated dependencies [6949b6b]
15
+ - Updated dependencies [f3b9700]
16
+ - @marinoscar/platform-contract@0.1.0-next.20
17
+ - @marinoscar/platform-ai-providers@0.1.0-next.20
18
+
19
+ ## 0.1.0-next.19
20
+
21
+ ### Minor Changes
22
+
23
+ - 2cbffde: Date operations follow the user's `profile.timezone`, and emails render in the recipient's zone. Contract: new subpath `@marinoscar/platform-contract/timezone` with the pure, DST-correct zone math the API and the web share (`getTimeZoneOffsetMinutes`, `getZonedParts`, `zonedDateKey`, `zonedDayStart`, `addCalendarInZone`, `addDaysToDateKey`, `isDateKey`), `DEFAULT_SERVER_TIME_ZONE` (`'UTC'`) and `TIME_ZONE_HEADER` (`'x-time-zone'`); `readProfileTimeZone(settingsValue)` in `/settings`. API zone resolution: `SettingsResolver.resolveUserTimeZone(userId)` and `resolveRequestTimeZone(request, userId?)` (stored profile zone, then a valid `X-Time-Zone` header from a client on "Automatic", then UTC), also bound as `REQUEST_TIME_ZONE_RESOLVER` in `@marinoscar/platform-api/core` (with `readRequestTimeZoneHeader`, `chooseTimeZone`, `resolveRequestTimeZoneWith`) so slices below settings can use it `@Optional()`. Emails: `EmailRenderContext.timeZone`, `formatEmailDateTime` and `formatEmailDate` (the zone's short name always printed, plus the UTC time outside UTC, e.g. `Oct 26, 2026, 9:42 PM CDT (Oct 27, 02:42 UTC)`); every platform template that shows a time uses them (test-email, role-changed, job-failed, node-offline, backup-failed, restore-completed). The sharing templates take optional `formatDate`/`formatDateTime` in the kit (UTC, labelled, without them) and `SharingNotifier` calls take an optional `SharingNotifyHint { actorUserId }`. Notifications: `NotificationRecipient.timeZone` is read with the recipient and flows to the email channel (per-recipient render context) and to the bell and push renderers (`BrowserNotificationTemplate` is `(data, ctx?: { timeZone? })`); `NotifyOptions.timeZone` is a render hint for a recipient with no zone. The email and push test sends use the requester's zone. AI usage: the three reports take an optional `tz` (default profile zone, then `X-Time-Zone`, then UTC), cut days with a bound `AT TIME ZONE`, use local midnights for `from`/`to`, zero-fill by calendar day and echo `timeZone`. AI daily limits stay UTC midnight (quota-abuse reason); the `AI_RATE_LIMITED` details gain `resetsAt` (ISO). Exports: `ExportContext.timeZone` (required; captured at enqueue into the job payload from the request's zone), the default file name uses the zone's day, and `zonedDayStart`/`zonedDateKey` are re-exported from `/exports`. PAT: `days` and `months` lifetimes are calendar arithmetic in the requester's zone (`computePatExpiry`; month ends clamp). Behaviour change: platform emails and bell text that showed ISO timestamps now show `Mon D, YYYY, h:mm AM UTC` for a recipient without a stored zone. Back-compat: the new request header and query parameter are optional; a custom `ExportContext` builder (tests) must add `timeZone`.
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies [2cbffde]
28
+ - @marinoscar/platform-contract@0.1.0-next.19
29
+ - @marinoscar/platform-ai-providers@0.1.0-next.19
30
+
3
31
  ## 0.1.0-next.18
4
32
 
5
33
  ### Minor Changes
package/README.md CHANGED
@@ -26,6 +26,7 @@ Status: pre-release (the current channel and how to install it: the [release run
26
26
  - `@marinoscar/platform-api/telemetry` and `@marinoscar/platform-api/telemetry/testing`: the API side of observability: the `telemetry` settings and runtime export gate, the runtime GreptimeDB connection, the explorer, the AI assistant, the dashboard with its metric-group registry and health verdict, the stack-agent surface, two server-only job types, five Doctor checks and a support-bundle section; the `telemetry` conformance suite. [README](src/telemetry/README.md).
27
27
  - `@marinoscar/platform-api/sharing` and `@marinoscar/platform-api/sharing/testing`: sharing primitives: groups, members and invites inside an organization, the ownership contract, grants (user, group and link), `AccessPolicy`, the "resources I can see" query helpers, link shares and the public-route pattern; the `sharing` conformance suite. [README](src/sharing/README.md).
28
28
  - `@marinoscar/platform-api/notifications` and `@marinoscar/platform-api/notifications/testing`: the notification framework: the event, channel and template registries, the dispatcher and its policy (system, then organization), the email, in-app and Web Push channels, runtime Web Push keys, admin broadcasts and the SSE stream; the `notifications` conformance suite. [README](src/notifications/README.md).
29
+ - `@marinoscar/platform-api/alerts` and `@marinoscar/platform-api/alerts/testing`: alert rules over telemetry metrics, node events and fleet health, incidents with a pending/firing/resolved state machine, notifications and an optional webhook on a transition, the admin routes; the conformance suite and in-memory fakes of its `testing` entry. [README](src/alerts/README.md).
29
30
  - `@marinoscar/platform-api/android-app` and `@marinoscar/platform-api/android-app/testing`: the server half of the Android companion: trusted apps and the Digital Asset Links route, hosted APK releases, the `android_app` notification channel and the test notification; the conformance suites of its `testing` entry. [README](src/android-app/README.md).
30
31
  - `@marinoscar/platform-api/user-data` and `@marinoscar/platform-api/user-data/testing`: the per-user data deletion with scopes, the admin factory reset and organization offboarding, built from the category, scope, keep-or-delete hint, factory-reset step and offboarding-precondition registries; the conformance suites of its `testing` entry. [README](src/user-data/README.md).
31
32
  - `@marinoscar/platform-api/manifest`: what every platform slice registers, in registration order (#866): the platform roles and every slice's permission sets in seed order (`PLATFORM_ROLES`, `PLATFORM_PERMISSION_SETS`, `PLATFORM_PERMISSIONS`), `registerPlatformPermissions()` and its pure twin `platformPermissionCatalog()` (both take the app's own roles and permissions and an optional `slices` filter), and the inventory of platform models with a foreign key to `User` (`PLATFORM_USER_OWNED_MODELS`, `registerPlatformUserOwnedModels()`). Data and plain functions, no Nest module. [README](src/manifest/README.md).
@@ -1 +1 @@
1
- {"version":3,"file":"ai-limits.service.d.ts","sourceRoot":"","sources":["../../../src/ai/runtime/ai-limits.service.ts"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;AAQzC;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB,2BAA2B,GAC3B,wBAAwB,GACxB,8BAA8B,GAC9B,4BAA4B,GAC5B,mCAAmC,GAEnC,uBAAuB,GACvB,2BAA2B,CAAC;AAEhC;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CACzB,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAK7E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CAMpB;AAwBD;;;;;GAKG;AACH,qBACa,eAAe;IAOC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAExD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGQ,MAAM,EAAE,QAAQ,EACzC,QAAQ,EAAE,eAAe,EACL,KAAK,CAAC,EAAE,aAAa;IAK5D;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C/C,OAAO,CAAC,aAAa;YAqBP,qBAAqB;IA4BnC,wFAAwF;IACxF,OAAO,CAAC,GAAG;IAmBX,8EAA8E;IAC9E,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,KAAK;YAUC,QAAQ;CAsDvB;AAyCD,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C"}
1
+ {"version":3,"file":"ai-limits.service.d.ts","sourceRoot":"","sources":["../../../src/ai/runtime/ai-limits.service.ts"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;AAQzC;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB,2BAA2B,GAC3B,wBAAwB,GACxB,8BAA8B,GAC9B,4BAA4B,GAC5B,mCAAmC,GAEnC,uBAAuB,GACvB,2BAA2B,CAAC;AAEhC;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CACzB,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAK7E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CAMpB;AAwBD;;;;;GAKG;AACH,qBACa,eAAe;IAOC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAExD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGQ,MAAM,EAAE,QAAQ,EACzC,QAAQ,EAAE,eAAe,EACL,KAAK,CAAC,EAAE,aAAa;IAK5D;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C/C,OAAO,CAAC,aAAa;YAqBP,qBAAqB;IA4BnC,wFAAwF;IACxF,OAAO,CAAC,GAAG;IAmBX,8EAA8E;IAC9E,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,KAAK;YAUC,QAAQ;CAwDvB;AAyCD,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -45,7 +45,12 @@
45
45
  //
46
46
  // - Per UTC day (`perUser.requestsPerDay`, `orgKey.requestsPerDayPerUser`,
47
47
  // `orgKey.tokensPerDayPerUser`): `ai_usage_events` counts / sums since UTC
48
- // midnight — the same day boundary the usage report uses. Tokens are
48
+ // midnight. THE DAY IS UTC ON PURPOSE, whatever zone the caller lives in:
49
+ // a per-user zone would let anyone move their own reset by changing their
50
+ // profile time zone (quota abuse), and the organization-wide budgets need
51
+ // one boundary for every member. The usage REPORT, by contrast, is cut in
52
+ // the caller's zone. The error carries the reset instant (`details.resetsAt`,
53
+ // ISO 8601) so a client renders it in the user's zone. Tokens are
49
54
  // `input_tokens + output_tokens` (reasoning tokens are part of output, and
50
55
  // cached input tokens part of input, in every provider's accounting).
51
56
  //
@@ -289,6 +294,8 @@ let AiLimitsService = class AiLimitsService {
289
294
  limit: window.name,
290
295
  max: window.max,
291
296
  window: 'day',
297
+ // The next UTC midnight as an instant: clients render it in the user's own zone.
298
+ resetsAt: new Date(utcMidnight(now) + DAY_MS).toISOString(),
292
299
  ...(window.orgOnly ? { keySource: 'org' } : {}),
293
300
  ...(window.wholeOrg ? { scope: 'org' } : {}),
294
301
  provider: call.provider,
@@ -1 +1 @@
1
- {"version":3,"file":"ai-limits.service.js","sourceRoot":"","sources":["../../../src/ai/runtime/ai-limits.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-limits.service.js","sourceRoot":"","sources":["../../../src/ai/runtime/ai-limits.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { type RequestWithHeaders } from '../../core/index';
2
+ import { SettingsResolver } from '../../settings/index';
1
3
  import { AiUsageService } from './ai-usage.service';
2
4
  import { AiUsageAdminQueryDto, AiUsageOrgQueryDto, type AiUsageReport } from './dto/ai-usage.dto';
3
5
  /**
@@ -8,8 +10,9 @@ import { AiUsageAdminQueryDto, AiUsageOrgQueryDto, type AiUsageReport } from './
8
10
  */
9
11
  export declare class AiUsageAdminController {
10
12
  private readonly usage;
11
- constructor(usage: AiUsageService);
12
- report(query: AiUsageAdminQueryDto): Promise<AiUsageReport>;
13
- orgReport(query: AiUsageOrgQueryDto, orgId: string): Promise<AiUsageReport>;
13
+ private readonly settings;
14
+ constructor(usage: AiUsageService, settings: SettingsResolver);
15
+ report(query: AiUsageAdminQueryDto, userId: string, request: RequestWithHeaders): Promise<AiUsageReport>;
16
+ orgReport(query: AiUsageOrgQueryDto, orgId: string, userId: string, request: RequestWithHeaders): Promise<AiUsageReport>;
14
17
  }
15
18
  //# sourceMappingURL=ai-usage-admin.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage-admin.controller.d.ts","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage-admin.controller.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,EAIlB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAc5B;;;;;GAKG;AACH,qBAEa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,cAAc;IAkC5C,MAAM,CAAU,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAwBpE,SAAS,CAAU,KAAK,EAAE,kBAAkB,EAAgB,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAGzG"}
1
+ {"version":3,"file":"ai-usage-admin.controller.d.ts","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage-admin.controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,EAIlB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAc5B;;;;;GAKG;AACH,qBAEa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,gBAAgB;IAoCvC,MAAM,CACD,KAAK,EAAE,oBAAoB,EACjB,MAAM,EAAE,MAAM,EAC1B,OAAO,EAAE,kBAAkB,GACjC,OAAO,CAAC,aAAa,CAAC;IA2BnB,SAAS,CACJ,KAAK,EAAE,kBAAkB,EACpB,KAAK,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EAC1B,OAAO,EAAE,kBAAkB,GACjC,OAAO,CAAC,aAAa,CAAC;CAK1B"}
@@ -18,7 +18,8 @@ const swagger_1 = require("@nestjs/swagger");
18
18
  const index_1 = require("../../identity/index");
19
19
  const ai_constants_1 = require("../ai.constants");
20
20
  const index_2 = require("../../core/index");
21
- const index_3 = require("../../core/index");
21
+ const index_3 = require("../../settings/index");
22
+ const index_4 = require("../../core/index");
22
23
  const ai_usage_service_1 = require("./ai-usage.service");
23
24
  const ai_usage_dto_1 = require("./dto/ai-usage.dto");
24
25
  // =============================================================================
@@ -40,14 +41,20 @@ const ai_usage_dto_1 = require("./dto/ai-usage.dto");
40
41
  */
41
42
  let AiUsageAdminController = class AiUsageAdminController {
42
43
  usage;
43
- constructor(usage) {
44
+ settings;
45
+ constructor(usage, settings) {
44
46
  this.usage = usage;
47
+ this.settings = settings;
45
48
  }
46
- async report(query) {
47
- return this.usage.report({ ...query, withCost: true });
49
+ async report(query, userId, request) {
50
+ const { tz, ...filters } = query;
51
+ const timeZone = tz ?? (await this.settings.resolveRequestTimeZone(request, userId));
52
+ return this.usage.report({ ...filters, timeZone, withCost: true });
48
53
  }
49
- async orgReport(query, orgId) {
50
- return this.usage.report({ ...query, orgId, withCost: true }, new Date(), orgId);
54
+ async orgReport(query, orgId, userId, request) {
55
+ const { tz, ...filters } = query;
56
+ const timeZone = tz ?? (await this.settings.resolveRequestTimeZone(request, userId));
57
+ return this.usage.report({ ...filters, orgId, timeZone, withCost: true }, new Date(), orgId);
51
58
  }
52
59
  };
53
60
  exports.AiUsageAdminController = AiUsageAdminController;
@@ -56,7 +63,7 @@ __decorate([
56
63
  (0, index_1.Auth)({ permissions: [ai_constants_1.PERMISSIONS.AI_CONFIG_READ] }),
57
64
  (0, swagger_1.ApiOperation)({
58
65
  summary: 'AI usage aggregates across all users (Admin only)',
59
- description: 'Sums the recorded provider round trips (`ai_usage_events`) over a window of UTC days, ' +
66
+ description: 'Sums the recorded provider round trips (`ai_usage_events`) over a window of calendar days in `timeZone` (query `tz`, default the caller\'s profile zone, then UTC), ' +
60
67
  `both inclusive — default the last ${ai_usage_dto_1.DEFAULT_AI_USAGE_RANGE_DAYS} days, at most ` +
61
68
  `${ai_usage_dto_1.MAX_AI_USAGE_RANGE_DAYS} — as \`totals\` plus one \`series\` entry per group.\n\n` +
62
69
  '`groupBy`: `day` (chronological, zero-filled), `user` (label is the email; events ' +
@@ -73,8 +80,9 @@ __decorate([
73
80
  'Reachable while AI is disabled. Refused with **400** (`details.reason: ' +
74
81
  '"AI_USAGE_RANGE_INVALID"`) for a reversed or over-long range.',
75
82
  }),
76
- (0, swagger_1.ApiQuery)({ name: 'from', required: false, type: String, description: 'First UTC day included, `YYYY-MM-DD`.' }),
77
- (0, swagger_1.ApiQuery)({ name: 'to', required: false, type: String, description: 'Last UTC day included, `YYYY-MM-DD`. Default today.' }),
83
+ (0, swagger_1.ApiQuery)({ name: 'from', required: false, type: String, description: 'First day included in `timeZone`, `YYYY-MM-DD`.' }),
84
+ (0, swagger_1.ApiQuery)({ name: 'to', required: false, type: String, description: 'Last day included in `timeZone`, `YYYY-MM-DD`. Default today there.' }),
85
+ (0, swagger_1.ApiQuery)({ name: 'tz', required: false, type: String, description: 'IANA time zone the days are cut in (`America/Costa_Rica`). Default: your profile zone, then the `X-Time-Zone` header, then `UTC`. Echoed as `timeZone`.' }),
78
86
  (0, swagger_1.ApiQuery)({ name: 'groupBy', required: false, enum: ai_usage_dto_1.AI_USAGE_ADMIN_GROUP_BY, description: 'Default `day`.' }),
79
87
  (0, swagger_1.ApiQuery)({ name: 'userId', required: false, type: String, format: 'uuid', description: "Only this user's events." }),
80
88
  (0, swagger_1.ApiQuery)({ name: 'provider', required: false, type: String, description: "Only this provider's events." }),
@@ -82,10 +90,12 @@ __decorate([
82
90
  (0, swagger_1.ApiQuery)({ name: 'orgId', required: false, type: String, format: 'uuid', description: "Only this organization's events." }),
83
91
  (0, swagger_1.ApiQuery)({ name: 'feature', required: false, type: String, description: 'Only events recorded for this registered AI feature.' }),
84
92
  (0, index_2.ApiDataResponse)(ai_usage_dto_1.AiUsageReportDto, { description: 'The usage report' }),
85
- (0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid query, or `AI_USAGE_RANGE_INVALID`', type: index_3.ErrorDto }),
93
+ (0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid query, or `AI_USAGE_RANGE_INVALID`', type: index_4.ErrorDto }),
86
94
  __param(0, (0, common_1.Query)()),
95
+ __param(1, (0, index_1.CurrentUser)('id')),
96
+ __param(2, (0, common_1.Req)()),
87
97
  __metadata("design:type", Function),
88
- __metadata("design:paramtypes", [ai_usage_dto_1.AiUsageAdminQueryDto]),
98
+ __metadata("design:paramtypes", [ai_usage_dto_1.AiUsageAdminQueryDto, String, Object]),
89
99
  __metadata("design:returntype", Promise)
90
100
  ], AiUsageAdminController.prototype, "report", null);
91
101
  __decorate([
@@ -98,25 +108,29 @@ __decorate([
98
108
  'row-level-security scope, so no other organization\'s rows are visible. Gated by ' +
99
109
  '`org_ai_config:read` in that organization. Reachable while AI is disabled.',
100
110
  }),
101
- (0, swagger_1.ApiQuery)({ name: 'from', required: false, type: String, description: 'First UTC day included, `YYYY-MM-DD`.' }),
102
- (0, swagger_1.ApiQuery)({ name: 'to', required: false, type: String, description: 'Last UTC day included, `YYYY-MM-DD`. Default today.' }),
111
+ (0, swagger_1.ApiQuery)({ name: 'from', required: false, type: String, description: 'First day included in `timeZone`, `YYYY-MM-DD`.' }),
112
+ (0, swagger_1.ApiQuery)({ name: 'to', required: false, type: String, description: 'Last day included in `timeZone`, `YYYY-MM-DD`. Default today there.' }),
113
+ (0, swagger_1.ApiQuery)({ name: 'tz', required: false, type: String, description: 'IANA time zone the days are cut in (`America/Costa_Rica`). Default: your profile zone, then the `X-Time-Zone` header, then `UTC`. Echoed as `timeZone`.' }),
103
114
  (0, swagger_1.ApiQuery)({ name: 'groupBy', required: false, enum: ai_usage_dto_1.AI_USAGE_ORG_GROUP_BY, description: 'Default `day`.' }),
104
115
  (0, swagger_1.ApiQuery)({ name: 'userId', required: false, type: String, format: 'uuid', description: "Only this member's events." }),
105
116
  (0, swagger_1.ApiQuery)({ name: 'provider', required: false, type: String, description: "Only this provider's events." }),
106
117
  (0, swagger_1.ApiQuery)({ name: 'model', required: false, type: String, description: "Only this provider model id's events." }),
107
118
  (0, swagger_1.ApiQuery)({ name: 'feature', required: false, type: String, description: 'Only events recorded for this registered AI feature.' }),
108
119
  (0, index_2.ApiDataResponse)(ai_usage_dto_1.AiUsageReportDto, { description: "The organization's usage report" }),
109
- (0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid query, or `AI_USAGE_RANGE_INVALID`', type: index_3.ErrorDto }),
110
- (0, swagger_1.ApiResponse)({ status: 403, description: 'Missing `org_ai_config:read` in the active organization', type: index_3.ErrorDto }),
120
+ (0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid query, or `AI_USAGE_RANGE_INVALID`', type: index_4.ErrorDto }),
121
+ (0, swagger_1.ApiResponse)({ status: 403, description: 'Missing `org_ai_config:read` in the active organization', type: index_4.ErrorDto }),
111
122
  __param(0, (0, common_1.Query)()),
112
123
  __param(1, (0, index_1.CurrentOrg)()),
124
+ __param(2, (0, index_1.CurrentUser)('id')),
125
+ __param(3, (0, common_1.Req)()),
113
126
  __metadata("design:type", Function),
114
- __metadata("design:paramtypes", [ai_usage_dto_1.AiUsageOrgQueryDto, String]),
127
+ __metadata("design:paramtypes", [ai_usage_dto_1.AiUsageOrgQueryDto, String, String, Object]),
115
128
  __metadata("design:returntype", Promise)
116
129
  ], AiUsageAdminController.prototype, "orgReport", null);
117
130
  exports.AiUsageAdminController = AiUsageAdminController = __decorate([
118
131
  (0, swagger_1.ApiTags)('AI Administration'),
119
132
  (0, common_1.Controller)('admin/ai'),
120
- __metadata("design:paramtypes", [ai_usage_service_1.AiUsageService])
133
+ __metadata("design:paramtypes", [ai_usage_service_1.AiUsageService,
134
+ index_3.SettingsResolver])
121
135
  ], AiUsageAdminController);
122
136
  //# sourceMappingURL=ai-usage-admin.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage-admin.controller.js","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage-admin.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-usage-admin.controller.js","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage-admin.controller.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { type RequestWithHeaders } from '../../core/index';
2
+ import { SettingsResolver } from '../../settings/index';
1
3
  import { AiUsageService } from './ai-usage.service';
2
4
  import { AiUsageMeQueryDto, type AiUsageReport } from './dto/ai-usage.dto';
3
5
  /**
@@ -8,7 +10,8 @@ import { AiUsageMeQueryDto, type AiUsageReport } from './dto/ai-usage.dto';
8
10
  */
9
11
  export declare class AiUsageController {
10
12
  private readonly usage;
11
- constructor(usage: AiUsageService);
12
- mine(query: AiUsageMeQueryDto, userId: string, orgId: string): Promise<AiUsageReport>;
13
+ private readonly settings;
14
+ constructor(usage: AiUsageService, settings: SettingsResolver);
15
+ mine(query: AiUsageMeQueryDto, userId: string, orgId: string, request: RequestWithHeaders): Promise<AiUsageReport>;
13
16
  }
14
17
  //# sourceMappingURL=ai-usage.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage.controller.d.ts","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.controller.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAEL,iBAAiB,EAIjB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAc5B;;;;;GAKG;AACH,qBAIa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,cAAc;IAqB5C,IAAI,CACC,KAAK,EAAE,iBAAiB,EACd,MAAM,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GAC1B,OAAO,CAAC,aAAa,CAAC;CAG1B"}
1
+ {"version":3,"file":"ai-usage.controller.d.ts","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAEL,iBAAiB,EAIjB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAc5B;;;;;GAKG;AACH,qBAIa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,gBAAgB;IAuBvC,IAAI,CACC,KAAK,EAAE,iBAAiB,EACd,MAAM,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GACjC,OAAO,CAAC,aAAa,CAAC;CAI1B"}
@@ -18,7 +18,8 @@ const swagger_1 = require("@nestjs/swagger");
18
18
  const index_1 = require("../../identity/index");
19
19
  const ai_constants_1 = require("../ai.constants");
20
20
  const index_2 = require("../../core/index");
21
- const index_3 = require("../../core/index");
21
+ const index_3 = require("../../settings/index");
22
+ const index_4 = require("../../core/index");
22
23
  const ai_enabled_guard_1 = require("../config/ai-enabled.guard");
23
24
  const ai_org_enabled_interceptor_1 = require("../config/ai-org-enabled.interceptor");
24
25
  const ai_usage_service_1 = require("./ai-usage.service");
@@ -42,11 +43,14 @@ const ai_usage_dto_1 = require("./dto/ai-usage.dto");
42
43
  */
43
44
  let AiUsageController = class AiUsageController {
44
45
  usage;
45
- constructor(usage) {
46
+ settings;
47
+ constructor(usage, settings) {
46
48
  this.usage = usage;
49
+ this.settings = settings;
47
50
  }
48
- async mine(query, userId, orgId) {
49
- return this.usage.report({ from: query.from, to: query.to, groupBy: query.groupBy, userId }, undefined, orgId);
51
+ async mine(query, userId, orgId, request) {
52
+ const timeZone = query.tz ?? (await this.settings.resolveRequestTimeZone(request, userId));
53
+ return this.usage.report({ from: query.from, to: query.to, groupBy: query.groupBy, userId, timeZone }, undefined, orgId);
50
54
  }
51
55
  };
52
56
  exports.AiUsageController = AiUsageController;
@@ -55,7 +59,7 @@ __decorate([
55
59
  (0, index_1.Auth)({ permissions: [ai_constants_1.PERMISSIONS.AI_USE] }),
56
60
  (0, swagger_1.ApiOperation)({
57
61
  summary: 'My AI usage',
58
- description: 'Your own recorded provider round trips, summed over a window of UTC days, both ' +
62
+ description: 'Your own recorded provider round trips, summed over a window of calendar days in `timeZone` (query `tz`, default your profile zone), both ' +
59
63
  `inclusive — default the last ${ai_usage_dto_1.DEFAULT_AI_USAGE_RANGE_DAYS} days, at most ` +
60
64
  `${ai_usage_dto_1.MAX_AI_USAGE_RANGE_DAYS}. Same shape as the admin report; \`groupBy\` is \`day\` ` +
61
65
  '(chronological, zero-filled) or `model` (key `<provider>:<modelId>`). The `orgKey*` ' +
@@ -63,17 +67,19 @@ __decorate([
63
67
  'Refused with **400** (`details.reason: "AI_USAGE_RANGE_INVALID"`) for a reversed or ' +
64
68
  'over-long range.',
65
69
  }),
66
- (0, swagger_1.ApiQuery)({ name: 'from', required: false, type: String, description: 'First UTC day included, `YYYY-MM-DD`.' }),
67
- (0, swagger_1.ApiQuery)({ name: 'to', required: false, type: String, description: 'Last UTC day included, `YYYY-MM-DD`. Default today.' }),
70
+ (0, swagger_1.ApiQuery)({ name: 'from', required: false, type: String, description: 'First day included in `timeZone`, `YYYY-MM-DD`.' }),
71
+ (0, swagger_1.ApiQuery)({ name: 'to', required: false, type: String, description: 'Last day included in `timeZone`, `YYYY-MM-DD`. Default today there.' }),
72
+ (0, swagger_1.ApiQuery)({ name: 'tz', required: false, type: String, description: 'IANA time zone the days are cut in (`America/Costa_Rica`). Default: your profile zone, then the `X-Time-Zone` header, then `UTC`. Echoed as `timeZone`.' }),
68
73
  (0, swagger_1.ApiQuery)({ name: 'groupBy', required: false, enum: ai_usage_dto_1.AI_USAGE_ME_GROUP_BY, description: 'Default `day`.' }),
69
74
  (0, index_2.ApiDataResponse)(ai_usage_dto_1.AiUsageReportDto, { description: 'Your usage report' }),
70
- (0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid query, or `AI_USAGE_RANGE_INVALID`', type: index_3.ErrorDto }),
71
- (0, swagger_1.ApiResponse)({ status: 403, description: '`AI_DISABLED`, or missing `ai:use`', type: index_3.ErrorDto }),
75
+ (0, swagger_1.ApiResponse)({ status: 400, description: 'Invalid query, or `AI_USAGE_RANGE_INVALID`', type: index_4.ErrorDto }),
76
+ (0, swagger_1.ApiResponse)({ status: 403, description: '`AI_DISABLED`, or missing `ai:use`', type: index_4.ErrorDto }),
72
77
  __param(0, (0, common_1.Query)()),
73
78
  __param(1, (0, index_1.CurrentUser)('id')),
74
79
  __param(2, (0, index_1.CurrentOrg)()),
80
+ __param(3, (0, common_1.Req)()),
75
81
  __metadata("design:type", Function),
76
- __metadata("design:paramtypes", [ai_usage_dto_1.AiUsageMeQueryDto, String, String]),
82
+ __metadata("design:paramtypes", [ai_usage_dto_1.AiUsageMeQueryDto, String, String, Object]),
77
83
  __metadata("design:returntype", Promise)
78
84
  ], AiUsageController.prototype, "mine", null);
79
85
  exports.AiUsageController = AiUsageController = __decorate([
@@ -81,6 +87,7 @@ exports.AiUsageController = AiUsageController = __decorate([
81
87
  (0, common_1.Controller)('ai/usage'),
82
88
  (0, common_1.UseGuards)(ai_enabled_guard_1.AiEnabledGuard),
83
89
  (0, common_1.UseInterceptors)(ai_org_enabled_interceptor_1.AiOrgEnabledInterceptor),
84
- __metadata("design:paramtypes", [ai_usage_service_1.AiUsageService])
90
+ __metadata("design:paramtypes", [ai_usage_service_1.AiUsageService,
91
+ index_3.SettingsResolver])
85
92
  ], AiUsageController);
86
93
  //# sourceMappingURL=ai-usage.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage.controller.js","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoF;AACpF,6CAA+E;AAE/E,gDAAqE;AACrE,kDAA8C;AAC9C,4CAAmD;AACnD,4CAA4C;AAC5C,iEAA4D;AAC5D,qFAA+E;AAC/E,yDAAoD;AACpD,qDAO4B;AAE5B,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAChF,EAAE;AACF,kFAAkF;AAClF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,QAAQ;AACR,gFAAgF;AAEhF;;;;;GAKG;AAKI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAA7B,YAA6B,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;IAAG,CAAC;IAqBhD,AAAN,KAAK,CAAC,IAAI,CACC,KAAwB,EACd,MAAc,EACnB,KAAa;QAE3B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjH,CAAC;CACF,CAAA;AA7BY,8CAAiB;AAsBtB;IAnBL,IAAA,YAAG,EAAC,IAAI,CAAC;IACT,IAAA,YAAI,EAAC,EAAE,WAAW,EAAE,CAAC,0BAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3C,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,aAAa;QACtB,WAAW,EACT,iFAAiF;YACjF,gCAAgC,0CAA2B,iBAAiB;YAC5E,GAAG,sCAAuB,2DAA2D;YACrF,sFAAsF;YACtF,iFAAiF;YACjF,sFAAsF;YACtF,kBAAkB;KACrB,CAAC;IACD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;IAC/G,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;IAC3H,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,mCAAoB,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IACzG,IAAA,uBAAe,EAAC,+BAAgB,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACvE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,4CAA4C,EAAE,IAAI,EAAE,gBAAQ,EAAE,CAAC;IACvG,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,gBAAQ,EAAE,CAAC;IAE7F,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;IACjB,WAAA,IAAA,kBAAU,GAAE,CAAA;;qCAFG,gCAAiB;;6CAKlC;4BA5BU,iBAAiB;IAJ7B,IAAA,iBAAO,EAAC,IAAI,CAAC;IACb,IAAA,mBAAU,EAAC,UAAU,CAAC;IACtB,IAAA,kBAAS,EAAC,iCAAc,CAAC;IACzB,IAAA,wBAAe,EAAC,oDAAuB,CAAC;qCAEH,iCAAc;GADvC,iBAAiB,CA6B7B"}
1
+ {"version":3,"file":"ai-usage.controller.js","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAyF;AACzF,6CAA+E;AAE/E,gDAAqE;AACrE,kDAA8C;AAC9C,4CAA4E;AAC5E,gDAAwD;AACxD,4CAA4C;AAC5C,iEAA4D;AAC5D,qFAA+E;AAC/E,yDAAoD;AACpD,qDAO4B;AAE5B,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAChF,EAAE;AACF,kFAAkF;AAClF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,QAAQ;AACR,gFAAgF;AAEhF;;;;;GAKG;AAKI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAET;IACA;IAFnB,YACmB,KAAqB,EACrB,QAA0B;QAD1B,UAAK,GAAL,KAAK,CAAgB;QACrB,aAAQ,GAAR,QAAQ,CAAkB;IAC1C,CAAC;IAsBE,AAAN,KAAK,CAAC,IAAI,CACC,KAAwB,EACd,MAAc,EACnB,KAAa,EACpB,OAA2B;QAElC,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3H,CAAC;CACF,CAAA;AAnCY,8CAAiB;AA0BtB;IApBL,IAAA,YAAG,EAAC,IAAI,CAAC;IACT,IAAA,YAAI,EAAC,EAAE,WAAW,EAAE,CAAC,0BAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3C,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,aAAa;QACtB,WAAW,EACT,4IAA4I;YAC5I,gCAAgC,0CAA2B,iBAAiB;YAC5E,GAAG,sCAAuB,2DAA2D;YACrF,sFAAsF;YACtF,iFAAiF;YACjF,sFAAsF;YACtF,kBAAkB;KACrB,CAAC;IACD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;IACzH,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,qEAAqE,EAAE,CAAC;IAC3I,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,yJAAyJ,EAAE,CAAC;IAC/N,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,mCAAoB,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IACzG,IAAA,uBAAe,EAAC,+BAAgB,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACvE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,4CAA4C,EAAE,IAAI,EAAE,gBAAQ,EAAE,CAAC;IACvG,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,gBAAQ,EAAE,CAAC;IAE7F,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;IACjB,WAAA,IAAA,kBAAU,GAAE,CAAA;IACZ,WAAA,IAAA,YAAG,GAAE,CAAA;;qCAHU,gCAAiB;;6CAOlC;4BAlCU,iBAAiB;IAJ7B,IAAA,iBAAO,EAAC,IAAI,CAAC;IACb,IAAA,mBAAU,EAAC,UAAU,CAAC;IACtB,IAAA,kBAAS,EAAC,iCAAc,CAAC;IACzB,IAAA,wBAAe,EAAC,oDAAuB,CAAC;qCAGb,iCAAc;QACX,wBAAgB;GAHlC,iBAAiB,CAmC7B"}
@@ -29,13 +29,19 @@ export interface AiUsageQuery {
29
29
  * user's own.
30
30
  */
31
31
  withCost?: boolean;
32
+ /**
33
+ * IANA zone whose calendar days the report is cut by; resolved by the
34
+ * controller (query `tz`, else the caller's profile zone). Default `UTC`.
35
+ */
36
+ timeZone?: string;
32
37
  }
33
- /** A resolved window: `from`/`to` inclusive UTC days, `start`/`end` the half-open instants. */
38
+ /** A resolved window: `from`/`to` inclusive calendar days in `timeZone`, `start`/`end` the half-open instants. */
34
39
  export interface AiUsageRange {
35
40
  from: string;
36
41
  to: string;
37
42
  start: Date;
38
43
  end: Date;
44
+ timeZone: string;
39
45
  }
40
46
  /**
41
47
  * Exported for the reference app's wiring and tests (route discovery, contract
@@ -57,6 +63,13 @@ export declare class AiUsageService {
57
63
  * every organization's through the system client.
58
64
  */
59
65
  report(query: AiUsageQuery, now?: Date, orgId?: string): Promise<AiUsageReport>;
66
+ /** Per-zone answers of `pg_timezone_names`, kept for the life of the process. */
67
+ private readonly knownZones;
68
+ /**
69
+ * The zone to bucket in: `requested` when Postgres knows it (checked once per
70
+ * zone against `pg_timezone_names`, then cached), else UTC. UTC is never queried.
71
+ */
72
+ private databaseKnowsZone;
60
73
  /** Non-day groups, labelled, most requests first (ties by key, so the order is stable). */
61
74
  private labelled;
62
75
  /**
@@ -80,12 +93,14 @@ export declare class AiUsageService {
80
93
  * The window a report covers. Pure, so the defaults and bounds are unit
81
94
  * testable without a database.
82
95
  *
83
- * Defaults: `to` = today (UTC); `from` = `to` minus 29 days (30 days
84
- * inclusive). Refused with 400 `AI_USAGE_RANGE_INVALID` when `from` is after
96
+ * Days are CALENDAR DAYS IN `timeZone`. Defaults: `to` = today there; `from` =
97
+ * `to` minus 29 days (30 days inclusive). `start` is local midnight of `from`
98
+ * and `end` local midnight after `to`, as instants, so a DST day is 23 or 25
99
+ * hours long. Refused with 400 `AI_USAGE_RANGE_INVALID` when `from` is after
85
100
  * `to` or the span exceeds `MAX_AI_USAGE_RANGE_DAYS` — refused, not clamped:
86
101
  * a caller who asked for a year and silently got a quarter would compare the
87
102
  * wrong numbers (the job-insights argument).
88
103
  */
89
- export declare function resolveAiUsageRange(from: string | undefined, to: string | undefined, now: Date): AiUsageRange;
104
+ export declare function resolveAiUsageRange(from: string | undefined, to: string | undefined, now: Date, timeZone?: string): AiUsageRange;
90
105
  export declare function emptyBucket(): AiUsageBucket;
91
106
  //# sourceMappingURL=ai-usage.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage.service.d.ts","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAA6C,KAAK,SAAS,EAAuB,MAAM,UAAU,CAAC;AAG1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAmC5B,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAe/D,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,wFAAwF;AACxF,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAS9C,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,cAAc,CAAC;IACxB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,+FAA+F;AAC/F,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;CACX;AA2DD;;;;;GAKG;AACH,qBACa,cAAc;IAIE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAKC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAGjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAZ3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAGd,MAAM,EAAE,QAAQ,EACzC,QAAQ,EAAE,kBAAkB,EAKF,MAAM,EAAE,cAAc,EAGhB,OAAO,CAAC,EAAE,SAAS,YAAA;IAGtE;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAE,IAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2FjG,2FAA2F;YAC7E,QAAQ;IA4CtB;;;;;;;;;;OAUG;YACW,KAAK;IAiFnB,oGAAoG;YACtF,UAAU;YAmBV,WAAW;YAaX,SAAS;CAcxB;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,YAAY,CAoB7G;AAwBD,wBAAgB,WAAW,IAAI,aAAa,CAa3C"}
1
+ {"version":3,"file":"ai-usage.service.d.ts","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAA6C,KAAK,SAAS,EAAuB,MAAM,UAAU,CAAC;AAG1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAiD5B,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAe/D,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,wFAAwF;AACxF,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAS9C,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,cAAc,CAAC;IACxB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kHAAkH;AAClH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2DD;;;;;GAKG;AACH,qBACa,cAAc;IAIE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAKC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAGjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAZ3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAGd,MAAM,EAAE,QAAQ,EACzC,QAAQ,EAAE,kBAAkB,EAKF,MAAM,EAAE,cAAc,EAGhB,OAAO,CAAC,EAAE,SAAS,YAAA;IAGtE;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAE,IAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA4FjG,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAEzD;;;OAGG;YACW,iBAAiB;IAe/B,2FAA2F;YAC7E,QAAQ;IA4CtB;;;;;;;;;;OAUG;YACW,KAAK;IA+EnB,oGAAoG;YACtF,UAAU;YAmBV,WAAW;YAaX,SAAS;CAcxB;AAgCD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,GAAG,EAAE,IAAI,EACT,QAAQ,GAAE,MAAiC,GAC1C,YAAY,CAqBd;AAqBD,wBAAgB,WAAW,IAAI,aAAa,CAa3C"}