@empiricalrun/test-gen 0.69.5 → 0.69.7
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 +19 -0
- package/dist/agent/chat/index.d.ts.map +1 -1
- package/dist/agent/chat/index.js +3 -1
- package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.d.ts.map +1 -1
- package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.js +11 -13
- package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts.map +1 -1
- package/dist/agent/cua/pw-codegen/pw-pause/index.js +2 -5
- package/dist/agent/cua/pw-codegen/pw-pause/utils.d.ts +2 -0
- package/dist/agent/cua/pw-codegen/pw-pause/utils.d.ts.map +1 -0
- package/dist/agent/cua/pw-codegen/pw-pause/utils.js +6 -0
- package/dist/artifacts/index.d.ts.map +1 -1
- package/dist/artifacts/index.js +2 -1
- package/dist/bin/index.js +82 -1
- package/dist/bin/utils/index.js +3 -3
- package/dist/test-build/index.d.ts +1 -2
- package/dist/test-build/index.d.ts.map +1 -1
- package/dist/test-build/index.js +2 -2
- package/dist/tool-call-service/utils.d.ts +1 -0
- package/dist/tool-call-service/utils.d.ts.map +1 -1
- package/dist/tool-call-service/utils.js +8 -1
- package/dist/tools/download-build.js +2 -2
- package/dist/tools/test-gen-browser.d.ts.map +1 -1
- package/dist/tools/test-gen-browser.js +5 -9
- package/package.json +3 -3
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @empiricalrun/test-gen
|
|
2
2
|
|
|
3
|
+
## 0.69.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- bca8c8b: fix: codegen timing issue
|
|
8
|
+
- 49a3382: feat: add commands for environments and download build
|
|
9
|
+
- Updated dependencies [16f3927]
|
|
10
|
+
- @empiricalrun/llm@0.19.3
|
|
11
|
+
|
|
12
|
+
## 0.69.6
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- c0c1a9a: fix: use gemini stable instead of preview
|
|
17
|
+
- d67ca35: feat: add fetch-chat-session command, handle artifacts with same name
|
|
18
|
+
- 9a923e2: chore: preview env resources are in ap-south-1
|
|
19
|
+
- Updated dependencies [c0c1a9a]
|
|
20
|
+
- @empiricalrun/llm@0.19.2
|
|
21
|
+
|
|
3
22
|
## 0.69.5
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/chat/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAyCpC,wBAAsB,yBAAyB,IAAI,OAAO,CACxD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB,CAwBA;AAED,wBAAsB,kBAAkB,CAAC,EACvC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GACrB,EAAE;IACD,aAAa,EAAE,mBAAmB,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/chat/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAyCpC,wBAAsB,yBAAyB,IAAI,OAAO,CACxD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB,CAwBA;AAED,wBAAsB,kBAAkB,CAAC,EACvC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GACrB,EAAE;IACD,aAAa,EAAE,mBAAmB,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C,iBAkIA;AAuBD,wBAAsB,wBAAwB,CAAC,EAC7C,aAAa,EACb,aAAa,GACd,EAAE;IACD,aAAa,EAAE,mBAAmB,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;CACvB,iBA6DA"}
|
package/dist/agent/chat/index.js
CHANGED
|
@@ -118,7 +118,9 @@ async function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialP
|
|
|
118
118
|
}
|
|
119
119
|
if (!stopCriteria(userPrompt)) {
|
|
120
120
|
const { text, attachments } = (0, utils_1.extractAttachments)(userPrompt);
|
|
121
|
-
const processed =
|
|
121
|
+
const processed = attachments.length > 0
|
|
122
|
+
? await chatModel.processAttachments(attachments)
|
|
123
|
+
: [];
|
|
122
124
|
chatModel.pushUserMessage(text, processed);
|
|
123
125
|
}
|
|
124
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-recorder.d.ts","sourceRoot":"","sources":["../../../../../src/agent/cua/pw-codegen/pw-pause/for-recorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"for-recorder.d.ts","sourceRoot":"","sources":["../../../../../src/agent/cua/pw-codegen/pw-pause/for-recorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,iCAAiC;IAO1C,OAAO,CAAC,eAAe;IANzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,iBAAiB,CAAqB;gBAGpC,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;YAKtD,QAAQ;IAWhB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrC,sBAAsB,CAAC,IAAI,EAAE,IAAI;CAyCxC"}
|
|
@@ -7,6 +7,7 @@ exports.PlaywrightPauseCodegenForRecorder = void 0;
|
|
|
7
7
|
const express_1 = __importDefault(require("express"));
|
|
8
8
|
const logger_1 = require("../../../../logger");
|
|
9
9
|
const ipc_1 = require("./ipc");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
10
11
|
class PlaywrightPauseCodegenForRecorder {
|
|
11
12
|
sourcesCallback;
|
|
12
13
|
port = 0;
|
|
@@ -45,29 +46,27 @@ class PlaywrightPauseCodegenForRecorder {
|
|
|
45
46
|
await this.startPlaywrightCodegen(page);
|
|
46
47
|
}
|
|
47
48
|
async startPlaywrightCodegen(page) {
|
|
48
|
-
//
|
|
49
|
-
/**
|
|
50
|
-
* x-pw-glass
|
|
51
|
-
* # inside shadow DOM (closed)
|
|
52
|
-
* |----> x-pw-overlay (controls)
|
|
53
|
-
* |----> x-pw-highlight (red highlight)
|
|
54
|
-
* |----> x-pw-tooltip
|
|
55
|
-
*/
|
|
56
|
-
const timerPromise = new Promise((resolve) => {
|
|
57
|
-
setTimeout(resolve, 1000);
|
|
58
|
-
});
|
|
49
|
+
// TODO: Merge this with the other page.pause oriented codegen
|
|
59
50
|
const pausePromise = page.pause();
|
|
60
|
-
await
|
|
51
|
+
await (0, utils_1.sleep)(5_000);
|
|
61
52
|
const evaluatePromise = page.evaluate(() => {
|
|
62
53
|
// @ts-ignore
|
|
63
54
|
console.log(window["__pw_recorderSetMode"]("recording"));
|
|
64
55
|
// Remove playwright's glass pane
|
|
56
|
+
/**
|
|
57
|
+
* x-pw-glass
|
|
58
|
+
* # inside shadow DOM (closed)
|
|
59
|
+
* |----> x-pw-overlay (controls)
|
|
60
|
+
* |----> x-pw-highlight (red highlight)
|
|
61
|
+
* |----> x-pw-tooltip
|
|
62
|
+
*/
|
|
65
63
|
const glassPane = document.querySelector("x-pw-glass");
|
|
66
64
|
if (glassPane) {
|
|
67
65
|
const styles = glassPane.getAttribute("style") || "";
|
|
68
66
|
glassPane.setAttribute("style", styles + "; display: none;");
|
|
69
67
|
}
|
|
70
68
|
});
|
|
69
|
+
await Promise.all([pausePromise, evaluatePromise]);
|
|
71
70
|
await page.addInitScript(() => {
|
|
72
71
|
let displayNoneSet = false;
|
|
73
72
|
function setDisplayNone() {
|
|
@@ -86,7 +85,6 @@ class PlaywrightPauseCodegenForRecorder {
|
|
|
86
85
|
setDisplayNone();
|
|
87
86
|
}, 100);
|
|
88
87
|
});
|
|
89
|
-
await Promise.all([pausePromise, evaluatePromise]);
|
|
90
88
|
}
|
|
91
89
|
}
|
|
92
90
|
exports.PlaywrightPauseCodegenForRecorder = PlaywrightPauseCodegenForRecorder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/agent/cua/pw-codegen/pw-pause/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAKjD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE9E,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,oBAyCvD;AAED,qBAAa,sBAAuB,YAAW,qBAAqB;IAClE,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,iBAAiB,CAAqB;;YAMhC,QAAQ;IAUhB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrC,sBAAsB,CAAC,IAAI,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/agent/cua/pw-codegen/pw-pause/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAKjD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE9E,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,oBAyCvD;AAED,qBAAa,sBAAuB,YAAW,qBAAqB;IAClE,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,iBAAiB,CAAqB;;YAMhC,QAAQ;IAUhB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrC,sBAAsB,CAAC,IAAI,EAAE,IAAI;IAqBjC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;CAU9C"}
|
|
@@ -9,6 +9,7 @@ const express_1 = __importDefault(require("express"));
|
|
|
9
9
|
const logger_1 = require("../../../../logger");
|
|
10
10
|
const ipc_1 = require("./ipc");
|
|
11
11
|
const patch_1 = require("./patch");
|
|
12
|
+
const utils_1 = require("./utils");
|
|
12
13
|
var patch_2 = require("./patch");
|
|
13
14
|
Object.defineProperty(exports, "preparePlaywrightForCodegen", { enumerable: true, get: function () { return patch_2.preparePlaywrightForCodegen; } });
|
|
14
15
|
Object.defineProperty(exports, "revertToOriginalPwCode", { enumerable: true, get: function () { return patch_2.revertToOriginalPwCode; } });
|
|
@@ -77,14 +78,10 @@ class PlaywrightPauseCodegen {
|
|
|
77
78
|
await this.startPlaywrightCodegen(page);
|
|
78
79
|
}
|
|
79
80
|
async startPlaywrightCodegen(page) {
|
|
80
|
-
// TODO: Glass pane needs to be removed on every page load
|
|
81
81
|
// We use bindings that Playwright exposes to the page
|
|
82
82
|
// Ref: https://github.com/microsoft/playwright/blob/e1c8e0f6b33923c95cc4b9416aefa6977b1d3c55/packages/playwright-core/src/server/recorder.ts#L191
|
|
83
|
-
const timerPromise = new Promise((resolve) => {
|
|
84
|
-
setTimeout(resolve, 1000);
|
|
85
|
-
});
|
|
86
83
|
const pausePromise = page.pause();
|
|
87
|
-
await
|
|
84
|
+
await (0, utils_1.sleep)(5_000);
|
|
88
85
|
const evaluatePromise = page.evaluate(() => {
|
|
89
86
|
// First, we start recording
|
|
90
87
|
// @ts-ignore
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/agent/cua/pw-codegen/pw-pause/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/artifacts/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EACR,aAAa,EAGd,MAAM,4BAA4B,CAAC;AAkBpC,wBAAgB,2BAA2B,uBAM1C;AA6HD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/artifacts/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,QAAQ,EACR,aAAa,EAGd,MAAM,4BAA4B,CAAC;AAkBpC,wBAAgB,2BAA2B,uBAM1C;AA6HD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,EAAE,CAAC,CA8DrB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKvC,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAelD,iBAAiB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;CAMtD"}
|
package/dist/artifacts/index.js
CHANGED
|
@@ -167,8 +167,9 @@ async function collectArtifacts(inputs, repoDir, toolCallId) {
|
|
|
167
167
|
try {
|
|
168
168
|
const dirs = { destinationDir, sourceDir: repoDir };
|
|
169
169
|
const dataArtifactsWithFileName = dataArtifacts.map((a) => {
|
|
170
|
+
const randomSuffix = Math.random().toString(36).substring(2, 15);
|
|
170
171
|
const fileExt = mime_1.default.getExtension(a.contentType);
|
|
171
|
-
const fileName = `${(0, slug_1.slugify)(a.name)}-${
|
|
172
|
+
const fileName = `${(0, slug_1.slugify)(a.name)}-${randomSuffix}.${fileExt}`;
|
|
172
173
|
return { ...a, fileName };
|
|
173
174
|
});
|
|
174
175
|
await Promise.all([
|
package/dist/bin/index.js
CHANGED
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
const llm_1 = require("@empiricalrun/llm");
|
|
8
8
|
const commander_1 = require("commander");
|
|
9
9
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
11
|
const run_1 = require("../agent/browsing/run");
|
|
11
12
|
const utils_1 = require("../agent/browsing/utils");
|
|
12
13
|
const chat_1 = require("../agent/chat");
|
|
@@ -19,6 +20,7 @@ const run_3 = require("../agent/planner/run");
|
|
|
19
20
|
const auth_1 = require("../auth");
|
|
20
21
|
const api_client_1 = require("../auth/api-client");
|
|
21
22
|
const recorder_1 = require("../recorder");
|
|
23
|
+
const validation_1 = require("../recorder/validation");
|
|
22
24
|
const reporter_1 = require("../reporter");
|
|
23
25
|
const session_1 = require("../session");
|
|
24
26
|
const test_build_1 = require("../test-build");
|
|
@@ -285,6 +287,63 @@ async function main() {
|
|
|
285
287
|
}
|
|
286
288
|
process.exit(0);
|
|
287
289
|
});
|
|
290
|
+
program
|
|
291
|
+
.command("environments")
|
|
292
|
+
.description("List environments and their latest builds")
|
|
293
|
+
.option("--repo-name <name>", "Repository name to fetch environments for")
|
|
294
|
+
.action(async (opts) => {
|
|
295
|
+
try {
|
|
296
|
+
let repoName;
|
|
297
|
+
if (opts.repoName) {
|
|
298
|
+
repoName = opts.repoName;
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
// Auto-detect repo name from current directory
|
|
302
|
+
repoName = await (0, validation_1.validatePackageJson)(process.cwd());
|
|
303
|
+
}
|
|
304
|
+
const response = await api_client_1.apiClient.request(`/api/environments/list?project_repo_name=${encodeURIComponent(repoName)}`);
|
|
305
|
+
if (!response.ok) {
|
|
306
|
+
console.log(await response.text());
|
|
307
|
+
console.error(`❌ Failed to fetch environments for repo ${repoName}:`, response.statusText);
|
|
308
|
+
process.exit(1);
|
|
309
|
+
}
|
|
310
|
+
const result = await response.json();
|
|
311
|
+
if (result.data.environments && result.data.environments.length > 0) {
|
|
312
|
+
result.data.environments.forEach((env) => {
|
|
313
|
+
console.log(` Environment: ${env.name}`);
|
|
314
|
+
if (env.latest_build) {
|
|
315
|
+
console.log(` Latest build: ${env.latest_build.url}`);
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
console.log(`No environments found for repository: ${repoName}`);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
catch (error) {
|
|
324
|
+
console.error("❌ Error fetching environments:", error.message);
|
|
325
|
+
process.exit(1);
|
|
326
|
+
}
|
|
327
|
+
process.exit(0);
|
|
328
|
+
});
|
|
329
|
+
program
|
|
330
|
+
.command("download-build")
|
|
331
|
+
.description("Download a build from a URL")
|
|
332
|
+
.requiredOption("--url <url>", "Build URL to download")
|
|
333
|
+
.action(async (opts) => {
|
|
334
|
+
try {
|
|
335
|
+
await (0, test_build_1.downloadBuild)({
|
|
336
|
+
buildUrl: opts.url,
|
|
337
|
+
repoPath: process.cwd(),
|
|
338
|
+
});
|
|
339
|
+
console.log("✅ Build downloaded successfully");
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
console.error("❌ Error downloading build:", error.message);
|
|
343
|
+
process.exit(1);
|
|
344
|
+
}
|
|
345
|
+
process.exit(0);
|
|
346
|
+
});
|
|
288
347
|
program
|
|
289
348
|
.command("chat-agent")
|
|
290
349
|
.description("Run the chat agent")
|
|
@@ -310,6 +369,29 @@ async function main() {
|
|
|
310
369
|
await (0, setup_1.runSetup)({ repoName: options.repoName });
|
|
311
370
|
process.exit(0);
|
|
312
371
|
});
|
|
372
|
+
program
|
|
373
|
+
.command("fetch-chat-state")
|
|
374
|
+
.description("Fetch chat session state from the dashboard")
|
|
375
|
+
.requiredOption("--id <id>", "Chat session ID")
|
|
376
|
+
.action(async (opts) => {
|
|
377
|
+
try {
|
|
378
|
+
const response = await api_client_1.apiClient.request(`/api/chat-sessions/${opts.id}`);
|
|
379
|
+
if (!response.ok) {
|
|
380
|
+
console.error("❌ Failed to fetch chat session:", response.statusText);
|
|
381
|
+
process.exit(1);
|
|
382
|
+
}
|
|
383
|
+
const responseData = await response.json();
|
|
384
|
+
const chatState = responseData.data.chat_session.chat_state;
|
|
385
|
+
const filename = `chat-session-${opts.id}.json`;
|
|
386
|
+
fs_1.default.writeFileSync(filename, JSON.stringify(chatState, null, 2));
|
|
387
|
+
console.log(`✅ Chat state saved to ${filename}`);
|
|
388
|
+
}
|
|
389
|
+
catch (error) {
|
|
390
|
+
console.error("❌ Error fetching chat session:", error.message);
|
|
391
|
+
process.exit(1);
|
|
392
|
+
}
|
|
393
|
+
process.exit(0);
|
|
394
|
+
});
|
|
313
395
|
program
|
|
314
396
|
.command("legacy")
|
|
315
397
|
.description("Run the legacy workflows")
|
|
@@ -338,7 +420,6 @@ async function main() {
|
|
|
338
420
|
await (0, test_build_1.downloadBuild)({
|
|
339
421
|
buildUrl: testGenConfig.build.url,
|
|
340
422
|
repoPath: process.cwd(),
|
|
341
|
-
apiKey: process.env.EMPIRICALRUN_API_KEY,
|
|
342
423
|
});
|
|
343
424
|
}
|
|
344
425
|
let agentUsed;
|
package/dist/bin/utils/index.js
CHANGED
|
@@ -14,9 +14,9 @@ exports.ARGS_TO_MODEL_MAP = {
|
|
|
14
14
|
"claude-4": "claude-sonnet-4-20250514",
|
|
15
15
|
"claude-sonnet-4": "claude-sonnet-4-20250514",
|
|
16
16
|
"claude-opus-4": "claude-opus-4-20250514",
|
|
17
|
-
|
|
18
|
-
"gemini-2.5
|
|
19
|
-
"gemini-2.5-pro
|
|
17
|
+
gemini: "gemini-2.5-pro",
|
|
18
|
+
"gemini-2.5": "gemini-2.5-pro",
|
|
19
|
+
"gemini-2.5-pro": "gemini-2.5-pro",
|
|
20
20
|
o3: "o3-2025-04-16",
|
|
21
21
|
"o3-2025-04-16": "o3-2025-04-16",
|
|
22
22
|
"o4-mini": "o4-mini-2025-04-16",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export declare function hasDownloadScript(repoPath: string): Promise<boolean>;
|
|
2
|
-
export declare function downloadBuild({ buildUrl, repoPath,
|
|
2
|
+
export declare function downloadBuild({ buildUrl, repoPath, }: {
|
|
3
3
|
buildUrl: string;
|
|
4
4
|
repoPath: string;
|
|
5
|
-
apiKey: string | undefined;
|
|
6
5
|
}): Promise<void>;
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-build/index.ts"],"names":[],"mappings":"AAgBA,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1E;AAED,wBAAsB,aAAa,CAAC,EAClC,QAAQ,EACR,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-build/index.ts"],"names":[],"mappings":"AAgBA,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1E;AAED,wBAAsB,aAAa,CAAC,EAClC,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB"}
|
package/dist/test-build/index.js
CHANGED
|
@@ -18,7 +18,7 @@ async function hasDownloadScript(repoPath) {
|
|
|
18
18
|
const packageJSON = await getPackageJSON(repoPath);
|
|
19
19
|
return !!packageJSON.scripts["download"];
|
|
20
20
|
}
|
|
21
|
-
async function downloadBuild({ buildUrl, repoPath,
|
|
21
|
+
async function downloadBuild({ buildUrl, repoPath, }) {
|
|
22
22
|
const logger = new logger_1.CustomLogger({ useReporter: false });
|
|
23
23
|
const packageJSON = await getPackageJSON(repoPath);
|
|
24
24
|
const buildDownloadScript = packageJSON.scripts["download"];
|
|
@@ -26,7 +26,7 @@ async function downloadBuild({ buildUrl, repoPath, apiKey, }) {
|
|
|
26
26
|
logger.log(`Downloading build from ${buildUrl}`);
|
|
27
27
|
await (0, exec_1.cmd)(`npm`, ["run", "download", buildUrl], {
|
|
28
28
|
cwd: repoPath,
|
|
29
|
-
envOverrides: { ...Object(process.env)
|
|
29
|
+
envOverrides: { ...Object(process.env) },
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PendingToolCall, ServicePayload, Tool } from "@empiricalrun/shared-types";
|
|
2
2
|
export declare function appendBranchNameToQueueUrl(queueUrl: string, branchName: string): string;
|
|
3
|
+
export declare function replaceRegionInUrl(url: string, newRegion: string): string;
|
|
3
4
|
export declare function getQueueUrl(toolCalls: PendingToolCall[], tools: Tool[]): string;
|
|
4
5
|
export declare function sendToolRequestToRemoteQueue(queueUrl: string, payload: ServicePayload): Promise<void>;
|
|
5
6
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tool-call-service/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,cAAc,EACd,IAAI,EACL,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,MAAM,CAOR;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tool-call-service/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,cAAc,EACd,IAAI,EACL,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,MAAM,CAOR;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOzE;AAgBD,wBAAgB,WAAW,CACzB,SAAS,EAAE,eAAe,EAAE,EAC5B,KAAK,EAAE,IAAI,EAAE,GACZ,MAAM,CAeR;AAED,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,iBAiBxB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.appendBranchNameToQueueUrl = appendBranchNameToQueueUrl;
|
|
4
|
+
exports.replaceRegionInUrl = replaceRegionInUrl;
|
|
4
5
|
exports.getQueueUrl = getQueueUrl;
|
|
5
6
|
exports.sendToolRequestToRemoteQueue = sendToolRequestToRemoteQueue;
|
|
6
7
|
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
@@ -12,12 +13,18 @@ function appendBranchNameToQueueUrl(queueUrl, branchName) {
|
|
|
12
13
|
const queueNameWithoutFifo = queueName?.replace(/\.fifo$/, "");
|
|
13
14
|
return `${parts.join("/")}/${queueNameWithoutFifo}-${suffix}.fifo`;
|
|
14
15
|
}
|
|
16
|
+
function replaceRegionInUrl(url, newRegion) {
|
|
17
|
+
const parsedUrl = new URL(url);
|
|
18
|
+
parsedUrl.hostname = parsedUrl.hostname.replace(/\.([a-z0-9-]+)\.amazonaws\.com$/, `.${newRegion}.amazonaws.com`);
|
|
19
|
+
return parsedUrl.toString();
|
|
20
|
+
}
|
|
15
21
|
function buildQueueUrlsForPreview(baseQueueUrl) {
|
|
16
22
|
const branch = process.env.VERCEL_GIT_COMMIT_REF;
|
|
17
23
|
if (!branch) {
|
|
18
24
|
throw new Error("VERCEL_GIT_COMMIT_REF is not set");
|
|
19
25
|
}
|
|
20
|
-
const
|
|
26
|
+
const updatedRegionForQueue = replaceRegionInUrl(baseQueueUrl, process.env.AWS_REGION);
|
|
27
|
+
const queueUrl = appendBranchNameToQueueUrl(updatedRegionForQueue, branch);
|
|
21
28
|
console.log("queueUrl for preview", queueUrl);
|
|
22
29
|
return queueUrl;
|
|
23
30
|
}
|
|
@@ -17,7 +17,7 @@ Environment details will include the build URL.`,
|
|
|
17
17
|
needsBrowser: false,
|
|
18
18
|
execute: async (params) => {
|
|
19
19
|
const { input } = params;
|
|
20
|
-
const { repoPath
|
|
20
|
+
const { repoPath } = params;
|
|
21
21
|
if (!(await (0, test_build_1.hasDownloadScript)(repoPath))) {
|
|
22
22
|
return {
|
|
23
23
|
isError: true,
|
|
@@ -27,7 +27,7 @@ You probably don't need to worry about this, since it means this repo does not h
|
|
|
27
27
|
}
|
|
28
28
|
const { buildUrl } = input;
|
|
29
29
|
try {
|
|
30
|
-
await (0, test_build_1.downloadBuild)({ buildUrl, repoPath
|
|
30
|
+
await (0, test_build_1.downloadBuild)({ buildUrl, repoPath });
|
|
31
31
|
return {
|
|
32
32
|
isError: false,
|
|
33
33
|
result: "Build downloaded successfully",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-gen-browser.d.ts","sourceRoot":"","sources":["../../src/tools/test-gen-browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAGL,MAAM,4BAA4B,CAAC;AAoGpC,eAAO,MAAM,4BAA4B,EAAE,
|
|
1
|
+
{"version":3,"file":"test-gen-browser.d.ts","sourceRoot":"","sources":["../../src/tools/test-gen-browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAGL,MAAM,4BAA4B,CAAC;AAoGpC,eAAO,MAAM,4BAA4B,EAAE,IA+L1C,CAAC"}
|
|
@@ -153,21 +153,17 @@ exports.generateTestWithBrowserAgent = {
|
|
|
153
153
|
catch (err) {
|
|
154
154
|
console.warn("[generateTestWithBrowserAgent] Error preparing playwright for codegen", err);
|
|
155
155
|
}
|
|
156
|
-
let envOverrides = {
|
|
156
|
+
let envOverrides = {
|
|
157
|
+
...environmentOverrides,
|
|
158
|
+
// Running browser agent in headed implies using page.pause method for codegen
|
|
159
|
+
RUN_PLAYWRIGHT_HEADED: "true",
|
|
160
|
+
};
|
|
157
161
|
if (input.buildUrl) {
|
|
158
162
|
envOverrides = {
|
|
159
163
|
...envOverrides,
|
|
160
164
|
BUILD_URL: input.buildUrl,
|
|
161
165
|
};
|
|
162
166
|
}
|
|
163
|
-
if (featureFlags.includes("headed_codegen_in_browser_agent")) {
|
|
164
|
-
// Running browser agent in headed implies using page.pause method for codegen
|
|
165
|
-
// which improves codegen quality when script injection fails (iframes, etc.)
|
|
166
|
-
envOverrides = {
|
|
167
|
-
...envOverrides,
|
|
168
|
-
RUN_PLAYWRIGHT_HEADED: "true",
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
167
|
const testGenToken = (0, scenarios_1.buildTokenFromOptions)({ name: testName, file: filePath, prompt: input.changeToMake }, { useComputerUseAgent: true });
|
|
172
168
|
console.log("[generateTestWithBrowserAgent] Validations passed, starting agent");
|
|
173
169
|
const agentResult = await (0, run_1.runBrowsingAgent)({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empiricalrun/test-gen",
|
|
3
|
-
"version": "0.69.
|
|
3
|
+
"version": "0.69.7",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"tsx": "^4.16.2",
|
|
65
65
|
"typescript": "^5.3.3",
|
|
66
66
|
"zod": "^3.23.8",
|
|
67
|
-
"@empiricalrun/llm": "^0.19.
|
|
67
|
+
"@empiricalrun/llm": "^0.19.3",
|
|
68
68
|
"@empiricalrun/r2-uploader": "^0.3.9",
|
|
69
69
|
"@empiricalrun/test-run": "^0.10.6"
|
|
70
70
|
},
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"playwright": "1.53.0",
|
|
83
83
|
"serve-handler": "^6.1.6",
|
|
84
84
|
"ts-patch": "^3.3.0",
|
|
85
|
-
"@empiricalrun/shared-types": "0.6.
|
|
85
|
+
"@empiricalrun/shared-types": "0.6.1"
|
|
86
86
|
},
|
|
87
87
|
"scripts": {
|
|
88
88
|
"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/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/codegen/create-test-block.ts","./src/agent/codegen/fix-ts-errors.ts","./src/agent/codegen/generate-code-apply-changes.ts","./src/agent/codegen/lexical-scoped-vars.ts","./src/agent/codegen/repo-edit.ts","./src/agent/codegen/run.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/diagnosis-agent/index.ts","./src/agent/diagnosis-agent/strict-mode-violation.ts","./src/agent/enrich-prompt/index.ts","./src/agent/enrich-prompt/utils.ts","./src/agent/infer-agent/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/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/api-client.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/errors/index.ts","./src/evals/add-scenario-agent.evals.ts","./src/evals/append-create-test-agent.evals.ts","./src/evals/fetch-pom-skills-agent.evals.ts","./src/evals/infer-master-or-code-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/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/glob.ts","./src/recorder/index.ts","./src/recorder/request.ts","./src/recorder/temp-files.ts","./src/recorder/upload.ts","./src/recorder/validation.ts","./src/reporter/index.ts","./src/reporter/lib.ts","./src/session/index.ts","./src/test-build/index.ts","./src/tool-call-service/index.ts","./src/tool-call-service/utils.ts","./src/tools/commit-and-create-pr.ts","./src/tools/diagnosis-fetcher.ts","./src/tools/download-build.ts","./src/tools/list-environments.ts","./src/tools/str_replace_editor.ts","./src/tools/test-gen-browser.ts","./src/tools/test-run.ts","./src/tools/grep/index.ts","./src/tools/grep/ripgrep/index.ts","./src/tools/grep/ripgrep/types.ts","./src/tools/test-run-fetcher/index.ts","./src/tools/test-run-fetcher/types.ts","./src/tools/upgrade-packages/index.ts","./src/tools/upgrade-packages/utils.ts","./src/tools/utils/index.ts","./src/types/handlebars.d.ts","./src/types/index.ts","./src/uploader/index.ts","./src/uploader/utils.ts","./src/utils/checkpoint.ts","./src/utils/env.ts","./src/utils/exec.ts","./src/utils/file-tree.ts","./src/utils/file.ts","./src/utils/git.ts","./src/utils/html.ts","./src/utils/index.ts","./src/utils/json.ts","./src/utils/repo-tree.ts","./src/utils/slug.ts","./src/utils/string.ts","./src/utils/stripAnsi.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/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/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/codegen/create-test-block.ts","./src/agent/codegen/fix-ts-errors.ts","./src/agent/codegen/generate-code-apply-changes.ts","./src/agent/codegen/lexical-scoped-vars.ts","./src/agent/codegen/repo-edit.ts","./src/agent/codegen/run.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/enrich-prompt/index.ts","./src/agent/enrich-prompt/utils.ts","./src/agent/infer-agent/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/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/api-client.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/errors/index.ts","./src/evals/add-scenario-agent.evals.ts","./src/evals/append-create-test-agent.evals.ts","./src/evals/fetch-pom-skills-agent.evals.ts","./src/evals/infer-master-or-code-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/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/glob.ts","./src/recorder/index.ts","./src/recorder/request.ts","./src/recorder/temp-files.ts","./src/recorder/upload.ts","./src/recorder/validation.ts","./src/reporter/index.ts","./src/reporter/lib.ts","./src/session/index.ts","./src/test-build/index.ts","./src/tool-call-service/index.ts","./src/tool-call-service/utils.ts","./src/tools/commit-and-create-pr.ts","./src/tools/diagnosis-fetcher.ts","./src/tools/download-build.ts","./src/tools/list-environments.ts","./src/tools/str_replace_editor.ts","./src/tools/test-gen-browser.ts","./src/tools/test-run.ts","./src/tools/grep/index.ts","./src/tools/grep/ripgrep/index.ts","./src/tools/grep/ripgrep/types.ts","./src/tools/test-run-fetcher/index.ts","./src/tools/test-run-fetcher/types.ts","./src/tools/upgrade-packages/index.ts","./src/tools/upgrade-packages/utils.ts","./src/tools/utils/index.ts","./src/types/handlebars.d.ts","./src/types/index.ts","./src/uploader/index.ts","./src/uploader/utils.ts","./src/utils/checkpoint.ts","./src/utils/env.ts","./src/utils/exec.ts","./src/utils/file-tree.ts","./src/utils/file.ts","./src/utils/git.ts","./src/utils/html.ts","./src/utils/index.ts","./src/utils/json.ts","./src/utils/repo-tree.ts","./src/utils/slug.ts","./src/utils/string.ts","./src/utils/stripAnsi.ts"],"version":"5.8.3"}
|