@empiricalrun/test-gen 0.21.1 → 0.21.4
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/actions/assert.d.ts.map +1 -1
- package/dist/actions/assert.js +2 -1
- package/dist/actions/click.d.ts.map +1 -1
- package/dist/actions/click.js +2 -1
- package/dist/actions/constants/index.d.ts +2 -0
- package/dist/actions/constants/index.d.ts.map +1 -0
- package/dist/actions/constants/index.js +4 -0
- package/dist/actions/done.d.ts.map +1 -1
- package/dist/actions/done.js +2 -1
- package/dist/actions/fill.d.ts.map +1 -1
- package/dist/actions/fill.js +3 -2
- package/dist/actions/goto.d.ts.map +1 -1
- package/dist/actions/goto.js +2 -1
- package/dist/actions/next-task.js +1 -1
- package/dist/actions/reload-page.d.ts.map +1 -1
- package/dist/actions/reload-page.js +2 -1
- package/dist/agent/browsing/index.d.ts.map +1 -1
- package/dist/agent/browsing/index.js +4 -2
- package/dist/agent/verification/index.d.ts.map +1 -1
- package/dist/agent/verification/index.js +4 -1
- package/dist/bin/utils/platform/web/index.d.ts.map +1 -1
- package/dist/bin/utils/platform/web/index.js +8 -9
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @empiricalrun/test-gen
|
|
2
2
|
|
|
3
|
+
## 0.21.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [09edb5f]
|
|
8
|
+
- @empiricalrun/reporter@0.14.3
|
|
9
|
+
|
|
10
|
+
## 0.21.3
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- c92362f: fix: verification agent hallucination
|
|
15
|
+
|
|
16
|
+
## 0.21.2
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- c3b31ae: fix: logic of extracting test block
|
|
21
|
+
|
|
3
22
|
## 0.21.1
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/actions/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/actions/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAIrD,eAAO,MAAM,6CAA6C,2BAChC,CAAC;AAE3B,eAAO,MAAM,mCAAmC,EAAE,yBA8CjD,CAAC"}
|
package/dist/actions/assert.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.assertTextVisibilityActionGenerator = exports.PLAYWRIGHT_ASSERT_TEXT_VISIBILITY_ACTION_NAME = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
4
5
|
const utils_1 = require("./utils");
|
|
5
6
|
exports.PLAYWRIGHT_ASSERT_TEXT_VISIBILITY_ACTION_NAME = "assert_text_visibility";
|
|
6
7
|
const assertTextVisibilityActionGenerator = (page) => {
|
|
@@ -32,7 +33,7 @@ const assertTextVisibilityActionGenerator = (page) => {
|
|
|
32
33
|
},
|
|
33
34
|
reason: {
|
|
34
35
|
type: "string",
|
|
35
|
-
description:
|
|
36
|
+
description: constants_1.DEFAULT_ACTION_REASON_PROMPT,
|
|
36
37
|
},
|
|
37
38
|
},
|
|
38
39
|
required: ["css_selector", "reason"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click.d.ts","sourceRoot":"","sources":["../../src/actions/click.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"click.d.ts","sourceRoot":"","sources":["../../src/actions/click.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAIrD,eAAO,MAAM,4BAA4B,kBAAkB,CAAC;AAE5D,eAAO,MAAM,oBAAoB,EAAE,yBA8ClC,CAAC"}
|
package/dist/actions/click.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.clickActionGenerator = exports.PLAYWRIGHT_CLICK_ACTION_NAME = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
4
5
|
const utils_1 = require("./utils");
|
|
5
6
|
exports.PLAYWRIGHT_CLICK_ACTION_NAME = "click_element";
|
|
6
7
|
const clickActionGenerator = (page) => {
|
|
@@ -34,7 +35,7 @@ const clickActionGenerator = (page) => {
|
|
|
34
35
|
},
|
|
35
36
|
reason: {
|
|
36
37
|
type: "string",
|
|
37
|
-
description:
|
|
38
|
+
description: constants_1.DEFAULT_ACTION_REASON_PROMPT,
|
|
38
39
|
},
|
|
39
40
|
},
|
|
40
41
|
required: ["css_selector", "reason"],
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/actions/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,qFAC2C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"done.d.ts","sourceRoot":"","sources":["../../src/actions/done.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"done.d.ts","sourceRoot":"","sources":["../../src/actions/done.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAGrD,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD,eAAO,MAAM,mBAAmB,EAAE,yBAuBjC,CAAC"}
|
package/dist/actions/done.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.doneActionGenerator = exports.PLAYWRIGHT_DONE_ACTION_NAME = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
4
5
|
exports.PLAYWRIGHT_DONE_ACTION_NAME = "task_done";
|
|
5
6
|
const doneActionGenerator = () => {
|
|
6
7
|
return {
|
|
@@ -17,7 +18,7 @@ const doneActionGenerator = () => {
|
|
|
17
18
|
properties: {
|
|
18
19
|
reason: {
|
|
19
20
|
type: "string",
|
|
20
|
-
description:
|
|
21
|
+
description: constants_1.DEFAULT_ACTION_REASON_PROMPT,
|
|
21
22
|
},
|
|
22
23
|
},
|
|
23
24
|
required: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../src/actions/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../src/actions/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAIrD,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAEhE,eAAO,MAAM,mBAAmB,EAAE,yBA8CjC,CAAC"}
|
package/dist/actions/fill.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fillActionGenerator = exports.PLAYWRIGHT_FILL_ACTION_NAME = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
4
5
|
const utils_1 = require("./utils");
|
|
5
6
|
exports.PLAYWRIGHT_FILL_ACTION_NAME = "fill_input_element";
|
|
6
7
|
const fillActionGenerator = (page) => {
|
|
@@ -33,11 +34,11 @@ const fillActionGenerator = (page) => {
|
|
|
33
34
|
},
|
|
34
35
|
css_selector: {
|
|
35
36
|
type: "string",
|
|
36
|
-
description: "CSS selector to identify the element uniquely.When creating CSS selectors, ensure they are unique to the page and specific enough to select only one element",
|
|
37
|
+
description: "CSS selector to identify the element uniquely.When creating CSS selectors, ensure they are unique to the page and specific enough to select only one element.",
|
|
37
38
|
},
|
|
38
39
|
reason: {
|
|
39
40
|
type: "string",
|
|
40
|
-
description:
|
|
41
|
+
description: constants_1.DEFAULT_ACTION_REASON_PROMPT,
|
|
41
42
|
},
|
|
42
43
|
},
|
|
43
44
|
required: ["text", "css_selector", "reason"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goto.d.ts","sourceRoot":"","sources":["../../src/actions/goto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"goto.d.ts","sourceRoot":"","sources":["../../src/actions/goto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAGrD,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD,eAAO,MAAM,mBAAmB,EAAE,yBAqCjC,CAAC"}
|
package/dist/actions/goto.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.gotoActionGenerator = exports.PLAYWRIGHT_GOTO_ACTION_NAME = void 0;
|
|
4
4
|
const utils_1 = require("../agent/browsing/utils");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
5
6
|
exports.PLAYWRIGHT_GOTO_ACTION_NAME = "page_goto";
|
|
6
7
|
const gotoActionGenerator = (page) => {
|
|
7
8
|
return {
|
|
@@ -32,7 +33,7 @@ const gotoActionGenerator = (page) => {
|
|
|
32
33
|
},
|
|
33
34
|
reason: {
|
|
34
35
|
type: "string",
|
|
35
|
-
description:
|
|
36
|
+
description: constants_1.DEFAULT_ACTION_REASON_PROMPT,
|
|
36
37
|
},
|
|
37
38
|
},
|
|
38
39
|
required: ["url", "reason"],
|
|
@@ -20,7 +20,7 @@ Each action should take the task to completion, if not the action is invalid.`,
|
|
|
20
20
|
},
|
|
21
21
|
reason: {
|
|
22
22
|
type: "string",
|
|
23
|
-
description: "explain how this action will help to complete the task",
|
|
23
|
+
description: "explain how this action will help to complete the task. the reason should align with the task provided",
|
|
24
24
|
},
|
|
25
25
|
},
|
|
26
26
|
required: ["action", "reason"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reload-page.d.ts","sourceRoot":"","sources":["../../src/actions/reload-page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"reload-page.d.ts","sourceRoot":"","sources":["../../src/actions/reload-page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAGrD,eAAO,MAAM,6BAA6B,gBAAgB,CAAC;AAE3D,eAAO,MAAM,qBAAqB,EAAE,yBA+BnC,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.reloadActionGenerator = exports.PLAYWRIGHT_RELOAD_ACTION_NAME = void 0;
|
|
4
4
|
const utils_1 = require("../agent/browsing/utils");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
5
6
|
exports.PLAYWRIGHT_RELOAD_ACTION_NAME = "page_reload";
|
|
6
7
|
const reloadActionGenerator = (page) => {
|
|
7
8
|
return {
|
|
@@ -25,7 +26,7 @@ const reloadActionGenerator = (page) => {
|
|
|
25
26
|
properties: {
|
|
26
27
|
reason: {
|
|
27
28
|
type: "string",
|
|
28
|
-
description:
|
|
29
|
+
description: constants_1.DEFAULT_ACTION_REASON_PROMPT,
|
|
29
30
|
},
|
|
30
31
|
},
|
|
31
32
|
required: ["reason"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/browsing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAWlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMnD,KAAK,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG;IAC1D,YAAY,CAAC,EAAE;QACb,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/browsing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAWlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMnD,KAAK,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG;IAC1D,YAAY,CAAC,EAAE;QACb,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,oBAAoB,mBAmK9B;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,oBAAoB,mBAqG9B"}
|
|
@@ -40,7 +40,7 @@ async function browsingAgentUsingMasterAgent(task, page, options) {
|
|
|
40
40
|
llm,
|
|
41
41
|
trace: masterAgentSpan,
|
|
42
42
|
task,
|
|
43
|
-
conversation: ["
|
|
43
|
+
conversation: ["Successfully executed actions", ...masterAgentActions],
|
|
44
44
|
});
|
|
45
45
|
isGivenTaskDone = verificationAgentResp.isDone;
|
|
46
46
|
if (isGivenTaskDone) {
|
|
@@ -77,9 +77,11 @@ async function browsingAgentUsingMasterAgent(task, page, options) {
|
|
|
77
77
|
llm,
|
|
78
78
|
trace: browsingAgentSpan,
|
|
79
79
|
task: action,
|
|
80
|
-
conversation: ["
|
|
80
|
+
conversation: ["Successfully executed actions", ...successfulActions],
|
|
81
81
|
});
|
|
82
82
|
isTaskDone = verificationAgentResp.isDone;
|
|
83
|
+
logger.log(`isTaskDone: ${isTaskDone}`);
|
|
84
|
+
logger.log(`reason: ${verificationAgentResp.reason}`);
|
|
83
85
|
if (isTaskDone) {
|
|
84
86
|
browsingAgentSpan.event({ name: "task-done" });
|
|
85
87
|
browsingAgentSpan.end({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/verification/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,GAAG,EACH,KAAK,EACL,IAAI,EACJ,YAAY,GACb,EAAE;IACD,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/verification/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,GAAG,EACH,KAAK,EACL,IAAI,EACJ,YAAY,GACb,EAAE;IACD,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;;;GA8DA"}
|
|
@@ -10,7 +10,10 @@ async function verificationAgent({ llm, trace, task, conversation, }) {
|
|
|
10
10
|
messages: [
|
|
11
11
|
{
|
|
12
12
|
role: "system",
|
|
13
|
-
content:
|
|
13
|
+
content: `Given a conversation and a task, your task is to analyse the conversation and tell if the task is completed.
|
|
14
|
+
If not, you need to tell what is not completed and suggest next steps to complete the task.
|
|
15
|
+
You need to respond assuming the conversation provided to you is truthful.
|
|
16
|
+
`,
|
|
14
17
|
},
|
|
15
18
|
{
|
|
16
19
|
role: "user",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bin/utils/platform/web/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bin/utils/platform/web/index.ts"],"names":[],"mappings":"AAMA,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CAYpB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAiD7D;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,qBAM3D;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,iBAOhD;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,iBAQhD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,UAE5E;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,iBAIpD"}
|
|
@@ -7,20 +7,19 @@ exports.removeTestOnly = exports.addNewImport = exports.formatCode = exports.lin
|
|
|
7
7
|
const eslint_1 = require("eslint");
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const prettier_1 = __importDefault(require("prettier"));
|
|
10
|
+
const ts_morph_1 = require("ts-morph");
|
|
10
11
|
const typescript_1 = __importDefault(require("typescript"));
|
|
11
12
|
function getTypescriptTestBlock(scenarioName, content) {
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
13
|
+
const project = new ts_morph_1.Project();
|
|
14
|
+
const sourceFile = project.createSourceFile("test.ts", content);
|
|
15
|
+
const testFunction = sourceFile.getFirstDescendant((node) => !!(node.isKind(ts_morph_1.SyntaxKind.CallExpression) &&
|
|
16
|
+
node.getExpression().getText() === "test" &&
|
|
17
|
+
node.getArguments()[0]?.getText().includes(scenarioName)));
|
|
18
|
+
return testFunction?.getText();
|
|
20
19
|
}
|
|
21
20
|
exports.getTypescriptTestBlock = getTypescriptTestBlock;
|
|
22
21
|
function appendToTestBlock(testBlock, content) {
|
|
23
|
-
const updateTestBlock = testBlock.replace(/\}\)
|
|
22
|
+
const updateTestBlock = testBlock.replace(/\}\)$/, `\n\n${content}\n\n })`);
|
|
24
23
|
return updateTestBlock;
|
|
25
24
|
}
|
|
26
25
|
exports.appendToTestBlock = appendToTestBlock;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empiricalrun/test-gen",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -38,10 +38,11 @@
|
|
|
38
38
|
"prettier": "^3.2.5",
|
|
39
39
|
"sanitize-html": "^2.13.0",
|
|
40
40
|
"slugify": "^1.6.6",
|
|
41
|
+
"ts-morph": "^23.0.0",
|
|
41
42
|
"tsx": "^4.16.2",
|
|
42
43
|
"typescript": "^5.3.3",
|
|
43
44
|
"@empiricalrun/llm": "^0.4.4",
|
|
44
|
-
"@empiricalrun/reporter": "^0.14.
|
|
45
|
+
"@empiricalrun/reporter": "^0.14.3"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"@types/detect-port": "^1.3.5",
|