@marinoscar/platform-api 0.1.0-next.17 → 0.1.0-next.19

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 (196) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/ai/runtime/ai-limits.service.d.ts.map +1 -1
  3. package/dist/ai/runtime/ai-limits.service.js +8 -1
  4. package/dist/ai/runtime/ai-limits.service.js.map +1 -1
  5. package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js +4 -4
  6. package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js.map +1 -1
  7. package/dist/ai/testing/conformance/ai-secret-egress.suite.js +1 -1
  8. package/dist/ai/testing/conformance/ai-secret-egress.suite.js.map +1 -1
  9. package/dist/ai/usage/ai-usage-admin.controller.d.ts +6 -3
  10. package/dist/ai/usage/ai-usage-admin.controller.d.ts.map +1 -1
  11. package/dist/ai/usage/ai-usage-admin.controller.js +31 -17
  12. package/dist/ai/usage/ai-usage-admin.controller.js.map +1 -1
  13. package/dist/ai/usage/ai-usage.controller.d.ts +5 -2
  14. package/dist/ai/usage/ai-usage.controller.d.ts.map +1 -1
  15. package/dist/ai/usage/ai-usage.controller.js +18 -11
  16. package/dist/ai/usage/ai-usage.controller.js.map +1 -1
  17. package/dist/ai/usage/ai-usage.service.d.ts +19 -4
  18. package/dist/ai/usage/ai-usage.service.d.ts.map +1 -1
  19. package/dist/ai/usage/ai-usage.service.js +84 -43
  20. package/dist/ai/usage/ai-usage.service.js.map +1 -1
  21. package/dist/ai/usage/dto/ai-usage.dto.d.ts +8 -0
  22. package/dist/ai/usage/dto/ai-usage.dto.d.ts.map +1 -1
  23. package/dist/ai/usage/dto/ai-usage.dto.js +16 -5
  24. package/dist/ai/usage/dto/ai-usage.dto.js.map +1 -1
  25. package/dist/core/index.d.ts +2 -0
  26. package/dist/core/index.d.ts.map +1 -1
  27. package/dist/core/index.js +7 -2
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/timezone/request-time-zone.d.ts +61 -0
  30. package/dist/core/timezone/request-time-zone.d.ts.map +1 -0
  31. package/dist/core/timezone/request-time-zone.js +71 -0
  32. package/dist/core/timezone/request-time-zone.js.map +1 -0
  33. package/dist/credentials/testing/with-credential-purposes.d.ts +2 -2
  34. package/dist/credentials/testing/with-credential-purposes.js +2 -2
  35. package/dist/doctor/egress/classify-host.d.ts +1 -1
  36. package/dist/doctor/egress/classify-host.js +1 -1
  37. package/dist/email/email-settings.controller.d.ts +5 -2
  38. package/dist/email/email-settings.controller.d.ts.map +1 -1
  39. package/dist/email/email-settings.controller.js +11 -5
  40. package/dist/email/email-settings.controller.js.map +1 -1
  41. package/dist/email/email-test-send.service.d.ts +11 -1
  42. package/dist/email/email-test-send.service.d.ts.map +1 -1
  43. package/dist/email/email-test-send.service.js +17 -3
  44. package/dist/email/email-test-send.service.js.map +1 -1
  45. package/dist/email/index.d.ts +2 -2
  46. package/dist/email/index.d.ts.map +1 -1
  47. package/dist/email/index.js +3 -1
  48. package/dist/email/index.js.map +1 -1
  49. package/dist/email/templates/backup-failed.email.d.ts.map +1 -1
  50. package/dist/email/templates/backup-failed.email.js +9 -5
  51. package/dist/email/templates/backup-failed.email.js.map +1 -1
  52. package/dist/email/templates/format-date.d.ts +39 -0
  53. package/dist/email/templates/format-date.d.ts.map +1 -0
  54. package/dist/email/templates/format-date.js +103 -0
  55. package/dist/email/templates/format-date.js.map +1 -0
  56. package/dist/email/templates/index.d.ts +2 -0
  57. package/dist/email/templates/index.d.ts.map +1 -1
  58. package/dist/email/templates/index.js +4 -1
  59. package/dist/email/templates/index.js.map +1 -1
  60. package/dist/email/templates/job-failed.email.d.ts +1 -1
  61. package/dist/email/templates/job-failed.email.d.ts.map +1 -1
  62. package/dist/email/templates/job-failed.email.js +6 -6
  63. package/dist/email/templates/job-failed.email.js.map +1 -1
  64. package/dist/email/templates/layout-theme.d.ts +1 -1
  65. package/dist/email/templates/node-offline.email.d.ts.map +1 -1
  66. package/dist/email/templates/node-offline.email.js +11 -7
  67. package/dist/email/templates/node-offline.email.js.map +1 -1
  68. package/dist/email/templates/render-context.d.ts +5 -0
  69. package/dist/email/templates/render-context.d.ts.map +1 -1
  70. package/dist/email/templates/render-context.js.map +1 -1
  71. package/dist/email/templates/restore-completed.email.d.ts.map +1 -1
  72. package/dist/email/templates/restore-completed.email.js +9 -5
  73. package/dist/email/templates/restore-completed.email.js.map +1 -1
  74. package/dist/email/templates/role-changed.email.d.ts +1 -1
  75. package/dist/email/templates/role-changed.email.d.ts.map +1 -1
  76. package/dist/email/templates/role-changed.email.js +6 -7
  77. package/dist/email/templates/role-changed.email.js.map +1 -1
  78. package/dist/email/templates/test-email.email.d.ts +1 -1
  79. package/dist/email/templates/test-email.email.d.ts.map +1 -1
  80. package/dist/email/templates/test-email.email.js +6 -11
  81. package/dist/email/templates/test-email.email.js.map +1 -1
  82. package/dist/exports/export-job.d.ts +1 -0
  83. package/dist/exports/export-job.d.ts.map +1 -1
  84. package/dist/exports/export-job.js +2 -0
  85. package/dist/exports/export-job.js.map +1 -1
  86. package/dist/exports/export.types.d.ts +8 -0
  87. package/dist/exports/export.types.d.ts.map +1 -1
  88. package/dist/exports/exports.controller.d.ts +4 -2
  89. package/dist/exports/exports.controller.d.ts.map +1 -1
  90. package/dist/exports/exports.controller.js +15 -6
  91. package/dist/exports/exports.controller.js.map +1 -1
  92. package/dist/exports/exports.service.d.ts +5 -0
  93. package/dist/exports/exports.service.d.ts.map +1 -1
  94. package/dist/exports/exports.service.js +3 -0
  95. package/dist/exports/exports.service.js.map +1 -1
  96. package/dist/exports/handlers/export-run.handler.d.ts.map +1 -1
  97. package/dist/exports/handlers/export-run.handler.js +4 -1
  98. package/dist/exports/handlers/export-run.handler.js.map +1 -1
  99. package/dist/exports/index.d.ts +1 -0
  100. package/dist/exports/index.d.ts.map +1 -1
  101. package/dist/exports/index.js +7 -2
  102. package/dist/exports/index.js.map +1 -1
  103. package/dist/exports/testing/conformance.d.ts.map +1 -1
  104. package/dist/exports/testing/conformance.js +1 -0
  105. package/dist/exports/testing/conformance.js.map +1 -1
  106. package/dist/host/http/cors-options.d.ts +5 -1
  107. package/dist/host/http/cors-options.d.ts.map +1 -1
  108. package/dist/host/http/cors-options.js.map +1 -1
  109. package/dist/identity/auth/dto/auth-user.dto.js +4 -4
  110. package/dist/identity/auth/dto/auth-user.dto.js.map +1 -1
  111. package/dist/identity/auth/sign-in-policy.d.ts +1 -1
  112. package/dist/identity/pat/pat.controller.d.ts +4 -3
  113. package/dist/identity/pat/pat.controller.d.ts.map +1 -1
  114. package/dist/identity/pat/pat.controller.js +19 -5
  115. package/dist/identity/pat/pat.controller.js.map +1 -1
  116. package/dist/identity/pat/pat.service.d.ts +21 -0
  117. package/dist/identity/pat/pat.service.d.ts.map +1 -1
  118. package/dist/identity/pat/pat.service.js +27 -10
  119. package/dist/identity/pat/pat.service.js.map +1 -1
  120. package/dist/jobs/provider-throttle.service.js +2 -2
  121. package/dist/jobs/provider-throttle.service.js.map +1 -1
  122. package/dist/manifest/permission-sets.d.ts +2 -2
  123. package/dist/manifest/permission-sets.js +4 -4
  124. package/dist/manifest/permission-sets.js.map +1 -1
  125. package/dist/notifications/channels/browser-notification.channel.js +1 -1
  126. package/dist/notifications/channels/browser-notification.channel.js.map +1 -1
  127. package/dist/notifications/channels/browser-templates.d.ts +12 -1
  128. package/dist/notifications/channels/browser-templates.d.ts.map +1 -1
  129. package/dist/notifications/channels/browser-templates.js +5 -4
  130. package/dist/notifications/channels/browser-templates.js.map +1 -1
  131. package/dist/notifications/channels/email-notification.channel.d.ts.map +1 -1
  132. package/dist/notifications/channels/email-notification.channel.js +3 -3
  133. package/dist/notifications/channels/email-notification.channel.js.map +1 -1
  134. package/dist/notifications/channels/push-notification.channel.js +1 -1
  135. package/dist/notifications/channels/push-notification.channel.js.map +1 -1
  136. package/dist/notifications/index.d.ts +1 -1
  137. package/dist/notifications/index.d.ts.map +1 -1
  138. package/dist/notifications/notification.types.d.ts +15 -0
  139. package/dist/notifications/notification.types.d.ts.map +1 -1
  140. package/dist/notifications/notification.types.js.map +1 -1
  141. package/dist/notifications/notifications.service.d.ts.map +1 -1
  142. package/dist/notifications/notifications.service.js +8 -0
  143. package/dist/notifications/notifications.service.js.map +1 -1
  144. package/dist/notifications/push-config.controller.d.ts +5 -2
  145. package/dist/notifications/push-config.controller.d.ts.map +1 -1
  146. package/dist/notifications/push-config.controller.js +11 -5
  147. package/dist/notifications/push-config.controller.js.map +1 -1
  148. package/dist/notifications/push-test.service.d.ts +1 -1
  149. package/dist/notifications/push-test.service.d.ts.map +1 -1
  150. package/dist/notifications/push-test.service.js +6 -4
  151. package/dist/notifications/push-test.service.js.map +1 -1
  152. package/dist/settings/index.d.ts +1 -1
  153. package/dist/settings/registry/assemble.d.ts +3 -3
  154. package/dist/settings/registry/assemble.js +4 -4
  155. package/dist/settings/registry/assemble.js.map +1 -1
  156. package/dist/settings/registry/compose.d.ts +3 -1
  157. package/dist/settings/registry/compose.d.ts.map +1 -1
  158. package/dist/settings/registry/compose.js.map +1 -1
  159. package/dist/settings/registry/core-user-fields.d.ts +4 -4
  160. package/dist/settings/registry/core-user-fields.d.ts.map +1 -1
  161. package/dist/settings/registry/core-user-fields.js +5 -4
  162. package/dist/settings/registry/core-user-fields.js.map +1 -1
  163. package/dist/settings/settings-resolver.d.ts +28 -1
  164. package/dist/settings/settings-resolver.d.ts.map +1 -1
  165. package/dist/settings/settings-resolver.js +41 -0
  166. package/dist/settings/settings-resolver.js.map +1 -1
  167. package/dist/settings/settings.module.d.ts.map +1 -1
  168. package/dist/settings/settings.module.js +9 -4
  169. package/dist/settings/settings.module.js.map +1 -1
  170. package/dist/settings/user-settings/user-settings.service.d.ts.map +1 -1
  171. package/dist/settings/user-settings/user-settings.service.js +14 -0
  172. package/dist/settings/user-settings/user-settings.service.js.map +1 -1
  173. package/dist/sharing/grants/grants.service.js +2 -2
  174. package/dist/sharing/grants/grants.service.js.map +1 -1
  175. package/dist/sharing/groups/group-invites.service.js +1 -1
  176. package/dist/sharing/groups/group-invites.service.js.map +1 -1
  177. package/dist/sharing/groups/sharing-effects.d.ts +2 -1
  178. package/dist/sharing/groups/sharing-effects.d.ts.map +1 -1
  179. package/dist/sharing/groups/sharing-effects.js +4 -4
  180. package/dist/sharing/groups/sharing-effects.js.map +1 -1
  181. package/dist/sharing/index.d.ts +1 -1
  182. package/dist/sharing/index.d.ts.map +1 -1
  183. package/dist/sharing/index.js.map +1 -1
  184. package/dist/sharing/notifications/group-invitation.templates.d.ts +23 -0
  185. package/dist/sharing/notifications/group-invitation.templates.d.ts.map +1 -1
  186. package/dist/sharing/notifications/group-invitation.templates.js +17 -2
  187. package/dist/sharing/notifications/group-invitation.templates.js.map +1 -1
  188. package/dist/sharing/notifications/shared-with-you.templates.d.ts +1 -1
  189. package/dist/sharing/notifications/shared-with-you.templates.d.ts.map +1 -1
  190. package/dist/sharing/notifications/shared-with-you.templates.js +3 -2
  191. package/dist/sharing/notifications/shared-with-you.templates.js.map +1 -1
  192. package/dist/sharing/ports.d.ts +15 -2
  193. package/dist/sharing/ports.d.ts.map +1 -1
  194. package/dist/sharing/ports.js.map +1 -1
  195. package/dist/telemetry/testing/stub-ports.d.ts +1 -1
  196. package/package.json +3 -3
@@ -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":"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"}
@@ -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"}
@@ -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"}