@empiricalrun/test-gen 0.64.1 → 0.64.3
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 +17 -0
- package/dist/agent/chat/index.d.ts.map +1 -1
- package/dist/agent/chat/index.js +1 -0
- package/dist/agent/cua/computer.js +1 -1
- package/dist/tool-call-service/index.d.ts +3 -1
- package/dist/tool-call-service/index.d.ts.map +1 -1
- package/dist/tool-call-service/index.js +9 -3
- package/dist/tool-call-service/utils.d.ts +2 -2
- package/dist/tool-call-service/utils.d.ts.map +1 -1
- package/dist/tool-call-service/utils.js +9 -9
- package/dist/tools/commit-and-create-pr.d.ts.map +1 -1
- package/dist/tools/commit-and-create-pr.js +4 -13
- package/dist/tools/diagnosis-fetcher.d.ts.map +1 -1
- package/dist/tools/diagnosis-fetcher.js +3 -1
- package/dist/tools/download-build.d.ts.map +1 -1
- package/dist/tools/download-build.js +3 -1
- package/dist/tools/environment-crud.d.ts.map +1 -1
- package/dist/tools/grep/index.d.ts.map +1 -1
- package/dist/tools/str_replace_editor.d.ts.map +1 -1
- package/dist/tools/str_replace_editor.js +12 -4
- package/dist/tools/test-gen-browser.d.ts.map +1 -1
- package/dist/tools/test-gen-browser.js +2 -2
- package/dist/tools/test-run.d.ts.map +1 -1
- package/dist/tools/test-run.js +6 -3
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/json.d.ts +2 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +24 -0
- package/package.json +3 -3
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @empiricalrun/test-gen
|
|
2
2
|
|
|
3
|
+
## 0.64.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d8d624d: fix: pass mapped keys to codegen recordAction for proper code generation
|
|
8
|
+
- addd52e: feat: add JSON value truncation to prevent oversized tool responses
|
|
9
|
+
- f8a53b0: fix: PR description should not get concatenated across versions
|
|
10
|
+
|
|
11
|
+
## 0.64.2
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- f05aac2: feat: add environment overrides for projects in tool calls
|
|
16
|
+
- Updated dependencies [f05aac2]
|
|
17
|
+
- @empiricalrun/test-run@0.10.1
|
|
18
|
+
- @empiricalrun/llm@0.17.3
|
|
19
|
+
|
|
3
20
|
## 0.64.1
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/chat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAyChC,wBAAsB,kBAAkB,CAAC,EACvC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,EAAE;IACD,aAAa,EAAE,mBAAmB,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/chat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAyChC,wBAAsB,kBAAkB,CAAC,EACvC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,EAAE;IACD,aAAa,EAAE,mBAAmB,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,iBAwHA;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
|
@@ -111,6 +111,7 @@ async function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialP
|
|
|
111
111
|
apiKey: process.env.EMPIRICALRUN_API_KEY,
|
|
112
112
|
trace,
|
|
113
113
|
featureFlags: [],
|
|
114
|
+
environmentOverrides: {},
|
|
114
115
|
});
|
|
115
116
|
const fileInfo = await (0, file_tree_1.getFileInfoFromFS)(process.cwd());
|
|
116
117
|
await (0, agent_loop_1.chatAgentLoop)({
|
|
@@ -155,10 +155,10 @@ async function executeModelAction(page, action, codegen) {
|
|
|
155
155
|
}
|
|
156
156
|
case "keypress": {
|
|
157
157
|
const { keys } = action;
|
|
158
|
-
await codegen.recordAction({ type: "keypress", keys });
|
|
159
158
|
const mappedKeys = keys.map((k) => {
|
|
160
159
|
return CUA_KEY_TO_PLAYWRIGHT_KEY[k.toLowerCase()] || k;
|
|
161
160
|
});
|
|
161
|
+
await codegen.recordAction({ type: "keypress", keys: mappedKeys });
|
|
162
162
|
const mappedKey = mappedKeys.join("+"); // ["CTRL", "A"] becomes ControlOrMeta+A
|
|
163
163
|
console.log(`Action: keypress for keys ${keys} -> '${mappedKey}'`);
|
|
164
164
|
await page.keyboard.press(mappedKey);
|
|
@@ -15,7 +15,8 @@ export declare class ToolCallService {
|
|
|
15
15
|
apiKey: string | undefined;
|
|
16
16
|
trace?: TraceClient;
|
|
17
17
|
featureFlags: string[];
|
|
18
|
-
|
|
18
|
+
environmentOverrides: Record<string, string>;
|
|
19
|
+
constructor({ chatSessionId, selectedModel, branchName, repoPath, apiKey, trace, featureFlags, environmentOverrides, }: {
|
|
19
20
|
chatSessionId: number | null;
|
|
20
21
|
selectedModel: SupportedChatModels;
|
|
21
22
|
branchName: string;
|
|
@@ -23,6 +24,7 @@ export declare class ToolCallService {
|
|
|
23
24
|
apiKey: string | undefined;
|
|
24
25
|
trace?: TraceClient;
|
|
25
26
|
featureFlags: string[];
|
|
27
|
+
environmentOverrides?: Record<string, string>;
|
|
26
28
|
});
|
|
27
29
|
sendToQueue(toolCalls: PendingToolCall[]): Promise<void>;
|
|
28
30
|
execute(toolCalls: PendingToolCall[]): Promise<ToolResult[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool-call-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,eAAe,EACf,mBAAmB,EACnB,UAAU,EACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiB,IAAI,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAiB9E,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,KAAK,aAAa,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B,CAAC;AAEF,qBAAa,eAAe;IAC1B,KAAK,EAAE,IAAI,EAAE,CAAM;IACnB,aAAa,EAAE,aAAa,CAAM;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool-call-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,eAAe,EACf,mBAAmB,EACnB,UAAU,EACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiB,IAAI,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAiB9E,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,KAAK,aAAa,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B,CAAC;AAEF,qBAAa,eAAe;IAC1B,KAAK,EAAE,IAAI,EAAE,CAAM;IACnB,aAAa,EAAE,aAAa,CAAM;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACjC,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACL,YAAY,EACZ,oBAAyB,GAC1B,EAAE;QACD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,EAAE,mBAAmB,CAAC;QACnC,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/C;IAmCK,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxD,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAuEnE"}
|
|
@@ -24,7 +24,8 @@ class ToolCallService {
|
|
|
24
24
|
apiKey;
|
|
25
25
|
trace;
|
|
26
26
|
featureFlags;
|
|
27
|
-
|
|
27
|
+
environmentOverrides;
|
|
28
|
+
constructor({ chatSessionId, selectedModel, branchName, repoPath, apiKey, trace, featureFlags, environmentOverrides = {}, }) {
|
|
28
29
|
this.chatSessionId = chatSessionId;
|
|
29
30
|
this.selectedModel = selectedModel;
|
|
30
31
|
this.branchName = branchName;
|
|
@@ -32,6 +33,7 @@ class ToolCallService {
|
|
|
32
33
|
this.repoPath = repoPath;
|
|
33
34
|
this.apiKey = apiKey;
|
|
34
35
|
this.featureFlags = featureFlags;
|
|
36
|
+
this.environmentOverrides = environmentOverrides;
|
|
35
37
|
this.tools = [
|
|
36
38
|
grep_1.grepTool,
|
|
37
39
|
test_run_1.runTestTool,
|
|
@@ -62,13 +64,16 @@ class ToolCallService {
|
|
|
62
64
|
if (!requestId) {
|
|
63
65
|
throw new Error("Could not find an id for the tool call.");
|
|
64
66
|
}
|
|
65
|
-
|
|
67
|
+
const queueUrl = (0, utils_1.getQueueUrl)(this.featureFlags);
|
|
68
|
+
if (!queueUrl) {
|
|
69
|
+
throw new Error(`queueUrl is required for remote execution.`);
|
|
70
|
+
}
|
|
71
|
+
await (0, utils_1.sendToolRequestToRemoteQueue)(queueUrl, {
|
|
66
72
|
toolCalls,
|
|
67
73
|
requestId,
|
|
68
74
|
chatSessionId: this.chatSessionId,
|
|
69
75
|
selectedModel: this.selectedModel,
|
|
70
76
|
branchName: this.branchName,
|
|
71
|
-
featureFlags: this.featureFlags || [],
|
|
72
77
|
});
|
|
73
78
|
}
|
|
74
79
|
async execute(toolCalls) {
|
|
@@ -110,6 +115,7 @@ class ToolCallService {
|
|
|
110
115
|
apiKey: this.apiKey,
|
|
111
116
|
trace: this.trace,
|
|
112
117
|
collectArtifacts: collectArtifactsFn,
|
|
118
|
+
environmentOverrides: this.environmentOverrides,
|
|
113
119
|
});
|
|
114
120
|
const artifacts = await uploadArtifactsQueue.waitForCompletion();
|
|
115
121
|
toolResults.push({ ...result, artifacts });
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { SupportedChatModels } from "@empiricalrun/llm/chat";
|
|
2
2
|
import { PendingToolCall } from "@empiricalrun/shared-types";
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function getQueueUrl(featureFlags: string[]): string | undefined;
|
|
4
|
+
export declare function sendToolRequestToRemoteQueue(queueUrl: string, payload: {
|
|
4
5
|
toolCalls: PendingToolCall[];
|
|
5
6
|
requestId: string;
|
|
6
7
|
chatSessionId: number;
|
|
7
8
|
selectedModel: SupportedChatModels;
|
|
8
9
|
branchName: string;
|
|
9
|
-
featureFlags: string[];
|
|
10
10
|
}): Promise<void>;
|
|
11
11
|
//# 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,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,wBAAsB,4BAA4B,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tool-call-service/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,sBAMjD;AAED,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IACP,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB,iBAiBF"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getQueueUrl = getQueueUrl;
|
|
3
4
|
exports.sendToolRequestToRemoteQueue = sendToolRequestToRemoteQueue;
|
|
4
5
|
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
5
|
-
|
|
6
|
+
function getQueueUrl(featureFlags) {
|
|
7
|
+
const useToolExecutionOnEcs = featureFlags.includes("useToolExecutionOnEcs");
|
|
8
|
+
if (useToolExecutionOnEcs) {
|
|
9
|
+
return process.env.TOOL_EXECUTION_SQS_URL_ECS;
|
|
10
|
+
}
|
|
11
|
+
return process.env.TOOL_EXECUTION_SQS_URL;
|
|
12
|
+
}
|
|
13
|
+
async function sendToolRequestToRemoteQueue(queueUrl, payload) {
|
|
6
14
|
const sqs = new client_sqs_1.SQSClient({
|
|
7
15
|
region: process.env.AWS_REGION,
|
|
8
16
|
credentials: {
|
|
@@ -10,14 +18,6 @@ async function sendToolRequestToRemoteQueue(payload) {
|
|
|
10
18
|
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
|
|
11
19
|
},
|
|
12
20
|
});
|
|
13
|
-
const useToolExecutionOnEcs = payload.featureFlags.includes("useToolExecutionOnEcs");
|
|
14
|
-
let queueUrl = process.env.TOOL_EXECUTION_SQS_URL;
|
|
15
|
-
if (useToolExecutionOnEcs) {
|
|
16
|
-
queueUrl = process.env.TOOL_EXECUTION_SQS_URL_ECS;
|
|
17
|
-
}
|
|
18
|
-
if (!queueUrl) {
|
|
19
|
-
throw new Error(`${useToolExecutionOnEcs ? "TOOL_EXECUTION_SQS_URL_ECS" : "TOOL_EXECUTION_SQS_URL"} is required for remote execution.`);
|
|
20
|
-
}
|
|
21
21
|
await sqs.send(new client_sqs_1.SendMessageCommand({
|
|
22
22
|
QueueUrl: queueUrl,
|
|
23
23
|
MessageBody: JSON.stringify(payload),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-and-create-pr.d.ts","sourceRoot":"","sources":["../../src/tools/commit-and-create-pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"commit-and-create-pr.d.ts","sourceRoot":"","sources":["../../src/tools/commit-and-create-pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,IAAI,EAEL,MAAM,4BAA4B,CAAC;AAOpC,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAiB1D;AAiCD,eAAO,MAAM,qBAAqB,EAAE,IAkFnC,CAAC"}
|
|
@@ -31,16 +31,12 @@ For example, if you used the test run tool, you should include the results (and
|
|
|
31
31
|
videos and other artifacts that help the reviewer gain more context and confidence in the changes. If tests pass, reviewer will see the video and merge the PR.
|
|
32
32
|
If tests fail, reviewer will see the video and the test artifacts, and will be able to help you debug the issue.`),
|
|
33
33
|
});
|
|
34
|
-
function
|
|
34
|
+
function descriptionWithTimestamp(description) {
|
|
35
35
|
const timestamp = new Date()
|
|
36
36
|
.toISOString()
|
|
37
37
|
.replace("T", " ")
|
|
38
38
|
.replace("Z", " UTC");
|
|
39
|
-
|
|
40
|
-
if (existingBody) {
|
|
41
|
-
return `${existingBody}\n\n---\n${description}\n\n${timestampText}`;
|
|
42
|
-
}
|
|
43
|
-
return `${description}\n\n${timestampText}`;
|
|
39
|
+
return `${description}\n\n<sup>Updated at ${timestamp}</sup>`;
|
|
44
40
|
}
|
|
45
41
|
exports.createPullRequestTool = {
|
|
46
42
|
schema: {
|
|
@@ -79,14 +75,10 @@ Don't ask the user for this information, just come up with it yourself.
|
|
|
79
75
|
});
|
|
80
76
|
const existingPR = existingPRs?.find((pr) => pr.head.ref === branchName);
|
|
81
77
|
if (existingPR) {
|
|
82
|
-
// Append the new description to the existing PR description
|
|
83
|
-
const updatedDescription = formatDescriptionWithTimestamp(pullRequestDescription, existingPR.body, "update");
|
|
84
78
|
await (0, utils_1.callGitHubProxy)({
|
|
85
79
|
method: "PATCH",
|
|
86
80
|
url: `https://api.github.com/repos/${owner}/${repo}/pulls/${existingPR.number}`,
|
|
87
|
-
body: {
|
|
88
|
-
body: updatedDescription,
|
|
89
|
-
},
|
|
81
|
+
body: { body: descriptionWithTimestamp(pullRequestDescription) },
|
|
90
82
|
apiKey,
|
|
91
83
|
});
|
|
92
84
|
return {
|
|
@@ -94,7 +86,6 @@ Don't ask the user for this information, just come up with it yourself.
|
|
|
94
86
|
result: `Committed and pushed changes to existing PR: ${existingPR.html_url}`,
|
|
95
87
|
};
|
|
96
88
|
}
|
|
97
|
-
const initialDescription = formatDescriptionWithTimestamp(pullRequestDescription);
|
|
98
89
|
const pr = (await (0, utils_1.callGitHubProxy)({
|
|
99
90
|
method: "POST",
|
|
100
91
|
url: `https://api.github.com/repos/${owner}/${repo}/pulls`,
|
|
@@ -102,7 +93,7 @@ Don't ask the user for this information, just come up with it yourself.
|
|
|
102
93
|
title: pullRequestTitle,
|
|
103
94
|
head: branchName,
|
|
104
95
|
base: "main",
|
|
105
|
-
body:
|
|
96
|
+
body: descriptionWithTimestamp(pullRequestDescription),
|
|
106
97
|
},
|
|
107
98
|
apiKey,
|
|
108
99
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosis-fetcher.d.ts","sourceRoot":"","sources":["../../src/tools/diagnosis-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"diagnosis-fetcher.d.ts","sourceRoot":"","sources":["../../src/tools/diagnosis-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,4BAA4B,CAAC;AAepE,eAAO,MAAM,wBAAwB,EAAE,IAqFtC,CAAC"}
|
|
@@ -19,7 +19,9 @@ exports.fetchDiagnosisReportTool = {
|
|
|
19
19
|
description: "Fetch details about a test case diagnosis using its URL or slug",
|
|
20
20
|
parameters: DiagnosisSchema,
|
|
21
21
|
},
|
|
22
|
-
execute: async (
|
|
22
|
+
execute: async (params) => {
|
|
23
|
+
const { input } = params;
|
|
24
|
+
const { repoPath, apiKey } = params;
|
|
23
25
|
const { diagnosisUrl } = input;
|
|
24
26
|
// Extract the slug from the URL - it's the part after the last '--'
|
|
25
27
|
const slug = diagnosisUrl.split("--").pop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-build.d.ts","sourceRoot":"","sources":["../../src/tools/download-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"download-build.d.ts","sourceRoot":"","sources":["../../src/tools/download-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,eAAO,MAAM,iBAAiB,EAAE,IAkC/B,CAAC"}
|
|
@@ -14,7 +14,9 @@ have a build URL, you can try getting the environment details with the getEnviro
|
|
|
14
14
|
Environment details will include the build URL.`,
|
|
15
15
|
parameters: exports.downloadBuildToolSchema,
|
|
16
16
|
},
|
|
17
|
-
execute: async (
|
|
17
|
+
execute: async (params) => {
|
|
18
|
+
const { input } = params;
|
|
19
|
+
const { repoPath, apiKey } = params;
|
|
18
20
|
if (!(await (0, test_build_1.hasDownloadScript)(repoPath))) {
|
|
19
21
|
return {
|
|
20
22
|
isError: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-crud.d.ts","sourceRoot":"","sources":["../../src/tools/environment-crud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"environment-crud.d.ts","sourceRoot":"","sources":["../../src/tools/environment-crud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,IAAI,EAEL,MAAM,4BAA4B,CAAC;AA6DpC,eAAO,MAAM,kBAAkB,EAAE,IAoFhC,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,IAAI,EAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/grep/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/grep/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,IAAI,EAGL,MAAM,4BAA4B,CAAC;AA8HpC,eAAO,MAAM,QAAQ,EAAE,IA2BtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"str_replace_editor.d.ts","sourceRoot":"","sources":["../../src/tools/str_replace_editor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"str_replace_editor.d.ts","sourceRoot":"","sources":["../../src/tools/str_replace_editor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAe,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAOhF,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6UD;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,UAAU,CAAC,CA2CtB;AA8HD,eAAO,MAAM,eAAe,EAAE,IAAI,EAKjC,CAAC"}
|
|
@@ -340,7 +340,9 @@ File contents are returned with line numbers, starting from 1.
|
|
|
340
340
|
path: zod_1.z.string().describe("The path to the file or directory to view."),
|
|
341
341
|
}),
|
|
342
342
|
},
|
|
343
|
-
execute: async (
|
|
343
|
+
execute: async (params) => {
|
|
344
|
+
const { input } = params;
|
|
345
|
+
const { repoPath } = params;
|
|
344
346
|
return strReplaceEditorExecutor({
|
|
345
347
|
input: {
|
|
346
348
|
command: "view",
|
|
@@ -362,7 +364,9 @@ directories "tests", "tests/example", and "tests/example/foo.spec.ts".`,
|
|
|
362
364
|
file_text: zod_1.z.string().describe("The contents of the new file."),
|
|
363
365
|
}),
|
|
364
366
|
},
|
|
365
|
-
execute: async (
|
|
367
|
+
execute: async (params) => {
|
|
368
|
+
const { input } = params;
|
|
369
|
+
const { repoPath } = params;
|
|
366
370
|
return strReplaceEditorExecutor({
|
|
367
371
|
input: {
|
|
368
372
|
command: "create",
|
|
@@ -384,7 +388,9 @@ in the file. If old_str is not unique, the tool will return an error.`,
|
|
|
384
388
|
new_str: zod_1.z.string().describe("The string to replace old_str with."),
|
|
385
389
|
}),
|
|
386
390
|
},
|
|
387
|
-
execute: async (
|
|
391
|
+
execute: async (params) => {
|
|
392
|
+
const { input } = params;
|
|
393
|
+
const { repoPath } = params;
|
|
388
394
|
return strReplaceEditorExecutor({
|
|
389
395
|
input: {
|
|
390
396
|
command: "str_replace",
|
|
@@ -412,7 +418,9 @@ To insert a string at the end of the file, you should use insert_line = (total l
|
|
|
412
418
|
new_str: zod_1.z.string().describe("The string to insert."),
|
|
413
419
|
}),
|
|
414
420
|
},
|
|
415
|
-
execute: async (
|
|
421
|
+
execute: async (params) => {
|
|
422
|
+
const { input } = params;
|
|
423
|
+
const { repoPath } = params;
|
|
416
424
|
return strReplaceEditorExecutor({
|
|
417
425
|
input: {
|
|
418
426
|
command: "insert",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-gen-browser.d.ts","sourceRoot":"","sources":["../../src/tools/test-gen-browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAmGpE,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,EAAoB,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAmGpE,eAAO,MAAM,4BAA4B,EAAE,IA0I1C,CAAC"}
|
|
@@ -95,7 +95,7 @@ exports.generateTestWithBrowserAgent = {
|
|
|
95
95
|
description: BROWSER_AGENT_DESCRIPTION,
|
|
96
96
|
parameters: BrowserAgentSchema,
|
|
97
97
|
},
|
|
98
|
-
execute: async ({ input, repoPath, trace, collectArtifacts, }) => {
|
|
98
|
+
execute: async ({ input, repoPath, trace, collectArtifacts, environmentOverrides = {}, }) => {
|
|
99
99
|
const { filePath, project } = input;
|
|
100
100
|
const absoluteFilePath = path_1.default.join(repoPath, filePath);
|
|
101
101
|
if (!fs_1.default.existsSync(absoluteFilePath)) {
|
|
@@ -152,7 +152,7 @@ exports.generateTestWithBrowserAgent = {
|
|
|
152
152
|
catch (err) {
|
|
153
153
|
console.warn("[generateTestWithBrowserAgent] Error preparing playwright for codegen", err);
|
|
154
154
|
}
|
|
155
|
-
let envOverrides = {};
|
|
155
|
+
let envOverrides = { ...environmentOverrides };
|
|
156
156
|
if (input.buildUrl) {
|
|
157
157
|
envOverrides = {
|
|
158
158
|
...envOverrides,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-run.d.ts","sourceRoot":"","sources":["../../src/tools/test-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"test-run.d.ts","sourceRoot":"","sources":["../../src/tools/test-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAwDnE,eAAO,MAAM,WAAW,EAAE,IAoFzB,CAAC"}
|
package/dist/tools/test-run.js
CHANGED
|
@@ -10,6 +10,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
10
10
|
const zod_1 = require("zod");
|
|
11
11
|
const artifacts_1 = require("../artifacts");
|
|
12
12
|
const utils_1 = require("../artifacts/utils");
|
|
13
|
+
const utils_2 = require("../utils");
|
|
13
14
|
const RunTestSchema = zod_1.z.object({
|
|
14
15
|
testName: zod_1.z.string().describe("The name of the test to run"),
|
|
15
16
|
suites: zod_1.z
|
|
@@ -30,13 +31,14 @@ function buildReportUrl(projectName, testRunId) {
|
|
|
30
31
|
return `https://reports.empirical.run/${projectName}/${testRunId}/index.html`;
|
|
31
32
|
}
|
|
32
33
|
function buildResult({ hasTestPassed, summaryJson, reportUrl, }) {
|
|
34
|
+
const truncatedSummaryJson = (0, utils_2.truncateJsonValues)(summaryJson);
|
|
33
35
|
return `
|
|
34
36
|
Test run is complete. Result: ${hasTestPassed ? "Passed" : "Failed"}
|
|
35
37
|
|
|
36
38
|
${reportUrl ? `Report URL: ${reportUrl}` : ""}
|
|
37
39
|
|
|
38
40
|
# Raw result (in Playwright JSON format)
|
|
39
|
-
${JSON.stringify(
|
|
41
|
+
${JSON.stringify(truncatedSummaryJson)}
|
|
40
42
|
`;
|
|
41
43
|
}
|
|
42
44
|
exports.runTestTool = {
|
|
@@ -45,14 +47,15 @@ exports.runTestTool = {
|
|
|
45
47
|
description: "Run a test",
|
|
46
48
|
parameters: RunTestSchema,
|
|
47
49
|
},
|
|
48
|
-
execute: async ({ input, repoPath, collectArtifacts, }) => {
|
|
50
|
+
execute: async ({ input, repoPath, collectArtifacts, environmentOverrides = {}, }) => {
|
|
49
51
|
let reportUrl = undefined;
|
|
50
|
-
let envOverrides = {};
|
|
52
|
+
let envOverrides = { ...environmentOverrides };
|
|
51
53
|
if ((0, artifacts_1.isArtifactCollectionEnabled)()) {
|
|
52
54
|
const projectName = "test-gen-chat-agent";
|
|
53
55
|
const testRunId = Date.now().toString();
|
|
54
56
|
reportUrl = buildReportUrl(projectName, testRunId);
|
|
55
57
|
envOverrides = {
|
|
58
|
+
...envOverrides,
|
|
56
59
|
PROJECT_NAME: projectName,
|
|
57
60
|
TEST_RUN_GITHUB_ACTION_ID: testRunId,
|
|
58
61
|
};
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTypescriptTestBlock = void 0;
|
|
3
|
+
exports.truncateJsonValues = exports.getTypescriptTestBlock = void 0;
|
|
4
4
|
var web_1 = require("../bin/utils/platform/web");
|
|
5
5
|
Object.defineProperty(exports, "getTypescriptTestBlock", { enumerable: true, get: function () { return web_1.getTypescriptTestBlock; } });
|
|
6
|
+
var json_1 = require("./json");
|
|
7
|
+
Object.defineProperty(exports, "truncateJsonValues", { enumerable: true, get: function () { return json_1.truncateJsonValues; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,GAAE,MAAa,GAAG,GAAG,CAuB1E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.truncateJsonValues = truncateJsonValues;
|
|
4
|
+
function truncateJsonValues(obj, maxLength = 1000) {
|
|
5
|
+
if (typeof obj === "string") {
|
|
6
|
+
if (obj.length > maxLength) {
|
|
7
|
+
const suffix = "...[truncated]";
|
|
8
|
+
const truncateAt = maxLength - suffix.length;
|
|
9
|
+
return obj.substring(0, truncateAt) + suffix;
|
|
10
|
+
}
|
|
11
|
+
return obj;
|
|
12
|
+
}
|
|
13
|
+
if (Array.isArray(obj)) {
|
|
14
|
+
return obj.map((item) => truncateJsonValues(item, maxLength));
|
|
15
|
+
}
|
|
16
|
+
if (obj !== null && typeof obj === "object") {
|
|
17
|
+
const truncated = {};
|
|
18
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
19
|
+
truncated[key] = truncateJsonValues(value, maxLength);
|
|
20
|
+
}
|
|
21
|
+
return truncated;
|
|
22
|
+
}
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empiricalrun/test-gen",
|
|
3
|
-
"version": "0.64.
|
|
3
|
+
"version": "0.64.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"zod": "^3.23.8",
|
|
65
65
|
"@empiricalrun/llm": "^0.17.3",
|
|
66
66
|
"@empiricalrun/r2-uploader": "^0.3.9",
|
|
67
|
-
"@empiricalrun/test-run": "^0.10.
|
|
67
|
+
"@empiricalrun/test-run": "^0.10.1"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@playwright/test": "1.47.1",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"playwright": "1.47.1",
|
|
80
80
|
"serve-handler": "^6.1.6",
|
|
81
81
|
"ts-patch": "^3.3.0",
|
|
82
|
-
"@empiricalrun/shared-types": "0.4.
|
|
82
|
+
"@empiricalrun/shared-types": "0.4.2"
|
|
83
83
|
},
|
|
84
84
|
"scripts": {
|
|
85
85
|
"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/prompt.ts","./src/agent/chat/repo.ts","./src/agent/chat/state.ts","./src/agent/chat/types.ts","./src/agent/chat/utils.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/index.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/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/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/environment-crud.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/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/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/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/prompt.ts","./src/agent/chat/repo.ts","./src/agent/chat/state.ts","./src/agent/chat/types.ts","./src/agent/chat/utils.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/index.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/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/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/environment-crud.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/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"}
|