@oneuptime/common 9.2.15 → 9.2.17

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