donobu 2.23.0 → 2.23.1
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/package.json +1 -1
- package/dist/apis/EnvironmentDataApi.d.ts +0 -26
- package/dist/apis/EnvironmentDataApi.d.ts.map +0 -1
- package/dist/apis/EnvironmentDataApi.js +0 -59
- package/dist/apis/EnvironmentDataApi.js.map +0 -1
- package/dist/assets/donobu-virtual-mouse.svg +0 -11
- package/dist/assets/donobu.css +0 -62
- package/dist/assets/generated/parameter-schemas.json +0 -2241
- package/dist/assets/record.umd.min.cjs +0 -10399
- package/dist/bindings/FocusPage.d.ts +0 -23
- package/dist/bindings/FocusPage.d.ts.map +0 -1
- package/dist/bindings/FocusPage.js +0 -20
- package/dist/bindings/FocusPage.js.map +0 -1
- package/dist/bindings/ToggleDonobuAnnotations.d.ts +0 -21
- package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
- package/dist/bindings/ToggleDonobuAnnotations.js +0 -51
- package/dist/bindings/ToggleDonobuAnnotations.js.map +0 -1
- package/dist/esm/apis/EnvironmentDataApi.d.ts +0 -26
- package/dist/esm/apis/EnvironmentDataApi.d.ts.map +0 -1
- package/dist/esm/apis/EnvironmentDataApi.js +0 -59
- package/dist/esm/apis/EnvironmentDataApi.js.map +0 -1
- package/dist/esm/assets/donobu-virtual-mouse.svg +0 -11
- package/dist/esm/assets/donobu.css +0 -62
- package/dist/esm/assets/generated/parameter-schemas.json +0 -2241
- package/dist/esm/assets/record.umd.min.cjs +0 -10399
- package/dist/esm/bindings/FocusPage.d.ts +0 -23
- package/dist/esm/bindings/FocusPage.d.ts.map +0 -1
- package/dist/esm/bindings/FocusPage.js +0 -20
- package/dist/esm/bindings/FocusPage.js.map +0 -1
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +0 -21
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +0 -1
- package/dist/esm/bindings/ToggleDonobuAnnotations.js +0 -51
- package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +0 -1
- package/dist/esm/lib/constants.d.ts +0 -8
- package/dist/esm/lib/constants.d.ts.map +0 -1
- package/dist/esm/lib/constants.js +0 -14
- package/dist/esm/lib/constants.js.map +0 -1
- package/dist/esm/lib/fixtures/testExtension.d.ts +0 -10
- package/dist/esm/lib/fixtures/testExtension.d.ts.map +0 -1
- package/dist/esm/lib/fixtures/testExtension.js +0 -383
- package/dist/esm/lib/fixtures/testExtension.js.map +0 -1
- package/dist/esm/lib/types.d.ts +0 -106
- package/dist/esm/lib/types.d.ts.map +0 -1
- package/dist/esm/lib/types.js +0 -3
- package/dist/esm/lib/types.js.map +0 -1
- package/dist/esm/managers/EnvironmentDataManager.d.ts +0 -58
- package/dist/esm/managers/EnvironmentDataManager.d.ts.map +0 -1
- package/dist/esm/managers/EnvironmentDataManager.js +0 -134
- package/dist/esm/managers/EnvironmentDataManager.js.map +0 -1
- package/dist/esm/managers/ProjectStructureGenerator.d.ts +0 -62
- package/dist/esm/managers/ProjectStructureGenerator.d.ts.map +0 -1
- package/dist/esm/managers/ProjectStructureGenerator.js +0 -234
- package/dist/esm/managers/ProjectStructureGenerator.js.map +0 -1
- package/dist/esm/managers/TestFileUpdater.d.ts +0 -56
- package/dist/esm/managers/TestFileUpdater.d.ts.map +0 -1
- package/dist/esm/managers/TestFileUpdater.js +0 -224
- package/dist/esm/managers/TestFileUpdater.js.map +0 -1
- package/dist/esm/models/AskAiRequest.d.ts +0 -15
- package/dist/esm/models/AskAiRequest.d.ts.map +0 -1
- package/dist/esm/models/AskAiRequest.js +0 -3
- package/dist/esm/models/AskAiRequest.js.map +0 -1
- package/dist/esm/models/BaseToolGptParameters.d.ts +0 -10
- package/dist/esm/models/BaseToolGptParameters.d.ts.map +0 -1
- package/dist/esm/models/BaseToolGptParameters.js +0 -3
- package/dist/esm/models/BaseToolGptParameters.js.map +0 -1
- package/dist/esm/models/BrowserFramework.d.ts +0 -61
- package/dist/esm/models/BrowserFramework.d.ts.map +0 -1
- package/dist/esm/models/BrowserFramework.js +0 -339
- package/dist/esm/models/BrowserFramework.js.map +0 -1
- package/dist/esm/models/EnvironmentDatum.d.ts +0 -54
- package/dist/esm/models/EnvironmentDatum.d.ts.map +0 -1
- package/dist/esm/models/EnvironmentDatum.js +0 -57
- package/dist/esm/models/EnvironmentDatum.js.map +0 -1
- package/dist/esm/models/FlowsQuery.d.ts +0 -12
- package/dist/esm/models/FlowsQuery.d.ts.map +0 -1
- package/dist/esm/models/FlowsQuery.js +0 -3
- package/dist/esm/models/FlowsQuery.js.map +0 -1
- package/dist/esm/persistence/AgentsPersistence.d.ts +0 -12
- package/dist/esm/persistence/AgentsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/AgentsPersistence.js +0 -3
- package/dist/esm/persistence/AgentsPersistence.js.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts +0 -15
- package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceSqlite.js +0 -50
- package/dist/esm/persistence/AgentsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts +0 -14
- package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceVolatile.js +0 -26
- package/dist/esm/persistence/AgentsPersistenceVolatile.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistence.d.ts +0 -104
- package/dist/esm/persistence/FlowsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistence.js +0 -3
- package/dist/esm/persistence/FlowsPersistence.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js +0 -525
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactory.d.ts +0 -10
- package/dist/esm/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactory.js +0 -3
- package/dist/esm/persistence/FlowsPersistenceFactory.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +0 -235
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js +0 -24
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js +0 -381
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +0 -44
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.js +0 -264
- package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +0 -44
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.js +0 -262
- package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +0 -41
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.js +0 -171
- package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistence.d.ts +0 -12
- package/dist/esm/persistence/GptConfigsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistence.js +0 -3
- package/dist/esm/persistence/GptConfigsPersistence.js.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.js +0 -35
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.js +0 -31
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
- package/dist/esm/playwrightTestExtensions.d.ts +0 -155
- package/dist/esm/playwrightTestExtensions.d.ts.map +0 -1
- package/dist/esm/playwrightTestExtensions.js +0 -688
- package/dist/esm/playwrightTestExtensions.js.map +0 -1
- package/dist/esm/utils/ToolsPluginsLoader.d.ts +0 -52
- package/dist/esm/utils/ToolsPluginsLoader.d.ts.map +0 -1
- package/dist/esm/utils/ToolsPluginsLoader.js +0 -301
- package/dist/esm/utils/ToolsPluginsLoader.js.map +0 -1
- package/dist/lib/autoTest.d.ts +0 -2
- package/dist/lib/autoTest.d.ts.map +0 -1
- package/dist/lib/autoTest.js +0 -17
- package/dist/lib/autoTest.js.map +0 -1
- package/dist/lib/constants.d.ts +0 -8
- package/dist/lib/constants.d.ts.map +0 -1
- package/dist/lib/constants.js +0 -14
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/fixtures/testExtension.d.ts +0 -10
- package/dist/lib/fixtures/testExtension.d.ts.map +0 -1
- package/dist/lib/fixtures/testExtension.js +0 -383
- package/dist/lib/fixtures/testExtension.js.map +0 -1
- package/dist/lib/types.d.ts +0 -106
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -3
- package/dist/lib/types.js.map +0 -1
- package/dist/managers/EnvironmentDataManager.d.ts +0 -58
- package/dist/managers/EnvironmentDataManager.d.ts.map +0 -1
- package/dist/managers/EnvironmentDataManager.js +0 -134
- package/dist/managers/EnvironmentDataManager.js.map +0 -1
- package/dist/managers/ProjectStructureGenerator.d.ts +0 -62
- package/dist/managers/ProjectStructureGenerator.d.ts.map +0 -1
- package/dist/managers/ProjectStructureGenerator.js +0 -234
- package/dist/managers/ProjectStructureGenerator.js.map +0 -1
- package/dist/managers/TestFileUpdater.d.ts +0 -56
- package/dist/managers/TestFileUpdater.d.ts.map +0 -1
- package/dist/managers/TestFileUpdater.js +0 -224
- package/dist/managers/TestFileUpdater.js.map +0 -1
- package/dist/models/AskAiRequest.d.ts +0 -15
- package/dist/models/AskAiRequest.d.ts.map +0 -1
- package/dist/models/AskAiRequest.js +0 -3
- package/dist/models/AskAiRequest.js.map +0 -1
- package/dist/models/BaseToolGptParameters.d.ts +0 -10
- package/dist/models/BaseToolGptParameters.d.ts.map +0 -1
- package/dist/models/BaseToolGptParameters.js +0 -3
- package/dist/models/BaseToolGptParameters.js.map +0 -1
- package/dist/models/BrowserFramework.d.ts +0 -51
- package/dist/models/BrowserFramework.d.ts.map +0 -1
- package/dist/models/BrowserFramework.js +0 -364
- package/dist/models/BrowserFramework.js.map +0 -1
- package/dist/models/EnvironmentDatum.d.ts +0 -54
- package/dist/models/EnvironmentDatum.d.ts.map +0 -1
- package/dist/models/EnvironmentDatum.js +0 -57
- package/dist/models/EnvironmentDatum.js.map +0 -1
- package/dist/models/FlowsQuery.d.ts +0 -12
- package/dist/models/FlowsQuery.d.ts.map +0 -1
- package/dist/models/FlowsQuery.js +0 -3
- package/dist/models/FlowsQuery.js.map +0 -1
- package/dist/persistence/AgentsPersistence.d.ts +0 -12
- package/dist/persistence/AgentsPersistence.d.ts.map +0 -1
- package/dist/persistence/AgentsPersistence.js +0 -3
- package/dist/persistence/AgentsPersistence.js.map +0 -1
- package/dist/persistence/AgentsPersistenceSqlite.d.ts +0 -15
- package/dist/persistence/AgentsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/AgentsPersistenceSqlite.js +0 -50
- package/dist/persistence/AgentsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/AgentsPersistenceVolatile.d.ts +0 -14
- package/dist/persistence/AgentsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/AgentsPersistenceVolatile.js +0 -26
- package/dist/persistence/AgentsPersistenceVolatile.js.map +0 -1
- package/dist/persistence/FlowsPersistence.d.ts +0 -104
- package/dist/persistence/FlowsPersistence.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistence.js +0 -3
- package/dist/persistence/FlowsPersistence.js.map +0 -1
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts +0 -75
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceAwsS3.js +0 -525
- package/dist/persistence/FlowsPersistenceAwsS3.js.map +0 -1
- package/dist/persistence/FlowsPersistenceFactory.d.ts +0 -10
- package/dist/persistence/FlowsPersistenceFactory.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceFactory.js +0 -3
- package/dist/persistence/FlowsPersistenceFactory.js.map +0 -1
- package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -57
- package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceFactoryImpl.js +0 -235
- package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +0 -1
- package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts +0 -13
- package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceFactoryPreset.js +0 -24
- package/dist/persistence/FlowsPersistenceFactoryPreset.js.map +0 -1
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts +0 -69
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceFilesystem.js +0 -381
- package/dist/persistence/FlowsPersistenceFilesystem.js.map +0 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +0 -75
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +0 -485
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
- package/dist/persistence/FlowsPersistenceSqlite.d.ts +0 -44
- package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceSqlite.js +0 -264
- package/dist/persistence/FlowsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/FlowsPersistenceSupabase.d.ts +0 -44
- package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceSupabase.js +0 -262
- package/dist/persistence/FlowsPersistenceSupabase.js.map +0 -1
- package/dist/persistence/FlowsPersistenceVolatile.d.ts +0 -41
- package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/FlowsPersistenceVolatile.js +0 -171
- package/dist/persistence/FlowsPersistenceVolatile.js.map +0 -1
- package/dist/persistence/GptConfigsPersistence.d.ts +0 -12
- package/dist/persistence/GptConfigsPersistence.d.ts.map +0 -1
- package/dist/persistence/GptConfigsPersistence.js +0 -3
- package/dist/persistence/GptConfigsPersistence.js.map +0 -1
- package/dist/persistence/GptConfigsPersistenceSqlite.d.ts +0 -13
- package/dist/persistence/GptConfigsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/GptConfigsPersistenceSqlite.js +0 -35
- package/dist/persistence/GptConfigsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/GptConfigsPersistenceVolatile.d.ts +0 -15
- package/dist/persistence/GptConfigsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/GptConfigsPersistenceVolatile.js +0 -31
- package/dist/persistence/GptConfigsPersistenceVolatile.js.map +0 -1
- package/dist/playwrightTestExtensions.d.ts +0 -155
- package/dist/playwrightTestExtensions.d.ts.map +0 -1
- package/dist/playwrightTestExtensions.js +0 -688
- package/dist/playwrightTestExtensions.js.map +0 -1
- package/dist/tools/CreatePageObjectModel.d.ts +0 -16
- package/dist/tools/CreatePageObjectModel.d.ts.map +0 -1
- package/dist/tools/CreatePageObjectModel.js +0 -33
- package/dist/tools/CreatePageObjectModel.js.map +0 -1
- package/dist/utils/ToolsPluginsLoader.d.ts +0 -52
- package/dist/utils/ToolsPluginsLoader.d.ts.map +0 -1
- package/dist/utils/ToolsPluginsLoader.js +0 -301
- package/dist/utils/ToolsPluginsLoader.js.map +0 -1
- /package/dist/utils/{jsonSchemaUtils.d.ts → JsonSchemaUtils.d.ts} +0 -0
- /package/dist/utils/{jsonSchemaUtils.d.ts.map → JsonSchemaUtils.d.ts.map} +0 -0
- /package/dist/utils/{jsonSchemaUtils.js → JsonSchemaUtils.js} +0 -0
- /package/dist/utils/{jsonSchemaUtils.js.map → JsonSchemaUtils.js.map} +0 -0
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { FocusedPage } from '../models/FocusedPage';
|
|
2
|
-
import { NamedBindingCallback } from './NamedBindingCallback';
|
|
3
|
-
import { BrowserContext, Page, Frame } from 'playwright';
|
|
4
|
-
declare global {
|
|
5
|
-
interface Window {
|
|
6
|
-
[FocusPage.NAME]: () => void;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* A binding that brings the page executing this callback into focus.
|
|
11
|
-
*/
|
|
12
|
-
export declare class FocusPage implements NamedBindingCallback {
|
|
13
|
-
private readonly focusedPage;
|
|
14
|
-
static readonly NAME = "donobuFocusPage";
|
|
15
|
-
constructor(focusedPage: FocusedPage);
|
|
16
|
-
name(): string;
|
|
17
|
-
call(source: {
|
|
18
|
-
context: BrowserContext;
|
|
19
|
-
page: Page;
|
|
20
|
-
frame: Frame;
|
|
21
|
-
}, ..._args: any[]): void;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=FocusPage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FocusPage.d.ts","sourceRoot":"","sources":["../../../src/bindings/FocusPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;KAC9B;CACF;AAED;;GAEG;AACH,qBAAa,SAAU,YAAW,oBAAoB;IAGjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAF/C,gBAAuB,IAAI,qBAAqB;gBAEZ,WAAW,EAAE,WAAW;IAErD,IAAI,IAAI,MAAM;IAId,IAAI,CACT,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,KAAK,EAAE,GAAG,EAAE,GACd,IAAI;CAGR"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FocusPage = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* A binding that brings the page executing this callback into focus.
|
|
6
|
-
*/
|
|
7
|
-
class FocusPage {
|
|
8
|
-
constructor(focusedPage) {
|
|
9
|
-
this.focusedPage = focusedPage;
|
|
10
|
-
}
|
|
11
|
-
name() {
|
|
12
|
-
return FocusPage.NAME;
|
|
13
|
-
}
|
|
14
|
-
call(source, ..._args) {
|
|
15
|
-
this.focusedPage.current = source.page;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.FocusPage = FocusPage;
|
|
19
|
-
FocusPage.NAME = 'donobuFocusPage';
|
|
20
|
-
//# sourceMappingURL=FocusPage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FocusPage.js","sourceRoot":"","sources":["../../../src/bindings/FocusPage.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACH,MAAa,SAAS;IAGpB,YAAoC,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEzD,IAAI;QACT,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAEM,IAAI,CACT,MAA6D,EAC7D,GAAG,KAAY;QAEf,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IACzC,CAAC;;AAdH,8BAeC;AAdwB,cAAI,GAAG,iBAAiB,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { PageInspector } from '../managers/PageInspector';
|
|
2
|
-
import { NamedBindingCallback } from './NamedBindingCallback';
|
|
3
|
-
import { BrowserContext, Page, Frame } from 'playwright';
|
|
4
|
-
/**
|
|
5
|
-
* A binding that sets or unsets the annotations on the page executing this callback.
|
|
6
|
-
* This is used for debugging purposes to show the interactable elements on the page
|
|
7
|
-
* as understood by the Donobu engine.
|
|
8
|
-
*/
|
|
9
|
-
export declare class SetDonobuAnnotations implements NamedBindingCallback {
|
|
10
|
-
private readonly pageInspector;
|
|
11
|
-
static readonly NAME = "__donobuSetAnnotations";
|
|
12
|
-
static register(pageInspector: PageInspector, browserContext: BrowserContext): Promise<SetDonobuAnnotations>;
|
|
13
|
-
constructor(pageInspector: PageInspector);
|
|
14
|
-
name(): string;
|
|
15
|
-
call(source: {
|
|
16
|
-
context: BrowserContext;
|
|
17
|
-
page: Page;
|
|
18
|
-
frame: Frame;
|
|
19
|
-
}, ...args: any[]): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=ToggleDonobuAnnotations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleDonobuAnnotations.d.ts","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGzD;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,oBAAoB;IAe5C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAdjD,gBAAuB,IAAI,4BAA4B;WAEnC,QAAQ,CAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,oBAAoB,CAAC;gBASI,aAAa,EAAE,aAAa;IAEzD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CA8BjB"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SetDonobuAnnotations = void 0;
|
|
4
|
-
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
5
|
-
const zod_1 = require("zod");
|
|
6
|
-
/**
|
|
7
|
-
* A binding that sets or unsets the annotations on the page executing this callback.
|
|
8
|
-
* This is used for debugging purposes to show the interactable elements on the page
|
|
9
|
-
* as understood by the Donobu engine.
|
|
10
|
-
*/
|
|
11
|
-
class SetDonobuAnnotations {
|
|
12
|
-
static async register(pageInspector, browserContext) {
|
|
13
|
-
const instance = new SetDonobuAnnotations(pageInspector);
|
|
14
|
-
await browserContext.exposeBinding(instance.name(), instance.call.bind(instance));
|
|
15
|
-
return instance;
|
|
16
|
-
}
|
|
17
|
-
constructor(pageInspector) {
|
|
18
|
-
this.pageInspector = pageInspector;
|
|
19
|
-
}
|
|
20
|
-
name() {
|
|
21
|
-
return SetDonobuAnnotations.NAME;
|
|
22
|
-
}
|
|
23
|
-
async call(source, ...args) {
|
|
24
|
-
let isToggled;
|
|
25
|
-
try {
|
|
26
|
-
isToggled = zod_1.z.boolean().parse(args[0]);
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
await source.page.evaluate((message) => {
|
|
30
|
-
console.error(message);
|
|
31
|
-
}, `First argument must be a boolean value: ${error.message}`);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (isToggled) {
|
|
35
|
-
await this.pageInspector.attributeInteractableElements(source.page);
|
|
36
|
-
await this.pageInspector.annotateInteractableElements(source.page);
|
|
37
|
-
const elements = await this.pageInspector.getAttributedInteractableElements(source.page);
|
|
38
|
-
const message = JSON.stringify(JsonUtils_1.JsonUtils.objectToJson(elements), null, 2);
|
|
39
|
-
await source.page.evaluate((message) => {
|
|
40
|
-
console.info(message);
|
|
41
|
-
}, message);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
await this.pageInspector.removeDonobuAnnotations(source.page);
|
|
45
|
-
}
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.SetDonobuAnnotations = SetDonobuAnnotations;
|
|
50
|
-
SetDonobuAnnotations.NAME = '__donobuSetAnnotations';
|
|
51
|
-
//# sourceMappingURL=ToggleDonobuAnnotations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleDonobuAnnotations.js","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":";;;AACA,kDAA+C;AAG/C,6BAAkC;AAElC;;;;GAIG;AACH,MAAa,oBAAoB;IAGxB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,aAA4B,EAC5B,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,cAAc,CAAC,aAAa,CAChC,QAAQ,CAAC,IAAI,EAAE,EACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAoC,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,IAAI;QACT,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,MAA6D,EAC7D,GAAG,IAAW;QAEd,IAAI,SAAkB,CAAC;QAEvB,IAAI,CAAC;YACH,SAAS,GAAG,OAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CACxB,CAAC,OAAO,EAAE,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC,EACD,2CAA4C,KAAkB,CAAC,OAAO,EAAE,CACzE,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,aAAa,CAAC,iCAAiC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1E,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,OAAO;IACT,CAAC;;AArDH,oDAsDC;AArDwB,yBAAI,GAAG,wBAAwB,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare const PLACEHOLDER_FLOW_URL = "https://example.com";
|
|
2
|
-
export declare const DEFAULT_GPT_MODEL_FOR_PLATFORM: {
|
|
3
|
-
ANTHROPIC: string;
|
|
4
|
-
ANTHROPIC_AWS_BEDROCK: string | undefined;
|
|
5
|
-
GOOGLE_GEMINI: string;
|
|
6
|
-
OPENAI: string;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAC1D,eAAO,MAAM,8BAA8B;;;;;CAU1C,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_GPT_MODEL_FOR_PLATFORM = exports.PLACEHOLDER_FLOW_URL = void 0;
|
|
4
|
-
const envVars_1 = require("../envVars");
|
|
5
|
-
exports.PLACEHOLDER_FLOW_URL = 'https://example.com';
|
|
6
|
-
exports.DEFAULT_GPT_MODEL_FOR_PLATFORM = {
|
|
7
|
-
ANTHROPIC: process.env[envVars_1.ENV_VAR_NAMES.ANTHROPIC_MODEL_NAME] ||
|
|
8
|
-
'claude-3-5-sonnet-latest',
|
|
9
|
-
ANTHROPIC_AWS_BEDROCK: process.env[envVars_1.ENV_VAR_NAMES.AWS_BEDROCK_MODEL_NAME] || undefined,
|
|
10
|
-
GOOGLE_GEMINI: process.env[envVars_1.ENV_VAR_NAMES.GOOGLE_GENERATIVE_AI_MODEL_NAME] ||
|
|
11
|
-
'gemini-2.0-flash',
|
|
12
|
-
OPENAI: process.env[envVars_1.ENV_VAR_NAMES.OPENAI_API_MODEL_NAME] || 'gpt-4o',
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":";;;AAAA,wCAA2C;AAE9B,QAAA,oBAAoB,GAAG,qBAAqB,CAAC;AAC7C,QAAA,8BAA8B,GAAG;IAC5C,SAAS,EACP,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,oBAAoB,CAAC;QAC/C,0BAA0B;IAC5B,qBAAqB,EACnB,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,sBAAsB,CAAC,IAAI,SAAS;IAChE,aAAa,EACX,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,+BAA+B,CAAC;QAC1D,kBAAkB;IACpB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,qBAAqB,CAAC,IAAI,QAAQ;CACrE,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { DonobuExtendedPage } from '../types';
|
|
2
|
-
import { GptClient } from '../../clients/GptClient';
|
|
3
|
-
import { BrowserStorageState } from '../../models/BrowserStorageState';
|
|
4
|
-
export * from 'playwright/test';
|
|
5
|
-
export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & {
|
|
6
|
-
storageState?: BrowserStorageState | Promise<BrowserStorageState>;
|
|
7
|
-
gptClient?: GptClient;
|
|
8
|
-
page: DonobuExtendedPage;
|
|
9
|
-
}, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
10
|
-
//# sourceMappingURL=testExtension.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testExtension.d.ts","sourceRoot":"","sources":["../../../../src/lib/fixtures/testExtension.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAmEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,cAAc,iBAAiB,CAAC;AAIhC,eAAO,MAAM,IAAI;mBACA,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBACrD,SAAS;UACf,kBAAkB;wGAqaxB,CAAC"}
|
|
@@ -1,383 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.test = void 0;
|
|
18
|
-
const test_1 = require("@playwright/test");
|
|
19
|
-
const uuid_1 = require("uuid");
|
|
20
|
-
const GptClient_1 = require("../../clients/GptClient");
|
|
21
|
-
const VercelAiGptClient_1 = require("../../clients/VercelAiGptClient");
|
|
22
|
-
const PlaywrightUtils_1 = require("../../utils/PlaywrightUtils");
|
|
23
|
-
const donobuTestStack_1 = require("../utils/donobuTestStack");
|
|
24
|
-
const selfHealing_1 = require("../utils/selfHealing");
|
|
25
|
-
const envVars_1 = require("../../envVars");
|
|
26
|
-
const MiscUtils_1 = require("../../utils/MiscUtils");
|
|
27
|
-
const DonobuFlowsManager_1 = require("../../managers/DonobuFlowsManager");
|
|
28
|
-
const gptClients_1 = require("./gptClients");
|
|
29
|
-
const GoToWebpageTool_1 = require("../../tools/GoToWebpageTool");
|
|
30
|
-
const PageInspector_1 = require("../../managers/PageInspector");
|
|
31
|
-
const ControlPanel_1 = require("../../managers/ControlPanel");
|
|
32
|
-
const InteractionVisualizer_1 = require("../../managers/InteractionVisualizer");
|
|
33
|
-
const ToolManager_1 = require("../../managers/ToolManager");
|
|
34
|
-
const AnalyzePageTextTool_1 = require("../../tools/AnalyzePageTextTool");
|
|
35
|
-
const AssertPageTextTool_1 = require("../../tools/AssertPageTextTool");
|
|
36
|
-
const Logger_1 = require("../../utils/Logger");
|
|
37
|
-
const DonobuFlow_1 = require("../../managers/DonobuFlow");
|
|
38
|
-
const HoverOverElementTool_1 = require("../../tools/HoverOverElementTool");
|
|
39
|
-
const InputRandomizedEmailAddressTool_1 = require("../../tools/InputRandomizedEmailAddressTool");
|
|
40
|
-
const AssertTool_1 = require("../../tools/AssertTool");
|
|
41
|
-
const ChangeWebBrowserTabTool_1 = require("../../tools/ChangeWebBrowserTabTool");
|
|
42
|
-
const ChooseSelectOptionTool_1 = require("../../tools/ChooseSelectOptionTool");
|
|
43
|
-
const ClickTool_1 = require("../../tools/ClickTool");
|
|
44
|
-
const CreateBrowserCookieReportTool_1 = require("../../tools/CreateBrowserCookieReportTool");
|
|
45
|
-
const InputTextTool_1 = require("../../tools/InputTextTool");
|
|
46
|
-
const PressKeyTool_1 = require("../../tools/PressKeyTool");
|
|
47
|
-
const RunAccessibilityTestTool_1 = require("../../tools/RunAccessibilityTestTool");
|
|
48
|
-
const ScrollPageTool_1 = require("../../tools/ScrollPageTool");
|
|
49
|
-
__exportStar(require("playwright/test"), exports);
|
|
50
|
-
const PLACEHOLDER_FLOW_URL = 'https://example.com';
|
|
51
|
-
exports.test = test_1.test.extend({
|
|
52
|
-
// 1) Declare `gptClient` as an "option" fixture with a default of `undefined`.
|
|
53
|
-
gptClient: [
|
|
54
|
-
undefined, // default
|
|
55
|
-
{ option: true }, // so that test.use({ gptClient: ... }) can override
|
|
56
|
-
],
|
|
57
|
-
// Override the default page fixture
|
|
58
|
-
page: async ({ page, gptClient }, use, testInfo) => {
|
|
59
|
-
if (!gptClient) {
|
|
60
|
-
try {
|
|
61
|
-
gptClient = await (0, gptClients_1.getOrCreateDefaultGptClient)();
|
|
62
|
-
}
|
|
63
|
-
catch (_error) {
|
|
64
|
-
// Do nothing since we may not need a GPT client at all anyway.
|
|
65
|
-
// If something later on requires a GPT client, it will throw an error.
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
// Patch the page with "run", but do it lazily
|
|
69
|
-
const donobu = await (0, donobuTestStack_1.getOrCreateDonobuStack)();
|
|
70
|
-
await PlaywrightUtils_1.PlaywrightUtils.setupBasicBrowserContext(page.context());
|
|
71
|
-
let isTestRunInitialized = false;
|
|
72
|
-
let isTestRunFailed = false;
|
|
73
|
-
async function maybeInitDonobu() {
|
|
74
|
-
if (isTestRunInitialized) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const overallObjective = testInfo.annotations.find((v) => {
|
|
78
|
-
return v.type === 'objective';
|
|
79
|
-
})?.description ?? null;
|
|
80
|
-
// Get the implied allowed environment variables by inspecting the objective.
|
|
81
|
-
const allowedEnvVarsByName = DonobuFlowsManager_1.DonobuFlowsManager.distillAllowedEnvVariableNames(overallObjective, null);
|
|
82
|
-
const donobuTestFlowMetadata = {
|
|
83
|
-
id: (0, uuid_1.v4)(),
|
|
84
|
-
name: testInfo.title,
|
|
85
|
-
createdWithDonobuVersion: MiscUtils_1.MiscUtils.DONOBU_VERSION,
|
|
86
|
-
browser: {
|
|
87
|
-
using: {
|
|
88
|
-
type: 'device',
|
|
89
|
-
deviceName: 'Desktop Chromium',
|
|
90
|
-
headless: true,
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
envVars: allowedEnvVarsByName,
|
|
94
|
-
gptConfigName: null,
|
|
95
|
-
hasGptConfigNameOverride: false,
|
|
96
|
-
customTools: null,
|
|
97
|
-
defaultMessageDuration: 0,
|
|
98
|
-
runMode: 'DETERMINISTIC',
|
|
99
|
-
isControlPanelEnabled: false,
|
|
100
|
-
callbackUrl: null,
|
|
101
|
-
targetWebsite: PLACEHOLDER_FLOW_URL,
|
|
102
|
-
overallObjective: overallObjective,
|
|
103
|
-
allowedTools: [],
|
|
104
|
-
resultJsonSchema: null,
|
|
105
|
-
result: null,
|
|
106
|
-
inputTokensUsed: 0,
|
|
107
|
-
completionTokensUsed: 0,
|
|
108
|
-
iterations: 0,
|
|
109
|
-
maxIterations: 0,
|
|
110
|
-
startedAt: new Date().getTime(),
|
|
111
|
-
completedAt: null,
|
|
112
|
-
state: 'RUNNING_ACTION',
|
|
113
|
-
nextState: null,
|
|
114
|
-
};
|
|
115
|
-
const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
|
|
116
|
-
await persistenceLayer.setMetadata(donobuTestFlowMetadata);
|
|
117
|
-
page._donobuFlowMetadata = donobuTestFlowMetadata;
|
|
118
|
-
isTestRunInitialized = true;
|
|
119
|
-
}
|
|
120
|
-
const originalGoto = page.goto;
|
|
121
|
-
// Intercept 'page.goto' so that Donobu can later re-run it as a standard
|
|
122
|
-
// Donobu action if necessary. This can happen if you run a Playwright
|
|
123
|
-
// test using npx, but later decide to rerun that run using the Donobu UI.
|
|
124
|
-
page.goto = async (url, options) => {
|
|
125
|
-
await maybeInitDonobu();
|
|
126
|
-
const startedAt = new Date().getTime();
|
|
127
|
-
const flowId = page._donobuFlowMetadata.id;
|
|
128
|
-
const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
|
|
129
|
-
// Update the target website to whatever the first place we are
|
|
130
|
-
// navigating to is.
|
|
131
|
-
if (page._donobuFlowMetadata.targetWebsite === PLACEHOLDER_FLOW_URL) {
|
|
132
|
-
page._donobuFlowMetadata = {
|
|
133
|
-
...page._donobuFlowMetadata,
|
|
134
|
-
targetWebsite: url,
|
|
135
|
-
};
|
|
136
|
-
await persistenceLayer.setMetadata(page._donobuFlowMetadata);
|
|
137
|
-
}
|
|
138
|
-
try {
|
|
139
|
-
const resp = await originalGoto.call(page, url, options);
|
|
140
|
-
await PlaywrightUtils_1.PlaywrightUtils.waitForPageStability(page);
|
|
141
|
-
const pageTitle = await page.title();
|
|
142
|
-
const postCallImage = await PlaywrightUtils_1.PlaywrightUtils.takeScreenshot(page);
|
|
143
|
-
const postCallImageId = await persistenceLayer.saveScreenShot(flowId, postCallImage);
|
|
144
|
-
const completedAt = new Date().getTime();
|
|
145
|
-
await persistenceLayer.saveToolCall(flowId, {
|
|
146
|
-
id: MiscUtils_1.MiscUtils.createAdHocToolCallId(),
|
|
147
|
-
toolName: GoToWebpageTool_1.GoToWebpageTool.NAME,
|
|
148
|
-
parameters: {
|
|
149
|
-
url: url,
|
|
150
|
-
},
|
|
151
|
-
outcome: {
|
|
152
|
-
isSuccessful: true,
|
|
153
|
-
forLlm: `Successfully navigated to ${url}`,
|
|
154
|
-
metadata: {
|
|
155
|
-
pageTitle: pageTitle,
|
|
156
|
-
resolvedUrl: page.url(),
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
postCallImageId: postCallImageId,
|
|
160
|
-
page: url,
|
|
161
|
-
startedAt: startedAt,
|
|
162
|
-
completedAt: completedAt,
|
|
163
|
-
});
|
|
164
|
-
return resp;
|
|
165
|
-
}
|
|
166
|
-
catch (error) {
|
|
167
|
-
const postCallImage = await PlaywrightUtils_1.PlaywrightUtils.takeScreenshot(page);
|
|
168
|
-
const postCallImageId = await persistenceLayer.saveScreenShot(flowId, postCallImage);
|
|
169
|
-
const completedAt = new Date().getTime();
|
|
170
|
-
await persistenceLayer.saveToolCall(flowId, {
|
|
171
|
-
id: MiscUtils_1.MiscUtils.createAdHocToolCallId(),
|
|
172
|
-
toolName: 'goToWebpage',
|
|
173
|
-
parameters: {
|
|
174
|
-
url: url,
|
|
175
|
-
},
|
|
176
|
-
outcome: {
|
|
177
|
-
isSuccessful: false,
|
|
178
|
-
forLlm: `FAILED! ${typeof error}: ${error.message}`,
|
|
179
|
-
metadata: null,
|
|
180
|
-
},
|
|
181
|
-
postCallImageId: postCallImageId,
|
|
182
|
-
page: url,
|
|
183
|
-
startedAt: startedAt,
|
|
184
|
-
completedAt: completedAt,
|
|
185
|
-
});
|
|
186
|
-
// Mark test as failed for later callback
|
|
187
|
-
isTestRunFailed = true;
|
|
188
|
-
throw error;
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
page.run = async (toolName, toolParams, gptClientOverride) => {
|
|
192
|
-
await maybeInitDonobu();
|
|
193
|
-
let finalGptClient = null;
|
|
194
|
-
if (gptClientOverride) {
|
|
195
|
-
if (!(gptClientOverride instanceof GptClient_1.GptClient)) {
|
|
196
|
-
finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
finalGptClient = gptClientOverride;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
else if (gptClient) {
|
|
203
|
-
finalGptClient = gptClient;
|
|
204
|
-
}
|
|
205
|
-
const pageInspector = new PageInspector_1.PageInspector();
|
|
206
|
-
const controlPanel = new ControlPanel_1.ControlPanel(page._donobuFlowMetadata);
|
|
207
|
-
const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
|
|
208
|
-
const clonedParams = toolParams
|
|
209
|
-
? JSON.parse(JSON.stringify(toolParams))
|
|
210
|
-
: {};
|
|
211
|
-
clonedParams.rationale || (clonedParams.rationale = '');
|
|
212
|
-
const envData = await donobu.flowsManager.buildEnvData(page._donobuFlowMetadata.envVars ?? []);
|
|
213
|
-
const toolCallContext = {
|
|
214
|
-
flowsManager: donobu.flowsManager,
|
|
215
|
-
envData: envData,
|
|
216
|
-
pageInspector: pageInspector,
|
|
217
|
-
controlPanel: controlPanel,
|
|
218
|
-
persistence: persistenceLayer,
|
|
219
|
-
gptClient: finalGptClient,
|
|
220
|
-
interactionVisualizer: new InteractionVisualizer_1.InteractionVisualizer(0),
|
|
221
|
-
proposedToolCalls: [],
|
|
222
|
-
invokedToolCalls: [],
|
|
223
|
-
page: { current: page },
|
|
224
|
-
metadata: page._donobuFlowMetadata,
|
|
225
|
-
toolCallId: clonedParams.toolCallId ?? MiscUtils_1.MiscUtils.createAdHocToolCallId(),
|
|
226
|
-
};
|
|
227
|
-
try {
|
|
228
|
-
const result = await new ToolManager_1.ToolManager(ToolManager_1.ToolManager.ALL_TOOLS).invokeTool(toolCallContext, toolName, clonedParams, false);
|
|
229
|
-
await persistenceLayer.setMetadata(page._donobuFlowMetadata);
|
|
230
|
-
await persistenceLayer.saveToolCall(page._donobuFlowMetadata.id, result);
|
|
231
|
-
// Check if tool execution was successful
|
|
232
|
-
if (!result.outcome.isSuccessful) {
|
|
233
|
-
throw new Error(`${toolName} execution failed: ${JSON.stringify(result, null, 2)}`);
|
|
234
|
-
}
|
|
235
|
-
return result.outcome;
|
|
236
|
-
}
|
|
237
|
-
catch (error) {
|
|
238
|
-
// Mark test as failed if an exception occurs during tool execution
|
|
239
|
-
isTestRunFailed = true;
|
|
240
|
-
throw error;
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
page.analyzePageText = async (params, gptClientOverride) => {
|
|
244
|
-
return page.run(AnalyzePageTextTool_1.AnalyzePageTextTool.NAME, params, gptClientOverride);
|
|
245
|
-
};
|
|
246
|
-
page.assertPageText = async (params, gptClientOverride) => {
|
|
247
|
-
return page.run(AssertPageTextTool_1.AssertPageTextTool.NAME, params, gptClientOverride);
|
|
248
|
-
};
|
|
249
|
-
page.changeTab = async (url) => {
|
|
250
|
-
// The underlying tool call is mostly performative. We do it so we can
|
|
251
|
-
// record the operation occurred, but the actual page reassignment happens
|
|
252
|
-
// at the call site of this function.
|
|
253
|
-
const result = await page.run(ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool.NAME, {
|
|
254
|
-
tabUrl: url,
|
|
255
|
-
});
|
|
256
|
-
if (result.isSuccessful) {
|
|
257
|
-
// We need to return a real Page object, not just the raw URL, so we
|
|
258
|
-
// loop through the pages of the current context, knowing we will find
|
|
259
|
-
// a match.
|
|
260
|
-
return page
|
|
261
|
-
.context()
|
|
262
|
-
.pages()
|
|
263
|
-
.find((tab) => tab.url() === url);
|
|
264
|
-
}
|
|
265
|
-
else {
|
|
266
|
-
throw Error(result.forLlm);
|
|
267
|
-
}
|
|
268
|
-
};
|
|
269
|
-
page.chooseSelectOption = async (params) => {
|
|
270
|
-
return page.run(ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME, params);
|
|
271
|
-
};
|
|
272
|
-
page.clickElement = async (params) => {
|
|
273
|
-
return page.run(ClickTool_1.ClickTool.NAME, params);
|
|
274
|
-
};
|
|
275
|
-
page.createCookieReport = async (gptClientOverride) => {
|
|
276
|
-
return page.run(CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME, gptClientOverride);
|
|
277
|
-
};
|
|
278
|
-
page.extract = async (params, gptClientOverride) => {
|
|
279
|
-
await maybeInitDonobu();
|
|
280
|
-
let finalGptClient = null;
|
|
281
|
-
if (gptClientOverride) {
|
|
282
|
-
if (!(gptClientOverride instanceof GptClient_1.GptClient)) {
|
|
283
|
-
finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
finalGptClient = gptClientOverride;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
else if (gptClient) {
|
|
290
|
-
finalGptClient = gptClient;
|
|
291
|
-
}
|
|
292
|
-
if (!finalGptClient) {
|
|
293
|
-
isTestRunFailed = true;
|
|
294
|
-
throw Error('Cannot extract an object from page without a GPT client set up!');
|
|
295
|
-
}
|
|
296
|
-
try {
|
|
297
|
-
const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
|
|
298
|
-
const toolCallHistory = await persistenceLayer.getToolCalls(page._donobuFlowMetadata.id);
|
|
299
|
-
const structuredOutputMessage = await (0, DonobuFlow_1.extractFromPage)(params.instruction ??
|
|
300
|
-
'Generate an object conforming to the given JSON-schema', params.schema, page, toolCallHistory, finalGptClient);
|
|
301
|
-
page._donobuFlowMetadata.resultJsonSchema = params.schema;
|
|
302
|
-
page._donobuFlowMetadata.result = structuredOutputMessage.output;
|
|
303
|
-
await persistenceLayer.setMetadata(page._donobuFlowMetadata);
|
|
304
|
-
return structuredOutputMessage.output;
|
|
305
|
-
}
|
|
306
|
-
catch (error) {
|
|
307
|
-
isTestRunFailed = true;
|
|
308
|
-
throw error;
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
|
-
page.hoverOverElement = async (params) => {
|
|
312
|
-
return page.run(HoverOverElementTool_1.HoverOverElementTool.NAME, params);
|
|
313
|
-
};
|
|
314
|
-
page.inputRandomizedEmailAddress = async (params) => {
|
|
315
|
-
return page.run(InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME, params);
|
|
316
|
-
};
|
|
317
|
-
page.inputText = async (params) => {
|
|
318
|
-
return page.run(InputTextTool_1.InputTextTool.NAME, params);
|
|
319
|
-
};
|
|
320
|
-
page.pressKey = async (params) => {
|
|
321
|
-
return page.run(PressKeyTool_1.PressKeyTool.NAME, params);
|
|
322
|
-
};
|
|
323
|
-
page.runAccessibilityTest = async () => {
|
|
324
|
-
return page.run(RunAccessibilityTestTool_1.RunAccessibilityTestTool.NAME);
|
|
325
|
-
};
|
|
326
|
-
page.scroll = async (params) => {
|
|
327
|
-
return page.run(ScrollPageTool_1.ScrollPageTool.NAME, params);
|
|
328
|
-
};
|
|
329
|
-
page.visuallyAssert = async (params, gptClientOverride) => {
|
|
330
|
-
return page.run(AssertTool_1.AssertTool.NAME, params, gptClientOverride);
|
|
331
|
-
};
|
|
332
|
-
try {
|
|
333
|
-
// Let Playwright continue and give tests the patched page.
|
|
334
|
-
await use(page);
|
|
335
|
-
// Check if the test status is failed in the testInfo
|
|
336
|
-
// This catches failures that were marked by Playwright itself
|
|
337
|
-
if (testInfo.status === 'failed' || testInfo.status === 'timedOut') {
|
|
338
|
-
isTestRunFailed = true;
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
catch (error) {
|
|
342
|
-
// Mark test as failed if an uncaught exception occurs during the test
|
|
343
|
-
isTestRunFailed = true;
|
|
344
|
-
throw error;
|
|
345
|
-
}
|
|
346
|
-
finally {
|
|
347
|
-
try {
|
|
348
|
-
const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
|
|
349
|
-
if (page._donobuFlowMetadata) {
|
|
350
|
-
// Update metadata with final status
|
|
351
|
-
page._donobuFlowMetadata.state = isTestRunFailed
|
|
352
|
-
? 'FAILED'
|
|
353
|
-
: 'SUCCESS';
|
|
354
|
-
page._donobuFlowMetadata.completedAt = new Date().getTime();
|
|
355
|
-
await persistenceLayer.setMetadata(page._donobuFlowMetadata);
|
|
356
|
-
await testInfo.attach('test-flow-metadata.json', {
|
|
357
|
-
body: JSON.stringify(page._donobuFlowMetadata, null, 2),
|
|
358
|
-
contentType: 'application/json',
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
catch (error) {
|
|
363
|
-
// Log but don't throw, to ensure cleanup continues.
|
|
364
|
-
Logger_1.appLogger.error('Error during test cleanup:', error);
|
|
365
|
-
}
|
|
366
|
-
const isSelfHealEnabledEnvVar = process.env[envVars_1.ENV_VAR_NAMES.SELF_HEAL_TESTS_ENABLED]?.trim();
|
|
367
|
-
if (isTestRunFailed &&
|
|
368
|
-
(isSelfHealEnabledEnvVar === 'true' || isSelfHealEnabledEnvVar === '1')) {
|
|
369
|
-
if (!gptClient) {
|
|
370
|
-
Logger_1.appLogger.warn('Will not self-heal due to no GPT client being set up.');
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
try {
|
|
374
|
-
await (0, selfHealing_1.selfHeal)(gptClient, testInfo, page._donobuFlowMetadata);
|
|
375
|
-
}
|
|
376
|
-
catch (selfHealError) {
|
|
377
|
-
Logger_1.appLogger.error('Error when attempting to self heal:', selfHealError);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
},
|
|
382
|
-
});
|
|
383
|
-
//# sourceMappingURL=testExtension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../../src/lib/fixtures/testExtension.ts"],"names":[],"mappings":"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"}
|