prismalens 0.5.0-rc.2 → 0.5.0

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 (458) hide show
  1. package/README.md +2 -10
  2. package/dist/bin/prismalens.js +23 -12
  3. package/dist/chunk-HKIFAYVZ.js +53 -0
  4. package/dist/src/cli/doctor.js +165 -115
  5. package/dist/src/cli/up-console.js +16 -0
  6. package/dist/src/cli/up.js +41 -2
  7. package/node_modules/@prismalens/api/dist/src/app.controller.js +2 -1
  8. package/node_modules/@prismalens/api/dist/src/app.module.js +2 -15
  9. package/node_modules/@prismalens/api/dist/src/core/auth/auth.guard.js +1 -4
  10. package/node_modules/@prismalens/api/dist/src/core/auth/auth.service.js +6 -36
  11. package/node_modules/@prismalens/api/dist/src/core/auth/index.js +1 -1
  12. package/node_modules/@prismalens/api/dist/src/core/auth/orpc-auth.utils.js +0 -28
  13. package/node_modules/@prismalens/api/dist/src/{infrastructure/dev-seed/dev-seed.module.js → core/harness/harness-probe.service.js} +17 -14
  14. package/node_modules/@prismalens/api/dist/src/{modules/deployments/deployments.module.js → core/harness/harness.module.js} +11 -11
  15. package/node_modules/@prismalens/api/dist/src/core/harness/harness.service.js +94 -0
  16. package/node_modules/@prismalens/api/dist/src/core/harness/repo-source.service.js +191 -0
  17. package/node_modules/@prismalens/api/dist/src/core/prisma/prisma.service.js +3 -27
  18. package/node_modules/@prismalens/api/dist/src/core/settings/settings.controller.js +13 -66
  19. package/node_modules/@prismalens/api/dist/src/core/settings/settings.module.js +4 -4
  20. package/node_modules/@prismalens/api/dist/src/core/settings/settings.service.js +2 -166
  21. package/node_modules/@prismalens/api/dist/src/core/setup/setup.controller.js +8 -11
  22. package/node_modules/@prismalens/api/dist/src/core/setup/setup.module.js +2 -2
  23. package/node_modules/@prismalens/api/dist/src/core/users/users.service.js +4 -15
  24. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatch.module.js +14 -1
  25. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatch.service.js +119 -37
  26. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatcher.js +7 -69
  27. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/in-process-runner.js +47 -0
  28. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/investigation-run.js +386 -0
  29. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/job-store.js +22 -82
  30. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/prisma-investigation-store.js +106 -0
  31. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/run-ports.js +2 -0
  32. package/node_modules/@prismalens/api/dist/src/infrastructure/health/health.controller.js +2 -5
  33. package/node_modules/@prismalens/api/dist/src/main.js +10 -6
  34. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/alert-mapping.module.js +0 -2
  35. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/alert-mapping.service.js +11 -302
  36. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.controller.js +9 -39
  37. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.module.js +6 -5
  38. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.service.js +60 -1
  39. package/node_modules/@prismalens/api/dist/src/modules/alerts/incident-correlation.service.js +107 -0
  40. package/node_modules/@prismalens/api/dist/src/modules/incidents/incidents.controller.js +17 -52
  41. package/node_modules/@prismalens/api/dist/src/modules/incidents/incidents.module.js +2 -2
  42. package/node_modules/@prismalens/api/dist/src/modules/incidents/incidents.service.js +0 -66
  43. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.controller.js +5 -9
  44. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.module.js +3 -10
  45. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.service.js +25 -20
  46. package/node_modules/@prismalens/api/dist/src/modules/integrations/token-refresh.processor.js +0 -6
  47. package/node_modules/@prismalens/api/dist/src/modules/investigations/dto/index.js +3 -0
  48. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigation-trigger.service.js +65 -142
  49. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigation-update.service.js +1 -30
  50. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.controller.js +1 -1
  51. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.module.js +0 -2
  52. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.service.js +24 -7
  53. package/node_modules/@prismalens/api/dist/src/modules/openapi/openapi.controller.js +1 -10
  54. package/node_modules/@prismalens/api/dist/src/modules/overlay/overlay.service.js +5 -30
  55. package/node_modules/@prismalens/api/dist/src/modules/recommendations/recommendations.controller.js +1 -0
  56. package/node_modules/@prismalens/api/dist/src/modules/recommendations/recommendations.service.js +4 -0
  57. package/node_modules/@prismalens/api/dist/src/modules/repositories/repositories.controller.js +5 -15
  58. package/node_modules/@prismalens/api/dist/src/modules/repositories/repositories.module.js +3 -1
  59. package/node_modules/@prismalens/api/dist/src/modules/repositories/repositories.service.js +101 -3
  60. package/node_modules/@prismalens/api/dist/src/modules/repositories/serialize-repository.js +12 -0
  61. package/node_modules/@prismalens/api/dist/src/modules/services/dto/create-service.dto.js +0 -6
  62. package/node_modules/@prismalens/api/dist/src/modules/services/dto/update-service.dto.js +0 -6
  63. package/node_modules/@prismalens/api/dist/src/modules/services/services.controller.js +5 -57
  64. package/node_modules/@prismalens/api/dist/src/modules/services/services.service.js +0 -33
  65. package/node_modules/@prismalens/api/dist/src/modules/webhooks/dto/generic-webhook.dto.js +1 -167
  66. package/node_modules/@prismalens/api/dist/src/modules/webhooks/dto/index.js +1 -1
  67. package/node_modules/@prismalens/api/dist/src/modules/webhooks/render-webhook-signature.guard.js +3 -2
  68. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhook-signature.guard.js +44 -24
  69. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhook-throttle.guard.js +22 -0
  70. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhooks.controller.js +16 -3
  71. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhooks.module.js +0 -2
  72. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhooks.service.js +37 -123
  73. package/node_modules/@prismalens/api/dist/src/shared/enums/index.js +1 -2
  74. package/node_modules/@prismalens/api/dist/src/shared/utils/service-version.js +21 -0
  75. package/node_modules/@prismalens/api/public/assets/ClientOnly-oQFvh3ix.js +1 -0
  76. package/node_modules/@prismalens/api/public/assets/InvestigationPanel-BvmE4cR6.js +1 -0
  77. package/node_modules/@prismalens/api/public/assets/MutationError-KTNVqQEE.js +1 -0
  78. package/node_modules/@prismalens/api/public/assets/ServiceFormDialog-C7dLyL7N.js +1 -0
  79. package/node_modules/@prismalens/api/public/assets/_authenticated-BppNdFba.js +1 -0
  80. package/node_modules/@prismalens/api/public/assets/_authenticated-wCisuJM_.js +1 -0
  81. package/node_modules/@prismalens/api/public/assets/_id-BrdzzQIF.js +1 -0
  82. package/node_modules/@prismalens/api/public/assets/_id-C8NXhNAK.js +1 -0
  83. package/node_modules/@prismalens/api/public/assets/_id-CK1erj0d.js +1 -0
  84. package/node_modules/@prismalens/api/public/assets/alert-CS2Wmto0.js +1 -0
  85. package/node_modules/@prismalens/api/public/assets/alerts-CQ_N0W0-.js +1 -0
  86. package/node_modules/@prismalens/api/public/assets/app-B7_kgVWH.css +2 -0
  87. package/node_modules/@prismalens/api/public/assets/arrow-left-BOFDa8ux.js +1 -0
  88. package/node_modules/@prismalens/api/public/assets/auth-wZ7azlRE.js +3 -0
  89. package/node_modules/@prismalens/api/public/assets/button-BpffP5tM.js +1 -0
  90. package/node_modules/@prismalens/api/public/assets/card-CReVHG_n.js +1 -0
  91. package/node_modules/@prismalens/api/public/assets/chevron-right-BOWPjY4S.js +1 -0
  92. package/node_modules/@prismalens/api/public/assets/circle-check-big-cg0UNmWv.js +1 -0
  93. package/node_modules/@prismalens/api/public/assets/circle-x-DKryDPn4.js +1 -0
  94. package/node_modules/@prismalens/api/public/assets/collapsible-DdpheXBx.js +1 -0
  95. package/node_modules/@prismalens/api/public/assets/configure-C1u6gEO2.js +1 -0
  96. package/node_modules/@prismalens/api/public/assets/dist-CqgV8s4C.js +1 -0
  97. package/node_modules/@prismalens/api/public/assets/dist-I12loRoA.js +41 -0
  98. package/node_modules/@prismalens/api/public/assets/empty-state-KM3G8QLx.js +1 -0
  99. package/node_modules/@prismalens/api/public/assets/external-link-DhpTX__a.js +1 -0
  100. package/node_modules/@prismalens/api/public/assets/eye-dV62okMp.js +1 -0
  101. package/node_modules/@prismalens/api/public/assets/folder-git-2-B4vrLWuH.js +1 -0
  102. package/node_modules/@prismalens/api/public/assets/git-branch-81sGnyw5.js +1 -0
  103. package/node_modules/@prismalens/api/public/assets/github-icon-CVmm6oeW.js +1 -0
  104. package/node_modules/@prismalens/api/public/assets/hooks-Cf_sMPxR.js +1 -0
  105. package/node_modules/@prismalens/api/public/assets/incidents-PxIr2Mj_.js +1 -0
  106. package/node_modules/@prismalens/api/public/assets/incidents-snzRV5Kv.js +55 -0
  107. package/node_modules/@prismalens/api/public/assets/index-CpSQ0CqN.js +18 -0
  108. package/node_modules/@prismalens/api/public/assets/integration-icons-BFpnKW2W.js +1 -0
  109. package/node_modules/@prismalens/api/public/assets/label-Dgrl4rFp.js +1 -0
  110. package/node_modules/@prismalens/api/public/assets/layout-CSTP97CY.js +1 -0
  111. package/node_modules/@prismalens/api/public/assets/lib-CxLMTIZP.js +4 -0
  112. package/node_modules/@prismalens/api/public/assets/link-CYimRxHJ.js +1 -0
  113. package/node_modules/@prismalens/api/public/assets/list-CNt7sLLg.js +1 -0
  114. package/node_modules/@prismalens/api/public/assets/login-Cx_HB4n6.js +1 -0
  115. package/node_modules/@prismalens/api/public/assets/orpc-client-D4Uc7lTE.js +58 -0
  116. package/node_modules/@prismalens/api/public/assets/preload-helper-ZV40CQ2j.js +1 -0
  117. package/node_modules/@prismalens/api/public/assets/progress-jWV8sxYw.js +6 -0
  118. package/node_modules/@prismalens/api/public/assets/radio-group-CtY79PeV.js +1 -0
  119. package/node_modules/@prismalens/api/public/assets/refresh-cw-DMSsuw7T.js +1 -0
  120. package/node_modules/@prismalens/api/public/assets/select-C5DNoS_d.js +1 -0
  121. package/node_modules/@prismalens/api/public/assets/services-nMYHaqTp.js +1 -0
  122. package/node_modules/@prismalens/api/public/assets/settings-2-DUzYfEmR.js +1 -0
  123. package/node_modules/@prismalens/api/public/assets/settings-ClDES8rE.js +1 -0
  124. package/node_modules/@prismalens/api/public/assets/setup-BXY21KAX.js +1 -0
  125. package/node_modules/@prismalens/api/public/assets/setup-CxS2DteT.js +1 -0
  126. package/node_modules/@prismalens/api/public/assets/skeleton-_nFhh22s.js +1 -0
  127. package/node_modules/@prismalens/api/public/assets/table-BgvCpLYs.js +1 -0
  128. package/node_modules/@prismalens/api/public/assets/tabs-fi3R6fmK.js +1 -0
  129. package/node_modules/@prismalens/api/public/assets/textarea-CAM3kKS0.js +1 -0
  130. package/node_modules/@prismalens/api/public/assets/tooltip-DTm50KM9.js +1 -0
  131. package/node_modules/@prismalens/api/public/assets/use-investigations-orpc-Ck0Rl3_n.js +1 -0
  132. package/node_modules/@prismalens/api/public/assets/useNavigate-CdMJ9pQ0.js +1 -0
  133. package/node_modules/@prismalens/api/public/assets/{with-selector-DN3lmfWr.js → useRouter-B64lGpJS.js} +1 -1
  134. package/node_modules/@prismalens/api/public/assets/useSelector-CLaKw48R.js +1 -0
  135. package/node_modules/@prismalens/api/public/assets/wrench-DZZjIXsU.js +1 -0
  136. package/node_modules/@prismalens/api/public/index.html +0 -0
  137. package/node_modules/@prismalens/auth/dist/auth.js +32 -62
  138. package/node_modules/@prismalens/auth/dist/client.js +1 -9
  139. package/node_modules/@prismalens/auth/dist/index.js +0 -1
  140. package/node_modules/@prismalens/config/dist/env/database.js +1 -64
  141. package/node_modules/@prismalens/config/dist/env/deployment.js +0 -37
  142. package/node_modules/@prismalens/config/dist/env/dispatch.js +3 -86
  143. package/node_modules/@prismalens/config/dist/env/index.js +0 -4
  144. package/node_modules/@prismalens/config/dist/env/logging.js +14 -47
  145. package/node_modules/@prismalens/config/dist/env/server.js +3 -3
  146. package/node_modules/@prismalens/config/dist/harness-selection.js +83 -144
  147. package/node_modules/@prismalens/config/dist/harness.js +1 -6
  148. package/node_modules/@prismalens/config/dist/index.js +8 -62
  149. package/node_modules/@prismalens/config/dist/investigation.js +3 -33
  150. package/node_modules/@prismalens/config/dist/providers/harness.js +209 -75
  151. package/node_modules/@prismalens/config/dist/utils/database-url.js +4 -46
  152. package/node_modules/@prismalens/config/dist/utils/encryption-key.js +7 -7
  153. package/node_modules/@prismalens/config/dist/utils/secrets.js +1 -1
  154. package/node_modules/@prismalens/config/package.json +0 -20
  155. package/node_modules/@prismalens/contracts/dist/contracts/incidents.js +1 -54
  156. package/node_modules/@prismalens/contracts/dist/contracts/index.js +0 -15
  157. package/node_modules/@prismalens/contracts/dist/contracts/repositories.js +14 -1
  158. package/node_modules/@prismalens/contracts/dist/contracts/services.js +1 -20
  159. package/node_modules/@prismalens/contracts/dist/contracts/settings.js +43 -163
  160. package/node_modules/@prismalens/contracts/dist/contracts/setup.js +3 -4
  161. package/node_modules/@prismalens/contracts/dist/schemas/common.js +0 -22
  162. package/node_modules/@prismalens/contracts/dist/schemas/incident.js +9 -24
  163. package/node_modules/@prismalens/contracts/dist/schemas/index.js +0 -6
  164. package/node_modules/@prismalens/contracts/dist/schemas/integration.js +1 -10
  165. package/node_modules/@prismalens/contracts/dist/schemas/investigation.js +12 -26
  166. package/node_modules/@prismalens/contracts/dist/schemas/repository.js +23 -2
  167. package/node_modules/@prismalens/contracts/dist/schemas/service.js +1 -42
  168. package/node_modules/@prismalens/contracts/dist/schemas/settings.js +51 -238
  169. package/node_modules/@prismalens/database/dist/client.js +7 -34
  170. package/node_modules/@prismalens/database/dist/prisma/generated/internal/class.js +4 -4
  171. package/node_modules/@prismalens/database/dist/prisma/generated/internal/prismaNamespace.js +15 -154
  172. package/node_modules/@prismalens/database/dist/prisma/generated/models/AlertSourceAlert.js +2 -0
  173. package/node_modules/@prismalens/database/dist/prisma/seeds/demo-data.js +0 -39
  174. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/{20260803122809_init → 20260911192405_init}/migration.sql +32 -286
  175. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/app.prisma +488 -620
  176. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/auth.prisma +99 -159
  177. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/integrations.prisma +101 -156
  178. package/node_modules/@prismalens/database/dist/src/migrator/migration-source.js +5 -5
  179. package/node_modules/@prismalens/database/dist/src/migrator/runner.js +0 -0
  180. package/node_modules/@prismalens/engine/dist/index.js +9 -18
  181. package/node_modules/@prismalens/engine/dist/run/conductor.js +45 -0
  182. package/node_modules/@prismalens/engine/dist/run/fence.js +103 -0
  183. package/node_modules/@prismalens/engine/dist/run/harness-doctor.js +111 -0
  184. package/node_modules/@prismalens/engine/dist/run/investigate.js +194 -0
  185. package/node_modules/@prismalens/engine/dist/run/permission.js +157 -0
  186. package/node_modules/@prismalens/engine/dist/run/prompt.js +68 -0
  187. package/node_modules/@prismalens/engine/dist/run/report.js +96 -0
  188. package/node_modules/@prismalens/engine/dist/runner/acp-client.js +250 -247
  189. package/node_modules/@prismalens/engine/dist/sandbox/process-floor.js +6 -4
  190. package/node_modules/@prismalens/integrations/dist/index.js +2 -4
  191. package/node_modules/@prismalens/integrations/dist/providers/index.js +0 -3
  192. package/node_modules/@prismalens/integrations/dist/templates/index.js +0 -10
  193. package/node_modules/@prismalens/logger/dist/core/context.js +21 -111
  194. package/node_modules/@prismalens/logger/dist/core/logger.js +120 -203
  195. package/node_modules/@prismalens/logger/dist/index.js +1 -59
  196. package/node_modules/@prismalens/logger/dist/integrations/nestjs/index.js +154 -3
  197. package/node_modules/@prismalens/logger/dist/integrations/standalone/index.js +12 -1
  198. package/node_modules/@prismalens/logger/package.json +1 -1
  199. package/package.json +8 -23
  200. package/dist/chunk-5STPIUCJ.js +0 -150
  201. package/dist/chunk-HPE5CTO4.js +0 -22
  202. package/dist/chunk-JX2QAP6S.js +0 -574
  203. package/dist/chunk-LAYYJBZ5.js +0 -232
  204. package/dist/chunk-TSW5RW5B.js +0 -476
  205. package/dist/chunk-VI32U36Y.js +0 -161
  206. package/dist/src/cli/auth.js +0 -115
  207. package/dist/src/cli/grouping.js +0 -10
  208. package/dist/src/cli/init.js +0 -102
  209. package/dist/src/cli/investigate.js +0 -18
  210. package/dist/src/cli/listen.js +0 -490
  211. package/dist/src/cli/report.js +0 -74
  212. package/dist/src/cli/serve.js +0 -267
  213. package/dist/src/cli/status.js +0 -92
  214. package/node_modules/@prismalens/api/dist/src/core/license/decorators.js +0 -24
  215. package/node_modules/@prismalens/api/dist/src/core/license/license.constants.js +0 -60
  216. package/node_modules/@prismalens/api/dist/src/core/license/license.controller.js +0 -122
  217. package/node_modules/@prismalens/api/dist/src/core/license/license.guard.js +0 -96
  218. package/node_modules/@prismalens/api/dist/src/core/license/license.module.js +0 -37
  219. package/node_modules/@prismalens/api/dist/src/core/license/license.service.js +0 -252
  220. package/node_modules/@prismalens/api/dist/src/core/settings/llm-settings.service.js +0 -469
  221. package/node_modules/@prismalens/api/dist/src/infrastructure/dev-seed/dev-seed.service.js +0 -60
  222. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/fork-runner.js +0 -153
  223. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/dto/create-timeline-entry.dto.js +0 -48
  224. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/dto/index.js +0 -5
  225. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/guards/internal.guard.js +0 -41
  226. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal-integrations.controller.js +0 -60
  227. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal-investigations.controller.js +0 -126
  228. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal-settings.controller.js +0 -49
  229. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal-timeline.controller.js +0 -52
  230. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal.module.js +0 -45
  231. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/alert-mapping.controller.js +0 -124
  232. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/dto/create-mapping-rule.dto.js +0 -9
  233. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/dto/index.js +0 -3
  234. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/dto/test-mapping.dto.js +0 -8
  235. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/dto/update-mapping-rule.dto.js +0 -9
  236. package/node_modules/@prismalens/api/dist/src/modules/correlation/correlation.controller.js +0 -108
  237. package/node_modules/@prismalens/api/dist/src/modules/correlation/correlation.module.js +0 -22
  238. package/node_modules/@prismalens/api/dist/src/modules/correlation/correlation.service.js +0 -391
  239. package/node_modules/@prismalens/api/dist/src/modules/correlation/dto/create-correlation-rule.dto.js +0 -97
  240. package/node_modules/@prismalens/api/dist/src/modules/correlation/dto/index.js +0 -3
  241. package/node_modules/@prismalens/api/dist/src/modules/correlation/dto/update-correlation-rule.dto.js +0 -98
  242. package/node_modules/@prismalens/api/dist/src/modules/deployments/deployments.controller.js +0 -95
  243. package/node_modules/@prismalens/api/dist/src/modules/deployments/deployments.service.js +0 -140
  244. package/node_modules/@prismalens/api/dist/src/modules/deployments/dto/create-deployment.dto.js +0 -92
  245. package/node_modules/@prismalens/api/dist/src/modules/deployments/dto/index.js +0 -3
  246. package/node_modules/@prismalens/api/dist/src/modules/deployments/dto/link-deployment.dto.js +0 -18
  247. package/node_modules/@prismalens/api/dist/src/modules/integrations/oauth/oauth.controller.js +0 -156
  248. package/node_modules/@prismalens/api/dist/src/modules/integrations/oauth/oauth.service.js +0 -240
  249. package/node_modules/@prismalens/api/dist/src/modules/postmortems/dto/index.js +0 -2
  250. package/node_modules/@prismalens/api/dist/src/modules/postmortems/postmortems.controller.js +0 -96
  251. package/node_modules/@prismalens/api/dist/src/modules/postmortems/postmortems.module.js +0 -20
  252. package/node_modules/@prismalens/api/dist/src/modules/postmortems/postmortems.service.js +0 -185
  253. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/dto/accept-bulk-suggestions.dto.js +0 -5
  254. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/dto/accept-suggestion.dto.js +0 -8
  255. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/dto/index.js +0 -3
  256. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/service-discovery.controller.js +0 -127
  257. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/service-discovery.module.js +0 -23
  258. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/service-discovery.service.js +0 -478
  259. package/node_modules/@prismalens/api/public/assets/ClientOnly--uuL8w7N.js +0 -1
  260. package/node_modules/@prismalens/api/public/assets/InvestigationCanvas-8hax8RNO.css +0 -1
  261. package/node_modules/@prismalens/api/public/assets/InvestigationCanvas-CW6MM0g1.js +0 -3
  262. package/node_modules/@prismalens/api/public/assets/MutationError-DofydSmV.js +0 -1
  263. package/node_modules/@prismalens/api/public/assets/ProviderModelSelector-C_9B7pxX.js +0 -1
  264. package/node_modules/@prismalens/api/public/assets/QueryClientProvider-Bnoyi3cC.js +0 -1
  265. package/node_modules/@prismalens/api/public/assets/ServiceFormDialog-DpO5_sWd.js +0 -1
  266. package/node_modules/@prismalens/api/public/assets/StatusBadge-CLkL-XYy.js +0 -1
  267. package/node_modules/@prismalens/api/public/assets/_authenticated-C-0aG5G3.js +0 -1
  268. package/node_modules/@prismalens/api/public/assets/_authenticated-DTPtZIrA.js +0 -1
  269. package/node_modules/@prismalens/api/public/assets/_id-Ch8kL73d.js +0 -1
  270. package/node_modules/@prismalens/api/public/assets/_id-DU6FaA30.js +0 -1
  271. package/node_modules/@prismalens/api/public/assets/_id-DUr_tR2g.js +0 -2
  272. package/node_modules/@prismalens/api/public/assets/activity-BuLacqc6.js +0 -1
  273. package/node_modules/@prismalens/api/public/assets/alert-CHk0q15J.js +0 -1
  274. package/node_modules/@prismalens/api/public/assets/alert-dialog-BA8-OT8H.js +0 -1
  275. package/node_modules/@prismalens/api/public/assets/alerts-D5fBN3It.js +0 -1
  276. package/node_modules/@prismalens/api/public/assets/app-BakPloki.css +0 -2
  277. package/node_modules/@prismalens/api/public/assets/arrow-left-BEsyjQit.js +0 -1
  278. package/node_modules/@prismalens/api/public/assets/auth-PprCBILI.js +0 -3
  279. package/node_modules/@prismalens/api/public/assets/badge-CO4ZizgX.js +0 -1
  280. package/node_modules/@prismalens/api/public/assets/bell-CfLfMv3R.js +0 -1
  281. package/node_modules/@prismalens/api/public/assets/button-D2Hz_xyq.js +0 -1
  282. package/node_modules/@prismalens/api/public/assets/card-Cna4whU5.js +0 -1
  283. package/node_modules/@prismalens/api/public/assets/checkbox-CcuBaoTT.js +0 -1
  284. package/node_modules/@prismalens/api/public/assets/chevron-right-bRNDjfxy.js +0 -1
  285. package/node_modules/@prismalens/api/public/assets/circle-CH7vaplC.js +0 -1
  286. package/node_modules/@prismalens/api/public/assets/circle-alert-DJkh1udP.js +0 -1
  287. package/node_modules/@prismalens/api/public/assets/circle-check-big-CPrY1SEO.js +0 -1
  288. package/node_modules/@prismalens/api/public/assets/circle-x-B273d2QJ.js +0 -1
  289. package/node_modules/@prismalens/api/public/assets/clock-DAtaxeP6.js +0 -1
  290. package/node_modules/@prismalens/api/public/assets/collapsible-l-qFEiHy.js +0 -1
  291. package/node_modules/@prismalens/api/public/assets/colors-Be4TmXLI.js +0 -1
  292. package/node_modules/@prismalens/api/public/assets/configure-DI5HiYjq.js +0 -1
  293. package/node_modules/@prismalens/api/public/assets/data-table-CdnF2qvm.js +0 -1
  294. package/node_modules/@prismalens/api/public/assets/dialog-Gk6TrRQI.js +0 -1
  295. package/node_modules/@prismalens/api/public/assets/discovery-D4NhtHUI.js +0 -1
  296. package/node_modules/@prismalens/api/public/assets/dist-BpIEu0WE.js +0 -1
  297. package/node_modules/@prismalens/api/public/assets/dist-Bt-jpUxe.js +0 -1
  298. package/node_modules/@prismalens/api/public/assets/dist-DYnzloap.js +0 -58
  299. package/node_modules/@prismalens/api/public/assets/dist-K73G-mB9.js +0 -1
  300. package/node_modules/@prismalens/api/public/assets/empty-state-9sIQayEY.js +0 -1
  301. package/node_modules/@prismalens/api/public/assets/es2015-D9TnfkKS.js +0 -41
  302. package/node_modules/@prismalens/api/public/assets/external-link-DA-gFnPk.js +0 -1
  303. package/node_modules/@prismalens/api/public/assets/eye-h_TVSVZd.js +0 -1
  304. package/node_modules/@prismalens/api/public/assets/file-text-C1o0mAUv.js +0 -1
  305. package/node_modules/@prismalens/api/public/assets/folder-git-2-BmdRnJl-.js +0 -1
  306. package/node_modules/@prismalens/api/public/assets/folder-search-BncFWPmR.js +0 -1
  307. package/node_modules/@prismalens/api/public/assets/formatDistanceToNow-DbVS63WF.js +0 -1
  308. package/node_modules/@prismalens/api/public/assets/get-error-message-XWlcOfOx.js +0 -1
  309. package/node_modules/@prismalens/api/public/assets/git-branch-Cmr0C5H4.js +0 -1
  310. package/node_modules/@prismalens/api/public/assets/github-icon-D4qdxz0P.js +0 -1
  311. package/node_modules/@prismalens/api/public/assets/hooks-Dvgg0MZE.js +0 -1
  312. package/node_modules/@prismalens/api/public/assets/incidents-Cd584t1K.js +0 -1
  313. package/node_modules/@prismalens/api/public/assets/incidents-DTrPMWNz.js +0 -55
  314. package/node_modules/@prismalens/api/public/assets/index-CVw5Mvmu.js +0 -18
  315. package/node_modules/@prismalens/api/public/assets/info-sj1xshTP.js +0 -1
  316. package/node_modules/@prismalens/api/public/assets/integration-icons-DL9MhOUq.js +0 -1
  317. package/node_modules/@prismalens/api/public/assets/investigation.utils-Co-bXf6d.js +0 -1
  318. package/node_modules/@prismalens/api/public/assets/investigations-BQqESc_V.js +0 -1
  319. package/node_modules/@prismalens/api/public/assets/label-DUe0_M5w.js +0 -1
  320. package/node_modules/@prismalens/api/public/assets/layout-8XkK6xCm.js +0 -1
  321. package/node_modules/@prismalens/api/public/assets/lib-hSGK_-Di.js +0 -4
  322. package/node_modules/@prismalens/api/public/assets/lightbulb-DyOhvTqC.js +0 -1
  323. package/node_modules/@prismalens/api/public/assets/link-2-azNSustB.js +0 -1
  324. package/node_modules/@prismalens/api/public/assets/link-DAKk993b.js +0 -1
  325. package/node_modules/@prismalens/api/public/assets/list-DoJv1VuU.js +0 -1
  326. package/node_modules/@prismalens/api/public/assets/loader-circle-CcKe4gfe.js +0 -1
  327. package/node_modules/@prismalens/api/public/assets/login-BOSrZ_kx.js +0 -1
  328. package/node_modules/@prismalens/api/public/assets/matchContext-DqfdXpUw.js +0 -1
  329. package/node_modules/@prismalens/api/public/assets/message-square-DyJRCl0Z.js +0 -1
  330. package/node_modules/@prismalens/api/public/assets/play-Cl-dxWuH.js +0 -1
  331. package/node_modules/@prismalens/api/public/assets/preload-helper-59OHQnZM.js +0 -1
  332. package/node_modules/@prismalens/api/public/assets/progress-A42Syy0x.js +0 -6
  333. package/node_modules/@prismalens/api/public/assets/radio-group-BQfzcwy8.js +0 -1
  334. package/node_modules/@prismalens/api/public/assets/refresh-cw-BUJxeVPZ.js +0 -1
  335. package/node_modules/@prismalens/api/public/assets/rocket-CUKTT3ej.js +0 -1
  336. package/node_modules/@prismalens/api/public/assets/route-D-xTKyaj.js +0 -1
  337. package/node_modules/@prismalens/api/public/assets/rules-CPDuolRl.js +0 -1
  338. package/node_modules/@prismalens/api/public/assets/scroll-area-B8ouoSdu.js +0 -1
  339. package/node_modules/@prismalens/api/public/assets/search-jT7oUTz9.js +0 -1
  340. package/node_modules/@prismalens/api/public/assets/select-B_iRAfbM.js +0 -1
  341. package/node_modules/@prismalens/api/public/assets/server-DdoEdVKT.js +0 -1
  342. package/node_modules/@prismalens/api/public/assets/services-CgVrFeP8.js +0 -1
  343. package/node_modules/@prismalens/api/public/assets/settings-2-COWS2MJc.js +0 -1
  344. package/node_modules/@prismalens/api/public/assets/settings-BMHT-LAT.js +0 -1
  345. package/node_modules/@prismalens/api/public/assets/setup-BcTARTXx.js +0 -1
  346. package/node_modules/@prismalens/api/public/assets/setup-CsM_IjNU.js +0 -1
  347. package/node_modules/@prismalens/api/public/assets/skeleton-uHoNuB0v.js +0 -1
  348. package/node_modules/@prismalens/api/public/assets/sparkles-BzLskqFE.js +0 -1
  349. package/node_modules/@prismalens/api/public/assets/star-B5Q6OHL-.js +0 -1
  350. package/node_modules/@prismalens/api/public/assets/string-Bg7bf2KD.js +0 -1
  351. package/node_modules/@prismalens/api/public/assets/table-BHtdhI9A.js +0 -1
  352. package/node_modules/@prismalens/api/public/assets/tabs-BiYYAjVK.js +0 -1
  353. package/node_modules/@prismalens/api/public/assets/tooltip-Bj9odAxr.js +0 -1
  354. package/node_modules/@prismalens/api/public/assets/trash-2-CJHwWyOB.js +0 -1
  355. package/node_modules/@prismalens/api/public/assets/use-investigations-orpc-BDOy3-IZ.js +0 -1
  356. package/node_modules/@prismalens/api/public/assets/useNavigate-CF6X-lNP.js +0 -1
  357. package/node_modules/@prismalens/api/public/assets/useSearch-DLSAMJMr.js +0 -1
  358. package/node_modules/@prismalens/api/public/assets/useStore-BGoeuanS.js +0 -1
  359. package/node_modules/@prismalens/api/public/assets/zap-DOu38RFi.js +0 -1
  360. package/node_modules/@prismalens/auth/dist/roles.js +0 -12
  361. package/node_modules/@prismalens/config/dist/auth-store.js +0 -65
  362. package/node_modules/@prismalens/config/dist/credentials.js +0 -56
  363. package/node_modules/@prismalens/config/dist/env/langsmith.js +0 -29
  364. package/node_modules/@prismalens/config/dist/env/llm.js +0 -32
  365. package/node_modules/@prismalens/config/dist/env/skills.js +0 -66
  366. package/node_modules/@prismalens/config/dist/env/worker.js +0 -15
  367. package/node_modules/@prismalens/config/dist/harness-auth.js +0 -92
  368. package/node_modules/@prismalens/config/dist/llm.js +0 -23
  369. package/node_modules/@prismalens/config/dist/model.js +0 -101
  370. package/node_modules/@prismalens/config/dist/providers/llm.js +0 -170
  371. package/node_modules/@prismalens/config/dist/utils/repo.js +0 -228
  372. package/node_modules/@prismalens/contracts/dist/contracts/alert-mapping.js +0 -102
  373. package/node_modules/@prismalens/contracts/dist/contracts/correlation.js +0 -89
  374. package/node_modules/@prismalens/contracts/dist/contracts/deployments.js +0 -109
  375. package/node_modules/@prismalens/contracts/dist/contracts/postmortems.js +0 -92
  376. package/node_modules/@prismalens/contracts/dist/contracts/service-discovery.js +0 -102
  377. package/node_modules/@prismalens/contracts/dist/schemas/alert-mapping.js +0 -126
  378. package/node_modules/@prismalens/contracts/dist/schemas/correlation.js +0 -52
  379. package/node_modules/@prismalens/contracts/dist/schemas/deployment.js +0 -49
  380. package/node_modules/@prismalens/contracts/dist/schemas/license.js +0 -29
  381. package/node_modules/@prismalens/contracts/dist/schemas/postmortem.js +0 -71
  382. package/node_modules/@prismalens/contracts/dist/schemas/service-discovery.js +0 -74
  383. package/node_modules/@prismalens/database/dist/prisma/generated/models/AlertMappingRule.js +0 -2
  384. package/node_modules/@prismalens/database/dist/prisma/generated/models/CorrelationRule.js +0 -2
  385. package/node_modules/@prismalens/database/dist/prisma/generated/models/Deployment.js +0 -2
  386. package/node_modules/@prismalens/database/dist/prisma/generated/models/Invitation.js +0 -2
  387. package/node_modules/@prismalens/database/dist/prisma/generated/models/LicenseInfo.js +0 -2
  388. package/node_modules/@prismalens/database/dist/prisma/generated/models/Member.js +0 -2
  389. package/node_modules/@prismalens/database/dist/prisma/generated/models/OAuthState.js +0 -2
  390. package/node_modules/@prismalens/database/dist/prisma/generated/models/Organization.js +0 -2
  391. package/node_modules/@prismalens/database/dist/prisma/generated/models/Postmortem.js +0 -2
  392. package/node_modules/@prismalens/database/dist/prisma/generated/models/ServiceSuggestion.js +0 -2
  393. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260803122809_init/migration.sql +0 -1058
  394. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260811182203_drop_agent_tool_executions/migration.sql +0 -23
  395. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260812180006_alert_dedup_key_not_unique/migration.sql +0 -5
  396. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260822161331_alert_external_id_not_unique/migration.sql +0 -5
  397. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260823073903_account_issuer/migration.sql +0 -14
  398. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260826180000_account_issuer_account_id_unique/migration.sql +0 -22
  399. package/node_modules/@prismalens/database/dist/prisma/pg/schema/app.prisma +0 -981
  400. package/node_modules/@prismalens/database/dist/prisma/pg/schema/auth.prisma +0 -159
  401. package/node_modules/@prismalens/database/dist/prisma/pg/schema/integrations.prisma +0 -187
  402. package/node_modules/@prismalens/database/dist/prisma/pg/schema/main.prisma +0 -17
  403. package/node_modules/@prismalens/database/dist/prisma/pg/schema/migration_lock.toml +0 -3
  404. package/node_modules/@prismalens/database/dist/prisma/seed.js +0 -24
  405. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260811182203_drop_agent_tool_executions/migration.sql +0 -16
  406. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260812180006_alert_dedup_key_not_unique/migration.sql +0 -5
  407. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260822161331_alert_external_id_not_unique/migration.sql +0 -5
  408. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260823073903_account_issuer/migration.sql +0 -32
  409. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260826180000_account_issuer_account_id_unique/migration.sql +0 -2
  410. package/node_modules/@prismalens/engine/dist/adapter/claude-code-adapter.js +0 -195
  411. package/node_modules/@prismalens/engine/dist/config/resolve.js +0 -212
  412. package/node_modules/@prismalens/engine/dist/runner/acp-run-branch.js +0 -46
  413. package/node_modules/@prismalens/engine/dist/runner/claude-code-runner.js +0 -147
  414. package/node_modules/@prismalens/engine/dist/runner/claude-code-sandbox-spawn.js +0 -61
  415. package/node_modules/@prismalens/engine/dist/supervisor/alert-source.js +0 -47
  416. package/node_modules/@prismalens/engine/dist/supervisor/conductor.js +0 -88
  417. package/node_modules/@prismalens/engine/dist/supervisor/decompose.js +0 -364
  418. package/node_modules/@prismalens/engine/dist/supervisor/fan-out.js +0 -164
  419. package/node_modules/@prismalens/engine/dist/supervisor/investigate.js +0 -405
  420. package/node_modules/@prismalens/engine/dist/supervisor/synthesize.js +0 -486
  421. package/node_modules/@prismalens/engine/dist/tools/provisioning.js +0 -13
  422. package/node_modules/@prismalens/engine/dist/tools/types.js +0 -4
  423. package/node_modules/@prismalens/integrations/dist/providers/vercel/index.js +0 -4
  424. package/node_modules/@prismalens/integrations/dist/providers/vercel/vercel.adapter.js +0 -109
  425. package/node_modules/@prismalens/integrations/dist/templates/prometheus.js +0 -62
  426. package/node_modules/@prismalens/integrations/dist/templates/slack.js +0 -110
  427. package/node_modules/@prismalens/integrations/dist/templates/vercel.js +0 -47
  428. package/node_modules/@prismalens/logger/dist/core/formatter.js +0 -128
  429. package/node_modules/@prismalens/logger/dist/core/index.js +0 -7
  430. package/node_modules/@prismalens/logger/dist/core/sampler.js +0 -134
  431. package/node_modules/@prismalens/logger/dist/integrations/nestjs/logger.module.js +0 -140
  432. package/node_modules/@prismalens/logger/dist/integrations/nestjs/logger.service.js +0 -181
  433. package/node_modules/@prismalens/logger/dist/integrations/nestjs/request.interceptor.js +0 -209
  434. package/node_modules/@prismalens/logger/dist/integrations/standalone/create-logger.js +0 -105
  435. package/node_modules/@prismalens/logger/dist/transports/console.transport.js +0 -24
  436. package/node_modules/@prismalens/logger/dist/transports/file.transport.js +0 -147
  437. package/node_modules/@prismalens/logger/dist/transports/index.js +0 -6
  438. package/node_modules/@prismalens/logger/dist/transports/transport.js +0 -4
  439. package/node_modules/@prismalens/logger/dist/types/index.js +0 -6
  440. package/node_modules/@prismalens/logger/dist/types/log-entry.js +0 -4
  441. package/node_modules/@prismalens/logger/dist/types/sampling.js +0 -4
  442. package/node_modules/@prismalens/logger/dist/types/wide-event.js +0 -4
  443. package/node_modules/@prismalens/logger/dist/utils/id-generator.js +0 -27
  444. package/node_modules/@prismalens/logger/dist/utils/index.js +0 -6
  445. package/node_modules/@prismalens/logger/dist/utils/redaction.js +0 -186
  446. package/node_modules/@prismalens/logger/dist/utils/truncation.js +0 -106
  447. package/node_modules/@prismalens/worker/dist/config.js +0 -5
  448. package/node_modules/@prismalens/worker/dist/db-investigation-store.js +0 -233
  449. package/node_modules/@prismalens/worker/dist/index.js +0 -162
  450. package/node_modules/@prismalens/worker/dist/internal-url.js +0 -20
  451. package/node_modules/@prismalens/worker/dist/orpc-client.js +0 -20
  452. package/node_modules/@prismalens/worker/dist/processor.js +0 -743
  453. package/node_modules/@prismalens/worker/dist/protocol.js +0 -13
  454. package/node_modules/@prismalens/worker/dist/types.js +0 -3
  455. package/node_modules/@prismalens/worker/package.json +0 -23
  456. /package/node_modules/@prismalens/api/dist/src/{infrastructure/internal → modules/investigations}/dto/investigation-result.dto.js +0 -0
  457. /package/node_modules/@prismalens/api/dist/src/{infrastructure/internal → modules/investigations}/dto/recommendation.dto.js +0 -0
  458. /package/node_modules/@prismalens/api/dist/src/{infrastructure/internal → modules/investigations}/dto/update-investigation-status.dto.js +0 -0
package/README.md CHANGED
@@ -12,12 +12,11 @@ npm install -g prismalens
12
12
 
13
13
  ## Quick start
14
14
 
15
- Check the environment, then start the web interface or run an investigation directly:
15
+ Check the environment, then start the web interface:
16
16
 
17
17
  ```bash
18
18
  prismalens doctor
19
19
  pl up
20
- pl investigate --repo . --query "checkout latency spike after 14:00 UTC"
21
20
  ```
22
21
 
23
22
  ## Commands
@@ -25,14 +24,7 @@ pl investigate --repo . --query "checkout latency spike after 14:00 UTC"
25
24
  | Command | Description |
26
25
  | --- | --- |
27
26
  | `up` | Run PrismaLens as a single process serving the API and web dashboard. |
28
- | `investigate` | Run a root-cause investigation on a firing alert or query. |
29
- | `listen` | Start a local HTTP webhook receiver for incoming Alertmanager alerts. |
30
- | `serve` | Run the JSON-RPC server over stdio for desktop and API integrations. |
31
- | `doctor` | Preflight-check the environment for harness binaries and credentials. |
32
- | `init` | Scaffold a default configuration file in the current directory. |
33
- | `status` | List recent investigation runs and their execution states. |
34
- | `report` | Display the stored investigation report for a specific run ID. |
35
- | `auth` | Manage stored credentials for model providers. |
27
+ | `doctor` | Preflight-check the environment: a harness binary on PATH, and its ACP handshake (answers ACP, sign in needed, no answer in 10s, or failed to start). |
36
28
 
37
29
  ## Documentation
38
30
 
@@ -1,11 +1,29 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- cliVersion
4
- } from "../chunk-HPE5CTO4.js";
5
2
 
6
3
  // bin/prismalens.ts
7
4
  import { defineCommand, runMain, showUsage } from "citty";
8
5
  import consola from "consola";
6
+
7
+ // src/version.ts
8
+ import { readFileSync } from "node:fs";
9
+ import { dirname, join } from "node:path";
10
+ import { fileURLToPath } from "node:url";
11
+ function cliVersion() {
12
+ let dir = dirname(fileURLToPath(import.meta.url));
13
+ for (let i = 0; i < 4; i++) {
14
+ try {
15
+ const pkg = JSON.parse(
16
+ readFileSync(join(dir, "package.json"), "utf8")
17
+ );
18
+ if (pkg.name === "prismalens" && pkg.version) return pkg.version;
19
+ } catch {
20
+ }
21
+ dir = dirname(dir);
22
+ }
23
+ return "0.0.0";
24
+ }
25
+
26
+ // bin/prismalens.ts
9
27
  globalThis.AI_SDK_LOG_WARNINGS = false;
10
28
  var originalEmit = process.emit;
11
29
  process.emit = ((name, ...args) => {
@@ -22,18 +40,11 @@ var main = defineCommand({
22
40
  meta: {
23
41
  name: "prismalens",
24
42
  version: cliVersion(),
25
- description: "PrismaLens investigation engine CLI \u2014 drives the two-tier engine (ADR-0008/0010)."
43
+ description: "Run and check a PrismaLens install"
26
44
  },
27
45
  subCommands: {
28
46
  up: lazy("up"),
29
- investigate: lazy("investigate"),
30
- listen: lazy("listen"),
31
- serve: lazy("serve"),
32
- doctor: lazy("doctor"),
33
- init: lazy("init"),
34
- status: lazy("status"),
35
- report: lazy("report"),
36
- auth: lazy("auth")
47
+ doctor: lazy("doctor")
37
48
  }
38
49
  });
39
50
  runMain(main, {
@@ -0,0 +1,53 @@
1
+ // src/cli/up-console.ts
2
+ import { join } from "node:path";
3
+ var DEFAULT_LOG_DIR = "logs";
4
+ function resolveConsoleMode(env, verboseFlag) {
5
+ if (verboseFlag) return "verbose";
6
+ return env.PRISMALENS_LOG_CONSOLE === "verbose" ? "verbose" : "quiet";
7
+ }
8
+ function resolveLogDir(env, workspaceDir) {
9
+ return env.PRISMALENS_LOG_FILE_LOCATION || join(workspaceDir, DEFAULT_LOG_DIR);
10
+ }
11
+ function resolveBind(env) {
12
+ const port = Number(env.PRISMALENS_PORT) || 3001;
13
+ const host = env.PRISMALENS_HOST || "127.0.0.1";
14
+ const protocol = env.PRISMALENS_PROTOCOL === "https" ? "https" : "http";
15
+ return { host, port, protocol };
16
+ }
17
+ var isWildcard = (host) => host === "0.0.0.0" || host === "::";
18
+ var urlHost = (host) => host.includes(":") ? `[${host}]` : host;
19
+ function displayUrl(bind) {
20
+ const shown = isWildcard(bind.host) || bind.host === "127.0.0.1" ? "localhost" : urlHost(bind.host);
21
+ return `${bind.protocol}://${shown}:${bind.port}`;
22
+ }
23
+ function healthUrl(bind) {
24
+ const host = isWildcard(bind.host) ? "127.0.0.1" : urlHost(bind.host);
25
+ return `${bind.protocol}://${host}:${bind.port}/health`;
26
+ }
27
+ async function waitForReady(healthUrl2, opts = {}) {
28
+ const timeoutMs = opts.timeoutMs ?? 6e4;
29
+ const intervalMs = opts.intervalMs ?? 250;
30
+ const fetchImpl = opts.fetchImpl ?? fetch;
31
+ const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
32
+ const deadline = Date.now() + timeoutMs;
33
+ while (Date.now() < deadline) {
34
+ try {
35
+ const res = await fetchImpl(healthUrl2, {
36
+ signal: AbortSignal.timeout(intervalMs * 4)
37
+ });
38
+ if (res.status === 200) return true;
39
+ } catch {
40
+ }
41
+ await sleep(intervalMs);
42
+ }
43
+ return false;
44
+ }
45
+
46
+ export {
47
+ resolveConsoleMode,
48
+ resolveLogDir,
49
+ resolveBind,
50
+ displayUrl,
51
+ healthUrl,
52
+ waitForReady
53
+ };
@@ -1,160 +1,203 @@
1
- import {
2
- loadConfig
3
- } from "../../chunk-VI32U36Y.js";
4
- import {
5
- resolveBaseDir
6
- } from "../../chunk-TSW5RW5B.js";
7
- import "../../chunk-5STPIUCJ.js";
8
1
  import {
9
2
  assertKnownFlags
10
3
  } from "../../chunk-PTBCAI34.js";
11
4
 
12
5
  // src/cli/doctor.ts
13
- import { constants as fsConstants } from "node:fs";
14
- import { access, mkdir } from "node:fs/promises";
15
- import { resolveCredentials } from "@prismalens/config/credentials";
16
- import { HARNESS_BINARY } from "@prismalens/config/harness";
17
- import { isOnPath, resolveHarnessAuth } from "@prismalens/config/harness-auth";
6
+ import { existsSync } from "node:fs";
7
+ import { delimiter, join } from "node:path";
8
+ import {
9
+ ensureAppDataDir,
10
+ getAppDataDir,
11
+ secretFileName
12
+ } from "@prismalens/config";
13
+ import {
14
+ HARNESS_REGISTRY,
15
+ resolveHarnessModel
16
+ } from "@prismalens/config/harness";
18
17
  import {
19
- AUTO_SELECT_PROVIDER_IDS,
20
- LLM_PROVIDERS
21
- } from "@prismalens/config/llm";
22
- import { pingModel } from "@prismalens/config/model";
18
+ installHints,
19
+ isOnPath,
20
+ resolveHarnessSelection,
21
+ resolveOnPath
22
+ } from "@prismalens/config/harness-selection";
23
+ import { isSrtAvailable, probeHarness } from "@prismalens/engine";
23
24
  import { defineCommand } from "citty";
24
25
  import consola from "consola";
25
- function checkHarness(harness) {
26
- const binary = HARNESS_BINARY[harness];
27
- const pass = isOnPath(binary);
28
- const sessionVerdict = harness === "claude-code" ? resolveHarnessAuth("claude-code", { apiKeyPresent: false }) : null;
29
- const sessionSuffix = sessionVerdict?.usable && sessionVerdict.route === "cli-session" && sessionVerdict.verified ? ", verified session" : "";
26
+ var MIN_NODE_MAJOR = 22;
27
+ var MIN_NODE_MINOR = 13;
28
+ function checkNodeVersion() {
29
+ const [major, minor] = process.versions.node.split(".").map(Number);
30
+ const pass = major > MIN_NODE_MAJOR || major === MIN_NODE_MAJOR && minor >= MIN_NODE_MINOR;
30
31
  return {
31
- name: "Harness binary",
32
+ name: "Node version",
32
33
  pass,
33
- detail: pass ? `${binary} found on PATH (harness: ${harness}${sessionSuffix})` : `${binary} not found on PATH \u2014 install the "${harness}" harness`,
34
+ detail: pass ? `${process.versions.node} (>= ${MIN_NODE_MAJOR}.${MIN_NODE_MINOR} required)` : `${process.versions.node} \u2014 prismalens requires Node >= ${MIN_NODE_MAJOR}.${MIN_NODE_MINOR}`,
34
35
  hard: true
35
36
  };
36
37
  }
37
- async function checkCredential(config, noPing) {
38
- let providerId = config.synth.provider;
39
- let creds;
40
- if (providerId) {
41
- creds = resolveCredentials(providerId, config.synth.base_url);
42
- } else {
43
- for (const id of AUTO_SELECT_PROVIDER_IDS) {
44
- const candidate = resolveCredentials(id, config.synth.base_url);
45
- if (candidate.source !== "none") {
46
- providerId = id;
47
- creds = candidate;
48
- break;
49
- }
50
- }
51
- if (!creds) {
52
- creds = { providerId: "ollama", source: "none" };
53
- providerId = "ollama";
54
- }
55
- }
56
- if (creds.source === "none") {
57
- return {
58
- name: "LLM credential",
59
- pass: false,
60
- detail: "none (reports will be RAW harness pass-through) \u2014 not verified",
61
- hard: false
62
- };
63
- }
64
- const providerName = LLM_PROVIDERS[providerId].name;
65
- if (noPing) {
66
- return {
67
- name: "LLM credential",
68
- pass: true,
69
- detail: `${providerName} (source: ${creds.source}) \u2014 ping skipped`,
70
- hard: false
71
- };
72
- }
73
- const ping = await pingModel(
74
- providerId,
75
- config.synth.model,
76
- {
77
- apiKey: creds.apiKey,
78
- baseURL: creds.baseURL
79
- }
80
- );
81
- if (ping.success) {
38
+ function checkAppDataDir() {
39
+ try {
40
+ const dir = ensureAppDataDir();
82
41
  return {
83
- name: "LLM credential",
42
+ name: "Workspace",
84
43
  pass: true,
85
- detail: `${providerName} (source: ${creds.source}) \u2014 ping OK`,
86
- hard: false
44
+ detail: dir,
45
+ hard: true
87
46
  };
88
- } else {
47
+ } catch (err) {
89
48
  return {
90
- name: "LLM credential",
49
+ name: "Workspace",
91
50
  pass: false,
92
- detail: `${providerName} (source: ${creds.source}) \u2014 ping failed: ${ping.error}`,
51
+ detail: `${getAppDataDir()} \u2014 ${err instanceof Error ? err.message : String(err)}`,
93
52
  hard: true
94
53
  };
95
54
  }
96
55
  }
97
- async function checkWorkspace(config) {
98
- const baseDir = resolveBaseDir(config.workspace.dir);
99
- try {
100
- await mkdir(baseDir, { recursive: true });
101
- await access(baseDir, fsConstants.W_OK);
56
+ function checkHarnessesOnPath() {
57
+ return Object.values(HARNESS_REGISTRY).map((descriptor) => {
58
+ const resolved = resolveOnPath(descriptor.binary);
102
59
  return {
103
- name: "Workspace",
104
- pass: true,
105
- detail: `${baseDir} is writable`,
60
+ name: `Harness: ${descriptor.label}`,
61
+ pass: resolved !== null,
62
+ detail: resolved ? `${descriptor.binary} found at ${resolved}` : `${descriptor.binary} not found on PATH`,
106
63
  hard: false
107
64
  };
108
- } catch {
109
- return {
110
- name: "Workspace",
111
- pass: false,
112
- detail: `${baseDir} is not writable \u2014 runs cannot persist here`,
65
+ });
66
+ }
67
+ function checkPath() {
68
+ const entries = (process.env.PATH ?? "").split(delimiter).filter(Boolean);
69
+ const head = entries.slice(0, 3).join(", ");
70
+ return {
71
+ name: "PATH",
72
+ pass: entries.length > 0,
73
+ detail: entries.length === 0 ? "empty" : `${entries.length} entries, starting ${head}${entries.length > 3 ? ", \u2026" : ""}`,
74
+ hard: false
75
+ };
76
+ }
77
+ function checkAnyHarnessOnPath(perHarness) {
78
+ const pass = perHarness.some((c) => c.pass);
79
+ return {
80
+ name: "Harness available",
81
+ pass,
82
+ detail: pass ? "at least one harness is installed" : `no harness found on PATH. Install one: ${installHints()}`,
83
+ hard: true
84
+ };
85
+ }
86
+ async function checkHarnessHandshake() {
87
+ const installed = Object.values(HARNESS_REGISTRY).filter((descriptor) => isOnPath(descriptor.binary));
88
+ const results = [];
89
+ for (const descriptor of installed) {
90
+ const probe = await probeHarness(descriptor.id);
91
+ results.push({
92
+ name: `Harness ACP handshake: ${descriptor.label}`,
93
+ pass: probe.outcome === "answers-acp",
94
+ detail: probe.detail,
113
95
  hard: false
114
- };
96
+ });
115
97
  }
98
+ return results;
116
99
  }
117
- function checkListenToken(config) {
118
- if (config.listen.token) {
119
- return {
120
- name: "Listen intake",
100
+ function checkAutoSelection() {
101
+ const envHarness = process.env.PRISMALENS_HARNESS;
102
+ const selection = resolveHarnessSelection({ envHarness, pinSource: "env" });
103
+ if (!selection.runnable) {
104
+ return [
105
+ {
106
+ name: "Selected harness",
107
+ pass: false,
108
+ detail: selection.reason,
109
+ hard: false
110
+ }
111
+ ];
112
+ }
113
+ const model = resolveHarnessModel(selection.harness);
114
+ return [
115
+ {
116
+ name: "Selected harness",
121
117
  pass: true,
122
- detail: `token configured; \`pl listen\` will serve on port ${config.listen.port}`,
118
+ detail: `${selection.harness}${selection.auto ? " (auto; a harness saved under Settings \u2192 Harness wins)" : " (pinned by PRISMALENS_HARNESS)"}${selection.verified ? "" : ", not yet verified"}`,
123
119
  hard: false
124
- };
125
- }
120
+ },
121
+ {
122
+ name: "Model",
123
+ pass: model.source === "product-default",
124
+ detail: model.source === "product-default" ? `${model.model} (verified default; Settings \u2192 Harness \u2192 Model overrides it)` : `${selection.harness} has no verified default, so the harness picks its own model unless Settings \u2192 Harness \u2192 Model sets one`,
125
+ hard: false
126
+ }
127
+ ];
128
+ }
129
+ function checkSandbox() {
130
+ const srt = isSrtAvailable();
131
+ return {
132
+ name: "Sandbox",
133
+ pass: srt,
134
+ detail: srt ? "srt found; runs get an enforced filesystem and egress boundary" : "srt not found; runs use the cooperative process floor, which does not stop a read outside the snapshot. Install @anthropic-ai/sandbox-runtime for an enforced boundary (docs.prismalens.io/cli/sandboxing/)",
135
+ hard: false
136
+ };
137
+ }
138
+ function checkWebhookToken() {
139
+ const filePath = join(
140
+ getAppDataDir(),
141
+ secretFileName("PRISMALENS_WEBHOOK_SECRET")
142
+ );
143
+ const exists = existsSync(filePath);
144
+ return {
145
+ name: "Webhook token",
146
+ pass: exists,
147
+ detail: `${filePath} (${exists ? "exists" : "does not exist yet"})`,
148
+ hard: false
149
+ };
150
+ }
151
+ function checkPortHost() {
152
+ const port = process.env.PRISMALENS_PORT ?? "3001";
153
+ const host = process.env.PRISMALENS_HOST ?? "127.0.0.1";
126
154
  return {
127
- name: "Listen intake",
128
- pass: false,
129
- detail: "listen.token is unset \u2014 `pl listen` will refuse to start (set listen.token in prismalens.config.yaml)",
155
+ name: "Port/host",
156
+ pass: true,
157
+ detail: `${host}:${port}`,
130
158
  hard: false
131
159
  };
132
160
  }
133
161
  var doctor_default = defineCommand({
134
162
  meta: {
135
163
  name: "doctor",
136
- description: "Preflight check the investigation environment\n\nExamples:\n $ pl doctor --no-ping"
164
+ description: "Preflight check the `pl up` environment"
137
165
  },
138
166
  args: {
139
- // citty models `--no-ping` as negation of a `ping` boolean — a literal
140
- // `noPing` arg would never receive it.
141
- ping: {
142
- type: "boolean",
143
- description: "Live-ping the LLM credential (disable with --no-ping)",
144
- default: true
167
+ port: {
168
+ type: "string",
169
+ description: "Port `pl up` will listen on (default 3001, or PRISMALENS_PORT)"
170
+ },
171
+ host: {
172
+ type: "string",
173
+ description: "Host `pl up` will bind (default localhost, or PRISMALENS_HOST)"
174
+ },
175
+ workspace: {
176
+ type: "string",
177
+ description: "Data directory `pl up` will use (default ~/.prismalens, or PRISMALENS_WORKSPACE_DIR)"
145
178
  }
146
179
  },
147
180
  async run({ args, cmd }) {
148
181
  try {
149
182
  assertKnownFlags(args, cmd);
150
- const config = await loadConfig();
151
- const harness = config.agent.default;
152
- const noPing = !args.ping;
183
+ if (args.port) process.env.PRISMALENS_PORT = String(args.port);
184
+ if (args.host) process.env.PRISMALENS_HOST = String(args.host);
185
+ if (args.workspace) {
186
+ process.env.PRISMALENS_WORKSPACE_DIR = String(args.workspace);
187
+ }
188
+ const harnessChecks = checkHarnessesOnPath();
189
+ const handshakeChecks = await checkHarnessHandshake();
153
190
  const checks = [
154
- checkHarness(harness),
155
- await checkCredential(config, noPing),
156
- await checkWorkspace(config),
157
- checkListenToken(config)
191
+ checkNodeVersion(),
192
+ checkAppDataDir(),
193
+ checkPath(),
194
+ ...harnessChecks,
195
+ checkAnyHarnessOnPath(harnessChecks),
196
+ ...handshakeChecks,
197
+ ...checkAutoSelection(),
198
+ checkSandbox(),
199
+ checkWebhookToken(),
200
+ checkPortHost()
158
201
  ];
159
202
  consola.log("");
160
203
  for (const check of checks) {
@@ -166,8 +209,11 @@ var doctor_default = defineCommand({
166
209
  consola.log("");
167
210
  const hardFailures = checks.filter((c) => c.hard && !c.pass);
168
211
  if (hardFailures.length > 0) {
212
+ const onlyHarness = hardFailures.every(
213
+ (c) => c.name === "Harness available"
214
+ );
169
215
  consola.error(
170
- `${hardFailures.length} required check(s) failed \u2014 fix the above before investigating.`
216
+ onlyHarness ? "No harness on PATH. `pl up` still starts, but Investigate stays disabled until one is installed." : `${hardFailures.length} required check(s) failed. Fix the above before running \`pl up\`.`
171
217
  );
172
218
  process.exit(1);
173
219
  }
@@ -179,7 +225,11 @@ var doctor_default = defineCommand({
179
225
  }
180
226
  });
181
227
  export {
182
- checkCredential,
183
- checkListenToken,
228
+ checkAnyHarnessOnPath,
229
+ checkAutoSelection,
230
+ checkHarnessHandshake,
231
+ checkHarnessesOnPath,
232
+ checkSandbox,
233
+ checkWebhookToken,
184
234
  doctor_default as default
185
235
  };
@@ -0,0 +1,16 @@
1
+ import {
2
+ displayUrl,
3
+ healthUrl,
4
+ resolveBind,
5
+ resolveConsoleMode,
6
+ resolveLogDir,
7
+ waitForReady
8
+ } from "../../chunk-HKIFAYVZ.js";
9
+ export {
10
+ displayUrl,
11
+ healthUrl,
12
+ resolveBind,
13
+ resolveConsoleMode,
14
+ resolveLogDir,
15
+ waitForReady
16
+ };
@@ -1,3 +1,12 @@
1
+ import {
2
+ displayUrl,
3
+ healthUrl,
4
+ resolveBind,
5
+ resolveConsoleMode,
6
+ resolveLogDir,
7
+ waitForReady
8
+ } from "../../chunk-HKIFAYVZ.js";
9
+
1
10
  // src/cli/up.ts
2
11
  import { existsSync, mkdirSync } from "node:fs";
3
12
  import { createRequire } from "node:module";
@@ -6,6 +15,7 @@ import { pathToFileURL } from "node:url";
6
15
  import { defineCommand } from "citty";
7
16
  import consola from "consola";
8
17
  var require2 = createRequire(import.meta.url);
18
+ var READY_TIMEOUT_MS = 6e4;
9
19
  function resolvePackagedApi() {
10
20
  let manifestPath;
11
21
  try {
@@ -48,24 +58,53 @@ var up_default = defineCommand({
48
58
  },
49
59
  workspace: {
50
60
  type: "string",
51
- description: "Data directory for the database and secrets (default ~/.prismalens, or PRISMALENS_WORKSPACE_DIR)"
61
+ description: "Data directory for the database, secrets and logs (default ~/.prismalens, or PRISMALENS_WORKSPACE_DIR)"
62
+ },
63
+ verbose: {
64
+ type: "boolean",
65
+ description: "Stream every log record to the terminal as well as the log file (default: warnings and errors only)"
52
66
  }
53
67
  },
54
68
  async run({ args }) {
55
69
  const app = resolvePackagedApi();
70
+ process.env.NODE_ENV = "production";
56
71
  if (args.port) process.env.PRISMALENS_PORT = String(args.port);
57
72
  if (args.host) process.env.PRISMALENS_HOST = String(args.host);
58
73
  if (args.workspace) {
59
74
  process.env.PRISMALENS_WORKSPACE_DIR = String(args.workspace);
60
75
  }
61
76
  process.env.PRISMALENS_STATIC_DIR = app.staticDir;
77
+ process.env.PRISMALENS_LOG_CONSOLE = resolveConsoleMode(
78
+ process.env,
79
+ Boolean(args.verbose)
80
+ );
62
81
  const { getAppDataDir, ensureAppDataDir } = await import("@prismalens/config");
63
82
  ensureAppDataDir();
64
83
  const workspaceDir = getAppDataDir();
65
84
  mkdirSync(workspaceDir, { recursive: true });
85
+ const logDir = resolveLogDir(process.env, workspaceDir);
86
+ const bind = resolveBind(process.env);
87
+ const url = displayUrl(bind);
66
88
  consola.info(`Workspace: ${workspaceDir}`);
67
- consola.info(`Dashboard: ${app.staticDir}`);
89
+ consola.info(`Logs: ${logDir}`);
90
+ if (process.env.PRISMALENS_LOG_CONSOLE === "verbose") {
91
+ consola.info(`Dashboard: ${app.staticDir}`);
92
+ }
68
93
  await import(pathToFileURL(app.main).href);
94
+ if (bind.protocol === "https") {
95
+ consola.info(`Starting at ${url}`);
96
+ return;
97
+ }
98
+ const ready = await waitForReady(healthUrl(bind), {
99
+ timeoutMs: READY_TIMEOUT_MS
100
+ });
101
+ if (ready) {
102
+ consola.success(`PrismaLens is ready at ${url}`);
103
+ } else {
104
+ consola.warn(
105
+ `Not listening after ${READY_TIMEOUT_MS / 1e3}s. Still starting, or stuck: see ${logDir}`
106
+ );
107
+ }
69
108
  }
70
109
  });
71
110
  export {
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { Controller, Get } from "@nestjs/common";
11
11
  import { ConfigService } from "@nestjs/config";
12
12
  import { Public } from "./core/auth/public.decorator.js";
13
+ import { resolveServiceVersion } from "./shared/utils/service-version.js";
13
14
  let AppController = class AppController {
14
15
  _configService;
15
16
  constructor(_configService) {
@@ -18,7 +19,7 @@ let AppController = class AppController {
18
19
  root() {
19
20
  return {
20
21
  name: "PrismaLens API",
21
- version: "0.1.0",
22
+ version: resolveServiceVersion(),
22
23
  edition: "COMMUNITY",
23
24
  docs: "/api",
24
25
  };
@@ -39,31 +39,25 @@ function staticModule() {
39
39
  ];
40
40
  }
41
41
  import { AuthGuard, AuthModule } from "./core/auth/index.js";
42
- import { LicenseModule } from "./core/license/license.module.js";
43
42
  import { PrismaModule } from "./core/prisma/prisma.module.js";
44
43
  import { SettingsModule } from "./core/settings/settings.module.js";
45
44
  import { SetupModule } from "./core/setup/setup.module.js";
46
45
  import { UsersModule } from "./core/users/users.module.js";
47
- import { DevSeedModule } from "./infrastructure/dev-seed/dev-seed.module.js";
48
46
  import { DispatchModule } from "./infrastructure/dispatch/dispatch.module.js";
49
47
  import { HealthModule } from "./infrastructure/health/health.module.js";
50
- import { InternalModule } from "./infrastructure/internal/internal.module.js";
51
48
  import { AlertMappingModule } from "./modules/alert-mapping/alert-mapping.module.js";
52
49
  import { AlertsModule } from "./modules/alerts/alerts.module.js";
53
- import { CorrelationModule } from "./modules/correlation/correlation.module.js";
54
- import { DeploymentsModule } from "./modules/deployments/deployments.module.js";
55
50
  import { EventsModule } from "./modules/events/events.module.js";
56
51
  import { IncidentsModule } from "./modules/incidents/incidents.module.js";
57
52
  import { IntegrationsModule } from "./modules/integrations/integrations.module.js";
58
53
  import { InvestigationsModule } from "./modules/investigations/investigations.module.js";
59
54
  import { OpenAPIModule } from "./modules/openapi/openapi.module.js";
60
- import { PostmortemsModule } from "./modules/postmortems/postmortems.module.js";
61
55
  import { RecommendationsModule } from "./modules/recommendations/recommendations.module.js";
62
56
  import { RepositoriesModule } from "./modules/repositories/repositories.module.js";
63
- import { ServiceDiscoveryModule } from "./modules/service-discovery/service-discovery.module.js";
64
57
  import { ServicesModule } from "./modules/services/services.module.js";
65
58
  import { TimelineModule } from "./modules/timeline/timeline.module.js";
66
59
  import { WebhooksModule } from "./modules/webhooks/webhooks.module.js";
60
+ import { resolveServiceVersion } from "./shared/utils/service-version.js";
67
61
  const orpcLogger = new Logger({ context: "oRPC" });
68
62
  let AppModule = class AppModule {
69
63
  configure(consumer) {
@@ -83,7 +77,7 @@ AppModule = __decorate([
83
77
  LoggerModule.forRoot({
84
78
  service: {
85
79
  name: "prismalens-api",
86
- version: "0.1.0",
80
+ version: resolveServiceVersion(),
87
81
  environment: process.env.NODE_ENV ?? "development",
88
82
  },
89
83
  }),
@@ -125,27 +119,20 @@ AppModule = __decorate([
125
119
  UsersModule,
126
120
  SetupModule,
127
121
  SettingsModule,
128
- LicenseModule,
129
122
  HealthModule,
130
123
  DispatchModule,
131
- InternalModule,
132
- DevSeedModule,
133
124
  ...staticModule(),
134
125
  EventsModule,
135
126
  ServicesModule,
136
127
  RepositoriesModule,
137
- DeploymentsModule,
138
128
  AlertsModule,
139
129
  AlertMappingModule,
140
- CorrelationModule,
141
130
  IncidentsModule,
142
131
  InvestigationsModule,
143
132
  TimelineModule,
144
- PostmortemsModule,
145
133
  WebhooksModule,
146
134
  RecommendationsModule,
147
135
  IntegrationsModule,
148
- ServiceDiscoveryModule,
149
136
  OpenAPIModule,
150
137
  ],
151
138
  controllers: [AppController],
@@ -33,10 +33,7 @@ let AuthGuard = class AuthGuard {
33
33
  if (!session?.user) {
34
34
  throw new UnauthorizedException("Invalid session");
35
35
  }
36
- request.user = {
37
- ...session.user,
38
- role: session.user.role ?? undefined,
39
- };
36
+ request.user = session.user;
40
37
  request.session = session.session;
41
38
  return true;
42
39
  }