@testrelic/mcp 2.1.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 (204) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +198 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/cache/blob.d.ts +22 -0
  5. package/dist/cache/blob.d.ts.map +1 -0
  6. package/dist/cache/blob.js +92 -0
  7. package/dist/cache/blob.js.map +1 -0
  8. package/dist/cache/diff-reader.d.ts +29 -0
  9. package/dist/cache/diff-reader.d.ts.map +1 -0
  10. package/dist/cache/diff-reader.js +34 -0
  11. package/dist/cache/diff-reader.js.map +1 -0
  12. package/dist/cache/index.d.ts +57 -0
  13. package/dist/cache/index.d.ts.map +1 -0
  14. package/dist/cache/index.js +99 -0
  15. package/dist/cache/index.js.map +1 -0
  16. package/dist/cache/key.d.ts +15 -0
  17. package/dist/cache/key.d.ts.map +1 -0
  18. package/dist/cache/key.js +32 -0
  19. package/dist/cache/key.js.map +1 -0
  20. package/dist/cache/lru.d.ts +21 -0
  21. package/dist/cache/lru.d.ts.map +1 -0
  22. package/dist/cache/lru.js +32 -0
  23. package/dist/cache/lru.js.map +1 -0
  24. package/dist/cache/sqlite.d.ts +22 -0
  25. package/dist/cache/sqlite.d.ts.map +1 -0
  26. package/dist/cache/sqlite.js +102 -0
  27. package/dist/cache/sqlite.js.map +1 -0
  28. package/dist/cache/vector.d.ts +42 -0
  29. package/dist/cache/vector.d.ts.map +1 -0
  30. package/dist/cache/vector.js +187 -0
  31. package/dist/cache/vector.js.map +1 -0
  32. package/dist/cli.d.ts +3 -0
  33. package/dist/cli.d.ts.map +1 -0
  34. package/dist/cli.js +205 -0
  35. package/dist/cli.js.map +1 -0
  36. package/dist/clients/amplitude.d.ts +24 -0
  37. package/dist/clients/amplitude.d.ts.map +1 -0
  38. package/dist/clients/amplitude.js +15 -0
  39. package/dist/clients/amplitude.js.map +1 -0
  40. package/dist/clients/clickhouse.d.ts +10 -0
  41. package/dist/clients/clickhouse.d.ts.map +1 -0
  42. package/dist/clients/clickhouse.js +8 -0
  43. package/dist/clients/clickhouse.js.map +1 -0
  44. package/dist/clients/cloud.d.ts +347 -0
  45. package/dist/clients/cloud.d.ts.map +1 -0
  46. package/dist/clients/cloud.js +402 -0
  47. package/dist/clients/cloud.js.map +1 -0
  48. package/dist/clients/http.d.ts +40 -0
  49. package/dist/clients/http.d.ts.map +1 -0
  50. package/dist/clients/http.js +67 -0
  51. package/dist/clients/http.js.map +1 -0
  52. package/dist/clients/index.d.ts +38 -0
  53. package/dist/clients/index.d.ts.map +1 -0
  54. package/dist/clients/index.js +24 -0
  55. package/dist/clients/index.js.map +1 -0
  56. package/dist/clients/jira.d.ts +16 -0
  57. package/dist/clients/jira.d.ts.map +1 -0
  58. package/dist/clients/jira.js +11 -0
  59. package/dist/clients/jira.js.map +1 -0
  60. package/dist/clients/loki.d.ts +7 -0
  61. package/dist/clients/loki.d.ts.map +1 -0
  62. package/dist/clients/loki.js +8 -0
  63. package/dist/clients/loki.js.map +1 -0
  64. package/dist/clients/retry.d.ts +28 -0
  65. package/dist/clients/retry.d.ts.map +1 -0
  66. package/dist/clients/retry.js +79 -0
  67. package/dist/clients/retry.js.map +1 -0
  68. package/dist/clients/testrelic.d.ts +90 -0
  69. package/dist/clients/testrelic.d.ts.map +1 -0
  70. package/dist/clients/testrelic.js +68 -0
  71. package/dist/clients/testrelic.js.map +1 -0
  72. package/dist/config.d.ts +216 -0
  73. package/dist/config.d.ts.map +1 -0
  74. package/dist/config.js +233 -0
  75. package/dist/config.js.map +1 -0
  76. package/dist/context/code-map.d.ts +35 -0
  77. package/dist/context/code-map.d.ts.map +1 -0
  78. package/dist/context/code-map.js +187 -0
  79. package/dist/context/code-map.js.map +1 -0
  80. package/dist/context/correlator.d.ts +32 -0
  81. package/dist/context/correlator.d.ts.map +1 -0
  82. package/dist/context/correlator.js +106 -0
  83. package/dist/context/correlator.js.map +1 -0
  84. package/dist/context/coverage-map.d.ts +25 -0
  85. package/dist/context/coverage-map.d.ts.map +1 -0
  86. package/dist/context/coverage-map.js +44 -0
  87. package/dist/context/coverage-map.js.map +1 -0
  88. package/dist/context/index.d.ts +20 -0
  89. package/dist/context/index.d.ts.map +1 -0
  90. package/dist/context/index.js +18 -0
  91. package/dist/context/index.js.map +1 -0
  92. package/dist/context/journey-graph.d.ts +22 -0
  93. package/dist/context/journey-graph.d.ts.map +1 -0
  94. package/dist/context/journey-graph.js +38 -0
  95. package/dist/context/journey-graph.js.map +1 -0
  96. package/dist/context/signal-map.d.ts +26 -0
  97. package/dist/context/signal-map.d.ts.map +1 -0
  98. package/dist/context/signal-map.js +30 -0
  99. package/dist/context/signal-map.js.map +1 -0
  100. package/dist/elicit/ask.d.ts +28 -0
  101. package/dist/elicit/ask.d.ts.map +1 -0
  102. package/dist/elicit/ask.js +31 -0
  103. package/dist/elicit/ask.js.map +1 -0
  104. package/dist/elicit/zod-to-json.d.ts +7 -0
  105. package/dist/elicit/zod-to-json.d.ts.map +1 -0
  106. package/dist/elicit/zod-to-json.js +37 -0
  107. package/dist/elicit/zod-to-json.js.map +1 -0
  108. package/dist/errors.d.ts +59 -0
  109. package/dist/errors.d.ts.map +1 -0
  110. package/dist/errors.js +122 -0
  111. package/dist/errors.js.map +1 -0
  112. package/dist/index.d.ts +43 -0
  113. package/dist/index.d.ts.map +1 -0
  114. package/dist/index.js +127 -0
  115. package/dist/index.js.map +1 -0
  116. package/dist/logger.d.ts +6 -0
  117. package/dist/logger.d.ts.map +1 -0
  118. package/dist/logger.js +29 -0
  119. package/dist/logger.js.map +1 -0
  120. package/dist/prompts/index.d.ts +8 -0
  121. package/dist/prompts/index.d.ts.map +1 -0
  122. package/dist/prompts/index.js +86 -0
  123. package/dist/prompts/index.js.map +1 -0
  124. package/dist/registry/index.d.ts +70 -0
  125. package/dist/registry/index.d.ts.map +1 -0
  126. package/dist/registry/index.js +88 -0
  127. package/dist/registry/index.js.map +1 -0
  128. package/dist/registry/project.d.ts +20 -0
  129. package/dist/registry/project.d.ts.map +1 -0
  130. package/dist/registry/project.js +44 -0
  131. package/dist/registry/project.js.map +1 -0
  132. package/dist/resources/index.d.ts +13 -0
  133. package/dist/resources/index.d.ts.map +1 -0
  134. package/dist/resources/index.js +76 -0
  135. package/dist/resources/index.js.map +1 -0
  136. package/dist/sampling/bridge.d.ts +35 -0
  137. package/dist/sampling/bridge.d.ts.map +1 -0
  138. package/dist/sampling/bridge.js +39 -0
  139. package/dist/sampling/bridge.js.map +1 -0
  140. package/dist/telemetry/metrics.d.ts +29 -0
  141. package/dist/telemetry/metrics.d.ts.map +1 -0
  142. package/dist/telemetry/metrics.js +46 -0
  143. package/dist/telemetry/metrics.js.map +1 -0
  144. package/dist/telemetry/tokens.d.ts +16 -0
  145. package/dist/telemetry/tokens.d.ts.map +1 -0
  146. package/dist/telemetry/tokens.js +40 -0
  147. package/dist/telemetry/tokens.js.map +1 -0
  148. package/dist/tools/core/index.d.ts +8 -0
  149. package/dist/tools/core/index.d.ts.map +1 -0
  150. package/dist/tools/core/index.js +219 -0
  151. package/dist/tools/core/index.js.map +1 -0
  152. package/dist/tools/coverage/index.d.ts +9 -0
  153. package/dist/tools/coverage/index.d.ts.map +1 -0
  154. package/dist/tools/coverage/index.js +247 -0
  155. package/dist/tools/coverage/index.js.map +1 -0
  156. package/dist/tools/creation/index.d.ts +9 -0
  157. package/dist/tools/creation/index.d.ts.map +1 -0
  158. package/dist/tools/creation/index.js +357 -0
  159. package/dist/tools/creation/index.js.map +1 -0
  160. package/dist/tools/creation/templates.d.ts +17 -0
  161. package/dist/tools/creation/templates.d.ts.map +1 -0
  162. package/dist/tools/creation/templates.js +63 -0
  163. package/dist/tools/creation/templates.js.map +1 -0
  164. package/dist/tools/devtools/index.d.ts +9 -0
  165. package/dist/tools/devtools/index.d.ts.map +1 -0
  166. package/dist/tools/devtools/index.js +106 -0
  167. package/dist/tools/devtools/index.js.map +1 -0
  168. package/dist/tools/healing/index.d.ts +10 -0
  169. package/dist/tools/healing/index.d.ts.map +1 -0
  170. package/dist/tools/healing/index.js +190 -0
  171. package/dist/tools/healing/index.js.map +1 -0
  172. package/dist/tools/impact/index.d.ts +8 -0
  173. package/dist/tools/impact/index.d.ts.map +1 -0
  174. package/dist/tools/impact/index.js +215 -0
  175. package/dist/tools/impact/index.js.map +1 -0
  176. package/dist/tools/index.d.ts +9 -0
  177. package/dist/tools/index.d.ts.map +1 -0
  178. package/dist/tools/index.js +29 -0
  179. package/dist/tools/index.js.map +1 -0
  180. package/dist/tools/signals/index.d.ts +9 -0
  181. package/dist/tools/signals/index.d.ts.map +1 -0
  182. package/dist/tools/signals/index.js +100 -0
  183. package/dist/tools/signals/index.js.map +1 -0
  184. package/dist/tools/triage/index.d.ts +9 -0
  185. package/dist/tools/triage/index.d.ts.map +1 -0
  186. package/dist/tools/triage/index.js +366 -0
  187. package/dist/tools/triage/index.js.map +1 -0
  188. package/dist/transport/http.d.ts +16 -0
  189. package/dist/transport/http.d.ts.map +1 -0
  190. package/dist/transport/http.js +110 -0
  191. package/dist/transport/http.js.map +1 -0
  192. package/dist/transport/stdio.d.ts +6 -0
  193. package/dist/transport/stdio.d.ts.map +1 -0
  194. package/dist/transport/stdio.js +19 -0
  195. package/dist/transport/stdio.js.map +1 -0
  196. package/dist/types/index.d.ts +268 -0
  197. package/dist/types/index.d.ts.map +1 -0
  198. package/dist/types/index.js +6 -0
  199. package/dist/types/index.js.map +1 -0
  200. package/dist/version.d.ts +7 -0
  201. package/dist/version.d.ts.map +1 -0
  202. package/dist/version.js +7 -0
  203. package/dist/version.js.map +1 -0
  204. package/package.json +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/creation/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Test framework templates. These are the "skeleton" for tr_generate_test to
3
+ * fill in via sampling. Kept minimal and battle-tested; each template should
4
+ * compile on its own when the steps array is stripped.
5
+ */
6
+ export interface FrameworkTemplate {
7
+ framework: "playwright" | "cypress" | "jest" | "vitest";
8
+ extension: string;
9
+ description: string;
10
+ skeleton: (opts: {
11
+ testName: string;
12
+ steps: string[];
13
+ imports?: string[];
14
+ }) => string;
15
+ }
16
+ export declare const TEMPLATES: Record<string, FrameworkTemplate>;
17
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/tools/creation/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,MAAM,CAAC;CACvF;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAqDvD,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Test framework templates. These are the "skeleton" for tr_generate_test to
3
+ * fill in via sampling. Kept minimal and battle-tested; each template should
4
+ * compile on its own when the steps array is stripped.
5
+ */
6
+ export const TEMPLATES = {
7
+ playwright: {
8
+ framework: "playwright",
9
+ extension: ".spec.ts",
10
+ description: "Playwright Test with Chromium, web-first assertions, and built-in auto-waits.",
11
+ skeleton: ({ testName, steps, imports = [] }) => `import { test, expect } from "@playwright/test";
12
+ ${imports.join("\n")}
13
+
14
+ test("${escapeQuotes(testName)}", async ({ page }) => {
15
+ ${steps.map((s) => ` ${s}`).join("\n")}
16
+ });
17
+ `,
18
+ },
19
+ cypress: {
20
+ framework: "cypress",
21
+ extension: ".cy.ts",
22
+ description: "Cypress e2e spec. Uses the describe/it convention.",
23
+ skeleton: ({ testName, steps, imports = [] }) => `${imports.join("\n")}
24
+
25
+ describe("${escapeQuotes(testName)}", () => {
26
+ it("covers the journey", () => {
27
+ ${steps.map((s) => ` ${s}`).join("\n")}
28
+ });
29
+ });
30
+ `,
31
+ },
32
+ jest: {
33
+ framework: "jest",
34
+ extension: ".test.ts",
35
+ description: "Jest unit test. Assumes testing-library where relevant.",
36
+ skeleton: ({ testName, steps, imports = [] }) => `${imports.join("\n")}
37
+
38
+ describe("${escapeQuotes(testName)}", () => {
39
+ it("behaves as expected", async () => {
40
+ ${steps.map((s) => ` ${s}`).join("\n")}
41
+ });
42
+ });
43
+ `,
44
+ },
45
+ vitest: {
46
+ framework: "vitest",
47
+ extension: ".test.ts",
48
+ description: "Vitest spec — drop-in compatible with Jest assertions.",
49
+ skeleton: ({ testName, steps, imports = [] }) => `import { describe, it, expect } from "vitest";
50
+ ${imports.join("\n")}
51
+
52
+ describe("${escapeQuotes(testName)}", () => {
53
+ it("behaves as expected", async () => {
54
+ ${steps.map((s) => ` ${s}`).join("\n")}
55
+ });
56
+ });
57
+ `,
58
+ },
59
+ };
60
+ function escapeQuotes(s) {
61
+ return s.replace(/"/g, '\\"');
62
+ }
63
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/tools/creation/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,CAAC,MAAM,SAAS,GAAsC;IAC1D,UAAU,EAAE;QACV,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,+EAA+E;QAC5F,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;EACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;QAEZ,YAAY,CAAC,QAAQ,CAAC;EAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;CAEtC;KACE;IACD,OAAO,EAAE;QACP,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,oDAAoD;QACjE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;YAE9D,YAAY,CAAC,QAAQ,CAAC;;EAEhC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGxC;KACE;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;YAE9D,YAAY,CAAC,QAAQ,CAAC;;EAEhC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGxC;KACE;IACD,MAAM,EAAE;QACN,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;EACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;YAER,YAAY,CAAC,QAAQ,CAAC;;EAEhC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGxC;KACE;CACF,CAAC;AAEF,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ToolContext, ToolDefinition } from "../../registry/index.js";
2
+ /**
3
+ * Devtools capability — orientation tools for the engineer operating the
4
+ * agent. Project trends, active platform alerts, cache inspection, and a
5
+ * lightweight semantic search over the code map.
6
+ */
7
+ export declare const devtoolsTools: ToolDefinition[];
8
+ export declare function registerDevtoolsTools(ctx: ToolContext, register: (def: ToolDefinition) => void): void;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/devtools/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE3E;;;;GAIG;AAEH,eAAO,MAAM,aAAa,EAAE,cAAc,EA8FzC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI,CAErG"}
@@ -0,0 +1,106 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Devtools capability — orientation tools for the engineer operating the
4
+ * agent. Project trends, active platform alerts, cache inspection, and a
5
+ * lightweight semantic search over the code map.
6
+ */
7
+ export const devtoolsTools = [
8
+ {
9
+ name: "tr_project_trends",
10
+ capability: "devtools",
11
+ title: "Project quality trends",
12
+ description: "Returns pass-rate, duration, and flakiness trends for a project over the last N days.",
13
+ inputSchema: { project_id: z.string(), days: z.number().int().min(1).max(90).optional().default(7) },
14
+ aliases: [{ name: "testrelic_get_project_trends", description: "Project quality trends." }],
15
+ handler: async (input, ctx) => {
16
+ const trends = await ctx.clients.testrelic.getProjectTrends(input.project_id);
17
+ const recent = trends.data.slice(-(input.days ?? 7));
18
+ const lines = [`## Trends — ${trends.project_id} (${recent.length}d)`, "", "| Date | Pass rate | Runs | Avg duration (s) | Flaky |", "|---|---|---|---|---|"];
19
+ for (const p of recent) {
20
+ lines.push(`| ${p.date} | ${(p.pass_rate * 100).toFixed(1)}% | ${p.total_runs} | ${(p.avg_duration_ms / 1000).toFixed(1)} | ${p.flaky_count} |`);
21
+ }
22
+ return { text: lines.join("\n"), structured: { trends: { ...trends, data: recent } } };
23
+ },
24
+ },
25
+ {
26
+ name: "tr_active_alerts",
27
+ capability: "devtools",
28
+ title: "Active platform alerts",
29
+ description: "Returns active TestRelic platform alerts (flakiness spikes, pass-rate drops, etc.).",
30
+ inputSchema: {},
31
+ aliases: [{ name: "testrelic_get_active_alerts", description: "Active platform alerts." }],
32
+ handler: async (_input, ctx) => {
33
+ const alerts = await ctx.clients.testrelic.getActiveAlerts();
34
+ if (!alerts.length)
35
+ return { text: "No active alerts.", structured: { alerts: [] } };
36
+ const lines = [`## Active alerts (${alerts.length})`, ""];
37
+ for (const a of alerts) {
38
+ lines.push(`- **[${a.severity.toUpperCase()}]** ${a.type} — ${a.message}`);
39
+ lines.push(` project=${a.project_id} triggered=${a.triggered_at}${a.run_id ? ` run=${a.run_id}` : ""}`);
40
+ }
41
+ return { text: lines.join("\n"), structured: { alerts } };
42
+ },
43
+ },
44
+ {
45
+ name: "tr_search_code",
46
+ capability: "devtools",
47
+ title: "Semantic search over the code map",
48
+ description: "Vector search across indexed code nodes. Returns top-k neighbors with score and location. Requires a prior tr_index_repo or platform code map load.",
49
+ inputSchema: {
50
+ query: z.string(),
51
+ k: z.number().int().min(1).max(20).optional().default(6),
52
+ },
53
+ handler: async (input, ctx) => {
54
+ const results = await ctx.context.code.search(input.query, input.k);
55
+ if (!results.length)
56
+ return { text: "No matches. Did you run `tr_index_repo` first?", structured: { results: [] } };
57
+ const lines = [`## Code search — \`${input.query}\``, ""];
58
+ for (const r of results) {
59
+ lines.push(`- **${r.id}** (score ${r.score.toFixed(3)}) — ${r.text}`);
60
+ }
61
+ return { text: lines.join("\n"), structured: { results } };
62
+ },
63
+ },
64
+ {
65
+ name: "tr_index_repo",
66
+ capability: "devtools",
67
+ title: "Index a local repo into the code map",
68
+ description: "Walks a local repo root, extracts function/class nodes (tree-sitter when available, regex fallback), and indexes them in the vector store for tr_search_code.",
69
+ inputSchema: {
70
+ repo_root: z.string().describe("Absolute path to the repo root"),
71
+ max_files: z.number().int().optional().default(2500),
72
+ },
73
+ handler: async (input, ctx) => {
74
+ const nodes = await ctx.context.code.loadLocal(input.repo_root, {
75
+ maxFiles: input.max_files,
76
+ });
77
+ return {
78
+ text: `Indexed ${nodes.length} code nodes from ${input.repo_root}.`,
79
+ structured: { count: nodes.length, repo_root: input.repo_root },
80
+ };
81
+ },
82
+ },
83
+ {
84
+ name: "tr_cache_stats",
85
+ capability: "devtools",
86
+ title: "Cache stats",
87
+ description: "Returns L1/L2/L3/L4 cache counters. Useful for verifying token reduction in benchmarks.",
88
+ inputSchema: {},
89
+ handler: async (_input, ctx) => {
90
+ const s = ctx.cache.snapshot();
91
+ const text = [
92
+ `## Cache`,
93
+ `- L1 hits/misses: ${s.l1Hits}/${s.l1Misses} size: ${s.lruSize}`,
94
+ `- L2 hits/misses: ${s.l2Hits}/${s.l2Misses}`,
95
+ `- L3 hits/misses: ${s.l3Hits}/${s.l3Misses} size: ${s.vectorSize}`,
96
+ `- L4 hits/misses: ${s.l4Hits}/${s.l4Misses}`,
97
+ ].join("\n");
98
+ return { text, structured: { cache: s } };
99
+ },
100
+ },
101
+ ];
102
+ export function registerDevtoolsTools(ctx, register) {
103
+ for (const t of devtoolsTools)
104
+ register(t);
105
+ }
106
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/devtools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ToolContext, ToolDefinition } from "../../registry/index.js";
2
+ /**
3
+ * Healing capability — self-heal selectors, adjust waits, update assertions,
4
+ * and replay failures. Uses the sampling bridge to let the client's model do
5
+ * the synthesis; patches are returned as unified diffs so the agent can apply
6
+ * them with `patch -p0` or an equivalent IDE action.
7
+ */
8
+ export declare const healingTools: ToolDefinition[];
9
+ export declare function registerHealingTools(ctx: ToolContext, register: (def: ToolDefinition) => void): void;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/healing/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI3E;;;;;GAKG;AAEH,eAAO,MAAM,YAAY,EAAE,cAAc,EA+KxC,CAAC;AAcF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI,CAEpG"}
@@ -0,0 +1,190 @@
1
+ import { z } from "zod";
2
+ import { createPatch } from "diff";
3
+ import { NotFoundError } from "../../errors.js";
4
+ /**
5
+ * Healing capability — self-heal selectors, adjust waits, update assertions,
6
+ * and replay failures. Uses the sampling bridge to let the client's model do
7
+ * the synthesis; patches are returned as unified diffs so the agent can apply
8
+ * them with `patch -p0` or an equivalent IDE action.
9
+ */
10
+ export const healingTools = [
11
+ {
12
+ name: "tr_heal_run",
13
+ capability: "healing",
14
+ title: "Healer — propose a patch for a failing run",
15
+ description: "Analyses a failing run's stack trace, error message, and test source, then proposes a patch (unified diff) to stabilise the test. Typical fixes: brittle-selector swap, timeout bump, flakiness gate, or assertion correction.",
16
+ inputSchema: {
17
+ run_id: z.string(),
18
+ test_id: z.string().optional().describe("Focus on one failing test. Defaults to the first failure."),
19
+ },
20
+ outputSchema: {
21
+ patch: z
22
+ .object({
23
+ run_id: z.string(),
24
+ test_id: z.string(),
25
+ reason: z.string(),
26
+ unified_diff: z.string(),
27
+ affected_files: z.array(z.string()),
28
+ confidence: z.number(),
29
+ })
30
+ .optional(),
31
+ },
32
+ handler: async (input, ctx) => {
33
+ const run_id = input.run_id;
34
+ const run = await ctx.clients.testrelic.getRun(run_id);
35
+ const failures = (await ctx.clients.testrelic.getRunFailures(run_id)).failures;
36
+ if (!failures.length) {
37
+ return { text: `No failures recorded for ${run_id}. Nothing to heal.`, structured: {} };
38
+ }
39
+ const target = input.test_id ? failures.find((f) => f.test_id === input.test_id) : failures[0];
40
+ if (!target)
41
+ throw new NotFoundError(`Test ${input.test_id} not found in failures for ${run_id}`);
42
+ let source = "";
43
+ let file = `tests/${target.suite}.spec.ts`;
44
+ try {
45
+ const src = await ctx.clients.testrelic.getTestSource(target.test_id);
46
+ source = src.source;
47
+ file = src.file;
48
+ }
49
+ catch {
50
+ source = `// Source not available for ${target.test_id}`;
51
+ }
52
+ const prompt = [
53
+ `A test failed. Propose the smallest possible patch that would make it reliable.`,
54
+ `Test: ${target.test_name}`,
55
+ `Error type: ${target.error_type}`,
56
+ `Error message: ${target.error_message}`,
57
+ `Stack trace:`,
58
+ target.stack_trace,
59
+ "",
60
+ `Current source (${file}):`,
61
+ "```ts",
62
+ source,
63
+ "```",
64
+ "",
65
+ `Return ONLY the full replacement source. Do not include markdown fences.`,
66
+ ].join("\n");
67
+ const sampled = await ctx.sampling.createMessage(prompt, {
68
+ systemPrompt: "You are a senior SET. Prefer stable role-based locators and explicit expectations. Minimal changes only.",
69
+ maxTokens: 1_400,
70
+ temperature: 0.15,
71
+ });
72
+ let healed = sampled.text.replace(/```(?:ts|tsx|js|javascript|typescript)?\s*([\s\S]*?)```/m, "$1").trim();
73
+ if (!healed) {
74
+ healed = fallbackHeal(source, target.error_type);
75
+ }
76
+ const unified_diff = createPatch(file, source, healed, `${run_id} (broken)`, `${run_id} (healed)`);
77
+ const confidence = sampled.fallback ? 0.35 : 0.72;
78
+ const patch = {
79
+ run_id,
80
+ test_id: target.test_id,
81
+ reason: `Target error: ${target.error_type}. ${sampled.fallback ? "Template heuristic used (no sampling client)." : "Model-proposed patch."}`,
82
+ unified_diff,
83
+ affected_files: [file],
84
+ confidence,
85
+ };
86
+ const text = [
87
+ `## Healing Proposal — ${run_id} / ${target.test_name}`,
88
+ `**Reason:** ${patch.reason}`,
89
+ `**Confidence:** ${(confidence * 100).toFixed(0)}%`,
90
+ `**Affected files:** ${patch.affected_files.join(", ")}`,
91
+ "",
92
+ "```diff",
93
+ unified_diff,
94
+ "```",
95
+ "",
96
+ run.status === "failed" ? "Apply with: `git apply` or equivalent. Re-run the test and confirm the fix." : "",
97
+ ].join("\n");
98
+ return { text, structured: { patch } };
99
+ },
100
+ },
101
+ {
102
+ name: "tr_suggest_locator",
103
+ capability: "healing",
104
+ title: "Suggest a stable locator",
105
+ description: "Given a brittle selector (CSS / xpath / text), returns stable alternatives — getByRole, getByTestId, getByLabel — in order of preference. Framework-agnostic output.",
106
+ inputSchema: {
107
+ current_selector: z.string(),
108
+ context: z.string().optional().describe("Surrounding context, e.g. `the checkout 'Pay' button on step 3`"),
109
+ framework: z.enum(["playwright", "cypress", "jest", "vitest"]).optional().default("playwright"),
110
+ },
111
+ handler: async (input, ctx) => {
112
+ const current = input.current_selector;
113
+ const framework = input.framework ?? "playwright";
114
+ const prompt = [
115
+ `Replace this brittle selector: \`${current}\``,
116
+ input.context ? `Context: ${String(input.context)}` : "",
117
+ `Return 3 stable ${framework} locators in preference order. One per line, no prose.`,
118
+ ]
119
+ .filter(Boolean)
120
+ .join("\n");
121
+ const sampled = await ctx.sampling.createMessage(prompt, { temperature: 0.1, maxTokens: 250 });
122
+ const suggestions = (sampled.text || "")
123
+ .split(/\r?\n/)
124
+ .map((l) => l.trim())
125
+ .filter(Boolean)
126
+ .slice(0, 3);
127
+ if (!suggestions.length) {
128
+ suggestions.push(framework === "playwright" ? `page.getByRole("button", { name: "..." })` : `cy.findByRole("button", { name: "..." })`, framework === "playwright" ? `page.getByTestId("...")` : `cy.get("[data-testid='...']")`, framework === "playwright" ? `page.getByLabel("...")` : `cy.findByLabelText("...")`);
129
+ }
130
+ const text = ["## Stable locator suggestions", "", "```ts", ...suggestions, "```"].join("\n");
131
+ return { text, structured: { current, suggestions, framework } };
132
+ },
133
+ },
134
+ {
135
+ name: "tr_replay_failure",
136
+ capability: "healing",
137
+ title: "Replay a failure locally",
138
+ description: "Returns the artefacts (trace, video, screenshots) and a replay plan the agent can follow offline to reproduce the failure without hitting upstream services.",
139
+ inputSchema: { run_id: z.string(), test_id: z.string().optional() },
140
+ handler: async (input, ctx) => {
141
+ const run_id = input.run_id;
142
+ const failures = (await ctx.clients.testrelic.getRunFailures(run_id)).failures;
143
+ const target = input.test_id ? failures.find((f) => f.test_id === input.test_id) : failures[0];
144
+ if (!target)
145
+ return { text: `No failure to replay in ${run_id}.`, structured: {} };
146
+ let artifacts = [];
147
+ try {
148
+ const res = await ctx.clients.testrelic.getRunArtifacts(run_id);
149
+ artifacts = res.artifacts;
150
+ }
151
+ catch {
152
+ artifacts = [];
153
+ }
154
+ if (target.video_url && !artifacts.find((a) => a.kind === "video")) {
155
+ artifacts.push({ kind: "video", url: target.video_url, note: `seek to ${target.video_timestamp_ms}ms` });
156
+ }
157
+ if (target.screenshot_url && !artifacts.find((a) => a.kind === "screenshot")) {
158
+ artifacts.push({ kind: "screenshot", url: target.screenshot_url });
159
+ }
160
+ const text = [
161
+ `## Replay plan — ${run_id} / ${target.test_name}`,
162
+ "",
163
+ `1. Checkout the commit: \`git checkout ${(await ctx.clients.testrelic.getRun(run_id)).commit_sha}\``,
164
+ `2. Open artefacts (below) to understand the failing step.`,
165
+ `3. Re-run locally with the test id filter: e.g. \`pw test -g "${target.test_name}"\`.`,
166
+ `4. Compare runtime state against the failing video timestamp.`,
167
+ "",
168
+ "### Artefacts",
169
+ ...artifacts.map((a) => `- [${a.kind}](${a.url})${a.note ? ` — ${a.note}` : ""}`),
170
+ ].join("\n");
171
+ return { text, structured: { run_id, test: target, artifacts } };
172
+ },
173
+ },
174
+ ];
175
+ function fallbackHeal(source, errorType) {
176
+ // Very conservative: bump timeouts, swap brittle selectors to testid pattern.
177
+ let healed = source;
178
+ if (/Timeout/i.test(errorType)) {
179
+ healed = healed.replace(/timeout:\s*\d+/g, "timeout: 30000");
180
+ }
181
+ if (/Selector|NotFound|Locator/i.test(errorType)) {
182
+ healed = healed.replace(/page\.locator\(["'][.#][^"']+["']\)/g, (m) => `${m} // TODO: replace with getByRole/getByTestId`);
183
+ }
184
+ return healed;
185
+ }
186
+ export function registerHealingTools(ctx, register) {
187
+ for (const t of healingTools)
188
+ register(t);
189
+ }
190
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/healing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C;QACE,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,4CAA4C;QACnD,WAAW,EACT,gOAAgO;QAClO,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;SACrG;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC;iBACL,MAAM,CAAC;gBACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB,CAAC;iBACD,QAAQ,EAAE;SACd;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,4BAA4B,MAAM,oBAAoB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC1F,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,OAAO,8BAA8B,MAAM,EAAE,CAAC,CAAC;YAElG,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,IAAI,GAAG,SAAS,MAAM,CAAC,KAAK,UAAU,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACpB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,+BAA+B,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3D,CAAC;YAED,MAAM,MAAM,GAAG;gBACb,iFAAiF;gBACjF,SAAS,MAAM,CAAC,SAAS,EAAE;gBAC3B,eAAe,MAAM,CAAC,UAAU,EAAE;gBAClC,kBAAkB,MAAM,CAAC,aAAa,EAAE;gBACxC,cAAc;gBACd,MAAM,CAAC,WAAW;gBAClB,EAAE;gBACF,mBAAmB,IAAI,IAAI;gBAC3B,OAAO;gBACP,MAAM;gBACN,KAAK;gBACL,EAAE;gBACF,0EAA0E;aAC3E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE;gBACvD,YAAY,EAAE,0GAA0G;gBACxH,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,0DAA0D,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3G,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,EAAE,GAAG,MAAM,WAAW,CAAC,CAAC;YACnG,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAElD,MAAM,KAAK,GAAiB;gBAC1B,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,iBAAiB,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,uBAAuB,EAAE;gBAC7I,YAAY;gBACZ,cAAc,EAAE,CAAC,IAAI,CAAC;gBACtB,UAAU;aACX,CAAC;YAEF,MAAM,IAAI,GAAG;gBACX,yBAAyB,MAAM,MAAM,MAAM,CAAC,SAAS,EAAE;gBACvD,eAAe,KAAK,CAAC,MAAM,EAAE;gBAC7B,mBAAmB,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBACnD,uBAAuB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxD,EAAE;gBACF,SAAS;gBACT,YAAY;gBACZ,KAAK;gBACL,EAAE;gBACF,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,6EAA6E,CAAC,CAAC,CAAC,EAAE;aAC7G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;QACzC,CAAC;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,sKAAsK;QACxK,WAAW,EAAE;YACX,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;YAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;YAC1G,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;SAChG;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,gBAA0B,CAAC;YACjD,MAAM,SAAS,GAAI,KAAK,CAAC,SAAgC,IAAI,YAAY,CAAC;YAC1E,MAAM,MAAM,GAAG;gBACb,oCAAoC,OAAO,IAAI;gBAC/C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACxD,mBAAmB,SAAS,wDAAwD;aACrF;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/F,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;iBACrC,KAAK,CAAC,OAAO,CAAC;iBACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC;iBACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBACxB,WAAW,CAAC,IAAI,CACd,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,0CAA0C,EACrH,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,+BAA+B,EACxF,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,2BAA2B,CACpF,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,+BAA+B,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9F,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC;QACnE,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,8JAA8J;QAChK,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;QACnE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAC;YACtC,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,2BAA2B,MAAM,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YACnF,IAAI,SAAS,GAAwD,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAChE,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,EAAE,CAAC;YACjB,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;gBACnE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;gBAC7E,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,IAAI,GAAG;gBACX,oBAAoB,MAAM,MAAM,MAAM,CAAC,SAAS,EAAE;gBAClD,EAAE;gBACF,0CAA0C,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI;gBACrG,2DAA2D;gBAC3D,iEAAiE,MAAM,CAAC,SAAS,MAAM;gBACvF,+DAA+D;gBAC/D,EAAE;gBACF,eAAe;gBACf,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aAClF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QACnE,CAAC;KACF;CACF,CAAC;AAEF,SAAS,YAAY,CAAC,MAAc,EAAE,SAAiB;IACrD,8EAA8E;IAC9E,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC7H,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAgB,EAAE,QAAuC;IAC5F,KAAK,MAAM,CAAC,IAAI,YAAY;QAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ToolContext, ToolDefinition } from "../../registry/index.js";
2
+ /**
3
+ * Impact capability — TDAD (Test-aware Diff Analysis Dependency) graph,
4
+ * risk-based test selection, user-impact blast-radius scoring.
5
+ */
6
+ export declare const impactTools: ToolDefinition[];
7
+ export declare function registerImpactTools(ctx: ToolContext, register: (def: ToolDefinition) => void): void;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/impact/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG3E;;;GAGG;AAEH,eAAO,MAAM,WAAW,EAAE,cAAc,EA6LvC,CAAC;AAqBF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI,CAEnG"}