@adonis-agora/telescope 0.5.1 → 0.6.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 (106) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/providers/telescope_alerts_provider.d.ts.map +1 -1
  3. package/dist/providers/telescope_alerts_provider.js +1 -1
  4. package/dist/providers/telescope_alerts_provider.js.map +1 -1
  5. package/dist/providers/telescope_mcp_provider.d.ts.map +1 -1
  6. package/dist/providers/telescope_mcp_provider.js +1 -1
  7. package/dist/providers/telescope_mcp_provider.js.map +1 -1
  8. package/dist/providers/telescope_provider.d.ts.map +1 -1
  9. package/dist/providers/telescope_provider.js +9 -3
  10. package/dist/providers/telescope_provider.js.map +1 -1
  11. package/dist/src/ai/index.d.ts +1 -1
  12. package/dist/src/ai/index.js +1 -1
  13. package/dist/src/alerts/alert_rule.d.ts +84 -3
  14. package/dist/src/alerts/alert_rule.d.ts.map +1 -1
  15. package/dist/src/alerts/alerter.d.ts +24 -2
  16. package/dist/src/alerts/alerter.d.ts.map +1 -1
  17. package/dist/src/alerts/alerter.js +122 -11
  18. package/dist/src/alerts/alerter.js.map +1 -1
  19. package/dist/src/alerts/define_config.d.ts +9 -1
  20. package/dist/src/alerts/define_config.d.ts.map +1 -1
  21. package/dist/src/alerts/define_config.js +8 -0
  22. package/dist/src/alerts/define_config.js.map +1 -1
  23. package/dist/src/alerts/exception_source.d.ts +16 -7
  24. package/dist/src/alerts/exception_source.d.ts.map +1 -1
  25. package/dist/src/alerts/exception_source.js +29 -17
  26. package/dist/src/alerts/exception_source.js.map +1 -1
  27. package/dist/src/alerts/index.d.ts +2 -2
  28. package/dist/src/alerts/index.d.ts.map +1 -1
  29. package/dist/src/alerts/index.js +1 -1
  30. package/dist/src/alerts/index.js.map +1 -1
  31. package/dist/src/alerts/slack_format.d.ts +8 -0
  32. package/dist/src/alerts/slack_format.d.ts.map +1 -1
  33. package/dist/src/alerts/slack_format.js +128 -3
  34. package/dist/src/alerts/slack_format.js.map +1 -1
  35. package/dist/src/client_errors/ingestor.d.ts.map +1 -1
  36. package/dist/src/client_errors/ingestor.js +20 -1
  37. package/dist/src/client_errors/ingestor.js.map +1 -1
  38. package/dist/src/client_errors/validation.d.ts.map +1 -1
  39. package/dist/src/client_errors/validation.js +7 -2
  40. package/dist/src/client_errors/validation.js.map +1 -1
  41. package/dist/src/define_config.d.ts +51 -0
  42. package/dist/src/define_config.d.ts.map +1 -1
  43. package/dist/src/define_config.js +6 -0
  44. package/dist/src/define_config.js.map +1 -1
  45. package/dist/src/diagnostics_registry.d.ts +15 -0
  46. package/dist/src/diagnostics_registry.d.ts.map +1 -1
  47. package/dist/src/diagnostics_registry.js +19 -0
  48. package/dist/src/diagnostics_registry.js.map +1 -1
  49. package/dist/src/diagnostics_watcher.d.ts +28 -1
  50. package/dist/src/diagnostics_watcher.d.ts.map +1 -1
  51. package/dist/src/diagnostics_watcher.js +17 -2
  52. package/dist/src/diagnostics_watcher.js.map +1 -1
  53. package/dist/src/extension/types.d.ts +35 -2
  54. package/dist/src/extension/types.d.ts.map +1 -1
  55. package/dist/src/extension/types.js.map +1 -1
  56. package/dist/src/index.d.ts +7 -7
  57. package/dist/src/index.d.ts.map +1 -1
  58. package/dist/src/index.js +3 -3
  59. package/dist/src/index.js.map +1 -1
  60. package/dist/src/mcp/index.d.ts +1 -1
  61. package/dist/src/mcp/index.js +1 -1
  62. package/dist/src/mcp/server.d.ts.map +1 -1
  63. package/dist/src/mcp/server.js +7 -2
  64. package/dist/src/mcp/server.js.map +1 -1
  65. package/dist/src/metrics/waterfall.d.ts.map +1 -1
  66. package/dist/src/metrics/waterfall.js +6 -0
  67. package/dist/src/metrics/waterfall.js.map +1 -1
  68. package/dist/src/redaction/redact.d.ts +21 -0
  69. package/dist/src/redaction/redact.d.ts.map +1 -1
  70. package/dist/src/redaction/redact.js +18 -0
  71. package/dist/src/redaction/redact.js.map +1 -1
  72. package/dist/src/redaction/redacting_store.d.ts.map +1 -1
  73. package/dist/src/redaction/redacting_store.js +10 -1
  74. package/dist/src/redaction/redacting_store.js.map +1 -1
  75. package/dist/src/registry.d.ts +8 -1
  76. package/dist/src/registry.d.ts.map +1 -1
  77. package/dist/src/registry.js +4 -1
  78. package/dist/src/registry.js.map +1 -1
  79. package/dist/src/request_watcher.d.ts +68 -0
  80. package/dist/src/request_watcher.d.ts.map +1 -1
  81. package/dist/src/request_watcher.js +101 -0
  82. package/dist/src/request_watcher.js.map +1 -1
  83. package/dist/src/service.d.ts.map +1 -1
  84. package/dist/src/service.js.map +1 -1
  85. package/dist/src/stores/lucid.d.ts +8 -0
  86. package/dist/src/stores/lucid.d.ts.map +1 -1
  87. package/dist/src/stores/lucid.js +21 -2
  88. package/dist/src/stores/lucid.js.map +1 -1
  89. package/dist/src/telescope_middleware.d.ts.map +1 -1
  90. package/dist/src/telescope_middleware.js +5 -1
  91. package/dist/src/telescope_middleware.js.map +1 -1
  92. package/dist/src/ui/dashboard.html +58 -10
  93. package/dist/src/ui/ext_table.d.ts +50 -0
  94. package/dist/src/ui/ext_table.d.ts.map +1 -0
  95. package/dist/src/ui/ext_table.js +42 -0
  96. package/dist/src/ui/ext_table.js.map +1 -0
  97. package/dist/src/ui/index.d.ts +3 -1
  98. package/dist/src/ui/index.d.ts.map +1 -1
  99. package/dist/src/ui/index.js +3 -1
  100. package/dist/src/ui/index.js.map +1 -1
  101. package/dist/src/watchers/index.d.ts +1 -1
  102. package/dist/src/watchers/index.js +1 -1
  103. package/dist/src/watchers/schedule_watcher.d.ts.map +1 -1
  104. package/dist/src/watchers/schedule_watcher.js +6 -1
  105. package/dist/src/watchers/schedule_watcher.js.map +1 -1
  106. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @adonis-agora/telescope
2
2
 
3
+ ## 0.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Parity sync from nestjs-telescope (redact binary-blob bound, client-error reorder, Slack section spread, diagnostics exclude/recordClaimed, exception alert enrichment + every-exception + isNew badge, lib:event span labels, client_exception polling, perType redaction budgets, paged ext-dashboard + trace deep-links, requestCapture gates).
8
+
3
9
  ## 0.5.0
4
10
 
5
11
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"telescope_alerts_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_alerts_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAI9B,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAH7C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,cAAc,CAA+B;gBAE/B,GAAG,EAAE,kBAAkB;IAE7C,OAAO,CAAC,OAAO;IAcT,IAAI;IA2DJ,QAAQ;CAcf"}
1
+ {"version":3,"file":"telescope_alerts_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_alerts_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAI9B,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAH7C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,cAAc,CAA+B;gBAE/B,GAAG,EAAE,kBAAkB;IAE7C,OAAO,CAAC,OAAO;IAcT,IAAI;IA0DJ,QAAQ;CAcf"}
@@ -49,7 +49,7 @@ export default class TelescopeAlertsProvider {
49
49
  // in the runtime slot. When AI is off, no hook is passed and alerts are
50
50
  // exactly as before (no "Probable cause (AI)" section).
51
51
  const coordinator = getTelescopeRuntime().diagnosisCoordinator;
52
- const diagnose = coordinator !== null && coordinator.isConfigured()
52
+ const diagnose = coordinator?.isConfigured()
53
53
  ? (entry) => coordinator.diagnoseSummary(entry)
54
54
  : undefined;
55
55
  const alerter = new Alerter({
@@ -1 +1 @@
1
- {"version":3,"file":"telescope_alerts_provider.js","sourceRoot":"","sources":["../../providers/telescope_alerts_provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telescope_alerts_provider.js","sourceRoot":"","sources":["../../providers/telescope_alerts_provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAA8B,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAIpB;IAHd,MAAM,GAA2B,IAAI,CAAC;IACtC,cAAc,GAA0B,IAAI,CAAC;IAErD,YAAsB,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAEzC,OAAO;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAC7B,kBAAkB,EAClB,SAAS,CACV,CAAC;QACF,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CACvC,yBAAyB,EACzB,SAAS,CACV,CAAC;QACF,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAE5B,IAAI,KAA4B,CAAC;QACjC,IAAI,CAAC;YACH,KAAK,GAAG,mBAAmB,EAAE,CAAC,KAAK,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,mEAAmE,SAAS,CAAC,GAAG,CAAC,EAAE,CACpF,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAE3B,+EAA+E;QAC/E,wEAAwE;QACxE,wDAAwD;QACxD,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC,oBAAoB,CAAC;QAC/D,MAAM,QAAQ,GAAG,WAAW,EAAE,YAAY,EAAE;YAC1C,CAAC,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,KAAqC,CAAC;YACtF,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,MAAM,EAAE,MAAM;YACd,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC;YAChC,KAAK;YACL,OAAO;YACP,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8DAA8D,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;QACpF,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;gBACvC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACX,gEAAgE,SAAS,CAAC,GAAG,CAAC,EAAE,CACjF,CAAC;gBACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"telescope_mcp_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_mcp_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAkB/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC3B,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,OAAO,CAAC,OAAO;IAMT,IAAI;CAuFX"}
1
+ {"version":3,"file":"telescope_mcp_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_mcp_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAkB/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC3B,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,OAAO,CAAC,OAAO;IAMT,IAAI;CAqFX"}
@@ -64,7 +64,7 @@ export default class TelescopeMcpProvider {
64
64
  // runtime slot. When AI is off (no coordinator, or an inert one), NO hook is
65
65
  // passed, so `diagnose_exception` reports "not configured" exactly as before.
66
66
  const coordinator = getTelescopeRuntime().diagnosisCoordinator;
67
- const diagnose = coordinator !== null && coordinator.isConfigured()
67
+ const diagnose = coordinator?.isConfigured()
68
68
  ? async (entry) => {
69
69
  // Feed the same-trace siblings as extra context (already redacted).
70
70
  const related = entry.traceId !== null ? await service.byTrace(entry.traceId) : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"telescope_mcp_provider.js","sourceRoot":"","sources":["../../providers/telescope_mcp_provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telescope_mcp_provider.js","sourceRoot":"","sources":["../../providers/telescope_mcp_provider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"telescope_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAgC/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAOxB,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAN7C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,aAAa,CAA8B;gBAE7B,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAUF,IAAI;IA+CV;;;;OAIG;YACW,oBAAoB;IAelC;;;;;OAKG;YACW,UAAU;IAexB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAMtB,oGAAoG;IACpG,OAAO,CAAC,sBAAsB;IAaxB,QAAQ;CAWf"}
1
+ {"version":3,"file":"telescope_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAgC/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAOxB,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAN7C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,aAAa,CAA8B;gBAE7B,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAUF,IAAI;IAkDV;;;;OAIG;YACW,oBAAoB;IAelC;;;;;OAKG;YACW,UAAU;IAexB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAMtB,oGAAoG;IACpG,OAAO,CAAC,sBAAsB;IAaxB,QAAQ;CAWf"}
@@ -54,10 +54,13 @@ export default class TelescopeProvider {
54
54
  resetTelescopeRuntime();
55
55
  return;
56
56
  }
57
- setTelescopeRuntime(store, config.watchers.has('request'));
57
+ setTelescopeRuntime(store, config.watchers.has('request'), config.requestCapture);
58
58
  setTelescopeEntryEvents(this.entryEvents);
59
59
  if (config.watchers.has('diagnostics')) {
60
- const watcher = new DiagnosticsWatcher(store);
60
+ const watcher = new DiagnosticsWatcher(store, {
61
+ exclude: config.diagnostics.exclude,
62
+ recordClaimed: config.diagnostics.recordClaimed,
63
+ });
61
64
  watcher.start();
62
65
  this.diagnosticsWatcher = watcher;
63
66
  }
@@ -125,7 +128,10 @@ export default class TelescopeProvider {
125
128
  applyRedaction(store, config) {
126
129
  if (!config.redact.enabled)
127
130
  return store;
128
- return new RedactingTelescopeStore(store, { keys: config.redact.keys });
131
+ return new RedactingTelescopeStore(store, {
132
+ keys: config.redact.keys,
133
+ perType: config.redact.perType,
134
+ });
129
135
  }
130
136
  /**
131
137
  * Wrap the store with the tail-sampling decorator so dropped entries are never
@@ -1 +1 @@
1
- {"version":3,"file":"telescope_provider.js","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telescope_provider.js","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.5.1";
2
+ export declare const VERSION = "0.6.0";
3
3
  export { TelescopeAiDiagnoser } from './telescope_ai_diagnoser.js';
4
4
  export type { AnthropicMessagesClient, DiagnoseOptions, TelescopeAiDiagnoserOptions, } from './telescope_ai_diagnoser.js';
5
5
  export { normalizeConfidence, parseDiagnosis } from './diagnoser.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.5.1';
2
+ export const VERSION = '0.6.0';
3
3
  // — diagnoser —
4
4
  export { TelescopeAiDiagnoser } from './telescope_ai_diagnoser.js';
5
5
  // — diagnosis model + parsing —
@@ -12,6 +12,14 @@ import type { AlertChannel } from './alert_channel.js';
12
12
  * within `window` (a genuinely NEW error family), and
13
13
  * again if the family re-appears after the window elapses.
14
14
  * Dedup is per-process via {@link NewExceptionTracker}.
15
+ * - `every-exception` fires for EVERY exception (server + browser-reported
16
+ * `client_exception`), not just brand-new families —
17
+ * parity with a "notify on every error" setup. Still
18
+ * rate-limited by the shared `cooldown` PER FAMILY (on an
19
+ * independent clock from `new-exception`), so a hot loop of
20
+ * the same error re-pages once per cooldown rather than on
21
+ * every occurrence. The optional `window` is used only to
22
+ * count occurrences shown on the alert; it does NOT gate firing.
15
23
  * - `exception-rate` fires when `>= threshold` exception entries were recorded
16
24
  * in the trailing `window`.
17
25
  *
@@ -28,6 +36,9 @@ import type { AlertChannel } from './alert_channel.js';
28
36
  export type AlertRule = {
29
37
  type: 'new-exception';
30
38
  window: string;
39
+ } | {
40
+ type: 'every-exception';
41
+ window?: string;
31
42
  } | {
32
43
  type: 'exception-rate';
33
44
  window: string;
@@ -58,8 +69,31 @@ export type AlertRule = {
58
69
  */
59
70
  export type AlertMetric = 'request-p95-ms' | 'request-p99-ms' | 'query-p95-ms' | 'query-p99-ms' | 'cache-hit-rate' | 'exception-count';
60
71
  /**
61
- * Rich exception context attached to a `new-exception` alert. Pulled from the
62
- * exception {@link Entry} that fired the rule. Absent on rate-rule alerts.
72
+ * A coarse geo location resolved from a client IP, attached to an exception alert
73
+ * when a {@link GeoLookup} hook is configured. Every field is optional — a partial
74
+ * result (e.g. country only) still renders. Deliberately dependency-light: the LIB
75
+ * ships no geo database or HTTP client; the host owns the lookup (and its
76
+ * caching/rate-limiting) and returns this shape.
77
+ */
78
+ export interface AlertGeoLocation {
79
+ city?: string;
80
+ region?: string;
81
+ country?: string;
82
+ /** ISO 3166-1 alpha-2 (e.g. `US`), used to render a flag emoji. */
83
+ countryCode?: string;
84
+ }
85
+ /**
86
+ * Host-supplied resolver from a client IP to a coarse {@link AlertGeoLocation}.
87
+ * Called ONLY when an exception alert actually fires and carries a `clientIp`, so
88
+ * the common no-fire path pays nothing. May be sync or async; returning `null`
89
+ * (or throwing — swallowed) simply omits the Location field. The lib never caches
90
+ * or rate-limits it — do that in the hook if the provider needs it.
91
+ */
92
+ export type GeoLookup = (ip: string) => AlertGeoLocation | null | Promise<AlertGeoLocation | null>;
93
+ /**
94
+ * Rich exception context attached to a `new-exception` / `every-exception` alert.
95
+ * Pulled from the exception {@link Entry} that fired the rule. Absent on rate-rule
96
+ * alerts.
63
97
  */
64
98
  export interface ExceptionAlertContext {
65
99
  /** Stable family hash that was first-seen this window. */
@@ -72,14 +106,59 @@ export interface ExceptionAlertContext {
72
106
  stack: string | null;
73
107
  /** Request route/uri associated with the exception, or `null`. */
74
108
  route: string | null;
75
- /** Request method, or `null`. */
109
+ /** Request method, or `null` (always `null` for a client_exception). */
76
110
  method: string | null;
77
111
  /** Response status code, or `null`. */
78
112
  statusCode: number | null;
113
+ /**
114
+ * User-agent string. For a `client_exception` it's the reporting browser's UA;
115
+ * for a server exception it's the sibling request's UA (when captured). `null`
116
+ * when unavailable.
117
+ */
118
+ userAgent: string | null;
119
+ /**
120
+ * `Referer` header of the originating request (server exception) — the page a
121
+ * user came from. `null` when absent or for a `client_exception` (the browser
122
+ * report carries its own page `url` in `route`, not a referer).
123
+ */
124
+ referer: string | null;
125
+ /**
126
+ * React component stack from an error boundary — present ONLY for a
127
+ * `client_exception` that supplied one. `null` otherwise.
128
+ */
129
+ componentStack: string | null;
130
+ /**
131
+ * Host-defined free-form debugging bag from a `client_exception` (`extra`), or
132
+ * `null`. Redacted/bounded at record time like any other content.
133
+ */
134
+ extra: Record<string, unknown> | null;
135
+ /** True when this alert is a browser-reported `client_exception`. */
136
+ client: boolean;
137
+ /**
138
+ * Originating client IP, or `null` when unknown. For a `client_exception` it's
139
+ * the browser IP the ingestion endpoint filled in server-side (`clientIp`);
140
+ * for a server exception it's the recorded request IP when available. NEVER
141
+ * sourced from an untrusted body.
142
+ */
143
+ clientIp: string | null;
144
+ /**
145
+ * Coarse geo location resolved from {@link clientIp}, or `null`. Populated only
146
+ * when a {@link GeoLookup} hook is configured AND the alert has a `clientIp`;
147
+ * otherwise `null`.
148
+ */
149
+ geo: AlertGeoLocation | null;
150
+ /** Request duration (ms), or `null`. */
151
+ durationMs: number | null;
79
152
  /** Authenticated user id from a `user:<id>` tag, or `null`. */
80
153
  user: string | null;
81
154
  /** Times this family was seen in the window (>= 1; 1 on first-occurrence). */
82
155
  occurrences: number;
156
+ /**
157
+ * True when this is the family's first occurrence in the window (`occurrences
158
+ * === 1`) — a brand-new error rather than a recurrence. Lets channels badge a
159
+ * new error distinctly from a recurring one.
160
+ */
161
+ isNew: boolean;
83
162
  /** Exception entry id (for the dashboard deep link). */
84
163
  entryId: string;
85
164
  }
@@ -150,5 +229,7 @@ export interface ResolvedAlerts {
150
229
  instanceId: string;
151
230
  /** Rules to evaluate. */
152
231
  rules: AlertRule[];
232
+ /** Host IP→geo resolver, or `null` when unconfigured. */
233
+ geoLookup: GeoLookup | null;
153
234
  }
154
235
  //# sourceMappingURL=alert_rule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert_rule.d.ts","sourceRoot":"","sources":["../../../src/alerts/alert_rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alert_rule.d.ts","sourceRoot":"","sources":["../../../src/alerts/alert_rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7D;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,iEAAiE;IACjE,MAAM,EAAE,WAAW,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAEnG;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kEAAkE;IAClE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uCAAuC;IACvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,qEAAqE;IACrE,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC7B,wCAAwC;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC/B,mEAAmE;IACnE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,mEAAmE;IACnE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,yDAAyD;IACzD,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B"}
@@ -1,4 +1,4 @@
1
- import type { Entry } from '../entry.js';
1
+ import { type Entry } from '../entry.js';
2
2
  import type { AlertDiagnosis, ResolvedAlerts } from './alert_rule.js';
3
3
  export interface AlerterDeps {
4
4
  alerts: ResolvedAlerts;
@@ -62,15 +62,37 @@ export declare class Alerter {
62
62
  /** Number of error families currently tracked (test/observability seam). */
63
63
  get trackedFamilies(): number;
64
64
  private evaluateNewException;
65
+ /**
66
+ * The `every-exception` rule: fire for EVERY exception (server + client), not
67
+ * just brand-new families, rate-limited PER FAMILY by the shared cooldown on an
68
+ * independent clock from `new-exception`. The optional `window` only counts
69
+ * occurrences shown on the alert; it does NOT gate firing.
70
+ */
71
+ private evaluateEveryException;
65
72
  /** Run the optional diagnose hook, swallowing any failure to `null`. */
66
73
  private safeDiagnose;
67
74
  private evaluateExceptionRate;
68
75
  /** Find a configured rule of `type` with its array index, or `null`. */
69
76
  private findRule;
70
77
  private inCooldown;
78
+ /** Composite cooldown key so each flush rule keeps an independent per-family clock. */
79
+ private cooldownKey;
71
80
  private familyInCooldown;
72
81
  private buildRatePayload;
73
- private buildNewExceptionPayload;
82
+ /**
83
+ * Build the rich exception payload shared by `new-exception` and
84
+ * `every-exception`. Reads the exception entry's own fields (server vs client),
85
+ * then — when a `geoLookup` hook is configured and a client IP is present —
86
+ * resolves the IP to a coarse location. Geo runs ONLY on a real fire.
87
+ */
88
+ private buildExceptionPayload;
89
+ /**
90
+ * Resolve a client IP to a coarse {@link AlertGeoLocation} via the host's
91
+ * `geoLookup` hook. Returns `null` when no hook is configured, no IP is present,
92
+ * the hook returns `null`, or the hook throws (swallowed — geo is purely
93
+ * additive and must never break or block an alert beyond the hook's own cost).
94
+ */
95
+ private resolveGeo;
74
96
  /**
75
97
  * Fan the payload out to every channel concurrently. Each channel's failure is
76
98
  * isolated (`Promise.allSettled`) and warn-logged ONCE per channel name so a
@@ -1 +1 @@
1
- {"version":3,"file":"alerter.d.ts","sourceRoot":"","sources":["../../../src/alerts/alerter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EACV,cAAc,EAId,cAAc,EACf,MAAM,iBAAiB,CAAC;AAOzB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,OAAO;IAaN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;gBAEpB,IAAI,EAAE,WAAW;IAM9C;;;;OAIG;IACG,QAAQ,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxD;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKvC,4EAA4E;IAC5E,IAAI,eAAe,IAAI,MAAM,CAE5B;YAEa,oBAAoB;IA+BlC,wEAAwE;YAC1D,YAAY;YAWZ,qBAAqB;IAiBnC,wEAAwE;IACxE,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,wBAAwB;IAmBhC;;;;OAIG;YACW,QAAQ;IAWtB,OAAO,CAAC,kBAAkB;CAM3B"}
1
+ {"version":3,"file":"alerter.d.ts","sourceRoot":"","sources":["../../../src/alerts/alerter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EACV,cAAc,EAKd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAWzB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,OAAO;IAaN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;gBAEpB,IAAI,EAAE,WAAW;IAM9C;;;;OAIG;IACG,QAAQ,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxD;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAOvC,4EAA4E;IAC5E,IAAI,eAAe,IAAI,MAAM,CAE5B;YAEa,oBAAoB;IA+BlC;;;;;OAKG;YACW,sBAAsB;IAuBpC,wEAAwE;YAC1D,YAAY;YAWZ,qBAAqB;IAiBnC,wEAAwE;IACxE,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,UAAU;IAMlB,uFAAuF;IACvF,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAkBxB;;;;;OAKG;YACW,qBAAqB;IAqBnC;;;;;OAKG;YACW,UAAU;IAWxB;;;;OAIG;YACW,QAAQ;IAWtB,OAAO,CAAC,kBAAkB;CAM3B"}
@@ -1,7 +1,11 @@
1
+ import { EntryType } from '../entry.js';
1
2
  import { NewExceptionTracker } from './new_exception_tracker.js';
2
3
  import { durationToMs } from './parse_duration.js';
3
4
  /** Stack frames carried in a `new-exception` alert (the Slack channel re-clips). */
4
5
  const ALERT_STACK_FRAME_LIMIT = 12;
6
+ /** Window used only to count occurrences on an `every-exception` alert when the
7
+ * rule omits its own `window`. Firing is per-flush, so this is display-only. */
8
+ const DEFAULT_EVERY_WINDOW = '1h';
5
9
  /**
6
10
  * Wires a source of exception {@link Entry} objects → rule evaluation → channels.
7
11
  *
@@ -55,6 +59,7 @@ export class Alerter {
55
59
  this.recentExceptions.push(entry.createdAt.getTime());
56
60
  }
57
61
  await this.evaluateNewException(exceptionEntries, nowMs);
62
+ await this.evaluateEveryException(exceptionEntries, nowMs);
58
63
  await this.evaluateExceptionRate(nowMs);
59
64
  }
60
65
  catch (error) {
@@ -68,7 +73,9 @@ export class Alerter {
68
73
  */
69
74
  resolveFamily(familyHash) {
70
75
  this.tracker.resolve(familyHash);
71
- this.lastFiredFamily.delete(familyHash);
76
+ // Clear BOTH flush rules' independent per-family cooldown clocks.
77
+ this.lastFiredFamily.delete(this.cooldownKey('new-exception', familyHash));
78
+ this.lastFiredFamily.delete(this.cooldownKey('every-exception', familyHash));
72
79
  }
73
80
  /** Number of error families currently tracked (test/observability seam). */
74
81
  get trackedFamilies() {
@@ -93,11 +100,11 @@ export class Alerter {
93
100
  const isNew = this.tracker.observe(entry.familyHash, nowMs, windowMs);
94
101
  if (!isNew)
95
102
  continue;
96
- if (this.familyInCooldown(entry.familyHash, nowMs))
103
+ if (this.familyInCooldown('new-exception', entry.familyHash, nowMs))
97
104
  continue;
98
- this.lastFiredFamily.set(entry.familyHash, nowMs);
105
+ this.lastFiredFamily.set(this.cooldownKey('new-exception', entry.familyHash), nowMs);
99
106
  const occurrences = occurrencesByFamily.get(entry.familyHash) ?? 1;
100
- const payload = this.buildNewExceptionPayload(result.rule, entry, occurrences, nowMs);
107
+ const payload = await this.buildExceptionPayload(result.rule, entry, occurrences, nowMs);
101
108
  // Optionally enrich with an AI probable-cause section when a diagnose hook is
102
109
  // wired. The hook is expected to be fail-safe/time-bounded (the coordinator
103
110
  // is); we guard it anyway so a diagnosis failure never blocks the alert.
@@ -107,6 +114,36 @@ export class Alerter {
107
114
  await this.dispatch(payload);
108
115
  }
109
116
  }
117
+ /**
118
+ * The `every-exception` rule: fire for EVERY exception (server + client), not
119
+ * just brand-new families, rate-limited PER FAMILY by the shared cooldown on an
120
+ * independent clock from `new-exception`. The optional `window` only counts
121
+ * occurrences shown on the alert; it does NOT gate firing.
122
+ */
123
+ async evaluateEveryException(entries, nowMs) {
124
+ const result = this.findRule('every-exception');
125
+ if (result === null)
126
+ return;
127
+ const occurrencesByFamily = new Map();
128
+ for (const entry of entries) {
129
+ if (entry.familyHash === null)
130
+ continue;
131
+ occurrencesByFamily.set(entry.familyHash, (occurrencesByFamily.get(entry.familyHash) ?? 0) + 1);
132
+ }
133
+ for (const entry of entries) {
134
+ if (entry.familyHash === null)
135
+ continue;
136
+ if (this.familyInCooldown('every-exception', entry.familyHash, nowMs))
137
+ continue;
138
+ this.lastFiredFamily.set(this.cooldownKey('every-exception', entry.familyHash), nowMs);
139
+ const occurrences = occurrencesByFamily.get(entry.familyHash) ?? 1;
140
+ const payload = await this.buildExceptionPayload(result.rule, entry, occurrences, nowMs);
141
+ const diagnosis = await this.safeDiagnose(entry);
142
+ if (diagnosis !== null)
143
+ payload.diagnosis = diagnosis;
144
+ await this.dispatch(payload);
145
+ }
146
+ }
110
147
  /** Run the optional diagnose hook, swallowing any failure to `null`. */
111
148
  async safeDiagnose(entry) {
112
149
  const diagnose = this.deps.diagnose;
@@ -155,8 +192,12 @@ export class Alerter {
155
192
  return false;
156
193
  return nowMs - last < this.deps.alerts.cooldownMs;
157
194
  }
158
- familyInCooldown(familyHash, nowMs) {
159
- const last = this.lastFiredFamily.get(familyHash);
195
+ /** Composite cooldown key so each flush rule keeps an independent per-family clock. */
196
+ cooldownKey(ruleType, familyHash) {
197
+ return `${ruleType}|${familyHash}`;
198
+ }
199
+ familyInCooldown(ruleType, familyHash, nowMs) {
200
+ const last = this.lastFiredFamily.get(this.cooldownKey(ruleType, familyHash));
160
201
  if (last === undefined)
161
202
  return false;
162
203
  return nowMs - last < this.deps.alerts.cooldownMs;
@@ -173,19 +214,45 @@ export class Alerter {
173
214
  : {}),
174
215
  };
175
216
  }
176
- buildNewExceptionPayload(rule, entry, occurrences, nowMs) {
217
+ /**
218
+ * Build the rich exception payload shared by `new-exception` and
219
+ * `every-exception`. Reads the exception entry's own fields (server vs client),
220
+ * then — when a `geoLookup` hook is configured and a client IP is present —
221
+ * resolves the IP to a coarse location. Geo runs ONLY on a real fire.
222
+ */
223
+ async buildExceptionPayload(rule, entry, occurrences, nowMs) {
224
+ const exception = buildExceptionContext(entry, occurrences);
225
+ exception.geo = await this.resolveGeo(exception.clientIp);
177
226
  return {
178
227
  rule,
179
228
  value: occurrences,
180
229
  threshold: 1,
181
230
  firedAt: new Date(nowMs).toISOString(),
182
231
  instanceId: this.deps.alerts.instanceId,
183
- exception: buildExceptionContext(entry, occurrences),
232
+ exception,
184
233
  ...(this.deps.alerts.dashboardUrl !== null
185
234
  ? { dashboardUrl: this.deps.alerts.dashboardUrl }
186
235
  : {}),
187
236
  };
188
237
  }
238
+ /**
239
+ * Resolve a client IP to a coarse {@link AlertGeoLocation} via the host's
240
+ * `geoLookup` hook. Returns `null` when no hook is configured, no IP is present,
241
+ * the hook returns `null`, or the hook throws (swallowed — geo is purely
242
+ * additive and must never break or block an alert beyond the hook's own cost).
243
+ */
244
+ async resolveGeo(clientIp) {
245
+ const hook = this.deps.alerts.geoLookup;
246
+ if (typeof hook !== 'function' || clientIp === null)
247
+ return null;
248
+ try {
249
+ return (await hook(clientIp)) ?? null;
250
+ }
251
+ catch (error) {
252
+ this.logger(`Telescope alert geoLookup failed: ${asMessage(error)}`);
253
+ return null;
254
+ }
255
+ }
189
256
  /**
190
257
  * Fan the payload out to every channel concurrently. Each channel's failure is
191
258
  * isolated (`Promise.allSettled`) and warn-logged ONCE per channel name so a
@@ -208,21 +275,55 @@ export class Alerter {
208
275
  this.logger(`Telescope alert channel '${channel.name}' failed: ${asMessage(reason)}`);
209
276
  }
210
277
  }
211
- /** Build the rich exception context from an exception {@link Entry}. */
278
+ /**
279
+ * Build the rich exception context from an exception {@link Entry}, branching on
280
+ * whether it's a browser-reported `client_exception` or a server exception. Client
281
+ * exceptions carry their own IP (server-filled at ingest, NEVER from the body),
282
+ * user-agent, React component stack, and free-form `extra`; server exceptions
283
+ * carry route/method from the recorded request context. `geo` is left `null` here
284
+ * and resolved async by the alerter only on a real fire.
285
+ */
212
286
  function buildExceptionContext(entry, occurrences) {
213
287
  const content = asContentRecord(entry.content);
214
- return {
288
+ const client = entry.type === EntryType.ClientException;
289
+ const base = {
215
290
  familyHash: entry.familyHash ?? '',
216
291
  class: pickString(content, ['class', 'name']) ?? 'Error',
217
292
  message: pickString(content, ['message']) ?? '',
218
293
  stack: clipStackFrames(pickString(content, ['stack']) ?? null),
219
294
  route: pickString(content, ['route', 'uri', 'url']),
220
- method: pickString(content, ['method']),
221
295
  statusCode: pickNumber(content, ['statusCode', 'status']),
296
+ geo: null,
297
+ durationMs: pickNumber(content, ['durationMs']),
222
298
  user: userFromTags(entry.tags),
223
299
  occurrences,
300
+ // First occurrence of the family in the window vs a recurrence.
301
+ isNew: occurrences === 1,
224
302
  entryId: entry.id,
225
303
  };
304
+ if (client) {
305
+ return {
306
+ ...base,
307
+ method: null,
308
+ userAgent: pickString(content, ['userAgent']),
309
+ referer: null,
310
+ componentStack: pickString(content, ['componentStack']),
311
+ extra: pickRecord(content, ['extra']),
312
+ client: true,
313
+ // Server-filled at ingest (client_errors validation), never from the body.
314
+ clientIp: pickString(content, ['clientIp']),
315
+ };
316
+ }
317
+ return {
318
+ ...base,
319
+ method: pickString(content, ['method']),
320
+ userAgent: pickString(content, ['userAgent']),
321
+ referer: pickString(content, ['referer', 'referrer']),
322
+ componentStack: null,
323
+ extra: null,
324
+ client: false,
325
+ clientIp: pickString(content, ['ip', 'clientIp']),
326
+ };
226
327
  }
227
328
  function asContentRecord(content) {
228
329
  return typeof content === 'object' && content !== null
@@ -247,6 +348,16 @@ function pickNumber(record, keys) {
247
348
  }
248
349
  return null;
249
350
  }
351
+ /** First plain-object field among `keys`, or `null`. */
352
+ function pickRecord(record, keys) {
353
+ for (const key of keys) {
354
+ const value = record[key];
355
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
356
+ return value;
357
+ }
358
+ }
359
+ return null;
360
+ }
250
361
  /** Keep at most the first N stack frames; `null` passes through. */
251
362
  function clipStackFrames(stack) {
252
363
  if (stack === null)
@@ -1 +1 @@
1
- {"version":3,"file":"alerter.js","sourceRoot":"","sources":["../../../src/alerts/alerter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,oFAAoF;AACpF,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAoBnC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,OAAO;IAaW;IAZZ,GAAG,CAAe;IAClB,MAAM,CAA4B;IAClC,OAAO,CAAsB;IAC9C,sEAAsE;IACrD,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,wEAAwE;IACvD,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7D,6EAA6E;IAC5D,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACpD,yEAAyE;IACxD,gBAAgB,GAAa,EAAE,CAAC;IAEjD,YAA6B,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,gBAAyB;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,sEAAsE;YACtE,uEAAuE;YACvE,2EAA2E;YAC3E,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,+DAA+D;YAC/D,IAAI,CAAC,MAAM,CAAC,sCAAsC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,UAAkB;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,4EAA4E;IAC5E,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,OAAgB,EAAE,KAAa;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACxC,mBAAmB,CAAC,GAAG,CACrB,KAAK,CAAC,UAAU,EAChB,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACrD,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,SAAS;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;gBAAE,SAAS;YAC7D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YACtF,8EAA8E;YAC9E,4EAA4E;YAC5E,yEAAyE;YACzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,YAAY,CAAC,KAAY;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,qCAAqC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,KAAa;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,oDAAoD;QACpD,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAY,GAAG,MAAM,EAAE,CAAC;YACzF,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;YAAE,OAAO;QACnC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO;QAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,wEAAwE;IAChE,QAAQ,CACd,IAAO;QAEP,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7C,OAAO,EAAE,IAAI,EAAE,IAAuC,EAAE,KAAK,EAAE,CAAC;YAClE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,KAAa;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACpD,CAAC;IAEO,gBAAgB,CAAC,UAAkB,EAAE,KAAa;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACpD,CAAC;IAEO,gBAAgB,CACtB,IAAe,EACf,KAAa,EACb,SAAiB,EACjB,KAAa;QAEb,OAAO;YACL,IAAI;YACJ,KAAK;YACL,SAAS;YACT,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACtC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACvC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;gBACxC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAC9B,IAAe,EACf,KAAY,EACZ,WAAmB,EACnB,KAAa;QAEb,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACtC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACvC,SAAS,EAAE,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;gBACxC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,QAAQ,CAAC,OAAqB;QAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAClE,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,OAAiC,EAAE,MAAe;QAC3E,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,4BAA4B,OAAO,CAAC,IAAI,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;CACF;AAED,wEAAwE;AACxE,SAAS,qBAAqB,CAAC,KAAY,EAAE,WAAmB;IAC9D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,OAAO;QACxD,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;QAC/C,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;QAC9D,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;QACvC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,WAAW;QACX,OAAO,EAAE,KAAK,CAAC,EAAE;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QACpD,CAAC,CAAE,OAAmC;QACtC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,yDAAyD;AACzD,SAAS,UAAU,CAAC,MAA+B,EAAE,IAAc;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yDAAyD;AACzD,SAAS,UAAU,CAAC,MAA+B,EAAE,IAAc;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oEAAoE;AACpE,SAAS,eAAe,CAAC,KAAoB;IAC3C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,kFAAkF;AAClF,SAAS,YAAY,CAAC,IAAc;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"alerter.js","sourceRoot":"","sources":["../../../src/alerts/alerter.ts"],"names":[],"mappings":"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"}