@empiricalrun/test-gen 0.38.17 → 0.38.19
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 +13 -0
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +1 -0
- package/dist/agent/master/run.d.ts +1 -4
- package/dist/agent/master/run.d.ts.map +1 -1
- package/dist/agent/master/run.js +4 -16
- package/dist/agent/master/with-hints.d.ts +1 -4
- package/dist/agent/master/with-hints.d.ts.map +1 -1
- package/dist/agent/master/with-hints.js +7 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @empiricalrun/test-gen
|
|
2
2
|
|
|
3
|
+
## 0.38.19
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- ba654cf: fix: revert annotations
|
|
8
|
+
|
|
9
|
+
## 0.38.18
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 683da08: fix: replaced master-agent-action with master-agent-execute-action in trace
|
|
14
|
+
- ebf4861: fix: hover tool call
|
|
15
|
+
|
|
3
16
|
## 0.38.17
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,YAAY,EAA6B,MAAM,UAAU,CAAC;AAWnE,qBAAa,iBAAiB;IAQ1B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,cAAc;IARxB,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,eAAe,CAInB;gBAEM,IAAI,EAAE,WAAW,EACjB,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAgB5C,aAAa,CACjB,IAAI,oBAAa,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqD9B,wBAAwB,IAAI,YAAY,EAAE;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,YAAY,EAA6B,MAAM,UAAU,CAAC;AAWnE,qBAAa,iBAAiB;IAQ1B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,cAAc;IARxB,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,eAAe,CAInB;gBAEM,IAAI,EAAE,WAAW,EACjB,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAgB5C,aAAa,CACjB,IAAI,oBAAa,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqD9B,wBAAwB,IAAI,YAAY,EAAE;IAoB1C,sBAAsB,IAAI,YAAY,EAAE;IAWxC,YAAY,IAAI;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;IAUD,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAK9B;;;;;;OAMG;IACH,aAAa,IAAI,OAAO;IAQxB,UAAU;IAWV,iBAAiB;IAIjB,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAItD"}
|
package/dist/actions/index.js
CHANGED
|
@@ -16,10 +16,7 @@ export declare function getNextAction({ task, executedActions, failedActions, pa
|
|
|
16
16
|
actions: PlaywrightActions;
|
|
17
17
|
disableSkills: boolean;
|
|
18
18
|
useHints: boolean;
|
|
19
|
-
annotations?:
|
|
20
|
-
elementID: string;
|
|
21
|
-
text: string;
|
|
22
|
-
}[];
|
|
19
|
+
annotations?: string[];
|
|
23
20
|
}): Promise<import("openai/resources/index.mjs").ChatCompletionMessageToolCall | undefined>;
|
|
24
21
|
export declare function createTestUsingMasterAgent({ task, page, testCase, options, scopeVars, }: {
|
|
25
22
|
task: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/master/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,GAAG,EACH,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAclD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,oBAAoB,EAErB,MAAM,aAAa,CAAC;AAoBrB,wBAAsB,aAAa,CAAC,EAClC,IAAI,EACJ,eAAe,EACf,aAAa,EACb,OAAO,EACP,KAAK,EACL,GAAG,EACH,OAAO,EACP,cAAc,EACd,uBAAuB,EACvB,OAAO,EACP,aAAa,EACb,QAAgB,EAChB,WAAW,GACZ,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/master/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,GAAG,EACH,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAclD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,oBAAoB,EAErB,MAAM,aAAa,CAAC;AAoBrB,wBAAsB,aAAa,CAAC,EAClC,IAAI,EACJ,eAAe,EACf,aAAa,EACb,OAAO,EACP,KAAK,EACL,GAAG,EACH,OAAO,EACP,cAAc,EACd,uBAAuB,EACvB,OAAO,EACP,aAAa,EACb,QAAgB,EAChB,WAAW,GACZ,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,2FA2FA;AAGD,wBAAsB,0BAA0B,CAAC,EAC/C,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;;;GAsTA"}
|
package/dist/agent/master/run.js
CHANGED
|
@@ -52,10 +52,8 @@ async function getNextAction({ task, executedActions, failedActions, pageUrl, tr
|
|
|
52
52
|
failedActions: failedActions.map((a) => a).join("\n"),
|
|
53
53
|
executedActions: executedActions.map((a) => a).join("\n"),
|
|
54
54
|
pageUrl,
|
|
55
|
-
annotations
|
|
56
|
-
|
|
57
|
-
.join("\n"),
|
|
58
|
-
}, 27);
|
|
55
|
+
annotations,
|
|
56
|
+
}, 24);
|
|
59
57
|
// assuming there is only one user message in the prompt. if there is a change in langfuse prompt format, this will need to be updated
|
|
60
58
|
const userMessage = promptMessages.filter((m) => m.role === "user")[0];
|
|
61
59
|
const systemMessage = promptMessages.filter((m) => m.role === "system")[0];
|
|
@@ -212,18 +210,8 @@ async function createTestUsingMasterAgent({ task, page, testCase, options, scope
|
|
|
212
210
|
// @ts-ignore
|
|
213
211
|
// eslint-disable-next-line no-undef
|
|
214
212
|
window.annotationInstance = annotateClickableElements();
|
|
215
|
-
const annotations = Object.entries(
|
|
216
213
|
// @ts-ignore
|
|
217
|
-
window.annotationInstance.annotations)
|
|
218
|
-
elementID: key, // Assign the key to elementID
|
|
219
|
-
text:
|
|
220
|
-
//@ts-ignore
|
|
221
|
-
value.node.text?.trim() ||
|
|
222
|
-
//@ts-ignore
|
|
223
|
-
value.node.textContent?.trim() ||
|
|
224
|
-
"<This is an icon or image. Check the screenshot>",
|
|
225
|
-
}));
|
|
226
|
-
return annotations;
|
|
214
|
+
return Object.keys(window.annotationInstance.annotations);
|
|
227
215
|
});
|
|
228
216
|
await page.waitForTimeout(2000);
|
|
229
217
|
const annonationBuffer = await page.screenshot({
|
|
@@ -269,7 +257,7 @@ async function createTestUsingMasterAgent({ task, page, testCase, options, scope
|
|
|
269
257
|
if (toolCall) {
|
|
270
258
|
const args = JSON.parse(toolCall.function.arguments);
|
|
271
259
|
const masterAgentActionSpan = masterAgentSpan?.span({
|
|
272
|
-
name: "master-agent-action",
|
|
260
|
+
name: "master-agent-execute-action",
|
|
273
261
|
});
|
|
274
262
|
try {
|
|
275
263
|
output = {
|
|
@@ -13,10 +13,7 @@ export declare const triggerHintsFlow: ({ outputFromGetNextAction, generatedAnno
|
|
|
13
13
|
action: string;
|
|
14
14
|
elementAnnotation?: string;
|
|
15
15
|
};
|
|
16
|
-
generatedAnnotations:
|
|
17
|
-
elementID: string;
|
|
18
|
-
text: string;
|
|
19
|
-
}[];
|
|
16
|
+
generatedAnnotations: Record<string, any>;
|
|
20
17
|
page: TestGenPage;
|
|
21
18
|
llm: LLM;
|
|
22
19
|
trace?: TraceClient | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-hints.d.ts","sourceRoot":"","sources":["../../../src/agent/master/with-hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"with-hints.d.ts","sourceRoot":"","sources":["../../../src/agent/master/with-hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAO5B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,0BAA0B;iBAMxB,OAAO,8BAA8B;;oBAElC,MAAM;6BACG,MAAM;MAC7B,MAAM,GAAG,OAAO,yBAAyB,EAiC5C,CAAC;AAEF,eAAO,MAAM,gBAAgB;6BAOF;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;0BACqB,OAAO,MAAM,EAAE,GAAG,CAAC;UACnC,WAAW;SACZ,GAAG;;MAEN,QAAQ;IACV,sBAAsB,EAAE,OAAO,CAAC;IAChC,wBAAwB,EAAE,OAAO,qBAAqB,GAAG,SAAS,CAAC;CACpE,CAwGA,CAAC"}
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.triggerHintsFlow = exports.getUserMessageWithForHints = void 0;
|
|
4
4
|
const vision_1 = require("@empiricalrun/llm/vision");
|
|
5
5
|
const actions_1 = require("../../actions");
|
|
6
|
+
const click_1 = require("../../actions/click");
|
|
7
|
+
const fill_1 = require("../../actions/fill");
|
|
8
|
+
const hover_1 = require("../../actions/hover");
|
|
6
9
|
const constants_1 = require("../../constants");
|
|
7
10
|
const getUserMessageWithForHints = ({ userMessage, options, pageScreenshot, annotatedPageScreenshot, }) => {
|
|
8
11
|
return [
|
|
@@ -37,7 +40,7 @@ const triggerHintsFlow = async ({ outputFromGetNextAction, generatedAnnotations,
|
|
|
37
40
|
try {
|
|
38
41
|
const hasElementAnnotation = outputFromGetNextAction?.elementAnnotation?.length &&
|
|
39
42
|
outputFromGetNextAction?.elementAnnotation?.trim()?.length &&
|
|
40
|
-
generatedAnnotations
|
|
43
|
+
generatedAnnotations?.includes(outputFromGetNextAction?.elementAnnotation);
|
|
41
44
|
trace?.event({
|
|
42
45
|
name: "has-element-annotation",
|
|
43
46
|
output: {
|
|
@@ -87,8 +90,9 @@ const triggerHintsFlow = async ({ outputFromGetNextAction, generatedAnnotations,
|
|
|
87
90
|
},
|
|
88
91
|
trace,
|
|
89
92
|
});
|
|
90
|
-
const canTriggerHintsFlow = completion?.tool_calls?.some((currentToolCall) => currentToolCall.function.name ===
|
|
91
|
-
currentToolCall.function.name ===
|
|
93
|
+
const canTriggerHintsFlow = completion?.tool_calls?.some((currentToolCall) => currentToolCall.function.name === fill_1.PLAYWRIGHT_FILL_ACTION_NAME ||
|
|
94
|
+
currentToolCall.function.name === click_1.PLAYWRIGHT_CLICK_ACTION_NAME ||
|
|
95
|
+
currentToolCall.function.name === hover_1.PLAYWRIGHT_HOVER_ACTION_NAME);
|
|
92
96
|
trace?.event({
|
|
93
97
|
name: "can-trigger-hints-flow",
|
|
94
98
|
output: {
|