donobu 2.52.0 → 3.1.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/README.md +100 -100
- package/dist/assets/generated/version +1 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/exceptions/PageAiException.d.ts +2 -1
- package/dist/esm/exceptions/PageAiException.d.ts.map +1 -1
- package/dist/esm/exceptions/PageAiException.js +10 -2
- package/dist/esm/exceptions/PageAiException.js.map +1 -1
- package/dist/esm/lib/DonobuExtendedPage.d.ts +62 -84
- package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/esm/lib/PageAi.d.ts +10 -6
- package/dist/esm/lib/PageAi.d.ts.map +1 -1
- package/dist/esm/lib/PageAi.js +3 -10
- package/dist/esm/lib/PageAi.js.map +1 -1
- package/dist/esm/lib/SmartSelector.d.ts +16 -15
- package/dist/esm/lib/SmartSelector.d.ts.map +1 -1
- package/dist/esm/lib/SmartSelector.js +20 -7
- package/dist/esm/lib/SmartSelector.js.map +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.d.ts.map +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.js +104 -137
- package/dist/esm/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/esm/lib/pageAi/cache.d.ts +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +58 -28
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts +17 -0
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.js +27 -34
- package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts +8 -0
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/exceptions/PageAiException.d.ts +2 -1
- package/dist/exceptions/PageAiException.d.ts.map +1 -1
- package/dist/exceptions/PageAiException.js +10 -2
- package/dist/exceptions/PageAiException.js.map +1 -1
- package/dist/lib/DonobuExtendedPage.d.ts +62 -84
- package/dist/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/lib/PageAi.d.ts +10 -6
- package/dist/lib/PageAi.d.ts.map +1 -1
- package/dist/lib/PageAi.js +3 -10
- package/dist/lib/PageAi.js.map +1 -1
- package/dist/lib/SmartSelector.d.ts +16 -15
- package/dist/lib/SmartSelector.d.ts.map +1 -1
- package/dist/lib/SmartSelector.js +20 -7
- package/dist/lib/SmartSelector.js.map +1 -1
- package/dist/lib/createDonobuExtendedPage.d.ts.map +1 -1
- package/dist/lib/createDonobuExtendedPage.js +104 -137
- package/dist/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/lib/pageAi/cache.d.ts +1 -1
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js +58 -28
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.d.ts +17 -0
- package/dist/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js +27 -34
- package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.d.ts +8 -0
- package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,22 +8,19 @@ import type { BrowserStorageState } from '../models/BrowserStorageState';
|
|
|
8
8
|
import type { FlowMetadata } from '../models/FlowMetadata';
|
|
9
9
|
import type { ToolCallResult } from '../models/ToolCallResult';
|
|
10
10
|
import type { FlowsPersistence } from '../persistence/flows/FlowsPersistence';
|
|
11
|
-
import type {
|
|
12
|
-
import type {
|
|
13
|
-
import type {
|
|
14
|
-
import type { ChooseSelectOptionNonGptSchema } from '../tools/ChooseSelectOptionTool';
|
|
15
|
-
import type { InputRandomizedEmailAddressNonGptSchema } from '../tools/InputRandomizedEmailAddressTool';
|
|
16
|
-
import type { InputTextNonGptSchema } from '../tools/InputTextTool';
|
|
17
|
-
import type { PressKeyNonGptSchema } from '../tools/PressKeyTool';
|
|
18
|
-
import type { SelectorBasedSchema } from '../tools/ReplayableInteraction';
|
|
19
|
-
import type { ScrollPageNonGptSchema } from '../tools/ScrollPageTool';
|
|
20
|
-
import type { PageAi, PageAiOptions } from './PageAi';
|
|
11
|
+
import type { CookieAnalyses } from '../tools/CreateBrowserCookieReportTool';
|
|
12
|
+
import type { AccessibilityResults } from '../tools/RunAccessibilityTestTool';
|
|
13
|
+
import type { PageAi, PageAiNoSchemaOptions, PageAiOptions, PageAiSchemaOptions } from './PageAi';
|
|
21
14
|
import type { SmartSelector } from './SmartSelector';
|
|
22
|
-
export type { PageAiOptions };
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
export type { AccessibilityResults, CookieAnalyses, PageAiNoSchemaOptions, PageAiOptions, PageAiSchemaOptions, };
|
|
16
|
+
type PageAiActOptions<Schema extends z.ZodObject | undefined> = Omit<PageAiOptions<Schema>, 'gptClient'> & {
|
|
17
|
+
gptClient?: GptClient | Exclude<LanguageModel, string>;
|
|
18
|
+
};
|
|
19
|
+
type PageAiAct = {
|
|
20
|
+
<Schema extends z.ZodObject>(instruction: string, options?: PageAiActOptions<Schema>): Promise<z.infer<Schema>>;
|
|
21
|
+
(instruction: string, options?: PageAiActOptions<undefined>): Promise<void>;
|
|
22
|
+
};
|
|
23
|
+
export type PageAiCallable = PageAiAct & {
|
|
27
24
|
/**
|
|
28
25
|
* Launches an autonomous Donobu flow that uses AI to satisfy a natural-language instruction.
|
|
29
26
|
* The flow may call Donobu tools and mirrors the metadata recorded for the surrounding test run.
|
|
@@ -31,59 +28,61 @@ export interface DonobuExtendedPage extends Page {
|
|
|
31
28
|
* Provide a Zod schema when you want the flow to produce structured output; the AI's response is
|
|
32
29
|
* validated against the schema and is returned as the result.
|
|
33
30
|
*
|
|
34
|
-
* @template
|
|
31
|
+
* @template Schema The Zod object schema describing the expected shape of the AI result.
|
|
35
32
|
* @param instruction High-level description of what the autonomous flow should accomplish.
|
|
36
33
|
* @returns The parsed schema result when a schema is provided; otherwise, void.
|
|
37
34
|
* @throws PageAiException if the autonomous flow fails or reaches a terminal non-success state.
|
|
38
35
|
*/
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Run an arbitrary Donobu tool by name.
|
|
42
|
-
*/
|
|
43
|
-
run(toolName: string, toolParams?: any, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
|
|
44
|
-
/**
|
|
45
|
-
* Run an analysis on the current webpage's full raw text. Note that since this runs an analysis on the raw text,
|
|
46
|
-
* rather than, the HTML of the page, the raw text may be a bit jumbled, have its styling lost, careful
|
|
47
|
-
* positioning lost, etc. This tool is useful if there happens to be a lot of text on a page, and it would be
|
|
48
|
-
* tedious to scroll through the entirety of the page in order to get enough context to run an analysis.
|
|
49
|
-
*
|
|
50
|
-
* If there is context relevant to running the analysis that would not be found in the webpage text itself,
|
|
51
|
-
* perhaps context given in another message, prompt, overall object, etc, then provide it in the
|
|
52
|
-
* "additionalRelevantContext" parameter.
|
|
53
|
-
*/
|
|
54
|
-
analyzePageText(params: z.infer<typeof AnalyzePageTextCoreParameters>, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
|
|
36
|
+
act: PageAiAct;
|
|
55
37
|
/**
|
|
56
|
-
* Assert that given
|
|
38
|
+
* Assert that a given condition about the current page holds true (or throws).
|
|
39
|
+
* The assertion is evaluated by AI using the context of the current page's...
|
|
40
|
+
* - Textual context
|
|
41
|
+
* - Viewport screenshot
|
|
42
|
+
* - URL
|
|
43
|
+
* - Title
|
|
57
44
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
changeTab(url: string): Promise<DonobuExtendedPage>;
|
|
64
|
-
/**
|
|
65
|
-
* Choose <option> values for a particular <select> HTML element.
|
|
66
|
-
*/
|
|
67
|
-
chooseSelectOption(params: z.infer<typeof ChooseSelectOptionNonGptSchema>): Promise<ToolCallResult>;
|
|
68
|
-
/**
|
|
69
|
-
* Click an element on a webpage.
|
|
70
|
-
*/
|
|
71
|
-
clickElement(params: z.infer<typeof SelectorBasedSchema>): Promise<ToolCallResult>;
|
|
72
|
-
/**
|
|
73
|
-
* Perform an analysis of the cookies for the current web browsing session.
|
|
74
|
-
*/
|
|
75
|
-
createCookieReport(gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
|
|
45
|
+
assert(assertion: string, options?: {
|
|
46
|
+
retries?: number;
|
|
47
|
+
retryDelaySeconds?: number;
|
|
48
|
+
gptClient?: GptClient | Exclude<LanguageModel, string>;
|
|
49
|
+
}): Promise<void>;
|
|
76
50
|
/**
|
|
77
51
|
* Return an object conforming to the given Zod schema. The object will be
|
|
78
52
|
* generated considering the following:
|
|
79
53
|
* - The given instruction (if any).
|
|
80
54
|
* - A screenshot of the current state of the page.
|
|
81
|
-
* - The history of actions taken on the page.
|
|
55
|
+
* - The history of key actions taken on the page.
|
|
82
56
|
*/
|
|
83
|
-
extract<
|
|
57
|
+
extract<Schema extends z.ZodObject>(schema: Schema, options?: {
|
|
84
58
|
instruction?: string;
|
|
85
|
-
|
|
86
|
-
}
|
|
59
|
+
gptClient?: GptClient | Exclude<LanguageModel, string>;
|
|
60
|
+
}): Promise<z.infer<Schema>>;
|
|
61
|
+
/**
|
|
62
|
+
* Run an analysis on the current webpage's full raw text. Note that since this runs an analysis
|
|
63
|
+
* on the raw text, rather than, the HTML of the page, the raw text may be a bit jumbled,
|
|
64
|
+
* have its styling lost, careful positioning lost, etc.
|
|
65
|
+
*
|
|
66
|
+
* If there is context relevant to running the analysis that would not be found in the webpage
|
|
67
|
+
* text itself, perhaps context given in another message, prompt, overall object, etc, then
|
|
68
|
+
* provide it in the "additionalContext" parameter.
|
|
69
|
+
*/
|
|
70
|
+
analyzePageText(analysisToRun: string, options?: {
|
|
71
|
+
additionalContext?: string;
|
|
72
|
+
gptClient?: GptClient | Exclude<LanguageModel, string>;
|
|
73
|
+
}): Promise<string>;
|
|
74
|
+
/**
|
|
75
|
+
* Perform an analysis of the cookies for the current web browsing session.
|
|
76
|
+
*/
|
|
77
|
+
createCookieReport(options?: {
|
|
78
|
+
gptClient?: GptClient | Exclude<LanguageModel, string>;
|
|
79
|
+
}): Promise<CookieAnalyses>;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Extends the Page object with additional test-related methods.
|
|
83
|
+
*/
|
|
84
|
+
export interface DonobuExtendedPage extends Page {
|
|
85
|
+
ai: PageAiCallable;
|
|
87
86
|
/**
|
|
88
87
|
* Builds a smart selector object that will automatically failover when performing
|
|
89
88
|
* actions.
|
|
@@ -93,41 +92,20 @@ export interface DonobuExtendedPage extends Page {
|
|
|
93
92
|
frame?: string;
|
|
94
93
|
}): SmartSelector;
|
|
95
94
|
/**
|
|
96
|
-
*
|
|
97
|
-
*/
|
|
98
|
-
hoverOverElement(params: z.infer<typeof SelectorBasedSchema>): Promise<ToolCallResult>;
|
|
99
|
-
/**
|
|
100
|
-
* Create a new randomized email address based on a given email and inputs it to a specific input text field.
|
|
101
|
-
* For example if passed "foo@gmail.com", this tool will create "foo+SOMETHING_RANDOM@gmail.com", where
|
|
102
|
-
* SOMETHING_RANDOM is a random string of characters safe for use in an email address, and input it in the
|
|
103
|
-
* specified text field.
|
|
104
|
-
*/
|
|
105
|
-
inputRandomizedEmailAddress(params: z.infer<typeof InputRandomizedEmailAddressNonGptSchema>): Promise<ToolCallResult>;
|
|
106
|
-
/**
|
|
107
|
-
* Input text to a webpage's text input box.
|
|
95
|
+
* Run an arbitrary Donobu tool by name.
|
|
108
96
|
*/
|
|
109
|
-
|
|
97
|
+
run(toolName: string, toolParams?: any, options?: {
|
|
98
|
+
gptClient?: GptClient | Exclude<LanguageModel, string>;
|
|
99
|
+
}): Promise<ToolCallResult>;
|
|
110
100
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* Generally, prefer using the 'inputText' tool instead as it automatically clears existing text
|
|
114
|
-
* and it allows the input of multiple characters at a time. The only advantage this tool has is
|
|
115
|
-
* that it allows the passing of control keys like "Tab", "Backspace", etc.
|
|
101
|
+
* Checks all of the pages in the current browser context and returns the one
|
|
102
|
+
* matching the given URL.
|
|
116
103
|
*/
|
|
117
|
-
|
|
104
|
+
changeTab(url: string): Promise<DonobuExtendedPage>;
|
|
118
105
|
/**
|
|
119
106
|
* Run an web accessibility (i.e. axe-core) test on the current webpage.
|
|
120
107
|
*/
|
|
121
|
-
runAccessibilityTest(): Promise<
|
|
122
|
-
/**
|
|
123
|
-
* Scroll the given element.
|
|
124
|
-
*/
|
|
125
|
-
scroll(params: z.infer<typeof ScrollPageNonGptSchema>): Promise<ToolCallResult>;
|
|
126
|
-
/**
|
|
127
|
-
* Visually assert that a given condition (i.e. the 'assertionToTestFor' field) holds true, using a screenshot of
|
|
128
|
-
* the current webpage.
|
|
129
|
-
*/
|
|
130
|
-
visuallyAssert(params: z.infer<typeof AssertCoreSchema>, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
|
|
108
|
+
runAccessibilityTest(): Promise<AccessibilityResults>;
|
|
131
109
|
_dnb: {
|
|
132
110
|
donobuFlowMetadata: FlowMetadata;
|
|
133
111
|
donobuStack: DonobuStack;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/PageAi.d.ts
CHANGED
|
@@ -17,11 +17,11 @@ import type { PageAiCache } from './pageAi/cache';
|
|
|
17
17
|
* - {@link PageAiRunner} sets up the `DonobuFlow` and keeps the persistence
|
|
18
18
|
* layer in sync. It knows nothing about caches.
|
|
19
19
|
* - {@link PageAi} glues together the runner with a pluggable cache so that
|
|
20
|
-
* consumers (e.g., Playwright fixtures) keep their simple `page.ai(...)`
|
|
20
|
+
* consumers (e.g., Playwright fixtures) keep their simple `page.ai.act(...)`
|
|
21
21
|
* API while gaining better separation of concerns.
|
|
22
22
|
*
|
|
23
23
|
* The documentation in this file attempts to guide new contributors through
|
|
24
|
-
* the lifecycle of a single `page.ai` call: resolve cache → run flow →
|
|
24
|
+
* the lifecycle of a single `page.ai.act(...)` call: resolve cache → run flow →
|
|
25
25
|
* persist metadata → update cache.
|
|
26
26
|
*/
|
|
27
27
|
type PageAiBaseOptions = {
|
|
@@ -29,11 +29,12 @@ type PageAiBaseOptions = {
|
|
|
29
29
|
allowedTools?: string[];
|
|
30
30
|
maxToolCalls?: number;
|
|
31
31
|
envVars?: string[];
|
|
32
|
+
gptClient?: GptClient;
|
|
32
33
|
};
|
|
33
|
-
type PageAiSchemaOptions<Schema extends z.ZodObject> = PageAiBaseOptions & {
|
|
34
|
+
export type PageAiSchemaOptions<Schema extends z.ZodObject> = PageAiBaseOptions & {
|
|
34
35
|
schema: Schema;
|
|
35
36
|
};
|
|
36
|
-
type PageAiNoSchemaOptions = PageAiBaseOptions & {
|
|
37
|
+
export type PageAiNoSchemaOptions = PageAiBaseOptions & {
|
|
37
38
|
schema?: undefined;
|
|
38
39
|
};
|
|
39
40
|
export type PageAiOptions<Schema extends z.ZodObject | undefined = undefined> = Schema extends z.ZodObject ? PageAiSchemaOptions<Schema> : PageAiNoSchemaOptions;
|
|
@@ -48,6 +49,7 @@ type PageAiRunConfiguration<Schema extends z.ZodObject | undefined> = {
|
|
|
48
49
|
envVarNames: string[];
|
|
49
50
|
cachedToolCalls: ProposedToolCall[] | null;
|
|
50
51
|
runMode: FlowMetadata['runMode'];
|
|
52
|
+
gptClient: GptClient | undefined;
|
|
51
53
|
};
|
|
52
54
|
type PageAiRunResult<Schema extends z.ZodObject | undefined> = {
|
|
53
55
|
donobuFlow: DonobuFlow;
|
|
@@ -107,9 +109,11 @@ export declare class PageAi {
|
|
|
107
109
|
static withFileCache(donobu: DonobuStack, gptClient: GptClient, cacheFilepath: string): PageAi;
|
|
108
110
|
static withInMemoryCache(donobu: DonobuStack, gptClient: GptClient): PageAi;
|
|
109
111
|
/**
|
|
110
|
-
* Public entry point invoked by `page.ai`. Handles cache lookup, delegates to
|
|
112
|
+
* Public entry point invoked by `page.ai.act`. Handles cache lookup, delegates to
|
|
111
113
|
* the runner, and stores the result back into the cache when appropriate.
|
|
112
114
|
*/
|
|
115
|
+
ai<Schema extends z.ZodObject>(page: DonobuExtendedPage, instruction: string, options: PageAiSchemaOptions<Schema>): Promise<z.infer<Schema>>;
|
|
116
|
+
ai(page: DonobuExtendedPage, instruction: string, options?: PageAiNoSchemaOptions): Promise<void>;
|
|
113
117
|
ai<Schema extends z.ZodObject | undefined = undefined>(page: DonobuExtendedPage, instruction: string, options?: PageAiOptions<Schema>): Promise<AiResult<Schema>>;
|
|
114
118
|
/**
|
|
115
119
|
* Invalidates cache entries matching the provided invocation parameters.
|
|
@@ -127,7 +131,7 @@ export declare class PageAi {
|
|
|
127
131
|
*/
|
|
128
132
|
private buildDescriptor;
|
|
129
133
|
/**
|
|
130
|
-
* Computes the cache key that uniquely identifies a `page.ai` invocation.
|
|
134
|
+
* Computes the cache key that uniquely identifies a `page.ai.act(...)` invocation.
|
|
131
135
|
* Keep this logic in sync with any external cache generators (e.g. the code
|
|
132
136
|
* generator) so that hits and invalidations behave the same everywhere.
|
|
133
137
|
*/
|
package/dist/lib/PageAi.d.ts.map
CHANGED
|
@@ -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;AAE3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAIlE;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"PageAi.d.ts","sourceRoot":"","sources":["../../src/lib/PageAi.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/PageAi.js
CHANGED
|
@@ -71,11 +71,7 @@ class PageAiRunner {
|
|
|
71
71
|
Logger_1.appLogger.warn(`Failed to update metadata for flow: ${updatedMetadata.id}`, error);
|
|
72
72
|
}
|
|
73
73
|
if (donobuFlow.metadata.state !== 'SUCCESS') {
|
|
74
|
-
|
|
75
|
-
? JSON.stringify(donobuFlow.metadata.result, null, 2)
|
|
76
|
-
: '';
|
|
77
|
-
Logger_1.appLogger.error(`Failed to complete instruction: ${resultBlurb}`);
|
|
78
|
-
throw new PageAiException_1.PageAiException(donobuFlow.metadata);
|
|
74
|
+
throw new PageAiException_1.PageAiException(config.instruction, donobuFlow.metadata);
|
|
79
75
|
}
|
|
80
76
|
const parsedResult = (config.schema?.parse(rawResult) ??
|
|
81
77
|
undefined);
|
|
@@ -130,10 +126,6 @@ class PageAi {
|
|
|
130
126
|
static withInMemoryCache(donobu, gptClient) {
|
|
131
127
|
return new PageAi(donobu, gptClient, new cache_1.InMemoryPageAiCache());
|
|
132
128
|
}
|
|
133
|
-
/**
|
|
134
|
-
* Public entry point invoked by `page.ai`. Handles cache lookup, delegates to
|
|
135
|
-
* the runner, and stores the result back into the cache when appropriate.
|
|
136
|
-
*/
|
|
137
129
|
async ai(page, instruction, options) {
|
|
138
130
|
const descriptor = this.buildDescriptor(page, instruction, options);
|
|
139
131
|
const cachedToolCalls = descriptor.useCache
|
|
@@ -149,6 +141,7 @@ class PageAi {
|
|
|
149
141
|
envVarNames: descriptor.envVarNames,
|
|
150
142
|
cachedToolCalls,
|
|
151
143
|
runMode: cachedToolCalls !== null ? 'DETERMINISTIC' : 'AUTONOMOUS',
|
|
144
|
+
gptClient: options?.gptClient,
|
|
152
145
|
});
|
|
153
146
|
if (descriptor.useCache) {
|
|
154
147
|
const preparedToolCalls = await CodeGenerator_1.CodeGenerator.prepareToolCallsForRerun(
|
|
@@ -200,7 +193,7 @@ class PageAi {
|
|
|
200
193
|
};
|
|
201
194
|
}
|
|
202
195
|
/**
|
|
203
|
-
* Computes the cache key that uniquely identifies a `page.ai` invocation.
|
|
196
|
+
* Computes the cache key that uniquely identifies a `page.ai.act(...)` invocation.
|
|
204
197
|
* Keep this logic in sync with any external cache generators (e.g. the code
|
|
205
198
|
* generator) so that hits and invalidations behave the same everywhere.
|
|
206
199
|
*/
|
package/dist/lib/PageAi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageAi.js","sourceRoot":"","sources":["../../src/lib/PageAi.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAG3B,mEAAgE;AAChE,6DAA0D;AAC1D,uDAAoD;AACpD,uEAAgF;AAEhF,yDAAsD;AACtD,yDAA0D;AAG1D,4CAA4C;AAE5C,iEAAyD;AAEzD,0CAAsE;AACtE,kEAAqE;
|
|
1
|
+
{"version":3,"file":"PageAi.js","sourceRoot":"","sources":["../../src/lib/PageAi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
import type { z } from 'zod/v4';
|
|
2
|
-
import type { ToolCallResult } from '../models/ToolCallResult';
|
|
3
2
|
import type { SelectorBasedSchema } from '../tools/ReplayableInteraction';
|
|
4
3
|
import type { DonobuExtendedPage } from './DonobuExtendedPage';
|
|
5
4
|
export interface SmartSelector {
|
|
6
5
|
/**
|
|
7
6
|
* Choose <option> values for a particular <select> HTML element.
|
|
8
7
|
*/
|
|
9
|
-
selectOption(optionValues: string[]): Promise<
|
|
8
|
+
selectOption(optionValues: string[]): Promise<void>;
|
|
10
9
|
/**
|
|
11
10
|
* Click an element on a webpage.
|
|
12
11
|
*/
|
|
13
|
-
click(): Promise<
|
|
12
|
+
click(): Promise<void>;
|
|
14
13
|
/**
|
|
15
14
|
* Hover the mouse over a specified element on a webpage.
|
|
16
15
|
*/
|
|
17
|
-
hover(): Promise<
|
|
16
|
+
hover(): Promise<void>;
|
|
18
17
|
/**
|
|
19
18
|
* Create a new randomized email address based on a given email and inputs it to a specific input text field.
|
|
20
19
|
* For example if passed "foo@gmail.com", this tool will create "foo+SOMETHING_RANDOM@gmail.com", where
|
|
21
20
|
* SOMETHING_RANDOM is a random string of characters safe for use in an email address, and input it in the
|
|
22
21
|
* specified text field.
|
|
22
|
+
*
|
|
23
|
+
* Returns the randomized email address used.
|
|
23
24
|
*/
|
|
24
25
|
inputRandomizedEmailAddress(baseEmail: string, options?: {
|
|
25
26
|
finalizeWithSubmit?: boolean;
|
|
26
|
-
}): Promise<
|
|
27
|
+
}): Promise<string>;
|
|
27
28
|
/**
|
|
28
29
|
* Input text to a webpage's text input box.
|
|
29
30
|
*/
|
|
30
31
|
inputText(text: string, options?: {
|
|
31
32
|
append?: boolean;
|
|
32
33
|
finalizeWithSubmit?: boolean;
|
|
33
|
-
}): Promise<
|
|
34
|
+
}): Promise<void>;
|
|
34
35
|
/**
|
|
35
36
|
* Press a single key. Note that if there is existing text in the element, it is appended rather than cleared.
|
|
36
37
|
*
|
|
@@ -38,31 +39,31 @@ export interface SmartSelector {
|
|
|
38
39
|
* and it allows the input of multiple characters at a time. The only advantage this tool has is
|
|
39
40
|
* that it allows the passing of control keys like "Tab", "Backspace", etc.
|
|
40
41
|
*/
|
|
41
|
-
pressKey(key: string): Promise<
|
|
42
|
+
pressKey(key: string): Promise<void>;
|
|
42
43
|
/**
|
|
43
44
|
* Scroll the given element.
|
|
44
45
|
*/
|
|
45
46
|
scroll(direction: 'UP' | 'DOWN' | 'LEFT' | 'RIGHT', options?: {
|
|
46
47
|
maxScroll?: boolean;
|
|
47
|
-
}): Promise<
|
|
48
|
+
}): Promise<void>;
|
|
48
49
|
}
|
|
49
50
|
export declare class SmartSelectorImpl implements SmartSelector {
|
|
50
51
|
page: DonobuExtendedPage;
|
|
51
52
|
selector: z.infer<typeof SelectorBasedSchema.shape.selector>;
|
|
52
53
|
constructor(page: DonobuExtendedPage, selector: z.infer<typeof SelectorBasedSchema.shape.selector>);
|
|
53
|
-
selectOption(optionValues: string[]): Promise<
|
|
54
|
-
click(): Promise<
|
|
55
|
-
hover(): Promise<
|
|
54
|
+
selectOption(optionValues: string[]): Promise<void>;
|
|
55
|
+
click(): Promise<void>;
|
|
56
|
+
hover(): Promise<void>;
|
|
56
57
|
inputRandomizedEmailAddress(baseEmail: string, options?: {
|
|
57
58
|
finalizeWithSubmit?: boolean;
|
|
58
|
-
}): Promise<
|
|
59
|
+
}): Promise<string>;
|
|
59
60
|
inputText(text: string, options?: {
|
|
60
61
|
append?: boolean;
|
|
61
62
|
finalizeWithSubmit?: boolean;
|
|
62
|
-
}): Promise<
|
|
63
|
-
pressKey(key: string): Promise<
|
|
63
|
+
}): Promise<void>;
|
|
64
|
+
pressKey(key: string): Promise<void>;
|
|
64
65
|
scroll(direction: 'UP' | 'DOWN' | 'LEFT' | 'RIGHT', options?: {
|
|
65
66
|
maxScroll?: boolean;
|
|
66
|
-
}): Promise<
|
|
67
|
+
}): Promise<void>;
|
|
67
68
|
}
|
|
68
69
|
//# sourceMappingURL=SmartSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartSelector.d.ts","sourceRoot":"","sources":["../../src/lib/SmartSelector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"SmartSelector.d.ts","sourceRoot":"","sources":["../../src/lib/SmartSelector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAYhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;;;;OAOG;IACH,2BAA2B,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;OAEG;IACH,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GACA,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC;;OAEG;IACH,MAAM,CACJ,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAC3C,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GACA,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAE5C,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAD5D,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC;IAGxD,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,2BAA2B,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GACA,OAAO,CAAC,MAAM,CAAC;IAWL,SAAS,CACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GACA,OAAO,CAAC,IAAI,CAAC;IASH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpC,MAAM,CACjB,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAC3C,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GACA,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
|
@@ -1,32 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SmartSelectorImpl = void 0;
|
|
4
|
+
const ChooseSelectOptionTool_1 = require("../tools/ChooseSelectOptionTool");
|
|
5
|
+
const ClickTool_1 = require("../tools/ClickTool");
|
|
6
|
+
const HoverOverElementTool_1 = require("../tools/HoverOverElementTool");
|
|
7
|
+
const InputRandomizedEmailAddressTool_1 = require("../tools/InputRandomizedEmailAddressTool");
|
|
8
|
+
const InputTextTool_1 = require("../tools/InputTextTool");
|
|
9
|
+
const PressKeyTool_1 = require("../tools/PressKeyTool");
|
|
10
|
+
const ScrollPageTool_1 = require("../tools/ScrollPageTool");
|
|
4
11
|
class SmartSelectorImpl {
|
|
5
12
|
constructor(page, selector) {
|
|
6
13
|
this.page = page;
|
|
7
14
|
this.selector = selector;
|
|
8
15
|
}
|
|
9
16
|
async selectOption(optionValues) {
|
|
10
|
-
|
|
17
|
+
await this.page.run(ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME, {
|
|
11
18
|
optionValues: optionValues,
|
|
12
19
|
selector: this.selector,
|
|
13
20
|
});
|
|
14
21
|
}
|
|
15
22
|
async click() {
|
|
16
|
-
|
|
23
|
+
await this.page.run(ClickTool_1.ClickTool.NAME, {
|
|
24
|
+
selector: this.selector,
|
|
25
|
+
});
|
|
17
26
|
}
|
|
18
27
|
async hover() {
|
|
19
|
-
|
|
28
|
+
await this.page.run(HoverOverElementTool_1.HoverOverElementTool.NAME, {
|
|
29
|
+
selector: this.selector,
|
|
30
|
+
});
|
|
20
31
|
}
|
|
21
32
|
async inputRandomizedEmailAddress(baseEmail, options) {
|
|
22
|
-
|
|
33
|
+
const result = await this.page.run(InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME, {
|
|
23
34
|
baseEmail: baseEmail,
|
|
24
35
|
finalizeWithSubmit: options?.finalizeWithSubmit ?? false,
|
|
25
36
|
selector: this.selector,
|
|
26
37
|
});
|
|
38
|
+
const email = result.forLlm.match(/^Inputted email: "([^"]+)"/)?.[1] ?? result.forLlm;
|
|
39
|
+
return email;
|
|
27
40
|
}
|
|
28
41
|
async inputText(text, options) {
|
|
29
|
-
|
|
42
|
+
await this.page.run(InputTextTool_1.InputTextTool.NAME, {
|
|
30
43
|
text: text,
|
|
31
44
|
append: options?.append,
|
|
32
45
|
finalizeWithSubmit: options?.finalizeWithSubmit ?? false,
|
|
@@ -34,13 +47,13 @@ class SmartSelectorImpl {
|
|
|
34
47
|
});
|
|
35
48
|
}
|
|
36
49
|
async pressKey(key) {
|
|
37
|
-
|
|
50
|
+
await this.page.run(PressKeyTool_1.PressKeyTool.NAME, {
|
|
38
51
|
key: key,
|
|
39
52
|
selector: this.selector,
|
|
40
53
|
});
|
|
41
54
|
}
|
|
42
55
|
async scroll(direction, options) {
|
|
43
|
-
|
|
56
|
+
await this.page.run(ScrollPageTool_1.ScrollPageTool.NAME, {
|
|
44
57
|
direction: direction,
|
|
45
58
|
selector: this.selector,
|
|
46
59
|
maxScroll: options?.maxScroll,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartSelector.js","sourceRoot":"","sources":["../../src/lib/SmartSelector.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"SmartSelector.js","sourceRoot":"","sources":["../../src/lib/SmartSelector.ts"],"names":[],"mappings":";;;AAGA,4EAAyE;AACzE,kDAA+C;AAC/C,wEAAqE;AAErE,8FAA2F;AAE3F,0DAAuD;AAEvD,wDAAqD;AAGrD,4DAAyD;AA2DzD,MAAa,iBAAiB;IAC5B,YACS,IAAwB,EACxB,QAA4D;QAD5D,SAAI,GAAJ,IAAI,CAAoB;QACxB,aAAQ,GAAR,QAAQ,CAAoD;IAClE,CAAC;IAEG,KAAK,CAAC,YAAY,CAAC,YAAsB;QAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,+CAAsB,CAAC,IAAI,EAAE;YAC/C,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACiC,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAS,CAAC,IAAI,EAAE;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACsB,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,2CAAoB,CAAC,IAAI,EAAE;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACsB,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,2BAA2B,CACtC,SAAiB,EACjB,OAEC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iEAA+B,CAAC,IAAI,EAAE;YACvE,SAAS,EAAE,SAAS;YACpB,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,KAAK;YACxD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC0C,CAAC,CAAC;QACrE,MAAM,KAAK,GACT,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,IAAY,EACZ,OAGC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,6BAAa,CAAC,IAAI,EAAE;YACtC,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,KAAK;YACxD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACwB,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAW;QAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE;YACrC,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACuB,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,SAA2C,EAC3C,OAEC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,+BAAc,CAAC,IAAI,EAAE;YACvC,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,OAAO,EAAE,SAAS;SACmB,CAAC,CAAC;IACtD,CAAC;CACF;AA3ED,8CA2EC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../src/lib/createDonobuExtendedPage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"createDonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../src/lib/createDonobuExtendedPage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AA2BjD,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,sBAAsB,CAAC;AAa9B,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE;IACR,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACA,OAAO,CAAC,kBAAkB,CAAC,CAuE7B"}
|