@oneuptime/common 11.5.12 → 11.5.13

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 (75) hide show
  1. package/Models/DatabaseModels/AIInsight.ts +30 -0
  2. package/Models/DatabaseModels/Project.ts +30 -0
  3. package/Models/DatabaseModels/TelemetryException.ts +128 -0
  4. package/Server/API/AIAgentDataAPI.ts +129 -5
  5. package/Server/API/AIInvestigationAPI.ts +87 -0
  6. package/Server/Infrastructure/Postgres/SchemaMigrations/1784640000000-AddExceptionTriageAndPrivacyColumns.ts +56 -0
  7. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  8. package/Server/Services/AIRunService.ts +8 -0
  9. package/Server/Services/TelemetryExceptionService.ts +320 -24
  10. package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +15 -4
  11. package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +15 -4
  12. package/Server/Utils/AI/SRE/Insights/InsightScanner.ts +222 -24
  13. package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +225 -9
  14. package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +39 -0
  15. package/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.ts +114 -0
  16. package/Server/Utils/Telemetry/ExceptionSanitizer.ts +222 -0
  17. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +205 -1
  18. package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +150 -141
  19. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +277 -1
  20. package/Tests/Server/Utils/ExceptionSanitizer.test.ts +70 -0
  21. package/Tests/Server/Utils/InsightTriageClassification.test.ts +57 -0
  22. package/Tests/Server/Utils/TelemetryImprovementTaskTrigger.test.ts +141 -0
  23. package/Tests/UI/Components/ModelTableSelectFromColumns.test.ts +259 -0
  24. package/Types/AI/CodeFixTaskContext.ts +6 -0
  25. package/Types/AI/CodeFixTaskType.ts +38 -1
  26. package/Types/AI/ExceptionAIClassification.ts +27 -0
  27. package/Types/Log/LogScrubPatternType.ts +7 -0
  28. package/Types/Trace/TraceScrubPatternType.ts +7 -0
  29. package/UI/Components/ModelTable/BaseModelTable.tsx +15 -46
  30. package/UI/Components/ModelTable/SelectFromColumns.ts +129 -0
  31. package/build/dist/Models/DatabaseModels/AIInsight.js +31 -0
  32. package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -1
  33. package/build/dist/Models/DatabaseModels/Project.js +31 -0
  34. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  35. package/build/dist/Models/DatabaseModels/TelemetryException.js +134 -0
  36. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  37. package/build/dist/Server/API/AIAgentDataAPI.js +97 -8
  38. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  39. package/build/dist/Server/API/AIInvestigationAPI.js +55 -0
  40. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  41. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784640000000-AddExceptionTriageAndPrivacyColumns.js +33 -0
  42. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784640000000-AddExceptionTriageAndPrivacyColumns.js.map +1 -0
  43. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  44. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  45. package/build/dist/Server/Services/AIRunService.js +9 -2
  46. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  47. package/build/dist/Server/Services/TelemetryExceptionService.js +263 -22
  48. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  49. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +12 -4
  50. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
  51. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +12 -4
  52. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
  53. package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js +193 -22
  54. package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js.map +1 -1
  55. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +178 -9
  56. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -1
  57. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +37 -0
  58. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -1
  59. package/build/dist/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.js +98 -0
  60. package/build/dist/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.js.map +1 -0
  61. package/build/dist/Server/Utils/Telemetry/ExceptionSanitizer.js +149 -0
  62. package/build/dist/Server/Utils/Telemetry/ExceptionSanitizer.js.map +1 -0
  63. package/build/dist/Types/AI/CodeFixTaskType.js +38 -1
  64. package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -1
  65. package/build/dist/Types/AI/ExceptionAIClassification.js +28 -0
  66. package/build/dist/Types/AI/ExceptionAIClassification.js.map +1 -0
  67. package/build/dist/Types/Log/LogScrubPatternType.js +7 -0
  68. package/build/dist/Types/Log/LogScrubPatternType.js.map +1 -1
  69. package/build/dist/Types/Trace/TraceScrubPatternType.js +7 -0
  70. package/build/dist/Types/Trace/TraceScrubPatternType.js.map +1 -1
  71. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +12 -37
  72. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  73. package/build/dist/UI/Components/ModelTable/SelectFromColumns.js +82 -0
  74. package/build/dist/UI/Components/ModelTable/SelectFromColumns.js.map +1 -0
  75. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InsightTriageRunner.js","sourceRoot":"","sources":["../../../../../../../Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAGtD,OAAO,gBAAgB,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAC7D,OAAO,oBAAoB,MAAM,uBAAuB,CAAC;AAGzD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AAEH;;;;GAIG;AACH,MAAM,2BAA2B,GAAW,IAAI,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,yBAAyB,GAAW;;;;yJAI+G,CAAC;AAE1J,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;;;OAKG;IAEiB,AAAb,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAKjC;QACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAErE,IAAI,cAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAqB,MAAM,gBAAgB,CAAC,WAAW,CAAC;gBACnE,EAAE,EAAE,iBAAiB;gBACrB,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI;oBACT,WAAW,EAAE,IAAI;oBACjB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,cAAc,EAAE,IAAI;oBACpB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;oBAChB,WAAW,EAAE,IAAI;oBACjB,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,IAAI;iBACtB;gBACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;YACJ,CAAC;YAED,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf;;;eAGG;YACH,MAAM,oBAAoB,CAAC,aAAa,CAAC;gBACvC,OAAO;gBACP,YAAY;gBACZ,YAAY,EAAE,oCACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE;gBACF,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,qBAAqB,CAAC,UAAU,CAAC;YACrC,OAAO;YACP,SAAS;YACT,YAAY;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,yBAAyB;gBAClC,cAAc;gBACd,YAAY,EAAE,KAAK,EAAE,QAIpB,EAAiB,EAAE;oBAClB;;;;;;uBAMG;oBACH,MAAM,gBAAgB,CAAC,aAAa,CAAC;wBACnC,EAAE,EAAE,iBAAiB;wBACrB,IAAI,EAAE;4BACJ,qBAAqB,EAAE,QAAQ,CAAC,gBAAgB;4BAChD,iBAAiB,EAAE,aAAa,CAAC,cAAc,EAAE;yBAClD;wBACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;qBACxB,CAAC,CAAC;oBAEH,MAAM,CAAC,KAAK,CACV,kDAAkD,iBAAiB,CAAC,QAAQ,EAAE,SAAS,OAAO,CAAC,QAAQ,EAAE,eAAe,QAAQ,CAAC,UAAU,CAAC,SAAS,QAAQ,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,CAC5L,CAAC;gBACJ,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,0DAA0D;IAClD,MAAM,CAAC,mBAAmB,CAAC,OAAkB;QACnD,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC;QAErD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,4BAA4B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CACR,eAAe,aAAa,CAAC,wBAAwB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAC7E,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CACR,cAAc,aAAa,CAAC,wBAAwB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAC3E,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CACR,iEAAiE,CAClE,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,gBAAgB,GAAW,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,cAAc,CAC3B,QAAuC;QAEvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAmC;YAC/C,WAAW;YACX,UAAU;YACV,SAAS;YACT,aAAa;SACd,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GACT,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEpB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YAED,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAAC,WAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,GAAG,2BAA2B,EAAE,CAAC;gBAClD,QAAQ,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,2BAA2B,CAAC,eAAe,CAAC;YAClF,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAzLqB;IADnB,WAAW,EAAE;;;;8CAuFb"}
1
+ {"version":3,"file":"InsightTriageRunner.js","sourceRoot":"","sources":["../../../../../../../Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,37 @@ export default class SubjectCodeFixRun {
98
98
  return ((_a = run.taskContext) === null || _a === void 0 ? void 0 : _a.traceId) === data.traceId;
99
99
  }) || null);
100
100
  }
101
+ /*
102
+ * Per-(service, recipe) dedupe for the service-scoped instrumentation
103
+ * recipes (ImproveLogging / ImproveTracing): at most one non-terminal
104
+ * run of a recipe per (project, telemetryServiceId). Same in-memory
105
+ * taskContext matching as the per-trace guard above — the id lives in
106
+ * JSON the Query layer cannot filter on, and the candidate set is
107
+ * bounded and rare.
108
+ */
109
+ static async findNonTerminalRunForTelemetryService(data) {
110
+ const activeRuns = await AIRunService.findBy({
111
+ query: {
112
+ projectId: data.projectId,
113
+ runType: AIRunType.CodeFix,
114
+ codeFixTaskType: data.taskType,
115
+ status: QueryHelper.notIn([
116
+ AIRunStatus.Completed,
117
+ AIRunStatus.Error,
118
+ AIRunStatus.Cancelled,
119
+ AIRunStatus.Stale,
120
+ ]),
121
+ },
122
+ select: { _id: true, taskContext: true },
123
+ limit: LIMIT_PER_PROJECT,
124
+ skip: 0,
125
+ props: { isRoot: true },
126
+ });
127
+ return (activeRuns.find((run) => {
128
+ var _a;
129
+ return ((_a = run.taskContext) === null || _a === void 0 ? void 0 : _a.telemetryServiceId) === data.telemetryServiceId;
130
+ }) || null);
131
+ }
101
132
  /*
102
133
  * Record the durable intent as a Queued CodeFix AIRun that the external
103
134
  * agent worker claims via /ai-agent-task/get-pending-task. `userId` is
@@ -158,6 +189,12 @@ __decorate([
158
189
  __metadata("design:paramtypes", [Object]),
159
190
  __metadata("design:returntype", Promise)
160
191
  ], SubjectCodeFixRun, "findNonTerminalPerformanceFixRunForTrace", null);
192
+ __decorate([
193
+ CaptureSpan(),
194
+ __metadata("design:type", Function),
195
+ __metadata("design:paramtypes", [Object]),
196
+ __metadata("design:returntype", Promise)
197
+ ], SubjectCodeFixRun, "findNonTerminalRunForTelemetryService", null);
161
198
  __decorate([
162
199
  CaptureSpan(),
163
200
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"SubjectCodeFixRun.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/SubjectCodeFixRun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubjectCodeFixRun.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/SubjectCodeFixRun.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import CodeFixTaskType from "../../../../Types/AI/CodeFixTaskType";
11
+ import BadDataException from "../../../../Types/Exception/BadDataException";
12
+ import ServiceService from "../../../Services/ServiceService";
13
+ import SubjectCodeFixRun from "./SubjectCodeFixRun";
14
+ import CaptureSpan from "../../Telemetry/CaptureSpan";
15
+ /*
16
+ * AI SRE — the service-scoped instrumentation-improvement triggers:
17
+ * ImproveLogging and ImproveTracing. One click on a service's Logs or
18
+ * Traces page opens a draft PR that improves that service's logging or
19
+ * tracing hygiene — parameterized log messages, correct severities, spans
20
+ * on uninstrumented paths, proper exception recording — WITHOUT changing
21
+ * behavior.
22
+ *
23
+ * Like FixFromIncident and FixPerformance these are human-triggered from a
24
+ * user-facing endpoint (POST /ai-investigation/
25
+ * create-telemetry-improvement-task), so there is no project opt-in flag —
26
+ * the human in the loop IS the gate — and every unmet gate FAILS EARLY
27
+ * with a clear message. The recipe's grounding is the SERVICE: repository
28
+ * resolution at task-details time uses the service name (name-match /
29
+ * only-repository), the same path the incident-subject recipes use.
30
+ */
31
+ export default class TelemetryImprovementTaskTrigger {
32
+ /*
33
+ * Gate and enqueue an ImproveLogging / ImproveTracing CodeFix run for a
34
+ * telemetry service. The caller must already have loaded the service
35
+ * under the USER's permissions (the access check) — this method reads
36
+ * and writes as root.
37
+ *
38
+ * Throws BadDataException naming the failed gate: unsupported recipe, no
39
+ * GitHub-App repository, a duplicate active run for the same service, or
40
+ * (via enqueueSubjectCodeFixRun) the daily fix-run budget.
41
+ */
42
+ static async createTelemetryImprovementTask(data) {
43
+ var _a;
44
+ if (data.taskType !== CodeFixTaskType.ImproveLogging &&
45
+ data.taskType !== CodeFixTaskType.ImproveTracing) {
46
+ throw new BadDataException(`Task type "${data.taskType}" is not a telemetry-improvement recipe. Supported: ${CodeFixTaskType.ImproveLogging}, ${CodeFixTaskType.ImproveTracing}.`);
47
+ }
48
+ const service = await ServiceService.findOneById({
49
+ id: data.telemetryServiceId,
50
+ select: {
51
+ _id: true,
52
+ name: true,
53
+ projectId: true,
54
+ },
55
+ props: { isRoot: true },
56
+ });
57
+ if (!service ||
58
+ ((_a = service.projectId) === null || _a === void 0 ? void 0 : _a.toString()) !== data.projectId.toString()) {
59
+ throw new BadDataException("Telemetry service not found.");
60
+ }
61
+ // Gate — a repository the agent can actually open a PR against.
62
+ const hasConnectedRepository = await SubjectCodeFixRun.hasGitHubAppConnectedRepository(data.projectId);
63
+ if (!hasConnectedRepository) {
64
+ throw new BadDataException("No GitHub-App-connected repository exists for this project, so the agent has nowhere to open the pull request. Connect one under AI > Code Repositories.");
65
+ }
66
+ /*
67
+ * Gate — per-(service, recipe) dedupe: repeated clicks must not fan
68
+ * out into duplicate PRs.
69
+ */
70
+ const existingRun = await SubjectCodeFixRun.findNonTerminalRunForTelemetryService({
71
+ projectId: data.projectId,
72
+ taskType: data.taskType,
73
+ telemetryServiceId: data.telemetryServiceId.toString(),
74
+ });
75
+ if (existingRun) {
76
+ throw new BadDataException(`An ${data.taskType === CodeFixTaskType.ImproveLogging
77
+ ? "improve-logging"
78
+ : "improve-tracing"} task is already queued or running for this service. Track its progress on the AI > Tasks page.`);
79
+ }
80
+ const taskContext = {
81
+ telemetryServiceId: data.telemetryServiceId.toString(),
82
+ serviceName: service.name || undefined,
83
+ };
84
+ return SubjectCodeFixRun.enqueueSubjectCodeFixRun({
85
+ projectId: data.projectId,
86
+ taskType: data.taskType,
87
+ userId: data.userId,
88
+ taskContext,
89
+ });
90
+ }
91
+ }
92
+ __decorate([
93
+ CaptureSpan(),
94
+ __metadata("design:type", Function),
95
+ __metadata("design:paramtypes", [Object]),
96
+ __metadata("design:returntype", Promise)
97
+ ], TelemetryImprovementTaskTrigger, "createTelemetryImprovementTask", null);
98
+ //# sourceMappingURL=TelemetryImprovementTaskTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetryImprovementTaskTrigger.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,eAAe,MAAM,sCAAsC,CAAC;AAEnE,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAG5E,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,WAAW,MAAM,6BAA6B,CAAC;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,+BAA+B;IAClD;;;;;;;;;OASG;IAEiB,AAAb,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,IAKlD;;QACC,IACE,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,cAAc;YAChD,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,cAAc,EAChD,CAAC;YACD,MAAM,IAAI,gBAAgB,CACxB,cAAc,IAAI,CAAC,QAAQ,uDAAuD,eAAe,CAAC,cAAc,KAAK,eAAe,CAAC,cAAc,GAAG,CACvJ,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAmB,MAAM,cAAc,CAAC,WAAW,CAAC;YAC/D,EAAE,EAAE,IAAI,CAAC,kBAAkB;YAC3B,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,IAAI;aAChB;YACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,IACE,CAAC,OAAO;YACR,CAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,QAAQ,EAAE,MAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAC3D,CAAC;YACD,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;QAC7D,CAAC;QAED,gEAAgE;QAChE,MAAM,sBAAsB,GAC1B,MAAM,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1E,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,MAAM,IAAI,gBAAgB,CACxB,0JAA0J,CAC3J,CAAC;QACJ,CAAC;QAED;;;WAGG;QACH,MAAM,WAAW,GACf,MAAM,iBAAiB,CAAC,qCAAqC,CAAC;YAC5D,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;SACvD,CAAC,CAAC;QAEL,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAgB,CACxB,MACE,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,cAAc;gBAC9C,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,iBACN,iGAAiG,CAClG,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAuB;YACtC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YACtD,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;SACvC,CAAC;QAEF,OAAO,iBAAiB,CAAC,wBAAwB,CAAC;YAChD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AA3EqB;IADnB,WAAW,EAAE;;;;2EA2Eb"}
@@ -0,0 +1,149 @@
1
+ import ToolResultSerializer from "../AI/Toolbox/Serializer";
2
+ /*
3
+ * Shared exception-text sanitization.
4
+ *
5
+ * normalizeExceptionText is the fingerprint normalizer that used to live
6
+ * in App/FeatureSet/Telemetry/Utils/Exception.ts — it was moved here (the
7
+ * App util now delegates) so server-side consumers in Common (the AI
8
+ * agent data API) can sanitize exception messages before they reach LLM
9
+ * prompts, pull-request text, and commit messages. The replacement
10
+ * behavior MUST stay byte-for-byte stable: fingerprints are computed from
11
+ * its output, and changing it regroups every existing exception.
12
+ */
13
+ /**
14
+ * Normalizes a string by replacing dynamic values with placeholders.
15
+ * This ensures that exceptions with the same root cause but different
16
+ * dynamic values (like IDs, timestamps, etc.) get the same fingerprint.
17
+ *
18
+ * @param text - The text to normalize (message or stack trace)
19
+ * @returns The normalized text with dynamic values replaced
20
+ */
21
+ export function normalizeExceptionText(text) {
22
+ if (!text) {
23
+ return "";
24
+ }
25
+ let normalized = text;
26
+ // Order matters! More specific patterns should come before generic ones.
27
+ // 1. UUIDs (e.g., 550e8400-e29b-41d4-a716-446655440000)
28
+ normalized = normalized.replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi, "<UUID>");
29
+ // 2. MongoDB ObjectIDs (24 hex characters)
30
+ normalized = normalized.replace(/\b[0-9a-f]{24}\b/gi, "<OBJECT_ID>");
31
+ /*
32
+ * 3. Stripe-style IDs (e.g., sub_xxx, cus_xxx, pi_xxx, ch_xxx, etc.)
33
+ * These have a prefix followed by underscore and alphanumeric characters
34
+ */
35
+ normalized = normalized.replace(/\b(sub|cus|pi|ch|pm|card|price|prod|inv|txn|evt|req|acct|payout|ba|btok|src|tok|seti|si|cs|link|file|dp|icr|ii|il|is|isci|mbur|or|po|qt|rcpt|re|refund|sku|tax|txi|tr|us|wh)_[A-Za-z0-9]{10,32}\b/g, "<STRIPE_ID>");
36
+ /*
37
+ * 4. Generic API/Service IDs - alphanumeric strings that look like IDs
38
+ * Matches patterns like: prefix_alphanumeric or just long alphanumeric strings
39
+ * Common in many services (AWS, GCP, etc.)
40
+ */
41
+ normalized = normalized.replace(/\b[a-z]{2,10}_[A-Za-z0-9]{8,}\b/g, "<SERVICE_ID>");
42
+ // 5. JWT tokens (three base64 segments separated by dots)
43
+ normalized = normalized.replace(/\beyJ[A-Za-z0-9_-]*\.eyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]+\b/g, "<JWT>");
44
+ // 6. Base64 encoded strings (long sequences, likely tokens or encoded data)
45
+ normalized = normalized.replace(/\b[A-Za-z0-9+/]{40,}={0,2}\b/g, "<BASE64>");
46
+ // 7. IP addresses (IPv4)
47
+ normalized = normalized.replace(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g, "<IP>");
48
+ // 8. IP addresses (IPv6) - simplified pattern
49
+ normalized = normalized.replace(/\b(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\b/g, "<IPV6>");
50
+ normalized = normalized.replace(/\b::1\b/g, "<IPV6>"); // localhost IPv6
51
+ // 9. Email addresses
52
+ normalized = normalized.replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g, "<EMAIL>");
53
+ /*
54
+ * 10. URLs with dynamic paths/query params (normalize the dynamic parts)
55
+ * Keep the domain but normalize path segments that look like IDs
56
+ */
57
+ normalized = normalized.replace(/\/[0-9a-f]{8,}(?=\/|$|\?|#|\s|'|")/gi, "/<ID>");
58
+ /*
59
+ * 11. Timestamps in various formats
60
+ * ISO 8601 timestamps
61
+ */
62
+ normalized = normalized.replace(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?/g, "<TIMESTAMP>");
63
+ // Unix timestamps (10 or 13 digits)
64
+ normalized = normalized.replace(/\b1[0-9]{9,12}\b/g, "<TIMESTAMP>");
65
+ // 12. Date formats (YYYY-MM-DD, MM/DD/YYYY, etc.)
66
+ normalized = normalized.replace(/\b\d{4}[-/]\d{2}[-/]\d{2}\b/g, "<DATE>");
67
+ normalized = normalized.replace(/\b\d{2}[-/]\d{2}[-/]\d{4}\b/g, "<DATE>");
68
+ // 13. Time formats (HH:MM:SS, HH:MM)
69
+ normalized = normalized.replace(/\b\d{2}:\d{2}(?::\d{2})?\b/g, "<TIME>");
70
+ // 14. Memory addresses (0x followed by hex)
71
+ normalized = normalized.replace(/\b0x[0-9a-fA-F]+\b/g, "<MEMORY_ADDR>");
72
+ // 15. Session IDs (common patterns) - MUST come before hex ID pattern
73
+ normalized = normalized.replace(/\bsession[_-]?id[=:\s]*['"]?[A-Za-z0-9_-]+['"]?/gi, "session_id=<SESSION>");
74
+ // 16. Request IDs (common patterns) - MUST come before hex ID pattern
75
+ normalized = normalized.replace(/\brequest[_-]?id[=:\s]*['"]?[A-Za-z0-9_-]+['"]?/gi, "request_id=<REQUEST>");
76
+ // 17. Correlation IDs - MUST come before hex ID pattern
77
+ normalized = normalized.replace(/\bcorrelation[_-]?id[=:\s]*['"]?[A-Za-z0-9_-]+['"]?/gi, "correlation_id=<CORRELATION>");
78
+ // 18. Transaction IDs - MUST come before hex ID pattern
79
+ normalized = normalized.replace(/\btransaction[_-]?id[=:\s]*['"]?[A-Za-z0-9_-]+['"]?/gi, "transaction_id=<TRANSACTION>");
80
+ // 19. Hex strings that are likely IDs (8+ chars)
81
+ normalized = normalized.replace(/\b[0-9a-f]{8,}\b/gi, "<HEX_ID>");
82
+ /*
83
+ * 20. Quoted strings containing IDs or dynamic values
84
+ * Match strings in single or double quotes that look like IDs
85
+ */
86
+ normalized = normalized.replace(/'[A-Za-z0-9_-]{16,}'/g, "'<ID>'");
87
+ normalized = normalized.replace(/"[A-Za-z0-9_-]{16,}"/g, '"<ID>"');
88
+ // 21. Port numbers in URLs or connection strings
89
+ normalized = normalized.replace(/:(\d{4,5})(?=\/|$|\s)/g, ":<PORT>");
90
+ /*
91
+ * 22. Line numbers in stack traces (keep for context, but normalize large numbers)
92
+ * This normalizes specific line/column references that might vary
93
+ */
94
+ normalized = normalized.replace(/:\d+:\d+\)?$/gm, ":<LINE>:<COL>)");
95
+ // 23. Process/Thread IDs
96
+ normalized = normalized.replace(/\bPID[:\s]*\d+\b/gi, "PID:<PID>");
97
+ normalized = normalized.replace(/\bTID[:\s]*\d+\b/gi, "TID:<TID>");
98
+ // 24. Numeric IDs in common patterns (id=123, id: 123, etc.)
99
+ normalized = normalized.replace(/\bid[=:\s]*['"]?\d+['"]?/gi, "id=<ID>");
100
+ // 25. Large numbers that are likely IDs (more than 6 digits)
101
+ normalized = normalized.replace(/\b\d{7,}\b/g, "<NUMBER>");
102
+ return normalized;
103
+ }
104
+ /**
105
+ * Sanitize an exception message for surfaces that leave the platform:
106
+ * LLM prompts, pull-request titles/bodies, and commit messages.
107
+ *
108
+ * Normalization replaces the dynamic tokens (UUIDs, emails, IPs, IDs,
109
+ * timestamps...) that carry user data, then the secret redactor sweeps
110
+ * whatever is left (bearer tokens, API keys, cards...). The message
111
+ * keeps its structure — "invalid input syntax for type uuid: <HEX_ID>"
112
+ * is still perfectly actionable for a fix.
113
+ */
114
+ export function sanitizeExceptionMessage(message) {
115
+ if (!message) {
116
+ return "";
117
+ }
118
+ return ToolResultSerializer.redact(normalizeExceptionText(message)).text;
119
+ }
120
+ /**
121
+ * Sanitize a stack trace for the same surfaces.
122
+ *
123
+ * Runtimes prefix the native stack string with the exception MESSAGE
124
+ * ("Error: <message>" in Node, "ValueError: <message>" in Python
125
+ * headers, "Caused by: ..." in Java) — so a redact-only pass would leak
126
+ * the very identifiers sanitizeExceptionMessage strips. Frame lines are
127
+ * indented (" at fn (file:42:7)", ' File "x.py", line 3', "\tat ...")
128
+ * and must keep exact file:line references for the code agent, so the
129
+ * split is: unindented header/message lines get full normalization,
130
+ * indented frame lines are left intact, and the secret redactor sweeps
131
+ * everything at the end.
132
+ */
133
+ // Frame lines are indented; header/message lines are not.
134
+ const INDENTED_FRAME_LINE_REGEX = /^\s/;
135
+ export function sanitizeStackTrace(stackTrace) {
136
+ if (!stackTrace) {
137
+ return "";
138
+ }
139
+ const normalized = stackTrace
140
+ .split("\n")
141
+ .map((line) => {
142
+ return INDENTED_FRAME_LINE_REGEX.test(line)
143
+ ? line
144
+ : normalizeExceptionText(line);
145
+ })
146
+ .join("\n");
147
+ return ToolResultSerializer.redact(normalized).text;
148
+ }
149
+ //# sourceMappingURL=ExceptionSanitizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExceptionSanitizer.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/ExceptionSanitizer.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,16 @@ var CodeFixTaskType;
13
13
  CodeFixTaskType["FixException"] = "FixException";
14
14
  // Write a failing-then-passing regression test that reproduces the exception.
15
15
  CodeFixTaskType["WriteRegressionTest"] = "WriteRegressionTest";
16
+ /*
17
+ * Improve how the code HANDLES and REPORTS this exception without
18
+ * changing business behavior: parameterize messages that interpolate
19
+ * user data (PII out of error text, stable fingerprints), validate bad
20
+ * input earlier with an actionable error, and mark expected/operational
21
+ * errors as handled in telemetry. The recipe for exceptions the triage
22
+ * classified as user errors or expected denials — where "fix the bug"
23
+ * is the wrong instruction because there is no bug.
24
+ */
25
+ CodeFixTaskType["ImproveExceptionHandling"] = "ImproveExceptionHandling";
16
26
  /*
17
27
  * Add the observability an INCONCLUSIVE AI investigation was missing
18
28
  * (structured logs, spans, metric counters on the implicated code paths).
@@ -33,6 +43,27 @@ var CodeFixTaskType;
33
43
  * Common/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.ts).
34
44
  */
35
45
  CodeFixTaskType["FixPerformance"] = "FixPerformance";
46
+ /*
47
+ * Improve a SERVICE's logging hygiene: structured/parameterized log
48
+ * messages (no user data interpolated into log text), correct severity
49
+ * levels, trace correlation, proper exception recording instead of raw
50
+ * stack dumps in log bodies, and less noise. Human-triggered from the
51
+ * service's Logs page (POST /ai-investigation/
52
+ * create-telemetry-improvement-task); its context (service id + name) is
53
+ * captured into AIRun.taskContext at trigger time. Instrumentation only —
54
+ * never a behavior change.
55
+ */
56
+ CodeFixTaskType["ImproveLogging"] = "ImproveLogging";
57
+ /*
58
+ * Improve a SERVICE's tracing instrumentation: spans on uninstrumented
59
+ * entry points and significant operations, low-cardinality span names,
60
+ * exceptions recorded on spans with correct status/escaped semantics,
61
+ * code.* and semantic-convention attributes, context propagation across
62
+ * async boundaries. Human-triggered from the service's Traces page (same
63
+ * endpoint as ImproveLogging); context captured into AIRun.taskContext.
64
+ * Instrumentation only — never a behavior change.
65
+ */
66
+ CodeFixTaskType["ImproveTracing"] = "ImproveTracing";
36
67
  /*
37
68
  * Fix the root cause a completed AI investigation identified. Human-
38
69
  * triggered from the investigation panel (POST /ai-investigation/
@@ -76,7 +107,11 @@ export class CodeFixTaskTypeHelper {
76
107
  * (POST /ai-investigation/create-performance-fix-task).
77
108
  */
78
109
  static getUserTriggerableTaskTypes() {
79
- return [CodeFixTaskType.FixException, CodeFixTaskType.WriteRegressionTest];
110
+ return [
111
+ CodeFixTaskType.FixException,
112
+ CodeFixTaskType.WriteRegressionTest,
113
+ CodeFixTaskType.ImproveExceptionHandling,
114
+ ];
80
115
  }
81
116
  static isUserTriggerable(taskType) {
82
117
  return this.getUserTriggerableTaskTypes().includes(taskType);
@@ -94,6 +129,8 @@ export class CodeFixTaskTypeHelper {
94
129
  case CodeFixTaskType.FixFromIncident:
95
130
  return CodeFixContextKind.IncidentOrAlertSubject;
96
131
  case CodeFixTaskType.FixPerformance:
132
+ case CodeFixTaskType.ImproveLogging:
133
+ case CodeFixTaskType.ImproveTracing:
97
134
  return CodeFixContextKind.TaskContext;
98
135
  default:
99
136
  return CodeFixContextKind.TelemetryException;
@@ -1 +1 @@
1
- {"version":3,"file":"CodeFixTaskType.js","sourceRoot":"","sources":["../../../../Types/AI/CodeFixTaskType.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,IAAK,eAiCJ;AAjCD,WAAK,eAAe;IAClB,uEAAuE;IACvE,gDAA6B,CAAA;IAC7B,8EAA8E;IAC9E,8DAA2C,CAAA;IAC3C;;;;;;;;OAQG;IACH,oEAAiD,CAAA;IACjD;;;;;;;;OAQG;IACH,oDAAiC,CAAA;IACjC;;;;;;OAMG;IACH,sDAAmC,CAAA;AACrC,CAAC,EAjCI,eAAe,KAAf,eAAe,QAiCnB;AAED,eAAe,eAAe,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAN,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAC5B,0DAA0D;IAC1D,+DAAyC,CAAA;IACzC,qEAAqE;IACrE,uEAAiD,CAAA;IACjD;;;;OAIG;IACH,iDAA2B,CAAA;AAC7B,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,QAW7B;AAED,MAAM,OAAO,qBAAqB;IAChC;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,2BAA2B;QACvC,OAAO,CAAC,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC7E,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAyB;QACvD,OAAO,IAAI,CAAC,2BAA2B,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAAC,QAAyB;QACpD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,eAAe,CAAC,sBAAsB,CAAC;YAC5C,KAAK,eAAe,CAAC,eAAe;gBAClC,OAAO,kBAAkB,CAAC,sBAAsB,CAAC;YACnD,KAAK,eAAe,CAAC,cAAc;gBACjC,OAAO,kBAAkB,CAAC,WAAW,CAAC;YACxC;gBACE,OAAO,kBAAkB,CAAC,kBAAkB,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,0BAA0B,CAAC,QAAyB;QAChE,OAAO,CACL,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,kBAAkB,CAAC,kBAAkB,CACxE,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,KAAa;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAwB,CAAC,CAAC;IAC3E,CAAC;IAED,mEAAmE;IAC5D,MAAM,CAAC,iBAAiB,CAC7B,KAAkD;QAElD,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACpD,OAAO,KAAwB,CAAC;QAClC,CAAC;QAED,OAAO,eAAe,CAAC,YAAY,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"CodeFixTaskType.js","sourceRoot":"","sources":["../../../../Types/AI/CodeFixTaskType.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,IAAK,eAgEJ;AAhED,WAAK,eAAe;IAClB,uEAAuE;IACvE,gDAA6B,CAAA;IAC7B,8EAA8E;IAC9E,8DAA2C,CAAA;IAC3C;;;;;;;;OAQG;IACH,wEAAqD,CAAA;IACrD;;;;;;;;OAQG;IACH,oEAAiD,CAAA;IACjD;;;;;;;;OAQG;IACH,oDAAiC,CAAA;IACjC;;;;;;;;;OASG;IACH,oDAAiC,CAAA;IACjC;;;;;;;;OAQG;IACH,oDAAiC,CAAA;IACjC;;;;;;OAMG;IACH,sDAAmC,CAAA;AACrC,CAAC,EAhEI,eAAe,KAAf,eAAe,QAgEnB;AAED,eAAe,eAAe,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAN,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAC5B,0DAA0D;IAC1D,+DAAyC,CAAA;IACzC,qEAAqE;IACrE,uEAAiD,CAAA;IACjD;;;;OAIG;IACH,iDAA2B,CAAA;AAC7B,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,QAW7B;AAED,MAAM,OAAO,qBAAqB;IAChC;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,2BAA2B;QACvC,OAAO;YACL,eAAe,CAAC,YAAY;YAC5B,eAAe,CAAC,mBAAmB;YACnC,eAAe,CAAC,wBAAwB;SACzC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAyB;QACvD,OAAO,IAAI,CAAC,2BAA2B,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAAC,QAAyB;QACpD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,eAAe,CAAC,sBAAsB,CAAC;YAC5C,KAAK,eAAe,CAAC,eAAe;gBAClC,OAAO,kBAAkB,CAAC,sBAAsB,CAAC;YACnD,KAAK,eAAe,CAAC,cAAc,CAAC;YACpC,KAAK,eAAe,CAAC,cAAc,CAAC;YACpC,KAAK,eAAe,CAAC,cAAc;gBACjC,OAAO,kBAAkB,CAAC,WAAW,CAAC;YACxC;gBACE,OAAO,kBAAkB,CAAC,kBAAkB,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,0BAA0B,CAAC,QAAyB;QAChE,OAAO,CACL,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,kBAAkB,CAAC,kBAAkB,CACxE,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,KAAa;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAwB,CAAC,CAAC;IAC3E,CAAC;IAED,mEAAmE;IAC5D,MAAM,CAAC,iBAAiB,CAC7B,KAAkD;QAElD,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACpD,OAAO,KAAwB,CAAC;QAClC,CAAC;QAED,OAAO,eAAe,CAAC,YAAY,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ /*
2
+ * AI triage verdict for a telemetry exception group. Decides how the
3
+ * automatic fix lane treats the group:
4
+ *
5
+ * - CodeFault: a defect in the monitored code — the only class the
6
+ * automatic lane opens fix pull requests for.
7
+ * - UserError: expected consequence of invalid end-user input (bad
8
+ * parameters, malformed values). The right change, if any, is earlier
9
+ * validation and clearer error UX — routed to a human, never auto-fixed.
10
+ * - ExpectedDenial: an intentional check doing its job (auth failure,
11
+ * plan/paywall denial, scanner/fuzzer probe tripping validation).
12
+ * Never auto-fixed; optionally auto-archived.
13
+ * - Infrastructure: environmental conditions (timeouts, connection
14
+ * resets, resource exhaustion) where a code "fix" is usually tuning —
15
+ * routed to a human.
16
+ * - Unknown: triage could not decide — treated conservatively (no
17
+ * automatic fix).
18
+ */
19
+ var ExceptionAIClassification;
20
+ (function (ExceptionAIClassification) {
21
+ ExceptionAIClassification["CodeFault"] = "code-fault";
22
+ ExceptionAIClassification["UserError"] = "user-error";
23
+ ExceptionAIClassification["ExpectedDenial"] = "expected-denial";
24
+ ExceptionAIClassification["Infrastructure"] = "infrastructure";
25
+ ExceptionAIClassification["Unknown"] = "unknown";
26
+ })(ExceptionAIClassification || (ExceptionAIClassification = {}));
27
+ export default ExceptionAIClassification;
28
+ //# sourceMappingURL=ExceptionAIClassification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExceptionAIClassification.js","sourceRoot":"","sources":["../../../../Types/AI/ExceptionAIClassification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,IAAK,yBAMJ;AAND,WAAK,yBAAyB;IAC5B,qDAAwB,CAAA;IACxB,qDAAwB,CAAA;IACxB,+DAAkC,CAAA;IAClC,8DAAiC,CAAA;IACjC,gDAAmB,CAAA;AACrB,CAAC,EANI,yBAAyB,KAAzB,yBAAyB,QAM7B;AAED,eAAe,yBAAyB,CAAC"}
@@ -5,6 +5,13 @@ var LogScrubPatternType;
5
5
  LogScrubPatternType["SSN"] = "ssn";
6
6
  LogScrubPatternType["PhoneNumber"] = "phoneNumber";
7
7
  LogScrubPatternType["IPAddress"] = "ipAddress";
8
+ /*
9
+ * Key-targeted: scrubs the WHOLE value of any attribute whose KEY looks
10
+ * sensitive (password, token, apiKey, authorization, cookie, ...) —
11
+ * catches secrets whose values match no shape-based pattern. Applies to
12
+ * attributes only; body text has no keys to match.
13
+ */
14
+ LogScrubPatternType["SensitiveKeys"] = "sensitiveKeys";
8
15
  LogScrubPatternType["Custom"] = "custom";
9
16
  })(LogScrubPatternType || (LogScrubPatternType = {}));
10
17
  export default LogScrubPatternType;
@@ -1 +1 @@
1
- {"version":3,"file":"LogScrubPatternType.js","sourceRoot":"","sources":["../../../../Types/Log/LogScrubPatternType.ts"],"names":[],"mappings":"AAAA,IAAK,mBAOJ;AAPD,WAAK,mBAAmB;IACtB,sCAAe,CAAA;IACf,gDAAyB,CAAA;IACzB,kCAAW,CAAA;IACX,kDAA2B,CAAA;IAC3B,8CAAuB,CAAA;IACvB,wCAAiB,CAAA;AACnB,CAAC,EAPI,mBAAmB,KAAnB,mBAAmB,QAOvB;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"LogScrubPatternType.js","sourceRoot":"","sources":["../../../../Types/Log/LogScrubPatternType.ts"],"names":[],"mappings":"AAAA,IAAK,mBAcJ;AAdD,WAAK,mBAAmB;IACtB,sCAAe,CAAA;IACf,gDAAyB,CAAA;IACzB,kCAAW,CAAA;IACX,kDAA2B,CAAA;IAC3B,8CAAuB,CAAA;IACvB;;;;;OAKG;IACH,sDAA+B,CAAA;IAC/B,wCAAiB,CAAA;AACnB,CAAC,EAdI,mBAAmB,KAAnB,mBAAmB,QAcvB;AAED,eAAe,mBAAmB,CAAC"}
@@ -5,6 +5,13 @@ var TraceScrubPatternType;
5
5
  TraceScrubPatternType["SSN"] = "ssn";
6
6
  TraceScrubPatternType["PhoneNumber"] = "phoneNumber";
7
7
  TraceScrubPatternType["IPAddress"] = "ipAddress";
8
+ /*
9
+ * Key-targeted: scrubs the WHOLE value of any attribute whose KEY looks
10
+ * sensitive (password, token, apiKey, authorization, cookie, ...) —
11
+ * catches secrets whose values match no shape-based pattern. Applies to
12
+ * span/event attributes only; span names have no keys to match.
13
+ */
14
+ TraceScrubPatternType["SensitiveKeys"] = "sensitiveKeys";
8
15
  TraceScrubPatternType["Custom"] = "custom";
9
16
  })(TraceScrubPatternType || (TraceScrubPatternType = {}));
10
17
  export default TraceScrubPatternType;
@@ -1 +1 @@
1
- {"version":3,"file":"TraceScrubPatternType.js","sourceRoot":"","sources":["../../../../Types/Trace/TraceScrubPatternType.ts"],"names":[],"mappings":"AAAA,IAAK,qBAOJ;AAPD,WAAK,qBAAqB;IACxB,wCAAe,CAAA;IACf,kDAAyB,CAAA;IACzB,oCAAW,CAAA;IACX,oDAA2B,CAAA;IAC3B,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;AACnB,CAAC,EAPI,qBAAqB,KAArB,qBAAqB,QAOzB;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"TraceScrubPatternType.js","sourceRoot":"","sources":["../../../../Types/Trace/TraceScrubPatternType.ts"],"names":[],"mappings":"AAAA,IAAK,qBAcJ;AAdD,WAAK,qBAAqB;IACxB,wCAAe,CAAA;IACf,kDAAyB,CAAA;IACzB,oCAAW,CAAA;IACX,oDAA2B,CAAA;IAC3B,gDAAuB,CAAA;IACvB;;;;;OAKG;IACH,wDAA+B,CAAA;IAC/B,0CAAiB,CAAA;AACnB,CAAC,EAdI,qBAAqB,KAArB,qBAAqB,QAczB;AAED,eAAe,qBAAqB,CAAC"}
@@ -24,6 +24,7 @@ import OrderedStatesList from "../OrderedStatesList/OrderedStatesList";
24
24
  import Pill from "../Pill/Pill";
25
25
  import Table from "../Table/Table";
26
26
  import FieldType from "../Types/FieldType";
27
+ import { getRelationSelectFromColumns, getSelectFromColumns, } from "./SelectFromColumns";
27
28
  import AnalyticsBaseModel from "../../../Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel";
28
29
  import BaseModel from "../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
29
30
  import Route from "../../../Types/API/Route";
@@ -332,27 +333,10 @@ const BaseModelTable = (props) => {
332
333
  }
333
334
  }, [tableColumns]);
334
335
  const getRelationSelect = () => {
335
- const relationSelect = {};
336
- for (const column of props.columns || []) {
337
- const key = column.field
338
- ? Object.keys(column.field)[0]
339
- : null;
340
- if (key && model.isFileColumn(key)) {
341
- relationSelect[key] = {
342
- file: true,
343
- _id: true,
344
- fileType: true,
345
- name: true,
346
- };
347
- }
348
- else if (key && model.isEntityColumn(key)) {
349
- if (!relationSelect[key]) {
350
- relationSelect[key] = {};
351
- }
352
- relationSelect[key] = Object.assign(Object.assign({}, relationSelect[key]), column.field[key]);
353
- }
354
- }
355
- return relationSelect;
336
+ return getRelationSelectFromColumns({
337
+ columns: props.columns || [],
338
+ model: model,
339
+ });
356
340
  };
357
341
  const deleteItem = async (item) => {
358
342
  var _a;
@@ -717,22 +701,13 @@ const BaseModelTable = (props) => {
717
701
  }
718
702
  }, [showFilterModal, props.filters]);
719
703
  const getSelect = () => {
720
- const selectFields = {
721
- _id: true,
722
- };
723
- for (const column of props.columns || []) {
724
- const key = column.field
725
- ? Object.keys(column.field)[0]
726
- : null;
727
- if (key) {
728
- if (model.hasColumn(key)) {
729
- selectFields[key] = true;
730
- }
731
- else {
732
- throw new BadDataException(`${key} column not found on ${model.singularName}`);
733
- }
734
- }
735
- }
704
+ const selectFields = getSelectFromColumns({
705
+ columns: props.columns || [],
706
+ model: model,
707
+ hasPermissionToReadField: (field) => {
708
+ return hasPermissionToReadField(field);
709
+ },
710
+ });
736
711
  const selectMoreFields = props.selectMoreFields
737
712
  ? Object.keys(props.selectMoreFields)
738
713
  : [];