@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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Generated component type.
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
- * Component API type for the Stagehand component.
12
- * Used by the client to call component actions.
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
- startSession: FunctionReference<"action", "public", any, any>;
17
- endSession: FunctionReference<"action", "public", any, any>;
18
- extract: FunctionReference<"action", "public", any, any>;
19
- act: FunctionReference<"action", "public", any, any>;
20
- observe: FunctionReference<"action", "public", any, any>;
21
- agent: FunctionReference<"action", "public", any, any>;
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;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE;QACH,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9D,UAAU,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5D,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzD,GAAG,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;KACxD,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable */
2
2
  /**
3
- * Generated component type.
3
+ * Generated `ComponentApi` utility.
4
4
  *
5
5
  * THIS CODE IS AUTOMATICALLY GENERATED.
6
6
  *
@@ -6,10 +6,41 @@
6
6
  * To regenerate, run `npx convex dev`.
7
7
  * @module
8
8
  */
9
- import type { DataModelFromSchemaDefinition } from "convex/server";
10
- import type schema from "../schema.js";
9
+ import type { DataModelFromSchemaDefinition, DocumentByName, TableNamesInDataModel, SystemTableNames } from "convex/server";
10
+ import type { GenericId } from "convex/values";
11
+ import schema from "../schema.js";
12
+ /**
13
+ * The names of all of your Convex tables.
14
+ */
15
+ export type TableNames = TableNamesInDataModel<DataModel>;
11
16
  /**
12
17
  * The type of a document stored in Convex.
18
+ *
19
+ * @typeParam TableName - A string literal type of the table name (like "users").
20
+ */
21
+ export type Doc<TableName extends TableNames> = DocumentByName<DataModel, TableName>;
22
+ /**
23
+ * An identifier for a document in Convex.
24
+ *
25
+ * Convex documents are uniquely identified by their `Id`, which is accessible
26
+ * on the `_id` field. To learn more, see [Document IDs](https://docs.convex.dev/using/document-ids).
27
+ *
28
+ * Documents can be loaded using `db.get(tableName, id)` in query and mutation functions.
29
+ *
30
+ * IDs are just strings at runtime, but this type can be used to distinguish them from other
31
+ * strings when type checking.
32
+ *
33
+ * @typeParam TableName - A string literal type of the table name (like "users").
34
+ */
35
+ export type Id<TableName extends TableNames | SystemTableNames> = GenericId<TableName>;
36
+ /**
37
+ * A type describing your Convex data model.
38
+ *
39
+ * This type includes information about what tables you have, the type of
40
+ * documents stored in those tables, and the indexes defined on them.
41
+ *
42
+ * This type is used to parameterize methods like `queryGeneric` and
43
+ * `mutationGeneric` to make them type-safe.
13
44
  */
14
45
  export type DataModel = DataModelFromSchemaDefinition<typeof schema>;
15
46
  //# sourceMappingURL=dataModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataModel.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/dataModel.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,6BAA6B,CAAC,OAAO,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"dataModel.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/dataModel.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,6BAA6B,EAC7B,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,GAAG,CAAC,SAAS,SAAS,UAAU,IAAI,cAAc,CAC5D,SAAS,EACT,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,EAAE,CAAC,SAAS,SAAS,UAAU,GAAG,gBAAgB,IAC5D,SAAS,CAAC,SAAS,CAAC,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG,6BAA6B,CAAC,OAAO,MAAM,CAAC,CAAC"}
@@ -2,41 +2,64 @@
2
2
  * Stagehand REST API Client
3
3
  *
4
4
  * Wraps the Stagehand API at https://api.stagehand.browserbase.com
5
+ * Wire format matches the OpenAPI spec defined in stagehand/packages/core/lib/v3/types/public/api.ts
5
6
  */
7
+ export type BrowserbaseRegion = "us-west-2" | "us-east-1" | "eu-central-1" | "ap-southeast-1";
8
+ export interface BrowserbaseSessionCreateParams {
9
+ region?: BrowserbaseRegion;
10
+ }
11
+ export declare function getApiBase(region?: BrowserbaseRegion): string;
6
12
  export interface ApiConfig {
7
13
  browserbaseApiKey: string;
8
14
  browserbaseProjectId: string;
9
15
  modelApiKey: string;
10
16
  modelName?: string;
11
17
  }
18
+ /** Matches SessionStartResult from the OpenAPI spec */
12
19
  export interface SessionData {
13
20
  sessionId: string;
14
- browserbaseSessionId?: string;
15
- cdpUrl?: string;
21
+ cdpUrl?: string | null;
16
22
  available: boolean;
17
23
  }
18
24
  export interface StartSessionOptions {
19
- browserbaseSessionId?: string;
25
+ browserbaseSessionID?: string;
26
+ browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
27
+ model?: unknown;
20
28
  domSettleTimeoutMs?: number;
21
29
  selfHeal?: boolean;
22
30
  systemPrompt?: string;
31
+ verbose?: 0 | 1 | 2;
32
+ experimental?: boolean;
23
33
  }
24
34
  export interface ApiResponse<T> {
25
35
  data: T;
26
36
  success: boolean;
27
37
  }
38
+ /** POST /v1/sessions/start — matches SessionStartRequest schema */
28
39
  export declare function startSession(config: ApiConfig, options?: StartSessionOptions): Promise<SessionData>;
29
- export declare function endSession(sessionId: string, config: ApiConfig): Promise<void>;
40
+ /** POST /v1/sessions/{id}/end */
41
+ export declare function endSession(sessionId: string, config: ApiConfig, region?: BrowserbaseRegion): Promise<void>;
42
+ /** Matches NavigateOptions from the OpenAPI spec */
30
43
  export interface NavigateOptions {
31
44
  waitUntil?: "load" | "domcontentloaded" | "networkidle";
32
45
  timeout?: number;
46
+ referer?: string;
33
47
  }
34
- export declare function navigate(sessionId: string, url: string, config: ApiConfig, options?: NavigateOptions): Promise<void>;
35
- export interface ExtractResult<T = any> {
48
+ /** POST /v1/sessions/{id}/navigate matches NavigateRequest schema */
49
+ export declare function navigate(sessionId: string, url: string, config: ApiConfig, options?: NavigateOptions, region?: BrowserbaseRegion): Promise<void>;
50
+ export interface ExtractResult<T = unknown> {
36
51
  result: T;
37
- actionId: string;
52
+ actionId?: string;
53
+ }
54
+ /** Matches ExtractOptions from the OpenAPI spec */
55
+ export interface ExtractOperationOptions {
56
+ model?: unknown;
57
+ timeout?: number;
58
+ selector?: string;
38
59
  }
39
- export declare function extract(sessionId: string, instruction: string, schema: any, config: ApiConfig): Promise<ExtractResult>;
60
+ /** POST /v1/sessions/{id}/extract matches ExtractRequest schema */
61
+ export declare function extract(sessionId: string, instruction: string, schema: unknown, config: ApiConfig, operationOptions?: ExtractOperationOptions, region?: BrowserbaseRegion): Promise<ExtractResult>;
62
+ /** Matches ActResultData from the OpenAPI spec */
40
63
  export interface ActResult {
41
64
  result: {
42
65
  actionDescription: string;
@@ -44,47 +67,86 @@ export interface ActResult {
44
67
  description: string;
45
68
  selector: string;
46
69
  arguments?: string[];
47
- method: string;
70
+ method?: string;
71
+ backendNodeId?: number;
48
72
  }>;
49
73
  message: string;
50
74
  success: boolean;
51
75
  };
52
- actionId: string;
76
+ actionId?: string;
77
+ }
78
+ /** Matches ActOptions from the OpenAPI spec */
79
+ export interface ActOperationOptions {
80
+ model?: unknown;
81
+ variables?: Record<string, string>;
82
+ timeout?: number;
53
83
  }
54
- export declare function act(sessionId: string, action: string, config: ApiConfig): Promise<ActResult>;
84
+ /** POST /v1/sessions/{id}/act matches ActRequest schema */
85
+ export declare function act(sessionId: string, action: string, config: ApiConfig, operationOptions?: ActOperationOptions, region?: BrowserbaseRegion): Promise<ActResult>;
86
+ /** Matches ObserveResult from the OpenAPI spec (Action schema) */
55
87
  export interface ObserveResult {
56
88
  result: Array<{
57
89
  description: string;
58
90
  selector: string;
59
91
  arguments?: string[];
60
92
  backendNodeId?: number;
61
- method: string;
93
+ method?: string;
62
94
  }>;
63
- actionId: string;
95
+ actionId?: string;
96
+ }
97
+ /** Matches ObserveOptions from the OpenAPI spec */
98
+ export interface ObserveOperationOptions {
99
+ model?: unknown;
100
+ timeout?: number;
101
+ selector?: string;
64
102
  }
65
- export declare function observe(sessionId: string, instruction: string, config: ApiConfig): Promise<ObserveResult>;
103
+ /** POST /v1/sessions/{id}/observe matches ObserveRequest schema */
104
+ export declare function observe(sessionId: string, instruction: string, config: ApiConfig, operationOptions?: ObserveOperationOptions, region?: BrowserbaseRegion): Promise<ObserveResult>;
105
+ /** Matches AgentConfig from the OpenAPI spec */
66
106
  export interface AgentConfig {
67
107
  cua?: boolean;
68
- model?: string;
108
+ mode?: "dom" | "hybrid" | "cua";
109
+ model?: unknown;
69
110
  systemPrompt?: string;
111
+ executionModel?: unknown;
112
+ provider?: "openai" | "anthropic" | "google" | "microsoft";
70
113
  }
114
+ /** Matches AgentExecuteOptions from the OpenAPI spec */
71
115
  export interface AgentExecuteOptions {
72
116
  instruction: string;
73
117
  maxSteps?: number;
118
+ highlightCursor?: boolean;
74
119
  }
120
+ /** Matches AgentAction from the OpenAPI spec */
75
121
  export interface AgentAction {
76
122
  type: string;
77
123
  action?: string;
78
124
  reasoning?: string;
79
125
  timeMs?: number;
126
+ taskCompleted?: boolean;
127
+ pageText?: string;
128
+ pageUrl?: string;
129
+ instruction?: string;
130
+ }
131
+ /** Matches AgentUsage from the OpenAPI spec */
132
+ export interface AgentUsage {
133
+ input_tokens: number;
134
+ output_tokens: number;
135
+ reasoning_tokens?: number;
136
+ cached_input_tokens?: number;
137
+ inference_time_ms: number;
80
138
  }
139
+ /** Matches AgentExecuteResult from the OpenAPI spec */
81
140
  export interface AgentExecuteResult {
82
141
  result: {
83
142
  actions: AgentAction[];
84
143
  completed: boolean;
85
144
  message: string;
86
145
  success: boolean;
146
+ metadata?: Record<string, unknown>;
147
+ usage?: AgentUsage;
87
148
  };
88
149
  }
89
- export declare function agentExecute(sessionId: string, agentConfig: AgentConfig, executeOptions: AgentExecuteOptions, config: ApiConfig): Promise<AgentExecuteResult>;
150
+ /** POST /v1/sessions/{id}/agentExecute matches AgentExecuteRequest schema */
151
+ export declare function agentExecute(sessionId: string, agentConfig: AgentConfig, executeOptions: AgentExecuteOptions, config: ApiConfig, shouldCache?: boolean, region?: BrowserbaseRegion): Promise<AgentExecuteResult>;
90
152
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/component/api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,SAAS;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,OAAO,CAAC;CAClB;AAyBD,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAatB;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CASf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE;QACN,iBAAiB,EAAE,MAAM,CAAC;QAC1B,OAAO,EAAE,KAAK,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,GAAG,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,SAAS,CAAC,CASpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,aAAa,CAAC,CASxB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE;QACN,OAAO,EAAE,WAAW,EAAE,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,mBAAmB,EACnC,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAkB7B"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/component/api.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,20 @@
2
2
  * Stagehand REST API Client
3
3
  *
4
4
  * Wraps the Stagehand API at https://api.stagehand.browserbase.com
5
+ * Wire format matches the OpenAPI spec defined in stagehand/packages/core/lib/v3/types/public/api.ts
5
6
  */
6
- const API_BASE = "https://api.stagehand.browserbase.com/v1";
7
+ /** Multi-region API URL mapping (matches official SDK) */
8
+ const REGION_API_URLS = {
9
+ "us-west-2": "https://api.stagehand.browserbase.com",
10
+ "us-east-1": "https://api.use1.stagehand.browserbase.com",
11
+ "eu-central-1": "https://api.euc1.stagehand.browserbase.com",
12
+ "ap-southeast-1": "https://api.apse1.stagehand.browserbase.com",
13
+ };
14
+ export function getApiBase(region) {
15
+ const baseUrl = (region && REGION_API_URLS[region]) ||
16
+ REGION_API_URLS["us-west-2"];
17
+ return `${baseUrl}/v1`;
18
+ }
7
19
  function getHeaders(config) {
8
20
  return {
9
21
  "Content-Type": "application/json",
@@ -23,33 +35,47 @@ async function handleResponse(response) {
23
35
  }
24
36
  return json.data;
25
37
  }
38
+ /** POST /v1/sessions/start — matches SessionStartRequest schema */
26
39
  export async function startSession(config, options) {
27
- const response = await fetch(`${API_BASE}/sessions/start`, {
40
+ const region = options?.browserbaseSessionCreateParams?.region;
41
+ const response = await fetch(`${getApiBase(region)}/sessions/start`, {
28
42
  method: "POST",
29
43
  headers: getHeaders(config),
30
44
  body: JSON.stringify({
31
45
  modelName: config.modelName || "openai/gpt-4o",
32
- browserbaseSessionId: options?.browserbaseSessionId,
46
+ model: options?.model,
47
+ browserbaseSessionID: options?.browserbaseSessionID,
48
+ browserbaseSessionCreateParams: options?.browserbaseSessionCreateParams,
33
49
  domSettleTimeoutMs: options?.domSettleTimeoutMs,
34
50
  selfHeal: options?.selfHeal,
35
51
  systemPrompt: options?.systemPrompt,
52
+ verbose: options?.verbose,
53
+ experimental: options?.experimental,
36
54
  }),
37
55
  });
38
56
  return handleResponse(response);
39
57
  }
40
- export async function endSession(sessionId, config) {
41
- try {
42
- await fetch(`${API_BASE}/sessions/${sessionId}/end`, {
43
- method: "POST",
44
- headers: getHeaders(config),
45
- });
58
+ /** POST /v1/sessions/{id}/end */
59
+ export async function endSession(sessionId, config, region) {
60
+ const response = await fetch(`${getApiBase(region)}/sessions/${sessionId}/end`, {
61
+ method: "POST",
62
+ headers: getHeaders(config),
63
+ });
64
+ if (!response.ok) {
65
+ const errorText = await response.text();
66
+ throw new Error(`Stagehand API error (${response.status}): ${errorText}`);
46
67
  }
47
- catch {
48
- // Ignore errors when ending session - best effort cleanup
68
+ const text = await response.text();
69
+ if (text) {
70
+ const json = JSON.parse(text);
71
+ if (json.success === false) {
72
+ throw new Error("Stagehand API returned success: false");
73
+ }
49
74
  }
50
75
  }
51
- export async function navigate(sessionId, url, config, options) {
52
- const response = await fetch(`${API_BASE}/sessions/${sessionId}/navigate`, {
76
+ /** POST /v1/sessions/{id}/navigate matches NavigateRequest schema */
77
+ export async function navigate(sessionId, url, config, options, region) {
78
+ const response = await fetch(`${getApiBase(region)}/sessions/${sessionId}/navigate`, {
53
79
  method: "POST",
54
80
  headers: getHeaders(config),
55
81
  body: JSON.stringify({
@@ -57,54 +83,89 @@ export async function navigate(sessionId, url, config, options) {
57
83
  options: {
58
84
  waitUntil: options?.waitUntil || "networkidle",
59
85
  timeout: options?.timeout,
86
+ referer: options?.referer,
60
87
  },
61
88
  }),
62
89
  });
63
90
  await handleResponse(response);
64
91
  }
65
- export async function extract(sessionId, instruction, schema, config) {
66
- const response = await fetch(`${API_BASE}/sessions/${sessionId}/extract`, {
92
+ /** POST /v1/sessions/{id}/extract matches ExtractRequest schema */
93
+ export async function extract(sessionId, instruction, schema, config, operationOptions, region) {
94
+ const body = { instruction, schema };
95
+ if (operationOptions?.model != null ||
96
+ operationOptions?.timeout != null ||
97
+ operationOptions?.selector != null) {
98
+ body.options = {
99
+ model: operationOptions?.model,
100
+ timeout: operationOptions?.timeout,
101
+ selector: operationOptions?.selector,
102
+ };
103
+ }
104
+ const response = await fetch(`${getApiBase(region)}/sessions/${sessionId}/extract`, {
67
105
  method: "POST",
68
106
  headers: getHeaders(config),
69
- body: JSON.stringify({
70
- instruction,
71
- schema,
72
- }),
107
+ body: JSON.stringify(body),
73
108
  });
74
109
  return handleResponse(response);
75
110
  }
76
- export async function act(sessionId, action, config) {
77
- const response = await fetch(`${API_BASE}/sessions/${sessionId}/act`, {
111
+ /** POST /v1/sessions/{id}/act matches ActRequest schema */
112
+ export async function act(sessionId, action, config, operationOptions, region) {
113
+ const body = { input: action };
114
+ if (operationOptions?.model != null ||
115
+ operationOptions?.variables != null ||
116
+ operationOptions?.timeout != null) {
117
+ body.options = {
118
+ model: operationOptions?.model,
119
+ variables: operationOptions?.variables,
120
+ timeout: operationOptions?.timeout,
121
+ };
122
+ }
123
+ const response = await fetch(`${getApiBase(region)}/sessions/${sessionId}/act`, {
78
124
  method: "POST",
79
125
  headers: getHeaders(config),
80
- body: JSON.stringify({
81
- input: action,
82
- }),
126
+ body: JSON.stringify(body),
83
127
  });
84
128
  return handleResponse(response);
85
129
  }
86
- export async function observe(sessionId, instruction, config) {
87
- const response = await fetch(`${API_BASE}/sessions/${sessionId}/observe`, {
130
+ /** POST /v1/sessions/{id}/observe matches ObserveRequest schema */
131
+ export async function observe(sessionId, instruction, config, operationOptions, region) {
132
+ const body = { instruction };
133
+ if (operationOptions?.model != null ||
134
+ operationOptions?.timeout != null ||
135
+ operationOptions?.selector != null) {
136
+ body.options = {
137
+ model: operationOptions?.model,
138
+ timeout: operationOptions?.timeout,
139
+ selector: operationOptions?.selector,
140
+ };
141
+ }
142
+ const response = await fetch(`${getApiBase(region)}/sessions/${sessionId}/observe`, {
88
143
  method: "POST",
89
144
  headers: getHeaders(config),
90
- body: JSON.stringify({
91
- instruction,
92
- }),
145
+ body: JSON.stringify(body),
93
146
  });
94
147
  return handleResponse(response);
95
148
  }
96
- export async function agentExecute(sessionId, agentConfig, executeOptions, config) {
97
- const response = await fetch(`${API_BASE}/sessions/${sessionId}/agentExecute`, {
149
+ /** POST /v1/sessions/{id}/agentExecute matches AgentExecuteRequest schema */
150
+ export async function agentExecute(sessionId, agentConfig, executeOptions, config, shouldCache, region) {
151
+ const response = await fetch(`${getApiBase(region)}/sessions/${sessionId}/agentExecute`, {
98
152
  method: "POST",
99
153
  headers: getHeaders(config),
100
154
  body: JSON.stringify({
101
155
  agentConfig: {
102
156
  cua: agentConfig.cua,
157
+ mode: agentConfig.mode,
103
158
  model: agentConfig.model,
104
159
  systemPrompt: agentConfig.systemPrompt,
160
+ executionModel: agentConfig.executionModel,
161
+ provider: agentConfig.provider,
162
+ },
163
+ executeOptions: {
164
+ instruction: executeOptions.instruction,
165
+ maxSteps: executeOptions.maxSteps,
166
+ highlightCursor: executeOptions.highlightCursor,
105
167
  },
106
- instruction: executeOptions.instruction,
107
- maxSteps: executeOptions.maxSteps,
168
+ shouldCache,
108
169
  }),
109
170
  });
110
171
  return handleResponse(response);