@browserbasehq/convex-stagehand 0.0.2 → 0.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 +17 -18
- package/dist/client/index.d.ts +119 -4
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +89 -13
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +181 -10
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/_generated/component.js +1 -1
- package/dist/component/_generated/dataModel.d.ts +33 -2
- package/dist/component/_generated/dataModel.d.ts.map +1 -1
- package/dist/component/api.d.ts +78 -16
- package/dist/component/api.d.ts.map +1 -1
- package/dist/component/api.js +94 -33
- package/dist/component/api.js.map +1 -1
- package/dist/component/lib.d.ts +23 -5
- package/dist/component/lib.d.ts.map +1 -1
- package/dist/component/lib.js +507 -54
- package/dist/component/lib.js.map +1 -1
- package/dist/component/schema.d.ts +3 -1
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +1 -0
- package/dist/component/schema.js.map +1 -1
- package/dist/test.d.ts +3 -1
- package/dist/test.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/index.ts +218 -16
- package/src/component/_generated/component.ts +213 -12
- package/src/component/_generated/dataModel.ts +45 -2
- package/src/component/api.ts +225 -66
- package/src/component/lib.ts +657 -61
- package/src/component/schema.ts +8 -0
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ AI-powered browser automation for Convex applications. Extract data, perform act
|
|
|
15
15
|
### 1. Install the Component
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
npm install
|
|
18
|
+
npm install @browserbasehq/convex-stagehand zod
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
### 2. Configure Convex
|
|
@@ -82,7 +82,7 @@ Start a new browser session. Returns session info for use with other operations.
|
|
|
82
82
|
```typescript
|
|
83
83
|
const session = await stagehand.startSession(ctx, {
|
|
84
84
|
url: "https://example.com",
|
|
85
|
-
|
|
85
|
+
browserbaseSessionID: "optional-existing-session-id",
|
|
86
86
|
options: {
|
|
87
87
|
timeout: 30000,
|
|
88
88
|
waitUntil: "networkidle",
|
|
@@ -91,12 +91,12 @@ const session = await stagehand.startSession(ctx, {
|
|
|
91
91
|
systemPrompt: "Custom system prompt for the session",
|
|
92
92
|
}
|
|
93
93
|
});
|
|
94
|
-
// { sessionId: "...",
|
|
94
|
+
// { sessionId: "...", cdpUrl: "wss://..." }
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
**Parameters:**
|
|
98
98
|
- `url` - The URL to navigate to
|
|
99
|
-
- `
|
|
99
|
+
- `browserbaseSessionID` - Optional: Resume an existing Browserbase session
|
|
100
100
|
- `options.timeout` - Navigation timeout in milliseconds
|
|
101
101
|
- `options.waitUntil` - When to consider navigation complete: `"load"`, `"domcontentloaded"`, or `"networkidle"`
|
|
102
102
|
- `options.domSettleTimeoutMs` - Timeout for DOM to settle before considering page loaded
|
|
@@ -106,9 +106,8 @@ const session = await stagehand.startSession(ctx, {
|
|
|
106
106
|
**Returns:**
|
|
107
107
|
```typescript
|
|
108
108
|
{
|
|
109
|
-
sessionId: string;
|
|
110
|
-
|
|
111
|
-
cdpUrl?: string; // For advanced Playwright/Puppeteer usage
|
|
109
|
+
sessionId: string; // Use with other operations
|
|
110
|
+
cdpUrl?: string; // For advanced Playwright/Puppeteer usage
|
|
112
111
|
}
|
|
113
112
|
```
|
|
114
113
|
|
|
@@ -344,31 +343,31 @@ console.log(result.actions); // Detailed log of each action taken
|
|
|
344
343
|
|
|
345
344
|
### Resume session across Convex actions
|
|
346
345
|
|
|
347
|
-
Store the `
|
|
346
|
+
Store the `sessionId` to continue working with the same Stagehand session across different Convex action calls:
|
|
348
347
|
|
|
349
348
|
```typescript
|
|
350
|
-
// Action 1: Start session and return
|
|
349
|
+
// Action 1: Start session and return sessionId
|
|
351
350
|
export const startBrowsing = action({
|
|
352
351
|
handler: async (ctx) => {
|
|
353
352
|
const session = await stagehand.startSession(ctx, {
|
|
354
353
|
url: "https://example.com/login"
|
|
355
354
|
});
|
|
356
|
-
// Store
|
|
357
|
-
return session.
|
|
355
|
+
// Store sessionId in your database
|
|
356
|
+
return session.sessionId;
|
|
358
357
|
}
|
|
359
358
|
});
|
|
360
359
|
|
|
361
|
-
// Action 2:
|
|
360
|
+
// Action 2: Continue same session later
|
|
362
361
|
export const continueBrowsing = action({
|
|
363
|
-
args: {
|
|
362
|
+
args: { sessionId: v.string() },
|
|
364
363
|
handler: async (ctx, args) => {
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
364
|
+
await stagehand.act(ctx, {
|
|
365
|
+
sessionId: args.sessionId,
|
|
366
|
+
action: "Navigate to the dashboard page",
|
|
368
367
|
});
|
|
369
|
-
|
|
368
|
+
|
|
370
369
|
return await stagehand.extract(ctx, {
|
|
371
|
-
sessionId:
|
|
370
|
+
sessionId: args.sessionId,
|
|
372
371
|
instruction: "Extract user data",
|
|
373
372
|
schema: z.object({ ... }),
|
|
374
373
|
});
|
package/dist/client/index.d.ts
CHANGED
|
@@ -22,48 +22,139 @@ export type ComponentApi = {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
type ActionCtx = GenericActionCtx<any>;
|
|
25
|
+
/**
|
|
26
|
+
* Model configuration for custom endpoints, proxies, or alternative providers.
|
|
27
|
+
* @see https://docs.stagehand.dev/v3/references/stagehand
|
|
28
|
+
*/
|
|
29
|
+
export interface ModelConfig {
|
|
30
|
+
modelName?: string;
|
|
31
|
+
apiKey?: string;
|
|
32
|
+
baseURL?: string;
|
|
33
|
+
provider?: "openai" | "anthropic" | "google" | "microsoft";
|
|
34
|
+
}
|
|
25
35
|
export interface StagehandConfig {
|
|
26
36
|
browserbaseApiKey: string;
|
|
27
37
|
browserbaseProjectId: string;
|
|
28
38
|
modelApiKey: string;
|
|
29
39
|
modelName?: string;
|
|
40
|
+
/** Full model configuration with baseURL support. Overrides modelName when modelName is also set. */
|
|
41
|
+
model?: ModelConfig;
|
|
42
|
+
/** Logging verbosity level for sessions. */
|
|
43
|
+
verbose?: 0 | 1 | 2;
|
|
44
|
+
/** Enable self-healing for failed actions. */
|
|
45
|
+
selfHeal?: boolean;
|
|
46
|
+
/** Custom system prompt for AI operations. */
|
|
47
|
+
systemPrompt?: string;
|
|
48
|
+
/** Timeout in ms to wait for DOM to settle. */
|
|
49
|
+
domSettleTimeoutMs?: number;
|
|
50
|
+
/** Enable experimental features. */
|
|
51
|
+
experimental?: boolean;
|
|
52
|
+
/** Default Browserbase session creation parameters. */
|
|
53
|
+
browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
|
|
30
54
|
}
|
|
31
55
|
export interface SessionInfo {
|
|
32
56
|
sessionId: string;
|
|
33
|
-
browserbaseSessionId?: string;
|
|
34
57
|
cdpUrl?: string;
|
|
35
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Parameters for creating a Browserbase session.
|
|
61
|
+
* @see https://stagehand.stldocs.app/api/resources/sessions/methods/start
|
|
62
|
+
*/
|
|
63
|
+
export interface BrowserbaseSessionCreateParams {
|
|
64
|
+
projectId?: string;
|
|
65
|
+
browserSettings?: {
|
|
66
|
+
advancedStealth?: boolean;
|
|
67
|
+
blockAds?: boolean;
|
|
68
|
+
context?: {
|
|
69
|
+
id: string;
|
|
70
|
+
persist?: boolean;
|
|
71
|
+
};
|
|
72
|
+
extensionId?: string;
|
|
73
|
+
fingerprint?: {
|
|
74
|
+
browsers?: ("chrome" | "edge" | "firefox" | "safari")[];
|
|
75
|
+
devices?: ("desktop" | "mobile")[];
|
|
76
|
+
httpVersion?: "1" | "2";
|
|
77
|
+
locales?: string[];
|
|
78
|
+
operatingSystems?: ("android" | "ios" | "linux" | "macos" | "windows")[];
|
|
79
|
+
screen?: {
|
|
80
|
+
maxHeight?: number;
|
|
81
|
+
maxWidth?: number;
|
|
82
|
+
minHeight?: number;
|
|
83
|
+
minWidth?: number;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
logSession?: boolean;
|
|
87
|
+
recordSession?: boolean;
|
|
88
|
+
solveCaptchas?: boolean;
|
|
89
|
+
viewport?: {
|
|
90
|
+
height?: number;
|
|
91
|
+
width?: number;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
extensionId?: string;
|
|
95
|
+
keepAlive?: boolean;
|
|
96
|
+
proxies?: boolean | Array<{
|
|
97
|
+
type: "browserbase" | "external";
|
|
98
|
+
domainPattern?: string;
|
|
99
|
+
geolocation?: {
|
|
100
|
+
country: string;
|
|
101
|
+
city?: string;
|
|
102
|
+
state?: string;
|
|
103
|
+
};
|
|
104
|
+
server?: string;
|
|
105
|
+
password?: string;
|
|
106
|
+
username?: string;
|
|
107
|
+
}>;
|
|
108
|
+
region?: "us-west-2" | "us-east-1" | "eu-central-1" | "ap-southeast-1";
|
|
109
|
+
timeout?: number;
|
|
110
|
+
userMetadata?: Record<string, unknown>;
|
|
111
|
+
}
|
|
36
112
|
export interface StartSessionOptions {
|
|
37
113
|
timeout?: number;
|
|
38
114
|
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
39
115
|
domSettleTimeoutMs?: number;
|
|
40
116
|
selfHeal?: boolean;
|
|
41
117
|
systemPrompt?: string;
|
|
118
|
+
verbose?: 0 | 1 | 2;
|
|
119
|
+
experimental?: boolean;
|
|
42
120
|
}
|
|
43
121
|
export interface ExtractOptions {
|
|
44
122
|
timeout?: number;
|
|
45
123
|
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
124
|
+
model?: string | ModelConfig;
|
|
125
|
+
selector?: string;
|
|
46
126
|
}
|
|
47
127
|
export interface ActOptions {
|
|
48
128
|
timeout?: number;
|
|
49
129
|
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
130
|
+
model?: string | ModelConfig;
|
|
131
|
+
variables?: Record<string, string>;
|
|
50
132
|
}
|
|
51
133
|
export interface ObserveOptions {
|
|
52
134
|
timeout?: number;
|
|
53
135
|
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
136
|
+
model?: string | ModelConfig;
|
|
137
|
+
selector?: string;
|
|
54
138
|
}
|
|
55
139
|
export interface AgentOptions {
|
|
56
140
|
cua?: boolean;
|
|
141
|
+
mode?: "dom" | "hybrid" | "cua";
|
|
57
142
|
maxSteps?: number;
|
|
58
143
|
systemPrompt?: string;
|
|
59
144
|
timeout?: number;
|
|
60
145
|
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
146
|
+
model?: string | ModelConfig;
|
|
147
|
+
executionModel?: string | ModelConfig;
|
|
148
|
+
provider?: "openai" | "anthropic" | "google" | "microsoft";
|
|
149
|
+
highlightCursor?: boolean;
|
|
150
|
+
shouldCache?: boolean;
|
|
61
151
|
}
|
|
62
152
|
export interface ObservedAction {
|
|
63
153
|
description: string;
|
|
64
154
|
selector: string;
|
|
65
|
-
method
|
|
155
|
+
method?: string;
|
|
66
156
|
arguments?: string[];
|
|
157
|
+
backendNodeId?: number;
|
|
67
158
|
}
|
|
68
159
|
export interface ActResult {
|
|
69
160
|
success: boolean;
|
|
@@ -75,12 +166,25 @@ export interface AgentAction {
|
|
|
75
166
|
action?: string;
|
|
76
167
|
reasoning?: string;
|
|
77
168
|
timeMs?: number;
|
|
169
|
+
taskCompleted?: boolean;
|
|
170
|
+
pageText?: string;
|
|
171
|
+
pageUrl?: string;
|
|
172
|
+
instruction?: string;
|
|
173
|
+
}
|
|
174
|
+
export interface AgentUsage {
|
|
175
|
+
input_tokens: number;
|
|
176
|
+
output_tokens: number;
|
|
177
|
+
reasoning_tokens?: number;
|
|
178
|
+
cached_input_tokens?: number;
|
|
179
|
+
inference_time_ms: number;
|
|
78
180
|
}
|
|
79
181
|
export interface AgentResult {
|
|
80
182
|
actions: AgentAction[];
|
|
81
183
|
completed: boolean;
|
|
82
184
|
message: string;
|
|
83
185
|
success: boolean;
|
|
186
|
+
metadata?: Record<string, unknown>;
|
|
187
|
+
usage?: AgentUsage;
|
|
84
188
|
}
|
|
85
189
|
/**
|
|
86
190
|
* Stagehand client for AI-powered browser automation.
|
|
@@ -111,13 +215,19 @@ export declare class Stagehand {
|
|
|
111
215
|
private component;
|
|
112
216
|
private config;
|
|
113
217
|
constructor(component: ComponentApi, config: StagehandConfig);
|
|
218
|
+
/** Credentials sent as action args for every API call. */
|
|
219
|
+
private get credentials();
|
|
220
|
+
/** Session-level config forwarded to ephemeral sessions. */
|
|
221
|
+
private get sessionConfig();
|
|
222
|
+
/** Resolve per-operation model: per-call override > constructor config > undefined. */
|
|
223
|
+
private resolveModel;
|
|
114
224
|
/**
|
|
115
225
|
* Start a new browser session.
|
|
116
226
|
* Returns session info including cdpUrl for direct Playwright/Puppeteer connection.
|
|
117
227
|
*
|
|
118
228
|
* @param ctx - Convex action context
|
|
119
229
|
* @param args - Session parameters
|
|
120
|
-
* @returns Session info with sessionId
|
|
230
|
+
* @returns Session info with sessionId and cdpUrl
|
|
121
231
|
*
|
|
122
232
|
* @example
|
|
123
233
|
* ```typescript
|
|
@@ -130,7 +240,8 @@ export declare class Stagehand {
|
|
|
130
240
|
*/
|
|
131
241
|
startSession(ctx: ActionCtx, args: {
|
|
132
242
|
url: string;
|
|
133
|
-
|
|
243
|
+
browserbaseSessionID?: string;
|
|
244
|
+
browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
|
|
134
245
|
options?: StartSessionOptions;
|
|
135
246
|
}): Promise<SessionInfo>;
|
|
136
247
|
/**
|
|
@@ -184,6 +295,7 @@ export declare class Stagehand {
|
|
|
184
295
|
url?: string;
|
|
185
296
|
instruction: string;
|
|
186
297
|
schema: T;
|
|
298
|
+
browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
|
|
187
299
|
options?: ExtractOptions;
|
|
188
300
|
}): Promise<z.infer<T>>;
|
|
189
301
|
/**
|
|
@@ -212,6 +324,7 @@ export declare class Stagehand {
|
|
|
212
324
|
sessionId?: string;
|
|
213
325
|
url?: string;
|
|
214
326
|
action: string;
|
|
327
|
+
browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
|
|
215
328
|
options?: ActOptions;
|
|
216
329
|
}): Promise<ActResult>;
|
|
217
330
|
/**
|
|
@@ -233,6 +346,7 @@ export declare class Stagehand {
|
|
|
233
346
|
sessionId?: string;
|
|
234
347
|
url?: string;
|
|
235
348
|
instruction: string;
|
|
349
|
+
browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
|
|
236
350
|
options?: ObserveOptions;
|
|
237
351
|
}): Promise<ObservedAction[]>;
|
|
238
352
|
/**
|
|
@@ -264,6 +378,7 @@ export declare class Stagehand {
|
|
|
264
378
|
sessionId?: string;
|
|
265
379
|
url?: string;
|
|
266
380
|
instruction: string;
|
|
381
|
+
browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
|
|
267
382
|
options?: AgentOptions;
|
|
268
383
|
}): Promise<AgentResult>;
|
|
269
384
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE;QACH,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtD,UAAU,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjD,GAAG,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC7C,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAChD,CAAC;CACH,CAAC;AAEF,KAAK,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.js
CHANGED
|
@@ -37,13 +37,40 @@ export class Stagehand {
|
|
|
37
37
|
this.component = component;
|
|
38
38
|
this.config = config;
|
|
39
39
|
}
|
|
40
|
+
/** Credentials sent as action args for every API call. */
|
|
41
|
+
get credentials() {
|
|
42
|
+
return {
|
|
43
|
+
browserbaseApiKey: this.config.browserbaseApiKey,
|
|
44
|
+
browserbaseProjectId: this.config.browserbaseProjectId,
|
|
45
|
+
modelApiKey: this.config.modelApiKey,
|
|
46
|
+
modelName: this.config.model?.modelName ?? this.config.modelName,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** Session-level config forwarded to ephemeral sessions. */
|
|
50
|
+
get sessionConfig() {
|
|
51
|
+
return {
|
|
52
|
+
domSettleTimeoutMs: this.config.domSettleTimeoutMs,
|
|
53
|
+
selfHeal: this.config.selfHeal,
|
|
54
|
+
systemPrompt: this.config.systemPrompt,
|
|
55
|
+
verbose: this.config.verbose,
|
|
56
|
+
experimental: this.config.experimental,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** Resolve per-operation model: per-call override > constructor config > undefined. */
|
|
60
|
+
resolveModel(override) {
|
|
61
|
+
if (override !== undefined)
|
|
62
|
+
return override;
|
|
63
|
+
if (this.config.model)
|
|
64
|
+
return this.config.model;
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
40
67
|
/**
|
|
41
68
|
* Start a new browser session.
|
|
42
69
|
* Returns session info including cdpUrl for direct Playwright/Puppeteer connection.
|
|
43
70
|
*
|
|
44
71
|
* @param ctx - Convex action context
|
|
45
72
|
* @param args - Session parameters
|
|
46
|
-
* @returns Session info with sessionId
|
|
73
|
+
* @returns Session info with sessionId and cdpUrl
|
|
47
74
|
*
|
|
48
75
|
* @example
|
|
49
76
|
* ```typescript
|
|
@@ -56,10 +83,20 @@ export class Stagehand {
|
|
|
56
83
|
*/
|
|
57
84
|
async startSession(ctx, args) {
|
|
58
85
|
return ctx.runAction(this.component.lib.startSession, {
|
|
59
|
-
...this.
|
|
86
|
+
...this.credentials,
|
|
60
87
|
url: args.url,
|
|
61
|
-
|
|
62
|
-
|
|
88
|
+
browserbaseSessionID: args.browserbaseSessionID,
|
|
89
|
+
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams ??
|
|
90
|
+
this.config.browserbaseSessionCreateParams,
|
|
91
|
+
model: this.resolveModel(),
|
|
92
|
+
options: {
|
|
93
|
+
domSettleTimeoutMs: this.config.domSettleTimeoutMs,
|
|
94
|
+
selfHeal: this.config.selfHeal,
|
|
95
|
+
systemPrompt: this.config.systemPrompt,
|
|
96
|
+
verbose: this.config.verbose,
|
|
97
|
+
experimental: this.config.experimental,
|
|
98
|
+
...args.options,
|
|
99
|
+
},
|
|
63
100
|
});
|
|
64
101
|
}
|
|
65
102
|
/**
|
|
@@ -76,7 +113,7 @@ export class Stagehand {
|
|
|
76
113
|
*/
|
|
77
114
|
async endSession(ctx, args) {
|
|
78
115
|
return ctx.runAction(this.component.lib.endSession, {
|
|
79
|
-
...this.
|
|
116
|
+
...this.credentials,
|
|
80
117
|
sessionId: args.sessionId,
|
|
81
118
|
});
|
|
82
119
|
}
|
|
@@ -114,12 +151,20 @@ export class Stagehand {
|
|
|
114
151
|
// Remove $schema field as it's reserved in Convex
|
|
115
152
|
delete jsonSchema.$schema;
|
|
116
153
|
return ctx.runAction(this.component.lib.extract, {
|
|
117
|
-
...this.
|
|
154
|
+
...this.credentials,
|
|
118
155
|
sessionId: args.sessionId,
|
|
119
156
|
url: args.url,
|
|
120
157
|
instruction: args.instruction,
|
|
121
158
|
schema: jsonSchema,
|
|
122
|
-
|
|
159
|
+
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams ??
|
|
160
|
+
this.config.browserbaseSessionCreateParams,
|
|
161
|
+
model: this.resolveModel(args.options?.model),
|
|
162
|
+
sessionConfig: this.sessionConfig,
|
|
163
|
+
options: {
|
|
164
|
+
timeout: args.options?.timeout,
|
|
165
|
+
waitUntil: args.options?.waitUntil,
|
|
166
|
+
selector: args.options?.selector,
|
|
167
|
+
},
|
|
123
168
|
});
|
|
124
169
|
}
|
|
125
170
|
/**
|
|
@@ -146,11 +191,19 @@ export class Stagehand {
|
|
|
146
191
|
*/
|
|
147
192
|
async act(ctx, args) {
|
|
148
193
|
return ctx.runAction(this.component.lib.act, {
|
|
149
|
-
...this.
|
|
194
|
+
...this.credentials,
|
|
150
195
|
sessionId: args.sessionId,
|
|
151
196
|
url: args.url,
|
|
152
197
|
action: args.action,
|
|
153
|
-
|
|
198
|
+
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams ??
|
|
199
|
+
this.config.browserbaseSessionCreateParams,
|
|
200
|
+
model: this.resolveModel(args.options?.model),
|
|
201
|
+
sessionConfig: this.sessionConfig,
|
|
202
|
+
options: {
|
|
203
|
+
timeout: args.options?.timeout,
|
|
204
|
+
waitUntil: args.options?.waitUntil,
|
|
205
|
+
variables: args.options?.variables,
|
|
206
|
+
},
|
|
154
207
|
});
|
|
155
208
|
}
|
|
156
209
|
/**
|
|
@@ -170,11 +223,19 @@ export class Stagehand {
|
|
|
170
223
|
*/
|
|
171
224
|
async observe(ctx, args) {
|
|
172
225
|
return ctx.runAction(this.component.lib.observe, {
|
|
173
|
-
...this.
|
|
226
|
+
...this.credentials,
|
|
174
227
|
sessionId: args.sessionId,
|
|
175
228
|
url: args.url,
|
|
176
229
|
instruction: args.instruction,
|
|
177
|
-
|
|
230
|
+
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams ??
|
|
231
|
+
this.config.browserbaseSessionCreateParams,
|
|
232
|
+
model: this.resolveModel(args.options?.model),
|
|
233
|
+
sessionConfig: this.sessionConfig,
|
|
234
|
+
options: {
|
|
235
|
+
timeout: args.options?.timeout,
|
|
236
|
+
waitUntil: args.options?.waitUntil,
|
|
237
|
+
selector: args.options?.selector,
|
|
238
|
+
},
|
|
178
239
|
});
|
|
179
240
|
}
|
|
180
241
|
/**
|
|
@@ -204,11 +265,26 @@ export class Stagehand {
|
|
|
204
265
|
*/
|
|
205
266
|
async agent(ctx, args) {
|
|
206
267
|
return ctx.runAction(this.component.lib.agent, {
|
|
207
|
-
...this.
|
|
268
|
+
...this.credentials,
|
|
208
269
|
sessionId: args.sessionId,
|
|
209
270
|
url: args.url,
|
|
210
271
|
instruction: args.instruction,
|
|
211
|
-
|
|
272
|
+
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams ??
|
|
273
|
+
this.config.browserbaseSessionCreateParams,
|
|
274
|
+
model: this.resolveModel(args.options?.model),
|
|
275
|
+
sessionConfig: this.sessionConfig,
|
|
276
|
+
options: {
|
|
277
|
+
cua: args.options?.cua,
|
|
278
|
+
mode: args.options?.mode,
|
|
279
|
+
maxSteps: args.options?.maxSteps,
|
|
280
|
+
systemPrompt: args.options?.systemPrompt,
|
|
281
|
+
timeout: args.options?.timeout,
|
|
282
|
+
waitUntil: args.options?.waitUntil,
|
|
283
|
+
executionModel: args.options?.executionModel,
|
|
284
|
+
provider: args.options?.provider,
|
|
285
|
+
highlightCursor: args.options?.highlightCursor,
|
|
286
|
+
shouldCache: args.options?.shouldCache,
|
|
287
|
+
},
|
|
212
288
|
});
|
|
213
289
|
}
|
|
214
290
|
}
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|