@oneuptime/common 9.2.16 → 9.2.18

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 (133) hide show
  1. package/Models/DatabaseModels/CodeRepository.ts +664 -0
  2. package/Models/DatabaseModels/Index.ts +8 -0
  3. package/Models/DatabaseModels/LlmLog.ts +818 -0
  4. package/Models/DatabaseModels/LlmProvider.ts +21 -0
  5. package/Models/DatabaseModels/Project.ts +206 -0
  6. package/Models/DatabaseModels/ServiceCatalogCodeRepository.ts +549 -0
  7. package/Server/API/AIBillingAPI.ts +126 -0
  8. package/Server/API/AlertAPI.ts +139 -0
  9. package/Server/API/GitHubAPI.ts +360 -0
  10. package/Server/API/IncidentAPI.ts +258 -0
  11. package/Server/API/ScheduledMaintenanceAPI.ts +164 -0
  12. package/Server/EnvironmentConfig.ts +44 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.ts +79 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.ts +75 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.ts +32 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.ts +69 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.ts +111 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.ts +39 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  20. package/Server/Services/AIBillingService.ts +247 -0
  21. package/Server/Services/AIService.ts +238 -0
  22. package/Server/Services/CodeRepositoryService.ts +10 -0
  23. package/Server/Services/IncidentService.ts +88 -0
  24. package/Server/Services/Index.ts +2 -0
  25. package/Server/Services/LlmLogService.ts +14 -0
  26. package/Server/Services/LlmProviderService.ts +58 -0
  27. package/Server/Services/ServiceCatalogCodeRepositoryService.ts +55 -0
  28. package/Server/Utils/AI/AlertAIContextBuilder.ts +264 -0
  29. package/Server/Utils/AI/IncidentAIContextBuilder.ts +710 -0
  30. package/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.ts +345 -0
  31. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +226 -0
  32. package/Server/Utils/LLM/LLMService.ts +276 -0
  33. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +166 -0
  34. package/Server/Utils/Workspace/Slack/Slack.ts +134 -0
  35. package/Server/Utils/Workspace/Workspace.ts +126 -0
  36. package/Tests/Types/Domain.test.ts +24 -3
  37. package/Types/CodeRepository/CodeRepositoryType.ts +1 -1
  38. package/Types/Domain.ts +21 -24
  39. package/Types/LlmLogStatus.ts +7 -0
  40. package/Types/Permission.ts +87 -0
  41. package/Types/ServiceCatalog/CodeRepositoryImprovementAction.ts +9 -0
  42. package/UI/Components/AI/AILoader.tsx +95 -0
  43. package/UI/Components/AI/GenerateFromAIModal.tsx +432 -0
  44. package/UI/Components/Modal/Modal.tsx +6 -1
  45. package/build/dist/Models/DatabaseModels/CodeRepository.js +689 -0
  46. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -0
  47. package/build/dist/Models/DatabaseModels/Index.js +7 -0
  48. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  49. package/build/dist/Models/DatabaseModels/LlmLog.js +856 -0
  50. package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -0
  51. package/build/dist/Models/DatabaseModels/LlmProvider.js +22 -0
  52. package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -1
  53. package/build/dist/Models/DatabaseModels/Project.js +220 -0
  54. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  55. package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js +565 -0
  56. package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js.map +1 -0
  57. package/build/dist/Server/API/AIBillingAPI.js +58 -0
  58. package/build/dist/Server/API/AIBillingAPI.js.map +1 -0
  59. package/build/dist/Server/API/AlertAPI.js +94 -0
  60. package/build/dist/Server/API/AlertAPI.js.map +1 -0
  61. package/build/dist/Server/API/GitHubAPI.js +207 -0
  62. package/build/dist/Server/API/GitHubAPI.js.map +1 -0
  63. package/build/dist/Server/API/IncidentAPI.js +171 -1
  64. package/build/dist/Server/API/IncidentAPI.js.map +1 -1
  65. package/build/dist/Server/API/ScheduledMaintenanceAPI.js +103 -0
  66. package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -0
  67. package/build/dist/Server/EnvironmentConfig.js +31 -0
  68. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  69. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.js +34 -0
  70. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.js.map +1 -0
  71. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.js +32 -0
  72. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.js.map +1 -0
  73. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.js +38 -0
  74. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.js.map +1 -0
  75. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.js +30 -0
  76. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.js.map +1 -0
  77. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.js +44 -0
  78. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.js.map +1 -0
  79. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.js +22 -0
  80. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.js.map +1 -0
  81. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  82. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  83. package/build/dist/Server/Services/AIBillingService.js +187 -0
  84. package/build/dist/Server/Services/AIBillingService.js.map +1 -0
  85. package/build/dist/Server/Services/AIService.js +184 -0
  86. package/build/dist/Server/Services/AIService.js.map +1 -0
  87. package/build/dist/Server/Services/CodeRepositoryService.js +9 -0
  88. package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -0
  89. package/build/dist/Server/Services/IncidentService.js +60 -0
  90. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  91. package/build/dist/Server/Services/Index.js +2 -0
  92. package/build/dist/Server/Services/Index.js.map +1 -1
  93. package/build/dist/Server/Services/LlmLogService.js +13 -0
  94. package/build/dist/Server/Services/LlmLogService.js.map +1 -0
  95. package/build/dist/Server/Services/LlmProviderService.js +65 -0
  96. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  97. package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js +54 -0
  98. package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js.map +1 -0
  99. package/build/dist/Server/Utils/AI/AlertAIContextBuilder.js +238 -0
  100. package/build/dist/Server/Utils/AI/AlertAIContextBuilder.js.map +1 -0
  101. package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js +597 -0
  102. package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js.map +1 -0
  103. package/build/dist/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.js +311 -0
  104. package/build/dist/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.js.map +1 -0
  105. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +163 -0
  106. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  107. package/build/dist/Server/Utils/LLM/LLMService.js +225 -0
  108. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -0
  109. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +110 -0
  110. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  111. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +89 -0
  112. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  113. package/build/dist/Server/Utils/Workspace/Workspace.js +80 -0
  114. package/build/dist/Server/Utils/Workspace/Workspace.js.map +1 -1
  115. package/build/dist/Tests/Types/Domain.test.js +19 -3
  116. package/build/dist/Tests/Types/Domain.test.js.map +1 -1
  117. package/build/dist/Types/CodeRepository/CodeRepositoryType.js +1 -1
  118. package/build/dist/Types/CodeRepository/CodeRepositoryType.js.map +1 -1
  119. package/build/dist/Types/Domain.js +18 -16
  120. package/build/dist/Types/Domain.js.map +1 -1
  121. package/build/dist/Types/LlmLogStatus.js +8 -0
  122. package/build/dist/Types/LlmLogStatus.js.map +1 -0
  123. package/build/dist/Types/Permission.js +74 -0
  124. package/build/dist/Types/Permission.js.map +1 -1
  125. package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js +10 -0
  126. package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js.map +1 -0
  127. package/build/dist/UI/Components/AI/AILoader.js +64 -0
  128. package/build/dist/UI/Components/AI/AILoader.js.map +1 -0
  129. package/build/dist/UI/Components/AI/GenerateFromAIModal.js +320 -0
  130. package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -0
  131. package/build/dist/UI/Components/Modal/Modal.js +6 -1
  132. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  133. package/package.json +1 -1
@@ -0,0 +1,856 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import Project from "./Project";
11
+ import Incident from "./Incident";
12
+ import Alert from "./Alert";
13
+ import ScheduledMaintenance from "./ScheduledMaintenance";
14
+ import User from "./User";
15
+ import LlmProvider from "./LlmProvider";
16
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
17
+ import Route from "../../Types/API/Route";
18
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
19
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
20
+ import ColumnLength from "../../Types/Database/ColumnLength";
21
+ import ColumnType from "../../Types/Database/ColumnType";
22
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
23
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
24
+ import TableColumn from "../../Types/Database/TableColumn";
25
+ import TableColumnType from "../../Types/Database/TableColumnType";
26
+ import TableMetadata from "../../Types/Database/TableMetadata";
27
+ import TenantColumn from "../../Types/Database/TenantColumn";
28
+ import IconProp from "../../Types/Icon/IconProp";
29
+ import ObjectID from "../../Types/ObjectID";
30
+ import Permission from "../../Types/Permission";
31
+ import LlmLogStatus from "../../Types/LlmLogStatus";
32
+ import LlmType from "../../Types/LLM/LlmType";
33
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
34
+ let LlmLog = class LlmLog extends BaseModel {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.project = undefined;
38
+ this.projectId = undefined;
39
+ // LLM Provider Relation
40
+ this.llmProvider = undefined;
41
+ this.llmProviderId = undefined;
42
+ // Denormalized provider info for historical reference
43
+ this.llmProviderName = undefined;
44
+ this.llmType = undefined;
45
+ this.modelName = undefined;
46
+ this.isGlobalProvider = undefined;
47
+ // Token usage
48
+ this.totalTokens = undefined;
49
+ // Cost tracking
50
+ this.costInUSDCents = undefined;
51
+ this.wasBilled = undefined;
52
+ // Status
53
+ this.status = undefined;
54
+ this.statusMessage = undefined;
55
+ // Feature identification
56
+ this.feature = undefined;
57
+ this.requestPrompt = undefined;
58
+ this.responsePreview = undefined;
59
+ // Related resources
60
+ this.incident = undefined;
61
+ this.incidentId = undefined;
62
+ this.alert = undefined;
63
+ this.alertId = undefined;
64
+ this.scheduledMaintenance = undefined;
65
+ this.scheduledMaintenanceId = undefined;
66
+ // User who triggered the request
67
+ this.user = undefined;
68
+ this.userId = undefined;
69
+ // Timestamps and duration
70
+ this.requestStartedAt = undefined;
71
+ this.requestCompletedAt = undefined;
72
+ this.durationMs = undefined;
73
+ // Deleted by user
74
+ this.deletedByUser = undefined;
75
+ this.deletedByUserId = undefined;
76
+ }
77
+ };
78
+ __decorate([
79
+ ColumnAccessControl({
80
+ create: [],
81
+ read: [
82
+ Permission.ProjectOwner,
83
+ Permission.ProjectAdmin,
84
+ Permission.ProjectMember,
85
+ Permission.ReadLlmLog,
86
+ ],
87
+ update: [],
88
+ }),
89
+ TableColumn({
90
+ manyToOneRelationColumn: "projectId",
91
+ type: TableColumnType.Entity,
92
+ modelType: Project,
93
+ title: "Project",
94
+ description: "Relation to Project Resource in which this object belongs",
95
+ }),
96
+ ManyToOne(() => {
97
+ return Project;
98
+ }, {
99
+ eager: false,
100
+ nullable: true,
101
+ onDelete: "CASCADE",
102
+ orphanedRowAction: "nullify",
103
+ }),
104
+ JoinColumn({ name: "projectId" }),
105
+ __metadata("design:type", Project)
106
+ ], LlmLog.prototype, "project", void 0);
107
+ __decorate([
108
+ ColumnAccessControl({
109
+ create: [],
110
+ read: [
111
+ Permission.ProjectOwner,
112
+ Permission.ProjectAdmin,
113
+ Permission.ProjectMember,
114
+ Permission.ReadLlmLog,
115
+ ],
116
+ update: [],
117
+ }),
118
+ Index(),
119
+ TableColumn({
120
+ type: TableColumnType.ObjectID,
121
+ required: true,
122
+ canReadOnRelationQuery: true,
123
+ title: "Project ID",
124
+ description: "ID of your OneUptime Project in which this object belongs",
125
+ }),
126
+ Column({
127
+ type: ColumnType.ObjectID,
128
+ nullable: false,
129
+ transformer: ObjectID.getDatabaseTransformer(),
130
+ }),
131
+ __metadata("design:type", ObjectID)
132
+ ], LlmLog.prototype, "projectId", void 0);
133
+ __decorate([
134
+ ColumnAccessControl({
135
+ create: [],
136
+ read: [
137
+ Permission.ProjectOwner,
138
+ Permission.ProjectAdmin,
139
+ Permission.ProjectMember,
140
+ Permission.ReadLlmLog,
141
+ ],
142
+ update: [],
143
+ }),
144
+ TableColumn({
145
+ manyToOneRelationColumn: "llmProviderId",
146
+ type: TableColumnType.Entity,
147
+ modelType: LlmProvider,
148
+ title: "LLM Provider",
149
+ description: "LLM Provider used for this API call",
150
+ }),
151
+ ManyToOne(() => {
152
+ return LlmProvider;
153
+ }, {
154
+ eager: false,
155
+ nullable: true,
156
+ onDelete: "SET NULL",
157
+ orphanedRowAction: "nullify",
158
+ }),
159
+ JoinColumn({ name: "llmProviderId" }),
160
+ __metadata("design:type", LlmProvider)
161
+ ], LlmLog.prototype, "llmProvider", void 0);
162
+ __decorate([
163
+ ColumnAccessControl({
164
+ create: [],
165
+ read: [
166
+ Permission.ProjectOwner,
167
+ Permission.ProjectAdmin,
168
+ Permission.ProjectMember,
169
+ Permission.ReadLlmLog,
170
+ ],
171
+ update: [],
172
+ }),
173
+ Index(),
174
+ TableColumn({
175
+ type: TableColumnType.ObjectID,
176
+ required: false,
177
+ canReadOnRelationQuery: true,
178
+ title: "LLM Provider ID",
179
+ description: "ID of LLM Provider used for this API call",
180
+ }),
181
+ Column({
182
+ type: ColumnType.ObjectID,
183
+ nullable: true,
184
+ transformer: ObjectID.getDatabaseTransformer(),
185
+ }),
186
+ __metadata("design:type", ObjectID)
187
+ ], LlmLog.prototype, "llmProviderId", void 0);
188
+ __decorate([
189
+ ColumnAccessControl({
190
+ create: [],
191
+ read: [
192
+ Permission.ProjectOwner,
193
+ Permission.ProjectAdmin,
194
+ Permission.ProjectMember,
195
+ Permission.ReadLlmLog,
196
+ ],
197
+ update: [],
198
+ }),
199
+ TableColumn({
200
+ required: false,
201
+ type: TableColumnType.ShortText,
202
+ title: "LLM Provider Name",
203
+ description: "Name of the LLM Provider at time of call",
204
+ canReadOnRelationQuery: false,
205
+ }),
206
+ Column({
207
+ nullable: true,
208
+ type: ColumnType.ShortText,
209
+ length: ColumnLength.ShortText,
210
+ }),
211
+ __metadata("design:type", String)
212
+ ], LlmLog.prototype, "llmProviderName", void 0);
213
+ __decorate([
214
+ ColumnAccessControl({
215
+ create: [],
216
+ read: [
217
+ Permission.ProjectOwner,
218
+ Permission.ProjectAdmin,
219
+ Permission.ProjectMember,
220
+ Permission.ReadLlmLog,
221
+ ],
222
+ update: [],
223
+ }),
224
+ TableColumn({
225
+ required: false,
226
+ type: TableColumnType.ShortText,
227
+ title: "LLM Type",
228
+ description: "Type of LLM (OpenAI, Anthropic, Ollama)",
229
+ canReadOnRelationQuery: false,
230
+ }),
231
+ Column({
232
+ nullable: true,
233
+ type: ColumnType.ShortText,
234
+ length: ColumnLength.ShortText,
235
+ }),
236
+ __metadata("design:type", String)
237
+ ], LlmLog.prototype, "llmType", void 0);
238
+ __decorate([
239
+ ColumnAccessControl({
240
+ create: [],
241
+ read: [
242
+ Permission.ProjectOwner,
243
+ Permission.ProjectAdmin,
244
+ Permission.ProjectMember,
245
+ Permission.ReadLlmLog,
246
+ ],
247
+ update: [],
248
+ }),
249
+ TableColumn({
250
+ required: false,
251
+ type: TableColumnType.ShortText,
252
+ title: "Model Name",
253
+ description: "Name of the model used (e.g., gpt-4, claude-3-opus)",
254
+ canReadOnRelationQuery: false,
255
+ }),
256
+ Column({
257
+ nullable: true,
258
+ type: ColumnType.ShortText,
259
+ length: ColumnLength.ShortText,
260
+ }),
261
+ __metadata("design:type", String)
262
+ ], LlmLog.prototype, "modelName", void 0);
263
+ __decorate([
264
+ ColumnAccessControl({
265
+ create: [],
266
+ read: [
267
+ Permission.ProjectOwner,
268
+ Permission.ProjectAdmin,
269
+ Permission.ProjectMember,
270
+ Permission.ReadLlmLog,
271
+ ],
272
+ update: [],
273
+ }),
274
+ TableColumn({
275
+ required: true,
276
+ type: TableColumnType.Boolean,
277
+ title: "Is Global Provider",
278
+ description: "Was a global LLM provider used for this call?",
279
+ canReadOnRelationQuery: false,
280
+ isDefaultValueColumn: true,
281
+ defaultValue: false,
282
+ }),
283
+ Column({
284
+ nullable: false,
285
+ type: ColumnType.Boolean,
286
+ default: false,
287
+ }),
288
+ __metadata("design:type", Boolean)
289
+ ], LlmLog.prototype, "isGlobalProvider", void 0);
290
+ __decorate([
291
+ ColumnAccessControl({
292
+ create: [],
293
+ read: [
294
+ Permission.ProjectOwner,
295
+ Permission.ProjectAdmin,
296
+ Permission.ProjectMember,
297
+ Permission.ReadLlmLog,
298
+ ],
299
+ update: [],
300
+ }),
301
+ TableColumn({
302
+ required: true,
303
+ type: TableColumnType.Number,
304
+ title: "Tokens Used",
305
+ description: "Total tokens used (input + output)",
306
+ canReadOnRelationQuery: false,
307
+ isDefaultValueColumn: true,
308
+ defaultValue: 0,
309
+ }),
310
+ Column({
311
+ nullable: false,
312
+ default: 0,
313
+ type: ColumnType.Number,
314
+ }),
315
+ __metadata("design:type", Number)
316
+ ], LlmLog.prototype, "totalTokens", void 0);
317
+ __decorate([
318
+ ColumnAccessControl({
319
+ create: [],
320
+ read: [
321
+ Permission.ProjectOwner,
322
+ Permission.ProjectAdmin,
323
+ Permission.ProjectMember,
324
+ Permission.ReadLlmLog,
325
+ ],
326
+ update: [],
327
+ }),
328
+ TableColumn({
329
+ required: true,
330
+ type: TableColumnType.Number,
331
+ title: "Cost (USD Cents)",
332
+ description: "Total cost in USD cents",
333
+ canReadOnRelationQuery: false,
334
+ isDefaultValueColumn: true,
335
+ defaultValue: 0,
336
+ }),
337
+ Column({
338
+ nullable: false,
339
+ default: 0,
340
+ type: ColumnType.Number,
341
+ }),
342
+ __metadata("design:type", Number)
343
+ ], LlmLog.prototype, "costInUSDCents", void 0);
344
+ __decorate([
345
+ ColumnAccessControl({
346
+ create: [],
347
+ read: [
348
+ Permission.ProjectOwner,
349
+ Permission.ProjectAdmin,
350
+ Permission.ProjectMember,
351
+ Permission.ReadLlmLog,
352
+ ],
353
+ update: [],
354
+ }),
355
+ TableColumn({
356
+ required: true,
357
+ type: TableColumnType.Boolean,
358
+ title: "Was Billed",
359
+ description: "Was the project charged for this API call?",
360
+ canReadOnRelationQuery: false,
361
+ isDefaultValueColumn: true,
362
+ defaultValue: false,
363
+ }),
364
+ Column({
365
+ nullable: false,
366
+ type: ColumnType.Boolean,
367
+ default: false,
368
+ }),
369
+ __metadata("design:type", Boolean)
370
+ ], LlmLog.prototype, "wasBilled", void 0);
371
+ __decorate([
372
+ ColumnAccessControl({
373
+ create: [],
374
+ read: [
375
+ Permission.ProjectOwner,
376
+ Permission.ProjectAdmin,
377
+ Permission.ProjectMember,
378
+ Permission.ReadLlmLog,
379
+ ],
380
+ update: [],
381
+ }),
382
+ TableColumn({
383
+ required: true,
384
+ type: TableColumnType.ShortText,
385
+ title: "Status",
386
+ description: "Status of the LLM API call",
387
+ canReadOnRelationQuery: false,
388
+ }),
389
+ Column({
390
+ nullable: false,
391
+ type: ColumnType.ShortText,
392
+ length: ColumnLength.ShortText,
393
+ }),
394
+ __metadata("design:type", String)
395
+ ], LlmLog.prototype, "status", void 0);
396
+ __decorate([
397
+ ColumnAccessControl({
398
+ create: [],
399
+ read: [
400
+ Permission.ProjectOwner,
401
+ Permission.ProjectAdmin,
402
+ Permission.ProjectMember,
403
+ Permission.ReadLlmLog,
404
+ ],
405
+ update: [],
406
+ }),
407
+ TableColumn({
408
+ required: false,
409
+ type: TableColumnType.LongText,
410
+ title: "Status Message",
411
+ description: "Status Message (error details if failed)",
412
+ canReadOnRelationQuery: false,
413
+ }),
414
+ Column({
415
+ nullable: true,
416
+ type: ColumnType.LongText,
417
+ length: ColumnLength.LongText,
418
+ }),
419
+ __metadata("design:type", String)
420
+ ], LlmLog.prototype, "statusMessage", void 0);
421
+ __decorate([
422
+ ColumnAccessControl({
423
+ create: [],
424
+ read: [
425
+ Permission.ProjectOwner,
426
+ Permission.ProjectAdmin,
427
+ Permission.ProjectMember,
428
+ Permission.ReadLlmLog,
429
+ ],
430
+ update: [],
431
+ }),
432
+ TableColumn({
433
+ required: false,
434
+ type: TableColumnType.ShortText,
435
+ title: "Feature",
436
+ description: "The feature that triggered this API call (e.g., IncidentPostmortem)",
437
+ canReadOnRelationQuery: false,
438
+ }),
439
+ Column({
440
+ nullable: true,
441
+ type: ColumnType.ShortText,
442
+ length: ColumnLength.ShortText,
443
+ }),
444
+ __metadata("design:type", String)
445
+ ], LlmLog.prototype, "feature", void 0);
446
+ __decorate([
447
+ ColumnAccessControl({
448
+ create: [],
449
+ read: [
450
+ Permission.ProjectOwner,
451
+ Permission.ProjectAdmin,
452
+ Permission.ProjectMember,
453
+ Permission.ReadLlmLog,
454
+ ],
455
+ update: [],
456
+ }),
457
+ TableColumn({
458
+ required: false,
459
+ type: TableColumnType.VeryLongText,
460
+ title: "Request Prompt",
461
+ description: "The prompt sent to the LLM (truncated)",
462
+ canReadOnRelationQuery: false,
463
+ }),
464
+ Column({
465
+ nullable: true,
466
+ type: ColumnType.VeryLongText,
467
+ }),
468
+ __metadata("design:type", String)
469
+ ], LlmLog.prototype, "requestPrompt", void 0);
470
+ __decorate([
471
+ ColumnAccessControl({
472
+ create: [],
473
+ read: [
474
+ Permission.ProjectOwner,
475
+ Permission.ProjectAdmin,
476
+ Permission.ProjectMember,
477
+ Permission.ReadLlmLog,
478
+ ],
479
+ update: [],
480
+ }),
481
+ TableColumn({
482
+ required: false,
483
+ type: TableColumnType.VeryLongText,
484
+ title: "Response Preview",
485
+ description: "Preview of the LLM response (truncated)",
486
+ canReadOnRelationQuery: false,
487
+ }),
488
+ Column({
489
+ nullable: true,
490
+ type: ColumnType.VeryLongText,
491
+ }),
492
+ __metadata("design:type", String)
493
+ ], LlmLog.prototype, "responsePreview", void 0);
494
+ __decorate([
495
+ ColumnAccessControl({
496
+ create: [],
497
+ read: [
498
+ Permission.ProjectOwner,
499
+ Permission.ProjectAdmin,
500
+ Permission.ProjectMember,
501
+ Permission.ReadLlmLog,
502
+ ],
503
+ update: [],
504
+ }),
505
+ TableColumn({
506
+ manyToOneRelationColumn: "incidentId",
507
+ type: TableColumnType.Entity,
508
+ modelType: Incident,
509
+ title: "Incident",
510
+ description: "Incident associated with this LLM call (if any)",
511
+ }),
512
+ ManyToOne(() => {
513
+ return Incident;
514
+ }, {
515
+ eager: false,
516
+ nullable: true,
517
+ onDelete: "CASCADE",
518
+ orphanedRowAction: "nullify",
519
+ }),
520
+ JoinColumn({ name: "incidentId" }),
521
+ __metadata("design:type", Incident)
522
+ ], LlmLog.prototype, "incident", void 0);
523
+ __decorate([
524
+ ColumnAccessControl({
525
+ create: [],
526
+ read: [
527
+ Permission.ProjectOwner,
528
+ Permission.ProjectAdmin,
529
+ Permission.ProjectMember,
530
+ Permission.ReadLlmLog,
531
+ ],
532
+ update: [],
533
+ }),
534
+ Index(),
535
+ TableColumn({
536
+ type: TableColumnType.ObjectID,
537
+ required: false,
538
+ canReadOnRelationQuery: true,
539
+ title: "Incident ID",
540
+ description: "ID of Incident associated with this LLM call (if any)",
541
+ }),
542
+ Column({
543
+ type: ColumnType.ObjectID,
544
+ nullable: true,
545
+ transformer: ObjectID.getDatabaseTransformer(),
546
+ }),
547
+ __metadata("design:type", ObjectID)
548
+ ], LlmLog.prototype, "incidentId", void 0);
549
+ __decorate([
550
+ ColumnAccessControl({
551
+ create: [],
552
+ read: [
553
+ Permission.ProjectOwner,
554
+ Permission.ProjectAdmin,
555
+ Permission.ProjectMember,
556
+ Permission.ReadLlmLog,
557
+ ],
558
+ update: [],
559
+ }),
560
+ TableColumn({
561
+ manyToOneRelationColumn: "alertId",
562
+ type: TableColumnType.Entity,
563
+ modelType: Alert,
564
+ title: "Alert",
565
+ description: "Alert associated with this LLM call (if any)",
566
+ }),
567
+ ManyToOne(() => {
568
+ return Alert;
569
+ }, {
570
+ eager: false,
571
+ nullable: true,
572
+ onDelete: "CASCADE",
573
+ orphanedRowAction: "nullify",
574
+ }),
575
+ JoinColumn({ name: "alertId" }),
576
+ __metadata("design:type", Alert)
577
+ ], LlmLog.prototype, "alert", void 0);
578
+ __decorate([
579
+ ColumnAccessControl({
580
+ create: [],
581
+ read: [
582
+ Permission.ProjectOwner,
583
+ Permission.ProjectAdmin,
584
+ Permission.ProjectMember,
585
+ Permission.ReadLlmLog,
586
+ ],
587
+ update: [],
588
+ }),
589
+ Index(),
590
+ TableColumn({
591
+ type: TableColumnType.ObjectID,
592
+ required: false,
593
+ canReadOnRelationQuery: true,
594
+ title: "Alert ID",
595
+ description: "ID of Alert associated with this LLM call (if any)",
596
+ }),
597
+ Column({
598
+ type: ColumnType.ObjectID,
599
+ nullable: true,
600
+ transformer: ObjectID.getDatabaseTransformer(),
601
+ }),
602
+ __metadata("design:type", ObjectID)
603
+ ], LlmLog.prototype, "alertId", void 0);
604
+ __decorate([
605
+ ColumnAccessControl({
606
+ create: [],
607
+ read: [
608
+ Permission.ProjectOwner,
609
+ Permission.ProjectAdmin,
610
+ Permission.ProjectMember,
611
+ Permission.ReadLlmLog,
612
+ ],
613
+ update: [],
614
+ }),
615
+ TableColumn({
616
+ manyToOneRelationColumn: "scheduledMaintenanceId",
617
+ type: TableColumnType.Entity,
618
+ modelType: ScheduledMaintenance,
619
+ title: "Scheduled Maintenance",
620
+ description: "Scheduled Maintenance associated with this LLM call (if any)",
621
+ }),
622
+ ManyToOne(() => {
623
+ return ScheduledMaintenance;
624
+ }, {
625
+ eager: false,
626
+ nullable: true,
627
+ onDelete: "CASCADE",
628
+ orphanedRowAction: "nullify",
629
+ }),
630
+ JoinColumn({ name: "scheduledMaintenanceId" }),
631
+ __metadata("design:type", ScheduledMaintenance)
632
+ ], LlmLog.prototype, "scheduledMaintenance", void 0);
633
+ __decorate([
634
+ ColumnAccessControl({
635
+ create: [],
636
+ read: [
637
+ Permission.ProjectOwner,
638
+ Permission.ProjectAdmin,
639
+ Permission.ProjectMember,
640
+ Permission.ReadLlmLog,
641
+ ],
642
+ update: [],
643
+ }),
644
+ Index(),
645
+ TableColumn({
646
+ type: TableColumnType.ObjectID,
647
+ required: false,
648
+ canReadOnRelationQuery: true,
649
+ title: "Scheduled Maintenance ID",
650
+ description: "ID of Scheduled Maintenance associated with this LLM call (if any)",
651
+ }),
652
+ Column({
653
+ type: ColumnType.ObjectID,
654
+ nullable: true,
655
+ transformer: ObjectID.getDatabaseTransformer(),
656
+ }),
657
+ __metadata("design:type", ObjectID)
658
+ ], LlmLog.prototype, "scheduledMaintenanceId", void 0);
659
+ __decorate([
660
+ ColumnAccessControl({
661
+ create: [],
662
+ read: [
663
+ Permission.ProjectOwner,
664
+ Permission.ProjectAdmin,
665
+ Permission.ProjectMember,
666
+ Permission.ReadLlmLog,
667
+ ],
668
+ update: [],
669
+ }),
670
+ TableColumn({
671
+ manyToOneRelationColumn: "userId",
672
+ type: TableColumnType.Entity,
673
+ modelType: User,
674
+ title: "User",
675
+ description: "User who triggered this LLM call (if any)",
676
+ }),
677
+ ManyToOne(() => {
678
+ return User;
679
+ }, {
680
+ eager: false,
681
+ nullable: true,
682
+ onDelete: "CASCADE",
683
+ orphanedRowAction: "nullify",
684
+ }),
685
+ JoinColumn({ name: "userId" }),
686
+ __metadata("design:type", User)
687
+ ], LlmLog.prototype, "user", void 0);
688
+ __decorate([
689
+ ColumnAccessControl({
690
+ create: [],
691
+ read: [
692
+ Permission.ProjectOwner,
693
+ Permission.ProjectAdmin,
694
+ Permission.ProjectMember,
695
+ Permission.ReadLlmLog,
696
+ ],
697
+ update: [],
698
+ }),
699
+ Index(),
700
+ TableColumn({
701
+ type: TableColumnType.ObjectID,
702
+ required: false,
703
+ canReadOnRelationQuery: true,
704
+ title: "User ID",
705
+ description: "ID of User who triggered this LLM call (if any)",
706
+ }),
707
+ Column({
708
+ type: ColumnType.ObjectID,
709
+ nullable: true,
710
+ transformer: ObjectID.getDatabaseTransformer(),
711
+ }),
712
+ __metadata("design:type", ObjectID)
713
+ ], LlmLog.prototype, "userId", void 0);
714
+ __decorate([
715
+ ColumnAccessControl({
716
+ create: [],
717
+ read: [
718
+ Permission.ProjectOwner,
719
+ Permission.ProjectAdmin,
720
+ Permission.ProjectMember,
721
+ Permission.ReadLlmLog,
722
+ ],
723
+ update: [],
724
+ }),
725
+ TableColumn({
726
+ required: false,
727
+ type: TableColumnType.Date,
728
+ title: "Request Started At",
729
+ description: "When the LLM request started",
730
+ canReadOnRelationQuery: false,
731
+ }),
732
+ Column({
733
+ nullable: true,
734
+ type: ColumnType.Date,
735
+ }),
736
+ __metadata("design:type", Date)
737
+ ], LlmLog.prototype, "requestStartedAt", void 0);
738
+ __decorate([
739
+ ColumnAccessControl({
740
+ create: [],
741
+ read: [
742
+ Permission.ProjectOwner,
743
+ Permission.ProjectAdmin,
744
+ Permission.ProjectMember,
745
+ Permission.ReadLlmLog,
746
+ ],
747
+ update: [],
748
+ }),
749
+ TableColumn({
750
+ required: false,
751
+ type: TableColumnType.Date,
752
+ title: "Request Completed At",
753
+ description: "When the LLM request completed",
754
+ canReadOnRelationQuery: false,
755
+ }),
756
+ Column({
757
+ nullable: true,
758
+ type: ColumnType.Date,
759
+ }),
760
+ __metadata("design:type", Date)
761
+ ], LlmLog.prototype, "requestCompletedAt", void 0);
762
+ __decorate([
763
+ ColumnAccessControl({
764
+ create: [],
765
+ read: [
766
+ Permission.ProjectOwner,
767
+ Permission.ProjectAdmin,
768
+ Permission.ProjectMember,
769
+ Permission.ReadLlmLog,
770
+ ],
771
+ update: [],
772
+ }),
773
+ TableColumn({
774
+ required: false,
775
+ type: TableColumnType.Number,
776
+ title: "Duration (ms)",
777
+ description: "Request duration in milliseconds",
778
+ canReadOnRelationQuery: false,
779
+ }),
780
+ Column({
781
+ nullable: true,
782
+ type: ColumnType.Number,
783
+ }),
784
+ __metadata("design:type", Number)
785
+ ], LlmLog.prototype, "durationMs", void 0);
786
+ __decorate([
787
+ ColumnAccessControl({
788
+ create: [],
789
+ read: [],
790
+ update: [],
791
+ }),
792
+ TableColumn({
793
+ manyToOneRelationColumn: "deletedByUserId",
794
+ type: TableColumnType.Entity,
795
+ title: "Deleted by User",
796
+ modelType: User,
797
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
798
+ }),
799
+ ManyToOne(() => {
800
+ return User;
801
+ }, {
802
+ cascade: false,
803
+ eager: false,
804
+ nullable: true,
805
+ onDelete: "SET NULL",
806
+ orphanedRowAction: "nullify",
807
+ }),
808
+ JoinColumn({ name: "deletedByUserId" }),
809
+ __metadata("design:type", User)
810
+ ], LlmLog.prototype, "deletedByUser", void 0);
811
+ __decorate([
812
+ ColumnAccessControl({
813
+ create: [],
814
+ read: [],
815
+ update: [],
816
+ }),
817
+ TableColumn({
818
+ type: TableColumnType.ObjectID,
819
+ title: "Deleted by User ID",
820
+ description: "User ID who deleted this object (if this object was deleted by a User)",
821
+ }),
822
+ Column({
823
+ type: ColumnType.ObjectID,
824
+ nullable: true,
825
+ transformer: ObjectID.getDatabaseTransformer(),
826
+ }),
827
+ __metadata("design:type", ObjectID)
828
+ ], LlmLog.prototype, "deletedByUserId", void 0);
829
+ LlmLog = __decorate([
830
+ EnableDocumentation(),
831
+ TenantColumn("projectId"),
832
+ TableAccessControl({
833
+ create: [],
834
+ read: [
835
+ Permission.ProjectOwner,
836
+ Permission.ProjectAdmin,
837
+ Permission.ProjectMember,
838
+ Permission.ReadLlmLog,
839
+ ],
840
+ delete: [],
841
+ update: [],
842
+ }),
843
+ CrudApiEndpoint(new Route("/llm-log")),
844
+ Entity({
845
+ name: "LlmLog",
846
+ }),
847
+ TableMetadata({
848
+ tableName: "LlmLog",
849
+ singularName: "LLM Log",
850
+ pluralName: "LLM Logs",
851
+ icon: IconProp.Bolt,
852
+ tableDescription: "Logs of all the LLM API calls for AI features in this project.",
853
+ })
854
+ ], LlmLog);
855
+ export default LlmLog;
856
+ //# sourceMappingURL=LlmLog.js.map