@empiricalrun/playwright-utils 0.22.6 → 0.23.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 +19 -0
- package/bundled/test-gen/actions/assert.d.ts +4 -0
- package/bundled/test-gen/actions/assert.d.ts.map +1 -0
- package/bundled/test-gen/actions/assert.js +50 -0
- package/bundled/test-gen/actions/click.d.ts +4 -0
- package/bundled/test-gen/actions/click.d.ts.map +1 -0
- package/bundled/test-gen/actions/click.js +51 -0
- package/bundled/test-gen/actions/constants/index.d.ts +2 -0
- package/bundled/test-gen/actions/constants/index.d.ts.map +1 -0
- package/bundled/test-gen/actions/constants/index.js +4 -0
- package/bundled/test-gen/actions/done.d.ts +4 -0
- package/bundled/test-gen/actions/done.d.ts.map +1 -0
- package/bundled/test-gen/actions/done.js +30 -0
- package/bundled/test-gen/actions/fill.d.ts +4 -0
- package/bundled/test-gen/actions/fill.d.ts.map +1 -0
- package/bundled/test-gen/actions/fill.js +82 -0
- package/bundled/test-gen/actions/goto.d.ts +4 -0
- package/bundled/test-gen/actions/goto.d.ts.map +1 -0
- package/bundled/test-gen/actions/goto.js +47 -0
- package/bundled/test-gen/actions/hover.d.ts +4 -0
- package/bundled/test-gen/actions/hover.d.ts.map +1 -0
- package/bundled/test-gen/actions/hover.js +51 -0
- package/bundled/test-gen/actions/index.d.ts +30 -0
- package/bundled/test-gen/actions/index.d.ts.map +1 -0
- package/bundled/test-gen/actions/index.js +159 -0
- package/bundled/test-gen/actions/next-task.d.ts +53 -0
- package/bundled/test-gen/actions/next-task.d.ts.map +1 -0
- package/bundled/test-gen/actions/next-task.js +58 -0
- package/bundled/test-gen/actions/press.d.ts +4 -0
- package/bundled/test-gen/actions/press.d.ts.map +1 -0
- package/bundled/test-gen/actions/press.js +56 -0
- package/bundled/test-gen/actions/skill.d.ts +21 -0
- package/bundled/test-gen/actions/skill.d.ts.map +1 -0
- package/bundled/test-gen/actions/skill.js +127 -0
- package/bundled/test-gen/actions/text-content.d.ts +4 -0
- package/bundled/test-gen/actions/text-content.d.ts.map +1 -0
- package/bundled/test-gen/actions/text-content.js +58 -0
- package/bundled/test-gen/actions/utils/index.d.ts +10 -0
- package/bundled/test-gen/actions/utils/index.d.ts.map +1 -0
- package/bundled/test-gen/actions/utils/index.js +109 -0
- package/bundled/test-gen/agent/browsing/index.d.ts +15 -0
- package/bundled/test-gen/agent/browsing/index.d.ts.map +1 -0
- package/bundled/test-gen/agent/browsing/index.js +68 -0
- package/bundled/test-gen/agent/browsing/run.d.ts +19 -0
- package/bundled/test-gen/agent/browsing/run.d.ts.map +1 -0
- package/bundled/test-gen/agent/browsing/run.js +88 -0
- package/bundled/test-gen/agent/browsing/utils.d.ts +41 -0
- package/bundled/test-gen/agent/browsing/utils.d.ts.map +1 -0
- package/bundled/test-gen/agent/browsing/utils.js +406 -0
- package/bundled/test-gen/agent/codegen/create-test-block.d.ts +9 -0
- package/bundled/test-gen/agent/codegen/create-test-block.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/create-test-block.js +63 -0
- package/bundled/test-gen/agent/codegen/fix-ts-errors.d.ts +13 -0
- package/bundled/test-gen/agent/codegen/fix-ts-errors.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/fix-ts-errors.js +80 -0
- package/bundled/test-gen/agent/codegen/generate-code-apply-changes.d.ts +13 -0
- package/bundled/test-gen/agent/codegen/generate-code-apply-changes.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/generate-code-apply-changes.js +381 -0
- package/bundled/test-gen/agent/codegen/lexical-scoped-vars.d.ts +9 -0
- package/bundled/test-gen/agent/codegen/lexical-scoped-vars.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/lexical-scoped-vars.js +56 -0
- package/bundled/test-gen/agent/codegen/repo-edit.d.ts +23 -0
- package/bundled/test-gen/agent/codegen/repo-edit.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/repo-edit.js +86 -0
- package/bundled/test-gen/agent/codegen/run.d.ts +16 -0
- package/bundled/test-gen/agent/codegen/run.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/run.js +119 -0
- package/bundled/test-gen/agent/codegen/skills-retriever.d.ts +26 -0
- package/bundled/test-gen/agent/codegen/skills-retriever.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/skills-retriever.js +93 -0
- package/bundled/test-gen/agent/codegen/test-update-feedback.d.ts +12 -0
- package/bundled/test-gen/agent/codegen/test-update-feedback.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/test-update-feedback.js +50 -0
- package/bundled/test-gen/agent/codegen/types.d.ts +25 -0
- package/bundled/test-gen/agent/codegen/types.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/types.js +8 -0
- package/bundled/test-gen/agent/codegen/update-flow.d.ts +34 -0
- package/bundled/test-gen/agent/codegen/update-flow.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/update-flow.js +300 -0
- package/bundled/test-gen/agent/codegen/use-skill.d.ts +11 -0
- package/bundled/test-gen/agent/codegen/use-skill.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/use-skill.js +54 -0
- package/bundled/test-gen/agent/codegen/utils.d.ts +126 -0
- package/bundled/test-gen/agent/codegen/utils.d.ts.map +1 -0
- package/bundled/test-gen/agent/codegen/utils.js +416 -0
- package/bundled/test-gen/agent/diagnosis-agent/index.d.ts +18 -0
- package/bundled/test-gen/agent/diagnosis-agent/index.d.ts.map +1 -0
- package/bundled/test-gen/agent/diagnosis-agent/index.js +105 -0
- package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.d.ts +9 -0
- package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.d.ts.map +1 -0
- package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.js +31 -0
- package/bundled/test-gen/agent/enrich-prompt/index.d.ts +12 -0
- package/bundled/test-gen/agent/enrich-prompt/index.d.ts.map +1 -0
- package/bundled/test-gen/agent/enrich-prompt/index.js +81 -0
- package/bundled/test-gen/agent/enrich-prompt/utils.d.ts +6 -0
- package/bundled/test-gen/agent/enrich-prompt/utils.d.ts.map +1 -0
- package/bundled/test-gen/agent/enrich-prompt/utils.js +12 -0
- package/bundled/test-gen/agent/infer-agent/index.d.ts +10 -0
- package/bundled/test-gen/agent/infer-agent/index.d.ts.map +1 -0
- package/bundled/test-gen/agent/infer-agent/index.js +70 -0
- package/bundled/test-gen/agent/master/action-tool-calls.d.ts +42 -0
- package/bundled/test-gen/agent/master/action-tool-calls.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/action-tool-calls.js +87 -0
- package/bundled/test-gen/agent/master/browser-tests/fixtures.d.ts +9 -0
- package/bundled/test-gen/agent/master/browser-tests/fixtures.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/browser-tests/fixtures.js +33 -0
- package/bundled/test-gen/agent/master/browser-tests/index.spec.d.ts +2 -0
- package/bundled/test-gen/agent/master/browser-tests/index.spec.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/browser-tests/index.spec.js +113 -0
- package/bundled/test-gen/agent/master/browser-tests/skills.spec.d.ts +2 -0
- package/bundled/test-gen/agent/master/browser-tests/skills.spec.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/browser-tests/skills.spec.js +109 -0
- package/bundled/test-gen/agent/master/element-annotation.d.ts +30 -0
- package/bundled/test-gen/agent/master/element-annotation.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/element-annotation.js +195 -0
- package/bundled/test-gen/agent/master/execute-browser-action.d.ts +24 -0
- package/bundled/test-gen/agent/master/execute-browser-action.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/execute-browser-action.js +124 -0
- package/bundled/test-gen/agent/master/execute-skill-action.d.ts +11 -0
- package/bundled/test-gen/agent/master/execute-skill-action.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/execute-skill-action.js +25 -0
- package/bundled/test-gen/agent/master/icon-descriptor/index.d.ts +22 -0
- package/bundled/test-gen/agent/master/icon-descriptor/index.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/icon-descriptor/index.js +250 -0
- package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.d.ts +2 -0
- package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.js +248 -0
- package/bundled/test-gen/agent/master/next-action.d.ts +22 -0
- package/bundled/test-gen/agent/master/next-action.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/next-action.js +104 -0
- package/bundled/test-gen/agent/master/planner.d.ts +15 -0
- package/bundled/test-gen/agent/master/planner.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/planner.js +144 -0
- package/bundled/test-gen/agent/master/run.d.ts +15 -0
- package/bundled/test-gen/agent/master/run.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/run.js +274 -0
- package/bundled/test-gen/agent/master/scroller.d.ts +15 -0
- package/bundled/test-gen/agent/master/scroller.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/scroller.js +375 -0
- package/bundled/test-gen/agent/master/with-hints.d.ts +17 -0
- package/bundled/test-gen/agent/master/with-hints.d.ts.map +1 -0
- package/bundled/test-gen/agent/master/with-hints.js +102 -0
- package/bundled/test-gen/agent/planner/run-time-planner.d.ts +15 -0
- package/bundled/test-gen/agent/planner/run-time-planner.d.ts.map +1 -0
- package/bundled/test-gen/agent/planner/run-time-planner.js +100 -0
- package/bundled/test-gen/agent/planner/run.d.ts +7 -0
- package/bundled/test-gen/agent/planner/run.d.ts.map +1 -0
- package/bundled/test-gen/agent/planner/run.js +127 -0
- package/bundled/test-gen/agent/utils.d.ts +2 -0
- package/bundled/test-gen/agent/utils.d.ts.map +1 -0
- package/bundled/test-gen/agent/utils.js +12 -0
- package/bundled/test-gen/bin/index.d.ts +3 -0
- package/bundled/test-gen/bin/index.d.ts.map +1 -0
- package/bundled/test-gen/bin/index.js +212 -0
- package/bundled/test-gen/bin/logger/index.d.ts +14 -0
- package/bundled/test-gen/bin/logger/index.d.ts.map +1 -0
- package/bundled/test-gen/bin/logger/index.js +57 -0
- package/bundled/test-gen/bin/utils/context.d.ts +13 -0
- package/bundled/test-gen/bin/utils/context.d.ts.map +1 -0
- package/bundled/test-gen/bin/utils/context.js +67 -0
- package/bundled/test-gen/bin/utils/fs/index.d.ts +6 -0
- package/bundled/test-gen/bin/utils/fs/index.d.ts.map +1 -0
- package/bundled/test-gen/bin/utils/fs/index.js +63 -0
- package/bundled/test-gen/bin/utils/index.d.ts +9 -0
- package/bundled/test-gen/bin/utils/index.d.ts.map +1 -0
- package/bundled/test-gen/bin/utils/index.js +64 -0
- package/bundled/test-gen/bin/utils/platform/web/index.d.ts +78 -0
- package/bundled/test-gen/bin/utils/platform/web/index.d.ts.map +1 -0
- package/bundled/test-gen/bin/utils/platform/web/index.js +544 -0
- package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.d.ts +2 -0
- package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.d.ts.map +1 -0
- package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.js +7 -0
- package/bundled/test-gen/bin/utils/scenarios/index.d.ts +6 -0
- package/bundled/test-gen/bin/utils/scenarios/index.d.ts.map +1 -0
- package/bundled/test-gen/bin/utils/scenarios/index.js +57 -0
- package/bundled/test-gen/browser-injected-scripts/annotate-elements.js +615 -0
- package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.d.ts +2 -0
- package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.d.ts.map +1 -0
- package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.js +207 -0
- package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.ts +332 -0
- package/bundled/test-gen/constants/index.d.ts +7 -0
- package/bundled/test-gen/constants/index.d.ts.map +1 -0
- package/bundled/test-gen/constants/index.js +18 -0
- package/bundled/test-gen/errors/index.d.ts +5 -0
- package/bundled/test-gen/errors/index.d.ts.map +1 -0
- package/bundled/test-gen/errors/index.js +9 -0
- package/bundled/test-gen/evals/add-scenario-agent.evals.d.ts +4 -0
- package/bundled/test-gen/evals/add-scenario-agent.evals.d.ts.map +1 -0
- package/bundled/test-gen/evals/add-scenario-agent.evals.js +44 -0
- package/bundled/test-gen/evals/append-create-test-agent.evals.d.ts +4 -0
- package/bundled/test-gen/evals/append-create-test-agent.evals.d.ts.map +1 -0
- package/bundled/test-gen/evals/append-create-test-agent.evals.js +117 -0
- package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.d.ts +4 -0
- package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.d.ts.map +1 -0
- package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.js +36 -0
- package/bundled/test-gen/evals/infer-master-or-code-agent.evals.d.ts +4 -0
- package/bundled/test-gen/evals/infer-master-or-code-agent.evals.d.ts.map +1 -0
- package/bundled/test-gen/evals/infer-master-or-code-agent.evals.js +22 -0
- package/bundled/test-gen/evals/master-agent.evals.d.ts +4 -0
- package/bundled/test-gen/evals/master-agent.evals.d.ts.map +1 -0
- package/bundled/test-gen/evals/master-agent.evals.js +35 -0
- package/bundled/test-gen/evals/type.d.ts +12 -0
- package/bundled/test-gen/evals/type.d.ts.map +1 -0
- package/bundled/test-gen/evals/type.js +2 -0
- package/bundled/test-gen/evals/update-scenario-agent.evals.d.ts +4 -0
- package/bundled/test-gen/evals/update-scenario-agent.evals.d.ts.map +1 -0
- package/bundled/test-gen/evals/update-scenario-agent.evals.js +47 -0
- package/bundled/test-gen/file/client.d.ts +14 -0
- package/bundled/test-gen/file/client.d.ts.map +1 -0
- package/bundled/test-gen/file/client.js +48 -0
- package/bundled/test-gen/file/server.d.ts +13 -0
- package/bundled/test-gen/file/server.d.ts.map +1 -0
- package/bundled/test-gen/file/server.js +52 -0
- package/bundled/test-gen/human-in-the-loop/cli.d.ts +2 -0
- package/bundled/test-gen/human-in-the-loop/cli.d.ts.map +1 -0
- package/bundled/test-gen/human-in-the-loop/cli.js +24 -0
- package/bundled/test-gen/human-in-the-loop/index.d.ts +12 -0
- package/bundled/test-gen/human-in-the-loop/index.d.ts.map +1 -0
- package/bundled/test-gen/human-in-the-loop/index.js +30 -0
- package/bundled/test-gen/human-in-the-loop/ipc.d.ts +4 -0
- package/bundled/test-gen/human-in-the-loop/ipc.d.ts.map +1 -0
- package/bundled/test-gen/human-in-the-loop/ipc.js +47 -0
- package/bundled/test-gen/index.d.ts +4 -0
- package/bundled/test-gen/index.d.ts.map +1 -0
- package/bundled/test-gen/index.js +55 -0
- package/bundled/test-gen/package.json +106 -0
- package/bundled/test-gen/page/index.d.ts +11 -0
- package/bundled/test-gen/page/index.d.ts.map +1 -0
- package/bundled/test-gen/page/index.js +16 -0
- package/bundled/test-gen/prompts/lib/ts-transformer.d.ts +4 -0
- package/bundled/test-gen/prompts/lib/ts-transformer.d.ts.map +1 -0
- package/bundled/test-gen/prompts/lib/ts-transformer.js +92 -0
- package/bundled/test-gen/reporter/index.d.ts +33 -0
- package/bundled/test-gen/reporter/index.d.ts.map +1 -0
- package/bundled/test-gen/reporter/index.js +161 -0
- package/bundled/test-gen/session/index.d.ts +20 -0
- package/bundled/test-gen/session/index.d.ts.map +1 -0
- package/bundled/test-gen/session/index.js +105 -0
- package/bundled/test-gen/test-build/index.d.ts +10 -0
- package/bundled/test-gen/test-build/index.d.ts.map +1 -0
- package/bundled/test-gen/test-build/index.js +30 -0
- package/bundled/test-gen/types/index.d.ts +69 -0
- package/bundled/test-gen/types/index.d.ts.map +1 -0
- package/bundled/test-gen/types/index.js +2 -0
- package/bundled/test-gen/uploader/index.d.ts +26 -0
- package/bundled/test-gen/uploader/index.d.ts.map +1 -0
- package/bundled/test-gen/uploader/index.js +102 -0
- package/bundled/test-gen/utils/env.d.ts +2 -0
- package/bundled/test-gen/utils/env.d.ts.map +1 -0
- package/bundled/test-gen/utils/env.js +9 -0
- package/bundled/test-gen/utils/exec.d.ts +4 -0
- package/bundled/test-gen/utils/exec.d.ts.map +1 -0
- package/bundled/test-gen/utils/exec.js +45 -0
- package/bundled/test-gen/utils/file.d.ts +2 -0
- package/bundled/test-gen/utils/file.d.ts.map +1 -0
- package/bundled/test-gen/utils/file.js +25 -0
- package/bundled/test-gen/utils/html.d.ts +4 -0
- package/bundled/test-gen/utils/html.d.ts.map +1 -0
- package/bundled/test-gen/utils/html.js +46 -0
- package/bundled/test-gen/utils/index.d.ts +2 -0
- package/bundled/test-gen/utils/index.d.ts.map +1 -0
- package/bundled/test-gen/utils/index.js +5 -0
- package/bundled/test-gen/utils/pw-test.d.ts +3 -0
- package/bundled/test-gen/utils/pw-test.d.ts.map +1 -0
- package/bundled/test-gen/utils/pw-test.js +26 -0
- package/bundled/test-gen/utils/slug.d.ts +2 -0
- package/bundled/test-gen/utils/slug.d.ts.map +1 -0
- package/bundled/test-gen/utils/slug.js +18 -0
- package/bundled/test-gen/utils/string.d.ts +2 -0
- package/bundled/test-gen/utils/string.d.ts.map +1 -0
- package/bundled/test-gen/utils/string.js +9 -0
- package/dist/overlay-tests/click.spec.js +1 -1
- package/package.json +3 -3
- package/scripts/prepare-publish.js +42 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TraceClient } from "@empiricalrun/llm";
|
|
2
|
+
import type { TestCase, TestGenConfigOptions } from "@empiricalrun/shared-types";
|
|
3
|
+
import { CustomLogger } from "../../bin/logger";
|
|
4
|
+
export declare function createTestWithCodeAgent({ testCase, file, repoFiles, trace, }: {
|
|
5
|
+
testCase: TestCase;
|
|
6
|
+
file: string;
|
|
7
|
+
repoFiles: string | undefined;
|
|
8
|
+
trace?: TraceClient;
|
|
9
|
+
logger?: CustomLogger;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
prompt: import("openai/resources/index.mjs").ChatCompletionMessageParam[];
|
|
12
|
+
agentResponse: string;
|
|
13
|
+
fileChanges: import("./types").CreateTestCodeUpdate[];
|
|
14
|
+
}>;
|
|
15
|
+
export declare function generateTest(testCase: TestCase, file: string, options: TestGenConfigOptions, trace?: TraceClient): Promise<TestCase[] | void>;
|
|
16
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/codegen/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAmBhD,wBAAsB,uBAAuB,CAAC,EAC5C,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;;;;GAyDA;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CA8D5B"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateTest = exports.createTestWithCodeAgent = void 0;
|
|
7
|
+
const llm_1 = require("@empiricalrun/llm");
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const logger_1 = require("../../bin/logger");
|
|
10
|
+
const context_1 = require("../../bin/utils/context");
|
|
11
|
+
const web_1 = require("../../bin/utils/platform/web");
|
|
12
|
+
const constants_1 = require("../../constants");
|
|
13
|
+
const promptTemplate_0 = "{{#section \"system\"}}\nYou are a software test engineer who is given a task to write test cases in a Playwright test repository.\nYou will be provided with current test files, fixtures and page object models for you to use and update code as per the\ntask provided to you.\nYou need to respond with file path, the new test code block to be updated in the file and the reason for the change.\n\nHere is the list of files:\n\n{{repoFiles}}\n{{/section}}\n\n{{#section \"user\"}}\nTask: {{task}}\n\n## Follow these instructions before responding with output:\n- Scan the file '{{testFilePath}}' and check whether test case with name '{{testCaseName}}' exists in the file\n- If it exists do not update the file\n- else respond with <file_path></file_path>, <code_block></code_block> and <change></change> as xml tags\n- Only respond with single code_block in the response containing only the test code block to be updated\n{{/section}}";
|
|
14
|
+
const reporter_1 = require("../../reporter");
|
|
15
|
+
const update_flow_1 = require("./update-flow");
|
|
16
|
+
const utils_1 = require("./utils");
|
|
17
|
+
async function createTestWithCodeAgent({ testCase, file, repoFiles, trace, }) {
|
|
18
|
+
const task = `
|
|
19
|
+
Create a new test case with name '${testCase.name}' at file path '${file}'
|
|
20
|
+
${testCase.suites.length
|
|
21
|
+
? `
|
|
22
|
+
Put this test case inside describe blocks named: ${testCase.suites.join(" > ")}`
|
|
23
|
+
: ""}
|
|
24
|
+
|
|
25
|
+
In the above test, write code that performs these actions and ONLY these actions:
|
|
26
|
+
${testCase.steps.join("\n")}`;
|
|
27
|
+
const prompt = (0, llm_1.compilePrompt)(promptTemplate_0, {
|
|
28
|
+
task,
|
|
29
|
+
repoFiles,
|
|
30
|
+
testCaseName: testCase.name,
|
|
31
|
+
testFilePath: file,
|
|
32
|
+
});
|
|
33
|
+
const createTestSpan = trace?.span({
|
|
34
|
+
name: "create-test",
|
|
35
|
+
input: {
|
|
36
|
+
testCase,
|
|
37
|
+
repoFiles,
|
|
38
|
+
testFilePath: file,
|
|
39
|
+
task,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
const llm = new llm_1.LLM({
|
|
43
|
+
trace,
|
|
44
|
+
provider: "anthropic",
|
|
45
|
+
defaultModel: "claude-3-5-sonnet-20240620",
|
|
46
|
+
providerApiKey: constants_1.MODEL_API_KEYS["anthropic"],
|
|
47
|
+
});
|
|
48
|
+
const updatedUsageExampleMessage = await llm.createChatCompletion({
|
|
49
|
+
messages: prompt,
|
|
50
|
+
trace,
|
|
51
|
+
traceName: "create-test-llm",
|
|
52
|
+
modelParameters: {
|
|
53
|
+
...constants_1.DEFAULT_MODEL_PARAMETERS,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
const updates = (0, utils_1.extractCreateTestUpdates)(updatedUsageExampleMessage?.content);
|
|
57
|
+
createTestSpan?.end({
|
|
58
|
+
output: { updates },
|
|
59
|
+
});
|
|
60
|
+
console.log("Updates: ", updates);
|
|
61
|
+
return {
|
|
62
|
+
prompt,
|
|
63
|
+
agentResponse: updatedUsageExampleMessage?.content,
|
|
64
|
+
fileChanges: updates,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
exports.createTestWithCodeAgent = createTestWithCodeAgent;
|
|
68
|
+
async function generateTest(testCase, file, options, trace) {
|
|
69
|
+
const logger = new logger_1.CustomLogger();
|
|
70
|
+
if (!fs_extra_1.default.existsSync(file)) {
|
|
71
|
+
logger.log(`Creating a new spec file: ${file}`);
|
|
72
|
+
fs_extra_1.default.createFileSync(file);
|
|
73
|
+
}
|
|
74
|
+
const context = await (0, context_1.contextForGeneration)(file);
|
|
75
|
+
const { testFileContent } = context;
|
|
76
|
+
const { testBlock } = (0, web_1.getTypescriptTestBlock)({
|
|
77
|
+
scenarioName: testCase?.name,
|
|
78
|
+
content: testFileContent,
|
|
79
|
+
suites: testCase?.suites,
|
|
80
|
+
});
|
|
81
|
+
// Update the test if it already exists
|
|
82
|
+
const isUpdate = !!testBlock;
|
|
83
|
+
if (isUpdate) {
|
|
84
|
+
logger.log(`Updating the test '${testCase.name}': [View trace](${trace?.getTraceUrl()})`);
|
|
85
|
+
return await (0, update_flow_1.updateTest)(testCase, file, options, true, true, trace);
|
|
86
|
+
}
|
|
87
|
+
const testgenUpdatesReporter = new reporter_1.TestGenUpdatesReporter();
|
|
88
|
+
void testgenUpdatesReporter.sendMessage(`Updating test code as per the task. \n View [trace](${trace?.getTraceUrl()})`);
|
|
89
|
+
logger?.log(`Creating a new test case '${testCase.name}': [trace](${trace?.getTraceUrl()})`);
|
|
90
|
+
// Create the test if it doesn't exist
|
|
91
|
+
const { prompt: repoFiles } = await (0, context_1.generateTxtForRepository)();
|
|
92
|
+
const updates = await createTestWithCodeAgent({
|
|
93
|
+
testCase,
|
|
94
|
+
file,
|
|
95
|
+
repoFiles,
|
|
96
|
+
trace,
|
|
97
|
+
logger,
|
|
98
|
+
});
|
|
99
|
+
await (0, utils_1.applyFileChangesForCreateTest)({
|
|
100
|
+
trace,
|
|
101
|
+
fileChanges: updates.fileChanges,
|
|
102
|
+
testgenUpdatesReporter,
|
|
103
|
+
});
|
|
104
|
+
await (0, utils_1.validateTypesAndFormatCode)({
|
|
105
|
+
validateTypes: true,
|
|
106
|
+
trace,
|
|
107
|
+
testCase: {},
|
|
108
|
+
filePaths: updates.fileChanges.map((f) => f.filePath),
|
|
109
|
+
});
|
|
110
|
+
await Promise.all(updates.fileChanges.map((f) => {
|
|
111
|
+
return (async () => {
|
|
112
|
+
if (fs_extra_1.default.existsSync(f.filePath)) {
|
|
113
|
+
await (0, web_1.lintErrors)(f.filePath);
|
|
114
|
+
}
|
|
115
|
+
})();
|
|
116
|
+
}));
|
|
117
|
+
await (0, llm_1.flushAllTraces)();
|
|
118
|
+
}
|
|
119
|
+
exports.generateTest = generateTest;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TraceClient } from "@empiricalrun/llm";
|
|
2
|
+
import type { TestCase, TestGenConfigOptions } from "@empiricalrun/shared-types";
|
|
3
|
+
export declare const fetchPomSkills: ({ testCase, pomFiles, options, trace, }: {
|
|
4
|
+
testCase: TestCase;
|
|
5
|
+
pomFiles?: string | undefined;
|
|
6
|
+
trace?: TraceClient | undefined;
|
|
7
|
+
options?: TestGenConfigOptions | undefined;
|
|
8
|
+
}) => Promise<{
|
|
9
|
+
testStep: string;
|
|
10
|
+
filePath: string;
|
|
11
|
+
usageExample: string;
|
|
12
|
+
reason: string;
|
|
13
|
+
methodName: string;
|
|
14
|
+
}[]>;
|
|
15
|
+
export declare function getAppropriateSkills({ testCase, options, trace, }: {
|
|
16
|
+
testCase: TestCase;
|
|
17
|
+
options?: TestGenConfigOptions;
|
|
18
|
+
trace?: TraceClient;
|
|
19
|
+
}): Promise<{
|
|
20
|
+
testStep: string;
|
|
21
|
+
filePath: string;
|
|
22
|
+
usageExample: string;
|
|
23
|
+
reason: string;
|
|
24
|
+
methodName: string;
|
|
25
|
+
}[]>;
|
|
26
|
+
//# sourceMappingURL=skills-retriever.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-retriever.d.ts","sourceRoot":"","sources":["../../../src/agent/codegen/skills-retriever.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAmBpC,eAAO,MAAM,cAAc;cAMf,QAAQ;;;;;;;;;;IAwDnB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,EACzC,QAAQ,EACR,OAAO,EACP,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;;;;;;KA6BA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getAppropriateSkills = exports.fetchPomSkills = void 0;
|
|
7
|
+
const llm_1 = require("@empiricalrun/llm");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const logger_1 = require("../../bin/logger");
|
|
10
|
+
const context_1 = require("../../bin/utils/context");
|
|
11
|
+
const fs_2 = require("../../bin/utils/fs");
|
|
12
|
+
const constants_1 = require("../../constants");
|
|
13
|
+
const promptTemplate_0 = "{{#section \"system\"}}\nYou are provided with usage examples of page object models of a Playwright test\nrepository and you are given a task to update the usage example of the page object\nmodels with the usage of them in tests. \n\nYou need to ensure all the pre-requisites of calling the method is also mentioned\nin the usage example. Use the tests code for same\n\n{{/section}}\n\n{{#section \"user\"}}\nUsage examples of page object models:\n\n{{response}}\n\nTests files:\n\n{{codePrompt}}\n\n\nBefore responding: \n- ensure responding in the same format as provided to you in the usage example of page object models.\n- respond only with the methods and not any test block\n- respond with the same format provided to you in task. <subtask></subtask>, <reason></reason>, <file_import_path></file_import_path>, <usage_example></usage_example> and\n<method_name></method_name>\n- do not respond with test blocks or page or fixture extraction as its already available at the time of execution\n- do not respond with backticks or markdown at all \n- do not respond with import statements and assume the imports are already available at the time of execution\n{{/section}}\n";
|
|
14
|
+
const promptTemplate_1 = "{{#section \"system\"}}\nYou are a software test engineer who is given a goal to pick re-usable page object model methods for a given UI\nautomation test.\n\nYou will be provided with a test scenario as task and also the page object model methods available in the automation\ntest repository. The page object models acts as skills to execute a particular sub task of a given task.\n\nYou need to break down the task into sub tasks and identify which sub_task can be solved with the help of page object\nmodel methods. Once identified, you need to return with an usage API example for same. You need to pick methods only\nfrom the provided page object models.\n\nHere is the list of current page object models:\n\n{{pageFiles}}\n\n{{/section}}\n\n{{#section \"user\"}}\nFollowing is the test scenario for which you need to figure out the skills:\n\n**Task:**\n{{scenario}}\n\nBefore responding follow the instructions:\n- You need to break down the task into subtask and respond with the code of sub tasks for which there are methods\nexposed from page object models\n- Only use methods that are explicitly defined and exported in the provided page object models. Do not create, infer, or\nassume any methods or code that are not exported from the page object model files.\n- Do not respond with any methods or code that are not available in the list of page object models.\n- Ensure there are no type issues in the code generated.\n- Do not respond with markdown syntax or backticks.\n- Respond only with the code\n- Read steps one by one and generate the test code\n- Do not write any extra code than instructed in the steps\n- You need to respond with `<subtask></subtask>`, `<reason></reason>`, `<file_import_path></file_import_path>`, `\n<usage_example></usage_example>` and `<method_name></method_name>`\n- You should respond with methods exported from the page object models\n- Do not respond with any import statements.\n- Do not respond with sub_task for which there is no explicit method found\n- Always pick the page object model method matching the task provided. If there is no matching method, then ignore it.\nDo not attempt to generate or use any non existent methods for such instances.\n- Respond with the usage_example so that it can be directly copy pasted inside the test\n- Do not set the parameters for the method. Keep it as is with the interface parameters\n{{/section}}";
|
|
15
|
+
const utils_1 = require("./utils");
|
|
16
|
+
const fetchPomSkills = async ({ testCase, pomFiles, options, trace, }) => {
|
|
17
|
+
const fetchSkillsUsingPOMFilesSpan = trace?.span({
|
|
18
|
+
name: "fetch-pom-skills",
|
|
19
|
+
input: {
|
|
20
|
+
pomFiles,
|
|
21
|
+
testCase,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const promptSpan = fetchSkillsUsingPOMFilesSpan?.span({
|
|
25
|
+
name: "fetch-pom-skills-prompt",
|
|
26
|
+
});
|
|
27
|
+
const prompt = (0, llm_1.compilePrompt)(promptTemplate_1, {
|
|
28
|
+
pageFiles: pomFiles,
|
|
29
|
+
scenarioName: testCase.name,
|
|
30
|
+
scenario: testCase.steps.join("\n"),
|
|
31
|
+
});
|
|
32
|
+
promptSpan?.end({ output: { prompt } });
|
|
33
|
+
const llm = new llm_1.LLM({
|
|
34
|
+
trace: fetchSkillsUsingPOMFilesSpan,
|
|
35
|
+
provider: options?.modelProvider || constants_1.DEFAULT_MODEL_PROVIDER,
|
|
36
|
+
defaultModel: options?.model || constants_1.DEFAULT_MODEL,
|
|
37
|
+
providerApiKey: constants_1.MODEL_API_KEYS[options?.modelProvider || constants_1.DEFAULT_MODEL_PROVIDER],
|
|
38
|
+
});
|
|
39
|
+
const firstShotMessage = await llm.createChatCompletion({
|
|
40
|
+
messages: prompt,
|
|
41
|
+
traceName: "fetch-pom-skills-llm",
|
|
42
|
+
modelParameters: {
|
|
43
|
+
...constants_1.DEFAULT_MODEL_PARAMETERS,
|
|
44
|
+
...options?.modelParameters,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
let response = firstShotMessage?.content || "";
|
|
48
|
+
const { codePrompt } = await (0, context_1.contextForGeneration)();
|
|
49
|
+
const updatedUsageExampleMessage = await llm.createChatCompletion({
|
|
50
|
+
messages: (0, llm_1.compilePrompt)(promptTemplate_0, {
|
|
51
|
+
response,
|
|
52
|
+
codePrompt,
|
|
53
|
+
}),
|
|
54
|
+
traceName: "fetch-pom-skills-usage-eg-update-llm",
|
|
55
|
+
modelParameters: {
|
|
56
|
+
...constants_1.DEFAULT_MODEL_PARAMETERS,
|
|
57
|
+
...options?.modelParameters,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
const skills = (0, utils_1.extractTestStepsSuggestions)(updatedUsageExampleMessage?.content || "");
|
|
61
|
+
fetchSkillsUsingPOMFilesSpan?.end({ output: { skills } });
|
|
62
|
+
return skills;
|
|
63
|
+
};
|
|
64
|
+
exports.fetchPomSkills = fetchPomSkills;
|
|
65
|
+
async function getAppropriateSkills({ testCase, options, trace, }) {
|
|
66
|
+
const logger = new logger_1.CustomLogger({ useReporter: false });
|
|
67
|
+
logger.log("getting skill set for the repository");
|
|
68
|
+
const filter = await (0, context_1.createGitIgnoreFileFilter)();
|
|
69
|
+
const pomFiles = await (0, fs_2.generatePromptFromDirectory)("./pages", filter);
|
|
70
|
+
const fetchSkillsSpan = trace?.span({
|
|
71
|
+
name: "get-appropriate-skills",
|
|
72
|
+
input: {
|
|
73
|
+
testCase,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
const skills = await (0, exports.fetchPomSkills)({
|
|
77
|
+
testCase,
|
|
78
|
+
pomFiles,
|
|
79
|
+
trace: fetchSkillsSpan,
|
|
80
|
+
options,
|
|
81
|
+
});
|
|
82
|
+
const validateSkillsSpan = fetchSkillsSpan?.span({
|
|
83
|
+
name: "validate-skills",
|
|
84
|
+
input: {
|
|
85
|
+
skills,
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
const validatedSkills = skills.filter((skill) => fs_1.default.existsSync(skill.filePath));
|
|
89
|
+
validateSkillsSpan?.end({ output: { validatedSkills } });
|
|
90
|
+
fetchSkillsSpan?.end({ output: { validatedSkills } });
|
|
91
|
+
return validatedSkills;
|
|
92
|
+
}
|
|
93
|
+
exports.getAppropriateSkills = getAppropriateSkills;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TraceClient } from "@empiricalrun/llm";
|
|
2
|
+
import { ChatCompletionMessageParam } from "openai/resources/index.mjs";
|
|
3
|
+
export declare function applyTestUpdateFeedbacks({ trace, oldPrompt, feedbacks, agentResponse, }: {
|
|
4
|
+
oldPrompt: ChatCompletionMessageParam[];
|
|
5
|
+
agentResponse: string;
|
|
6
|
+
feedbacks: {
|
|
7
|
+
filePath: string | undefined;
|
|
8
|
+
errorMessage: string;
|
|
9
|
+
}[];
|
|
10
|
+
trace?: TraceClient;
|
|
11
|
+
}): Promise<import("./types").CodeUpdate[]>;
|
|
12
|
+
//# sourceMappingURL=test-update-feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-update-feedback.d.ts","sourceRoot":"","sources":["../../../src/agent/codegen/test-update-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAKxE,wBAAsB,wBAAwB,CAAC,EAC7C,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,GACd,EAAE;IACD,SAAS,EAAE,0BAA0B,EAAE,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;IACJ,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,2CA4CA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyTestUpdateFeedbacks = void 0;
|
|
4
|
+
const llm_1 = require("@empiricalrun/llm");
|
|
5
|
+
const constants_1 = require("../../constants");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
async function applyTestUpdateFeedbacks({ trace, oldPrompt, feedbacks, agentResponse, }) {
|
|
8
|
+
const applyTestUpdateFeedbacksSpan = trace?.span({
|
|
9
|
+
name: "apply-test-update-feedbacks",
|
|
10
|
+
input: {
|
|
11
|
+
oldPrompt,
|
|
12
|
+
feedbacks,
|
|
13
|
+
agentResponse,
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
const llm = new llm_1.LLM({
|
|
17
|
+
trace: applyTestUpdateFeedbacksSpan,
|
|
18
|
+
provider: "openai",
|
|
19
|
+
defaultModel: "gpt-4o",
|
|
20
|
+
providerApiKey: constants_1.MODEL_API_KEYS["openai"],
|
|
21
|
+
});
|
|
22
|
+
const response = await llm.createChatCompletion({
|
|
23
|
+
traceName: "test-update-feedbacks-llm",
|
|
24
|
+
modelParameters: {
|
|
25
|
+
...constants_1.DEFAULT_MODEL_PARAMETERS,
|
|
26
|
+
temperature: 1,
|
|
27
|
+
},
|
|
28
|
+
messages: [
|
|
29
|
+
...oldPrompt,
|
|
30
|
+
{
|
|
31
|
+
role: "assistant",
|
|
32
|
+
content: agentResponse,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
role: "user",
|
|
36
|
+
content: `
|
|
37
|
+
Following errors were found in the previous response
|
|
38
|
+
${feedbacks.map((f) => `- ${f.errorMessage}`).join("\n")}
|
|
39
|
+
|
|
40
|
+
Fix the above failures and respond with same format as the previous response`,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
});
|
|
44
|
+
const updatedResponse = response?.content || "";
|
|
45
|
+
const fileChanges = (0, utils_1.extractTestUpdates)(updatedResponse);
|
|
46
|
+
const filteredFileChanges = fileChanges.filter((f) => feedbacks.some((e) => e?.filePath === f.filePath));
|
|
47
|
+
applyTestUpdateFeedbacksSpan?.end({ output: { fileChanges } });
|
|
48
|
+
return filteredFileChanges;
|
|
49
|
+
}
|
|
50
|
+
exports.applyTestUpdateFeedbacks = applyTestUpdateFeedbacks;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { TestCase } from "@empiricalrun/shared-types";
|
|
2
|
+
export type CodeUpdate = {
|
|
3
|
+
filePath: string | undefined;
|
|
4
|
+
oldCode: string | undefined;
|
|
5
|
+
newCode: string | undefined;
|
|
6
|
+
reason: string | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type CreateTestCodeUpdate = {
|
|
9
|
+
filePath: string | undefined;
|
|
10
|
+
code: string | undefined;
|
|
11
|
+
reason: string | undefined;
|
|
12
|
+
};
|
|
13
|
+
export type FileUpdateResponse = {
|
|
14
|
+
error: boolean;
|
|
15
|
+
errorMessage: string;
|
|
16
|
+
filePath: string;
|
|
17
|
+
};
|
|
18
|
+
export type UpdatedTestCase = TestCase & {
|
|
19
|
+
updatedFiles: string[];
|
|
20
|
+
};
|
|
21
|
+
export declare enum CodeEditorToolCall {
|
|
22
|
+
STR_REPLACE = "str_replace",
|
|
23
|
+
CREATE_FILE = "create_file"
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/codegen/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,oBAAY,kBAAkB;IAC5B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;CAC5B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodeEditorToolCall = void 0;
|
|
4
|
+
var CodeEditorToolCall;
|
|
5
|
+
(function (CodeEditorToolCall) {
|
|
6
|
+
CodeEditorToolCall["STR_REPLACE"] = "str_replace";
|
|
7
|
+
CodeEditorToolCall["CREATE_FILE"] = "create_file";
|
|
8
|
+
})(CodeEditorToolCall || (exports.CodeEditorToolCall = CodeEditorToolCall = {}));
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TraceClient } from "@empiricalrun/llm";
|
|
2
|
+
import type { TestCase, TestGenConfigOptions } from "@empiricalrun/shared-types";
|
|
3
|
+
import { ChatCompletionMessageParam } from "openai/resources/index.mjs";
|
|
4
|
+
import { CodeUpdate, UpdatedTestCase } from "./types";
|
|
5
|
+
export declare function getUpdateTestCodeCompletion({ testCase, testFileContent, testFiles, pageFiles, testFilePath, options, trace, }: {
|
|
6
|
+
testCase: TestCase;
|
|
7
|
+
testFiles: string;
|
|
8
|
+
pageFiles: string;
|
|
9
|
+
testFilePath: string;
|
|
10
|
+
testFileContent: string;
|
|
11
|
+
trace?: TraceClient;
|
|
12
|
+
options?: TestGenConfigOptions;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
prompt: ChatCompletionMessageParam[];
|
|
15
|
+
agentResponse: string;
|
|
16
|
+
fileChanges: CodeUpdate[];
|
|
17
|
+
}>;
|
|
18
|
+
export declare function updateTest(testCase: TestCase, file: string, options: TestGenConfigOptions | undefined, logging?: boolean, validate?: boolean, trace?: TraceClient): Promise<UpdatedTestCase[]>;
|
|
19
|
+
export declare function getAppendCreateTestBlockCompletion({ testFiles, pageFiles, testCase, testFilePath, options, trace, }: {
|
|
20
|
+
trace?: TraceClient;
|
|
21
|
+
pageFiles?: string;
|
|
22
|
+
testFiles: string;
|
|
23
|
+
testCase: TestCase;
|
|
24
|
+
options?: TestGenConfigOptions;
|
|
25
|
+
testFilePath: string;
|
|
26
|
+
}): Promise<string>;
|
|
27
|
+
export declare function appendCreateTestBlock({ testCase, file, options, trace, validateTypes, }: {
|
|
28
|
+
testCase: TestCase;
|
|
29
|
+
file: string;
|
|
30
|
+
options?: TestGenConfigOptions;
|
|
31
|
+
trace?: TraceClient;
|
|
32
|
+
validateTypes?: boolean;
|
|
33
|
+
}): Promise<UpdatedTestCase[]>;
|
|
34
|
+
//# sourceMappingURL=update-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-flow.d.ts","sourceRoot":"","sources":["../../../src/agent/codegen/update-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAexE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQtD,wBAAsB,2BAA2B,CAAC,EAChD,QAAQ,EACR,eAAe,EACf,SAAS,EACT,SAAS,EACT,YAAY,EACZ,OAAO,EACP,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,0BAA0B,EAAE,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC,CAkDD;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,OAAO,GAAE,OAAc,EACvB,QAAQ,GAAE,OAAc,EACxB,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,EAAE,CAAC,CA+F5B;AAED,wBAAsB,kCAAkC,CAAC,EACvD,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,KAAK,GACN,EAAE;IACD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;CACtB,mBAmGA;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,KAAK,EACL,aAAoB,GACrB,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAqD7B"}
|