@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.
- package/LICENSE +201 -0
- package/README.md +198 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/cache/blob.d.ts +22 -0
- package/dist/cache/blob.d.ts.map +1 -0
- package/dist/cache/blob.js +92 -0
- package/dist/cache/blob.js.map +1 -0
- package/dist/cache/diff-reader.d.ts +29 -0
- package/dist/cache/diff-reader.d.ts.map +1 -0
- package/dist/cache/diff-reader.js +34 -0
- package/dist/cache/diff-reader.js.map +1 -0
- package/dist/cache/index.d.ts +57 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +99 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/key.d.ts +15 -0
- package/dist/cache/key.d.ts.map +1 -0
- package/dist/cache/key.js +32 -0
- package/dist/cache/key.js.map +1 -0
- package/dist/cache/lru.d.ts +21 -0
- package/dist/cache/lru.d.ts.map +1 -0
- package/dist/cache/lru.js +32 -0
- package/dist/cache/lru.js.map +1 -0
- package/dist/cache/sqlite.d.ts +22 -0
- package/dist/cache/sqlite.d.ts.map +1 -0
- package/dist/cache/sqlite.js +102 -0
- package/dist/cache/sqlite.js.map +1 -0
- package/dist/cache/vector.d.ts +42 -0
- package/dist/cache/vector.d.ts.map +1 -0
- package/dist/cache/vector.js +187 -0
- package/dist/cache/vector.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +205 -0
- package/dist/cli.js.map +1 -0
- package/dist/clients/amplitude.d.ts +24 -0
- package/dist/clients/amplitude.d.ts.map +1 -0
- package/dist/clients/amplitude.js +15 -0
- package/dist/clients/amplitude.js.map +1 -0
- package/dist/clients/clickhouse.d.ts +10 -0
- package/dist/clients/clickhouse.d.ts.map +1 -0
- package/dist/clients/clickhouse.js +8 -0
- package/dist/clients/clickhouse.js.map +1 -0
- package/dist/clients/cloud.d.ts +347 -0
- package/dist/clients/cloud.d.ts.map +1 -0
- package/dist/clients/cloud.js +402 -0
- package/dist/clients/cloud.js.map +1 -0
- package/dist/clients/http.d.ts +40 -0
- package/dist/clients/http.d.ts.map +1 -0
- package/dist/clients/http.js +67 -0
- package/dist/clients/http.js.map +1 -0
- package/dist/clients/index.d.ts +38 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +24 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/jira.d.ts +16 -0
- package/dist/clients/jira.d.ts.map +1 -0
- package/dist/clients/jira.js +11 -0
- package/dist/clients/jira.js.map +1 -0
- package/dist/clients/loki.d.ts +7 -0
- package/dist/clients/loki.d.ts.map +1 -0
- package/dist/clients/loki.js +8 -0
- package/dist/clients/loki.js.map +1 -0
- package/dist/clients/retry.d.ts +28 -0
- package/dist/clients/retry.d.ts.map +1 -0
- package/dist/clients/retry.js +79 -0
- package/dist/clients/retry.js.map +1 -0
- package/dist/clients/testrelic.d.ts +90 -0
- package/dist/clients/testrelic.d.ts.map +1 -0
- package/dist/clients/testrelic.js +68 -0
- package/dist/clients/testrelic.js.map +1 -0
- package/dist/config.d.ts +216 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +233 -0
- package/dist/config.js.map +1 -0
- package/dist/context/code-map.d.ts +35 -0
- package/dist/context/code-map.d.ts.map +1 -0
- package/dist/context/code-map.js +187 -0
- package/dist/context/code-map.js.map +1 -0
- package/dist/context/correlator.d.ts +32 -0
- package/dist/context/correlator.d.ts.map +1 -0
- package/dist/context/correlator.js +106 -0
- package/dist/context/correlator.js.map +1 -0
- package/dist/context/coverage-map.d.ts +25 -0
- package/dist/context/coverage-map.d.ts.map +1 -0
- package/dist/context/coverage-map.js +44 -0
- package/dist/context/coverage-map.js.map +1 -0
- package/dist/context/index.d.ts +20 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +18 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/journey-graph.d.ts +22 -0
- package/dist/context/journey-graph.d.ts.map +1 -0
- package/dist/context/journey-graph.js +38 -0
- package/dist/context/journey-graph.js.map +1 -0
- package/dist/context/signal-map.d.ts +26 -0
- package/dist/context/signal-map.d.ts.map +1 -0
- package/dist/context/signal-map.js +30 -0
- package/dist/context/signal-map.js.map +1 -0
- package/dist/elicit/ask.d.ts +28 -0
- package/dist/elicit/ask.d.ts.map +1 -0
- package/dist/elicit/ask.js +31 -0
- package/dist/elicit/ask.js.map +1 -0
- package/dist/elicit/zod-to-json.d.ts +7 -0
- package/dist/elicit/zod-to-json.d.ts.map +1 -0
- package/dist/elicit/zod-to-json.js +37 -0
- package/dist/elicit/zod-to-json.js.map +1 -0
- package/dist/errors.d.ts +59 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +122 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +127 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +6 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +29 -0
- package/dist/logger.js.map +1 -0
- package/dist/prompts/index.d.ts +8 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +86 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/registry/index.d.ts +70 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +88 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/project.d.ts +20 -0
- package/dist/registry/project.d.ts.map +1 -0
- package/dist/registry/project.js +44 -0
- package/dist/registry/project.js.map +1 -0
- package/dist/resources/index.d.ts +13 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +76 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/sampling/bridge.d.ts +35 -0
- package/dist/sampling/bridge.d.ts.map +1 -0
- package/dist/sampling/bridge.js +39 -0
- package/dist/sampling/bridge.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +29 -0
- package/dist/telemetry/metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics.js +46 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/telemetry/tokens.d.ts +16 -0
- package/dist/telemetry/tokens.d.ts.map +1 -0
- package/dist/telemetry/tokens.js +40 -0
- package/dist/telemetry/tokens.js.map +1 -0
- package/dist/tools/core/index.d.ts +8 -0
- package/dist/tools/core/index.d.ts.map +1 -0
- package/dist/tools/core/index.js +219 -0
- package/dist/tools/core/index.js.map +1 -0
- package/dist/tools/coverage/index.d.ts +9 -0
- package/dist/tools/coverage/index.d.ts.map +1 -0
- package/dist/tools/coverage/index.js +247 -0
- package/dist/tools/coverage/index.js.map +1 -0
- package/dist/tools/creation/index.d.ts +9 -0
- package/dist/tools/creation/index.d.ts.map +1 -0
- package/dist/tools/creation/index.js +357 -0
- package/dist/tools/creation/index.js.map +1 -0
- package/dist/tools/creation/templates.d.ts +17 -0
- package/dist/tools/creation/templates.d.ts.map +1 -0
- package/dist/tools/creation/templates.js +63 -0
- package/dist/tools/creation/templates.js.map +1 -0
- package/dist/tools/devtools/index.d.ts +9 -0
- package/dist/tools/devtools/index.d.ts.map +1 -0
- package/dist/tools/devtools/index.js +106 -0
- package/dist/tools/devtools/index.js.map +1 -0
- package/dist/tools/healing/index.d.ts +10 -0
- package/dist/tools/healing/index.d.ts.map +1 -0
- package/dist/tools/healing/index.js +190 -0
- package/dist/tools/healing/index.js.map +1 -0
- package/dist/tools/impact/index.d.ts +8 -0
- package/dist/tools/impact/index.d.ts.map +1 -0
- package/dist/tools/impact/index.js +215 -0
- package/dist/tools/impact/index.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +29 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/signals/index.d.ts +9 -0
- package/dist/tools/signals/index.d.ts.map +1 -0
- package/dist/tools/signals/index.js +100 -0
- package/dist/tools/signals/index.js.map +1 -0
- package/dist/tools/triage/index.d.ts +9 -0
- package/dist/tools/triage/index.d.ts.map +1 -0
- package/dist/tools/triage/index.js +366 -0
- package/dist/tools/triage/index.js.map +1 -0
- package/dist/transport/http.d.ts +16 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +110 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/stdio.d.ts +6 -0
- package/dist/transport/stdio.d.ts.map +1 -0
- package/dist/transport/stdio.js +19 -0
- package/dist/transport/stdio.js.map +1 -0
- package/dist/types/index.d.ts +268 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/version.d.ts +7 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +1 -0
- 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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C;QACE,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,uFAAuF;QACpG,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACpG,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;QAC3F,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAoB,CAAC,CAAC;YACxF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAA0B,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,CAAC,eAAe,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,wDAAwD,EAAE,uBAAuB,CAAC,CAAC;YAC9J,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;YACnJ,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACzF,CAAC;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,qFAAqF;QAClG,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;QAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACrF,MAAM,KAAK,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3E,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,cAAc,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QAC5D,CAAC;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EACT,qJAAqJ;QACvJ,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;SACzD;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAe,EAAE,KAAK,CAAC,CAAuB,CAAC,CAAC;YACpG,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,gDAAgD,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACpH,MAAM,KAAK,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7D,CAAC;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,sCAAsC;QAC7C,WAAW,EACT,+JAA+J;QACjK,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAChE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SACrD;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAmB,EAAE;gBACxE,QAAQ,EAAE,KAAK,CAAC,SAA+B;aAChD,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,WAAW,KAAK,CAAC,MAAM,oBAAoB,KAAK,CAAC,SAAS,GAAG;gBACnE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;aAChE,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,yFAAyF;QACtG,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC7B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG;gBACX,UAAU;gBACV,qBAAqB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,OAAO,EAAE;gBACjE,qBAAqB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE;gBAC7C,qBAAqB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,UAAU,EAAE;gBACpE,qBAAqB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE;aAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,CAAC;KACF;CACF,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,GAAgB,EAAE,QAAuC;IAC7F,KAAK,MAAM,CAAC,IAAI,aAAa;QAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -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":"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"}
|
|
@@ -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"}
|