prismalens 0.4.0 → 0.5.0-rc.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 (523) hide show
  1. package/README.md +21 -347
  2. package/dist/bin/prismalens.js +1 -0
  3. package/dist/{chunk-TGP6QTFO.js → chunk-5STPIUCJ.js} +4 -10
  4. package/dist/{chunk-PVQVFRIV.js → chunk-JX2QAP6S.js} +160 -38
  5. package/dist/{chunk-SSEIMBQ2.js → chunk-LAYYJBZ5.js} +33 -5
  6. package/dist/{chunk-CTKCK7QT.js → chunk-TSW5RW5B.js} +109 -20
  7. package/dist/{chunk-V6M6ISKI.js → chunk-VI32U36Y.js} +1 -1
  8. package/dist/src/cli/auth.js +4 -8
  9. package/dist/src/cli/doctor.js +10 -16
  10. package/dist/src/cli/grouping.js +1 -7
  11. package/dist/src/cli/init.js +2 -7
  12. package/dist/src/cli/investigate.js +4 -10
  13. package/dist/src/cli/listen.js +12 -91
  14. package/dist/src/cli/report.js +1 -3
  15. package/dist/src/cli/serve.js +20 -18
  16. package/dist/src/cli/status.js +1 -3
  17. package/dist/src/cli/up.js +73 -0
  18. package/node_modules/@prismalens/api/dist/src/app.controller.js +39 -0
  19. package/node_modules/@prismalens/api/dist/src/app.module.js +156 -0
  20. package/node_modules/@prismalens/api/dist/src/core/auth/auth.controller.js +41 -0
  21. package/node_modules/@prismalens/api/dist/src/core/auth/auth.guard.js +57 -0
  22. package/node_modules/@prismalens/api/dist/src/core/auth/auth.module.js +24 -0
  23. package/node_modules/@prismalens/api/dist/src/core/auth/auth.service.js +114 -0
  24. package/node_modules/@prismalens/api/dist/src/core/auth/current-user.decorator.js +10 -0
  25. package/node_modules/@prismalens/api/dist/src/core/auth/index.js +7 -0
  26. package/node_modules/@prismalens/api/dist/src/core/auth/orpc-auth.utils.js +39 -0
  27. package/node_modules/@prismalens/api/dist/src/core/auth/public.decorator.js +4 -0
  28. package/node_modules/@prismalens/api/dist/src/core/auth/session-cookies.js +8 -0
  29. package/node_modules/@prismalens/api/dist/src/core/license/decorators.js +24 -0
  30. package/node_modules/@prismalens/api/dist/src/core/license/license.constants.js +60 -0
  31. package/node_modules/@prismalens/api/dist/src/core/license/license.controller.js +122 -0
  32. package/node_modules/@prismalens/api/dist/src/core/license/license.guard.js +96 -0
  33. package/node_modules/@prismalens/api/dist/src/core/license/license.module.js +37 -0
  34. package/node_modules/@prismalens/api/dist/src/core/license/license.service.js +252 -0
  35. package/node_modules/@prismalens/api/dist/src/core/prisma/prisma.module.js +19 -0
  36. package/node_modules/@prismalens/api/dist/src/core/prisma/prisma.service.js +134 -0
  37. package/node_modules/@prismalens/api/dist/src/core/settings/llm-settings.service.js +438 -0
  38. package/node_modules/@prismalens/api/dist/src/core/settings/settings.controller.js +117 -0
  39. package/node_modules/@prismalens/api/dist/src/core/settings/settings.module.js +24 -0
  40. package/node_modules/@prismalens/api/dist/src/core/settings/settings.service.js +219 -0
  41. package/node_modules/@prismalens/api/dist/src/core/setup/setup.controller.js +134 -0
  42. package/node_modules/@prismalens/api/dist/src/core/setup/setup.module.js +21 -0
  43. package/node_modules/@prismalens/api/dist/src/core/users/dto/create-user.dto.js +30 -0
  44. package/node_modules/@prismalens/api/dist/src/core/users/users.controller.js +14 -0
  45. package/node_modules/@prismalens/api/dist/src/core/users/users.module.js +22 -0
  46. package/node_modules/@prismalens/api/dist/src/core/users/users.service.js +63 -0
  47. package/node_modules/@prismalens/api/dist/src/infrastructure/dev-seed/dev-seed.module.js +21 -0
  48. package/node_modules/@prismalens/api/dist/src/infrastructure/dev-seed/dev-seed.service.js +60 -0
  49. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatch.module.js +22 -0
  50. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatch.service.js +154 -0
  51. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/dispatcher.js +168 -0
  52. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/event-bus.js +51 -0
  53. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/event-bus.module.js +19 -0
  54. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/fork-runner.js +153 -0
  55. package/node_modules/@prismalens/api/dist/src/infrastructure/dispatch/job-store.js +198 -0
  56. package/node_modules/@prismalens/api/dist/src/infrastructure/health/health.controller.js +63 -0
  57. package/node_modules/@prismalens/api/dist/src/infrastructure/health/health.module.js +19 -0
  58. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/dto/create-timeline-entry.dto.js +48 -0
  59. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/dto/index.js +5 -0
  60. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/dto/investigation-result.dto.js +75 -0
  61. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/dto/recommendation.dto.js +56 -0
  62. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/dto/update-investigation-status.dto.js +37 -0
  63. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/guards/internal.guard.js +41 -0
  64. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal-integrations.controller.js +60 -0
  65. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal-investigations.controller.js +111 -0
  66. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal-settings.controller.js +49 -0
  67. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal-timeline.controller.js +52 -0
  68. package/node_modules/@prismalens/api/dist/src/infrastructure/internal/internal.module.js +39 -0
  69. package/node_modules/@prismalens/api/dist/src/main.js +152 -0
  70. package/node_modules/@prismalens/api/dist/src/middlewares/helmet.middleware.js +34 -0
  71. package/node_modules/@prismalens/api/dist/src/middlewares/host-allowlist.middleware.js +123 -0
  72. package/node_modules/@prismalens/api/dist/src/middlewares/webhook-cors.middleware.js +28 -0
  73. package/node_modules/@prismalens/api/dist/src/middlewares/webhook-raw-body.middleware.js +24 -0
  74. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/alert-mapping.controller.js +124 -0
  75. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/alert-mapping.module.js +22 -0
  76. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/alert-mapping.service.js +331 -0
  77. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/dto/create-mapping-rule.dto.js +9 -0
  78. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/dto/index.js +3 -0
  79. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/dto/test-mapping.dto.js +8 -0
  80. package/node_modules/@prismalens/api/dist/src/modules/alert-mapping/dto/update-mapping-rule.dto.js +9 -0
  81. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.controller.js +241 -0
  82. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.module.js +26 -0
  83. package/node_modules/@prismalens/api/dist/src/modules/alerts/alerts.service.js +342 -0
  84. package/node_modules/@prismalens/api/dist/src/modules/alerts/dto/create-alert.dto.js +75 -0
  85. package/node_modules/@prismalens/api/dist/src/modules/alerts/dto/index.js +3 -0
  86. package/node_modules/@prismalens/api/dist/src/modules/alerts/dto/update-alert.dto.js +51 -0
  87. package/node_modules/@prismalens/api/dist/src/modules/correlation/correlation.controller.js +108 -0
  88. package/node_modules/@prismalens/api/dist/src/modules/correlation/correlation.module.js +22 -0
  89. package/node_modules/@prismalens/api/dist/src/modules/correlation/correlation.service.js +391 -0
  90. package/node_modules/@prismalens/api/dist/src/modules/correlation/dto/create-correlation-rule.dto.js +97 -0
  91. package/node_modules/@prismalens/api/dist/src/modules/correlation/dto/index.js +3 -0
  92. package/node_modules/@prismalens/api/dist/src/modules/correlation/dto/update-correlation-rule.dto.js +98 -0
  93. package/node_modules/@prismalens/api/dist/src/modules/deployments/deployments.controller.js +95 -0
  94. package/node_modules/@prismalens/api/dist/src/modules/deployments/deployments.module.js +22 -0
  95. package/node_modules/@prismalens/api/dist/src/modules/deployments/deployments.service.js +140 -0
  96. package/node_modules/@prismalens/api/dist/src/modules/deployments/dto/create-deployment.dto.js +92 -0
  97. package/node_modules/@prismalens/api/dist/src/modules/deployments/dto/index.js +3 -0
  98. package/node_modules/@prismalens/api/dist/src/modules/deployments/dto/link-deployment.dto.js +18 -0
  99. package/node_modules/@prismalens/api/dist/src/modules/events/dto/create-event.dto.js +9 -0
  100. package/node_modules/@prismalens/api/dist/src/modules/events/dto/index.js +2 -0
  101. package/node_modules/@prismalens/api/dist/src/modules/events/events.controller.js +65 -0
  102. package/node_modules/@prismalens/api/dist/src/modules/events/events.module.js +20 -0
  103. package/node_modules/@prismalens/api/dist/src/modules/events/events.service.js +124 -0
  104. package/node_modules/@prismalens/api/dist/src/modules/incidents/dto/add-alert.dto.js +4 -0
  105. package/node_modules/@prismalens/api/dist/src/modules/incidents/dto/create-incident.dto.js +11 -0
  106. package/node_modules/@prismalens/api/dist/src/modules/incidents/dto/index.js +3 -0
  107. package/node_modules/@prismalens/api/dist/src/modules/incidents/dto/update-incident.dto.js +13 -0
  108. package/node_modules/@prismalens/api/dist/src/modules/incidents/incidents.controller.js +306 -0
  109. package/node_modules/@prismalens/api/dist/src/modules/incidents/incidents.module.js +28 -0
  110. package/node_modules/@prismalens/api/dist/src/modules/incidents/incidents.service.js +376 -0
  111. package/node_modules/@prismalens/api/dist/src/modules/integrations/crypto/credentials.service.js +52 -0
  112. package/node_modules/@prismalens/api/dist/src/modules/integrations/dto/create-connection.dto.js +102 -0
  113. package/node_modules/@prismalens/api/dist/src/modules/integrations/dto/update-connection.dto.js +96 -0
  114. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.controller.js +327 -0
  115. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.module.js +32 -0
  116. package/node_modules/@prismalens/api/dist/src/modules/integrations/integrations.service.js +797 -0
  117. package/node_modules/@prismalens/api/dist/src/modules/integrations/oauth/oauth.controller.js +156 -0
  118. package/node_modules/@prismalens/api/dist/src/modules/integrations/oauth/oauth.service.js +240 -0
  119. package/node_modules/@prismalens/api/dist/src/modules/integrations/token-refresh.processor.js +112 -0
  120. package/node_modules/@prismalens/api/dist/src/modules/investigations/dto/create-investigation.dto.js +4 -0
  121. package/node_modules/@prismalens/api/dist/src/modules/investigations/dto/index.js +2 -0
  122. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigation-stream.controller.js +70 -0
  123. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigation-trigger.service.js +330 -0
  124. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigation-update.service.js +158 -0
  125. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.controller.js +209 -0
  126. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.module.js +48 -0
  127. package/node_modules/@prismalens/api/dist/src/modules/investigations/investigations.service.js +363 -0
  128. package/node_modules/@prismalens/api/dist/src/modules/investigations/sse-writer.js +90 -0
  129. package/node_modules/@prismalens/api/dist/src/modules/investigations/stream-relay.service.js +167 -0
  130. package/node_modules/@prismalens/api/dist/src/modules/openapi/openapi.controller.js +134 -0
  131. package/node_modules/@prismalens/api/dist/src/modules/openapi/openapi.module.js +19 -0
  132. package/node_modules/@prismalens/api/dist/src/modules/overlay/overlay.logic.js +168 -0
  133. package/node_modules/@prismalens/api/dist/src/modules/overlay/overlay.module.js +18 -0
  134. package/node_modules/@prismalens/api/dist/src/modules/overlay/overlay.service.js +242 -0
  135. package/node_modules/@prismalens/api/dist/src/modules/postmortems/dto/index.js +2 -0
  136. package/node_modules/@prismalens/api/dist/src/modules/postmortems/postmortems.controller.js +96 -0
  137. package/node_modules/@prismalens/api/dist/src/modules/postmortems/postmortems.module.js +20 -0
  138. package/node_modules/@prismalens/api/dist/src/modules/postmortems/postmortems.service.js +185 -0
  139. package/node_modules/@prismalens/api/dist/src/modules/recommendations/dto/index.js +2 -0
  140. package/node_modules/@prismalens/api/dist/src/modules/recommendations/dto/update-recommendation.dto.js +32 -0
  141. package/node_modules/@prismalens/api/dist/src/modules/recommendations/recommendations.controller.js +110 -0
  142. package/node_modules/@prismalens/api/dist/src/modules/recommendations/recommendations.module.js +20 -0
  143. package/node_modules/@prismalens/api/dist/src/modules/recommendations/recommendations.service.js +136 -0
  144. package/node_modules/@prismalens/api/dist/src/modules/repositories/dto/create-repository.dto.js +68 -0
  145. package/node_modules/@prismalens/api/dist/src/modules/repositories/dto/index.js +3 -0
  146. package/node_modules/@prismalens/api/dist/src/modules/repositories/dto/link-repository.dto.js +30 -0
  147. package/node_modules/@prismalens/api/dist/src/modules/repositories/repositories.controller.js +105 -0
  148. package/node_modules/@prismalens/api/dist/src/modules/repositories/repositories.module.js +22 -0
  149. package/node_modules/@prismalens/api/dist/src/modules/repositories/repositories.service.js +129 -0
  150. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/dto/accept-bulk-suggestions.dto.js +5 -0
  151. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/dto/accept-suggestion.dto.js +8 -0
  152. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/dto/index.js +3 -0
  153. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/service-discovery.controller.js +127 -0
  154. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/service-discovery.module.js +23 -0
  155. package/node_modules/@prismalens/api/dist/src/modules/service-discovery/service-discovery.service.js +478 -0
  156. package/node_modules/@prismalens/api/dist/src/modules/services/dto/add-dependency.dto.js +32 -0
  157. package/node_modules/@prismalens/api/dist/src/modules/services/dto/create-service.dto.js +75 -0
  158. package/node_modules/@prismalens/api/dist/src/modules/services/dto/index.js +4 -0
  159. package/node_modules/@prismalens/api/dist/src/modules/services/dto/update-service.dto.js +69 -0
  160. package/node_modules/@prismalens/api/dist/src/modules/services/services.controller.js +250 -0
  161. package/node_modules/@prismalens/api/dist/src/modules/services/services.module.js +20 -0
  162. package/node_modules/@prismalens/api/dist/src/modules/services/services.service.js +251 -0
  163. package/node_modules/@prismalens/api/dist/src/modules/timeline/dto/create-timeline-entry.dto.js +60 -0
  164. package/node_modules/@prismalens/api/dist/src/modules/timeline/dto/index.js +2 -0
  165. package/node_modules/@prismalens/api/dist/src/modules/timeline/timeline.controller.js +83 -0
  166. package/node_modules/@prismalens/api/dist/src/modules/timeline/timeline.module.js +20 -0
  167. package/node_modules/@prismalens/api/dist/src/modules/timeline/timeline.service.js +94 -0
  168. package/node_modules/@prismalens/api/dist/src/modules/webhooks/dto/generic-webhook.dto.js +327 -0
  169. package/node_modules/@prismalens/api/dist/src/modules/webhooks/dto/index.js +2 -0
  170. package/node_modules/@prismalens/api/dist/src/modules/webhooks/render-webhook-signature.guard.js +62 -0
  171. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhook-signature.guard.js +61 -0
  172. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhooks.controller.js +134 -0
  173. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhooks.module.js +40 -0
  174. package/node_modules/@prismalens/api/dist/src/modules/webhooks/webhooks.service.js +325 -0
  175. package/node_modules/@prismalens/api/dist/src/shared/constants/routes.js +11 -0
  176. package/node_modules/@prismalens/api/dist/src/shared/enums/index.js +20 -0
  177. package/node_modules/@prismalens/api/dist/src/shared/events/investigation-events.js +2 -0
  178. package/node_modules/@prismalens/api/dist/src/shared/utils/json-utils.js +29 -0
  179. package/node_modules/@prismalens/api/dist/src/shared/utils/listen-error.js +9 -0
  180. package/node_modules/@prismalens/api/package.json +12 -0
  181. package/node_modules/@prismalens/api/public/assets/ClientOnly--uuL8w7N.js +1 -0
  182. package/node_modules/@prismalens/api/public/assets/InvestigationCanvas-8hax8RNO.css +1 -0
  183. package/node_modules/@prismalens/api/public/assets/InvestigationCanvas-CcJuvY41.js +3 -0
  184. package/node_modules/@prismalens/api/public/assets/Match-IodEdcgp.js +1 -0
  185. package/node_modules/@prismalens/api/public/assets/MutationError-BHWLJq4N.js +1 -0
  186. package/node_modules/@prismalens/api/public/assets/ProviderModelSelector-Ryr9vYLX.js +1 -0
  187. package/node_modules/@prismalens/api/public/assets/QueryClientProvider-Bnoyi3cC.js +1 -0
  188. package/node_modules/@prismalens/api/public/assets/ServiceFormDialog-pHaDAJww.js +1 -0
  189. package/node_modules/@prismalens/api/public/assets/StatusBadge-DERhIQYG.js +1 -0
  190. package/node_modules/@prismalens/api/public/assets/_authenticated-CoCwzJmL.js +1 -0
  191. package/node_modules/@prismalens/api/public/assets/_authenticated-DWo3H_-8.js +1 -0
  192. package/node_modules/@prismalens/api/public/assets/_id-AdTmLHRt.js +1 -0
  193. package/node_modules/@prismalens/api/public/assets/_id-CU2SszeJ.js +2 -0
  194. package/node_modules/@prismalens/api/public/assets/_id-GkJfdMLx.js +1 -0
  195. package/node_modules/@prismalens/api/public/assets/activity-BuLacqc6.js +1 -0
  196. package/node_modules/@prismalens/api/public/assets/alert-CHk0q15J.js +1 -0
  197. package/node_modules/@prismalens/api/public/assets/alert-dialog-Dugh1jAD.js +1 -0
  198. package/node_modules/@prismalens/api/public/assets/alerts-DQJANT5K.js +1 -0
  199. package/node_modules/@prismalens/api/public/assets/app-vNv-gfip.css +2 -0
  200. package/node_modules/@prismalens/api/public/assets/arrow-left-BEsyjQit.js +1 -0
  201. package/node_modules/@prismalens/api/public/assets/badge-DXW8TquP.js +1 -0
  202. package/node_modules/@prismalens/api/public/assets/bell-CfLfMv3R.js +1 -0
  203. package/node_modules/@prismalens/api/public/assets/button-D2Hz_xyq.js +1 -0
  204. package/node_modules/@prismalens/api/public/assets/card-Cna4whU5.js +1 -0
  205. package/node_modules/@prismalens/api/public/assets/checkbox-FppVo2Ln.js +1 -0
  206. package/node_modules/@prismalens/api/public/assets/chevron-right-bRNDjfxy.js +1 -0
  207. package/node_modules/@prismalens/api/public/assets/circle-CH7vaplC.js +1 -0
  208. package/node_modules/@prismalens/api/public/assets/circle-alert-DJkh1udP.js +1 -0
  209. package/node_modules/@prismalens/api/public/assets/circle-check-big-CPrY1SEO.js +1 -0
  210. package/node_modules/@prismalens/api/public/assets/circle-x-B273d2QJ.js +1 -0
  211. package/node_modules/@prismalens/api/public/assets/clock-DAtaxeP6.js +1 -0
  212. package/node_modules/@prismalens/api/public/assets/collapsible-BjXqvd15.js +1 -0
  213. package/node_modules/@prismalens/api/public/assets/colors-Be4TmXLI.js +1 -0
  214. package/node_modules/@prismalens/api/public/assets/configure-CkIHj-78.js +1 -0
  215. package/node_modules/@prismalens/api/public/assets/data-table-CtWstVgY.js +1 -0
  216. package/node_modules/@prismalens/api/public/assets/dialog-DtF5GTSk.js +1 -0
  217. package/node_modules/@prismalens/api/public/assets/discovery-h-jiCGQG.js +1 -0
  218. package/node_modules/@prismalens/api/public/assets/dist-CZpM8B58.js +1 -0
  219. package/node_modules/@prismalens/api/public/assets/dist-CsWlqBes.js +64 -0
  220. package/node_modules/@prismalens/api/public/assets/empty-state-9sIQayEY.js +1 -0
  221. package/node_modules/@prismalens/api/public/assets/external-link-DA-gFnPk.js +1 -0
  222. package/node_modules/@prismalens/api/public/assets/eye-h_TVSVZd.js +1 -0
  223. package/node_modules/@prismalens/api/public/assets/folder-search-BncFWPmR.js +1 -0
  224. package/node_modules/@prismalens/api/public/assets/formatDistanceToNow-DKEQoStK.js +1 -0
  225. package/node_modules/@prismalens/api/public/assets/github-icon-D4qdxz0P.js +1 -0
  226. package/node_modules/@prismalens/api/public/assets/hooks-C_h3SbKf.js +1 -0
  227. package/node_modules/@prismalens/api/public/assets/incidents-CY8yrmWi.js +1 -0
  228. package/node_modules/@prismalens/api/public/assets/incidents-Ck4tZDab.js +55 -0
  229. package/node_modules/@prismalens/api/public/assets/index-CYBUEgiF.js +68 -0
  230. package/node_modules/@prismalens/api/public/assets/integration-icons-BOs4XGIA.js +1 -0
  231. package/node_modules/@prismalens/api/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  232. package/node_modules/@prismalens/api/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  233. package/node_modules/@prismalens/api/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  234. package/node_modules/@prismalens/api/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  235. package/node_modules/@prismalens/api/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  236. package/node_modules/@prismalens/api/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  237. package/node_modules/@prismalens/api/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  238. package/node_modules/@prismalens/api/public/assets/investigation.utils-CZphvIrc.js +1 -0
  239. package/node_modules/@prismalens/api/public/assets/investigations-BoWNiPy7.js +1 -0
  240. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  241. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  242. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  243. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  244. package/node_modules/@prismalens/api/public/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  245. package/node_modules/@prismalens/api/public/assets/label-DUe0_M5w.js +1 -0
  246. package/node_modules/@prismalens/api/public/assets/layout-CeT3LRF7.js +1 -0
  247. package/node_modules/@prismalens/api/public/assets/lib-hSGK_-Di.js +4 -0
  248. package/node_modules/@prismalens/api/public/assets/lightbulb-DyOhvTqC.js +1 -0
  249. package/node_modules/@prismalens/api/public/assets/link-BrYtRLMx.js +1 -0
  250. package/node_modules/@prismalens/api/public/assets/list-DoJv1VuU.js +1 -0
  251. package/node_modules/@prismalens/api/public/assets/loader-circle-CcKe4gfe.js +1 -0
  252. package/node_modules/@prismalens/api/public/assets/login-Hrq9xVXL.js +1 -0
  253. package/node_modules/@prismalens/api/public/assets/matchContext-DqfdXpUw.js +1 -0
  254. package/node_modules/@prismalens/api/public/assets/message-square-DyJRCl0Z.js +1 -0
  255. package/node_modules/@prismalens/api/public/assets/play-Cl-dxWuH.js +1 -0
  256. package/node_modules/@prismalens/api/public/assets/progress-CniLn3m0.js +6 -0
  257. package/node_modules/@prismalens/api/public/assets/radio-group-B4CFZ8e9.js +1 -0
  258. package/node_modules/@prismalens/api/public/assets/refresh-cw-BUJxeVPZ.js +1 -0
  259. package/node_modules/@prismalens/api/public/assets/root-DLTE-HSj.js +1 -0
  260. package/node_modules/@prismalens/api/public/assets/route-D-xTKyaj.js +1 -0
  261. package/node_modules/@prismalens/api/public/assets/rules-qmpJxYUz.js +1 -0
  262. package/node_modules/@prismalens/api/public/assets/scroll-area-qX4N_Ai-.js +1 -0
  263. package/node_modules/@prismalens/api/public/assets/select-Crre84I0.js +1 -0
  264. package/node_modules/@prismalens/api/public/assets/server-DdoEdVKT.js +1 -0
  265. package/node_modules/@prismalens/api/public/assets/services-BzpauajK.js +1 -0
  266. package/node_modules/@prismalens/api/public/assets/settings-2-COWS2MJc.js +1 -0
  267. package/node_modules/@prismalens/api/public/assets/settings-2WXqxGY5.js +1 -0
  268. package/node_modules/@prismalens/api/public/assets/setup-B77GlS_Y.js +1 -0
  269. package/node_modules/@prismalens/api/public/assets/setup-qJd5KQhM.js +1 -0
  270. package/node_modules/@prismalens/api/public/assets/skeleton-uHoNuB0v.js +1 -0
  271. package/node_modules/@prismalens/api/public/assets/sparkles-BzLskqFE.js +1 -0
  272. package/node_modules/@prismalens/api/public/assets/string-Bg7bf2KD.js +1 -0
  273. package/node_modules/@prismalens/api/public/assets/table-BHtdhI9A.js +1 -0
  274. package/node_modules/@prismalens/api/public/assets/tabs-CNVKT4mJ.js +1 -0
  275. package/node_modules/@prismalens/api/public/assets/tooltip-BmW1p0qe.js +1 -0
  276. package/node_modules/@prismalens/api/public/assets/trash-2-CJHwWyOB.js +1 -0
  277. package/node_modules/@prismalens/api/public/assets/use-investigations-orpc-DU2SE5K2.js +1 -0
  278. package/node_modules/@prismalens/api/public/assets/useStore-BGoeuanS.js +1 -0
  279. package/node_modules/@prismalens/api/public/assets/with-selector-DN3lmfWr.js +1 -0
  280. package/node_modules/@prismalens/api/public/assets/zap-DOu38RFi.js +1 -0
  281. package/node_modules/@prismalens/api/public/index.html +7 -0
  282. package/node_modules/@prismalens/auth/dist/auth.js +111 -0
  283. package/node_modules/@prismalens/auth/dist/client.js +55 -0
  284. package/node_modules/@prismalens/auth/dist/index.js +5 -0
  285. package/node_modules/@prismalens/auth/dist/roles.js +12 -0
  286. package/node_modules/@prismalens/auth/package.json +23 -0
  287. package/node_modules/@prismalens/config/dist/agents.js +15 -0
  288. package/node_modules/@prismalens/config/dist/auth-store.js +65 -0
  289. package/node_modules/@prismalens/config/dist/credentials.js +56 -0
  290. package/node_modules/@prismalens/config/dist/env/database.js +95 -0
  291. package/node_modules/@prismalens/config/dist/env/deployment.js +66 -0
  292. package/node_modules/@prismalens/config/dist/env/dispatch.js +104 -0
  293. package/node_modules/@prismalens/config/dist/env/index.js +13 -0
  294. package/node_modules/@prismalens/config/dist/env/langsmith.js +29 -0
  295. package/node_modules/@prismalens/config/dist/env/llm.js +32 -0
  296. package/node_modules/@prismalens/config/dist/env/logging.js +93 -0
  297. package/node_modules/@prismalens/config/dist/env/readers.js +79 -0
  298. package/node_modules/@prismalens/config/dist/env/server.js +97 -0
  299. package/node_modules/@prismalens/config/dist/env/skills.js +66 -0
  300. package/node_modules/@prismalens/config/dist/env/worker.js +15 -0
  301. package/node_modules/@prismalens/config/dist/harness.js +9 -0
  302. package/node_modules/@prismalens/config/dist/index.js +153 -0
  303. package/node_modules/@prismalens/config/dist/integrations.js +100 -0
  304. package/node_modules/@prismalens/config/dist/investigation.js +61 -0
  305. package/node_modules/@prismalens/config/dist/llm.js +23 -0
  306. package/node_modules/@prismalens/config/dist/mcp.js +21 -0
  307. package/node_modules/@prismalens/config/dist/model.js +101 -0
  308. package/node_modules/@prismalens/config/dist/providers/agents.js +51 -0
  309. package/node_modules/@prismalens/config/dist/providers/harness.js +91 -0
  310. package/node_modules/@prismalens/config/dist/providers/llm.js +170 -0
  311. package/node_modules/@prismalens/config/dist/providers/mcp.js +232 -0
  312. package/node_modules/@prismalens/config/dist/providers/skills.js +10 -0
  313. package/node_modules/@prismalens/config/dist/utils/app-data.js +51 -0
  314. package/node_modules/@prismalens/config/dist/utils/database-url.js +57 -0
  315. package/node_modules/@prismalens/config/dist/utils/encryption-key.js +91 -0
  316. package/node_modules/@prismalens/config/dist/utils/repo.js +228 -0
  317. package/node_modules/@prismalens/config/dist/utils/secrets.js +21 -0
  318. package/node_modules/@prismalens/config/package.json +55 -0
  319. package/node_modules/@prismalens/contracts/dist/contracts/alert-mapping.js +102 -0
  320. package/node_modules/@prismalens/contracts/dist/contracts/alerts.js +156 -0
  321. package/node_modules/@prismalens/contracts/dist/contracts/correlation.js +89 -0
  322. package/node_modules/@prismalens/contracts/dist/contracts/deployments.js +109 -0
  323. package/node_modules/@prismalens/contracts/dist/contracts/events.js +50 -0
  324. package/node_modules/@prismalens/contracts/dist/contracts/incidents.js +141 -0
  325. package/node_modules/@prismalens/contracts/dist/contracts/index.js +63 -0
  326. package/node_modules/@prismalens/contracts/dist/contracts/integrations.js +282 -0
  327. package/node_modules/@prismalens/contracts/dist/contracts/investigations.js +116 -0
  328. package/node_modules/@prismalens/contracts/dist/contracts/postmortems.js +92 -0
  329. package/node_modules/@prismalens/contracts/dist/contracts/recommendations.js +89 -0
  330. package/node_modules/@prismalens/contracts/dist/contracts/repositories.js +111 -0
  331. package/node_modules/@prismalens/contracts/dist/contracts/service-discovery.js +102 -0
  332. package/node_modules/@prismalens/contracts/dist/contracts/services.js +159 -0
  333. package/node_modules/@prismalens/contracts/dist/contracts/settings.js +200 -0
  334. package/node_modules/@prismalens/contracts/dist/contracts/setup.js +100 -0
  335. package/node_modules/@prismalens/contracts/dist/contracts/timeline.js +63 -0
  336. package/node_modules/@prismalens/contracts/dist/contracts/webhooks.js +49 -0
  337. package/node_modules/@prismalens/contracts/dist/index.js +25 -0
  338. package/node_modules/@prismalens/contracts/dist/schemas/alert-mapping.js +126 -0
  339. package/node_modules/@prismalens/contracts/dist/schemas/alert.js +162 -0
  340. package/node_modules/@prismalens/contracts/dist/schemas/change-event.js +20 -0
  341. package/node_modules/@prismalens/contracts/dist/schemas/common.js +272 -0
  342. package/node_modules/@prismalens/contracts/dist/schemas/context-pack.js +95 -0
  343. package/node_modules/@prismalens/contracts/dist/schemas/correlation.js +52 -0
  344. package/node_modules/@prismalens/contracts/dist/schemas/deployment.js +49 -0
  345. package/node_modules/@prismalens/contracts/dist/schemas/event.js +40 -0
  346. package/node_modules/@prismalens/contracts/dist/schemas/incident-similarity.js +17 -0
  347. package/node_modules/@prismalens/contracts/dist/schemas/incident.js +120 -0
  348. package/node_modules/@prismalens/contracts/dist/schemas/index.js +32 -0
  349. package/node_modules/@prismalens/contracts/dist/schemas/integration.js +226 -0
  350. package/node_modules/@prismalens/contracts/dist/schemas/investigation.js +600 -0
  351. package/node_modules/@prismalens/contracts/dist/schemas/license.js +29 -0
  352. package/node_modules/@prismalens/contracts/dist/schemas/overlay.js +77 -0
  353. package/node_modules/@prismalens/contracts/dist/schemas/postmortem.js +71 -0
  354. package/node_modules/@prismalens/contracts/dist/schemas/recommendation.js +63 -0
  355. package/node_modules/@prismalens/contracts/dist/schemas/repository.js +56 -0
  356. package/node_modules/@prismalens/contracts/dist/schemas/service-discovery.js +74 -0
  357. package/node_modules/@prismalens/contracts/dist/schemas/service.js +143 -0
  358. package/node_modules/@prismalens/contracts/dist/schemas/settings.js +338 -0
  359. package/node_modules/@prismalens/contracts/dist/schemas/timeline.js +52 -0
  360. package/node_modules/@prismalens/contracts/dist/schemas/webhook.js +90 -0
  361. package/node_modules/@prismalens/contracts/package.json +27 -0
  362. package/node_modules/@prismalens/database/dist/client.js +46 -0
  363. package/node_modules/@prismalens/database/dist/index.js +4 -0
  364. package/node_modules/@prismalens/database/dist/prisma/generated/client.js +10 -0
  365. package/node_modules/@prismalens/database/dist/prisma/generated/commonInputTypes.js +2 -0
  366. package/node_modules/@prismalens/database/dist/prisma/generated/enums.js +2 -0
  367. package/node_modules/@prismalens/database/dist/prisma/generated/internal/class.js +39 -0
  368. package/node_modules/@prismalens/database/dist/prisma/generated/internal/prismaNamespace.js +522 -0
  369. package/node_modules/@prismalens/database/dist/prisma/generated/models/Account.js +2 -0
  370. package/node_modules/@prismalens/database/dist/prisma/generated/models/Alert.js +2 -0
  371. package/node_modules/@prismalens/database/dist/prisma/generated/models/AlertMappingRule.js +2 -0
  372. package/node_modules/@prismalens/database/dist/prisma/generated/models/ChangeEvent.js +2 -0
  373. package/node_modules/@prismalens/database/dist/prisma/generated/models/Connection.js +2 -0
  374. package/node_modules/@prismalens/database/dist/prisma/generated/models/CorrelationRule.js +2 -0
  375. package/node_modules/@prismalens/database/dist/prisma/generated/models/Deployment.js +2 -0
  376. package/node_modules/@prismalens/database/dist/prisma/generated/models/Event.js +2 -0
  377. package/node_modules/@prismalens/database/dist/prisma/generated/models/Incident.js +2 -0
  378. package/node_modules/@prismalens/database/dist/prisma/generated/models/IncidentSimilarity.js +2 -0
  379. package/node_modules/@prismalens/database/dist/prisma/generated/models/Integration.js +2 -0
  380. package/node_modules/@prismalens/database/dist/prisma/generated/models/Investigation.js +2 -0
  381. package/node_modules/@prismalens/database/dist/prisma/generated/models/InvestigationEvent.js +2 -0
  382. package/node_modules/@prismalens/database/dist/prisma/generated/models/Invitation.js +2 -0
  383. package/node_modules/@prismalens/database/dist/prisma/generated/models/Job.js +2 -0
  384. package/node_modules/@prismalens/database/dist/prisma/generated/models/LicenseInfo.js +2 -0
  385. package/node_modules/@prismalens/database/dist/prisma/generated/models/Member.js +2 -0
  386. package/node_modules/@prismalens/database/dist/prisma/generated/models/OAuthState.js +2 -0
  387. package/node_modules/@prismalens/database/dist/prisma/generated/models/Organization.js +2 -0
  388. package/node_modules/@prismalens/database/dist/prisma/generated/models/Postmortem.js +2 -0
  389. package/node_modules/@prismalens/database/dist/prisma/generated/models/Recommendation.js +2 -0
  390. package/node_modules/@prismalens/database/dist/prisma/generated/models/Repository.js +2 -0
  391. package/node_modules/@prismalens/database/dist/prisma/generated/models/Service.js +2 -0
  392. package/node_modules/@prismalens/database/dist/prisma/generated/models/ServiceDependency.js +2 -0
  393. package/node_modules/@prismalens/database/dist/prisma/generated/models/ServiceIntegration.js +2 -0
  394. package/node_modules/@prismalens/database/dist/prisma/generated/models/ServiceRepository.js +2 -0
  395. package/node_modules/@prismalens/database/dist/prisma/generated/models/ServiceSuggestion.js +2 -0
  396. package/node_modules/@prismalens/database/dist/prisma/generated/models/Session.js +2 -0
  397. package/node_modules/@prismalens/database/dist/prisma/generated/models/Setting.js +2 -0
  398. package/node_modules/@prismalens/database/dist/prisma/generated/models/TimelineEntry.js +2 -0
  399. package/node_modules/@prismalens/database/dist/prisma/generated/models/User.js +2 -0
  400. package/node_modules/@prismalens/database/dist/prisma/generated/models/Verification.js +2 -0
  401. package/node_modules/@prismalens/database/dist/prisma/generated/models.js +2 -0
  402. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260803122809_init/migration.sql +1058 -0
  403. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260811182203_drop_agent_tool_executions/migration.sql +23 -0
  404. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260812180006_alert_dedup_key_not_unique/migration.sql +5 -0
  405. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260822161331_alert_external_id_not_unique/migration.sql +5 -0
  406. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260823073903_account_issuer/migration.sql +14 -0
  407. package/node_modules/@prismalens/database/dist/prisma/pg/schema/20260826180000_account_issuer_account_id_unique/migration.sql +22 -0
  408. package/node_modules/@prismalens/database/dist/prisma/pg/schema/app.prisma +981 -0
  409. package/node_modules/@prismalens/database/dist/prisma/pg/schema/auth.prisma +159 -0
  410. package/node_modules/@prismalens/database/dist/prisma/pg/schema/integrations.prisma +187 -0
  411. package/node_modules/@prismalens/database/dist/prisma/pg/schema/main.prisma +17 -0
  412. package/node_modules/@prismalens/database/dist/prisma/pg/schema/migration_lock.toml +3 -0
  413. package/node_modules/@prismalens/database/dist/prisma/seed.js +24 -0
  414. package/node_modules/@prismalens/database/dist/prisma/seeds/demo-data.js +382 -0
  415. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260803122809_init/migration.sql +819 -0
  416. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260811182203_drop_agent_tool_executions/migration.sql +16 -0
  417. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260812180006_alert_dedup_key_not_unique/migration.sql +5 -0
  418. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260822161331_alert_external_id_not_unique/migration.sql +5 -0
  419. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260823073903_account_issuer/migration.sql +32 -0
  420. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/20260826180000_account_issuer_account_id_unique/migration.sql +2 -0
  421. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/app.prisma +620 -0
  422. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/auth.prisma +159 -0
  423. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/integrations.prisma +156 -0
  424. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/main.prisma +17 -0
  425. package/node_modules/@prismalens/database/dist/prisma/sqlite/schema/migration_lock.toml +3 -0
  426. package/node_modules/@prismalens/database/dist/src/migrator/index.js +3 -0
  427. package/node_modules/@prismalens/database/dist/src/migrator/migration-source.js +55 -0
  428. package/node_modules/@prismalens/database/dist/src/migrator/runner.js +0 -0
  429. package/node_modules/@prismalens/database/package.json +23 -0
  430. package/node_modules/@prismalens/engine/dist/adapter/acp-adapter.js +242 -0
  431. package/node_modules/@prismalens/engine/dist/adapter/claude-code-adapter.js +195 -0
  432. package/node_modules/@prismalens/engine/dist/config/resolve.js +212 -0
  433. package/node_modules/@prismalens/engine/dist/index.js +30 -0
  434. package/node_modules/@prismalens/engine/dist/runner/acp-client.js +292 -0
  435. package/node_modules/@prismalens/engine/dist/runner/acp-run-branch.js +46 -0
  436. package/node_modules/@prismalens/engine/dist/runner/claude-code-runner.js +147 -0
  437. package/node_modules/@prismalens/engine/dist/runner/claude-code-sandbox-spawn.js +61 -0
  438. package/node_modules/@prismalens/engine/dist/sandbox/e2b.js +374 -0
  439. package/node_modules/@prismalens/engine/dist/sandbox/process-floor.js +100 -0
  440. package/node_modules/@prismalens/engine/dist/sandbox/select.js +104 -0
  441. package/node_modules/@prismalens/engine/dist/sandbox/srt.js +397 -0
  442. package/node_modules/@prismalens/engine/dist/sandbox/types.js +4 -0
  443. package/node_modules/@prismalens/engine/dist/sandbox/wsl.js +22 -0
  444. package/node_modules/@prismalens/engine/dist/supervisor/alert-source.js +47 -0
  445. package/node_modules/@prismalens/engine/dist/supervisor/conductor.js +88 -0
  446. package/node_modules/@prismalens/engine/dist/supervisor/decompose.js +364 -0
  447. package/node_modules/@prismalens/engine/dist/supervisor/fan-out.js +164 -0
  448. package/node_modules/@prismalens/engine/dist/supervisor/investigate.js +405 -0
  449. package/node_modules/@prismalens/engine/dist/supervisor/synthesize.js +474 -0
  450. package/node_modules/@prismalens/engine/dist/tools/provisioning.js +13 -0
  451. package/node_modules/@prismalens/engine/dist/tools/types.js +4 -0
  452. package/node_modules/@prismalens/engine/package.json +19 -0
  453. package/node_modules/@prismalens/integrations/dist/engine/auth-manager.js +170 -0
  454. package/node_modules/@prismalens/integrations/dist/engine/capability-check.js +62 -0
  455. package/node_modules/@prismalens/integrations/dist/engine/errors.js +59 -0
  456. package/node_modules/@prismalens/integrations/dist/engine/github-app-flow.js +151 -0
  457. package/node_modules/@prismalens/integrations/dist/engine/index.js +13 -0
  458. package/node_modules/@prismalens/integrations/dist/engine/interpolate.js +35 -0
  459. package/node_modules/@prismalens/integrations/dist/engine/oauth2-flow.js +188 -0
  460. package/node_modules/@prismalens/integrations/dist/engine/permission-check.js +58 -0
  461. package/node_modules/@prismalens/integrations/dist/engine/provider-http-error.js +52 -0
  462. package/node_modules/@prismalens/integrations/dist/engine/token-refresh.js +214 -0
  463. package/node_modules/@prismalens/integrations/dist/engine/token-vault.js +121 -0
  464. package/node_modules/@prismalens/integrations/dist/index.js +12 -0
  465. package/node_modules/@prismalens/integrations/dist/providers/deployment.interface.js +4 -0
  466. package/node_modules/@prismalens/integrations/dist/providers/git.interface.js +4 -0
  467. package/node_modules/@prismalens/integrations/dist/providers/github/github.adapter.js +181 -0
  468. package/node_modules/@prismalens/integrations/dist/providers/github/index.js +4 -0
  469. package/node_modules/@prismalens/integrations/dist/providers/index.js +57 -0
  470. package/node_modules/@prismalens/integrations/dist/providers/render/index.js +4 -0
  471. package/node_modules/@prismalens/integrations/dist/providers/render/render.adapter.js +139 -0
  472. package/node_modules/@prismalens/integrations/dist/providers/types.js +4 -0
  473. package/node_modules/@prismalens/integrations/dist/providers/vercel/index.js +4 -0
  474. package/node_modules/@prismalens/integrations/dist/providers/vercel/vercel.adapter.js +109 -0
  475. package/node_modules/@prismalens/integrations/dist/templates/github.js +200 -0
  476. package/node_modules/@prismalens/integrations/dist/templates/index.js +38 -0
  477. package/node_modules/@prismalens/integrations/dist/templates/prometheus.js +62 -0
  478. package/node_modules/@prismalens/integrations/dist/templates/render.js +47 -0
  479. package/node_modules/@prismalens/integrations/dist/templates/slack.js +110 -0
  480. package/node_modules/@prismalens/integrations/dist/templates/vercel.js +47 -0
  481. package/node_modules/@prismalens/integrations/dist/types.js +42 -0
  482. package/node_modules/@prismalens/integrations/package.json +27 -0
  483. package/node_modules/@prismalens/logger/dist/core/context.js +120 -0
  484. package/node_modules/@prismalens/logger/dist/core/formatter.js +128 -0
  485. package/node_modules/@prismalens/logger/dist/core/index.js +7 -0
  486. package/node_modules/@prismalens/logger/dist/core/logger.js +230 -0
  487. package/node_modules/@prismalens/logger/dist/core/sampler.js +134 -0
  488. package/node_modules/@prismalens/logger/dist/index.js +63 -0
  489. package/node_modules/@prismalens/logger/dist/integrations/nestjs/index.js +6 -0
  490. package/node_modules/@prismalens/logger/dist/integrations/nestjs/logger.module.js +140 -0
  491. package/node_modules/@prismalens/logger/dist/integrations/nestjs/logger.service.js +181 -0
  492. package/node_modules/@prismalens/logger/dist/integrations/nestjs/request.interceptor.js +209 -0
  493. package/node_modules/@prismalens/logger/dist/integrations/standalone/create-logger.js +105 -0
  494. package/node_modules/@prismalens/logger/dist/integrations/standalone/index.js +4 -0
  495. package/node_modules/@prismalens/logger/dist/transports/console.transport.js +24 -0
  496. package/node_modules/@prismalens/logger/dist/transports/file.transport.js +147 -0
  497. package/node_modules/@prismalens/logger/dist/transports/index.js +6 -0
  498. package/node_modules/@prismalens/logger/dist/transports/transport.js +4 -0
  499. package/node_modules/@prismalens/logger/dist/types/index.js +6 -0
  500. package/node_modules/@prismalens/logger/dist/types/log-entry.js +4 -0
  501. package/node_modules/@prismalens/logger/dist/types/sampling.js +4 -0
  502. package/node_modules/@prismalens/logger/dist/types/wide-event.js +4 -0
  503. package/node_modules/@prismalens/logger/dist/utils/id-generator.js +27 -0
  504. package/node_modules/@prismalens/logger/dist/utils/index.js +6 -0
  505. package/node_modules/@prismalens/logger/dist/utils/redaction.js +186 -0
  506. package/node_modules/@prismalens/logger/dist/utils/truncation.js +106 -0
  507. package/node_modules/@prismalens/logger/package.json +27 -0
  508. package/node_modules/@prismalens/worker/dist/config.js +5 -0
  509. package/node_modules/@prismalens/worker/dist/db-investigation-store.js +160 -0
  510. package/node_modules/@prismalens/worker/dist/index.js +162 -0
  511. package/node_modules/@prismalens/worker/dist/internal-url.js +20 -0
  512. package/node_modules/@prismalens/worker/dist/orpc-client.js +17 -0
  513. package/node_modules/@prismalens/worker/dist/processor.js +734 -0
  514. package/node_modules/@prismalens/worker/dist/protocol.js +13 -0
  515. package/node_modules/@prismalens/worker/dist/types.js +3 -0
  516. package/node_modules/@prismalens/worker/package.json +23 -0
  517. package/package.json +102 -70
  518. package/dist/chunk-2Z7QZSIS.js +0 -20
  519. package/dist/chunk-5BT3XQOG.js +0 -2990
  520. package/dist/chunk-6N4PHBII.js +0 -30
  521. package/dist/chunk-CVSS5JPC.js +0 -130
  522. package/dist/chunk-QDK5PAI3.js +0 -155
  523. package/dist/chunk-XH6DIKTA.js +0 -83
package/README.md CHANGED
@@ -1,370 +1,44 @@
1
1
  # prismalens
2
2
 
3
- The PrismaLens **investigation engine CLI** — the `prismalens` (alias `pl`) binary,
4
- published on npm as the unscoped [`prismalens`](https://www.npmjs.com/package/prismalens) package.
5
-
6
- Per **ADR-0010**, the engine *is* a CLI: the desktop app and web API drive it
7
- rather than embedding it. The CLI is a thin **Tier-1 supervisor** that rents a
8
- **Tier-2 agent harness** (ADR-0008) to do the investigative legwork, then reduces the
9
- harness's canonical event stream into an **ordered-evidence report** (ADR-0002 —
10
- hypotheses ranked most-to-least plausible, with supporting/contradicting
11
- evidence; no numeric confidence scores).
12
-
13
- - **Tier-1 (supervisor):** seeds the investigation from a firing alert, drives the
14
- rented harness live, and synthesizes the final report (the "reduce" step) using
15
- an OpenAI-compatible model.
16
- - **Tier-2 (rented harness):** one of
17
- - `deepagents` — driven over **ACP**,
18
- - `claude-code` — driven over the **Claude Agent SDK**,
19
- - `codex` — **stubbed** (not implemented; selecting it throws).
20
-
21
- ## How the harness is contained
22
-
23
- By default prismalens removes the harness's edit tools (`Edit`, `Write`,
24
- `MultiEdit`, `NotebookEdit`). That is a **guardrail, not a security boundary**
25
- (ADR-0017): the shell is untouched, so writes remain possible via `Bash`. It is
26
- there to stop a *helpful* agent from editing the repo it was asked to investigate
27
- — it will not stop a determined one.
28
-
29
- **Without a sandbox, the harness runs as you** — your machine, your credentials,
30
- your shell — exactly as if you had invoked the agent CLI yourself. prismalens
31
- makes no safety claim in this mode, and none of the above should be read as one.
32
-
33
- The **only** real boundary is an enforced sandbox (`--sandbox srt` or `e2b`,
34
- ADR-0020): an OS-level box in which your host and credentials are read-only, the
35
- harness gets a read-write **workspace**, and network egress is **allowlisted**.
36
- Note that this is *confined writes*, not "read-only" — an investigation has to be
37
- able to clone a repo and download artifacts. `--sandbox auto` is not yet an
38
- enforced default; it can degrade to an unenforced floor.
39
-
40
- Provider credentials are **BYO-key** (ADR-0006), resolved from the environment or
41
- the local auth store — never hard-bound in the CLI.
42
-
43
- Every run is persisted to a durable workspace under `~/.prismalens/runs/<runId>/`
44
- (`events.jsonl` + `report.json` + `session.json`), regardless of how it was
45
- invoked.
46
-
47
- ---
3
+ PrismaLens is an AI-powered root-cause investigation tool for on-call engineers. It analyzes firing alerts against your repositories and telemetry, producing an ordered-evidence report that ranks hypotheses by observed evidence without synthetic confidence scores. The CLI runs standalone or boots the full local application.
48
4
 
49
5
  ## Install
50
6
 
51
- Requires Node.js >= 22.
7
+ Requires Node.js 24+.
52
8
 
53
9
  ```bash
54
- # one-off, nothing installed globally
55
- npx prismalens doctor
56
-
57
- # or install the `prismalens` / `pl` bins globally
58
10
  npm install -g prismalens
59
11
  ```
60
12
 
61
- ## Build from source
62
-
63
- This package lives in the pnpm + turbo monorepo and is consumed by the rest of the
64
- platform via `workspace:*`.
65
-
66
- ```bash
67
- # from the repo root
68
- pnpm install
69
-
70
- # build the CLI and its workspace deps (@prismalens/contracts, @prismalens/engine)
71
- pnpm build # turbo build (whole monorepo)
72
- # or just this package + its deps:
73
- pnpm --filter prismalens... build
74
- ```
75
-
76
- The build emits `dist/`, exposing two bin entries (identical):
13
+ ## Quick start
77
14
 
78
- ```
79
- prismalens -> dist/bin/prismalens.js
80
- pl -> dist/bin/prismalens.js
81
- ```
82
-
83
- For local development you can skip the build and run the TypeScript entry directly:
15
+ Check the environment, then start the web interface or run an investigation directly:
84
16
 
85
17
  ```bash
86
- # from packages/cli
87
- pnpm dev investigate --query "checkout latency spike" # tsx bin/prismalens.ts ...
18
+ prismalens doctor
19
+ pl up
20
+ pl investigate --repo . --query "checkout latency spike after 14:00 UTC"
88
21
  ```
89
22
 
90
- Run `prismalens doctor` before your first investigation to verify the harness
91
- binary and an LLM credential are present.
92
-
93
- ---
94
-
95
23
  ## Commands
96
24
 
97
- ```
98
- prismalens <command> [flags] # alias: pl
99
-
100
- investigate Run a read-only root-cause investigation of a firing alert.
101
- listen Start a token-authed local HTTP listener for Alertmanager webhooks.
102
- serve Run the JSON-RPC 2.0 server over stdio (the LIVE channel for apps).
103
- doctor Preflight-check the investigation environment.
104
- init Scaffold a prismalens.config.yaml in the current directory.
105
- auth Manage stored BYO-key credentials for providers.
106
- ```
107
-
108
- ### `investigate`
109
-
110
- Seeds an investigation from a firing alert, rents a Tier-2 harness, streams the
111
- supervisor live (each canonical event is appended to the run workspace and printed
112
- as a one-line timeline entry), and renders the ordered-evidence report.
113
-
114
- The seed alert comes from **one of**:
115
- - a **`FiringAlert` JSON piped on stdin** (also accepts a webhook/Alertmanager-shaped
116
- payload — `alertname`/`severity` are pulled from top-level fields, falling back to
117
- `labels`), or
118
- - `--query` — a one-line description that is synthesized into a minimal alert.
119
-
120
- | Flag | Description |
121
- | --- | --- |
122
- | `--repo <dir>` | Path to the repository the harness investigates (its cwd). Defaults to the current directory. |
123
- | `--query, -q <text>` | Synthesize an alert from this one-line description (alternative to piping a `FiringAlert` JSON on stdin). |
124
- | `--config <path>` | Path to a `prismalens.config.yaml` (skips the upward config search; fails closed for missing, unreadable, or invalid paths). |
125
- | `--model <id>` | Override `agent.model` — a bare model id, e.g. `gpt-oss:120b`. |
126
- | `--max-turns <n>` | Per-run turn ceiling for the default harness. |
127
- | `--harness <name>` | Tier-2 backend: `deepagents` \| `claude-code` \| `codex`. Defaults to `agent.default`. |
128
- | `--json` | Print the `InvestigationReport` as JSON to stdout (suppresses the human renderer; implies quiet). |
129
- | `--output <file>` | Also write the `InvestigationReport` JSON to this file. |
130
- | `--quiet` | Suppress progress + the human renderer (errors still go to stderr). |
131
-
132
- **Exit codes:** `0` on a synthesized report; `1` on a hard input error, a
133
- mid-stream failure, or a **no-evidence** run (a branch that gathered nothing and
134
- errored emits no report — the CLI surfaces the transport failure rather than a
135
- fabricated RCA).
136
-
137
- A `FiringAlert` is `{ alertname, severity, labels, annotations, startsAt }`.
138
-
139
- ### `listen`
140
-
141
- Start a token-authed local HTTP listener for Alertmanager webhooks; each firing alert triggers an investigation (Phase 1 R1).
142
-
143
- ```bash
144
- PRISMALENS_LISTEN_TOKEN=xyz pl listen --config my-stack.yaml
145
- ```
146
-
147
- ### `serve`
148
-
149
- Runs the JSON-RPC 2.0 server over stdio — the live channel apps drive (see
150
- [Driven by an app](#mode-2--driven-by-an-app-prismalens-serve)). No flags.
151
-
152
- ### `doctor`
153
-
154
- Preflight checklist that gates a run. Prints pass/fail per check; exits non-zero
155
- **iff a hard check fails**.
156
-
157
- - **HARD — harness binary on PATH:** `deepagents` → `deepagents-acp`,
158
- `claude-code` → `claude`, `codex` → `codex` (for the harness from config).
159
- - **HARD — an LLM credential:** any of `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` /
160
- `GOOGLE_API_KEY` / `OLLAMA_API_KEY` / `GROQ_API_KEY` / `CUSTOM_LLM_API_KEY`,
161
- a credential stored via `pl auth login` (`auth.json`), or, for `claude-code`,
162
- a signed-in `~/.claude/.credentials.json`. Doctor reports which layer supplied
163
- the credential (`source: env | file | stored | none`). (Performs a live
164
- provider model ping by default, while `--no-ping` skips it.)
165
- - **SOFT — workspace writable:** `workspace.dir` can be created/written.
166
-
167
- ### `init`
168
-
169
- Scaffolds a commented `prismalens.config.yaml` in the current directory, sourced
170
- from the schema defaults so it never drifts from what the engine uses.
171
- Non-interactive: if the file already exists it is left untouched.
172
-
173
- ---
174
-
175
- ## Usage modes
176
-
177
- ### Mode 1 — standalone
178
-
179
- Run an investigation straight from the terminal. Inputs are resolved from the cwd
180
- (or `--repo`), stdin/`--query`, and the merged config; the report is rendered to
181
- the terminal and written to `~/.prismalens/runs/<runId>/`.
182
-
183
- ```bash
184
- # Synthesized alert from a one-liner, deepagents harness, investigating ./my-service
185
- prismalens investigate \
186
- --repo ./my-service \
187
- --query "p99 checkout latency tripled after 14:00 UTC" \
188
- --harness deepagents
189
-
190
- # Pipe a real FiringAlert (or webhook/Alertmanager-shaped) payload on stdin
191
- cat alert.json | prismalens investigate --repo ./my-service
192
-
193
- # Machine-readable report (JSON to stdout) + a copy on disk, no progress chatter
194
- prismalens investigate -q "OOMKilled in payments pod" --json --output report.json
195
-
196
- # Pull the currently-firing alert from Alertmanager and investigate it
197
- curl -s http://localhost:9093/api/v2/alerts?active=true \
198
- | jq '.[0]' \
199
- | prismalens investigate --repo ./payments --harness claude-code
200
- ```
201
-
202
- Durable record for every run:
203
-
204
- ```
205
- ~/.prismalens/
206
- sessions.json # run index (runId -> SessionRecord)
207
- runs/<runId>/session.json # per-run metadata mirror
208
- runs/<runId>/events.jsonl # canonical event stream (one JSON per line)
209
- runs/<runId>/report.json # the synthesized InvestigationReport
210
- ```
211
-
212
- ### Mode 2 — driven by an app (`prismalens serve`)
213
-
214
- This is the **live channel** for the desktop app and web API — it replaces the old
215
- `pl` file-watching reporter. The engine streams via `investigateIncidentStream`
216
- (an async generator); `serve` forwards each canonical event as a notification.
217
- Validated live against the sreforge `booklogr` incident with **both** harnesses
218
- (`deepagents` over ACP, `claude-code` over the Agent SDK). The
219
- `~/.prismalens/runs/<runId>/` workspace remains the durable record.
220
-
221
- **Protocol:** JSON-RPC 2.0 over **stdio**, **newline-delimited** (one JSON value
222
- per line in both directions — requests on stdin; responses + notifications on
223
- stdout).
224
-
225
- **`initialize`**
226
-
227
- ```jsonc
228
- --> {"jsonrpc":"2.0","id":1,"method":"initialize"}
229
- <-- {"jsonrpc":"2.0","id":1,"result":{
230
- "protocolVersion": 1,
231
- "serverInfo": { "name": "prismalens", "version": "0.0.1" }
232
- }}
233
- ```
234
-
235
- **`investigate`** — `params`: `{ alert?: FiringAlert, query?: string, repo?: string,
236
- harness?: string, model?: string, config?: string, service?: string, mode?: string,
237
- dangerouslySkipPermissions?: boolean, sandbox?: string, maxTurns?: number }`.
238
-
239
- CLI-parity params (each falls back to config when absent):
240
-
241
- - `sandbox` — the isolation boundary (ADR-0020), the CLI's `--sandbox`: one of
242
- `auto` | `process` | `srt` | `e2b`. Absent ⇒ `agent.sandbox` from config. A
243
- supplied value that is not a known mode (or a mode the resolved harness cannot
244
- honour, e.g. `srt` on a non-ACP harness) is a `-32602` error — never a silent
245
- fall-back to the cooperative floor.
246
- - `maxTurns` — per-run turn ceiling, the CLI's `--max-turns`: a positive integer.
247
- A supplied zero, negative, fractional, or non-numeric value is a `-32602` error —
248
- never a silently-removed cap.
249
-
250
- Streams a **notification per canonical event** (including the terminal `report`
251
- event), then **resolves the request** with `{ runId, report }`:
252
-
253
- ```jsonc
254
- --> {"jsonrpc":"2.0","id":2,"method":"investigate",
255
- "params":{"query":"checkout latency spike","repo":"./my-service","harness":"deepagents"}}
256
-
257
- // zero or more notifications, in order, as the supervisor streams:
258
- <-- {"jsonrpc":"2.0","method":"investigate/event",
259
- "params":{"runId":"<uuid>","event":{ /* CanonicalEvent */ }}}
260
- // ... agent_step, tool_result, branch_done, (error), then the terminal report event ...
261
-
262
- // finally, the request resolves:
263
- <-- {"jsonrpc":"2.0","id":2,"result":{"runId":"<uuid>","report":{ /* InvestigationReport */ }}}
264
- ```
265
-
266
- `CanonicalEvent.kind` is one of `agent_step` | `tool_result` | `branch_done` |
267
- `error` | `report`. Requests are fire-and-forget on the wire: multiple may run
268
- concurrently and interleave their notifications — each notification carries its
269
- `runId` so a driver can demultiplex.
270
-
271
- **Error codes:**
272
-
273
- | Code | Meaning |
25
+ | Command | Description |
274
26
  | --- | --- |
275
- | `-32700` | Parse error (invalid JSON on a line). |
276
- | `-32600` | Invalid request (not a well-formed JSON-RPC 2.0 request). |
277
- | `-32601` | Method not found. |
278
- | `-32602` | Invalid params (includes an invalid `sandbox` mode or `maxTurns` value, and `resolveInvestigation` input errors — e.g. no alert/query, unknown or unbuilt harness). |
279
- | `-32603` | Internal error (mid-stream failure; `data` carries `{ runId }`). |
280
- | `-32000` | No evidence — the harness branch failed and produced no report (`data` carries `{ runId }`). |
281
-
282
- A malformed or failed request becomes a JSON-RPC error response — the server never
283
- crashes on bad input.
284
-
285
- ---
286
-
287
- ## Configuration
288
-
289
- `prismalens.config.yaml` (run `prismalens init` to scaffold one). Resolution order,
290
- later overriding earlier:
291
-
292
- 1. built-in schema defaults,
293
- 2. user layer — `config.yaml` in the OS config dir (Linux/WSL:
294
- `~/.config/prismalens/config.yaml`; macOS/Windows use the platform config dir),
295
- a good home for BYO-key creds via `${VAR}` interpolation,
296
- 3. project layer — the explicit `--config` path, else the nearest config file found
297
- by walking **up** from the cwd,
298
- 4. CLI flag overrides (e.g. `--model`).
299
-
300
- `${VAR}` patterns in string values are interpolated from the environment (an unset
301
- var is an error).
302
-
303
- ```yaml
304
- # Tier-2 harness backend the supervisor rents (ADR-0008).
305
- agent:
306
- default: deepagents # deepagents | claude-code | codex
307
- # model: gpt-oss:120b # bare id — the harness applies its own provider
308
- # prefix; omit to let the harness default
309
- sandbox: auto # auto | process | srt — isolation boundary (ADR-0020).
310
- # auto (default): srt (enforced OS boundary) WHEN its
311
- # egress bridge is healthy (a self-check catches WSL
312
- # mirrored-networking blackouts), else the cooperative
313
- # process floor — the degrade is logged, never silent.
314
-
315
- # Read-only telemetry + app endpoints the harness may query.
316
- telemetry:
317
- prometheus_url: http://localhost:9090
318
- alertmanager_url: http://localhost:9093
319
- api_url: http://localhost:3000
320
-
321
- # Where runs, events, and reports are stored.
322
- workspace:
323
- dir: ~/.prismalens
324
-
325
- # Per-harness native passthrough (ADR-0017) — untyped, forwarded straight to the
326
- # rented harness. For `deepagents` (the npm `deepagents-acp` binary, driven over
327
- # ACP), `args` is appended verbatim to the CLI invocation. The binary has no
328
- # shell-allowlist or sandbox flags — so the harness is unsandboxed (runs as you)
329
- # until the Sandbox port's enforced providers land (ADR-0020/B.1).
330
- harnesses:
331
- deepagents:
332
- native:
333
- args: [--memory, ./AGENTS.md]
334
- ```
335
-
336
- Notes:
337
- - `agent.model` sets the **Tier-2 harness** model only (a bare id, e.g. `gpt-oss:120b`;
338
- each harness applies its own provider prefix). `--model` overrides it.
339
- - `synth.model` sets the **Tier-1 reduce** (report-synthesis) model — a separate call
340
- to a separate provider (ADR-0013/0016). `agent.model` never feeds it, so a harness on
341
- one provider (e.g. `claude-code`) can't misroute the reduce call to another (ollama).
342
- - `telemetry.*` keys are snake_case (`prometheus_url`, `alertmanager_url`, `api_url`)
343
- and default to host-local URLs when unset.
344
- - There is currently no `agent.timeout_ms`, `budget.*`, or `logging.*` config —
345
- an overall per-run wall-clock budget and a Tier-1 reduce token/retry budget are
346
- planned alongside the Phase B.1 Sandbox port's resource limits (ADR-0020), not
347
- wired yet.
348
-
349
- ### BYO-key environment (ADR-0006)
350
-
351
- Credentials are BYO-key and never hard-bound in the CLI. They can be read from the environment or stored locally via the `auth` command.
27
+ | `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. |
352
36
 
353
- The resolution precedence for any credential is: **env** (`PROVIDER_API_KEY`) → **_FILE** (`PROVIDER_API_KEY_FILE`) → **stored** (from `auth.json`) → **none**.
37
+ ## Documentation
354
38
 
355
- **Auth commands:**
356
- - `pl auth login <provider> [--api-key <key>]` — save a credential (prompts securely if `--api-key` is omitted).
357
- - `pl auth list` — view saved providers.
358
- - `pl auth logout <provider>` — remove a saved credential.
39
+ Complete documentation, guides, and configuration references are available at https://docs.prismalens.io.
359
40
 
360
- Stored credentials live in `auth.json` inside the app-data dir (`~/.prismalens` by default, honors `PRISMALENS_WORKSPACE_DIR`), enforced to mode `0600`.
41
+ ## License
361
42
 
362
- - **Tier-1 reduce + the `deepagents` harness** use an OpenAI-compatible endpoint:
363
- - `OLLAMA_API_KEY` or `OPENAI_API_KEY` (the API key),
364
- - `OLLAMA_BASE_URL` or `OPENAI_BASE_URL` (base URL; defaults to
365
- `https://ollama.com/v1`).
366
- - **The `claude-code` harness** uses your signed-in `~/.claude` session, or
367
- `ANTHROPIC_API_KEY`.
43
+ Apache-2.0
368
44
 
369
- If no matching credential is found across the resolution chain, the reduce (synthesis) call will
370
- likely fail — `investigate` warns up front, and `doctor` checks for a credential.
@@ -25,6 +25,7 @@ var main = defineCommand({
25
25
  description: "PrismaLens investigation engine CLI \u2014 drives the two-tier engine (ADR-0008/0010)."
26
26
  },
27
27
  subCommands: {
28
+ up: lazy("up"),
28
29
  investigate: lazy("investigate"),
29
30
  listen: lazy("listen"),
30
31
  serve: lazy("serve"),
@@ -1,13 +1,7 @@
1
- import {
2
- HARNESS_IDS,
3
- PERMISSION_MODES,
4
- SANDBOX_MODES
5
- } from "./chunk-5BT3XQOG.js";
6
- import {
7
- llmProviderIdSchema
8
- } from "./chunk-XH6DIKTA.js";
9
-
10
1
  // src/config/schema.ts
2
+ import { HARNESS_IDS, PERMISSION_MODES } from "@prismalens/config/harness";
3
+ import { llmProviderIdSchema } from "@prismalens/config/llm";
4
+ import { SANDBOX_MODES } from "@prismalens/engine";
11
5
  import { z } from "zod";
12
6
  var PermissionConfigSchema = z.object({
13
7
  mode: z.enum(PERMISSION_MODES).default("read-only")
@@ -117,7 +111,7 @@ function optionalWithDefaults(schema) {
117
111
  const res = schema.safeParse(val ?? {});
118
112
  if (!res.success) {
119
113
  for (const issue of res.error.issues) {
120
- ctx.addIssue(issue);
114
+ ctx.addIssue({ ...issue });
121
115
  }
122
116
  return z.NEVER;
123
117
  }
@@ -1,51 +1,31 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-V6M6ISKI.js";
3
+ } from "./chunk-VI32U36Y.js";
4
4
  import {
5
5
  createSessionManager
6
- } from "./chunk-CTKCK7QT.js";
7
- import {
8
- resolveInvestigation
9
- } from "./chunk-QDK5PAI3.js";
6
+ } from "./chunk-TSW5RW5B.js";
10
7
  import {
11
8
  assertKnownFlags
12
9
  } from "./chunk-PTBCAI34.js";
13
- import {
14
- HARNESS_REGISTRY,
15
- SANDBOX_MODES,
16
- conductRun,
17
- resolveSandbox
18
- } from "./chunk-5BT3XQOG.js";
19
- import {
20
- INVESTIGATION_DEFAULTS
21
- } from "./chunk-6N4PHBII.js";
22
10
 
23
11
  // src/cli/investigate.ts
24
12
  import { randomUUID } from "node:crypto";
25
13
  import { writeFile } from "node:fs/promises";
26
- import { join, resolve } from "node:path";
14
+ import { join, resolve as resolve2 } from "node:path";
15
+ import { HARNESS_REGISTRY } from "@prismalens/config/harness";
16
+ import { INVESTIGATION_DEFAULTS as INVESTIGATION_DEFAULTS2 } from "@prismalens/config/investigation";
17
+ import {
18
+ conductRun,
19
+ resolveSandbox,
20
+ SANDBOX_MODES
21
+ } from "@prismalens/engine";
27
22
  import { defineCommand } from "citty";
28
23
  import consola from "consola";
29
24
 
30
25
  // src/core/detect-repo.ts
31
- import { execFile } from "node:child_process";
32
- import { promisify } from "node:util";
33
- var execFileAsync = promisify(execFile);
34
- var REPO_PATTERN = /(?:github\.com|gitlab\.com|bitbucket\.org)[/:](.+?)(?:\.git)?$/;
35
- async function detectRepo(cwd) {
36
- try {
37
- const { stdout } = await execFileAsync(
38
- "git",
39
- ["remote", "get-url", "origin"],
40
- { cwd }
41
- );
42
- return stdout.trim().match(REPO_PATTERN)?.[1];
43
- } catch {
44
- return void 0;
45
- }
46
- }
26
+ import { detectRepoSlug } from "@prismalens/config";
47
27
  async function resolveRepoSlug(configRepo, cwd = process.cwd()) {
48
- return configRepo ?? await detectRepo(cwd);
28
+ return configRepo ?? await detectRepoSlug(cwd);
49
29
  }
50
30
 
51
31
  // src/core/file-session-store.ts
@@ -99,6 +79,146 @@ async function parseStdin() {
99
79
  }
100
80
  }
101
81
 
82
+ // src/core/run-investigation.ts
83
+ import { resolve } from "node:path";
84
+ import { pickServiceLabel } from "@prismalens/config";
85
+ import { ensureV1, resolveCredentials } from "@prismalens/config/credentials";
86
+ import { INVESTIGATION_DEFAULTS } from "@prismalens/config/investigation";
87
+ import {
88
+ AUTO_SELECT_PROVIDER_IDS,
89
+ getDefaultModel
90
+ } from "@prismalens/config/llm";
91
+ import {
92
+ coerceFiringAlert,
93
+ resolveInvestigation as engineResolveInvestigation
94
+ } from "@prismalens/engine";
95
+ function isSynthConfigured(config) {
96
+ if (config.synth.provider) {
97
+ return resolveCredentials(config.synth.provider, config.synth.base_url).source !== "none";
98
+ }
99
+ for (const id of AUTO_SELECT_PROVIDER_IDS) {
100
+ if (resolveCredentials(id).source !== "none") {
101
+ return true;
102
+ }
103
+ }
104
+ return false;
105
+ }
106
+ function resolveInvestigation(args, config) {
107
+ const cwd = args.repo ? resolve(args.repo) : process.cwd();
108
+ let providerId = config.synth.provider;
109
+ let creds;
110
+ if (providerId) {
111
+ creds = resolveCredentials(providerId, config.synth.base_url);
112
+ if (providerId === "custom" && !creds.baseURL) {
113
+ throw new Error(
114
+ "Custom LLM provider requires synth.base_url to be configured."
115
+ );
116
+ }
117
+ } else {
118
+ for (const id of AUTO_SELECT_PROVIDER_IDS) {
119
+ const candidate = resolveCredentials(id);
120
+ if (candidate.source !== "none") {
121
+ providerId = id;
122
+ break;
123
+ }
124
+ }
125
+ if (providerId) {
126
+ creds = resolveCredentials(
127
+ providerId,
128
+ config.synth.base_url
129
+ );
130
+ } else {
131
+ creds = { providerId: "ollama", source: "none" };
132
+ providerId = "ollama";
133
+ }
134
+ }
135
+ const synthModel = config.synth.model ?? getDefaultModel(providerId) ?? "";
136
+ if (!synthModel && creds.source !== "none") {
137
+ throw new Error("No synthesis model configured (set synth.model).");
138
+ }
139
+ const service = selectService(args, config);
140
+ const repos = config.repo ? [config.repo] : Object.keys(config.repos).length > 0 ? Object.keys(config.repos) : void 0;
141
+ const logs = config.logs.url ? {
142
+ ...config.logs.kind ? { kind: config.logs.kind } : {},
143
+ url: config.logs.url
144
+ } : void 0;
145
+ const harnessName = args.harness ?? config.agent.default;
146
+ const permissionMode = args.permissionMode ?? config.agent.permissions.mode;
147
+ const harnessNative = config.harnesses[harnessName]?.native;
148
+ const limits = toSandboxLimits(config.agent.limits);
149
+ const telemetry = {
150
+ prometheusUrl: config.telemetry.prometheus_url ?? INVESTIGATION_DEFAULTS.telemetry.prometheusUrl,
151
+ alertmanagerUrl: config.telemetry.alertmanager_url ?? INVESTIGATION_DEFAULTS.telemetry.alertmanagerUrl,
152
+ apiUrl: config.telemetry.api_url ?? INVESTIGATION_DEFAULTS.telemetry.apiUrl
153
+ };
154
+ const request = {
155
+ query: args.query,
156
+ harness: harnessName,
157
+ permissionMode,
158
+ ...harnessNative ? { harnessNative } : {},
159
+ ...args.sandbox ? { sandbox: args.sandbox } : {},
160
+ ...args.requestedSandbox ? { requestedSandbox: args.requestedSandbox } : {},
161
+ ...limits ? { limits } : {},
162
+ // Per-alert fan-out cap (ADR-0016 decision 2): wire `agent.max_branches` when
163
+ // set; unset leaves the engine default (mirrors the `limits` thread-through).
164
+ ...config.agent.max_branches ? { maxBranches: config.agent.max_branches } : {},
165
+ ...args.maxTurns ? { maxTurns: args.maxTurns } : {},
166
+ ...args.isolateSettings ? { isolateSettings: args.isolateSettings } : {},
167
+ model: config.agent.model,
168
+ cwd,
169
+ synth: {
170
+ providerId,
171
+ model: synthModel,
172
+ apiKey: creds.apiKey ?? "",
173
+ baseURL: creds.baseURL,
174
+ configured: creds.source !== "none"
175
+ },
176
+ harnessEnv: {
177
+ OPENAI_API_KEY: process.env.OLLAMA_API_KEY ?? process.env.OPENAI_API_KEY,
178
+ OPENAI_BASE_URL: ensureV1(
179
+ process.env.OLLAMA_BASE_URL ?? process.env.OPENAI_BASE_URL ?? INVESTIGATION_DEFAULTS.synth.baseURL
180
+ )
181
+ },
182
+ initTimeoutMs: INVESTIGATION_DEFAULTS.harnessInitTimeoutMs
183
+ };
184
+ if (args.alerts && args.alerts.length > 0) {
185
+ request.context = {
186
+ alerts: args.alerts.map(coerceFiringAlert),
187
+ telemetry,
188
+ ...service ? { service } : {},
189
+ ...repos ? { repos } : {},
190
+ ...logs ? { logs } : {}
191
+ };
192
+ } else {
193
+ request.alert = args.alert;
194
+ request.telemetry = telemetry;
195
+ if (service) request.service = service;
196
+ if (repos) request.repos = repos;
197
+ if (logs) request.logs = logs;
198
+ }
199
+ return engineResolveInvestigation(request);
200
+ }
201
+ function toSandboxLimits(limits) {
202
+ const out = {
203
+ ...limits.wall_clock_ms ? { wallClockMs: limits.wall_clock_ms } : {},
204
+ ...limits.memory_mb ? { memoryMb: limits.memory_mb } : {},
205
+ ...limits.cpu_cores ? { cpuCores: limits.cpu_cores } : {}
206
+ };
207
+ return Object.keys(out).length > 0 ? out : void 0;
208
+ }
209
+ function selectService(args, config) {
210
+ const name = args.service ?? pickServiceLabel(args.alerts?.[0] ?? args.alert);
211
+ if (!name) return void 0;
212
+ const cfg = config.services[name];
213
+ if (!cfg) return void 0;
214
+ return {
215
+ name,
216
+ ...cfg.tier ? { tier: cfg.tier } : {},
217
+ ...cfg.repo ? { repo: cfg.repo } : {},
218
+ ...cfg.depends_on.length > 0 ? { dependsOn: cfg.depends_on } : {}
219
+ };
220
+ }
221
+
102
222
  // src/cli/investigate.ts
103
223
  var investigate_default = defineCommand({
104
224
  meta: {
@@ -181,7 +301,7 @@ var investigate_default = defineCommand({
181
301
  if (!quiet) consola.log(msg);
182
302
  };
183
303
  const piped = await parseStdin();
184
- const cwd = args.repo ? resolve(args.repo) : process.cwd();
304
+ const cwd = args.repo ? resolve2(args.repo) : process.cwd();
185
305
  const config = await loadConfig({
186
306
  ...args.config ? { configPath: args.config } : {},
187
307
  cwd,
@@ -271,7 +391,7 @@ var investigate_default = defineCommand({
271
391
  }
272
392
  const report = outcome.report;
273
393
  if (args.output) {
274
- const outPath = resolve(args.output);
394
+ const outPath = resolve2(args.output);
275
395
  await writeFile(
276
396
  outPath,
277
397
  `${JSON.stringify(report, null, 2)}
@@ -301,12 +421,12 @@ var investigate_default = defineCommand({
301
421
  }
302
422
  });
303
423
  function collectAllowedDomains(config) {
304
- const llmBaseUrl = process.env.OLLAMA_BASE_URL ?? process.env.OPENAI_BASE_URL ?? INVESTIGATION_DEFAULTS.synth.baseURL;
424
+ const llmBaseUrl = process.env.OLLAMA_BASE_URL ?? process.env.OPENAI_BASE_URL ?? INVESTIGATION_DEFAULTS2.synth.baseURL;
305
425
  const urls = [
306
426
  llmBaseUrl,
307
- config.telemetry.prometheus_url ?? INVESTIGATION_DEFAULTS.telemetry.prometheusUrl,
308
- config.telemetry.alertmanager_url ?? INVESTIGATION_DEFAULTS.telemetry.alertmanagerUrl,
309
- config.telemetry.api_url ?? INVESTIGATION_DEFAULTS.telemetry.apiUrl,
427
+ config.telemetry.prometheus_url ?? INVESTIGATION_DEFAULTS2.telemetry.prometheusUrl,
428
+ config.telemetry.alertmanager_url ?? INVESTIGATION_DEFAULTS2.telemetry.alertmanagerUrl,
429
+ config.telemetry.api_url ?? INVESTIGATION_DEFAULTS2.telemetry.apiUrl,
310
430
  config.logs.url
311
431
  ];
312
432
  const hosts = /* @__PURE__ */ new Set();
@@ -444,6 +564,8 @@ function renderNextStep(s) {
444
564
  export {
445
565
  resolveRepoSlug,
446
566
  createFileSessionStore,
567
+ isSynthConfigured,
568
+ resolveInvestigation,
447
569
  investigate_default,
448
570
  collectAllowedDomains,
449
571
  resolveRunSandbox,