donobu 2.46.1 → 2.46.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/dist/assets/generated/version +1 -1
- package/dist/envVars.d.ts +140 -57
- package/dist/envVars.d.ts.map +1 -1
- package/dist/envVars.js +42 -55
- package/dist/envVars.js.map +1 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/envVars.d.ts +140 -57
- package/dist/esm/envVars.d.ts.map +1 -1
- package/dist/esm/envVars.js +42 -55
- package/dist/esm/envVars.js.map +1 -1
- package/dist/esm/lib/DonobuExtendedPage.d.ts +12 -10
- package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/esm/lib/PageAi.d.ts +103 -77
- package/dist/esm/lib/PageAi.d.ts.map +1 -1
- package/dist/esm/lib/PageAi.js +152 -272
- package/dist/esm/lib/PageAi.js.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.d.ts +33 -5
- package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.js +38 -35
- package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
- package/dist/esm/lib/originalGotoRegistry.d.ts +5 -0
- package/dist/esm/lib/originalGotoRegistry.d.ts.map +1 -0
- package/dist/esm/lib/originalGotoRegistry.js +30 -0
- package/dist/esm/lib/originalGotoRegistry.js.map +1 -0
- package/dist/esm/lib/pageAi/cache.d.ts +84 -0
- package/dist/esm/lib/pageAi/cache.d.ts.map +1 -0
- package/dist/esm/lib/pageAi/cache.js +207 -0
- package/dist/esm/lib/pageAi/cache.js.map +1 -0
- package/dist/esm/lib/pageAi/cacheEntryBuilder.d.ts +17 -0
- package/dist/esm/lib/pageAi/cacheEntryBuilder.d.ts.map +1 -0
- package/dist/esm/lib/pageAi/cacheEntryBuilder.js +25 -0
- package/dist/esm/lib/pageAi/cacheEntryBuilder.js.map +1 -0
- package/dist/esm/lib/testExtension.d.ts.map +1 -1
- package/dist/esm/lib/testExtension.js +288 -286
- package/dist/esm/lib/testExtension.js.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.d.ts +18 -1
- package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js +3 -3
- package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/esm/lib/utils/selfHealing.js +2 -2
- package/dist/esm/lib/utils/selfHealing.js.map +1 -1
- package/dist/esm/main.d.ts.map +1 -1
- package/dist/esm/main.js +1 -9
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/AdminApiController.d.ts +3 -1
- package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
- package/dist/esm/managers/AdminApiController.js +8 -13
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/AgentsManager.d.ts +3 -1
- package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
- package/dist/esm/managers/AgentsManager.js +4 -5
- package/dist/esm/managers/AgentsManager.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts +8 -0
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +104 -1
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +4 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +24 -25
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/DonobuStack.d.ts +18 -1
- package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
- package/dist/esm/managers/DonobuStack.js +7 -6
- package/dist/esm/managers/DonobuStack.js.map +1 -1
- package/dist/esm/managers/GptConfigsManager.d.ts +3 -1
- package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/esm/managers/GptConfigsManager.js +6 -7
- package/dist/esm/managers/GptConfigsManager.js.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.js +25 -3
- package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
- package/dist/esm/models/DonobuDeploymentEnvironment.d.ts +7 -5
- package/dist/esm/models/DonobuDeploymentEnvironment.d.ts.map +1 -1
- package/dist/esm/models/DonobuDeploymentEnvironment.js +7 -7
- package/dist/esm/models/DonobuDeploymentEnvironment.js.map +1 -1
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts +5 -3
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -1
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js +11 -15
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +6 -4
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js +14 -19
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/esm/utils/BrowserUtils.d.ts +6 -1
- package/dist/esm/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/esm/utils/BrowserUtils.js +19 -19
- package/dist/esm/utils/BrowserUtils.js.map +1 -1
- package/dist/esm/utils/MiscUtils.d.ts +5 -1
- package/dist/esm/utils/MiscUtils.d.ts.map +1 -1
- package/dist/esm/utils/MiscUtils.js +4 -4
- package/dist/esm/utils/MiscUtils.js.map +1 -1
- package/dist/lib/DonobuExtendedPage.d.ts +12 -10
- package/dist/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/lib/PageAi.d.ts +103 -77
- package/dist/lib/PageAi.d.ts.map +1 -1
- package/dist/lib/PageAi.js +152 -272
- package/dist/lib/PageAi.js.map +1 -1
- package/dist/lib/fixtures/gptClients.d.ts +33 -5
- package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/lib/fixtures/gptClients.js +38 -35
- package/dist/lib/fixtures/gptClients.js.map +1 -1
- package/dist/lib/originalGotoRegistry.d.ts +5 -0
- package/dist/lib/originalGotoRegistry.d.ts.map +1 -0
- package/dist/lib/originalGotoRegistry.js +30 -0
- package/dist/lib/originalGotoRegistry.js.map +1 -0
- package/dist/lib/pageAi/cache.d.ts +84 -0
- package/dist/lib/pageAi/cache.d.ts.map +1 -0
- package/dist/lib/pageAi/cache.js +207 -0
- package/dist/lib/pageAi/cache.js.map +1 -0
- package/dist/lib/pageAi/cacheEntryBuilder.d.ts +17 -0
- package/dist/lib/pageAi/cacheEntryBuilder.d.ts.map +1 -0
- package/dist/lib/pageAi/cacheEntryBuilder.js +25 -0
- package/dist/lib/pageAi/cacheEntryBuilder.js.map +1 -0
- package/dist/lib/testExtension.d.ts.map +1 -1
- package/dist/lib/testExtension.js +288 -286
- package/dist/lib/testExtension.js.map +1 -1
- package/dist/lib/utils/donobuTestStack.d.ts +18 -1
- package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/lib/utils/donobuTestStack.js +3 -3
- package/dist/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/lib/utils/selfHealing.js +2 -2
- package/dist/lib/utils/selfHealing.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -9
- package/dist/main.js.map +1 -1
- package/dist/managers/AdminApiController.d.ts +3 -1
- package/dist/managers/AdminApiController.d.ts.map +1 -1
- package/dist/managers/AdminApiController.js +8 -13
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/AgentsManager.d.ts +3 -1
- package/dist/managers/AgentsManager.d.ts.map +1 -1
- package/dist/managers/AgentsManager.js +4 -5
- package/dist/managers/AgentsManager.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts +8 -0
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js +104 -1
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +4 -1
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +24 -25
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/DonobuStack.d.ts +18 -1
- package/dist/managers/DonobuStack.d.ts.map +1 -1
- package/dist/managers/DonobuStack.js +7 -6
- package/dist/managers/DonobuStack.js.map +1 -1
- package/dist/managers/GptConfigsManager.d.ts +3 -1
- package/dist/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/managers/GptConfigsManager.js +6 -7
- package/dist/managers/GptConfigsManager.js.map +1 -1
- package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/managers/InteractionVisualizer.js +25 -3
- package/dist/managers/InteractionVisualizer.js.map +1 -1
- package/dist/models/DonobuDeploymentEnvironment.d.ts +7 -5
- package/dist/models/DonobuDeploymentEnvironment.d.ts.map +1 -1
- package/dist/models/DonobuDeploymentEnvironment.js +7 -7
- package/dist/models/DonobuDeploymentEnvironment.js.map +1 -1
- package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts +5 -3
- package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -1
- package/dist/persistence/env/EnvPersistenceFactoryImpl.js +11 -15
- package/dist/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +6 -4
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js +14 -19
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +6 -1
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.js +19 -19
- package/dist/utils/BrowserUtils.js.map +1 -1
- package/dist/utils/MiscUtils.d.ts +5 -1
- package/dist/utils/MiscUtils.d.ts.map +1 -1
- package/dist/utils/MiscUtils.js +4 -4
- package/dist/utils/MiscUtils.js.map +1 -1
- package/package.json +2 -1
package/dist/esm/envVars.js
CHANGED
|
@@ -1,105 +1,114 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.env = void 0;
|
|
4
|
+
const env_struct_1 = require("env-struct");
|
|
5
|
+
const v4_1 = require("zod/v4");
|
|
6
|
+
const DonobuDeploymentEnvironment_1 = require("./models/DonobuDeploymentEnvironment");
|
|
4
7
|
/**
|
|
5
8
|
* This is the set of environment variable (for the process) names that Donobu may use.
|
|
6
9
|
* This should not be confused with the user-defined API-based environment variables
|
|
7
10
|
* that may be used in a flow.
|
|
8
11
|
*/
|
|
9
|
-
|
|
12
|
+
exports.env = env_struct_1.Env.fromSchema({
|
|
13
|
+
/**
|
|
14
|
+
* Windows-specific roaming application data directory. This is typically set
|
|
15
|
+
* by the OS and used to derive platform default storage paths. This is
|
|
16
|
+
* ignored if BASE_WORKING_DIR is explicitly set.
|
|
17
|
+
*/
|
|
18
|
+
APPDATA: v4_1.z.string().optional(),
|
|
10
19
|
/**
|
|
11
20
|
* Overrides the effective working/persistence directory.
|
|
12
21
|
*/
|
|
13
|
-
|
|
22
|
+
BASE_WORKING_DIR: v4_1.z.string().optional(),
|
|
14
23
|
/**
|
|
15
24
|
* If specified, use this base-64 JSON GPT configuration for running flows.
|
|
16
25
|
* This takes priority over all other GPT configuration options.
|
|
17
26
|
*/
|
|
18
|
-
|
|
27
|
+
BASE64_GPT_CONFIG: v4_1.z.string().optional(),
|
|
19
28
|
/**
|
|
20
29
|
* The API key to use for the BrowserBase API.
|
|
21
30
|
*/
|
|
22
|
-
|
|
31
|
+
BROWSERBASE_API_KEY: v4_1.z.string().optional(),
|
|
23
32
|
/**
|
|
24
33
|
* The project ID to use for the BrowserBase API.
|
|
25
34
|
*/
|
|
26
|
-
|
|
35
|
+
BROWSERBASE_PROJECT_ID: v4_1.z.string().optional(),
|
|
27
36
|
/**
|
|
28
37
|
* The deployment environment for this application.
|
|
29
38
|
*
|
|
30
39
|
* If this is set to "DONOBU_HOSTED_MULTI_TENANT" then the
|
|
31
40
|
* SUPABASE_JWT_SECRET_KEY environment variable must also be set.
|
|
32
41
|
*/
|
|
33
|
-
|
|
42
|
+
DONOBU_DEPLOYMENT_ENVIRONMENT: DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironmentSchema.optional(),
|
|
34
43
|
/**
|
|
35
44
|
* Automatically create GPT configurations for Anthropic using this API key.
|
|
36
45
|
* For convenience, the created configuration names will reflect the
|
|
37
46
|
* underlying models they map to (ex: "claude-3-7-sonnet-latest", etc).
|
|
38
47
|
*/
|
|
39
|
-
|
|
48
|
+
ANTHROPIC_API_KEY: v4_1.z.string().optional(),
|
|
40
49
|
/**
|
|
41
50
|
* If specified, this will shade the default flow runner agent when running
|
|
42
51
|
* flows. If specified, ANTHROPIC_API_KEY must also be specified.
|
|
43
52
|
*/
|
|
44
|
-
|
|
53
|
+
ANTHROPIC_MODEL_NAME: v4_1.z.string().optional(),
|
|
45
54
|
/**
|
|
46
55
|
* Automatically create GPT configurations for Google Gemini using this API key.
|
|
47
56
|
* For convenience, the created configuration names will reflect the
|
|
48
57
|
* underlying models they map to (ex: "gemini-2.0-flash", etc).
|
|
49
58
|
*/
|
|
50
|
-
|
|
59
|
+
GOOGLE_GENERATIVE_AI_API_KEY: v4_1.z.string().optional(),
|
|
51
60
|
/**
|
|
52
61
|
* If specified, this will shade the default flow runner agent when running
|
|
53
62
|
* flows. If specified, GOOGLE_GENERATIVE_AI_API_KEY must also be specified.
|
|
54
63
|
*/
|
|
55
|
-
|
|
64
|
+
GOOGLE_GENERATIVE_AI_MODEL_NAME: v4_1.z.string().optional(),
|
|
56
65
|
/**
|
|
57
66
|
* Automatically create GPT configurations for OpenAI using this API key.
|
|
58
67
|
* For convenience, the created configuration names will reflect the
|
|
59
68
|
* underlying models they map to (ex: "gpt-4o", etc).
|
|
60
69
|
*/
|
|
61
|
-
|
|
70
|
+
OPENAI_API_KEY: v4_1.z.string().optional(),
|
|
62
71
|
/**
|
|
63
72
|
* If specified, this will shade the default flow runner agent when running
|
|
64
73
|
* flows. If specified, OPENAI_API_KEY must also be specified.
|
|
65
74
|
*/
|
|
66
|
-
|
|
75
|
+
OPENAI_API_MODEL_NAME: v4_1.z.string().optional(),
|
|
67
76
|
/**
|
|
68
77
|
* Automatically set the 'flow-runner' agent to use this GPT configuration by name.
|
|
69
78
|
*/
|
|
70
|
-
|
|
79
|
+
DEFAULT_FLOW_RUNNER_GPT_CONFIG_NAME: v4_1.z.string().optional(),
|
|
71
80
|
/**
|
|
72
81
|
* Directs Donobu flows to be persisted using this AWS S3 bucket. Takes
|
|
73
82
|
* priority over GOOGLE_CLOUD_STORAGE_BUCKET being specified.
|
|
74
83
|
*/
|
|
75
|
-
|
|
84
|
+
AWS_S3_BUCKET: v4_1.z.string().optional(),
|
|
76
85
|
/**
|
|
77
86
|
* The AWS S3 region the corresponding AWS_S3_BUCKET lives in. Fails over to
|
|
78
87
|
* the AWS_REGION environment variable if not specified.
|
|
79
88
|
*/
|
|
80
|
-
|
|
89
|
+
AWS_S3_REGION: v4_1.z.string().optional(),
|
|
81
90
|
/**
|
|
82
91
|
* If specified, this will shade the default flow runner agent when running
|
|
83
92
|
* flows. If specified, AWS credentials must also be present.
|
|
84
93
|
*/
|
|
85
|
-
|
|
94
|
+
AWS_BEDROCK_MODEL_NAME: v4_1.z.string().optional(),
|
|
86
95
|
/**
|
|
87
96
|
* The AWS region to use for operations using the AWS SDK.
|
|
88
97
|
*/
|
|
89
|
-
|
|
98
|
+
AWS_REGION: v4_1.z.string().optional(),
|
|
90
99
|
/**
|
|
91
100
|
* The AWS access key ID to use for operations using the AWS SDK.
|
|
92
101
|
*/
|
|
93
|
-
|
|
102
|
+
AWS_ACCESS_KEY_ID: v4_1.z.string().optional(),
|
|
94
103
|
/**
|
|
95
104
|
* The AWS access key to use for operations using the AWS SDK.
|
|
96
105
|
*/
|
|
97
|
-
|
|
106
|
+
AWS_SECRET_ACCESS_KEY: v4_1.z.string().optional(),
|
|
98
107
|
/**
|
|
99
108
|
* Directs Donobu flows to be persisted using this Google Cloud Storage
|
|
100
109
|
* bucket.
|
|
101
110
|
*/
|
|
102
|
-
|
|
111
|
+
GOOGLE_CLOUD_STORAGE_BUCKET: v4_1.z.string().optional(),
|
|
103
112
|
/**
|
|
104
113
|
* Directs Donobu flows to be persisted using Supabase using this key.
|
|
105
114
|
*
|
|
@@ -107,54 +116,32 @@ const ENV_VAR_LIST = [
|
|
|
107
116
|
* DONOBU_DEPLOYMENT_ENVIRONMENT environment variable is set to
|
|
108
117
|
* "DONOBU_HOSTED_MULTI_TENANT".
|
|
109
118
|
*/
|
|
110
|
-
|
|
119
|
+
SUPABASE_JWT_SECRET_KEY: v4_1.z.string().optional(),
|
|
111
120
|
/**
|
|
112
121
|
* If set to 'true', then Donobu will attempt to self-heal tests. This option
|
|
113
122
|
* is only used when using Donobu as a library to run Playwright-based tests.
|
|
114
123
|
*/
|
|
115
|
-
|
|
124
|
+
SELF_HEAL_TESTS_ENABLED: v4_1.z.string().optional(),
|
|
116
125
|
/**
|
|
117
126
|
* Default URL for the browser proxy configuration. Only applies when running
|
|
118
127
|
* flows using the 'device' type and a proxy URL is not otherwise specified.
|
|
119
128
|
*/
|
|
120
|
-
|
|
129
|
+
PROXY_SERVER: v4_1.z.string().optional(),
|
|
121
130
|
/**
|
|
122
131
|
* Default user name for the browser proxy configuration. Only applies when running
|
|
123
132
|
* flows using the 'device' type and a proxy username is not otherwise specified.
|
|
124
133
|
*/
|
|
125
|
-
|
|
134
|
+
PROXY_USERNAME: v4_1.z.string().optional(),
|
|
126
135
|
/**
|
|
127
136
|
* Default password for the browser proxy configuration. Only applies when running
|
|
128
137
|
* flows using the 'device' type and a proxy password is not otherwise specified.
|
|
129
138
|
*/
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
for (const name of names) {
|
|
139
|
-
const key = name;
|
|
140
|
-
result[key] = key;
|
|
141
|
-
}
|
|
142
|
-
return Object.freeze(result);
|
|
143
|
-
};
|
|
144
|
-
/**
|
|
145
|
-
* Creates an object with lazy getters that read from `process.env` using the provided key mapping.
|
|
146
|
-
* Keeps `ENV` in sync with `ENV_VAR_NAMES` without repeating every accessor.
|
|
147
|
-
*/
|
|
148
|
-
const createEnvAccessor = (names) => {
|
|
149
|
-
const accessor = {};
|
|
150
|
-
for (const key of Object.keys(names)) {
|
|
151
|
-
Object.defineProperty(accessor, key, {
|
|
152
|
-
enumerable: true,
|
|
153
|
-
get: () => process.env[names[key]],
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
return Object.freeze(accessor);
|
|
157
|
-
};
|
|
158
|
-
exports.ENV_NAMES = createEnvVarNames(ENV_VAR_LIST);
|
|
159
|
-
exports.ENV = createEnvAccessor(exports.ENV_NAMES);
|
|
139
|
+
PROXY_PASSWORD: v4_1.z.string().optional(),
|
|
140
|
+
/**
|
|
141
|
+
* Linux-specific configuration directory root following the XDG Base
|
|
142
|
+
* Directory specification. Used to derive platform default storage paths.
|
|
143
|
+
* This is ignored if BASE_WORKING_DIR is explicitly set.
|
|
144
|
+
*/
|
|
145
|
+
XDG_CONFIG_HOME: v4_1.z.string().optional(),
|
|
146
|
+
});
|
|
160
147
|
//# sourceMappingURL=envVars.js.map
|
package/dist/esm/envVars.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envVars.js","sourceRoot":"","sources":["../../src/envVars.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"envVars.js","sourceRoot":"","sources":["../../src/envVars.ts"],"names":[],"mappings":";;;AAAA,2CAAiC;AACjC,+BAA2B;AAC3B,sFAAyF;AAEzF;;;;GAIG;AACU,QAAA,GAAG,GAAG,gBAAG,CAAC,UAAU,CAAC;IAChC;;;;OAIG;IACH,OAAO,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B;;OAEG;IACH,gBAAgB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC;;;OAGG;IACH,iBAAiB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC;;OAEG;IACH,mBAAmB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C;;OAEG;IACH,sBAAsB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C;;;;;OAKG;IACH,6BAA6B,EAAE,+DAAiC,CAAC,QAAQ,EAAE;IAC3E;;;;OAIG;IACH,iBAAiB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC;;;OAGG;IACH,oBAAoB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C;;;;OAIG;IACH,4BAA4B,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnD;;;OAGG;IACH,+BAA+B,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtD;;;;OAIG;IACH,cAAc,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC;;;OAGG;IACH,qBAAqB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C;;OAEG;IACH,mCAAmC,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1D;;;OAGG;IACH,aAAa,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC;;;OAGG;IACH,aAAa,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC;;;OAGG;IACH,sBAAsB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C;;OAEG;IACH,UAAU,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC;;OAEG;IACH,iBAAiB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC;;OAEG;IACH,qBAAqB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C;;;OAGG;IACH,2BAA2B,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClD;;;;;;OAMG;IACH,uBAAuB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C;;;OAGG;IACH,uBAAuB,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C;;;OAGG;IACH,YAAY,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC;;;OAGG;IACH,cAAc,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC;;;OAGG;IACH,cAAc,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC;;;;OAIG;IACH,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC"}
|
|
@@ -15,7 +15,9 @@ import { SelectorBasedSchema } from '../tools/ReplayableInteraction';
|
|
|
15
15
|
import { z } from 'zod/v4';
|
|
16
16
|
import { BrowserStorageState } from '../models/BrowserStorageState';
|
|
17
17
|
import { SmartSelector } from './SmartSelector';
|
|
18
|
-
import { PageAiOptions } from './PageAi';
|
|
18
|
+
import { PageAi, PageAiOptions } from './PageAi';
|
|
19
|
+
import { DonobuStack } from '../managers/DonobuStack';
|
|
20
|
+
import { FlowsPersistence } from '../persistence/flows/FlowsPersistence';
|
|
19
21
|
export { PageAiOptions };
|
|
20
22
|
/**
|
|
21
23
|
* Extends the Page object with additional test-related methods.
|
|
@@ -57,7 +59,7 @@ export interface DonobuExtendedPage extends Page {
|
|
|
57
59
|
* Checks all of the pages in the current browser context and returns the one
|
|
58
60
|
* matching the given URL.
|
|
59
61
|
*/
|
|
60
|
-
changeTab(url: string): Promise<
|
|
62
|
+
changeTab(url: string): Promise<DonobuExtendedPage>;
|
|
61
63
|
/**
|
|
62
64
|
* Choose <option> values for a particular <select> HTML element.
|
|
63
65
|
*/
|
|
@@ -125,13 +127,13 @@ export interface DonobuExtendedPage extends Page {
|
|
|
125
127
|
* the current webpage.
|
|
126
128
|
*/
|
|
127
129
|
visuallyAssert(params: z.infer<typeof AssertCoreSchema>, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
130
|
+
_dnb: {
|
|
131
|
+
donobuFlowMetadata: FlowMetadata;
|
|
132
|
+
donobuStack: DonobuStack;
|
|
133
|
+
pageAi: PageAi | undefined;
|
|
134
|
+
persistence: FlowsPersistence;
|
|
135
|
+
initialBrowserState: BrowserStorageState;
|
|
136
|
+
gptClient: GptClient | undefined;
|
|
137
|
+
};
|
|
136
138
|
}
|
|
137
139
|
//# sourceMappingURL=DonobuExtendedPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,uCAAuC,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/lib/PageAi.d.ts
CHANGED
|
@@ -1,9 +1,30 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
2
|
import { DonobuStack } from '../managers/DonobuStack';
|
|
3
3
|
import { DonobuExtendedPage } from './DonobuExtendedPage';
|
|
4
|
+
import { FlowMetadata } from '../models/FlowMetadata';
|
|
5
|
+
import { DonobuFlow } from '../managers/DonobuFlow';
|
|
4
6
|
import { GptClient } from '../clients/GptClient';
|
|
5
7
|
import { FlowsPersistence } from '../persistence/flows/FlowsPersistence';
|
|
6
8
|
import { ProposedToolCall } from '../models/ProposedToolCall';
|
|
9
|
+
import { PageAiCache } from './pageAi/cache';
|
|
10
|
+
/**
|
|
11
|
+
* Page AI orchestration entry point.
|
|
12
|
+
*
|
|
13
|
+
* Historically, `PageAi` owned everything from cache storage to Donobu flow
|
|
14
|
+
* execution. That made the class hard to test and even harder to modify. The
|
|
15
|
+
* refactor splits responsibilities into smaller pieces that are easier to
|
|
16
|
+
* reason about:
|
|
17
|
+
*
|
|
18
|
+
* - {@link PageAiRunner} sets up the `DonobuFlow` and keeps the persistence
|
|
19
|
+
* layer in sync. It knows nothing about caches.
|
|
20
|
+
* - {@link PageAi} glues together the runner with a pluggable cache so that
|
|
21
|
+
* consumers (e.g., Playwright fixtures) keep their simple `page.ai(...)`
|
|
22
|
+
* API while gaining better separation of concerns.
|
|
23
|
+
*
|
|
24
|
+
* The documentation in this file attempts to guide new contributors through
|
|
25
|
+
* the lifecycle of a single `page.ai` call: resolve cache → run flow →
|
|
26
|
+
* persist metadata → update cache.
|
|
27
|
+
*/
|
|
7
28
|
type PageAiBaseOptions = {
|
|
8
29
|
cache?: boolean;
|
|
9
30
|
allowedTools?: string[];
|
|
@@ -18,96 +39,101 @@ type PageAiNoSchemaOptions = PageAiBaseOptions & {
|
|
|
18
39
|
};
|
|
19
40
|
export type PageAiOptions<Schema extends z.ZodObject | undefined = undefined> = Schema extends z.ZodObject ? PageAiSchemaOptions<Schema> : PageAiNoSchemaOptions;
|
|
20
41
|
type AiResult<Schema extends z.ZodObject | undefined> = Schema extends z.ZodObject ? z.infer<Schema> : void;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
instruction: string
|
|
24
|
-
schema:
|
|
42
|
+
type PageAiRunConfiguration<Schema extends z.ZodObject | undefined> = {
|
|
43
|
+
page: DonobuExtendedPage;
|
|
44
|
+
instruction: string;
|
|
45
|
+
schema: Schema;
|
|
46
|
+
jsonSchema: Record<string, unknown> | null;
|
|
25
47
|
allowedTools: string[];
|
|
26
|
-
maxToolCalls: number
|
|
48
|
+
maxToolCalls: number;
|
|
49
|
+
envVarNames: string[];
|
|
50
|
+
cachedToolCalls: ProposedToolCall[] | null;
|
|
51
|
+
runMode: FlowMetadata['runMode'];
|
|
27
52
|
};
|
|
28
|
-
|
|
29
|
-
|
|
53
|
+
type PageAiRunResult<Schema extends z.ZodObject | undefined> = {
|
|
54
|
+
donobuFlow: DonobuFlow;
|
|
55
|
+
parsedResult: AiResult<Schema>;
|
|
30
56
|
};
|
|
31
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Prepares and executes a Donobu autonomous flow.
|
|
59
|
+
*
|
|
60
|
+
* Responsibilities:
|
|
61
|
+
* - Gather environment data based on allowed env vars.
|
|
62
|
+
* - Seed `DonobuFlow` with deterministic metadata (run mode, allowed tools, etc.).
|
|
63
|
+
* - Run the flow, updating persisted metadata regardless of outcome.
|
|
64
|
+
*
|
|
65
|
+
* The runner does **not** perform cache lookups or updates. That is deferred to
|
|
66
|
+
* the higher-level {@link PageAi} facade so that the runner can stay focused on
|
|
67
|
+
* “how do we execute a flow safely?” rather than “should we execute a flow at
|
|
68
|
+
* all?”.
|
|
69
|
+
*/
|
|
70
|
+
export declare class PageAiRunner {
|
|
32
71
|
private readonly donobu;
|
|
33
72
|
private readonly persistence;
|
|
34
73
|
private readonly gptClient;
|
|
35
|
-
|
|
36
|
-
constructor(donobu: DonobuStack, persistence: FlowsPersistence, gptClient: GptClient, cacheFilepath: string);
|
|
74
|
+
constructor(donobu: DonobuStack, persistence: FlowsPersistence, gptClient: GptClient);
|
|
37
75
|
/**
|
|
38
|
-
* Executes
|
|
39
|
-
* on a web page. The AI agent can interact with the page using Donobu tools and will
|
|
40
|
-
* attempt to satisfy the given objective.
|
|
41
|
-
*
|
|
42
|
-
* This method supports intelligent caching: successful flows are cached and can be
|
|
43
|
-
* replayed deterministically on subsequent runs with identical parameters, significantly
|
|
44
|
-
* reducing AI token usage and execution time. When a cache hit occurs, the flow runs
|
|
45
|
-
* in INSTRUCT mode using the cached tool calls; otherwise, it runs in AUTONOMOUS mode
|
|
46
|
-
* where the AI determines the necessary actions.
|
|
47
|
-
*
|
|
48
|
-
* @template T The Zod object schema describing the expected shape of the AI result.
|
|
49
|
-
* @param page The Donobu page instance to use as the starting point of the flow.
|
|
50
|
-
* @param instruction A high-level, natural language description of what the flow should
|
|
51
|
-
* accomplish (e.g., "Fill out the login form and submit it").
|
|
52
|
-
* @param options Optional configuration for the flow execution:
|
|
53
|
-
* - `cache`: Set to false to bypass cache lookup and population (default: true)
|
|
54
|
-
* - `allowedTools`: Restrict the AI to only use specified tools by name
|
|
55
|
-
* - `maxToolCalls`: Maximum number of tool invocations allowed (default: 25)
|
|
56
|
-
* @returns A promise that resolves to the parsed result payload if a schema is provided,
|
|
57
|
-
* or void if no schema is specified.
|
|
58
|
-
* @throws {PageAiException} If the autonomous flow fails, reaches a terminal non-success
|
|
59
|
-
* state, or the result fails schema validation.
|
|
60
|
-
*
|
|
61
|
-
* @example
|
|
62
|
-
* // Simple flow without structured output
|
|
63
|
-
* await pageAi.ai(page, "Click the 'Get Started' button");
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* // Flow with structured output and schema validation
|
|
67
|
-
* const userSchema = z.object({
|
|
68
|
-
* name: z.string(),
|
|
69
|
-
* email: z.string().email(),
|
|
70
|
-
* isPremium: z.boolean(),
|
|
71
|
-
* });
|
|
72
|
-
* const user = await pageAi.ai(
|
|
73
|
-
* page,
|
|
74
|
-
* "Extract the user profile information from the page",
|
|
75
|
-
* { schema: userSchema }
|
|
76
|
-
* );
|
|
76
|
+
* Executes a flow using the provided configuration.
|
|
77
77
|
*
|
|
78
|
-
* @
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
|
|
88
|
-
|
|
78
|
+
* @param config Runtime information prepared by the higher-level facade.
|
|
79
|
+
* @returns Parsed result (if a schema was provided) along with the executed flow.
|
|
80
|
+
* @throws PageAiException when the underlying flow fails.
|
|
81
|
+
*/
|
|
82
|
+
run<Schema extends z.ZodObject | undefined>(config: PageAiRunConfiguration<Schema>): Promise<PageAiRunResult<Schema>>;
|
|
83
|
+
/**
|
|
84
|
+
* Builds a `ToolManager` constrained to the tools the flow is allowed to use.
|
|
85
|
+
* We always allow the objective bookkeeping tools even if the caller supplied
|
|
86
|
+
* a narrower list.
|
|
87
|
+
*/
|
|
88
|
+
private buildToolManager;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* High-level API used by Playwright tests. It resolves caching policy,
|
|
92
|
+
* delegates execution to {@link PageAiRunner}, and records successful runs back
|
|
93
|
+
* into the configured cache.
|
|
94
|
+
*/
|
|
95
|
+
export declare class PageAi {
|
|
96
|
+
private readonly cache;
|
|
97
|
+
private readonly runner;
|
|
98
|
+
/**
|
|
99
|
+
* @param donobu Donobu stack providing flow managers and shared services.
|
|
100
|
+
* @param persistence Persistence layer used to store flow metadata.
|
|
101
|
+
* @param gptClient GPT client used for autonomous reasoning.
|
|
102
|
+
* @param cache Pluggable cache implementation the facade should consult.
|
|
103
|
+
*/
|
|
104
|
+
constructor(donobu: DonobuStack, persistence: FlowsPersistence, gptClient: GptClient, cache: PageAiCache);
|
|
105
|
+
/**
|
|
106
|
+
* Builds a `PageAi` instance configured to use the file-backed cache stored
|
|
107
|
+
* alongside the current test file. This mirrors the behaviour relied upon by
|
|
108
|
+
* the Playwright fixture.
|
|
109
|
+
*/
|
|
110
|
+
static withFileCache(donobu: DonobuStack, persistence: FlowsPersistence, gptClient: GptClient, cacheFilepath: string): PageAi;
|
|
111
|
+
/**
|
|
112
|
+
* Public entry point invoked by `page.ai`. Handles cache lookup, delegates to
|
|
113
|
+
* the runner, and stores the result back into the cache when appropriate.
|
|
89
114
|
*/
|
|
90
115
|
ai<Schema extends z.ZodObject | undefined = undefined>(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<Schema>): Promise<AiResult<Schema>>;
|
|
91
|
-
private ensureCacheFileExists;
|
|
92
116
|
/**
|
|
93
|
-
*
|
|
94
|
-
* across multiple processes. This method handles cache file initialization, locking,
|
|
95
|
-
* reading, executing the provided operation, and conditionally writing back changes.
|
|
117
|
+
* Invalidates cache entries matching the provided invocation parameters.
|
|
96
118
|
*
|
|
97
|
-
*
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
*
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
119
|
+
* Returns `true` when a matching record existed and was removed.
|
|
120
|
+
*/
|
|
121
|
+
invalidate<Schema extends z.ZodObject | undefined>(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<Schema>): Promise<boolean>;
|
|
122
|
+
/**
|
|
123
|
+
* Backwards-compatible alias for callers still using the older API.
|
|
124
|
+
*/
|
|
125
|
+
deleteCachedFlow<Schema extends z.ZodObject | undefined>(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<Schema>): Promise<boolean>;
|
|
126
|
+
/**
|
|
127
|
+
* Normalises user-provided options into a single structure that can be reused
|
|
128
|
+
* across cache operations and flow execution.
|
|
129
|
+
*/
|
|
130
|
+
private buildDescriptor;
|
|
131
|
+
/**
|
|
132
|
+
* Computes the cache key that uniquely identifies a `page.ai` invocation.
|
|
133
|
+
* Keep this logic in sync with any external cache generators (e.g. the code
|
|
134
|
+
* generator) so that hits and invalidations behave the same everywhere.
|
|
105
135
|
*/
|
|
106
|
-
private
|
|
107
|
-
private getCacheKey;
|
|
108
|
-
private getCachedFlow;
|
|
109
|
-
deleteCachedFlow(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<any>): Promise<boolean>;
|
|
110
|
-
private cacheFlow;
|
|
136
|
+
private buildCacheKey;
|
|
111
137
|
}
|
|
112
138
|
export {};
|
|
113
139
|
//# sourceMappingURL=PageAi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageAi.d.ts","sourceRoot":"","sources":["../../../src/lib/PageAi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"PageAi.d.ts","sourceRoot":"","sources":["../../../src/lib/PageAi.ts"],"names":[],"mappings":"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"}
|