@empiricalrun/test-gen 0.79.4 → 0.79.6
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 +20 -0
- package/dist/agent/base/index.d.ts +2 -2
- package/dist/agent/base/index.d.ts.map +1 -1
- package/dist/agent/base/index.js +38 -7
- package/dist/agent/browsing/run.d.ts +1 -1
- package/dist/agent/browsing/run.d.ts.map +1 -1
- package/dist/agent/browsing/utils.d.ts +0 -7
- package/dist/agent/browsing/utils.d.ts.map +1 -1
- package/dist/agent/browsing/utils.js +9 -59
- package/dist/agent/chat/exports.d.ts +1 -1
- package/dist/agent/chat/exports.d.ts.map +1 -1
- package/dist/agent/chat/exports.js +1 -2
- package/dist/agent/chat/index.d.ts.map +1 -1
- package/dist/agent/chat/index.js +5 -5
- package/dist/agent/chat/prompt/repo.d.ts.map +1 -1
- package/dist/agent/chat/prompt/repo.js +24 -0
- package/dist/agent/chat/state.d.ts +0 -1
- package/dist/agent/chat/state.d.ts.map +1 -1
- package/dist/agent/chat/state.js +0 -28
- package/dist/agent/master/browser-tests/cua.spec.js +3 -3
- package/dist/agent/master/browser-tests/index.spec.js +2 -111
- package/dist/agent/master/run.d.ts +0 -1
- package/dist/agent/master/run.d.ts.map +1 -1
- package/dist/agent/master/run.js +1 -3
- package/dist/bin/index.js +0 -12
- package/dist/dashboard/client.d.ts +2 -45
- package/dist/dashboard/client.d.ts.map +1 -1
- package/dist/dashboard/client.js +4 -217
- package/dist/dashboard/index.d.ts +2 -4
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +10 -13
- package/dist/dashboard/tool-response-from-sandbox.d.ts +1 -4
- package/dist/dashboard/tool-response-from-sandbox.d.ts.map +1 -1
- package/dist/dashboard/tool-response-from-sandbox.js +4 -38
- package/dist/dashboard/tool-response.d.ts +1 -5
- package/dist/dashboard/tool-response.d.ts.map +1 -1
- package/dist/dashboard/tool-response.js +5 -87
- package/dist/dashboard/types.d.ts +1 -8
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/dashboard/types.js +4 -14
- package/dist/file/server.d.ts +1 -1
- package/dist/file/server.d.ts.map +1 -1
- package/dist/file-info/adapters/github/reader.d.ts.map +1 -1
- package/dist/file-info/adapters/github/reader.js +10 -2
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -32
- package/dist/recorder/index.d.ts.map +1 -1
- package/dist/recorder/index.js +3 -3
- package/dist/tools/api-client/index.d.ts +3 -0
- package/dist/tools/api-client/index.d.ts.map +1 -0
- package/dist/tools/api-client/index.js +73 -0
- package/dist/tools/create-pull-request/utils.d.ts +1 -1
- package/dist/tools/definitions/run-test.d.ts +2 -2
- package/dist/tools/definitions/run-test.d.ts.map +1 -1
- package/dist/tools/definitions/run-test.js +6 -5
- package/dist/tools/definitions/safe-bash.d.ts +1 -0
- package/dist/tools/definitions/safe-bash.d.ts.map +1 -1
- package/dist/tools/definitions/safe-bash.js +15 -6
- package/dist/tools/definitions/test-gen-browser.d.ts +2 -2
- package/dist/tools/definitions/test-gen-browser.d.ts.map +1 -1
- package/dist/tools/definitions/test-gen-browser.js +4 -5
- package/dist/tools/delete-file/index.d.ts.map +1 -1
- package/dist/tools/delete-file/index.js +4 -5
- package/dist/tools/executor/index.d.ts.map +1 -1
- package/dist/tools/executor/index.js +0 -4
- package/dist/tools/fetch-file/index.d.ts.map +1 -1
- package/dist/tools/fetch-file/index.js +3 -7
- package/dist/tools/file-operations/create.js +4 -4
- package/dist/tools/file-operations/insert.js +5 -5
- package/dist/tools/file-operations/replace.js +5 -5
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -4
- package/dist/tools/issues-v1/utils.d.ts +1 -3
- package/dist/tools/issues-v1/utils.d.ts.map +1 -1
- package/dist/tools/issues-v1/utils.js +0 -16
- package/dist/tools/list-tests-and-projects/index.d.ts.map +1 -1
- package/dist/tools/list-tests-and-projects/index.js +1 -1
- package/dist/tools/rename-file/index.d.ts.map +1 -1
- package/dist/tools/rename-file/index.js +7 -4
- package/dist/tools/run-test.d.ts.map +1 -1
- package/dist/tools/run-test.js +33 -7
- package/dist/tools/safe-bash/index.d.ts.map +1 -1
- package/dist/tools/safe-bash/index.js +25 -10
- package/dist/tools/test-gen-browser.d.ts.map +1 -1
- package/dist/tools/test-gen-browser.js +27 -8
- package/dist/tools/utils/validators.d.ts +7 -0
- package/dist/tools/utils/validators.d.ts.map +1 -0
- package/dist/tools/utils/validators.js +93 -0
- package/dist/video-core/index.d.ts.map +1 -1
- package/dist/video-core/index.js +5 -0
- package/package.json +10 -10
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/agent/cua/computer.d.ts +0 -14
- package/dist/agent/cua/computer.d.ts.map +0 -1
- package/dist/agent/cua/computer.js +0 -191
- package/dist/agent/cua/index.d.ts +0 -22
- package/dist/agent/cua/index.d.ts.map +0 -1
- package/dist/agent/cua/index.js +0 -254
- package/dist/agent/cua/model.d.ts +0 -25
- package/dist/agent/cua/model.d.ts.map +0 -1
- package/dist/agent/cua/model.js +0 -66
- package/dist/agent/cua/pw-codegen/element-from-point.d.ts +0 -10
- package/dist/agent/cua/pw-codegen/element-from-point.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/element-from-point.js +0 -135
- package/dist/agent/cua/pw-codegen/factory.d.ts +0 -15
- package/dist/agent/cua/pw-codegen/factory.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/factory.js +0 -59
- package/dist/agent/cua/pw-codegen/index.d.ts +0 -7
- package/dist/agent/cua/pw-codegen/index.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/index.js +0 -14
- package/dist/agent/cua/pw-codegen/pw-event-sink/index.d.ts +0 -43
- package/dist/agent/cua/pw-codegen/pw-event-sink/index.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/pw-event-sink/index.js +0 -250
- package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.d.ts +0 -14
- package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.js +0 -88
- package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts +0 -17
- package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/pw-pause/index.js +0 -117
- package/dist/agent/cua/pw-codegen/pw-pause/ipc.d.ts +0 -3
- package/dist/agent/cua/pw-codegen/pw-pause/ipc.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/pw-pause/ipc.js +0 -13
- package/dist/agent/cua/pw-codegen/pw-pause/patch.d.ts +0 -24
- package/dist/agent/cua/pw-codegen/pw-pause/patch.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/pw-pause/patch.js +0 -197
- package/dist/agent/cua/pw-codegen/pw-pause/types.d.ts +0 -14
- package/dist/agent/cua/pw-codegen/pw-pause/types.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/pw-pause/types.js +0 -2
- package/dist/agent/cua/pw-codegen/pw-pause/utils.d.ts +0 -2
- package/dist/agent/cua/pw-codegen/pw-pause/utils.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/pw-pause/utils.js +0 -6
- package/dist/agent/cua/pw-codegen/types.d.ts +0 -47
- package/dist/agent/cua/pw-codegen/types.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/types.js +0 -2
- package/dist/agent/cua/pw-codegen/version.d.ts +0 -25
- package/dist/agent/cua/pw-codegen/version.d.ts.map +0 -1
- package/dist/agent/cua/pw-codegen/version.js +0 -86
- package/dist/bin/environments.d.ts +0 -6
- package/dist/bin/environments.d.ts.map +0 -1
- package/dist/bin/environments.js +0 -99
- package/dist/tools/definitions/upgrade-packages.d.ts +0 -14
- package/dist/tools/definitions/upgrade-packages.d.ts.map +0 -1
- package/dist/tools/definitions/upgrade-packages.js +0 -21
- package/dist/tools/upgrade-packages/index.d.ts +0 -3
- package/dist/tools/upgrade-packages/index.d.ts.map +0 -1
- package/dist/tools/upgrade-packages/index.js +0 -134
- package/dist/tools/upgrade-packages/utils.d.ts +0 -28
- package/dist/tools/upgrade-packages/utils.d.ts.map +0 -1
- package/dist/tools/upgrade-packages/utils.js +0 -152
|
@@ -37,7 +37,7 @@ function parseObjectString(objectString) {
|
|
|
37
37
|
exports.listProjectsTool = {
|
|
38
38
|
...list_tests_and_projects_1.listProjectsTool,
|
|
39
39
|
execute: async ({ repoPath }) => {
|
|
40
|
-
const projects = await (0, test_run_1.getProjectsFromPlaywrightConfig)(
|
|
40
|
+
const projects = await (0, test_run_1.getProjectsFromPlaywrightConfig)(repoPath);
|
|
41
41
|
return {
|
|
42
42
|
isError: false,
|
|
43
43
|
result: JSON.stringify(projects),
|
|
@@ -1 +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,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/rename-file/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,uCAAuC,CAAC;AAQ9E,eAAO,MAAM,cAAc,EAAE,IAkF5B,CAAC"}
|
|
@@ -7,9 +7,9 @@ exports.renameFileTool = void 0;
|
|
|
7
7
|
const child_process_1 = require("child_process");
|
|
8
8
|
const promises_1 = require("fs/promises");
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const web_1 = require("../../bin/utils/platform/web");
|
|
11
10
|
const rename_file_1 = require("../definitions/rename-file");
|
|
12
11
|
const helpers_1 = require("../file-operations/shared/helpers");
|
|
12
|
+
const validators_1 = require("../utils/validators");
|
|
13
13
|
exports.renameFileTool = {
|
|
14
14
|
...rename_file_1.renameFileTool,
|
|
15
15
|
execute: async ({ input, repoPath }) => {
|
|
@@ -68,10 +68,13 @@ exports.renameFileTool = {
|
|
|
68
68
|
}
|
|
69
69
|
stageFile(oldFilePath);
|
|
70
70
|
stageFile(newFilePath);
|
|
71
|
-
const
|
|
72
|
-
|
|
71
|
+
const validationResult = await (0, validators_1.runValidators)(repoPath, [
|
|
72
|
+
normalizedOldPath,
|
|
73
|
+
normalizedNewPath,
|
|
74
|
+
]);
|
|
75
|
+
if (!validationResult.success) {
|
|
73
76
|
return {
|
|
74
|
-
result: `File renamed from '${normalizedOldPath}' to '${normalizedNewPath}'. However,
|
|
77
|
+
result: `File renamed from '${normalizedOldPath}' to '${normalizedNewPath}'. However, validation is failing with errors:\n\n${validationResult.errors.join("\n")}`,
|
|
75
78
|
isError: false,
|
|
76
79
|
};
|
|
77
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-test.d.ts","sourceRoot":"","sources":["../../src/tools/run-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,IAAI,EAEL,MAAM,uCAAuC,CAAC;AA2C/C,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"run-test.d.ts","sourceRoot":"","sources":["../../src/tools/run-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,IAAI,EAEL,MAAM,uCAAuC,CAAC;AA2C/C,eAAO,MAAM,WAAW,EAAE,IAmKzB,CAAC"}
|
package/dist/tools/run-test.js
CHANGED
|
@@ -47,7 +47,8 @@ exports.runTestTool = {
|
|
|
47
47
|
const warnMsg = "R2 credentials not found: report artifacts will not be uploaded";
|
|
48
48
|
logger?.warn(warnMsg) || console.warn(warnMsg);
|
|
49
49
|
}
|
|
50
|
-
const { filePath
|
|
50
|
+
const { filePath } = input;
|
|
51
|
+
let { project } = input;
|
|
51
52
|
// Normalize the path to support both /repo/... and relative paths
|
|
52
53
|
const normalizedFilePath = (0, helpers_1.normalizePath)(filePath);
|
|
53
54
|
const absoluteFilePath = path_1.default.join(repoPath, normalizedFilePath);
|
|
@@ -63,8 +64,33 @@ exports.runTestTool = {
|
|
|
63
64
|
};
|
|
64
65
|
}
|
|
65
66
|
try {
|
|
66
|
-
const { projects } = await (0, test_run_1.listProjectsAndTests)(repoPath);
|
|
67
|
-
if (!
|
|
67
|
+
const { projects, projectsToTestCases } = await (0, test_run_1.listProjectsAndTests)(repoPath);
|
|
68
|
+
if (!project) {
|
|
69
|
+
// Auto-select project if the test file belongs to only one project
|
|
70
|
+
const matchingProjects = projects.filter((p) => projectsToTestCases[p]?.some((tc) => normalizedFilePath.endsWith(tc.filePath)));
|
|
71
|
+
if (matchingProjects.length === 1) {
|
|
72
|
+
project = matchingProjects[0];
|
|
73
|
+
logger?.info("Auto-selected project", { project }) ||
|
|
74
|
+
console.log("Auto-selected project:", project);
|
|
75
|
+
}
|
|
76
|
+
else if (matchingProjects.length === 0) {
|
|
77
|
+
const errorMsg = `Could not find any project containing the test file: ${normalizedFilePath}. Valid project names are: ${projects.join(", ")}`;
|
|
78
|
+
logger?.error("No matching project found", {
|
|
79
|
+
filePath: normalizedFilePath,
|
|
80
|
+
validProjects: projects,
|
|
81
|
+
}) || console.error("No matching project found:", normalizedFilePath);
|
|
82
|
+
return { isError: true, result: errorMsg };
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const errorMsg = `Multiple projects contain this test file: ${matchingProjects.join(", ")}. Please specify one using the 'project' parameter.`;
|
|
86
|
+
logger?.error("Multiple matching projects", {
|
|
87
|
+
filePath: normalizedFilePath,
|
|
88
|
+
matchingProjects,
|
|
89
|
+
}) || console.error("Multiple matching projects:", matchingProjects);
|
|
90
|
+
return { isError: true, result: errorMsg };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else if (!projects.includes(project)) {
|
|
68
94
|
const errorMsg = `Invalid project name: ${project}. Valid project names are: ${projects.join(", ")}`;
|
|
69
95
|
logger?.error("Invalid project name", {
|
|
70
96
|
project,
|
|
@@ -84,17 +110,17 @@ exports.runTestTool = {
|
|
|
84
110
|
result: `Error reading playwright config: ${error}`,
|
|
85
111
|
};
|
|
86
112
|
}
|
|
87
|
-
if (input.
|
|
113
|
+
if (input.envSlug) {
|
|
88
114
|
envOverrides = {
|
|
89
115
|
...envOverrides,
|
|
90
|
-
|
|
116
|
+
ENV_SLUG: input.envSlug,
|
|
91
117
|
};
|
|
92
118
|
}
|
|
93
119
|
try {
|
|
94
120
|
logger?.info("Starting test execution", {
|
|
95
121
|
testName: input.testName,
|
|
96
122
|
filePath: normalizedFilePath,
|
|
97
|
-
project
|
|
123
|
+
project,
|
|
98
124
|
suites: input.suites,
|
|
99
125
|
}) || console.log("Starting test execution:", input.testName);
|
|
100
126
|
const result = await (0, test_run_1.runSingleTest)({
|
|
@@ -102,7 +128,7 @@ exports.runTestTool = {
|
|
|
102
128
|
suites: input.suites,
|
|
103
129
|
filePath: normalizedFilePath,
|
|
104
130
|
repoDir: repoPath,
|
|
105
|
-
projects: [
|
|
131
|
+
projects: [project],
|
|
106
132
|
envOverrides,
|
|
107
133
|
stdout: logger?.createPrefixedStream?.("stdout"),
|
|
108
134
|
stderr: logger?.createPrefixedStream?.("stderr"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/safe-bash/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/safe-bash/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,uCAAuC,CAAC;AA0I9E,eAAO,MAAM,YAAY,EAAE,IAoF1B,CAAC"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.safeBashTool = void 0;
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
5
|
const util_1 = require("util");
|
|
6
|
-
const web_1 = require("../../bin/utils/platform/web");
|
|
7
6
|
const safe_bash_1 = require("../definitions/safe-bash");
|
|
7
|
+
const validators_1 = require("../utils/validators");
|
|
8
8
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
9
9
|
const DANGEROUS_PATTERNS = [
|
|
10
10
|
/git\s+checkout/i,
|
|
@@ -47,6 +47,19 @@ async function getGitStatus(cwd) {
|
|
|
47
47
|
return { staged: "Unable to get status", unstaged: "Unable to get status" };
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
function getChangedFilesFromGitStatus(gitStatus) {
|
|
51
|
+
const files = [];
|
|
52
|
+
for (const section of [gitStatus.staged, gitStatus.unstaged]) {
|
|
53
|
+
for (const line of section.split("\n")) {
|
|
54
|
+
// Format: "M\tfile.ts", "A\tfile.ts", "??\tfile.ts"
|
|
55
|
+
const match = line.match(/^[A-Z?]+\t(.+)$/);
|
|
56
|
+
if (match?.[1]) {
|
|
57
|
+
files.push(match[1]);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return files;
|
|
62
|
+
}
|
|
50
63
|
function containsDangerousPattern(script) {
|
|
51
64
|
for (const pattern of DANGEROUS_PATTERNS) {
|
|
52
65
|
if (pattern.test(script)) {
|
|
@@ -55,7 +68,7 @@ function containsDangerousPattern(script) {
|
|
|
55
68
|
}
|
|
56
69
|
return null;
|
|
57
70
|
}
|
|
58
|
-
function formatResult({ stdout, stderr, gitStatus,
|
|
71
|
+
function formatResult({ stdout, stderr, gitStatus, validationResult, }) {
|
|
59
72
|
const parts = [];
|
|
60
73
|
if (stdout.trim()) {
|
|
61
74
|
parts.push(`## stdout\n\`\`\`\n${stdout.trim()}\n\`\`\``);
|
|
@@ -63,13 +76,13 @@ function formatResult({ stdout, stderr, gitStatus, tscResult, }) {
|
|
|
63
76
|
if (stderr.trim()) {
|
|
64
77
|
parts.push(`## stderr\n\`\`\`\n${stderr.trim()}\n\`\`\``);
|
|
65
78
|
}
|
|
66
|
-
if (
|
|
67
|
-
if (!
|
|
68
|
-
const errors =
|
|
69
|
-
parts.push(`##
|
|
79
|
+
if (validationResult) {
|
|
80
|
+
if (!validationResult.success) {
|
|
81
|
+
const errors = validationResult.errors;
|
|
82
|
+
parts.push(`## Validation result: Errors\n\`\`\`\n${errors.join("\n")}\n\`\`\``);
|
|
70
83
|
}
|
|
71
84
|
else {
|
|
72
|
-
parts.push(`##
|
|
85
|
+
parts.push(`## Validation result: No errors`);
|
|
73
86
|
}
|
|
74
87
|
}
|
|
75
88
|
parts.push(`## Staged (will be committed)\n\`\`\`\n${gitStatus.staged}\n\`\`\``);
|
|
@@ -78,7 +91,7 @@ function formatResult({ stdout, stderr, gitStatus, tscResult, }) {
|
|
|
78
91
|
}
|
|
79
92
|
exports.safeBashTool = {
|
|
80
93
|
...safe_bash_1.safeBashTool,
|
|
81
|
-
execute: async ({ input, repoPath, logger }) => {
|
|
94
|
+
execute: async ({ input, repoPath, logger, environmentOverrides, }) => {
|
|
82
95
|
const { script, timeout = 60000 } = input;
|
|
83
96
|
const initialBranch = await getCurrentBranch(repoPath);
|
|
84
97
|
if (!initialBranch) {
|
|
@@ -101,6 +114,7 @@ exports.safeBashTool = {
|
|
|
101
114
|
cwd: repoPath,
|
|
102
115
|
timeout,
|
|
103
116
|
shell: "/bin/bash",
|
|
117
|
+
env: { ...process.env, ...environmentOverrides },
|
|
104
118
|
});
|
|
105
119
|
stdout = result.stdout;
|
|
106
120
|
stderr = result.stderr;
|
|
@@ -130,14 +144,15 @@ exports.safeBashTool = {
|
|
|
130
144
|
};
|
|
131
145
|
}
|
|
132
146
|
const gitStatus = await getGitStatus(repoPath);
|
|
133
|
-
const
|
|
147
|
+
const changedFiles = getChangedFilesFromGitStatus(gitStatus);
|
|
148
|
+
const validationResult = await (0, validators_1.runValidators)(repoPath, changedFiles);
|
|
134
149
|
return {
|
|
135
150
|
isError: false,
|
|
136
151
|
result: formatResult({
|
|
137
152
|
stdout,
|
|
138
153
|
stderr,
|
|
139
154
|
gitStatus,
|
|
140
|
-
|
|
155
|
+
validationResult,
|
|
141
156
|
}),
|
|
142
157
|
};
|
|
143
158
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-gen-browser.d.ts","sourceRoot":"","sources":["../../src/tools/test-gen-browser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-gen-browser.d.ts","sourceRoot":"","sources":["../../src/tools/test-gen-browser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAGV,IAAI,EACL,MAAM,uCAAuC,CAAC;AAkB/C,eAAO,MAAM,4BAA4B,EAAE,IA2Q1C,CAAC"}
|
|
@@ -4,14 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generateTestWithBrowserAgent = void 0;
|
|
7
|
+
const model_1 = require("@empiricalrun/cua/model");
|
|
8
|
+
const pw_codegen_1 = require("@empiricalrun/cua/pw-codegen");
|
|
9
|
+
const pw_pause_1 = require("@empiricalrun/cua/pw-codegen/pw-pause");
|
|
7
10
|
const test_run_1 = require("@empiricalrun/test-run");
|
|
8
11
|
const fs_1 = __importDefault(require("fs"));
|
|
9
12
|
const path_1 = __importDefault(require("path"));
|
|
10
13
|
const run_1 = require("../agent/browsing/run");
|
|
11
14
|
const utils_1 = require("../agent/browsing/utils");
|
|
12
|
-
const model_1 = require("../agent/cua/model");
|
|
13
|
-
const pw_codegen_1 = require("../agent/cua/pw-codegen");
|
|
14
|
-
const pw_pause_1 = require("../agent/cua/pw-codegen/pw-pause");
|
|
15
15
|
const utils_2 = require("../artifacts/utils");
|
|
16
16
|
const web_1 = require("../bin/utils/platform/web");
|
|
17
17
|
const scenarios_1 = require("../bin/utils/scenarios");
|
|
@@ -21,7 +21,7 @@ const helpers_1 = require("./file-operations/shared/helpers");
|
|
|
21
21
|
exports.generateTestWithBrowserAgent = {
|
|
22
22
|
...test_gen_browser_1.generateTestWithBrowserAgent,
|
|
23
23
|
execute: async ({ input, repoPath, trace, collectArtifacts, environmentOverrides = {}, chatSession, logger, }) => {
|
|
24
|
-
|
|
24
|
+
let { project } = input;
|
|
25
25
|
// Normalize the path to support both /repo/... and relative paths
|
|
26
26
|
const normalizedFilePath = (0, helpers_1.normalizePath)(input.filePath);
|
|
27
27
|
const absoluteFilePath = path_1.default.join(repoPath, normalizedFilePath);
|
|
@@ -32,8 +32,27 @@ exports.generateTestWithBrowserAgent = {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
try {
|
|
35
|
-
const { projects } = await (0, test_run_1.listProjectsAndTests)(repoPath);
|
|
36
|
-
if (!
|
|
35
|
+
const { projects, projectsToTestCases } = await (0, test_run_1.listProjectsAndTests)(repoPath);
|
|
36
|
+
if (!project) {
|
|
37
|
+
const matchingProjects = projects.filter((p) => projectsToTestCases[p]?.some((tc) => normalizedFilePath.endsWith(tc.filePath)));
|
|
38
|
+
if (matchingProjects.length === 1) {
|
|
39
|
+
project = matchingProjects[0];
|
|
40
|
+
logger.info("Auto-selected project", { project });
|
|
41
|
+
}
|
|
42
|
+
else if (matchingProjects.length === 0) {
|
|
43
|
+
return {
|
|
44
|
+
isError: true,
|
|
45
|
+
result: `Could not find any project containing the test file: ${normalizedFilePath}. Valid project names are: ${projects.join(", ")}`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return {
|
|
50
|
+
isError: true,
|
|
51
|
+
result: `Multiple projects contain this test file: ${matchingProjects.join(", ")}. Please specify one using the 'project' parameter.`,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else if (!projects.includes(project)) {
|
|
37
56
|
return {
|
|
38
57
|
isError: true,
|
|
39
58
|
result: `Invalid project name: ${project}. Valid project names are: ${projects.join(", ")}`,
|
|
@@ -96,10 +115,10 @@ exports.generateTestWithBrowserAgent = {
|
|
|
96
115
|
// Running browser agent in headed implies using page.pause method for codegen
|
|
97
116
|
RUN_PLAYWRIGHT_HEADED: "true",
|
|
98
117
|
};
|
|
99
|
-
if (input.
|
|
118
|
+
if (input.envSlug) {
|
|
100
119
|
envOverrides = {
|
|
101
120
|
...envOverrides,
|
|
102
|
-
|
|
121
|
+
ENV_SLUG: input.envSlug,
|
|
103
122
|
};
|
|
104
123
|
}
|
|
105
124
|
const testGenToken = (0, scenarios_1.buildTokenFromOptions)({ name: testName, file: normalizedFilePath }, { useComputerUseAgent: true });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/validators.ts"],"names":[],"mappings":"AAcA,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAgED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAgC3B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
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.runValidators = runValidators;
|
|
7
|
+
const environments_1 = require("@empiricalrun/shared-types/environments");
|
|
8
|
+
const owners_1 = require("@empiricalrun/shared-types/owners");
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const web_1 = require("../../bin/utils/platform/web");
|
|
13
|
+
function validateOwnersYaml(repoDir) {
|
|
14
|
+
const filePath = path_1.default.join(repoDir, owners_1.OWNERS_FILE_PATH);
|
|
15
|
+
if (!fs_1.default.existsSync(filePath)) {
|
|
16
|
+
return {
|
|
17
|
+
success: false,
|
|
18
|
+
errors: [`OWNERS.yaml file not found at ${owners_1.OWNERS_FILE_PATH}`],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const content = fs_1.default.readFileSync(filePath, "utf8");
|
|
22
|
+
let parsed;
|
|
23
|
+
try {
|
|
24
|
+
parsed = js_yaml_1.default.load(content);
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
return {
|
|
28
|
+
success: false,
|
|
29
|
+
errors: [`Failed to parse OWNERS.yaml: ${e?.message}`],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const result = (0, owners_1.parseOwnersConfig)(parsed);
|
|
33
|
+
if ("errors" in result) {
|
|
34
|
+
return {
|
|
35
|
+
success: false,
|
|
36
|
+
errors: result.errors,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return { success: true, errors: [] };
|
|
40
|
+
}
|
|
41
|
+
function validateEnvironmentsYaml(repoDir) {
|
|
42
|
+
const filePath = path_1.default.join(repoDir, environments_1.ENVIRONMENTS_FILE_PATH);
|
|
43
|
+
if (!fs_1.default.existsSync(filePath)) {
|
|
44
|
+
return {
|
|
45
|
+
success: false,
|
|
46
|
+
errors: [`ENVIRONMENTS.yaml file not found at ${environments_1.ENVIRONMENTS_FILE_PATH}`],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const content = fs_1.default.readFileSync(filePath, "utf8");
|
|
50
|
+
let parsed;
|
|
51
|
+
try {
|
|
52
|
+
parsed = js_yaml_1.default.load(content);
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
return {
|
|
56
|
+
success: false,
|
|
57
|
+
errors: [`Failed to parse ENVIRONMENTS.yaml: ${e?.message}`],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const result = (0, environments_1.parseEnvironmentsConfig)(parsed);
|
|
61
|
+
if ("errors" in result) {
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
errors: result.errors,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return { success: true, errors: [] };
|
|
68
|
+
}
|
|
69
|
+
async function runValidators(repoDir, changedFiles) {
|
|
70
|
+
const allErrors = [];
|
|
71
|
+
const tscResult = await (0, web_1.runTypescriptCompiler)(repoDir);
|
|
72
|
+
if (!tscResult.success) {
|
|
73
|
+
allErrors.push(...tscResult.errors);
|
|
74
|
+
}
|
|
75
|
+
const hasOwnersChange = changedFiles.some((f) => f === owners_1.OWNERS_FILE_PATH || f.endsWith("OWNERS.yaml"));
|
|
76
|
+
if (hasOwnersChange) {
|
|
77
|
+
const ownersResult = validateOwnersYaml(repoDir);
|
|
78
|
+
if (!ownersResult.success) {
|
|
79
|
+
allErrors.push(...ownersResult.errors);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const hasEnvironmentsChange = changedFiles.some((f) => f === environments_1.ENVIRONMENTS_FILE_PATH || f.endsWith("ENVIRONMENTS.yaml"));
|
|
83
|
+
if (hasEnvironmentsChange) {
|
|
84
|
+
const environmentsResult = validateEnvironmentsYaml(repoDir);
|
|
85
|
+
if (!environmentsResult.success) {
|
|
86
|
+
allErrors.push(...environmentsResult.errors);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
success: allErrors.length === 0,
|
|
91
|
+
errors: allErrors,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/video-core/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/video-core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,cAAc,EACd,KAAK,EACN,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AAgBnB,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,EACrC,GAAG,EACH,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,MAAM,GACP,EAAE,eAAe;;;;;GA0IjB"}
|
package/dist/video-core/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runVideoAnalysis = runVideoAnalysis;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
4
5
|
const videostil_1 = require("videostil");
|
|
5
6
|
const constants_1 = require("../constants");
|
|
6
7
|
const model_limits_1 = require("./model-limits");
|
|
@@ -98,6 +99,10 @@ async function runVideoAnalysis({ url, videoHash, params, workingDirectory, skip
|
|
|
98
99
|
await Promise.all(uploadPromises);
|
|
99
100
|
}
|
|
100
101
|
const usage = (0, utils_1.aggregateUsageFromMessages)(allMessages);
|
|
102
|
+
// Clean up local working directory (frames are already in memory / uploaded)
|
|
103
|
+
await node_fs_1.promises
|
|
104
|
+
.rm(workingDirectory, { recursive: true, force: true })
|
|
105
|
+
.catch(() => { });
|
|
101
106
|
return {
|
|
102
107
|
result,
|
|
103
108
|
error: finalError,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empiricalrun/test-gen",
|
|
3
|
-
"version": "0.79.
|
|
3
|
+
"version": "0.79.6",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -10,10 +10,6 @@
|
|
|
10
10
|
},
|
|
11
11
|
"main": "dist/index.js",
|
|
12
12
|
"exports": {
|
|
13
|
-
"./agent/master/run": {
|
|
14
|
-
"types": "./dist/agent/master/run.d.ts",
|
|
15
|
-
"default": "./dist/agent/master/run.js"
|
|
16
|
-
},
|
|
17
13
|
"./chat": {
|
|
18
14
|
"types": "./dist/agent/chat/exports.d.ts",
|
|
19
15
|
"default": "./dist/agent/chat/exports.js"
|
|
@@ -73,6 +69,7 @@
|
|
|
73
69
|
"dotenv": "^16.4.5",
|
|
74
70
|
"express": "^4.19.2",
|
|
75
71
|
"ignore": "^5.3.1",
|
|
72
|
+
"js-yaml": "^4.1.0",
|
|
76
73
|
"inquirer": "^12.4.2",
|
|
77
74
|
"istextorbinary": "^9.5.0",
|
|
78
75
|
"lodash.isequal": "^4.5.0",
|
|
@@ -80,7 +77,7 @@
|
|
|
80
77
|
"minimatch": "^10.0.1",
|
|
81
78
|
"nanoid": "^5.0.7",
|
|
82
79
|
"open": "^10.1.2",
|
|
83
|
-
"openai": "^6.
|
|
80
|
+
"openai": "^6.27.0",
|
|
84
81
|
"ora": "^8.1.0",
|
|
85
82
|
"picocolors": "^1.0.1",
|
|
86
83
|
"pixelmatch": "^6.0.0",
|
|
@@ -92,12 +89,15 @@
|
|
|
92
89
|
"typescript": "^5.3.3",
|
|
93
90
|
"zod": "^4.0.1",
|
|
94
91
|
"@empiricalrun/ast-parser": "^0.0.10",
|
|
95
|
-
"@empiricalrun/
|
|
92
|
+
"@empiricalrun/cua": "^0.3.0",
|
|
93
|
+
"@empiricalrun/dashboard-client": "^0.2.0",
|
|
94
|
+
"@empiricalrun/shared-types": "0.12.1",
|
|
95
|
+
"@empiricalrun/llm": "^0.26.0",
|
|
96
96
|
"@empiricalrun/r2-uploader": "^0.9.1",
|
|
97
97
|
"@empiricalrun/trace-utils": "^0.1.0",
|
|
98
98
|
"@empiricalrun/reporter": "^0.27.0",
|
|
99
99
|
"@empiricalrun/test-run": "^0.14.2",
|
|
100
|
-
"videostil": "0.3.
|
|
100
|
+
"videostil": "0.3.5"
|
|
101
101
|
},
|
|
102
102
|
"devDependencies": {
|
|
103
103
|
"@playwright/test": "1.57.0",
|
|
@@ -106,6 +106,7 @@
|
|
|
106
106
|
"@types/detect-port": "^1.3.5",
|
|
107
107
|
"@types/express": "^4.17.21",
|
|
108
108
|
"@types/js-levenshtein": "^1.1.3",
|
|
109
|
+
"@types/js-yaml": "^4.0.9",
|
|
109
110
|
"@types/lodash.isequal": "^4.5.8",
|
|
110
111
|
"@types/mime": "3.0.0",
|
|
111
112
|
"@types/node": "^24.3.0",
|
|
@@ -114,8 +115,7 @@
|
|
|
114
115
|
"js-levenshtein": "^1.1.6",
|
|
115
116
|
"playwright": "1.57.0",
|
|
116
117
|
"serve-handler": "^6.1.6",
|
|
117
|
-
"ts-patch": "^3.3.0"
|
|
118
|
-
"@empiricalrun/shared-types": "0.12.0"
|
|
118
|
+
"ts-patch": "^3.3.0"
|
|
119
119
|
},
|
|
120
120
|
"scripts": {
|
|
121
121
|
"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/text-content.ts","./src/actions/constants/index.ts","./src/actions/utils/index.ts","./src/agent/cli.ts","./src/agent/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/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/pw-utils-docs.ts","./src/agent/chat/prompt/repo.ts","./src/agent/chat/prompt/test-case-def.ts","./src/agent/chat/prompt/trace-utils-docs.ts","./src/agent/code-review/index.ts","./src/agent/code-review/types.ts","./src/agent/code-review/xml-parser.ts","./src/agent/code-review/executor/index.ts","./src/agent/
|
|
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/text-content.ts","./src/actions/constants/index.ts","./src/actions/utils/index.ts","./src/agent/cli.ts","./src/agent/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/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/pw-utils-docs.ts","./src/agent/chat/prompt/repo.ts","./src/agent/chat/prompt/test-case-def.ts","./src/agent/chat/prompt/trace-utils-docs.ts","./src/agent/code-review/index.ts","./src/agent/code-review/types.ts","./src/agent/code-review/xml-parser.ts","./src/agent/code-review/executor/index.ts","./src/agent/fast-triage/index.ts","./src/agent/master/action-tool-calls.ts","./src/agent/master/element-annotation.ts","./src/agent/master/execute-browser-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/planner/run-time-planner.ts","./src/agent/planner/run.ts","./src/agent/triage/index.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/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/tool-response-from-sandbox.ts","./src/dashboard/tool-response.ts","./src/dashboard/totp.ts","./src/dashboard/types.ts","./src/errors/index.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/generate-summary/frame-sampling.ts","./src/generate-summary/generate-error-stack-summary.ts","./src/generate-summary/generate-failed-step-screenshot-diff-summary.ts","./src/generate-summary/generate-grouped-summary.ts","./src/generate-summary/merge-summary.ts","./src/generate-summary/pick-videos-for-comparison.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/telemetry/index.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/analyse-video/index.ts","./src/tools/api-client/index.ts","./src/tools/create-pull-request/index.ts","./src/tools/create-pull-request/utils.ts","./src/tools/definitions/analyse-video.ts","./src/tools/definitions/delete-file.ts","./src/tools/definitions/download-build.ts","./src/tools/definitions/grep.ts","./src/tools/definitions/list-tests-and-projects.ts","./src/tools/definitions/merge-conflicts.ts","./src/tools/definitions/publish-markdown-report.ts","./src/tools/definitions/rename-file.ts","./src/tools/definitions/run-test.ts","./src/tools/definitions/safe-bash.ts","./src/tools/definitions/str_replace_editor.ts","./src/tools/definitions/test-gen-browser.ts","./src/tools/definitions/trace-dot-zip.ts","./src/tools/definitions/utils.ts","./src/tools/delete-file/index.ts","./src/tools/download-build/index.ts","./src/tools/executor/base.ts","./src/tools/executor/index.ts","./src/tools/executor/types.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-file/utils.ts","./src/tools/fetch-session-diff/index.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/helpers.ts","./src/tools/file-operations/view/index.ts","./src/tools/firecrawl-scrape/index.ts","./src/tools/grep/index.ts","./src/tools/grep/types.ts","./src/tools/grep/ripgrep/index.ts","./src/tools/issues-v1/index.ts","./src/tools/issues-v1/list-issues.ts","./src/tools/issues-v1/utils.ts","./src/tools/issues-v2/create-issue.ts","./src/tools/issues-v2/set-issue-description.ts","./src/tools/issues-v2/update-issue.ts","./src/tools/list-tests-and-projects/index.ts","./src/tools/merge-conflicts/index.ts","./src/tools/publish-markdown-report/index.ts","./src/tools/rename-file/index.ts","./src/tools/safe-bash/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-screenshots.ts","./src/tools/trace-dot-zip/utils/extract-steps.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/utils/queue.ts","./src/tools/utils/validate-schema.ts","./src/tools/utils/validators.ts","./src/types/handlebars.d.ts","./src/types/index.ts","./src/utils/SQSClient.ts","./src/utils/env.ts","./src/utils/exec.ts","./src/utils/file.ts","./src/utils/hash.ts","./src/utils/html.ts","./src/utils/index.ts","./src/utils/json.ts","./src/utils/model.ts","./src/utils/playwright-test-id.ts","./src/utils/repo-tree.ts","./src/utils/slug.ts","./src/utils/string.ts","./src/utils/stripAnsi.ts","./src/utils/url-validation.ts","./src/utils/dedup/dedup-image.ts","./src/utils/dedup/find-threshold.ts","./src/video-core/index.ts","./src/video-core/model-limits.ts","./src/video-core/storage-manager.ts","./src/video-core/types.ts","./src/video-core/utils.ts"],"version":"5.8.3"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ResponseComputerToolCall } from "openai/resources/responses/responses.mjs";
|
|
2
|
-
import type { Page } from "playwright";
|
|
3
|
-
import { BasePlaywrightCodegen } from "./pw-codegen/types";
|
|
4
|
-
type OpenAIComputerAction = ResponseComputerToolCall.Click | ResponseComputerToolCall.DoubleClick | ResponseComputerToolCall.Drag | ResponseComputerToolCall.Keypress | ResponseComputerToolCall.Move | ResponseComputerToolCall.Screenshot | ResponseComputerToolCall.Scroll | ResponseComputerToolCall.Type | ResponseComputerToolCall.Wait;
|
|
5
|
-
export declare function getScreenshot(page: Page): Promise<string>;
|
|
6
|
-
export declare function executeModelAction(page: Page, action: OpenAIComputerAction | {
|
|
7
|
-
type: "goto";
|
|
8
|
-
url: string;
|
|
9
|
-
}, codegen: BasePlaywrightCodegen): Promise<{
|
|
10
|
-
actionSummary: string;
|
|
11
|
-
actionCode: string;
|
|
12
|
-
}>;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=computer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../../../src/agent/cua/computer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,KAAK,oBAAoB,GACrB,wBAAwB,CAAC,KAAK,GAC9B,wBAAwB,CAAC,WAAW,GACpC,wBAAwB,CAAC,IAAI,GAC7B,wBAAwB,CAAC,QAAQ,GACjC,wBAAwB,CAAC,IAAI,GAC7B,wBAAwB,CAAC,UAAU,GACnC,wBAAwB,CAAC,MAAM,GAC/B,wBAAwB,CAAC,IAAI,GAC7B,wBAAwB,CAAC,IAAI,CAAC;AAElC,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,mBAO7C;AAgCD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC5D,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAoKD"}
|