@browserbasehq/convex-stagehand 0.0.3 → 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 +16 -17
- package/dist/client/index.d.ts +61 -4
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +89 -18
- 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 -17
- package/dist/component/api.d.ts.map +1 -1
- package/dist/component/api.js +93 -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 +489 -50
- 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 +151 -21
- package/src/component/_generated/component.ts +213 -12
- package/src/component/_generated/dataModel.ts +45 -2
- package/src/component/api.ts +225 -68
- package/src/component/lib.ts +639 -57
- package/src/component/schema.ts +8 -0
package/README.md
CHANGED
|
@@ -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,15 +22,38 @@ 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
|
}
|
|
36
59
|
/**
|
|
@@ -92,31 +115,46 @@ export interface StartSessionOptions {
|
|
|
92
115
|
domSettleTimeoutMs?: number;
|
|
93
116
|
selfHeal?: boolean;
|
|
94
117
|
systemPrompt?: string;
|
|
118
|
+
verbose?: 0 | 1 | 2;
|
|
119
|
+
experimental?: boolean;
|
|
95
120
|
}
|
|
96
121
|
export interface ExtractOptions {
|
|
97
122
|
timeout?: number;
|
|
98
123
|
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
124
|
+
model?: string | ModelConfig;
|
|
125
|
+
selector?: string;
|
|
99
126
|
}
|
|
100
127
|
export interface ActOptions {
|
|
101
128
|
timeout?: number;
|
|
102
129
|
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
130
|
+
model?: string | ModelConfig;
|
|
131
|
+
variables?: Record<string, string>;
|
|
103
132
|
}
|
|
104
133
|
export interface ObserveOptions {
|
|
105
134
|
timeout?: number;
|
|
106
135
|
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
136
|
+
model?: string | ModelConfig;
|
|
137
|
+
selector?: string;
|
|
107
138
|
}
|
|
108
139
|
export interface AgentOptions {
|
|
109
140
|
cua?: boolean;
|
|
141
|
+
mode?: "dom" | "hybrid" | "cua";
|
|
110
142
|
maxSteps?: number;
|
|
111
143
|
systemPrompt?: string;
|
|
112
144
|
timeout?: number;
|
|
113
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;
|
|
114
151
|
}
|
|
115
152
|
export interface ObservedAction {
|
|
116
153
|
description: string;
|
|
117
154
|
selector: string;
|
|
118
|
-
method
|
|
155
|
+
method?: string;
|
|
119
156
|
arguments?: string[];
|
|
157
|
+
backendNodeId?: number;
|
|
120
158
|
}
|
|
121
159
|
export interface ActResult {
|
|
122
160
|
success: boolean;
|
|
@@ -128,12 +166,25 @@ export interface AgentAction {
|
|
|
128
166
|
action?: string;
|
|
129
167
|
reasoning?: string;
|
|
130
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;
|
|
131
180
|
}
|
|
132
181
|
export interface AgentResult {
|
|
133
182
|
actions: AgentAction[];
|
|
134
183
|
completed: boolean;
|
|
135
184
|
message: string;
|
|
136
185
|
success: boolean;
|
|
186
|
+
metadata?: Record<string, unknown>;
|
|
187
|
+
usage?: AgentUsage;
|
|
137
188
|
}
|
|
138
189
|
/**
|
|
139
190
|
* Stagehand client for AI-powered browser automation.
|
|
@@ -164,13 +215,19 @@ export declare class Stagehand {
|
|
|
164
215
|
private component;
|
|
165
216
|
private config;
|
|
166
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;
|
|
167
224
|
/**
|
|
168
225
|
* Start a new browser session.
|
|
169
226
|
* Returns session info including cdpUrl for direct Playwright/Puppeteer connection.
|
|
170
227
|
*
|
|
171
228
|
* @param ctx - Convex action context
|
|
172
229
|
* @param args - Session parameters
|
|
173
|
-
* @returns Session info with sessionId
|
|
230
|
+
* @returns Session info with sessionId and cdpUrl
|
|
174
231
|
*
|
|
175
232
|
* @example
|
|
176
233
|
* ```typescript
|
|
@@ -183,7 +240,7 @@ export declare class Stagehand {
|
|
|
183
240
|
*/
|
|
184
241
|
startSession(ctx: ActionCtx, args: {
|
|
185
242
|
url: string;
|
|
186
|
-
|
|
243
|
+
browserbaseSessionID?: string;
|
|
187
244
|
browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
|
|
188
245
|
options?: StartSessionOptions;
|
|
189
246
|
}): Promise<SessionInfo>;
|
|
@@ -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,11 +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
|
-
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams
|
|
63
|
-
|
|
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
|
+
},
|
|
64
100
|
});
|
|
65
101
|
}
|
|
66
102
|
/**
|
|
@@ -77,7 +113,7 @@ export class Stagehand {
|
|
|
77
113
|
*/
|
|
78
114
|
async endSession(ctx, args) {
|
|
79
115
|
return ctx.runAction(this.component.lib.endSession, {
|
|
80
|
-
...this.
|
|
116
|
+
...this.credentials,
|
|
81
117
|
sessionId: args.sessionId,
|
|
82
118
|
});
|
|
83
119
|
}
|
|
@@ -115,13 +151,20 @@ export class Stagehand {
|
|
|
115
151
|
// Remove $schema field as it's reserved in Convex
|
|
116
152
|
delete jsonSchema.$schema;
|
|
117
153
|
return ctx.runAction(this.component.lib.extract, {
|
|
118
|
-
...this.
|
|
154
|
+
...this.credentials,
|
|
119
155
|
sessionId: args.sessionId,
|
|
120
156
|
url: args.url,
|
|
121
157
|
instruction: args.instruction,
|
|
122
158
|
schema: jsonSchema,
|
|
123
|
-
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams
|
|
124
|
-
|
|
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
|
+
},
|
|
125
168
|
});
|
|
126
169
|
}
|
|
127
170
|
/**
|
|
@@ -148,12 +191,19 @@ export class Stagehand {
|
|
|
148
191
|
*/
|
|
149
192
|
async act(ctx, args) {
|
|
150
193
|
return ctx.runAction(this.component.lib.act, {
|
|
151
|
-
...this.
|
|
194
|
+
...this.credentials,
|
|
152
195
|
sessionId: args.sessionId,
|
|
153
196
|
url: args.url,
|
|
154
197
|
action: args.action,
|
|
155
|
-
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams
|
|
156
|
-
|
|
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
|
+
},
|
|
157
207
|
});
|
|
158
208
|
}
|
|
159
209
|
/**
|
|
@@ -173,12 +223,19 @@ export class Stagehand {
|
|
|
173
223
|
*/
|
|
174
224
|
async observe(ctx, args) {
|
|
175
225
|
return ctx.runAction(this.component.lib.observe, {
|
|
176
|
-
...this.
|
|
226
|
+
...this.credentials,
|
|
177
227
|
sessionId: args.sessionId,
|
|
178
228
|
url: args.url,
|
|
179
229
|
instruction: args.instruction,
|
|
180
|
-
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams
|
|
181
|
-
|
|
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
|
+
},
|
|
182
239
|
});
|
|
183
240
|
}
|
|
184
241
|
/**
|
|
@@ -208,12 +265,26 @@ export class Stagehand {
|
|
|
208
265
|
*/
|
|
209
266
|
async agent(ctx, args) {
|
|
210
267
|
return ctx.runAction(this.component.lib.agent, {
|
|
211
|
-
...this.
|
|
268
|
+
...this.credentials,
|
|
212
269
|
sessionId: args.sessionId,
|
|
213
270
|
url: args.url,
|
|
214
271
|
instruction: args.instruction,
|
|
215
|
-
browserbaseSessionCreateParams: args.browserbaseSessionCreateParams
|
|
216
|
-
|
|
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
|
+
},
|
|
217
288
|
});
|
|
218
289
|
}
|
|
219
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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Generated
|
|
2
|
+
* Generated `ComponentApi` utility.
|
|
3
3
|
*
|
|
4
4
|
* THIS CODE IS AUTOMATICALLY GENERATED.
|
|
5
5
|
*
|
|
@@ -7,18 +7,189 @@
|
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
9
|
import type { FunctionReference } from "convex/server";
|
|
10
|
+
type ModelConfig = string | {
|
|
11
|
+
modelName?: string;
|
|
12
|
+
apiKey?: string;
|
|
13
|
+
baseURL?: string;
|
|
14
|
+
provider?: string;
|
|
15
|
+
};
|
|
10
16
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
17
|
+
* A utility for referencing a Convex component's exposed API.
|
|
18
|
+
*
|
|
19
|
+
* Useful when expecting a parameter like `components.myComponent`.
|
|
20
|
+
* Usage:
|
|
21
|
+
* ```ts
|
|
22
|
+
* async function myFunction(ctx: QueryCtx, component: ComponentApi) {
|
|
23
|
+
* return ctx.runQuery(component.someFile.someQuery, { ...args });
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
13
26
|
*/
|
|
14
|
-
export type ComponentApi = {
|
|
27
|
+
export type ComponentApi<Name extends string | undefined = string | undefined> = {
|
|
15
28
|
lib: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
29
|
+
act: FunctionReference<"action", "internal", {
|
|
30
|
+
action: string;
|
|
31
|
+
browserbaseApiKey: string;
|
|
32
|
+
browserbaseProjectId: string;
|
|
33
|
+
browserbaseSessionCreateParams?: any;
|
|
34
|
+
model?: ModelConfig;
|
|
35
|
+
modelApiKey: string;
|
|
36
|
+
modelName?: string;
|
|
37
|
+
options?: {
|
|
38
|
+
timeout?: number;
|
|
39
|
+
variables?: Record<string, string>;
|
|
40
|
+
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
41
|
+
};
|
|
42
|
+
sessionConfig?: {
|
|
43
|
+
domSettleTimeoutMs?: number;
|
|
44
|
+
experimental?: boolean;
|
|
45
|
+
selfHeal?: boolean;
|
|
46
|
+
systemPrompt?: string;
|
|
47
|
+
verbose?: number;
|
|
48
|
+
};
|
|
49
|
+
sessionId?: string;
|
|
50
|
+
url?: string;
|
|
51
|
+
}, {
|
|
52
|
+
actionDescription: string;
|
|
53
|
+
message: string;
|
|
54
|
+
success: boolean;
|
|
55
|
+
}, Name>;
|
|
56
|
+
agent: FunctionReference<"action", "internal", {
|
|
57
|
+
browserbaseApiKey: string;
|
|
58
|
+
browserbaseProjectId: string;
|
|
59
|
+
browserbaseSessionCreateParams?: any;
|
|
60
|
+
instruction: string;
|
|
61
|
+
model?: ModelConfig;
|
|
62
|
+
modelApiKey: string;
|
|
63
|
+
modelName?: string;
|
|
64
|
+
options?: {
|
|
65
|
+
cua?: boolean;
|
|
66
|
+
executionModel?: ModelConfig;
|
|
67
|
+
highlightCursor?: boolean;
|
|
68
|
+
maxSteps?: number;
|
|
69
|
+
mode?: string;
|
|
70
|
+
provider?: string;
|
|
71
|
+
shouldCache?: boolean;
|
|
72
|
+
systemPrompt?: string;
|
|
73
|
+
timeout?: number;
|
|
74
|
+
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
75
|
+
};
|
|
76
|
+
sessionConfig?: {
|
|
77
|
+
domSettleTimeoutMs?: number;
|
|
78
|
+
experimental?: boolean;
|
|
79
|
+
selfHeal?: boolean;
|
|
80
|
+
systemPrompt?: string;
|
|
81
|
+
verbose?: number;
|
|
82
|
+
};
|
|
83
|
+
sessionId?: string;
|
|
84
|
+
url?: string;
|
|
85
|
+
}, {
|
|
86
|
+
actions: Array<{
|
|
87
|
+
action?: string;
|
|
88
|
+
instruction?: string;
|
|
89
|
+
pageText?: string;
|
|
90
|
+
pageUrl?: string;
|
|
91
|
+
reasoning?: string;
|
|
92
|
+
taskCompleted?: boolean;
|
|
93
|
+
timeMs?: number;
|
|
94
|
+
type: string;
|
|
95
|
+
}>;
|
|
96
|
+
completed: boolean;
|
|
97
|
+
message: string;
|
|
98
|
+
metadata?: any;
|
|
99
|
+
success: boolean;
|
|
100
|
+
usage?: {
|
|
101
|
+
cached_input_tokens?: number;
|
|
102
|
+
inference_time_ms: number;
|
|
103
|
+
input_tokens: number;
|
|
104
|
+
output_tokens: number;
|
|
105
|
+
reasoning_tokens?: number;
|
|
106
|
+
};
|
|
107
|
+
}, Name>;
|
|
108
|
+
endSession: FunctionReference<"action", "internal", {
|
|
109
|
+
browserbaseApiKey: string;
|
|
110
|
+
browserbaseProjectId: string;
|
|
111
|
+
modelApiKey: string;
|
|
112
|
+
modelName?: string;
|
|
113
|
+
sessionId: string;
|
|
114
|
+
}, {
|
|
115
|
+
success: boolean;
|
|
116
|
+
}, Name>;
|
|
117
|
+
extract: FunctionReference<"action", "internal", {
|
|
118
|
+
browserbaseApiKey: string;
|
|
119
|
+
browserbaseProjectId: string;
|
|
120
|
+
browserbaseSessionCreateParams?: any;
|
|
121
|
+
instruction: string;
|
|
122
|
+
model?: ModelConfig;
|
|
123
|
+
modelApiKey: string;
|
|
124
|
+
modelName?: string;
|
|
125
|
+
options?: {
|
|
126
|
+
selector?: string;
|
|
127
|
+
timeout?: number;
|
|
128
|
+
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
129
|
+
};
|
|
130
|
+
schema: any;
|
|
131
|
+
sessionConfig?: {
|
|
132
|
+
domSettleTimeoutMs?: number;
|
|
133
|
+
experimental?: boolean;
|
|
134
|
+
selfHeal?: boolean;
|
|
135
|
+
systemPrompt?: string;
|
|
136
|
+
verbose?: number;
|
|
137
|
+
};
|
|
138
|
+
sessionId?: string;
|
|
139
|
+
url?: string;
|
|
140
|
+
}, any, Name>;
|
|
141
|
+
observe: FunctionReference<"action", "internal", {
|
|
142
|
+
browserbaseApiKey: string;
|
|
143
|
+
browserbaseProjectId: string;
|
|
144
|
+
browserbaseSessionCreateParams?: any;
|
|
145
|
+
instruction: string;
|
|
146
|
+
model?: ModelConfig;
|
|
147
|
+
modelApiKey: string;
|
|
148
|
+
modelName?: string;
|
|
149
|
+
options?: {
|
|
150
|
+
selector?: string;
|
|
151
|
+
timeout?: number;
|
|
152
|
+
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
153
|
+
};
|
|
154
|
+
sessionConfig?: {
|
|
155
|
+
domSettleTimeoutMs?: number;
|
|
156
|
+
experimental?: boolean;
|
|
157
|
+
selfHeal?: boolean;
|
|
158
|
+
systemPrompt?: string;
|
|
159
|
+
verbose?: number;
|
|
160
|
+
};
|
|
161
|
+
sessionId?: string;
|
|
162
|
+
url?: string;
|
|
163
|
+
}, Array<{
|
|
164
|
+
arguments?: Array<string>;
|
|
165
|
+
backendNodeId?: number;
|
|
166
|
+
description: string;
|
|
167
|
+
method?: string;
|
|
168
|
+
selector: string;
|
|
169
|
+
}>, Name>;
|
|
170
|
+
startSession: FunctionReference<"action", "internal", {
|
|
171
|
+
browserbaseApiKey: string;
|
|
172
|
+
browserbaseProjectId: string;
|
|
173
|
+
browserbaseSessionCreateParams?: any;
|
|
174
|
+
browserbaseSessionID?: string;
|
|
175
|
+
model?: ModelConfig;
|
|
176
|
+
modelApiKey: string;
|
|
177
|
+
modelName?: string;
|
|
178
|
+
options?: {
|
|
179
|
+
domSettleTimeoutMs?: number;
|
|
180
|
+
experimental?: boolean;
|
|
181
|
+
selfHeal?: boolean;
|
|
182
|
+
systemPrompt?: string;
|
|
183
|
+
timeout?: number;
|
|
184
|
+
verbose?: number;
|
|
185
|
+
waitUntil?: "load" | "domcontentloaded" | "networkidle";
|
|
186
|
+
};
|
|
187
|
+
url: string;
|
|
188
|
+
}, {
|
|
189
|
+
cdpUrl?: string;
|
|
190
|
+
sessionId: string;
|
|
191
|
+
}, Name>;
|
|
22
192
|
};
|
|
23
193
|
};
|
|
194
|
+
export {};
|
|
24
195
|
//# sourceMappingURL=component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"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"}
|