@empiricalrun/test-gen 0.74.2 → 0.75.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/CHANGELOG.md +22 -0
- package/dist/agent/base/index.d.ts +36 -0
- package/dist/agent/base/index.d.ts.map +1 -0
- package/dist/agent/base/index.js +74 -0
- package/dist/agent/chat/agent-loop.d.ts +4 -5
- package/dist/agent/chat/agent-loop.d.ts.map +1 -1
- package/dist/agent/chat/agent-loop.js +2 -9
- package/dist/agent/chat/exports.d.ts +3 -3
- package/dist/agent/chat/exports.d.ts.map +1 -1
- package/dist/agent/chat/exports.js +5 -5
- package/dist/agent/chat/index.d.ts.map +1 -1
- package/dist/agent/chat/index.js +8 -11
- package/dist/agent/chat/state.d.ts +2 -3
- package/dist/agent/chat/state.d.ts.map +1 -1
- package/dist/agent/chat/state.js +0 -8
- package/dist/agent/chat/utils.d.ts +0 -1
- package/dist/agent/chat/utils.d.ts.map +1 -1
- package/dist/agent/chat/utils.js +1 -14
- package/dist/file-info/adapters/github/index.d.ts +2 -2
- package/dist/file-info/adapters/github/index.d.ts.map +1 -1
- package/dist/file-info/adapters/github/index.js +3 -2
- package/dist/file-info/adapters/github/reader.d.ts +3 -3
- package/dist/file-info/adapters/github/reader.d.ts.map +1 -1
- package/dist/file-info/adapters/github/reader.js +17 -16
- package/dist/tools/commit-and-create-pr/index.js +1 -1
- package/dist/tools/definitions/fetch-video-analysis.d.ts +28 -0
- package/dist/tools/definitions/fetch-video-analysis.d.ts.map +1 -1
- package/dist/tools/definitions/fetch-video-analysis.js +39 -4
- package/dist/tools/definitions/rename-file.d.ts +3 -0
- package/dist/tools/definitions/rename-file.d.ts.map +1 -0
- package/dist/tools/definitions/rename-file.js +23 -0
- package/dist/tools/delete-file/index.d.ts.map +1 -1
- package/dist/tools/delete-file/index.js +13 -1
- package/dist/tools/executor/index.d.ts.map +1 -1
- package/dist/tools/executor/index.js +4 -3
- package/dist/tools/executor/utils/checkpoint.d.ts +1 -3
- package/dist/tools/executor/utils/checkpoint.d.ts.map +1 -1
- package/dist/tools/executor/utils/checkpoint.js +17 -17
- package/dist/tools/executor/utils/git.d.ts +9 -1
- package/dist/tools/executor/utils/git.d.ts.map +1 -1
- package/dist/tools/executor/utils/git.js +72 -2
- package/dist/tools/{fetch-image → fetch-file}/index.d.ts +2 -2
- package/dist/tools/fetch-file/index.d.ts.map +1 -0
- package/dist/tools/fetch-file/index.js +97 -0
- package/dist/tools/fetch-video-analysis/index.d.ts +3 -3
- package/dist/tools/fetch-video-analysis/index.d.ts.map +1 -1
- package/dist/tools/fetch-video-analysis/index.js +71 -22
- package/dist/tools/fetch-video-analysis/local-ffmpeg-client.d.ts +8 -9
- package/dist/tools/fetch-video-analysis/local-ffmpeg-client.d.ts.map +1 -1
- package/dist/tools/fetch-video-analysis/local-ffmpeg-client.js +55 -17
- package/dist/tools/fetch-video-analysis/open-ai.d.ts +6 -0
- package/dist/tools/fetch-video-analysis/open-ai.d.ts.map +1 -0
- package/dist/tools/fetch-video-analysis/open-ai.js +37 -0
- package/dist/tools/fetch-video-analysis/utils.d.ts +6 -3
- package/dist/tools/fetch-video-analysis/utils.d.ts.map +1 -1
- package/dist/tools/fetch-video-analysis/utils.js +41 -15
- package/dist/tools/fetch-video-analysis/video-analysis.js +1 -1
- package/dist/tools/file-operations/create.d.ts.map +1 -1
- package/dist/tools/file-operations/create.js +6 -3
- package/dist/tools/file-operations/insert.d.ts.map +1 -1
- package/dist/tools/file-operations/insert.js +6 -3
- package/dist/tools/file-operations/replace.d.ts.map +1 -1
- package/dist/tools/file-operations/replace.js +6 -3
- package/dist/tools/file-operations/shared/git-helper.d.ts.map +1 -1
- package/dist/tools/file-operations/shared/git-helper.js +1 -1
- package/dist/tools/file-operations/view/index.d.ts +2 -5
- package/dist/tools/file-operations/view/index.d.ts.map +1 -1
- package/dist/tools/file-operations/view/index.js +2 -22
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +14 -4
- package/dist/tools/issues/update-issue.d.ts.map +1 -1
- package/dist/tools/issues/update-issue.js +16 -9
- package/dist/tools/merge-conflicts/index.js +1 -1
- package/dist/tools/rename-file/index.d.ts +3 -0
- package/dist/tools/rename-file/index.d.ts.map +1 -0
- package/dist/tools/rename-file/index.js +88 -0
- package/dist/tools/run-test.js +2 -2
- package/dist/tools/trace-dot-zip/index.d.ts.map +1 -1
- package/dist/tools/trace-dot-zip/index.js +2 -1
- package/dist/tools/trace-dot-zip/types.d.ts +35 -3
- package/dist/tools/trace-dot-zip/types.d.ts.map +1 -1
- package/dist/tools/trace-dot-zip/utils/network-trace.d.ts +7 -2
- package/dist/tools/trace-dot-zip/utils/network-trace.d.ts.map +1 -1
- package/dist/tools/trace-dot-zip/utils/network-trace.js +130 -10
- package/dist/tools/upgrade-packages/index.js +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -3
- package/package.json +5 -5
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/tools/fetch-image/index.d.ts.map +0 -1
- package/dist/tools/fetch-image/index.js +0 -63
|
@@ -31,22 +31,29 @@ exports.updateIssueTool = {
|
|
|
31
31
|
isInlineTool: true,
|
|
32
32
|
execute: async ({ input, apiClient }) => {
|
|
33
33
|
try {
|
|
34
|
-
const { id, title, description, issue_type, test_issue_prompt, test_cases_affected
|
|
34
|
+
const { id, title, description, issue_type, test_issue_prompt, test_cases_affected, test_run_info, } = input;
|
|
35
35
|
if (!apiClient) {
|
|
36
36
|
throw new Error("Dashboard API client is not available.");
|
|
37
37
|
}
|
|
38
|
-
const updateData = {
|
|
39
|
-
|
|
40
|
-
test_run_info,
|
|
41
|
-
};
|
|
42
|
-
if (title !== undefined)
|
|
38
|
+
const updateData = {};
|
|
39
|
+
if (title !== undefined) {
|
|
43
40
|
updateData.title = title;
|
|
44
|
-
|
|
41
|
+
}
|
|
42
|
+
if (description !== undefined) {
|
|
45
43
|
updateData.description = description;
|
|
46
|
-
|
|
44
|
+
}
|
|
45
|
+
if (issue_type !== undefined) {
|
|
47
46
|
updateData.issue_type = issue_type;
|
|
48
|
-
|
|
47
|
+
}
|
|
48
|
+
if (test_issue_prompt !== undefined) {
|
|
49
49
|
updateData.test_issue_prompt = test_issue_prompt;
|
|
50
|
+
}
|
|
51
|
+
if (test_cases_affected !== undefined && test_cases_affected.length > 0) {
|
|
52
|
+
updateData.test_cases_affected = test_cases_affected;
|
|
53
|
+
}
|
|
54
|
+
if (test_run_info !== undefined && test_run_info.length > 0) {
|
|
55
|
+
updateData.test_run_info = test_run_info;
|
|
56
|
+
}
|
|
50
57
|
const response = await (0, utils_1.updateIssue)(apiClient, id, updateData);
|
|
51
58
|
if (!response.data?.issue) {
|
|
52
59
|
return {
|
|
@@ -59,7 +59,7 @@ exports.mergeConflictsTool = {
|
|
|
59
59
|
}
|
|
60
60
|
else if (mergeResult === "CONFLICTS") {
|
|
61
61
|
const files = getConflictedFilesWithContents(repoPath);
|
|
62
|
-
(0, git_1.
|
|
62
|
+
(0, git_1.stageAndCommitFilesAsBotUser)({
|
|
63
63
|
commitMessage: "Merge from main with conflicts",
|
|
64
64
|
files: Object.keys(files),
|
|
65
65
|
repoPath,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/rename-file/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAQnE,eAAO,MAAM,cAAc,EAAE,IA6E5B,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.renameFileTool = void 0;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const promises_1 = require("fs/promises");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const web_1 = require("../../bin/utils/platform/web");
|
|
11
|
+
const rename_file_1 = require("../definitions/rename-file");
|
|
12
|
+
exports.renameFileTool = {
|
|
13
|
+
...rename_file_1.renameFileTool,
|
|
14
|
+
execute: async ({ input, repoPath }) => {
|
|
15
|
+
try {
|
|
16
|
+
const oldFilePath = path_1.default.join(repoPath, input.oldPath);
|
|
17
|
+
const newFilePath = path_1.default.join(repoPath, input.newPath);
|
|
18
|
+
try {
|
|
19
|
+
const stats = await (0, promises_1.stat)(oldFilePath);
|
|
20
|
+
if (!stats.isFile()) {
|
|
21
|
+
return {
|
|
22
|
+
isError: true,
|
|
23
|
+
result: `Error: '${input.oldPath}' is not a file. Use a different tool to rename directories.`,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return {
|
|
29
|
+
isError: true,
|
|
30
|
+
result: `Error: File '${input.oldPath}' does not exist.`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const resolvedOldPath = path_1.default.resolve(oldFilePath);
|
|
34
|
+
const resolvedNewPath = path_1.default.resolve(newFilePath);
|
|
35
|
+
const resolvedRepoPath = path_1.default.resolve(repoPath);
|
|
36
|
+
if (!resolvedOldPath.startsWith(resolvedRepoPath)) {
|
|
37
|
+
return {
|
|
38
|
+
isError: true,
|
|
39
|
+
result: `Error: Source file is outside the repository root.`,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
if (!resolvedNewPath.startsWith(resolvedRepoPath)) {
|
|
43
|
+
return {
|
|
44
|
+
isError: true,
|
|
45
|
+
result: `Error: Destination path is outside the repository root.`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
await (0, promises_1.stat)(newFilePath);
|
|
50
|
+
return {
|
|
51
|
+
isError: true,
|
|
52
|
+
result: `Error: Destination file '${input.newPath}' already exists.`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// File doesn't exist, which is what we want
|
|
57
|
+
}
|
|
58
|
+
const newDir = path_1.default.dirname(newFilePath);
|
|
59
|
+
await (0, promises_1.mkdir)(newDir, { recursive: true });
|
|
60
|
+
await (0, promises_1.rename)(oldFilePath, newFilePath);
|
|
61
|
+
// Stage both files for git porcelain
|
|
62
|
+
function stageFile(filePath) {
|
|
63
|
+
return (0, child_process_1.execSync)(`git add ${filePath}`, { cwd: repoPath });
|
|
64
|
+
}
|
|
65
|
+
stageFile(oldFilePath);
|
|
66
|
+
stageFile(newFilePath);
|
|
67
|
+
// Run TypeScript compilation check
|
|
68
|
+
const tscResult = await (0, web_1.runTypescriptCompiler)(repoPath);
|
|
69
|
+
if (!tscResult.success) {
|
|
70
|
+
return {
|
|
71
|
+
result: `File renamed from '${input.oldPath}' to '${input.newPath}'. However, type checks are failing with errors:\n\n${tscResult.errors.join("\n")}`,
|
|
72
|
+
isError: true,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
isError: false,
|
|
77
|
+
result: `Successfully renamed file from '${input.oldPath}' to '${input.newPath}'`,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error("Error renaming file", error);
|
|
82
|
+
return {
|
|
83
|
+
isError: true,
|
|
84
|
+
result: error instanceof Error ? error.message : String(error),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
};
|
package/dist/tools/run-test.js
CHANGED
|
@@ -9,7 +9,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const artifacts_1 = require("../artifacts");
|
|
11
11
|
const utils_1 = require("../artifacts/utils");
|
|
12
|
-
const
|
|
12
|
+
const json_1 = require("../utils/json");
|
|
13
13
|
const run_test_1 = require("./definitions/run-test");
|
|
14
14
|
function buildReportUrl(projectName, testRunId) {
|
|
15
15
|
return `https://reports.empirical.run/${projectName}/${testRunId}/index.html`;
|
|
@@ -17,7 +17,7 @@ function buildReportUrl(projectName, testRunId) {
|
|
|
17
17
|
function buildResult({ hasTestPassed, summaryJson, reportUrl, }) {
|
|
18
18
|
const summaryWithoutConfig = { ...summaryJson, config: undefined };
|
|
19
19
|
delete summaryWithoutConfig["config"];
|
|
20
|
-
const truncatedSummaryJson = (0,
|
|
20
|
+
const truncatedSummaryJson = (0, json_1.truncateJsonValues)(summaryWithoutConfig);
|
|
21
21
|
return `
|
|
22
22
|
Test run is complete. Result: ${hasTestPassed ? "Passed" : "Failed"}
|
|
23
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAa9D,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAa9D,eAAO,MAAM,eAAe,EAAE,IAwD7B,CAAC"}
|
|
@@ -28,11 +28,12 @@ exports.traceDotZipTool = {
|
|
|
28
28
|
(0, network_trace_1.generateNetworkTraceFromZipUrl)({ url: traceFileUrl }),
|
|
29
29
|
(0, console_trace_1.generateConsoleTraceFromZipUrl)({ url: traceFileUrl }),
|
|
30
30
|
]);
|
|
31
|
-
const cleanNetworkTraceOutput = (0, network_trace_1.stripIrrelevantInfoFromNetworkFailureArray)(networkTraceOutput);
|
|
31
|
+
const cleanNetworkTraceOutput = (0, network_trace_1.stripIrrelevantInfoFromNetworkFailureArray)(networkTraceOutput.hydratedFailedCalls);
|
|
32
32
|
return {
|
|
33
33
|
isError: false,
|
|
34
34
|
result: JSON.stringify({
|
|
35
35
|
failed_network_requests: cleanNetworkTraceOutput,
|
|
36
|
+
request_sequence: networkTraceOutput.networkCallSequence,
|
|
36
37
|
console_error_logs: consoleTraceOutput,
|
|
37
38
|
}, null, 2),
|
|
38
39
|
};
|
|
@@ -8,13 +8,35 @@ export type CapturedNetworkFailure = {
|
|
|
8
8
|
headers: {
|
|
9
9
|
[any: string]: string;
|
|
10
10
|
}[] | [];
|
|
11
|
+
body?: {
|
|
12
|
+
mimeType?: string;
|
|
13
|
+
text?: string;
|
|
14
|
+
params?: any[];
|
|
15
|
+
_sha1?: string;
|
|
16
|
+
content?: string;
|
|
17
|
+
};
|
|
11
18
|
};
|
|
12
19
|
response: {
|
|
13
20
|
headers: {
|
|
14
21
|
[any: string]: string;
|
|
15
22
|
}[] | [];
|
|
23
|
+
body?: {
|
|
24
|
+
mimeType?: string;
|
|
25
|
+
text?: string;
|
|
26
|
+
params?: any[];
|
|
27
|
+
_sha1?: string;
|
|
28
|
+
content?: string;
|
|
29
|
+
};
|
|
16
30
|
};
|
|
17
31
|
};
|
|
32
|
+
export type NetworkRequestSequence = {
|
|
33
|
+
step: number;
|
|
34
|
+
method: string;
|
|
35
|
+
endpoint: string;
|
|
36
|
+
status: number;
|
|
37
|
+
redirect_to?: string;
|
|
38
|
+
duration_ms: number;
|
|
39
|
+
};
|
|
18
40
|
export type CapturedConsoleLog = {
|
|
19
41
|
type: "console";
|
|
20
42
|
messageType: "log" | "info" | "warning" | "error" | string;
|
|
@@ -44,11 +66,12 @@ export type PlaywrightNetworkTrace = {
|
|
|
44
66
|
queryString: any[];
|
|
45
67
|
headersSize: number;
|
|
46
68
|
bodySize: number;
|
|
47
|
-
postData
|
|
69
|
+
postData?: {
|
|
48
70
|
mimeType: string;
|
|
49
|
-
text
|
|
71
|
+
text?: string;
|
|
50
72
|
params: any[];
|
|
51
|
-
_sha1
|
|
73
|
+
_sha1?: string;
|
|
74
|
+
_file?: string;
|
|
52
75
|
};
|
|
53
76
|
};
|
|
54
77
|
response: {
|
|
@@ -61,6 +84,15 @@ export type PlaywrightNetworkTrace = {
|
|
|
61
84
|
bodySize: number;
|
|
62
85
|
redirectURL: string;
|
|
63
86
|
_transferSize: number;
|
|
87
|
+
content: {
|
|
88
|
+
size: number;
|
|
89
|
+
mimeType: string;
|
|
90
|
+
text?: string;
|
|
91
|
+
encoding?: string;
|
|
92
|
+
_sha1?: string;
|
|
93
|
+
_file?: string;
|
|
94
|
+
compression?: number;
|
|
95
|
+
};
|
|
64
96
|
};
|
|
65
97
|
cache: any;
|
|
66
98
|
timings: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC,EAAE,MAAM,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,OAAO,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,EAAE,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CapturedNetworkFailure } from "../types";
|
|
1
|
+
import { CapturedNetworkFailure, NetworkRequestSequence, PlaywrightNetworkTrace } from "../types";
|
|
2
2
|
type ArgsT = {
|
|
3
3
|
url: string;
|
|
4
4
|
logPrefix?: string;
|
|
@@ -15,7 +15,12 @@ export declare const generateNetworkTrace: ({ logPrefix, url, failure, }: ArgsT)
|
|
|
15
15
|
allFailedCalls: CapturedNetworkFailure[];
|
|
16
16
|
failedCallsWithinTimeRange: CapturedNetworkFailure[];
|
|
17
17
|
}>;
|
|
18
|
-
export declare const generateNetworkTraceFromZipUrl: ({ url, }: ArgsT) => Promise<
|
|
18
|
+
export declare const generateNetworkTraceFromZipUrl: ({ url, }: ArgsT) => Promise<{
|
|
19
|
+
hydratedFailedCalls: CapturedNetworkFailure[];
|
|
20
|
+
networkCallSequence: NetworkRequestSequence[];
|
|
21
|
+
}>;
|
|
19
22
|
export declare const stripIrrelevantInfoFromNetworkFailureArray: (failures: CapturedNetworkFailure[]) => Partial<CapturedNetworkFailure>[];
|
|
23
|
+
export declare const hydrateSha1Bodies: (failures: CapturedNetworkFailure[], zipUrl: string) => Promise<CapturedNetworkFailure[]>;
|
|
24
|
+
export declare const buildNetworkCallSequence: (unformattedFailedNetworkCallsWithHeaders: PlaywrightNetworkTrace[]) => NetworkRequestSequence[];
|
|
20
25
|
export {};
|
|
21
26
|
//# sourceMappingURL=network-trace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-trace.d.ts","sourceRoot":"","sources":["../../../../src/tools/trace-dot-zip/utils/network-trace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"network-trace.d.ts","sourceRoot":"","sources":["../../../../src/tools/trace-dot-zip/utils/network-trace.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAUlB,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EACJ;YACE,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,GACD,SAAS,CAAC;KACf,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,8BAIxC,KAAK,KAAG,OAAO,CAAC;IACjB,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;CACtD,CA+KA,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAU,UAElD,KAAK,KAAG,OAAO,CAAC;IACjB,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAC9C,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;CAC/C,CAyEA,CAAC;AAsBF,eAAO,MAAM,0CAA0C,GACrD,UAAU,sBAAsB,EAAE,KACjC,OAAO,CAAC,sBAAsB,CAAC,EAoBjC,CAAC;AAmCF,eAAO,MAAM,iBAAiB,GAC5B,UAAU,sBAAsB,EAAE,EAClC,QAAQ,MAAM,KACb,OAAO,CAAC,sBAAsB,EAAE,CA+BlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,0CAA0C,sBAAsB,EAAE,KACjE,sBAAsB,EA2BxB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.stripIrrelevantInfoFromNetworkFailureArray = exports.generateNetworkTraceFromZipUrl = exports.generateNetworkTrace = void 0;
|
|
3
|
+
exports.buildNetworkCallSequence = exports.hydrateSha1Bodies = exports.stripIrrelevantInfoFromNetworkFailureArray = exports.generateNetworkTraceFromZipUrl = exports.generateNetworkTrace = void 0;
|
|
4
4
|
const date_fns_1 = require("date-fns");
|
|
5
|
+
const json_1 = require("../../../utils/json");
|
|
5
6
|
const extract_zip_1 = require("./extract-zip");
|
|
6
7
|
const NON_RELEVANT_NETWORK_CALL_KEYWORDS = [
|
|
7
8
|
"sentry",
|
|
@@ -97,6 +98,7 @@ const generateNetworkTrace = async ({ logPrefix = "network-trace", url, failure,
|
|
|
97
98
|
method: call?.snapshot?.request?.method,
|
|
98
99
|
request: {
|
|
99
100
|
headers: call?.snapshot?.request?.headers ?? [],
|
|
101
|
+
body: call?.snapshot?.request?.postData ?? undefined,
|
|
100
102
|
},
|
|
101
103
|
response: {
|
|
102
104
|
headers: call?.snapshot?.response?.headers ?? [],
|
|
@@ -130,7 +132,8 @@ const generateNetworkTrace = async ({ logPrefix = "network-trace", url, failure,
|
|
|
130
132
|
exports.generateNetworkTrace = generateNetworkTrace;
|
|
131
133
|
const generateNetworkTraceFromZipUrl = async ({ url, }) => {
|
|
132
134
|
try {
|
|
133
|
-
const
|
|
135
|
+
const allNetworkCalls = [];
|
|
136
|
+
const relevantNetworkCalls = [];
|
|
134
137
|
await (0, extract_zip_1.extractFileFromZipFromUrl)({
|
|
135
138
|
zipUrl: url,
|
|
136
139
|
fileNames: ["0-trace.network"],
|
|
@@ -141,23 +144,47 @@ const generateNetworkTraceFromZipUrl = async ({ url, }) => {
|
|
|
141
144
|
let lines = tempBuffer.split("\n");
|
|
142
145
|
lines.slice(0, -1).forEach((line) => {
|
|
143
146
|
const parsedNetworkTrace = JSON.parse(line);
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
const hasValidResponseStatus = !!parsedNetworkTrace?.snapshot?.response?.status;
|
|
148
|
+
const responseStatus = Number(parsedNetworkTrace?.snapshot?.response?.status);
|
|
149
|
+
allNetworkCalls.push(parsedNetworkTrace);
|
|
150
|
+
// only failures & redirects for detailed analysis
|
|
151
|
+
if (hasValidResponseStatus &&
|
|
152
|
+
(responseStatus === 308 ||
|
|
153
|
+
(400 <= responseStatus && responseStatus < 600))) {
|
|
154
|
+
relevantNetworkCalls.push(parsedNetworkTrace);
|
|
149
155
|
}
|
|
150
156
|
});
|
|
151
157
|
tempBuffer = lines[lines.length - 1] || "";
|
|
152
158
|
};
|
|
153
159
|
},
|
|
154
160
|
});
|
|
155
|
-
|
|
161
|
+
const failedCalls = relevantNetworkCalls.filter((c) => {
|
|
162
|
+
const status = c.snapshot.response.status;
|
|
163
|
+
return 400 <= status && status < 600;
|
|
164
|
+
});
|
|
165
|
+
const sequenceCalls = allNetworkCalls.filter((c) => {
|
|
166
|
+
const hasValidResponseStatus = !!c.snapshot.response.status;
|
|
167
|
+
const status = Number(c.snapshot.response.status);
|
|
168
|
+
return (hasValidResponseStatus &&
|
|
169
|
+
((400 <= status && status < 600) ||
|
|
170
|
+
status === 307 ||
|
|
171
|
+
status === 308 ||
|
|
172
|
+
status === 301 ||
|
|
173
|
+
status === 302));
|
|
174
|
+
// excluding: 304 (cached), 2xx success
|
|
175
|
+
});
|
|
176
|
+
const networkCallSequence = (0, exports.buildNetworkCallSequence)(sequenceCalls);
|
|
177
|
+
const formattedFailedCalls = failedCalls.map(formatNetworkFailure);
|
|
178
|
+
const hydratedFailedCalls = await (0, exports.hydrateSha1Bodies)(formattedFailedCalls, url);
|
|
179
|
+
return { hydratedFailedCalls, networkCallSequence };
|
|
156
180
|
}
|
|
157
181
|
catch (error) {
|
|
158
182
|
console.error(`Error fetching or processing the zip file: ${url}`, error);
|
|
159
183
|
}
|
|
160
|
-
return
|
|
184
|
+
return {
|
|
185
|
+
hydratedFailedCalls: [],
|
|
186
|
+
networkCallSequence: [],
|
|
187
|
+
};
|
|
161
188
|
};
|
|
162
189
|
exports.generateNetworkTraceFromZipUrl = generateNetworkTraceFromZipUrl;
|
|
163
190
|
const formatNetworkFailure = (call) => {
|
|
@@ -169,21 +196,114 @@ const formatNetworkFailure = (call) => {
|
|
|
169
196
|
method: call?.snapshot?.request?.method,
|
|
170
197
|
request: {
|
|
171
198
|
headers: call?.snapshot?.request?.headers ?? [],
|
|
199
|
+
body: call?.snapshot?.request?.postData ?? undefined,
|
|
172
200
|
},
|
|
173
201
|
response: {
|
|
174
202
|
headers: call?.snapshot?.response?.headers ?? [],
|
|
203
|
+
body: call?.snapshot?.response?.content ?? undefined,
|
|
175
204
|
},
|
|
176
205
|
};
|
|
177
206
|
};
|
|
178
207
|
const stripIrrelevantInfoFromNetworkFailureArray = (failures) => {
|
|
179
|
-
return failures.map(({ endpoint, status, timestamp, method }) => {
|
|
208
|
+
return failures.map(({ endpoint, status, timestamp, method, request, response }) => {
|
|
180
209
|
const strippedFailureInfo = {
|
|
181
210
|
endpoint,
|
|
182
211
|
status,
|
|
183
212
|
timestamp,
|
|
184
213
|
method,
|
|
214
|
+
request: {
|
|
215
|
+
headers: [],
|
|
216
|
+
body: request.body,
|
|
217
|
+
},
|
|
218
|
+
response: {
|
|
219
|
+
headers: [],
|
|
220
|
+
body: response.body,
|
|
221
|
+
},
|
|
185
222
|
};
|
|
186
223
|
return strippedFailureInfo;
|
|
187
224
|
});
|
|
188
225
|
};
|
|
189
226
|
exports.stripIrrelevantInfoFromNetworkFailureArray = stripIrrelevantInfoFromNetworkFailureArray;
|
|
227
|
+
const resolveSha1File = async (zipUrl, sha1) => {
|
|
228
|
+
if (!sha1)
|
|
229
|
+
return undefined;
|
|
230
|
+
let result;
|
|
231
|
+
const fileName = `resources/${sha1}`; // the _sha1 reference is a filename like abcd.bin or abcd.json
|
|
232
|
+
await (0, extract_zip_1.extractFileFromZipFromUrl)({
|
|
233
|
+
zipUrl,
|
|
234
|
+
fileNames: [fileName],
|
|
235
|
+
chunkProcessor: () => {
|
|
236
|
+
let buffer = "";
|
|
237
|
+
return (chunk) => {
|
|
238
|
+
buffer += chunk.toString("utf-8");
|
|
239
|
+
result = buffer;
|
|
240
|
+
};
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
if (!result)
|
|
244
|
+
return undefined;
|
|
245
|
+
let truncatedContent;
|
|
246
|
+
try {
|
|
247
|
+
const parsedResult = JSON.parse(result);
|
|
248
|
+
truncatedContent = JSON.stringify((0, json_1.truncateJsonValues)(parsedResult));
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
truncatedContent = (0, json_1.truncateJsonValues)(result);
|
|
252
|
+
}
|
|
253
|
+
return truncatedContent;
|
|
254
|
+
};
|
|
255
|
+
const hydrateSha1Bodies = async (failures, zipUrl) => {
|
|
256
|
+
return Promise.all(failures.map(async (failure) => {
|
|
257
|
+
const reqSha1 = failure.request.body?._sha1;
|
|
258
|
+
const reqMimeType = failure.request.body?.mimeType;
|
|
259
|
+
const resSha1 = failure.response.body?._sha1;
|
|
260
|
+
const resMimeType = failure.response.body?.mimeType;
|
|
261
|
+
return {
|
|
262
|
+
...failure,
|
|
263
|
+
request: {
|
|
264
|
+
...failure.request,
|
|
265
|
+
body: reqSha1
|
|
266
|
+
? {
|
|
267
|
+
mimeType: reqMimeType,
|
|
268
|
+
content: await resolveSha1File(zipUrl, reqSha1),
|
|
269
|
+
}
|
|
270
|
+
: failure.request.body,
|
|
271
|
+
},
|
|
272
|
+
response: {
|
|
273
|
+
...failure.response,
|
|
274
|
+
body: resSha1
|
|
275
|
+
? {
|
|
276
|
+
mimeType: resMimeType,
|
|
277
|
+
content: await resolveSha1File(zipUrl, resSha1),
|
|
278
|
+
}
|
|
279
|
+
: failure.response.body,
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
}));
|
|
283
|
+
};
|
|
284
|
+
exports.hydrateSha1Bodies = hydrateSha1Bodies;
|
|
285
|
+
const buildNetworkCallSequence = (unformattedFailedNetworkCallsWithHeaders) => {
|
|
286
|
+
return unformattedFailedNetworkCallsWithHeaders.map((trace, idx) => {
|
|
287
|
+
const snap = trace.snapshot;
|
|
288
|
+
const url = new URL(snap.request.url);
|
|
289
|
+
let redirect_to = undefined;
|
|
290
|
+
if (snap.response.redirectURL) {
|
|
291
|
+
try {
|
|
292
|
+
// attempting to make it absolute if relative
|
|
293
|
+
redirect_to = new URL(snap.response.redirectURL, snap.request.url).toString();
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
redirect_to = snap.response.redirectURL; // fallback as-is
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return {
|
|
300
|
+
step: idx + 1,
|
|
301
|
+
method: snap.request.method,
|
|
302
|
+
endpoint: url.pathname,
|
|
303
|
+
status: snap.response.status,
|
|
304
|
+
redirect_to,
|
|
305
|
+
duration_ms: Math.round(snap.time),
|
|
306
|
+
};
|
|
307
|
+
});
|
|
308
|
+
};
|
|
309
|
+
exports.buildNetworkCallSequence = buildNetworkCallSequence;
|
|
@@ -50,7 +50,7 @@ exports.upgradePackagesTool = {
|
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
const updateMessage = `upgrade ${changes.length} package${changes.length === 1 ? "" : "s"}`;
|
|
53
|
-
(0, git_1.
|
|
53
|
+
(0, git_1.stageAndCommitFilesAsBotUser)({
|
|
54
54
|
commitMessage: `[upgrade-packages] ${updateMessage}`,
|
|
55
55
|
files: ["package.json", "package-lock.json"],
|
|
56
56
|
repoPath,
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getTypescriptTestBlock = void 0;
|
|
4
4
|
var web_1 = require("../bin/utils/platform/web");
|
|
5
5
|
Object.defineProperty(exports, "getTypescriptTestBlock", { enumerable: true, get: function () { return web_1.getTypescriptTestBlock; } });
|
|
6
|
-
var json_1 = require("./json");
|
|
7
|
-
Object.defineProperty(exports, "truncateJsonValues", { enumerable: true, get: function () { return json_1.truncateJsonValues; } });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empiricalrun/test-gen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.75.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -85,9 +85,9 @@
|
|
|
85
85
|
"yauzl": "^3.1.3",
|
|
86
86
|
"zod": "^3.23.8",
|
|
87
87
|
"@empiricalrun/ast-parser": "^0.0.10",
|
|
88
|
-
"@empiricalrun/llm": "^0.
|
|
89
|
-
"@empiricalrun/r2-uploader": "^0.3.
|
|
90
|
-
"@empiricalrun/test-run": "^0.11.
|
|
88
|
+
"@empiricalrun/llm": "^0.22.0",
|
|
89
|
+
"@empiricalrun/r2-uploader": "^0.3.11",
|
|
90
|
+
"@empiricalrun/test-run": "^0.11.1"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
93
|
"@playwright/test": "1.53.2",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"playwright": "1.53.2",
|
|
107
107
|
"serve-handler": "^6.1.6",
|
|
108
108
|
"ts-patch": "^3.3.0",
|
|
109
|
-
"@empiricalrun/shared-types": "0.10.
|
|
109
|
+
"@empiricalrun/shared-types": "0.10.1"
|
|
110
110
|
},
|
|
111
111
|
"scripts": {
|
|
112
112
|
"dev": "tspc --build --watch",
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/index.ts","./src/logger.ts","./src/actions/assert.ts","./src/actions/click.ts","./src/actions/done.ts","./src/actions/fill.ts","./src/actions/goto.ts","./src/actions/hover.ts","./src/actions/index.ts","./src/actions/next-task.ts","./src/actions/press.ts","./src/actions/skill.ts","./src/actions/text-content.ts","./src/actions/constants/index.ts","./src/actions/utils/index.ts","./src/agent/browsing/index.ts","./src/agent/browsing/run.ts","./src/agent/browsing/utils.ts","./src/agent/chat/agent-loop.ts","./src/agent/chat/exports.ts","./src/agent/chat/filesystem-cache.ts","./src/agent/chat/index.ts","./src/agent/chat/models.ts","./src/agent/chat/state.ts","./src/agent/chat/types.ts","./src/agent/chat/utils.ts","./src/agent/chat/prompt/index.ts","./src/agent/chat/prompt/pw-utils-docs.ts","./src/agent/chat/prompt/repo.ts","./src/agent/chat/utils/tool-calls.ts","./src/agent/code-review/prompt.ts","./src/agent/codegen/create-test-block.ts","./src/agent/codegen/fix-ts-errors.ts","./src/agent/codegen/lexical-scoped-vars.ts","./src/agent/codegen/skills-retriever.ts","./src/agent/codegen/test-update-feedback.ts","./src/agent/codegen/types.ts","./src/agent/codegen/update-flow.ts","./src/agent/codegen/use-skill.ts","./src/agent/codegen/utils.ts","./src/agent/cua/computer.ts","./src/agent/cua/index.ts","./src/agent/cua/model.ts","./src/agent/cua/pw-codegen/element-from-point.ts","./src/agent/cua/pw-codegen/types.ts","./src/agent/cua/pw-codegen/pw-pause/for-recorder.ts","./src/agent/cua/pw-codegen/pw-pause/index.ts","./src/agent/cua/pw-codegen/pw-pause/ipc.ts","./src/agent/cua/pw-codegen/pw-pause/patch.ts","./src/agent/cua/pw-codegen/pw-pause/types.ts","./src/agent/cua/pw-codegen/pw-pause/utils.ts","./src/agent/diagnosis-agent/index.ts","./src/agent/diagnosis-agent/strict-mode-violation.ts","./src/agent/master/action-tool-calls.ts","./src/agent/master/element-annotation.ts","./src/agent/master/execute-browser-action.ts","./src/agent/master/execute-skill-action.ts","./src/agent/master/next-action.ts","./src/agent/master/planner.ts","./src/agent/master/run.ts","./src/agent/master/scroller.ts","./src/agent/master/with-hints.ts","./src/agent/master/browser-tests/cua.spec.ts","./src/agent/master/browser-tests/fixtures.ts","./src/agent/master/browser-tests/index.spec.ts","./src/agent/master/browser-tests/skills.spec.ts","./src/agent/master/icon-descriptor/index.ts","./src/agent/master/icon-descriptor/normalize-svg.ts","./src/agent/planner/run-time-planner.ts","./src/agent/planner/run.ts","./src/artifacts/index.ts","./src/artifacts/utils.ts","./src/auth/cli-auth.ts","./src/auth/index.ts","./src/auth/token-store.ts","./src/bin/environments.ts","./src/bin/index.ts","./src/bin/setup.ts","./src/bin/logger/index.ts","./src/bin/utils/context.ts","./src/bin/utils/index.ts","./src/bin/utils/fs/index.ts","./src/bin/utils/platform/web/index.ts","./src/bin/utils/platform/web/test-files/ts-path-import-validate.ts","./src/bin/utils/scenarios/index.ts","./src/browser-injected-scripts/annotate-elements.spec.ts","./src/constants/index.ts","./src/dashboard/client.ts","./src/dashboard/index.ts","./src/dashboard/totp.ts","./src/dashboard/types.ts","./src/errors/index.ts","./src/evals/append-create-test-agent.evals.ts","./src/evals/fetch-pom-skills-agent.evals.ts","./src/evals/master-agent.evals.ts","./src/evals/type.ts","./src/evals/update-scenario-agent.evals.ts","./src/file/client.ts","./src/file/server.ts","./src/file-info/index.ts","./src/file-info/adapters/file-system/index.ts","./src/file-info/adapters/file-system/reader.ts","./src/file-info/adapters/github/index.ts","./src/file-info/adapters/github/reader.ts","./src/human-in-the-loop/cli.ts","./src/human-in-the-loop/index.ts","./src/human-in-the-loop/ipc.ts","./src/page/index.ts","./src/prompts/lib/ts-transformer.ts","./src/recorder/env-variables.ts","./src/recorder/index.ts","./src/recorder/request.ts","./src/recorder/temp-files.ts","./src/recorder/upload.ts","./src/recorder/validation.ts","./src/test-build/index.ts","./src/tools/diagnosis-fetcher.ts","./src/tools/index.ts","./src/tools/list-environments.ts","./src/tools/run-test.ts","./src/tools/test-gen-browser.ts","./src/tools/commit-and-create-pr/index.ts","./src/tools/definitions/commit-and-create-pr.ts","./src/tools/definitions/delete-file.ts","./src/tools/definitions/download-build.ts","./src/tools/definitions/fetch-video-analysis.ts","./src/tools/definitions/grep.ts","./src/tools/definitions/list-tests-and-projects.ts","./src/tools/definitions/merge-conflicts.ts","./src/tools/definitions/run-test.ts","./src/tools/definitions/str_replace_editor.ts","./src/tools/definitions/test-gen-browser.ts","./src/tools/definitions/upgrade-packages.ts","./src/tools/definitions/utils.ts","./src/tools/delete-file/index.ts","./src/tools/download-build/index.ts","./src/tools/executor/index.ts","./src/tools/executor/utils/checkpoint.ts","./src/tools/executor/utils/git.ts","./src/tools/executor/utils/index.ts","./src/tools/executor/utils/pr-description.ts","./src/tools/fetch-
|
|
1
|
+
{"root":["./src/index.ts","./src/logger.ts","./src/actions/assert.ts","./src/actions/click.ts","./src/actions/done.ts","./src/actions/fill.ts","./src/actions/goto.ts","./src/actions/hover.ts","./src/actions/index.ts","./src/actions/next-task.ts","./src/actions/press.ts","./src/actions/skill.ts","./src/actions/text-content.ts","./src/actions/constants/index.ts","./src/actions/utils/index.ts","./src/agent/base/index.ts","./src/agent/browsing/index.ts","./src/agent/browsing/run.ts","./src/agent/browsing/utils.ts","./src/agent/chat/agent-loop.ts","./src/agent/chat/exports.ts","./src/agent/chat/filesystem-cache.ts","./src/agent/chat/index.ts","./src/agent/chat/models.ts","./src/agent/chat/state.ts","./src/agent/chat/types.ts","./src/agent/chat/utils.ts","./src/agent/chat/prompt/index.ts","./src/agent/chat/prompt/pw-utils-docs.ts","./src/agent/chat/prompt/repo.ts","./src/agent/chat/utils/tool-calls.ts","./src/agent/code-review/prompt.ts","./src/agent/codegen/create-test-block.ts","./src/agent/codegen/fix-ts-errors.ts","./src/agent/codegen/lexical-scoped-vars.ts","./src/agent/codegen/skills-retriever.ts","./src/agent/codegen/test-update-feedback.ts","./src/agent/codegen/types.ts","./src/agent/codegen/update-flow.ts","./src/agent/codegen/use-skill.ts","./src/agent/codegen/utils.ts","./src/agent/cua/computer.ts","./src/agent/cua/index.ts","./src/agent/cua/model.ts","./src/agent/cua/pw-codegen/element-from-point.ts","./src/agent/cua/pw-codegen/types.ts","./src/agent/cua/pw-codegen/pw-pause/for-recorder.ts","./src/agent/cua/pw-codegen/pw-pause/index.ts","./src/agent/cua/pw-codegen/pw-pause/ipc.ts","./src/agent/cua/pw-codegen/pw-pause/patch.ts","./src/agent/cua/pw-codegen/pw-pause/types.ts","./src/agent/cua/pw-codegen/pw-pause/utils.ts","./src/agent/diagnosis-agent/index.ts","./src/agent/diagnosis-agent/strict-mode-violation.ts","./src/agent/master/action-tool-calls.ts","./src/agent/master/element-annotation.ts","./src/agent/master/execute-browser-action.ts","./src/agent/master/execute-skill-action.ts","./src/agent/master/next-action.ts","./src/agent/master/planner.ts","./src/agent/master/run.ts","./src/agent/master/scroller.ts","./src/agent/master/with-hints.ts","./src/agent/master/browser-tests/cua.spec.ts","./src/agent/master/browser-tests/fixtures.ts","./src/agent/master/browser-tests/index.spec.ts","./src/agent/master/browser-tests/skills.spec.ts","./src/agent/master/icon-descriptor/index.ts","./src/agent/master/icon-descriptor/normalize-svg.ts","./src/agent/planner/run-time-planner.ts","./src/agent/planner/run.ts","./src/artifacts/index.ts","./src/artifacts/utils.ts","./src/auth/cli-auth.ts","./src/auth/index.ts","./src/auth/token-store.ts","./src/bin/environments.ts","./src/bin/index.ts","./src/bin/setup.ts","./src/bin/logger/index.ts","./src/bin/utils/context.ts","./src/bin/utils/index.ts","./src/bin/utils/fs/index.ts","./src/bin/utils/platform/web/index.ts","./src/bin/utils/platform/web/test-files/ts-path-import-validate.ts","./src/bin/utils/scenarios/index.ts","./src/browser-injected-scripts/annotate-elements.spec.ts","./src/constants/index.ts","./src/dashboard/client.ts","./src/dashboard/index.ts","./src/dashboard/totp.ts","./src/dashboard/types.ts","./src/errors/index.ts","./src/evals/append-create-test-agent.evals.ts","./src/evals/fetch-pom-skills-agent.evals.ts","./src/evals/master-agent.evals.ts","./src/evals/type.ts","./src/evals/update-scenario-agent.evals.ts","./src/file/client.ts","./src/file/server.ts","./src/file-info/index.ts","./src/file-info/adapters/file-system/index.ts","./src/file-info/adapters/file-system/reader.ts","./src/file-info/adapters/github/index.ts","./src/file-info/adapters/github/reader.ts","./src/human-in-the-loop/cli.ts","./src/human-in-the-loop/index.ts","./src/human-in-the-loop/ipc.ts","./src/page/index.ts","./src/prompts/lib/ts-transformer.ts","./src/recorder/env-variables.ts","./src/recorder/index.ts","./src/recorder/request.ts","./src/recorder/temp-files.ts","./src/recorder/upload.ts","./src/recorder/validation.ts","./src/test-build/index.ts","./src/tools/diagnosis-fetcher.ts","./src/tools/index.ts","./src/tools/list-environments.ts","./src/tools/run-test.ts","./src/tools/test-gen-browser.ts","./src/tools/commit-and-create-pr/index.ts","./src/tools/definitions/commit-and-create-pr.ts","./src/tools/definitions/delete-file.ts","./src/tools/definitions/download-build.ts","./src/tools/definitions/fetch-video-analysis.ts","./src/tools/definitions/grep.ts","./src/tools/definitions/list-tests-and-projects.ts","./src/tools/definitions/merge-conflicts.ts","./src/tools/definitions/rename-file.ts","./src/tools/definitions/run-test.ts","./src/tools/definitions/str_replace_editor.ts","./src/tools/definitions/test-gen-browser.ts","./src/tools/definitions/upgrade-packages.ts","./src/tools/definitions/utils.ts","./src/tools/delete-file/index.ts","./src/tools/download-build/index.ts","./src/tools/executor/index.ts","./src/tools/executor/utils/checkpoint.ts","./src/tools/executor/utils/git.ts","./src/tools/executor/utils/index.ts","./src/tools/executor/utils/pr-description.ts","./src/tools/fetch-file/index.ts","./src/tools/fetch-last-successful-test-run/index.ts","./src/tools/fetch-video-analysis/index.ts","./src/tools/fetch-video-analysis/local-ffmpeg-client.ts","./src/tools/fetch-video-analysis/open-ai.ts","./src/tools/fetch-video-analysis/utils.ts","./src/tools/fetch-video-analysis/video-analysis.ts","./src/tools/file-operations/create.ts","./src/tools/file-operations/index.ts","./src/tools/file-operations/insert.ts","./src/tools/file-operations/replace.ts","./src/tools/file-operations/shared/git-helper.ts","./src/tools/file-operations/shared/helpers.ts","./src/tools/file-operations/view/index.ts","./src/tools/grep/index.ts","./src/tools/grep/types.ts","./src/tools/grep/ripgrep/index.ts","./src/tools/issues/create-issue.ts","./src/tools/issues/index.ts","./src/tools/issues/list-issues.ts","./src/tools/issues/metadata-schema.ts","./src/tools/issues/update-issue.ts","./src/tools/issues/utils.ts","./src/tools/list-tests-and-projects/index.ts","./src/tools/merge-conflicts/index.ts","./src/tools/rename-file/index.ts","./src/tools/test-run-fetcher/index.ts","./src/tools/test-run-fetcher/types.ts","./src/tools/trace-dot-zip/index.ts","./src/tools/trace-dot-zip/types.ts","./src/tools/trace-dot-zip/utils/console-trace.ts","./src/tools/trace-dot-zip/utils/extract-zip.ts","./src/tools/trace-dot-zip/utils/network-trace.ts","./src/tools/triage-summary/index.ts","./src/tools/triage-summary/types.ts","./src/tools/triage-summary/utils.ts","./src/tools/upgrade-packages/index.ts","./src/tools/upgrade-packages/utils.ts","./src/tools/utils/queue.ts","./src/tools/view-failed-test-run-report/index.ts","./src/trace-utils/index.ts","./src/types/handlebars.d.ts","./src/types/index.ts","./src/utils/SQSClient.ts","./src/utils/dedup-image-fs.ts","./src/utils/dedup-image.ts","./src/utils/env.ts","./src/utils/exec.ts","./src/utils/file.ts","./src/utils/html.ts","./src/utils/index.ts","./src/utils/json.ts","./src/utils/model.ts","./src/utils/playwright-report-parser.ts","./src/utils/repo-tree.ts","./src/utils/slug.ts","./src/utils/string.ts","./src/utils/stripAnsi.ts"],"version":"5.8.3"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/fetch-image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA8B,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,gBAAgB;;;;;;EAEpB,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAuDjE,CAAC"}
|