@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.
Files changed (150) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/agent/base/index.d.ts +2 -2
  3. package/dist/agent/base/index.d.ts.map +1 -1
  4. package/dist/agent/base/index.js +38 -7
  5. package/dist/agent/browsing/run.d.ts +1 -1
  6. package/dist/agent/browsing/run.d.ts.map +1 -1
  7. package/dist/agent/browsing/utils.d.ts +0 -7
  8. package/dist/agent/browsing/utils.d.ts.map +1 -1
  9. package/dist/agent/browsing/utils.js +9 -59
  10. package/dist/agent/chat/exports.d.ts +1 -1
  11. package/dist/agent/chat/exports.d.ts.map +1 -1
  12. package/dist/agent/chat/exports.js +1 -2
  13. package/dist/agent/chat/index.d.ts.map +1 -1
  14. package/dist/agent/chat/index.js +5 -5
  15. package/dist/agent/chat/prompt/repo.d.ts.map +1 -1
  16. package/dist/agent/chat/prompt/repo.js +24 -0
  17. package/dist/agent/chat/state.d.ts +0 -1
  18. package/dist/agent/chat/state.d.ts.map +1 -1
  19. package/dist/agent/chat/state.js +0 -28
  20. package/dist/agent/master/browser-tests/cua.spec.js +3 -3
  21. package/dist/agent/master/browser-tests/index.spec.js +2 -111
  22. package/dist/agent/master/run.d.ts +0 -1
  23. package/dist/agent/master/run.d.ts.map +1 -1
  24. package/dist/agent/master/run.js +1 -3
  25. package/dist/bin/index.js +0 -12
  26. package/dist/dashboard/client.d.ts +2 -45
  27. package/dist/dashboard/client.d.ts.map +1 -1
  28. package/dist/dashboard/client.js +4 -217
  29. package/dist/dashboard/index.d.ts +2 -4
  30. package/dist/dashboard/index.d.ts.map +1 -1
  31. package/dist/dashboard/index.js +10 -13
  32. package/dist/dashboard/tool-response-from-sandbox.d.ts +1 -4
  33. package/dist/dashboard/tool-response-from-sandbox.d.ts.map +1 -1
  34. package/dist/dashboard/tool-response-from-sandbox.js +4 -38
  35. package/dist/dashboard/tool-response.d.ts +1 -5
  36. package/dist/dashboard/tool-response.d.ts.map +1 -1
  37. package/dist/dashboard/tool-response.js +5 -87
  38. package/dist/dashboard/types.d.ts +1 -8
  39. package/dist/dashboard/types.d.ts.map +1 -1
  40. package/dist/dashboard/types.js +4 -14
  41. package/dist/file/server.d.ts +1 -1
  42. package/dist/file/server.d.ts.map +1 -1
  43. package/dist/file-info/adapters/github/reader.d.ts.map +1 -1
  44. package/dist/file-info/adapters/github/reader.js +10 -2
  45. package/dist/index.d.ts +1 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +10 -32
  48. package/dist/recorder/index.d.ts.map +1 -1
  49. package/dist/recorder/index.js +3 -3
  50. package/dist/tools/api-client/index.d.ts +3 -0
  51. package/dist/tools/api-client/index.d.ts.map +1 -0
  52. package/dist/tools/api-client/index.js +73 -0
  53. package/dist/tools/create-pull-request/utils.d.ts +1 -1
  54. package/dist/tools/definitions/run-test.d.ts +2 -2
  55. package/dist/tools/definitions/run-test.d.ts.map +1 -1
  56. package/dist/tools/definitions/run-test.js +6 -5
  57. package/dist/tools/definitions/safe-bash.d.ts +1 -0
  58. package/dist/tools/definitions/safe-bash.d.ts.map +1 -1
  59. package/dist/tools/definitions/safe-bash.js +15 -6
  60. package/dist/tools/definitions/test-gen-browser.d.ts +2 -2
  61. package/dist/tools/definitions/test-gen-browser.d.ts.map +1 -1
  62. package/dist/tools/definitions/test-gen-browser.js +4 -5
  63. package/dist/tools/delete-file/index.d.ts.map +1 -1
  64. package/dist/tools/delete-file/index.js +4 -5
  65. package/dist/tools/executor/index.d.ts.map +1 -1
  66. package/dist/tools/executor/index.js +0 -4
  67. package/dist/tools/fetch-file/index.d.ts.map +1 -1
  68. package/dist/tools/fetch-file/index.js +3 -7
  69. package/dist/tools/file-operations/create.js +4 -4
  70. package/dist/tools/file-operations/insert.js +5 -5
  71. package/dist/tools/file-operations/replace.js +5 -5
  72. package/dist/tools/index.d.ts.map +1 -1
  73. package/dist/tools/index.js +0 -4
  74. package/dist/tools/issues-v1/utils.d.ts +1 -3
  75. package/dist/tools/issues-v1/utils.d.ts.map +1 -1
  76. package/dist/tools/issues-v1/utils.js +0 -16
  77. package/dist/tools/list-tests-and-projects/index.d.ts.map +1 -1
  78. package/dist/tools/list-tests-and-projects/index.js +1 -1
  79. package/dist/tools/rename-file/index.d.ts.map +1 -1
  80. package/dist/tools/rename-file/index.js +7 -4
  81. package/dist/tools/run-test.d.ts.map +1 -1
  82. package/dist/tools/run-test.js +33 -7
  83. package/dist/tools/safe-bash/index.d.ts.map +1 -1
  84. package/dist/tools/safe-bash/index.js +25 -10
  85. package/dist/tools/test-gen-browser.d.ts.map +1 -1
  86. package/dist/tools/test-gen-browser.js +27 -8
  87. package/dist/tools/utils/validators.d.ts +7 -0
  88. package/dist/tools/utils/validators.d.ts.map +1 -0
  89. package/dist/tools/utils/validators.js +93 -0
  90. package/dist/video-core/index.d.ts.map +1 -1
  91. package/dist/video-core/index.js +5 -0
  92. package/package.json +10 -10
  93. package/tsconfig.tsbuildinfo +1 -1
  94. package/dist/agent/cua/computer.d.ts +0 -14
  95. package/dist/agent/cua/computer.d.ts.map +0 -1
  96. package/dist/agent/cua/computer.js +0 -191
  97. package/dist/agent/cua/index.d.ts +0 -22
  98. package/dist/agent/cua/index.d.ts.map +0 -1
  99. package/dist/agent/cua/index.js +0 -254
  100. package/dist/agent/cua/model.d.ts +0 -25
  101. package/dist/agent/cua/model.d.ts.map +0 -1
  102. package/dist/agent/cua/model.js +0 -66
  103. package/dist/agent/cua/pw-codegen/element-from-point.d.ts +0 -10
  104. package/dist/agent/cua/pw-codegen/element-from-point.d.ts.map +0 -1
  105. package/dist/agent/cua/pw-codegen/element-from-point.js +0 -135
  106. package/dist/agent/cua/pw-codegen/factory.d.ts +0 -15
  107. package/dist/agent/cua/pw-codegen/factory.d.ts.map +0 -1
  108. package/dist/agent/cua/pw-codegen/factory.js +0 -59
  109. package/dist/agent/cua/pw-codegen/index.d.ts +0 -7
  110. package/dist/agent/cua/pw-codegen/index.d.ts.map +0 -1
  111. package/dist/agent/cua/pw-codegen/index.js +0 -14
  112. package/dist/agent/cua/pw-codegen/pw-event-sink/index.d.ts +0 -43
  113. package/dist/agent/cua/pw-codegen/pw-event-sink/index.d.ts.map +0 -1
  114. package/dist/agent/cua/pw-codegen/pw-event-sink/index.js +0 -250
  115. package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.d.ts +0 -14
  116. package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.d.ts.map +0 -1
  117. package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.js +0 -88
  118. package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts +0 -17
  119. package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts.map +0 -1
  120. package/dist/agent/cua/pw-codegen/pw-pause/index.js +0 -117
  121. package/dist/agent/cua/pw-codegen/pw-pause/ipc.d.ts +0 -3
  122. package/dist/agent/cua/pw-codegen/pw-pause/ipc.d.ts.map +0 -1
  123. package/dist/agent/cua/pw-codegen/pw-pause/ipc.js +0 -13
  124. package/dist/agent/cua/pw-codegen/pw-pause/patch.d.ts +0 -24
  125. package/dist/agent/cua/pw-codegen/pw-pause/patch.d.ts.map +0 -1
  126. package/dist/agent/cua/pw-codegen/pw-pause/patch.js +0 -197
  127. package/dist/agent/cua/pw-codegen/pw-pause/types.d.ts +0 -14
  128. package/dist/agent/cua/pw-codegen/pw-pause/types.d.ts.map +0 -1
  129. package/dist/agent/cua/pw-codegen/pw-pause/types.js +0 -2
  130. package/dist/agent/cua/pw-codegen/pw-pause/utils.d.ts +0 -2
  131. package/dist/agent/cua/pw-codegen/pw-pause/utils.d.ts.map +0 -1
  132. package/dist/agent/cua/pw-codegen/pw-pause/utils.js +0 -6
  133. package/dist/agent/cua/pw-codegen/types.d.ts +0 -47
  134. package/dist/agent/cua/pw-codegen/types.d.ts.map +0 -1
  135. package/dist/agent/cua/pw-codegen/types.js +0 -2
  136. package/dist/agent/cua/pw-codegen/version.d.ts +0 -25
  137. package/dist/agent/cua/pw-codegen/version.d.ts.map +0 -1
  138. package/dist/agent/cua/pw-codegen/version.js +0 -86
  139. package/dist/bin/environments.d.ts +0 -6
  140. package/dist/bin/environments.d.ts.map +0 -1
  141. package/dist/bin/environments.js +0 -99
  142. package/dist/tools/definitions/upgrade-packages.d.ts +0 -14
  143. package/dist/tools/definitions/upgrade-packages.d.ts.map +0 -1
  144. package/dist/tools/definitions/upgrade-packages.js +0 -21
  145. package/dist/tools/upgrade-packages/index.d.ts +0 -3
  146. package/dist/tools/upgrade-packages/index.d.ts.map +0 -1
  147. package/dist/tools/upgrade-packages/index.js +0 -134
  148. package/dist/tools/upgrade-packages/utils.d.ts +0 -28
  149. package/dist/tools/upgrade-packages/utils.d.ts.map +0 -1
  150. 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)(test_run_1.Platform.WEB, repoPath);
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;AAS9E,eAAO,MAAM,cAAc,EAAE,IA+E5B,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 tscResult = await (0, web_1.runTypescriptCompiler)(repoPath);
72
- if (!tscResult.success) {
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, type checks are failing with errors:\n\n${tscResult.errors.join("\n")}`,
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,IAsIzB,CAAC"}
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"}
@@ -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, project } = input;
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 (!projects.includes(project)) {
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.buildUrl) {
113
+ if (input.envSlug) {
88
114
  envOverrides = {
89
115
  ...envOverrides,
90
- BUILD_URL: input.buildUrl,
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: input.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: [input.project],
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;AA2H9E,eAAO,MAAM,YAAY,EAAE,IA6E1B,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, tscResult, }) {
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 (tscResult) {
67
- if (!tscResult.success) {
68
- const errors = tscResult.errors;
69
- parts.push(`## tsc result: Errors\n\`\`\`\n${errors.join("\n")}\n\`\`\``);
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(`## tsc result: No errors`);
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 tscResult = await (0, web_1.runTypescriptCompiler)(repoPath);
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
- tscResult,
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":"AACA,OAAO,KAAK,EAGV,IAAI,EACL,MAAM,uCAAuC,CAAC;AA0B/C,eAAO,MAAM,4BAA4B,EAAE,IAsP1C,CAAC"}
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
- const { project } = input;
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 (!projects.includes(project)) {
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.buildUrl) {
118
+ if (input.envSlug) {
100
119
  envOverrides = {
101
120
  ...envOverrides,
102
- BUILD_URL: input.buildUrl,
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,7 @@
1
+ interface ValidationResult {
2
+ success: boolean;
3
+ errors: string[];
4
+ }
5
+ export declare function runValidators(repoDir: string, changedFiles: string[]): Promise<ValidationResult>;
6
+ export {};
7
+ //# sourceMappingURL=validators.d.ts.map
@@ -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":"AAAA,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;;;;;GAqIjB"}
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"}
@@ -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.4",
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.10.0",
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/llm": "^0.25.2",
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.4"
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",
@@ -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/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/factory.ts","./src/agent/cua/pw-codegen/index.ts","./src/agent/cua/pw-codegen/types.ts","./src/agent/cua/pw-codegen/version.ts","./src/agent/cua/pw-codegen/pw-event-sink/index.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/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/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/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/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/upgrade-packages.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/upgrade-packages/index.ts","./src/tools/upgrade-packages/utils.ts","./src/tools/utils/queue.ts","./src/tools/utils/validate-schema.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
+ {"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"}