@browserbasehq/orca 3.1.0-patch.4 → 3.2.0-preview.1

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.
Files changed (225) hide show
  1. package/dist/cjs/lib/inference.js +1 -4
  2. package/dist/cjs/lib/inference.js.map +1 -1
  3. package/dist/cjs/lib/v3/agent/AgentProvider.js +0 -1
  4. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
  5. package/dist/cjs/lib/v3/agent/tools/act.d.ts +1 -1
  6. package/dist/cjs/lib/v3/agent/tools/act.js +20 -4
  7. package/dist/cjs/lib/v3/agent/tools/act.js.map +1 -1
  8. package/dist/cjs/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  9. package/dist/cjs/lib/v3/agent/tools/ariaTree.js +60 -22
  10. package/dist/cjs/lib/v3/agent/tools/ariaTree.js.map +1 -1
  11. package/dist/cjs/lib/v3/agent/tools/click.js +23 -31
  12. package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -1
  13. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js +22 -30
  14. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
  15. package/dist/cjs/lib/v3/agent/tools/extract.d.ts +2 -2
  16. package/dist/cjs/lib/v3/agent/tools/extract.js +16 -3
  17. package/dist/cjs/lib/v3/agent/tools/extract.js.map +1 -1
  18. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js +30 -30
  19. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -1
  20. package/dist/cjs/lib/v3/agent/tools/fillform.d.ts +7 -1
  21. package/dist/cjs/lib/v3/agent/tools/fillform.js +60 -37
  22. package/dist/cjs/lib/v3/agent/tools/fillform.js.map +1 -1
  23. package/dist/cjs/lib/v3/agent/tools/index.d.ts +5 -0
  24. package/dist/cjs/lib/v3/agent/tools/index.js +5 -5
  25. package/dist/cjs/lib/v3/agent/tools/index.js.map +1 -1
  26. package/dist/cjs/lib/v3/agent/tools/screenshot.d.ts +8 -0
  27. package/dist/cjs/lib/v3/agent/tools/screenshot.js +32 -15
  28. package/dist/cjs/lib/v3/agent/tools/screenshot.js.map +1 -1
  29. package/dist/cjs/lib/v3/agent/tools/scroll.js +12 -0
  30. package/dist/cjs/lib/v3/agent/tools/scroll.js.map +1 -1
  31. package/dist/cjs/lib/v3/agent/tools/type.js +23 -31
  32. package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -1
  33. package/dist/cjs/lib/v3/agent/tools/wait.js +6 -0
  34. package/dist/cjs/lib/v3/agent/tools/wait.js.map +1 -1
  35. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +4 -0
  36. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
  37. package/dist/cjs/lib/v3/api.d.ts +2 -2
  38. package/dist/cjs/lib/v3/api.js +1 -1
  39. package/dist/cjs/lib/v3/api.js.map +1 -1
  40. package/dist/cjs/lib/v3/cache/ActCache.d.ts +0 -1
  41. package/dist/cjs/lib/v3/cache/ActCache.js +2 -18
  42. package/dist/cjs/lib/v3/cache/ActCache.js.map +1 -1
  43. package/dist/cjs/lib/v3/handlers/actHandler.js +1 -2
  44. package/dist/cjs/lib/v3/handlers/actHandler.js.map +1 -1
  45. package/dist/cjs/lib/v3/handlers/extractHandler.js +2 -2
  46. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -1
  47. package/dist/cjs/lib/v3/handlers/observeHandler.js +1 -2
  48. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -1
  49. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +11 -16
  50. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  51. package/dist/cjs/lib/v3/index.d.ts +2 -1
  52. package/dist/cjs/lib/v3/launch/browserbase.d.ts +1 -1
  53. package/dist/cjs/lib/v3/launch/browserbase.js +4 -9
  54. package/dist/cjs/lib/v3/launch/browserbase.js.map +1 -1
  55. package/dist/cjs/lib/v3/llm/LLMProvider.js +0 -5
  56. package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -1
  57. package/dist/cjs/lib/v3/runtimePaths.js +2 -1
  58. package/dist/cjs/lib/v3/runtimePaths.js.map +1 -1
  59. package/dist/cjs/lib/v3/shutdown/supervisor.js +2 -2
  60. package/dist/cjs/lib/v3/shutdown/supervisor.js.map +1 -1
  61. package/dist/cjs/lib/v3/timeoutConfig.d.ts +1 -1
  62. package/dist/cjs/lib/v3/timeoutConfig.js +5 -0
  63. package/dist/cjs/lib/v3/timeoutConfig.js.map +1 -1
  64. package/dist/cjs/lib/v3/types/private/shutdown.d.ts +1 -1
  65. package/dist/cjs/lib/v3/types/private/shutdown.js.map +1 -1
  66. package/dist/cjs/lib/v3/types/public/agent.d.ts +12 -1
  67. package/dist/cjs/lib/v3/types/public/agent.js +0 -1
  68. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  69. package/dist/cjs/lib/v3/types/public/api.d.ts +3 -0
  70. package/dist/cjs/lib/v3/types/public/api.js +1 -0
  71. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  72. package/dist/cjs/lib/v3/types/public/model.d.ts +4 -2
  73. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  74. package/dist/cjs/lib/v3/types/public/options.d.ts +1 -0
  75. package/dist/cjs/lib/v3/understudy/cdp.d.ts +5 -1
  76. package/dist/cjs/lib/v3/understudy/cdp.js +54 -7
  77. package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -1
  78. package/dist/cjs/lib/v3/understudy/context.d.ts +1 -0
  79. package/dist/cjs/lib/v3/understudy/context.js +142 -60
  80. package/dist/cjs/lib/v3/understudy/context.js.map +1 -1
  81. package/dist/cjs/lib/v3/understudy/frame.js +23 -6
  82. package/dist/cjs/lib/v3/understudy/frame.js.map +1 -1
  83. package/dist/cjs/lib/v3/understudy/page.d.ts +13 -0
  84. package/dist/cjs/lib/v3/understudy/page.js +56 -3
  85. package/dist/cjs/lib/v3/understudy/page.js.map +1 -1
  86. package/dist/cjs/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  87. package/dist/cjs/lib/v3/understudy/screenshotUtils.js +0 -18
  88. package/dist/cjs/lib/v3/understudy/screenshotUtils.js.map +1 -1
  89. package/dist/cjs/lib/v3/v3.js +38 -24
  90. package/dist/cjs/lib/v3/v3.js.map +1 -1
  91. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +1 -1
  92. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +1 -1
  93. package/dist/cjs/tests/integration/context-addInitScript.spec.js +104 -11
  94. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +1 -1
  95. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  96. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +219 -0
  97. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  98. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  99. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +85 -0
  100. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  101. package/dist/cjs/tests/integration/page-screenshot.spec.js +1 -1
  102. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +1 -1
  103. package/dist/cjs/tests/integration/timeouts.spec.js +168 -0
  104. package/dist/cjs/tests/integration/timeouts.spec.js.map +1 -1
  105. package/dist/cjs/tests/unit/model-deprecation.test.js +5 -8
  106. package/dist/cjs/tests/unit/model-deprecation.test.js.map +1 -1
  107. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  108. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +92 -0
  109. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +1 -0
  110. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +13 -1
  111. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +1 -1
  112. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +1 -1
  113. package/dist/esm/lib/inference.js +1 -4
  114. package/dist/esm/lib/inference.js.map +1 -1
  115. package/dist/esm/lib/v3/agent/AgentProvider.js +0 -1
  116. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  117. package/dist/esm/lib/v3/agent/tools/act.d.ts +1 -1
  118. package/dist/esm/lib/v3/agent/tools/act.js +20 -4
  119. package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
  120. package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  121. package/dist/esm/lib/v3/agent/tools/ariaTree.js +60 -22
  122. package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -1
  123. package/dist/esm/lib/v3/agent/tools/click.js +23 -31
  124. package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
  125. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +22 -30
  126. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
  127. package/dist/esm/lib/v3/agent/tools/extract.d.ts +2 -2
  128. package/dist/esm/lib/v3/agent/tools/extract.js +16 -3
  129. package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
  130. package/dist/esm/lib/v3/agent/tools/fillFormVision.js +30 -30
  131. package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
  132. package/dist/esm/lib/v3/agent/tools/fillform.d.ts +7 -1
  133. package/dist/esm/lib/v3/agent/tools/fillform.js +60 -37
  134. package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
  135. package/dist/esm/lib/v3/agent/tools/index.d.ts +5 -0
  136. package/dist/esm/lib/v3/agent/tools/index.js +5 -5
  137. package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
  138. package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +8 -0
  139. package/dist/esm/lib/v3/agent/tools/screenshot.js +32 -15
  140. package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -1
  141. package/dist/esm/lib/v3/agent/tools/scroll.js +12 -0
  142. package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -1
  143. package/dist/esm/lib/v3/agent/tools/type.js +23 -31
  144. package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
  145. package/dist/esm/lib/v3/agent/tools/wait.js +6 -0
  146. package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -1
  147. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +4 -0
  148. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
  149. package/dist/esm/lib/v3/api.d.ts +2 -2
  150. package/dist/esm/lib/v3/api.js +1 -1
  151. package/dist/esm/lib/v3/api.js.map +1 -1
  152. package/dist/esm/lib/v3/cache/ActCache.d.ts +0 -1
  153. package/dist/esm/lib/v3/cache/ActCache.js +2 -18
  154. package/dist/esm/lib/v3/cache/ActCache.js.map +1 -1
  155. package/dist/esm/lib/v3/handlers/actHandler.js +1 -2
  156. package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -1
  157. package/dist/esm/lib/v3/handlers/extractHandler.js +2 -2
  158. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  159. package/dist/esm/lib/v3/handlers/observeHandler.js +1 -2
  160. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  161. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +11 -16
  162. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  163. package/dist/esm/lib/v3/index.d.ts +2 -1
  164. package/dist/esm/lib/v3/launch/browserbase.d.ts +1 -1
  165. package/dist/esm/lib/v3/launch/browserbase.js +4 -9
  166. package/dist/esm/lib/v3/launch/browserbase.js.map +1 -1
  167. package/dist/esm/lib/v3/llm/LLMProvider.js +0 -5
  168. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
  169. package/dist/esm/lib/v3/runtimePaths.js +2 -1
  170. package/dist/esm/lib/v3/runtimePaths.js.map +1 -1
  171. package/dist/esm/lib/v3/shutdown/supervisor.js +2 -2
  172. package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -1
  173. package/dist/esm/lib/v3/timeoutConfig.d.ts +1 -1
  174. package/dist/esm/lib/v3/timeoutConfig.js +5 -0
  175. package/dist/esm/lib/v3/timeoutConfig.js.map +1 -1
  176. package/dist/esm/lib/v3/types/private/shutdown.d.ts +1 -1
  177. package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -1
  178. package/dist/esm/lib/v3/types/public/agent.d.ts +12 -1
  179. package/dist/esm/lib/v3/types/public/agent.js +0 -1
  180. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  181. package/dist/esm/lib/v3/types/public/api.d.ts +3 -0
  182. package/dist/esm/lib/v3/types/public/api.js +1 -0
  183. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  184. package/dist/esm/lib/v3/types/public/model.d.ts +4 -2
  185. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  186. package/dist/esm/lib/v3/types/public/options.d.ts +1 -0
  187. package/dist/esm/lib/v3/understudy/cdp.d.ts +5 -1
  188. package/dist/esm/lib/v3/understudy/cdp.js +55 -8
  189. package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
  190. package/dist/esm/lib/v3/understudy/context.d.ts +1 -0
  191. package/dist/esm/lib/v3/understudy/context.js +142 -60
  192. package/dist/esm/lib/v3/understudy/context.js.map +1 -1
  193. package/dist/esm/lib/v3/understudy/frame.js +23 -6
  194. package/dist/esm/lib/v3/understudy/frame.js.map +1 -1
  195. package/dist/esm/lib/v3/understudy/page.d.ts +13 -0
  196. package/dist/esm/lib/v3/understudy/page.js +58 -5
  197. package/dist/esm/lib/v3/understudy/page.js.map +1 -1
  198. package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  199. package/dist/esm/lib/v3/understudy/screenshotUtils.js +0 -17
  200. package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -1
  201. package/dist/esm/lib/v3/v3.js +38 -24
  202. package/dist/esm/lib/v3/v3.js.map +1 -1
  203. package/dist/esm/tests/integration/cdp-session-detached.spec.js +1 -1
  204. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +1 -1
  205. package/dist/esm/tests/integration/context-addInitScript.spec.js +104 -11
  206. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +1 -1
  207. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  208. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +217 -0
  209. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  210. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  211. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +83 -0
  212. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  213. package/dist/esm/tests/integration/page-screenshot.spec.js +1 -1
  214. package/dist/esm/tests/integration/page-screenshot.spec.js.map +1 -1
  215. package/dist/esm/tests/integration/timeouts.spec.js +168 -0
  216. package/dist/esm/tests/integration/timeouts.spec.js.map +1 -1
  217. package/dist/esm/tests/unit/model-deprecation.test.js +5 -8
  218. package/dist/esm/tests/unit/model-deprecation.test.js.map +1 -1
  219. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  220. package/dist/esm/tests/unit/page-extra-http-headers.test.js +90 -0
  221. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +1 -0
  222. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +13 -1
  223. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +1 -1
  224. package/dist/esm/tests/unit/public-api/public-types.test.js.map +1 -1
  225. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../../lib/v3/types/public/api.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Centralized Zod schemas for Stagehand Server API\n *\n * Naming conventions:\n * - `*RequestSchema` - Request body schemas (zod4), `*Request` is the inferred type\n * - `*ResultSchema` - Inner response data (unwrapped), `*Result` is the inferred type\n * - `*ResponseSchema` - Full response with success wrapper: { success: true, data: *Result }, `*Response` is the inferred type\n *\n * All TypeScript types are inferred from the Zod4 *Schemas using z.infer<>\n */\nimport { z } from \"zod/v4\";\nimport type Browserbase from \"@browserbasehq/sdk\";\n\n// =============================================================================\n// Shared Components\n// =============================================================================\n\n/** Browser launch options for local browsers */\nexport const LocalBrowserLaunchOptionsSchema = z\n .object({\n args: z.array(z.string()).optional(),\n executablePath: z.string().optional(),\n port: z.number().optional(),\n userDataDir: z.string().optional(),\n preserveUserDataDir: z.boolean().optional(),\n headless: z.boolean().optional(),\n devtools: z.boolean().optional(),\n chromiumSandbox: z.boolean().optional(),\n ignoreDefaultArgs: z.union([z.boolean(), z.array(z.string())]).optional(),\n proxy: z\n .object({\n server: z.string(),\n bypass: z.string().optional(),\n username: z.string().optional(),\n password: z.string().optional(),\n })\n .optional(),\n locale: z.string().optional(),\n viewport: z.object({ width: z.number(), height: z.number() }).optional(),\n deviceScaleFactor: z.number().optional(),\n hasTouch: z.boolean().optional(),\n ignoreHTTPSErrors: z.boolean().optional(),\n cdpUrl: z.string().optional(),\n connectTimeoutMs: z.number().optional(),\n downloadsPath: z.string().optional(),\n acceptDownloads: z.boolean().optional(),\n })\n .strict()\n .meta({ id: \"LocalBrowserLaunchOptions\" });\n\n/** Detailed model configuration object */\nexport const ModelConfigObjectSchema = z\n .object({\n provider: z\n .enum([\"openai\", \"anthropic\", \"google\", \"microsoft\", \"bedrock\"])\n .optional()\n .meta({\n description:\n \"AI provider for the model (or provide a baseURL endpoint instead)\",\n example: \"openai\",\n }),\n modelName: z.string().meta({\n description:\n \"Model name string with provider prefix (e.g., 'openai/gpt-5-nano')\",\n example: \"openai/gpt-5-nano\",\n }),\n apiKey: z.string().optional().meta({\n description: \"API key for the model provider\",\n example: \"sk-some-openai-api-key\",\n }),\n baseURL: z.string().url().optional().meta({\n description: \"Base URL for the model provider\",\n example: \"https://api.openai.com/v1\",\n }),\n })\n .meta({ id: \"ModelConfigObject\" });\n\n/** Model configuration */\nexport const ModelConfigSchema = ModelConfigObjectSchema.meta({\n id: \"ModelConfig\",\n});\n\n/** Action object returned by observe and used by act */\nexport const ActionSchema = z\n .object({\n selector: z.string().meta({\n description: \"CSS selector or XPath for the element\",\n example: \"[data-testid='submit-button']\",\n }),\n description: z.string().meta({\n description: \"Human-readable description of the action\",\n example: \"Click the submit button\",\n }),\n backendNodeId: z.number().optional().meta({\n description: \"Backend node ID for the element\",\n }),\n method: z.string().optional().meta({\n description: \"The method to execute (click, fill, etc.)\",\n example: \"click\",\n }),\n arguments: z\n .array(z.string())\n .optional()\n .meta({\n description: \"Arguments to pass to the method\",\n example: [\"Hello World\"],\n }),\n })\n .meta({\n id: \"Action\",\n description: \"Action object returned by observe and used by act\",\n });\n\n/** Session ID path parameter */\nexport const SessionIdParamsSchema = z\n .object({\n id: z.string().meta({\n description: \"Unique session identifier\",\n example: \"c4dbf3a9-9a58-4b22-8a1c-9f20f9f9e123\",\n }),\n })\n .strict()\n .meta({ id: \"SessionIdParams\" });\n\n/** Browser configuration for session start */\nexport const BrowserConfigSchema = z\n .object({\n type: z.enum([\"local\", \"browserbase\"]).optional().meta({\n description: \"Browser type to use\",\n example: \"local\",\n }),\n cdpUrl: z.string().optional().meta({\n description:\n \"Chrome DevTools Protocol URL for connecting to existing browser\",\n example: \"ws://localhost:9222\",\n }),\n launchOptions: LocalBrowserLaunchOptionsSchema.optional(),\n })\n .meta({ id: \"BrowserConfig\" });\n\n// =============================================================================\n// Request Headers (operational only - auth headers are in security schemes)\n// =============================================================================\n\n/** Operational headers for all session requests (auth handled via security schemes) */\nexport const SessionHeadersSchema = z\n .object({\n \"x-stream-response\": z.enum([\"true\", \"false\"]).optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: \"true\",\n }),\n })\n .meta({ id: \"SessionHeaders\" });\n\n// =============================================================================\n// Response Wrapper Helper\n// =============================================================================\n\n/** Wraps a result schema in standard success response format */\nconst wrapResponse = <T extends z.ZodTypeAny>(resultSchema: T, name: string) =>\n z\n .object({\n success: z.boolean().meta({\n description: \"Indicates whether the request was successful\",\n }),\n data: resultSchema,\n })\n .meta({ id: name });\n\n/** Standard error response */\nexport const ErrorResponseSchema = z\n .object({\n success: z.literal(false),\n error: z.string(),\n code: z.string().optional(),\n })\n .strict()\n .meta({ id: \"ErrorResponse\" });\n\n// =============================================================================\n// Browserbase Session Create Params (zod+hints duplicated version of Browserbase.Sessions.SessionCreateParams)\n// =============================================================================\n\n/** Browserbase viewport configuration */\nexport const BrowserbaseViewportSchema = z\n .object({\n width: z.number().optional(),\n height: z.number().optional(),\n })\n .meta({ id: \"BrowserbaseViewport\" });\n\n/** Browserbase fingerprint screen configuration */\nexport const BrowserbaseFingerprintScreenSchema = z\n .object({\n maxHeight: z.number().optional(),\n maxWidth: z.number().optional(),\n minHeight: z.number().optional(),\n minWidth: z.number().optional(),\n })\n .meta({ id: \"BrowserbaseFingerprintScreen\" });\n\n/** Browserbase fingerprint configuration for stealth mode */\nexport const BrowserbaseFingerprintSchema = z\n .object({\n browsers: z\n .array(z.enum([\"chrome\", \"edge\", \"firefox\", \"safari\"]))\n .optional(),\n devices: z.array(z.enum([\"desktop\", \"mobile\"])).optional(),\n httpVersion: z.enum([\"1\", \"2\"]).optional(),\n locales: z.array(z.string()).optional(),\n operatingSystems: z\n .array(z.enum([\"android\", \"ios\", \"linux\", \"macos\", \"windows\"]))\n .optional(),\n screen: BrowserbaseFingerprintScreenSchema.optional(),\n })\n .meta({ id: \"BrowserbaseFingerprint\" });\n\n/** Browserbase context configuration for session persistence */\nexport const BrowserbaseContextSchema = z\n .object({\n id: z.string(),\n persist: z.boolean().optional(),\n })\n .meta({ id: \"BrowserbaseContext\" });\n\n/** Browserbase browser settings for session creation */\nexport const BrowserbaseBrowserSettingsSchema = z\n .object({\n advancedStealth: z.boolean().optional(),\n blockAds: z.boolean().optional(),\n context: BrowserbaseContextSchema.optional(),\n extensionId: z.string().optional(),\n fingerprint: BrowserbaseFingerprintSchema.optional(),\n logSession: z.boolean().optional(),\n recordSession: z.boolean().optional(),\n solveCaptchas: z.boolean().optional(),\n viewport: BrowserbaseViewportSchema.optional(),\n })\n .meta({ id: \"BrowserbaseBrowserSettings\" });\n\n/** Browserbase managed proxy geolocation configuration */\nexport const BrowserbaseProxyGeolocationSchema = z\n .object({\n country: z.string(),\n city: z.string().optional(),\n state: z.string().optional(),\n })\n .meta({ id: \"BrowserbaseProxyGeolocation\" });\n\n/** Browserbase managed proxy configuration */\nexport const BrowserbaseProxyConfigSchema = z\n .object({\n type: z.literal(\"browserbase\"),\n domainPattern: z.string().optional(),\n geolocation: BrowserbaseProxyGeolocationSchema.optional(),\n })\n .meta({ id: \"BrowserbaseProxyConfig\" });\n\n/** External proxy configuration */\nexport const ExternalProxyConfigSchema = z\n .object({\n type: z.literal(\"external\"),\n server: z.string(),\n domainPattern: z.string().optional(),\n username: z.string().optional(),\n password: z.string().optional(),\n })\n .meta({ id: \"ExternalProxyConfig\" });\n\n/** Union of proxy configuration types */\nexport const ProxyConfigSchema = z\n .discriminatedUnion(\"type\", [\n BrowserbaseProxyConfigSchema,\n ExternalProxyConfigSchema,\n ])\n .meta({ id: \"ProxyConfig\" });\n\n/** Browserbase region identifier for multi-region support */\nexport const BrowserbaseRegionSchema = z\n .enum([\"us-west-2\", \"us-east-1\", \"eu-central-1\", \"ap-southeast-1\"])\n .meta({ id: \"BrowserbaseRegion\" });\n\n/** Browserbase session creation parameters */\nexport const BrowserbaseSessionCreateParamsSchema = z\n .object({\n projectId: z.string().optional(),\n browserSettings: BrowserbaseBrowserSettingsSchema.optional(),\n extensionId: z.string().optional(),\n keepAlive: z.boolean().optional(),\n proxies: z.union([z.boolean(), z.array(ProxyConfigSchema)]).optional(),\n region: BrowserbaseRegionSchema.optional(),\n timeout: z.number().optional(),\n userMetadata: z.record(z.string(), z.unknown()).optional(),\n })\n .meta({ id: \"BrowserbaseSessionCreateParams\" });\n\n// =============================================================================\n// Session Start\n// =============================================================================\n\nexport const SessionStartRequestSchema = z\n .object({\n modelName: z.string().meta({\n description: \"Model name to use for AI operations\",\n example: \"openai/gpt-4o\",\n }),\n domSettleTimeoutMs: z.number().optional().meta({\n description: \"Timeout in ms to wait for DOM to settle\",\n example: 5000,\n }),\n verbose: z\n .union([z.literal(0), z.literal(1), z.literal(2)])\n .optional()\n .meta({\n description: \"Logging verbosity level (0=quiet, 1=normal, 2=debug)\",\n example: 1,\n override: ({ jsonSchema }: { jsonSchema: Record<string, unknown> }) => {\n delete jsonSchema.anyOf;\n delete jsonSchema.allOf;\n delete jsonSchema.oneOf;\n jsonSchema.type = \"number\";\n jsonSchema.enum = [0, 1, 2];\n },\n }),\n systemPrompt: z.string().optional().meta({\n description: \"Custom system prompt for AI operations\",\n }),\n browserbaseSessionCreateParams:\n BrowserbaseSessionCreateParamsSchema.optional(),\n browser: BrowserConfigSchema.optional(),\n selfHeal: z.boolean().optional().meta({\n description: \"Enable self-healing for failed actions\",\n example: true,\n }),\n browserbaseSessionID: z.string().optional().meta({\n description: \"Existing Browserbase session ID to resume\",\n }),\n // experimental is a V3 field but doesn't need to go over the wire - included because wire type imports options type\n experimental: z.boolean().optional(),\n // V2 compatibility fields - only included because the server imports this type and supports V2\n // should never be used in v3 clients or v3-only server implementations\n waitForCaptchaSolves: z.boolean().optional().meta({\n description: \"Wait for captcha solves (deprecated, v2 only)\",\n }),\n actTimeoutMs: z.number().optional().meta({\n description: \"Timeout in ms for act operations (deprecated, v2 only)\",\n }),\n })\n .meta({ id: \"SessionStartRequest\" });\n\nexport const SessionStartResultSchema = z\n .object({\n sessionId: z.string().meta({\n description: \"Unique Browserbase session identifier\",\n example: \"c4dbf3a9-9a58-4b22-8a1c-9f20f9f9e123\",\n }),\n cdpUrl: z.string().nullish().meta({\n description:\n \"CDP WebSocket URL for connecting to the Browserbase cloud browser (present when available)\",\n example: \"wss://connect.browserbase.com/?signingKey=abc123\",\n }),\n available: z.boolean(),\n })\n .meta({ id: \"SessionStartResult\" });\n\nexport const SessionStartResponseSchema = wrapResponse(\n SessionStartResultSchema,\n \"SessionStartResponse\",\n);\n\n// =============================================================================\n// Session End\n// =============================================================================\n\n/** Session end request - no request body. */\nexport const SessionEndRequestSchema = z\n .object({})\n .strict()\n .optional()\n .meta({ id: \"SessionEndRequest\" });\n\nexport const SessionEndResultSchema = z\n .object({})\n .strict()\n .meta({ id: \"SessionEndResult\" });\n\n/** Session end response - just success flag, no data wrapper */\nexport const SessionEndResponseSchema = z\n .object({\n success: z.boolean().meta({\n description: \"Indicates whether the request was successful\",\n }),\n })\n .strict()\n .meta({ id: \"SessionEndResponse\" });\n\n// =============================================================================\n// Act\n// =============================================================================\n\nexport const ActOptionsSchema = z\n .object({\n model: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano')\",\n }),\n variables: z\n .record(z.string(), z.string())\n .optional()\n .meta({\n description: \"Variables to substitute in the action instruction\",\n example: { username: \"john_doe\" },\n }),\n timeout: z.number().optional().meta({\n description: \"Timeout in ms for the action\",\n example: 30000,\n }),\n })\n .optional()\n .meta({ id: \"ActOptions\" });\n\nexport const ActRequestSchema = z\n .object({\n input: z.string().or(ActionSchema).meta({\n description: \"Natural language instruction or Action object\",\n example: \"Click the login button\",\n }),\n options: ActOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the action\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n })\n .meta({ id: \"ActRequest\" });\n\n/** Inner act result data */\nexport const ActResultDataSchema = z\n .object({\n success: z.boolean().meta({\n description: \"Whether the action completed successfully\",\n example: true,\n }),\n message: z.string().meta({\n description: \"Human-readable result message\",\n example: \"Successfully clicked the login button\",\n }),\n actionDescription: z.string().meta({\n description: \"Description of the action that was performed\",\n example: \"Clicked button with text 'Login'\",\n }),\n actions: z.array(ActionSchema).meta({\n description: \"List of actions that were executed\",\n }),\n })\n .meta({ id: \"ActResultData\" });\n\nexport const ActResultSchema = z\n .object({\n result: ActResultDataSchema,\n actionId: z.string().optional().meta({\n description: \"Action ID for tracking\",\n }),\n })\n .meta({ id: \"ActResult\" });\n\nexport const ActResponseSchema = wrapResponse(ActResultSchema, \"ActResponse\");\n\n// =============================================================================\n// Extract\n// =============================================================================\n\nexport const ExtractOptionsSchema = z\n .object({\n model: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano')\",\n }),\n timeout: z.number().optional().meta({\n description: \"Timeout in ms for the extraction\",\n example: 30000,\n }),\n selector: z.string().optional().meta({\n description: \"CSS selector to scope extraction to a specific element\",\n example: \"#main-content\",\n }),\n })\n .optional()\n .meta({ id: \"ExtractOptions\" });\n\nexport const ExtractRequestSchema = z\n .object({\n instruction: z.string().optional().meta({\n description: \"Natural language instruction for what to extract\",\n example: \"Extract all product names and prices from the page\",\n }),\n schema: z.record(z.string(), z.unknown()).optional().meta({\n description: \"JSON Schema defining the structure of data to extract\",\n }),\n options: ExtractOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the extraction\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n })\n .meta({ id: \"ExtractRequest\" });\n\nexport const ExtractResultSchema = z\n .object({\n result: z.unknown().meta({\n description: \"Extracted data matching the requested schema\",\n override: ({ jsonSchema }: { jsonSchema: Record<string, unknown> }) => {\n jsonSchema[\"x-stainless-any\"] = true;\n },\n }),\n actionId: z.string().optional().meta({\n description: \"Action ID for tracking\",\n }),\n })\n .meta({ id: \"ExtractResult\" });\n\nexport const ExtractResponseSchema = wrapResponse(\n ExtractResultSchema,\n \"ExtractResponse\",\n);\n\n// =============================================================================\n// Observe\n// =============================================================================\n\nexport const ObserveOptionsSchema = z\n .object({\n model: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano')\",\n }),\n timeout: z.number().optional().meta({\n description: \"Timeout in ms for the observation\",\n example: 30000,\n }),\n selector: z.string().optional().meta({\n description: \"CSS selector to scope observation to a specific element\",\n example: \"nav\",\n }),\n })\n .optional()\n .meta({ id: \"ObserveOptions\" });\n\nexport const ObserveRequestSchema = z\n .object({\n instruction: z.string().optional().meta({\n description: \"Natural language instruction for what actions to find\",\n example: \"Find all clickable navigation links\",\n }),\n options: ObserveOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the observation\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n })\n .meta({ id: \"ObserveRequest\" });\n\nexport const ObserveResultSchema = z\n .object({\n result: z.array(ActionSchema),\n actionId: z.string().optional().meta({\n description: \"Action ID for tracking\",\n }),\n })\n .meta({ id: \"ObserveResult\" });\n\nexport const ObserveResponseSchema = wrapResponse(\n ObserveResultSchema,\n \"ObserveResponse\",\n);\n\n// =============================================================================\n// Agent Execute\n// =============================================================================\n\nexport const AgentConfigSchema = z\n .object({\n provider: z // cloud accepts provider: at the top level for legacy reasons, in the future we should remove it\n .enum([\"openai\", \"anthropic\", \"google\", \"microsoft\", \"bedrock\"])\n .optional()\n .meta({\n description:\n \"AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)\",\n example: \"openai\",\n }),\n model: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano')\",\n }),\n systemPrompt: z.string().optional().meta({\n description: \"Custom system prompt for the agent\",\n }),\n cua: z.boolean().optional().meta({\n description:\n \"Deprecated. Use mode: 'cua' instead. If both are provided, mode takes precedence.\",\n example: true,\n }),\n mode: z.enum([\"dom\", \"hybrid\", \"cua\"]).optional().meta({\n description:\n \"Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.\",\n example: \"cua\",\n }),\n executionModel: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for tool execution (observe/act calls within agent tools). If not specified, inherits from the main model configuration.\",\n }),\n })\n .meta({ id: \"AgentConfig\" });\n\n/** Action taken by the agent during execution */\nexport const AgentActionSchema = z\n .object({\n type: z.string().meta({\n description: \"Type of action taken\",\n example: \"click\",\n }),\n reasoning: z.string().optional().meta({\n description: \"Agent's reasoning for taking this action\",\n }),\n taskCompleted: z.boolean().optional(),\n action: z.string().optional(),\n timeMs: z.number().optional().meta({\n description: \"Time taken for this action in ms\",\n }),\n pageText: z.string().optional(),\n pageUrl: z.string().optional(),\n instruction: z.string().optional(),\n })\n .passthrough()\n .meta({ id: \"AgentAction\" });\n\n/** Token usage statistics for agent execution */\nexport const AgentUsageSchema = z\n .object({\n input_tokens: z.number().meta({ example: 1500 }),\n output_tokens: z.number().meta({ example: 250 }),\n reasoning_tokens: z.number().optional(),\n cached_input_tokens: z.number().optional(),\n inference_time_ms: z.number().meta({ example: 2500 }),\n })\n .meta({ id: \"AgentUsage\" });\n\n/** Result data from agent execution */\nexport const AgentResultDataSchema = z\n .object({\n success: z.boolean().meta({\n description: \"Whether the agent completed successfully\",\n example: true,\n }),\n message: z.string().meta({\n description: \"Summary of what the agent accomplished\",\n example: \"Successfully logged in and navigated to dashboard\",\n }),\n actions: z.array(AgentActionSchema),\n completed: z.boolean().meta({\n description: \"Whether the agent finished its task\",\n example: true,\n }),\n metadata: z.record(z.string(), z.unknown()).optional(),\n usage: AgentUsageSchema.optional(),\n })\n .meta({ id: \"AgentResultData\" });\n\nexport const AgentCacheEntrySchema = z\n .object({\n cacheKey: z.string().meta({\n description:\n \"Opaque cache identifier computed from instruction, URL, options, and config\",\n }),\n entry: z.unknown().meta({\n description: \"Serialized cache entry that can be written to disk\",\n }),\n })\n .meta({ id: \"AgentCacheEntry\" });\n\nexport const AgentExecuteOptionsSchema = z\n .object({\n instruction: z.string().meta({\n description: \"Natural language instruction for the agent\",\n example:\n \"Log in with username 'demo' and password 'test123', then navigate to settings\",\n }),\n maxSteps: z.number().optional().meta({\n description: \"Maximum number of steps the agent can take\",\n example: 20,\n }),\n highlightCursor: z.boolean().optional().meta({\n description: \"Whether to visually highlight the cursor during execution\",\n example: true,\n }),\n })\n .meta({ id: \"AgentExecuteOptions\" });\n\nexport const AgentExecuteRequestSchema = z\n .object({\n agentConfig: AgentConfigSchema,\n executeOptions: AgentExecuteOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the agent\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n shouldCache: z.boolean().optional().meta({\n description:\n \"If true, the server captures a cache entry and returns it to the client\",\n }),\n })\n .meta({ id: \"AgentExecuteRequest\" });\n\nexport const AgentExecuteResultSchema = z\n .object({\n result: AgentResultDataSchema,\n cacheEntry: AgentCacheEntrySchema.optional(),\n })\n .meta({ id: \"AgentExecuteResult\" });\n\nexport const AgentExecuteResponseSchema = wrapResponse(\n AgentExecuteResultSchema,\n \"AgentExecuteResponse\",\n);\n\n// =============================================================================\n// Navigate\n// =============================================================================\n\nexport const NavigateOptionsSchema = z\n .object({\n referer: z.string().optional().meta({\n description: \"Referer header to send with the request\",\n }),\n timeout: z.number().optional().meta({\n description: \"Timeout in ms for the navigation\",\n example: 30000,\n }),\n waitUntil: z\n .enum([\"load\", \"domcontentloaded\", \"networkidle\"])\n .optional()\n .meta({\n description: \"When to consider navigation complete\",\n example: \"networkidle\",\n }),\n })\n .optional()\n .meta({ id: \"NavigateOptions\" });\n\nexport const NavigateRequestSchema = z\n .object({\n url: z.string().meta({\n description: \"URL to navigate to\",\n example: \"https://example.com\",\n }),\n options: NavigateOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the navigation\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n })\n .meta({ id: \"NavigateRequest\" });\n\nexport const NavigateResultSchema = z\n .object({\n // SerializableResponse from types/private/api.ts - no Zod schema available\n // as it wraps complex devtools-protocol types (Protocol.Network.Response)\n result: z\n .unknown()\n .nullable()\n .meta({\n description: \"Navigation response (Playwright Response object or null)\",\n override: ({ jsonSchema }: { jsonSchema: Record<string, unknown> }) => {\n jsonSchema[\"x-stainless-any\"] = true;\n },\n }),\n actionId: z.string().optional().meta({\n description: \"Action ID for tracking\",\n }),\n })\n .meta({ id: \"NavigateResult\" });\n\nexport const NavigateResponseSchema = wrapResponse(\n NavigateResultSchema,\n \"NavigateResponse\",\n);\n\n// =============================================================================\n// Replay Metrics\n// =============================================================================\n\n/** Token usage for a single action */\nexport const TokenUsageSchema = z\n .object({\n inputTokens: z.number().optional(),\n outputTokens: z.number().optional(),\n timeMs: z.number().optional(),\n cost: z.number().optional(),\n })\n .meta({ id: \"TokenUsage\" });\n\n/** Action entry in replay metrics */\nexport const ReplayActionSchema = z\n .object({\n method: z.string(),\n parameters: z.record(z.string(), z.unknown()),\n result: z.record(z.string(), z.unknown()),\n timestamp: z.number(),\n endTime: z.number().optional(),\n tokenUsage: TokenUsageSchema.optional(),\n })\n .meta({ id: \"ReplayAction\" });\n\n/** Page entry in replay metrics */\nexport const ReplayPageSchema = z\n .object({\n url: z.string(),\n timestamp: z.number(),\n duration: z.number(),\n actions: z.array(ReplayActionSchema),\n })\n .meta({ id: \"ReplayPage\" });\n\n/** Inner result data for replay */\nexport const ReplayResultSchema = z\n .object({\n pages: z.array(ReplayPageSchema),\n clientLanguage: z.string().optional(),\n })\n .meta({ id: \"ReplayResult\" });\n\nexport const ReplayResponseSchema = wrapResponse(\n ReplayResultSchema,\n \"ReplayResponse\",\n);\n\n// =============================================================================\n// SSE Stream Events\n// =============================================================================\n// These schemas define the Server-Sent Events format for streaming responses.\n// Streaming is enabled by setting the `x-stream-response: true` header.\n\n/** Status values for SSE stream events */\nexport const StreamEventStatusSchema = z\n .enum([\"starting\", \"connected\", \"running\", \"finished\", \"error\"])\n .meta({\n id: \"StreamEventStatus\",\n description: \"Current status of the streaming operation\",\n });\n\n/** Type discriminator for SSE stream events */\nexport const StreamEventTypeSchema = z.enum([\"system\", \"log\"]).meta({\n id: \"StreamEventType\",\n description: \"Type of stream event - system events or log messages\",\n});\n\n/** Data payload for system stream events */\nexport const StreamEventSystemDataSchema = z\n .object({\n status: StreamEventStatusSchema,\n result: z\n .unknown()\n .optional()\n .meta({\n description: \"Operation result (present when status is 'finished')\",\n override: ({ jsonSchema }: { jsonSchema: Record<string, unknown> }) => {\n jsonSchema[\"x-stainless-any\"] = true;\n },\n }),\n error: z.string().optional().meta({\n description: \"Error message (present when status is 'error')\",\n }),\n })\n .meta({ id: \"StreamEventSystemData\" });\n\n/** Data payload for log stream events */\nexport const StreamEventLogDataSchema = z\n .object({\n status: z.literal(\"running\"),\n message: z.string().meta({\n description: \"Log message from the operation\",\n }),\n })\n .meta({ id: \"StreamEventLogData\" });\n\n/**\n * SSE stream event sent during streaming responses.\n *\n * IMPORTANT: Key ordering matters for Stainless SDK generation.\n * The `data` field MUST be serialized first, with `status` as the first key within it.\n * This allows Stainless to use `data_starts_with: '{\"data\":{\"status\":\"finished\"'` for event handling.\n *\n * Expected serialization order: {\"data\":{\"status\":...},\"type\":...,\"id\":...}\n */\nexport const StreamEventSchema = z\n .object({\n data: z.union([StreamEventSystemDataSchema, StreamEventLogDataSchema]),\n type: StreamEventTypeSchema,\n id: z.string().uuid().meta({\n description: \"Unique identifier for this event\",\n example: \"c4dbf3a9-9a58-4b22-8a1c-9f20f9f9e123\",\n }),\n })\n .meta({\n id: \"StreamEvent\",\n description:\n \"Server-Sent Event emitted during streaming responses. Events are sent as `data: <JSON>\\\\n\\\\n`. Key order: data (with status first), type, id.\",\n });\n\n// =============================================================================\n// OpenAPI Components\n// =============================================================================\n// These objects are exported for use in gen-openapi.ts to configure the spec.\n\n/** OpenAPI security schemes for authentication */\nexport const openApiSecuritySchemes = {\n BrowserbaseApiKey: {\n type: \"apiKey\",\n in: \"header\",\n name: \"x-bb-api-key\",\n description: \"Browserbase API key for authentication\",\n },\n BrowserbaseProjectId: {\n type: \"apiKey\",\n in: \"header\",\n name: \"x-bb-project-id\",\n description: \"Browserbase project ID\",\n },\n ModelApiKey: {\n type: \"apiKey\",\n in: \"header\",\n name: \"x-model-api-key\",\n description: \"API key for the AI model provider (OpenAI, Anthropic, etc.)\",\n },\n} as const;\n\n/** OpenAPI links for session operations (used in SessionStart response) */\nexport const openApiLinks = {\n SessionAct: {\n operationId: \"SessionAct\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Perform an action on the session\",\n },\n SessionExtract: {\n operationId: \"SessionExtract\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Extract data from the session\",\n },\n SessionObserve: {\n operationId: \"SessionObserve\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Observe available actions on the session\",\n },\n SessionNavigate: {\n operationId: \"SessionNavigate\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Navigate to a URL in the session\",\n },\n SessionAgentExecute: {\n operationId: \"SessionAgentExecute\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Execute an agent on the session\",\n },\n SessionReplay: {\n operationId: \"SessionReplay\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Replay session metrics\",\n },\n SessionEnd: {\n operationId: \"SessionEnd\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"End the session and release resources\",\n },\n} as const;\n\n/** OpenAPI operation metadata for each endpoint */\nexport const Operations = {\n SessionStart: {\n operationId: \"SessionStart\",\n summary: \"Start a new browser session\",\n description:\n \"Creates a new browser session with the specified configuration. Returns a session ID used for all subsequent operations.\",\n },\n SessionEnd: {\n operationId: \"SessionEnd\",\n summary: \"End a browser session\",\n description:\n \"Terminates the browser session and releases all associated resources.\",\n },\n SessionAct: {\n operationId: \"SessionAct\",\n summary: \"Perform an action\",\n description:\n \"Executes a browser action using natural language instructions or a predefined Action object.\",\n },\n SessionExtract: {\n operationId: \"SessionExtract\",\n summary: \"Extract data from the page\",\n description:\n \"Extracts structured data from the current page using AI-powered analysis.\",\n },\n SessionObserve: {\n operationId: \"SessionObserve\",\n summary: \"Observe available actions\",\n description:\n \"Identifies and returns available actions on the current page that match the given instruction.\",\n },\n SessionNavigate: {\n operationId: \"SessionNavigate\",\n summary: \"Navigate to a URL\",\n description: \"Navigates the browser to the specified URL.\",\n },\n SessionAgentExecute: {\n operationId: \"SessionAgentExecute\",\n summary: \"Execute an AI agent\",\n description:\n \"Runs an autonomous AI agent that can perform complex multi-step browser tasks.\",\n },\n SessionReplay: {\n operationId: \"SessionReplay\",\n summary: \"Replay session metrics\",\n description: \"Retrieves replay metrics for a session.\",\n },\n} as const;\n\n// =============================================================================\n// Type Exports (inferred from schemas)\n// =============================================================================\n\n// Shared types\nexport type Action = z.infer<typeof ActionSchema>;\nexport type ModelConfig = z.infer<typeof ModelConfigSchema>;\nexport type BrowserConfig = z.infer<typeof BrowserConfigSchema>;\nexport type SessionIdParams = z.infer<typeof SessionIdParamsSchema>;\n\n// Header types\nexport type SessionHeaders = z.infer<typeof SessionHeadersSchema>;\n\n// Browserbase types\nexport type BrowserbaseViewport = z.infer<typeof BrowserbaseViewportSchema>;\nexport type BrowserbaseFingerprintScreen = z.infer<\n typeof BrowserbaseFingerprintScreenSchema\n>;\nexport type BrowserbaseFingerprint = z.infer<\n typeof BrowserbaseFingerprintSchema\n>;\nexport type BrowserbaseContext = z.infer<typeof BrowserbaseContextSchema>;\nexport type BrowserbaseBrowserSettings = z.infer<\n typeof BrowserbaseBrowserSettingsSchema\n>;\nexport type BrowserbaseProxyGeolocation = z.infer<\n typeof BrowserbaseProxyGeolocationSchema\n>;\nexport type BrowserbaseProxyConfig = z.infer<\n typeof BrowserbaseProxyConfigSchema\n>;\nexport type ExternalProxyConfig = z.infer<typeof ExternalProxyConfigSchema>;\nexport type BrowserbaseRegion = z.infer<typeof BrowserbaseRegionSchema>;\nexport type BrowserbaseSessionCreateParams = z.infer<\n typeof BrowserbaseSessionCreateParamsSchema\n>;\n\n// Type check: ensure our schema-derived type is assignable to the SDK type\n// This will cause a compile error if our schema drifts from the SDK\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype _BrowserbaseSessionCreateParamsCheck =\n BrowserbaseSessionCreateParams extends Browserbase.Sessions.SessionCreateParams\n ? true\n : never;\n\n// /sessions/start\nexport type SessionStartRequest = z.infer<typeof SessionStartRequestSchema>;\nexport type SessionStartResult = z.infer<typeof SessionStartResultSchema>;\nexport type SessionStartResponse = z.infer<typeof SessionStartResponseSchema>;\n\n// /sessions/{id}/end\nexport type SessionEndResult = z.infer<typeof SessionEndResultSchema>;\nexport type SessionEndResponse = z.infer<typeof SessionEndResponseSchema>;\n\n// /sessions/{id}/act\nexport type ActRequest = z.infer<typeof ActRequestSchema>;\nexport type ActResultData = z.infer<typeof ActResultDataSchema>;\nexport type ActResult = z.infer<typeof ActResultSchema>;\nexport type ActResponse = z.infer<typeof ActResponseSchema>;\n\n// /sessions/{id}/extract\nexport type ExtractRequest = z.infer<typeof ExtractRequestSchema>;\nexport type ExtractResult = z.infer<typeof ExtractResultSchema>;\nexport type ExtractResponse = z.infer<typeof ExtractResponseSchema>;\n\n// /sessions/{id}/observe\nexport type ObserveRequest = z.infer<typeof ObserveRequestSchema>;\nexport type ObserveResult = z.infer<typeof ObserveResultSchema>;\nexport type ObserveResponse = z.infer<typeof ObserveResponseSchema>;\n\n// /sessions/{id}/agentExecute\nexport type AgentAction = z.infer<typeof AgentActionSchema>;\nexport type AgentUsage = z.infer<typeof AgentUsageSchema>;\nexport type AgentResultData = z.infer<typeof AgentResultDataSchema>;\nexport type AgentExecuteRequest = z.infer<typeof AgentExecuteRequestSchema>;\nexport type AgentExecuteResult = z.infer<typeof AgentExecuteResultSchema>;\nexport type AgentExecuteResponse = z.infer<typeof AgentExecuteResponseSchema>;\n\n// /sessions/{id}/navigate\nexport type NavigateRequest = z.infer<typeof NavigateRequestSchema>;\nexport type NavigateResult = z.infer<typeof NavigateResultSchema>;\nexport type NavigateResponse = z.infer<typeof NavigateResponseSchema>;\n\n// /sessions/{id}/replay\nexport type TokenUsage = z.infer<typeof TokenUsageSchema>;\nexport type ReplayAction = z.infer<typeof ReplayActionSchema>;\nexport type ReplayPage = z.infer<typeof ReplayPageSchema>;\nexport type ReplayResult = z.infer<typeof ReplayResultSchema>;\nexport type ReplayResponse = z.infer<typeof ReplayResponseSchema>;\n\n// SSE Stream Events\nexport type StreamEventStatus = z.infer<typeof StreamEventStatusSchema>;\nexport type StreamEventType = z.infer<typeof StreamEventTypeSchema>;\nexport type StreamEventSystemData = z.infer<typeof StreamEventSystemDataSchema>;\nexport type StreamEventLogData = z.infer<typeof StreamEventLogDataSchema>;\nexport type StreamEvent = z.infer<typeof StreamEventSchema>;\n"]}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../../lib/v3/types/public/api.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Centralized Zod schemas for Stagehand Server API\n *\n * Naming conventions:\n * - `*RequestSchema` - Request body schemas (zod4), `*Request` is the inferred type\n * - `*ResultSchema` - Inner response data (unwrapped), `*Result` is the inferred type\n * - `*ResponseSchema` - Full response with success wrapper: { success: true, data: *Result }, `*Response` is the inferred type\n *\n * All TypeScript types are inferred from the Zod4 *Schemas using z.infer<>\n */\nimport { z } from \"zod/v4\";\nimport type Browserbase from \"@browserbasehq/sdk\";\n\n// =============================================================================\n// Shared Components\n// =============================================================================\n\n/** Browser launch options for local browsers */\nexport const LocalBrowserLaunchOptionsSchema = z\n .object({\n args: z.array(z.string()).optional(),\n executablePath: z.string().optional(),\n port: z.number().optional(),\n userDataDir: z.string().optional(),\n preserveUserDataDir: z.boolean().optional(),\n headless: z.boolean().optional(),\n devtools: z.boolean().optional(),\n chromiumSandbox: z.boolean().optional(),\n ignoreDefaultArgs: z.union([z.boolean(), z.array(z.string())]).optional(),\n proxy: z\n .object({\n server: z.string(),\n bypass: z.string().optional(),\n username: z.string().optional(),\n password: z.string().optional(),\n })\n .optional(),\n locale: z.string().optional(),\n viewport: z.object({ width: z.number(), height: z.number() }).optional(),\n deviceScaleFactor: z.number().optional(),\n hasTouch: z.boolean().optional(),\n ignoreHTTPSErrors: z.boolean().optional(),\n cdpUrl: z.string().optional(),\n cdpHeaders: z.record(z.string(), z.string()).optional(),\n connectTimeoutMs: z.number().optional(),\n downloadsPath: z.string().optional(),\n acceptDownloads: z.boolean().optional(),\n })\n .strict()\n .meta({ id: \"LocalBrowserLaunchOptions\" });\n\n/** Detailed model configuration object */\nexport const ModelConfigObjectSchema = z\n .object({\n provider: z\n .enum([\"openai\", \"anthropic\", \"google\", \"microsoft\", \"bedrock\"])\n .optional()\n .meta({\n description:\n \"AI provider for the model (or provide a baseURL endpoint instead)\",\n example: \"openai\",\n }),\n modelName: z.string().meta({\n description:\n \"Model name string with provider prefix (e.g., 'openai/gpt-5-nano')\",\n example: \"openai/gpt-5-nano\",\n }),\n apiKey: z.string().optional().meta({\n description: \"API key for the model provider\",\n example: \"sk-some-openai-api-key\",\n }),\n baseURL: z.string().url().optional().meta({\n description: \"Base URL for the model provider\",\n example: \"https://api.openai.com/v1\",\n }),\n })\n .meta({ id: \"ModelConfigObject\" });\n\n/** Model configuration */\nexport const ModelConfigSchema = ModelConfigObjectSchema.meta({\n id: \"ModelConfig\",\n});\n\n/** Action object returned by observe and used by act */\nexport const ActionSchema = z\n .object({\n selector: z.string().meta({\n description: \"CSS selector or XPath for the element\",\n example: \"[data-testid='submit-button']\",\n }),\n description: z.string().meta({\n description: \"Human-readable description of the action\",\n example: \"Click the submit button\",\n }),\n backendNodeId: z.number().optional().meta({\n description: \"Backend node ID for the element\",\n }),\n method: z.string().optional().meta({\n description: \"The method to execute (click, fill, etc.)\",\n example: \"click\",\n }),\n arguments: z\n .array(z.string())\n .optional()\n .meta({\n description: \"Arguments to pass to the method\",\n example: [\"Hello World\"],\n }),\n })\n .meta({\n id: \"Action\",\n description: \"Action object returned by observe and used by act\",\n });\n\n/** Session ID path parameter */\nexport const SessionIdParamsSchema = z\n .object({\n id: z.string().meta({\n description: \"Unique session identifier\",\n example: \"c4dbf3a9-9a58-4b22-8a1c-9f20f9f9e123\",\n }),\n })\n .strict()\n .meta({ id: \"SessionIdParams\" });\n\n/** Browser configuration for session start */\nexport const BrowserConfigSchema = z\n .object({\n type: z.enum([\"local\", \"browserbase\"]).optional().meta({\n description: \"Browser type to use\",\n example: \"local\",\n }),\n cdpUrl: z.string().optional().meta({\n description:\n \"Chrome DevTools Protocol URL for connecting to existing browser\",\n example: \"ws://localhost:9222\",\n }),\n launchOptions: LocalBrowserLaunchOptionsSchema.optional(),\n })\n .meta({ id: \"BrowserConfig\" });\n\n// =============================================================================\n// Request Headers (operational only - auth headers are in security schemes)\n// =============================================================================\n\n/** Operational headers for all session requests (auth handled via security schemes) */\nexport const SessionHeadersSchema = z\n .object({\n \"x-stream-response\": z.enum([\"true\", \"false\"]).optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: \"true\",\n }),\n })\n .meta({ id: \"SessionHeaders\" });\n\n// =============================================================================\n// Response Wrapper Helper\n// =============================================================================\n\n/** Wraps a result schema in standard success response format */\nconst wrapResponse = <T extends z.ZodTypeAny>(resultSchema: T, name: string) =>\n z\n .object({\n success: z.boolean().meta({\n description: \"Indicates whether the request was successful\",\n }),\n data: resultSchema,\n })\n .meta({ id: name });\n\n/** Standard error response */\nexport const ErrorResponseSchema = z\n .object({\n success: z.literal(false),\n error: z.string(),\n code: z.string().optional(),\n })\n .strict()\n .meta({ id: \"ErrorResponse\" });\n\n// =============================================================================\n// Browserbase Session Create Params (zod+hints duplicated version of Browserbase.Sessions.SessionCreateParams)\n// =============================================================================\n\n/** Browserbase viewport configuration */\nexport const BrowserbaseViewportSchema = z\n .object({\n width: z.number().optional(),\n height: z.number().optional(),\n })\n .meta({ id: \"BrowserbaseViewport\" });\n\n/** Browserbase fingerprint screen configuration */\nexport const BrowserbaseFingerprintScreenSchema = z\n .object({\n maxHeight: z.number().optional(),\n maxWidth: z.number().optional(),\n minHeight: z.number().optional(),\n minWidth: z.number().optional(),\n })\n .meta({ id: \"BrowserbaseFingerprintScreen\" });\n\n/** Browserbase fingerprint configuration for stealth mode */\nexport const BrowserbaseFingerprintSchema = z\n .object({\n browsers: z\n .array(z.enum([\"chrome\", \"edge\", \"firefox\", \"safari\"]))\n .optional(),\n devices: z.array(z.enum([\"desktop\", \"mobile\"])).optional(),\n httpVersion: z.enum([\"1\", \"2\"]).optional(),\n locales: z.array(z.string()).optional(),\n operatingSystems: z\n .array(z.enum([\"android\", \"ios\", \"linux\", \"macos\", \"windows\"]))\n .optional(),\n screen: BrowserbaseFingerprintScreenSchema.optional(),\n })\n .meta({ id: \"BrowserbaseFingerprint\" });\n\n/** Browserbase context configuration for session persistence */\nexport const BrowserbaseContextSchema = z\n .object({\n id: z.string(),\n persist: z.boolean().optional(),\n })\n .meta({ id: \"BrowserbaseContext\" });\n\n/** Browserbase browser settings for session creation */\nexport const BrowserbaseBrowserSettingsSchema = z\n .object({\n advancedStealth: z.boolean().optional(),\n blockAds: z.boolean().optional(),\n context: BrowserbaseContextSchema.optional(),\n extensionId: z.string().optional(),\n fingerprint: BrowserbaseFingerprintSchema.optional(),\n logSession: z.boolean().optional(),\n recordSession: z.boolean().optional(),\n solveCaptchas: z.boolean().optional(),\n viewport: BrowserbaseViewportSchema.optional(),\n })\n .meta({ id: \"BrowserbaseBrowserSettings\" });\n\n/** Browserbase managed proxy geolocation configuration */\nexport const BrowserbaseProxyGeolocationSchema = z\n .object({\n country: z.string(),\n city: z.string().optional(),\n state: z.string().optional(),\n })\n .meta({ id: \"BrowserbaseProxyGeolocation\" });\n\n/** Browserbase managed proxy configuration */\nexport const BrowserbaseProxyConfigSchema = z\n .object({\n type: z.literal(\"browserbase\"),\n domainPattern: z.string().optional(),\n geolocation: BrowserbaseProxyGeolocationSchema.optional(),\n })\n .meta({ id: \"BrowserbaseProxyConfig\" });\n\n/** External proxy configuration */\nexport const ExternalProxyConfigSchema = z\n .object({\n type: z.literal(\"external\"),\n server: z.string(),\n domainPattern: z.string().optional(),\n username: z.string().optional(),\n password: z.string().optional(),\n })\n .meta({ id: \"ExternalProxyConfig\" });\n\n/** Union of proxy configuration types */\nexport const ProxyConfigSchema = z\n .discriminatedUnion(\"type\", [\n BrowserbaseProxyConfigSchema,\n ExternalProxyConfigSchema,\n ])\n .meta({ id: \"ProxyConfig\" });\n\n/** Browserbase region identifier for multi-region support */\nexport const BrowserbaseRegionSchema = z\n .enum([\"us-west-2\", \"us-east-1\", \"eu-central-1\", \"ap-southeast-1\"])\n .meta({ id: \"BrowserbaseRegion\" });\n\n/** Browserbase session creation parameters */\nexport const BrowserbaseSessionCreateParamsSchema = z\n .object({\n projectId: z.string().optional(),\n browserSettings: BrowserbaseBrowserSettingsSchema.optional(),\n extensionId: z.string().optional(),\n keepAlive: z.boolean().optional(),\n proxies: z.union([z.boolean(), z.array(ProxyConfigSchema)]).optional(),\n region: BrowserbaseRegionSchema.optional(),\n timeout: z.number().optional(),\n userMetadata: z.record(z.string(), z.unknown()).optional(),\n })\n .meta({ id: \"BrowserbaseSessionCreateParams\" });\n\n// =============================================================================\n// Session Start\n// =============================================================================\n\nexport const SessionStartRequestSchema = z\n .object({\n modelName: z.string().meta({\n description: \"Model name to use for AI operations\",\n example: \"openai/gpt-4o\",\n }),\n domSettleTimeoutMs: z.number().optional().meta({\n description: \"Timeout in ms to wait for DOM to settle\",\n example: 5000,\n }),\n verbose: z\n .union([z.literal(0), z.literal(1), z.literal(2)])\n .optional()\n .meta({\n description: \"Logging verbosity level (0=quiet, 1=normal, 2=debug)\",\n example: 1,\n override: ({ jsonSchema }: { jsonSchema: Record<string, unknown> }) => {\n delete jsonSchema.anyOf;\n delete jsonSchema.allOf;\n delete jsonSchema.oneOf;\n jsonSchema.type = \"number\";\n jsonSchema.enum = [0, 1, 2];\n },\n }),\n systemPrompt: z.string().optional().meta({\n description: \"Custom system prompt for AI operations\",\n }),\n browserbaseSessionCreateParams:\n BrowserbaseSessionCreateParamsSchema.optional(),\n browser: BrowserConfigSchema.optional(),\n selfHeal: z.boolean().optional().meta({\n description: \"Enable self-healing for failed actions\",\n example: true,\n }),\n browserbaseSessionID: z.string().optional().meta({\n description: \"Existing Browserbase session ID to resume\",\n }),\n // experimental is a V3 field but doesn't need to go over the wire - included because wire type imports options type\n experimental: z.boolean().optional(),\n // V2 compatibility fields - only included because the server imports this type and supports V2\n // should never be used in v3 clients or v3-only server implementations\n waitForCaptchaSolves: z.boolean().optional().meta({\n description: \"Wait for captcha solves (deprecated, v2 only)\",\n }),\n actTimeoutMs: z.number().optional().meta({\n description: \"Timeout in ms for act operations (deprecated, v2 only)\",\n }),\n })\n .meta({ id: \"SessionStartRequest\" });\n\nexport const SessionStartResultSchema = z\n .object({\n sessionId: z.string().meta({\n description: \"Unique Browserbase session identifier\",\n example: \"c4dbf3a9-9a58-4b22-8a1c-9f20f9f9e123\",\n }),\n cdpUrl: z.string().nullish().meta({\n description:\n \"CDP WebSocket URL for connecting to the Browserbase cloud browser (present when available)\",\n example: \"wss://connect.browserbase.com/?signingKey=abc123\",\n }),\n available: z.boolean(),\n })\n .meta({ id: \"SessionStartResult\" });\n\nexport const SessionStartResponseSchema = wrapResponse(\n SessionStartResultSchema,\n \"SessionStartResponse\",\n);\n\n// =============================================================================\n// Session End\n// =============================================================================\n\n/** Session end request - no request body. */\nexport const SessionEndRequestSchema = z\n .object({})\n .strict()\n .optional()\n .meta({ id: \"SessionEndRequest\" });\n\nexport const SessionEndResultSchema = z\n .object({})\n .strict()\n .meta({ id: \"SessionEndResult\" });\n\n/** Session end response - just success flag, no data wrapper */\nexport const SessionEndResponseSchema = z\n .object({\n success: z.boolean().meta({\n description: \"Indicates whether the request was successful\",\n }),\n })\n .strict()\n .meta({ id: \"SessionEndResponse\" });\n\n// =============================================================================\n// Act\n// =============================================================================\n\nexport const ActOptionsSchema = z\n .object({\n model: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano')\",\n }),\n variables: z\n .record(z.string(), z.string())\n .optional()\n .meta({\n description: \"Variables to substitute in the action instruction\",\n example: { username: \"john_doe\" },\n }),\n timeout: z.number().optional().meta({\n description: \"Timeout in ms for the action\",\n example: 30000,\n }),\n })\n .optional()\n .meta({ id: \"ActOptions\" });\n\nexport const ActRequestSchema = z\n .object({\n input: z.string().or(ActionSchema).meta({\n description: \"Natural language instruction or Action object\",\n example: \"Click the login button\",\n }),\n options: ActOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the action\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n })\n .meta({ id: \"ActRequest\" });\n\n/** Inner act result data */\nexport const ActResultDataSchema = z\n .object({\n success: z.boolean().meta({\n description: \"Whether the action completed successfully\",\n example: true,\n }),\n message: z.string().meta({\n description: \"Human-readable result message\",\n example: \"Successfully clicked the login button\",\n }),\n actionDescription: z.string().meta({\n description: \"Description of the action that was performed\",\n example: \"Clicked button with text 'Login'\",\n }),\n actions: z.array(ActionSchema).meta({\n description: \"List of actions that were executed\",\n }),\n })\n .meta({ id: \"ActResultData\" });\n\nexport const ActResultSchema = z\n .object({\n result: ActResultDataSchema,\n actionId: z.string().optional().meta({\n description: \"Action ID for tracking\",\n }),\n })\n .meta({ id: \"ActResult\" });\n\nexport const ActResponseSchema = wrapResponse(ActResultSchema, \"ActResponse\");\n\n// =============================================================================\n// Extract\n// =============================================================================\n\nexport const ExtractOptionsSchema = z\n .object({\n model: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano')\",\n }),\n timeout: z.number().optional().meta({\n description: \"Timeout in ms for the extraction\",\n example: 30000,\n }),\n selector: z.string().optional().meta({\n description: \"CSS selector to scope extraction to a specific element\",\n example: \"#main-content\",\n }),\n })\n .optional()\n .meta({ id: \"ExtractOptions\" });\n\nexport const ExtractRequestSchema = z\n .object({\n instruction: z.string().optional().meta({\n description: \"Natural language instruction for what to extract\",\n example: \"Extract all product names and prices from the page\",\n }),\n schema: z.record(z.string(), z.unknown()).optional().meta({\n description: \"JSON Schema defining the structure of data to extract\",\n }),\n options: ExtractOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the extraction\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n })\n .meta({ id: \"ExtractRequest\" });\n\nexport const ExtractResultSchema = z\n .object({\n result: z.unknown().meta({\n description: \"Extracted data matching the requested schema\",\n override: ({ jsonSchema }: { jsonSchema: Record<string, unknown> }) => {\n jsonSchema[\"x-stainless-any\"] = true;\n },\n }),\n actionId: z.string().optional().meta({\n description: \"Action ID for tracking\",\n }),\n })\n .meta({ id: \"ExtractResult\" });\n\nexport const ExtractResponseSchema = wrapResponse(\n ExtractResultSchema,\n \"ExtractResponse\",\n);\n\n// =============================================================================\n// Observe\n// =============================================================================\n\nexport const ObserveOptionsSchema = z\n .object({\n model: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano')\",\n }),\n timeout: z.number().optional().meta({\n description: \"Timeout in ms for the observation\",\n example: 30000,\n }),\n selector: z.string().optional().meta({\n description: \"CSS selector to scope observation to a specific element\",\n example: \"nav\",\n }),\n })\n .optional()\n .meta({ id: \"ObserveOptions\" });\n\nexport const ObserveRequestSchema = z\n .object({\n instruction: z.string().optional().meta({\n description: \"Natural language instruction for what actions to find\",\n example: \"Find all clickable navigation links\",\n }),\n options: ObserveOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the observation\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n })\n .meta({ id: \"ObserveRequest\" });\n\nexport const ObserveResultSchema = z\n .object({\n result: z.array(ActionSchema),\n actionId: z.string().optional().meta({\n description: \"Action ID for tracking\",\n }),\n })\n .meta({ id: \"ObserveResult\" });\n\nexport const ObserveResponseSchema = wrapResponse(\n ObserveResultSchema,\n \"ObserveResponse\",\n);\n\n// =============================================================================\n// Agent Execute\n// =============================================================================\n\nexport const AgentConfigSchema = z\n .object({\n provider: z // cloud accepts provider: at the top level for legacy reasons, in the future we should remove it\n .enum([\"openai\", \"anthropic\", \"google\", \"microsoft\", \"bedrock\"])\n .optional()\n .meta({\n description:\n \"AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)\",\n example: \"openai\",\n }),\n model: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano')\",\n }),\n systemPrompt: z.string().optional().meta({\n description: \"Custom system prompt for the agent\",\n }),\n cua: z.boolean().optional().meta({\n description:\n \"Deprecated. Use mode: 'cua' instead. If both are provided, mode takes precedence.\",\n example: true,\n }),\n mode: z.enum([\"dom\", \"hybrid\", \"cua\"]).optional().meta({\n description:\n \"Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.\",\n example: \"cua\",\n }),\n executionModel: z.union([ModelConfigSchema, z.string()]).optional().meta({\n description:\n \"Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for tool execution (observe/act calls within agent tools). If not specified, inherits from the main model configuration.\",\n }),\n })\n .meta({ id: \"AgentConfig\" });\n\n/** Action taken by the agent during execution */\nexport const AgentActionSchema = z\n .object({\n type: z.string().meta({\n description: \"Type of action taken\",\n example: \"click\",\n }),\n reasoning: z.string().optional().meta({\n description: \"Agent's reasoning for taking this action\",\n }),\n taskCompleted: z.boolean().optional(),\n action: z.string().optional(),\n timeMs: z.number().optional().meta({\n description: \"Time taken for this action in ms\",\n }),\n pageText: z.string().optional(),\n pageUrl: z.string().optional(),\n instruction: z.string().optional(),\n })\n .passthrough()\n .meta({ id: \"AgentAction\" });\n\n/** Token usage statistics for agent execution */\nexport const AgentUsageSchema = z\n .object({\n input_tokens: z.number().meta({ example: 1500 }),\n output_tokens: z.number().meta({ example: 250 }),\n reasoning_tokens: z.number().optional(),\n cached_input_tokens: z.number().optional(),\n inference_time_ms: z.number().meta({ example: 2500 }),\n })\n .meta({ id: \"AgentUsage\" });\n\n/** Result data from agent execution */\nexport const AgentResultDataSchema = z\n .object({\n success: z.boolean().meta({\n description: \"Whether the agent completed successfully\",\n example: true,\n }),\n message: z.string().meta({\n description: \"Summary of what the agent accomplished\",\n example: \"Successfully logged in and navigated to dashboard\",\n }),\n actions: z.array(AgentActionSchema),\n completed: z.boolean().meta({\n description: \"Whether the agent finished its task\",\n example: true,\n }),\n metadata: z.record(z.string(), z.unknown()).optional(),\n usage: AgentUsageSchema.optional(),\n })\n .meta({ id: \"AgentResultData\" });\n\nexport const AgentCacheEntrySchema = z\n .object({\n cacheKey: z.string().meta({\n description:\n \"Opaque cache identifier computed from instruction, URL, options, and config\",\n }),\n entry: z.unknown().meta({\n description: \"Serialized cache entry that can be written to disk\",\n }),\n })\n .meta({ id: \"AgentCacheEntry\" });\n\nexport const AgentExecuteOptionsSchema = z\n .object({\n instruction: z.string().meta({\n description: \"Natural language instruction for the agent\",\n example:\n \"Log in with username 'demo' and password 'test123', then navigate to settings\",\n }),\n maxSteps: z.number().optional().meta({\n description: \"Maximum number of steps the agent can take\",\n example: 20,\n }),\n highlightCursor: z.boolean().optional().meta({\n description: \"Whether to visually highlight the cursor during execution\",\n example: true,\n }),\n })\n .meta({ id: \"AgentExecuteOptions\" });\n\nexport const AgentExecuteRequestSchema = z\n .object({\n agentConfig: AgentConfigSchema,\n executeOptions: AgentExecuteOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the agent\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n shouldCache: z.boolean().optional().meta({\n description:\n \"If true, the server captures a cache entry and returns it to the client\",\n }),\n })\n .meta({ id: \"AgentExecuteRequest\" });\n\nexport const AgentExecuteResultSchema = z\n .object({\n result: AgentResultDataSchema,\n cacheEntry: AgentCacheEntrySchema.optional(),\n })\n .meta({ id: \"AgentExecuteResult\" });\n\nexport const AgentExecuteResponseSchema = wrapResponse(\n AgentExecuteResultSchema,\n \"AgentExecuteResponse\",\n);\n\n// =============================================================================\n// Navigate\n// =============================================================================\n\nexport const NavigateOptionsSchema = z\n .object({\n referer: z.string().optional().meta({\n description: \"Referer header to send with the request\",\n }),\n timeout: z.number().optional().meta({\n description: \"Timeout in ms for the navigation\",\n example: 30000,\n }),\n waitUntil: z\n .enum([\"load\", \"domcontentloaded\", \"networkidle\"])\n .optional()\n .meta({\n description: \"When to consider navigation complete\",\n example: \"networkidle\",\n }),\n })\n .optional()\n .meta({ id: \"NavigateOptions\" });\n\nexport const NavigateRequestSchema = z\n .object({\n url: z.string().meta({\n description: \"URL to navigate to\",\n example: \"https://example.com\",\n }),\n options: NavigateOptionsSchema,\n frameId: z.string().nullish().meta({\n description: \"Target frame ID for the navigation\",\n }),\n streamResponse: z.boolean().optional().meta({\n description: \"Whether to stream the response via SSE\",\n example: true,\n }),\n })\n .meta({ id: \"NavigateRequest\" });\n\nexport const NavigateResultSchema = z\n .object({\n // SerializableResponse from types/private/api.ts - no Zod schema available\n // as it wraps complex devtools-protocol types (Protocol.Network.Response)\n result: z\n .unknown()\n .nullable()\n .meta({\n description: \"Navigation response (Playwright Response object or null)\",\n override: ({ jsonSchema }: { jsonSchema: Record<string, unknown> }) => {\n jsonSchema[\"x-stainless-any\"] = true;\n },\n }),\n actionId: z.string().optional().meta({\n description: \"Action ID for tracking\",\n }),\n })\n .meta({ id: \"NavigateResult\" });\n\nexport const NavigateResponseSchema = wrapResponse(\n NavigateResultSchema,\n \"NavigateResponse\",\n);\n\n// =============================================================================\n// Replay Metrics\n// =============================================================================\n\n/** Token usage for a single action */\nexport const TokenUsageSchema = z\n .object({\n inputTokens: z.number().optional(),\n outputTokens: z.number().optional(),\n timeMs: z.number().optional(),\n cost: z.number().optional(),\n })\n .meta({ id: \"TokenUsage\" });\n\n/** Action entry in replay metrics */\nexport const ReplayActionSchema = z\n .object({\n method: z.string(),\n parameters: z.record(z.string(), z.unknown()),\n result: z.record(z.string(), z.unknown()),\n timestamp: z.number(),\n endTime: z.number().optional(),\n tokenUsage: TokenUsageSchema.optional(),\n })\n .meta({ id: \"ReplayAction\" });\n\n/** Page entry in replay metrics */\nexport const ReplayPageSchema = z\n .object({\n url: z.string(),\n timestamp: z.number(),\n duration: z.number(),\n actions: z.array(ReplayActionSchema),\n })\n .meta({ id: \"ReplayPage\" });\n\n/** Inner result data for replay */\nexport const ReplayResultSchema = z\n .object({\n pages: z.array(ReplayPageSchema),\n clientLanguage: z.string().optional(),\n })\n .meta({ id: \"ReplayResult\" });\n\nexport const ReplayResponseSchema = wrapResponse(\n ReplayResultSchema,\n \"ReplayResponse\",\n);\n\n// =============================================================================\n// SSE Stream Events\n// =============================================================================\n// These schemas define the Server-Sent Events format for streaming responses.\n// Streaming is enabled by setting the `x-stream-response: true` header.\n\n/** Status values for SSE stream events */\nexport const StreamEventStatusSchema = z\n .enum([\"starting\", \"connected\", \"running\", \"finished\", \"error\"])\n .meta({\n id: \"StreamEventStatus\",\n description: \"Current status of the streaming operation\",\n });\n\n/** Type discriminator for SSE stream events */\nexport const StreamEventTypeSchema = z.enum([\"system\", \"log\"]).meta({\n id: \"StreamEventType\",\n description: \"Type of stream event - system events or log messages\",\n});\n\n/** Data payload for system stream events */\nexport const StreamEventSystemDataSchema = z\n .object({\n status: StreamEventStatusSchema,\n result: z\n .unknown()\n .optional()\n .meta({\n description: \"Operation result (present when status is 'finished')\",\n override: ({ jsonSchema }: { jsonSchema: Record<string, unknown> }) => {\n jsonSchema[\"x-stainless-any\"] = true;\n },\n }),\n error: z.string().optional().meta({\n description: \"Error message (present when status is 'error')\",\n }),\n })\n .meta({ id: \"StreamEventSystemData\" });\n\n/** Data payload for log stream events */\nexport const StreamEventLogDataSchema = z\n .object({\n status: z.literal(\"running\"),\n message: z.string().meta({\n description: \"Log message from the operation\",\n }),\n })\n .meta({ id: \"StreamEventLogData\" });\n\n/**\n * SSE stream event sent during streaming responses.\n *\n * IMPORTANT: Key ordering matters for Stainless SDK generation.\n * The `data` field MUST be serialized first, with `status` as the first key within it.\n * This allows Stainless to use `data_starts_with: '{\"data\":{\"status\":\"finished\"'` for event handling.\n *\n * Expected serialization order: {\"data\":{\"status\":...},\"type\":...,\"id\":...}\n */\nexport const StreamEventSchema = z\n .object({\n data: z.union([StreamEventSystemDataSchema, StreamEventLogDataSchema]),\n type: StreamEventTypeSchema,\n id: z.string().uuid().meta({\n description: \"Unique identifier for this event\",\n example: \"c4dbf3a9-9a58-4b22-8a1c-9f20f9f9e123\",\n }),\n })\n .meta({\n id: \"StreamEvent\",\n description:\n \"Server-Sent Event emitted during streaming responses. Events are sent as `data: <JSON>\\\\n\\\\n`. Key order: data (with status first), type, id.\",\n });\n\n// =============================================================================\n// OpenAPI Components\n// =============================================================================\n// These objects are exported for use in gen-openapi.ts to configure the spec.\n\n/** OpenAPI security schemes for authentication */\nexport const openApiSecuritySchemes = {\n BrowserbaseApiKey: {\n type: \"apiKey\",\n in: \"header\",\n name: \"x-bb-api-key\",\n description: \"Browserbase API key for authentication\",\n },\n BrowserbaseProjectId: {\n type: \"apiKey\",\n in: \"header\",\n name: \"x-bb-project-id\",\n description: \"Browserbase project ID\",\n },\n ModelApiKey: {\n type: \"apiKey\",\n in: \"header\",\n name: \"x-model-api-key\",\n description: \"API key for the AI model provider (OpenAI, Anthropic, etc.)\",\n },\n} as const;\n\n/** OpenAPI links for session operations (used in SessionStart response) */\nexport const openApiLinks = {\n SessionAct: {\n operationId: \"SessionAct\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Perform an action on the session\",\n },\n SessionExtract: {\n operationId: \"SessionExtract\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Extract data from the session\",\n },\n SessionObserve: {\n operationId: \"SessionObserve\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Observe available actions on the session\",\n },\n SessionNavigate: {\n operationId: \"SessionNavigate\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Navigate to a URL in the session\",\n },\n SessionAgentExecute: {\n operationId: \"SessionAgentExecute\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Execute an agent on the session\",\n },\n SessionReplay: {\n operationId: \"SessionReplay\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"Replay session metrics\",\n },\n SessionEnd: {\n operationId: \"SessionEnd\",\n parameters: { id: \"$response.body#/data/sessionId\" },\n description: \"End the session and release resources\",\n },\n} as const;\n\n/** OpenAPI operation metadata for each endpoint */\nexport const Operations = {\n SessionStart: {\n operationId: \"SessionStart\",\n summary: \"Start a new browser session\",\n description:\n \"Creates a new browser session with the specified configuration. Returns a session ID used for all subsequent operations.\",\n },\n SessionEnd: {\n operationId: \"SessionEnd\",\n summary: \"End a browser session\",\n description:\n \"Terminates the browser session and releases all associated resources.\",\n },\n SessionAct: {\n operationId: \"SessionAct\",\n summary: \"Perform an action\",\n description:\n \"Executes a browser action using natural language instructions or a predefined Action object.\",\n },\n SessionExtract: {\n operationId: \"SessionExtract\",\n summary: \"Extract data from the page\",\n description:\n \"Extracts structured data from the current page using AI-powered analysis.\",\n },\n SessionObserve: {\n operationId: \"SessionObserve\",\n summary: \"Observe available actions\",\n description:\n \"Identifies and returns available actions on the current page that match the given instruction.\",\n },\n SessionNavigate: {\n operationId: \"SessionNavigate\",\n summary: \"Navigate to a URL\",\n description: \"Navigates the browser to the specified URL.\",\n },\n SessionAgentExecute: {\n operationId: \"SessionAgentExecute\",\n summary: \"Execute an AI agent\",\n description:\n \"Runs an autonomous AI agent that can perform complex multi-step browser tasks.\",\n },\n SessionReplay: {\n operationId: \"SessionReplay\",\n summary: \"Replay session metrics\",\n description: \"Retrieves replay metrics for a session.\",\n },\n} as const;\n\n// =============================================================================\n// Type Exports (inferred from schemas)\n// =============================================================================\n\n// Shared types\nexport type Action = z.infer<typeof ActionSchema>;\nexport type ModelConfig = z.infer<typeof ModelConfigSchema>;\nexport type BrowserConfig = z.infer<typeof BrowserConfigSchema>;\nexport type SessionIdParams = z.infer<typeof SessionIdParamsSchema>;\n\n// Header types\nexport type SessionHeaders = z.infer<typeof SessionHeadersSchema>;\n\n// Browserbase types\nexport type BrowserbaseViewport = z.infer<typeof BrowserbaseViewportSchema>;\nexport type BrowserbaseFingerprintScreen = z.infer<\n typeof BrowserbaseFingerprintScreenSchema\n>;\nexport type BrowserbaseFingerprint = z.infer<\n typeof BrowserbaseFingerprintSchema\n>;\nexport type BrowserbaseContext = z.infer<typeof BrowserbaseContextSchema>;\nexport type BrowserbaseBrowserSettings = z.infer<\n typeof BrowserbaseBrowserSettingsSchema\n>;\nexport type BrowserbaseProxyGeolocation = z.infer<\n typeof BrowserbaseProxyGeolocationSchema\n>;\nexport type BrowserbaseProxyConfig = z.infer<\n typeof BrowserbaseProxyConfigSchema\n>;\nexport type ExternalProxyConfig = z.infer<typeof ExternalProxyConfigSchema>;\nexport type BrowserbaseRegion = z.infer<typeof BrowserbaseRegionSchema>;\nexport type BrowserbaseSessionCreateParams = z.infer<\n typeof BrowserbaseSessionCreateParamsSchema\n>;\n\n// Type check: ensure our schema-derived type is assignable to the SDK type\n// This will cause a compile error if our schema drifts from the SDK\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype _BrowserbaseSessionCreateParamsCheck =\n BrowserbaseSessionCreateParams extends Browserbase.Sessions.SessionCreateParams\n ? true\n : never;\n\n// /sessions/start\nexport type SessionStartRequest = z.infer<typeof SessionStartRequestSchema>;\nexport type SessionStartResult = z.infer<typeof SessionStartResultSchema>;\nexport type SessionStartResponse = z.infer<typeof SessionStartResponseSchema>;\n\n// /sessions/{id}/end\nexport type SessionEndResult = z.infer<typeof SessionEndResultSchema>;\nexport type SessionEndResponse = z.infer<typeof SessionEndResponseSchema>;\n\n// /sessions/{id}/act\nexport type ActRequest = z.infer<typeof ActRequestSchema>;\nexport type ActResultData = z.infer<typeof ActResultDataSchema>;\nexport type ActResult = z.infer<typeof ActResultSchema>;\nexport type ActResponse = z.infer<typeof ActResponseSchema>;\n\n// /sessions/{id}/extract\nexport type ExtractRequest = z.infer<typeof ExtractRequestSchema>;\nexport type ExtractResult = z.infer<typeof ExtractResultSchema>;\nexport type ExtractResponse = z.infer<typeof ExtractResponseSchema>;\n\n// /sessions/{id}/observe\nexport type ObserveRequest = z.infer<typeof ObserveRequestSchema>;\nexport type ObserveResult = z.infer<typeof ObserveResultSchema>;\nexport type ObserveResponse = z.infer<typeof ObserveResponseSchema>;\n\n// /sessions/{id}/agentExecute\nexport type AgentAction = z.infer<typeof AgentActionSchema>;\nexport type AgentUsage = z.infer<typeof AgentUsageSchema>;\nexport type AgentResultData = z.infer<typeof AgentResultDataSchema>;\nexport type AgentExecuteRequest = z.infer<typeof AgentExecuteRequestSchema>;\nexport type AgentExecuteResult = z.infer<typeof AgentExecuteResultSchema>;\nexport type AgentExecuteResponse = z.infer<typeof AgentExecuteResponseSchema>;\n\n// /sessions/{id}/navigate\nexport type NavigateRequest = z.infer<typeof NavigateRequestSchema>;\nexport type NavigateResult = z.infer<typeof NavigateResultSchema>;\nexport type NavigateResponse = z.infer<typeof NavigateResponseSchema>;\n\n// /sessions/{id}/replay\nexport type TokenUsage = z.infer<typeof TokenUsageSchema>;\nexport type ReplayAction = z.infer<typeof ReplayActionSchema>;\nexport type ReplayPage = z.infer<typeof ReplayPageSchema>;\nexport type ReplayResult = z.infer<typeof ReplayResultSchema>;\nexport type ReplayResponse = z.infer<typeof ReplayResponseSchema>;\n\n// SSE Stream Events\nexport type StreamEventStatus = z.infer<typeof StreamEventStatusSchema>;\nexport type StreamEventType = z.infer<typeof StreamEventTypeSchema>;\nexport type StreamEventSystemData = z.infer<typeof StreamEventSystemDataSchema>;\nexport type StreamEventLogData = z.infer<typeof StreamEventLogDataSchema>;\nexport type StreamEvent = z.infer<typeof StreamEventSchema>;\n"]}
@@ -18,7 +18,7 @@ export interface GoogleServiceAccountCredentials {
18
18
  client_x509_cert_url?: string;
19
19
  universe_domain?: string;
20
20
  }
21
- export type GoogleVertexProviderSettings = Pick<GoogleVertexProviderSettingsBase, "project" | "location"> & {
21
+ export type GoogleVertexProviderSettings = Pick<GoogleVertexProviderSettingsBase, "project" | "location" | "headers"> & {
22
22
  googleAuthOptions?: {
23
23
  credentials?: GoogleServiceAccountCredentials;
24
24
  };
@@ -41,7 +41,7 @@ export interface LLMTool {
41
41
  }
42
42
  export type AISDKProvider = (modelName: string) => LanguageModelV2;
43
43
  export type AISDKCustomProvider = (options: ClientOptions) => AISDKProvider;
44
- export type AvailableModel = "gpt-4.1" | "gpt-4.1-mini" | "gpt-4.1-nano" | "o4-mini" | "o3" | "o3-mini" | "o1" | "o1-mini" | "gpt-4o" | "gpt-4o-mini" | "gpt-4o-2024-08-06" | "gpt-4.5-preview" | "o1-preview" | "claude-3-5-sonnet-latest" | "claude-3-5-sonnet-20241022" | "claude-3-5-sonnet-20240620" | "claude-3-7-sonnet-latest" | "claude-3-7-sonnet-20250219" | "cerebras-llama-3.3-70b" | "cerebras-llama-3.1-8b" | "groq-llama-3.3-70b-versatile" | "groq-llama-3.3-70b-specdec" | "gemini-1.5-flash" | "gemini-1.5-pro" | "gemini-1.5-flash-8b" | "gemini-2.0-flash-lite" | "gemini-2.0-flash" | "gemini-2.5-flash-preview-04-17" | "gemini-2.5-pro-preview-03-25" | string;
44
+ export type AvailableModel = "gpt-4.1" | "gpt-4.1-mini" | "gpt-4.1-nano" | "o4-mini" | "o3" | "o3-mini" | "o1" | "o1-mini" | "gpt-4o" | "gpt-4o-mini" | "gpt-4o-2024-08-06" | "gpt-4.5-preview" | "o1-preview" | "cerebras-llama-3.3-70b" | "cerebras-llama-3.1-8b" | "groq-llama-3.3-70b-versatile" | "groq-llama-3.3-70b-specdec" | "gemini-1.5-flash" | "gemini-1.5-pro" | "gemini-1.5-flash-8b" | "gemini-2.0-flash-lite" | "gemini-2.0-flash" | "gemini-2.5-flash-preview-04-17" | "gemini-2.5-pro-preview-03-25" | string;
45
45
  export type ModelProvider = "openai" | "anthropic" | "cerebras" | "groq" | "google" | "aisdk";
46
46
  export type ClientOptions = (OpenAIClientOptions | AnthropicClientOptions | GoogleVertexProviderSettings) & {
47
47
  apiKey?: string;
@@ -59,6 +59,8 @@ export type ClientOptions = (OpenAIClientOptions | AnthropicClientOptions | Goog
59
59
  maxImages?: number;
60
60
  /** Temperature for model inference */
61
61
  temperature?: number;
62
+ /** Custom headers sent with every request to the provider */
63
+ headers?: Record<string, string>;
62
64
  };
63
65
  export type ModelConfiguration = AvailableModel | (ClientOptions & {
64
66
  modelName: AvailableModel;
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../../../lib/v3/types/public/model.ts"],"names":[],"mappings":"","sourcesContent":["import type { ClientOptions as AnthropicClientOptionsBase } from \"@anthropic-ai/sdk\";\nimport type { GoogleVertexProviderSettings as GoogleVertexProviderSettingsBase } from \"@ai-sdk/google-vertex\";\nimport type { LanguageModelV2 } from \"@ai-sdk/provider\";\nimport type { ClientOptions as OpenAIClientOptionsBase } from \"openai\";\nimport type { AgentProviderType } from \"./agent.js\";\n\nexport type OpenAIClientOptions = Pick<\n OpenAIClientOptionsBase,\n \"baseURL\" | \"apiKey\"\n>;\n\nexport type AnthropicClientOptions = Pick<\n AnthropicClientOptionsBase,\n \"baseURL\" | \"apiKey\"\n>;\n\nexport interface GoogleServiceAccountCredentials {\n type?: string;\n project_id?: string;\n private_key_id?: string;\n private_key?: string;\n client_email?: string;\n client_id?: string;\n auth_uri?: string;\n token_uri?: string;\n auth_provider_x509_cert_url?: string;\n client_x509_cert_url?: string;\n universe_domain?: string;\n}\n\nexport type GoogleVertexProviderSettings = Pick<\n GoogleVertexProviderSettingsBase,\n \"project\" | \"location\"\n> & {\n googleAuthOptions?: {\n credentials?: GoogleServiceAccountCredentials;\n };\n};\n\nexport type AnthropicJsonSchemaObject = {\n definitions?: {\n MySchema?: {\n properties?: Record<string, unknown>;\n required?: string[];\n };\n };\n properties?: Record<string, unknown>;\n required?: string[];\n} & Record<string, unknown>;\n\nexport interface LLMTool {\n type: \"function\";\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n}\n\nexport type AISDKProvider = (modelName: string) => LanguageModelV2;\n// Represents a function that takes options (like apiKey) and returns an AISDKProvider\nexport type AISDKCustomProvider = (options: ClientOptions) => AISDKProvider;\n\nexport type AvailableModel =\n | \"gpt-4.1\"\n | \"gpt-4.1-mini\"\n | \"gpt-4.1-nano\"\n | \"o4-mini\"\n | \"o3\"\n | \"o3-mini\"\n | \"o1\"\n | \"o1-mini\"\n | \"gpt-4o\"\n | \"gpt-4o-mini\"\n | \"gpt-4o-2024-08-06\"\n | \"gpt-4.5-preview\"\n | \"o1-preview\"\n | \"claude-3-5-sonnet-latest\"\n | \"claude-3-5-sonnet-20241022\"\n | \"claude-3-5-sonnet-20240620\"\n | \"claude-3-7-sonnet-latest\"\n | \"claude-3-7-sonnet-20250219\"\n | \"cerebras-llama-3.3-70b\"\n | \"cerebras-llama-3.1-8b\"\n | \"groq-llama-3.3-70b-versatile\"\n | \"groq-llama-3.3-70b-specdec\"\n | \"gemini-1.5-flash\"\n | \"gemini-1.5-pro\"\n | \"gemini-1.5-flash-8b\"\n | \"gemini-2.0-flash-lite\"\n | \"gemini-2.0-flash\"\n | \"gemini-2.5-flash-preview-04-17\"\n | \"gemini-2.5-pro-preview-03-25\"\n | string;\n\nexport type ModelProvider =\n | \"openai\"\n | \"anthropic\"\n | \"cerebras\"\n | \"groq\"\n | \"google\"\n | \"aisdk\";\n\nexport type ClientOptions = (\n | OpenAIClientOptions\n | AnthropicClientOptions\n | GoogleVertexProviderSettings\n) & {\n apiKey?: string;\n provider?: AgentProviderType;\n baseURL?: string;\n /** OpenAI organization ID */\n organization?: string;\n /** Delay between agent actions in ms */\n waitBetweenActions?: number;\n /** Anthropic thinking budget for extended thinking */\n thinkingBudget?: number;\n /** Environment type for CUA agents (browser, mac, windows, ubuntu) */\n environment?: string;\n /** Max images for Microsoft FARA agent */\n maxImages?: number;\n /** Temperature for model inference */\n temperature?: number;\n};\n\nexport type ModelConfiguration =\n | AvailableModel\n | (ClientOptions & { modelName: AvailableModel });\n"]}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../../../lib/v3/types/public/model.ts"],"names":[],"mappings":"","sourcesContent":["import type { ClientOptions as AnthropicClientOptionsBase } from \"@anthropic-ai/sdk\";\nimport type { GoogleVertexProviderSettings as GoogleVertexProviderSettingsBase } from \"@ai-sdk/google-vertex\";\nimport type { LanguageModelV2 } from \"@ai-sdk/provider\";\nimport type { ClientOptions as OpenAIClientOptionsBase } from \"openai\";\nimport type { AgentProviderType } from \"./agent.js\";\n\nexport type OpenAIClientOptions = Pick<\n OpenAIClientOptionsBase,\n \"baseURL\" | \"apiKey\"\n>;\n\nexport type AnthropicClientOptions = Pick<\n AnthropicClientOptionsBase,\n \"baseURL\" | \"apiKey\"\n>;\n\nexport interface GoogleServiceAccountCredentials {\n type?: string;\n project_id?: string;\n private_key_id?: string;\n private_key?: string;\n client_email?: string;\n client_id?: string;\n auth_uri?: string;\n token_uri?: string;\n auth_provider_x509_cert_url?: string;\n client_x509_cert_url?: string;\n universe_domain?: string;\n}\n\nexport type GoogleVertexProviderSettings = Pick<\n GoogleVertexProviderSettingsBase,\n \"project\" | \"location\" | \"headers\"\n> & {\n googleAuthOptions?: {\n credentials?: GoogleServiceAccountCredentials;\n };\n};\n\nexport type AnthropicJsonSchemaObject = {\n definitions?: {\n MySchema?: {\n properties?: Record<string, unknown>;\n required?: string[];\n };\n };\n properties?: Record<string, unknown>;\n required?: string[];\n} & Record<string, unknown>;\n\nexport interface LLMTool {\n type: \"function\";\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n}\n\nexport type AISDKProvider = (modelName: string) => LanguageModelV2;\n// Represents a function that takes options (like apiKey) and returns an AISDKProvider\nexport type AISDKCustomProvider = (options: ClientOptions) => AISDKProvider;\n\nexport type AvailableModel =\n | \"gpt-4.1\"\n | \"gpt-4.1-mini\"\n | \"gpt-4.1-nano\"\n | \"o4-mini\"\n | \"o3\"\n | \"o3-mini\"\n | \"o1\"\n | \"o1-mini\"\n | \"gpt-4o\"\n | \"gpt-4o-mini\"\n | \"gpt-4o-2024-08-06\"\n | \"gpt-4.5-preview\"\n | \"o1-preview\"\n | \"cerebras-llama-3.3-70b\"\n | \"cerebras-llama-3.1-8b\"\n | \"groq-llama-3.3-70b-versatile\"\n | \"groq-llama-3.3-70b-specdec\"\n | \"gemini-1.5-flash\"\n | \"gemini-1.5-pro\"\n | \"gemini-1.5-flash-8b\"\n | \"gemini-2.0-flash-lite\"\n | \"gemini-2.0-flash\"\n | \"gemini-2.5-flash-preview-04-17\"\n | \"gemini-2.5-pro-preview-03-25\"\n | string;\n\nexport type ModelProvider =\n | \"openai\"\n | \"anthropic\"\n | \"cerebras\"\n | \"groq\"\n | \"google\"\n | \"aisdk\";\n\nexport type ClientOptions = (\n | OpenAIClientOptions\n | AnthropicClientOptions\n | GoogleVertexProviderSettings\n) & {\n apiKey?: string;\n provider?: AgentProviderType;\n baseURL?: string;\n /** OpenAI organization ID */\n organization?: string;\n /** Delay between agent actions in ms */\n waitBetweenActions?: number;\n /** Anthropic thinking budget for extended thinking */\n thinkingBudget?: number;\n /** Environment type for CUA agents (browser, mac, windows, ubuntu) */\n environment?: string;\n /** Max images for Microsoft FARA agent */\n maxImages?: number;\n /** Temperature for model inference */\n temperature?: number;\n /** Custom headers sent with every request to the provider */\n headers?: Record<string, string>;\n};\n\nexport type ModelConfiguration =\n | AvailableModel\n | (ClientOptions & { modelName: AvailableModel });\n"]}
@@ -29,6 +29,7 @@ export declare const localBrowserLaunchOptionsSchema: z.ZodObject<{
29
29
  hasTouch: z.ZodOptional<z.ZodBoolean>;
30
30
  ignoreHTTPSErrors: z.ZodOptional<z.ZodBoolean>;
31
31
  cdpUrl: z.ZodOptional<z.ZodString>;
32
+ cdpHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
32
33
  connectTimeoutMs: z.ZodOptional<z.ZodNumber>;
33
34
  downloadsPath: z.ZodOptional<z.ZodString>;
34
35
  acceptDownloads: z.ZodOptional<z.ZodBoolean>;
@@ -23,6 +23,7 @@ export declare class CdpConnection implements CDPSessionLike {
23
23
  private sessions;
24
24
  /** Maps sessionId -> targetId (1:1 mapping) */
25
25
  private sessionToTarget;
26
+ private sessionDispatchWaiters;
26
27
  readonly id: string | null;
27
28
  private transportCloseHandlers;
28
29
  /** Optional CDP logger - set this to receive all outgoing CDP method calls */
@@ -41,7 +42,9 @@ export declare class CdpConnection implements CDPSessionLike {
41
42
  offTransportClosed(handler: (why: string) => void): void;
42
43
  private emitTransportClosed;
43
44
  private constructor();
44
- static connect(wsUrl: string): Promise<CdpConnection>;
45
+ static connect(wsUrl: string, options?: {
46
+ headers?: Record<string, string>;
47
+ }): Promise<CdpConnection>;
45
48
  enableAutoAttach(): Promise<void>;
46
49
  send<R = unknown>(method: string, params?: object): Promise<R>;
47
50
  on<P = unknown>(event: string, handler: (params: P) => void): void;
@@ -49,6 +52,7 @@ export declare class CdpConnection implements CDPSessionLike {
49
52
  close(): Promise<void>;
50
53
  private rejectAllInflight;
51
54
  getSession(sessionId: string): CdpSession | undefined;
55
+ waitForSessionDispatch(sessionId: string, method: string, match?: (params?: object) => boolean): Promise<void>;
52
56
  attachToTarget(targetId: string): Promise<CdpSession>;
53
57
  getTargets(): Promise<Protocol.Target.TargetInfo[]>;
54
58
  private onMessage;
@@ -1,7 +1,7 @@
1
1
  // lib/v3/understudy/cdp.ts
2
2
  import WebSocket from "ws";
3
3
  import { STAGEHAND_VERSION } from "../../version.js";
4
- import { CdpConnectionClosedError } from "../types/public/sdkErrors.js";
4
+ import { CdpConnectionClosedError, PageNotFoundError, } from "../types/public/sdkErrors.js";
5
5
  export class CdpConnection {
6
6
  ws;
7
7
  nextId = 1;
@@ -10,6 +10,7 @@ export class CdpConnection {
10
10
  sessions = new Map();
11
11
  /** Maps sessionId -> targetId (1:1 mapping) */
12
12
  sessionToTarget = new Map();
13
+ sessionDispatchWaiters = new Set();
13
14
  id = null; // root
14
15
  transportCloseHandlers = new Set();
15
16
  /** Optional CDP logger - set this to receive all outgoing CDP method calls */
@@ -47,13 +48,14 @@ export class CdpConnection {
47
48
  });
48
49
  this.ws.on("message", (data) => this.onMessage(data.toString()));
49
50
  }
50
- static async connect(wsUrl) {
51
+ static async connect(wsUrl, options) {
51
52
  // Include User-Agent header for server-side observability and version tracking
52
- const ws = new WebSocket(wsUrl, {
53
- headers: {
54
- "User-Agent": `Stagehand/${STAGEHAND_VERSION}`,
55
- },
56
- });
53
+ // Merge user-provided headers, letting them override defaults
54
+ const headers = {
55
+ "User-Agent": `Stagehand/${STAGEHAND_VERSION}`,
56
+ ...options?.headers,
57
+ };
58
+ const ws = new WebSocket(wsUrl, { headers });
57
59
  await new Promise((resolve, reject) => {
58
60
  ws.once("open", () => resolve());
59
61
  ws.once("error", (e) => reject(e));
@@ -112,10 +114,31 @@ export class CdpConnection {
112
114
  entry.reject(new CdpConnectionClosedError(why));
113
115
  this.inflight.delete(id);
114
116
  }
117
+ for (const waiter of Array.from(this.sessionDispatchWaiters)) {
118
+ waiter.reject(new CdpConnectionClosedError(why));
119
+ }
115
120
  }
116
121
  getSession(sessionId) {
117
122
  return this.sessions.get(sessionId);
118
123
  }
124
+ waitForSessionDispatch(sessionId, method, match) {
125
+ return new Promise((resolve, reject) => {
126
+ const waiter = {
127
+ sessionId,
128
+ method,
129
+ match,
130
+ resolve: () => {
131
+ this.sessionDispatchWaiters.delete(waiter);
132
+ resolve();
133
+ },
134
+ reject: (error) => {
135
+ this.sessionDispatchWaiters.delete(waiter);
136
+ reject(error);
137
+ },
138
+ };
139
+ this.sessionDispatchWaiters.add(waiter);
140
+ });
141
+ }
119
142
  async attachToTarget(targetId) {
120
143
  const { sessionId } = (await this.send("Target.attachToTarget", { targetId, flatten: true }));
121
144
  let session = this.sessions.get(sessionId);
@@ -159,10 +182,15 @@ export class CdpConnection {
159
182
  .params;
160
183
  for (const [id, entry] of this.inflight.entries()) {
161
184
  if (entry.sessionId === p.sessionId) {
162
- entry.reject(new Error("CDP session detached"));
185
+ entry.reject(new PageNotFoundError(`target closed before CDP response (sessionId=${p.sessionId}, targetId=${p.targetId})`));
163
186
  this.inflight.delete(id);
164
187
  }
165
188
  }
189
+ for (const waiter of Array.from(this.sessionDispatchWaiters)) {
190
+ if (waiter.sessionId === p.sessionId) {
191
+ waiter.reject(new PageNotFoundError(`target closed before CDP send (sessionId=${p.sessionId}, targetId=${p.targetId})`));
192
+ }
193
+ }
166
194
  this.sessions.delete(p.sessionId);
167
195
  this.sessionToTarget.delete(p.sessionId);
168
196
  }
@@ -183,6 +211,15 @@ export class CdpConnection {
183
211
  if (sessionId) {
184
212
  const session = this.sessions.get(sessionId);
185
213
  session?.dispatch(method, params);
214
+ // Forward target lifecycle events to root listeners as well.
215
+ // Some browsers emit these via a parent session rather than the root
216
+ // connection; fan-out keeps target tracking consistent.
217
+ if (method.startsWith("Target.")) {
218
+ const handlers = this.eventHandlers.get(method);
219
+ if (handlers)
220
+ for (const h of handlers)
221
+ h(params);
222
+ }
186
223
  }
187
224
  else {
188
225
  const handlers = this.eventHandlers.get(method);
@@ -211,6 +248,16 @@ export class CdpConnection {
211
248
  void p.catch(() => { });
212
249
  const targetId = this.sessionToTarget.get(sessionId) ?? null;
213
250
  this.cdpLogger?.({ method, params, targetId });
251
+ for (const waiter of Array.from(this.sessionDispatchWaiters)) {
252
+ if (waiter.sessionId !== sessionId)
253
+ continue;
254
+ if (waiter.method !== method)
255
+ continue;
256
+ if (waiter.match && !waiter.match(params))
257
+ continue;
258
+ waiter.resolve();
259
+ break;
260
+ }
214
261
  this.ws.send(JSON.stringify(payload));
215
262
  return p;
216
263
  }