@empiricalrun/test-gen 0.67.0 → 0.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/agent/chat/exports.d.ts +8 -8
- package/dist/agent/chat/exports.d.ts.map +1 -1
- package/dist/agent/chat/exports.js +10 -7
- package/dist/agent/chat/index.d.ts.map +1 -1
- package/dist/agent/chat/index.js +5 -2
- package/dist/agent/chat/state.d.ts +4 -2
- package/dist/agent/chat/state.d.ts.map +1 -1
- package/dist/agent/chat/state.js +10 -2
- package/dist/agent/chat/utils.d.ts +5 -1
- package/dist/agent/chat/utils.d.ts.map +1 -1
- package/dist/agent/chat/utils.js +22 -0
- 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 +24 -3
- package/dist/agent/cua/pw-codegen/pw-pause/patch.d.ts.map +1 -1
- package/dist/agent/cua/pw-codegen/pw-pause/patch.js +4 -6
- package/dist/auth/api-client.d.ts +1 -2
- package/dist/auth/api-client.d.ts.map +1 -1
- package/dist/auth/api-client.js +15 -45
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -4
- package/dist/bin/index.js +104 -108
- package/dist/bin/setup.d.ts +4 -0
- package/dist/bin/setup.d.ts.map +1 -0
- package/dist/bin/setup.js +86 -0
- package/dist/bin/utils/index.d.ts +2 -7
- package/dist/bin/utils/index.d.ts.map +1 -1
- package/dist/bin/utils/index.js +1 -9
- package/dist/file/server.js +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +11 -0
- package/dist/recorder/env-variables.d.ts +2 -0
- package/dist/recorder/env-variables.d.ts.map +1 -0
- package/dist/recorder/env-variables.js +29 -0
- package/dist/recorder/index.d.ts.map +1 -1
- package/dist/recorder/index.js +25 -34
- package/dist/recorder/request.d.ts +2 -1
- package/dist/recorder/request.d.ts.map +1 -1
- package/dist/recorder/request.js +15 -21
- package/dist/recorder/temp-files.d.ts.map +1 -1
- package/dist/recorder/temp-files.js +5 -4
- package/dist/recorder/upload.d.ts +1 -0
- package/dist/recorder/upload.d.ts.map +1 -1
- package/dist/recorder/upload.js +23 -11
- package/dist/recorder/validation.d.ts +1 -1
- package/dist/recorder/validation.d.ts.map +1 -1
- package/dist/recorder/validation.js +9 -4
- package/package.json +6 -4
- package/tsconfig.tsbuildinfo +1 -1
package/dist/recorder/request.js
CHANGED
|
@@ -1,53 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sendToDashboardAsRequest = sendToDashboardAsRequest;
|
|
4
|
-
const
|
|
4
|
+
const api_client_1 = require("../auth/api-client");
|
|
5
5
|
const title = (name) => `Add a test: ${name}`;
|
|
6
6
|
function description(codegenResult, attachments) {
|
|
7
7
|
return [
|
|
8
|
-
`To add this test, refer to the following code that
|
|
8
|
+
`To add this test, refer to the following code and videos that were captured using playwright codegen. Make modifications that you need to make to convert this into a test case that sits well with other tests in this repository.`,
|
|
9
9
|
`Codegen result:`,
|
|
10
10
|
codegenResult,
|
|
11
|
-
`
|
|
12
|
-
...attachments,
|
|
11
|
+
...attachments.map((attachment) => `[[${attachment}]]`),
|
|
13
12
|
].join("\n\n");
|
|
14
13
|
}
|
|
15
|
-
async function sendToDashboardAsRequest({ testName, codegenResult, attachments, }) {
|
|
14
|
+
async function sendToDashboardAsRequest({ repoName, testName, codegenResult, attachments, }) {
|
|
16
15
|
return createRequest({
|
|
16
|
+
repoName,
|
|
17
17
|
title: title(testName),
|
|
18
18
|
description: description(codegenResult, attachments),
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
async function createRequest({ title, description, }) {
|
|
22
|
-
if (!DASHBOARD_DOMAIN) {
|
|
23
|
-
console.warn("DASHBOARD_DOMAIN not set, skipping request creation");
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (!process.env.EMPIRICALRUN_API_KEY) {
|
|
27
|
-
console.warn("EMPIRICALRUN_API_KEY not set, skipping request creation");
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
21
|
+
async function createRequest({ repoName, title, description, }) {
|
|
30
22
|
try {
|
|
23
|
+
// TODO: Fix the source and sourceIdentifier
|
|
31
24
|
const source = "cli";
|
|
32
25
|
const sourceIdentifier = "random-string";
|
|
33
|
-
const response = await
|
|
26
|
+
const response = await api_client_1.apiClient.request("/api/requests", {
|
|
34
27
|
method: "POST",
|
|
35
|
-
headers: {
|
|
36
|
-
"Content-Type": "application/json",
|
|
37
|
-
Authorization: `Bearer ${process.env.EMPIRICALRUN_API_KEY}`,
|
|
38
|
-
},
|
|
39
28
|
body: JSON.stringify({
|
|
40
29
|
source,
|
|
41
30
|
source_identifier: sourceIdentifier,
|
|
42
31
|
title,
|
|
43
32
|
description,
|
|
33
|
+
project_repo_name: repoName,
|
|
44
34
|
}),
|
|
45
35
|
});
|
|
46
36
|
if (!response.ok) {
|
|
47
|
-
|
|
37
|
+
const errorMessage = await response.text();
|
|
38
|
+
throw new Error(`Failed to create request: ${errorMessage}`);
|
|
48
39
|
}
|
|
49
40
|
const data = await response.json();
|
|
50
|
-
|
|
41
|
+
const dashboardDomain = process.env.DASHBOARD_DOMAIN || "https://dash.empirical.run";
|
|
42
|
+
const requestUrl = `${dashboardDomain}/${repoName}/requests/${data.data.request.id}`;
|
|
43
|
+
// console.log("Request created successfully:", data);
|
|
44
|
+
console.log(`View request: ${requestUrl}`);
|
|
51
45
|
}
|
|
52
46
|
catch (error) {
|
|
53
47
|
console.error("Failed to create request:", error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temp-files.d.ts","sourceRoot":"","sources":["../../src/recorder/temp-files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"temp-files.d.ts","sourceRoot":"","sources":["../../src/recorder/temp-files.ts"],"names":[],"mappings":"AAKA,wBAAsB,kBAAkB,kBAoBvC;AAED,wBAAsB,kBAAkB,kBAUvC"}
|
|
@@ -7,11 +7,12 @@ exports.createTempTestFile = createTempTestFile;
|
|
|
7
7
|
exports.deleteTempTestFile = deleteTempTestFile;
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const logger_1 = require("../logger");
|
|
10
11
|
async function createTempTestFile() {
|
|
11
12
|
const tempFilePath = path_1.default.join(process.cwd(), "tests", "temp-test.spec.ts");
|
|
12
13
|
// Check if the temp file already exists
|
|
13
14
|
if (fs_1.default.existsSync(tempFilePath)) {
|
|
14
|
-
|
|
15
|
+
logger_1.logger.warn("Temporary test file already exists. Skipping creation.");
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
18
|
// Create a basic test file
|
|
@@ -24,16 +25,16 @@ test('temp test', async ({ page }) => {
|
|
|
24
25
|
});
|
|
25
26
|
`;
|
|
26
27
|
fs_1.default.writeFileSync(tempFilePath, content);
|
|
27
|
-
|
|
28
|
+
logger_1.logger.debug("Temporary test file created:", tempFilePath);
|
|
28
29
|
}
|
|
29
30
|
async function deleteTempTestFile() {
|
|
30
31
|
const tempFilePath = path_1.default.join(process.cwd(), "tests", "temp-test.spec.ts");
|
|
31
32
|
// Check if the temp file exists
|
|
32
33
|
if (fs_1.default.existsSync(tempFilePath)) {
|
|
33
34
|
fs_1.default.unlinkSync(tempFilePath);
|
|
34
|
-
|
|
35
|
+
logger_1.logger.debug("Temporary test file deleted:", tempFilePath);
|
|
35
36
|
}
|
|
36
37
|
else {
|
|
37
|
-
|
|
38
|
+
logger_1.logger.warn("Temporary test file does not exist. Skipping deletion.");
|
|
38
39
|
}
|
|
39
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/recorder/upload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/recorder/upload.ts"],"names":[],"mappings":"AAcA,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBjE;AA4DD,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAc1B"}
|
package/dist/recorder/upload.js
CHANGED
|
@@ -3,16 +3,38 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.extractVideoAttachments = extractVideoAttachments;
|
|
6
7
|
exports.uploadVideosWithSpinner = uploadVideosWithSpinner;
|
|
7
8
|
const fs_1 = __importDefault(require("fs"));
|
|
8
9
|
const ora_1 = __importDefault(require("ora"));
|
|
9
10
|
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const utils_1 = require("../artifacts/utils");
|
|
12
|
+
const api_client_1 = require("../auth/api-client");
|
|
10
13
|
const slug_1 = require("../utils/slug");
|
|
11
14
|
const ASSETS_PRODUCTION_BUCKET = "empirical-assets-production";
|
|
12
15
|
const BUCKET_DOMAINS = {
|
|
13
16
|
"empirical-assets-staging": "assets-staging.empirical.run",
|
|
14
17
|
"empirical-assets-production": "assets.empirical.run",
|
|
15
18
|
};
|
|
19
|
+
function extractVideoAttachments(repoDir) {
|
|
20
|
+
try {
|
|
21
|
+
const summaryPath = path_1.default.join(repoDir, "summary.json");
|
|
22
|
+
if (!fs_1.default.existsSync(summaryPath)) {
|
|
23
|
+
console.log("summary.json not found");
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
const summaryContent = JSON.parse(fs_1.default.readFileSync(summaryPath, "utf-8"));
|
|
27
|
+
const attachments = (0, utils_1.extractAttachmentsFromPlaywrightJSONReport)(summaryContent, "temp test");
|
|
28
|
+
const videoPaths = attachments
|
|
29
|
+
.filter((attachment) => attachment.contentType === "video/webm")
|
|
30
|
+
.map((attachment) => attachment.path);
|
|
31
|
+
return videoPaths;
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.warn("Error processing summary.json:", error);
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
16
38
|
function buildVideoUrl(localPath, directory, bucket) {
|
|
17
39
|
const domain = BUCKET_DOMAINS[bucket];
|
|
18
40
|
const fileName = path_1.default.basename(localPath);
|
|
@@ -22,12 +44,6 @@ async function uploadVideos(videoPaths, testSlug) {
|
|
|
22
44
|
if (videoPaths.length === 0) {
|
|
23
45
|
return null;
|
|
24
46
|
}
|
|
25
|
-
const DASHBOARD_DOMAIN = process.env.DASHBOARD_DOMAIN || "https://dash.empirical.run";
|
|
26
|
-
const API_KEY = process.env.EMPIRICALRUN_API_KEY;
|
|
27
|
-
if (!API_KEY) {
|
|
28
|
-
console.warn("EMPIRICALRUN_API_KEY not set, skipping video upload");
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
47
|
const uploadDestinationDir = `recorder-uploads/${testSlug}`;
|
|
32
48
|
const bucket = ASSETS_PRODUCTION_BUCKET;
|
|
33
49
|
try {
|
|
@@ -42,11 +58,8 @@ async function uploadVideos(videoPaths, testSlug) {
|
|
|
42
58
|
formData.append("files", blob, fileName);
|
|
43
59
|
}
|
|
44
60
|
}
|
|
45
|
-
const response = await
|
|
61
|
+
const response = await api_client_1.apiClient.request("/api/upload", {
|
|
46
62
|
method: "POST",
|
|
47
|
-
headers: {
|
|
48
|
-
Authorization: `Bearer ${API_KEY}`,
|
|
49
|
-
},
|
|
50
63
|
body: formData,
|
|
51
64
|
});
|
|
52
65
|
if (!response.ok) {
|
|
@@ -66,7 +79,6 @@ async function uploadVideos(videoPaths, testSlug) {
|
|
|
66
79
|
}
|
|
67
80
|
}
|
|
68
81
|
async function uploadVideosWithSpinner(videoPaths, testName) {
|
|
69
|
-
videoPaths.forEach((videoPath) => console.log(videoPath));
|
|
70
82
|
const uploadSpinner = (0, ora_1.default)("Uploading video recordings...").start();
|
|
71
83
|
try {
|
|
72
84
|
const slugifiedTestName = `${(0, slug_1.slugify)(testName)}-${Math.random().toString(36).substring(2, 8)}`;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function
|
|
1
|
+
export declare function validatePackageJson(repoDir: string): Promise<any>;
|
|
2
2
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/recorder/validation.ts"],"names":[],"mappings":"AAGA,wBAAsB,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/recorder/validation.ts"],"names":[],"mappings":"AAGA,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,gBAyBxD"}
|
|
@@ -3,16 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.validatePackageJson = validatePackageJson;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
-
async function
|
|
10
|
-
// Check if package.json exists
|
|
9
|
+
async function validatePackageJson(repoDir) {
|
|
11
10
|
const packageJsonPath = path_1.default.join(repoDir, "package.json");
|
|
12
11
|
if (!fs_1.default.existsSync(packageJsonPath)) {
|
|
13
12
|
throw new Error("package.json not found in the repository");
|
|
14
13
|
}
|
|
15
|
-
// Check if playwright is installed
|
|
16
14
|
const packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath, "utf8"));
|
|
17
15
|
const hasPlaywright = (packageJson.dependencies &&
|
|
18
16
|
packageJson.dependencies["@playwright/test"]) ||
|
|
@@ -21,4 +19,11 @@ async function validate(repoDir) {
|
|
|
21
19
|
if (!hasPlaywright) {
|
|
22
20
|
throw new Error("Playwright is not installed. Please install @playwright/test");
|
|
23
21
|
}
|
|
22
|
+
const repoName = packageJson.name;
|
|
23
|
+
if (repoName && repoName.endsWith("-tests")) {
|
|
24
|
+
return repoName;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
throw new Error(`Invalid repo name in package.json: ${repoName}`);
|
|
28
|
+
}
|
|
24
29
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empiricalrun/test-gen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.69.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"@types/sanitize-html": "^2.11.0",
|
|
43
43
|
"async-retry": "^1.3.3",
|
|
44
44
|
"commander": "^12.1.0",
|
|
45
|
+
"console-log-level": "^1.4.1",
|
|
45
46
|
"detect-port": "^1.6.1",
|
|
46
47
|
"dotenv": "^16.4.5",
|
|
47
48
|
"eslint": "^8.57.0",
|
|
@@ -63,13 +64,14 @@
|
|
|
63
64
|
"tsx": "^4.16.2",
|
|
64
65
|
"typescript": "^5.3.3",
|
|
65
66
|
"zod": "^3.23.8",
|
|
66
|
-
"@empiricalrun/llm": "^0.
|
|
67
|
+
"@empiricalrun/llm": "^0.19.0",
|
|
67
68
|
"@empiricalrun/r2-uploader": "^0.3.9",
|
|
68
|
-
"@empiricalrun/test-run": "^0.10.
|
|
69
|
+
"@empiricalrun/test-run": "^0.10.4"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@playwright/test": "1.53.0",
|
|
72
73
|
"@types/async-retry": "^1.4.8",
|
|
74
|
+
"@types/console-log-level": "^1.4.5",
|
|
73
75
|
"@types/detect-port": "^1.3.5",
|
|
74
76
|
"@types/express": "^4.17.21",
|
|
75
77
|
"@types/js-levenshtein": "^1.1.3",
|
|
@@ -80,7 +82,7 @@
|
|
|
80
82
|
"playwright": "1.53.0",
|
|
81
83
|
"serve-handler": "^6.1.6",
|
|
82
84
|
"ts-patch": "^3.3.0",
|
|
83
|
-
"@empiricalrun/shared-types": "0.
|
|
85
|
+
"@empiricalrun/shared-types": "0.6.0"
|
|
84
86
|
},
|
|
85
87
|
"scripts": {
|
|
86
88
|
"dev": "tspc --build --watch",
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/index.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/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/display.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/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/display.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/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"}
|