@browserbasehq/orca 3.7.0-preview.1 → 3.7.2-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/lib/modelUtils.d.ts +10 -0
- package/dist/cjs/lib/modelUtils.js +11 -0
- package/dist/cjs/lib/modelUtils.js.map +1 -1
- package/dist/cjs/lib/v3/agent/AgentProvider.js +3 -0
- package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/click.js +15 -4
- package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.js +12 -4
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/type.js +12 -3
- package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -1
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +3 -1
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
- package/dist/cjs/lib/v3/api.d.ts +1 -1
- package/dist/cjs/lib/v3/api.js +11 -1
- package/dist/cjs/lib/v3/api.js.map +1 -1
- package/dist/cjs/lib/v3/cache/AgentCache.js +6 -1
- package/dist/cjs/lib/v3/cache/AgentCache.js.map +1 -1
- package/dist/cjs/lib/v3/external_clients/aisdk.js +2 -0
- package/dist/cjs/lib/v3/external_clients/aisdk.js.map +1 -1
- package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js +20 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +5 -4
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -1
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +32 -0
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
- package/dist/cjs/lib/v3/index.d.ts +1 -1
- package/dist/cjs/lib/v3/llm/LLMProvider.js +9 -2
- package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -1
- package/dist/cjs/lib/v3/llm/aisdk.js +2 -0
- package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
- package/dist/cjs/lib/v3/llm/providerOptions.d.ts +7 -0
- package/dist/cjs/lib/v3/llm/providerOptions.js +9 -0
- package/dist/cjs/lib/v3/llm/providerOptions.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/agent.d.ts +1 -1
- package/dist/cjs/lib/v3/types/private/agent.js +1 -0
- package/dist/cjs/lib/v3/types/private/agent.js.map +1 -1
- package/dist/cjs/lib/v3/types/public/agent.d.ts +1 -1
- package/dist/cjs/lib/v3/types/public/agent.js +3 -0
- package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
- package/dist/cjs/lib/v3/types/public/api.d.ts +53 -0
- package/dist/cjs/lib/v3/types/public/api.js +8 -0
- package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
- package/dist/cjs/lib/v3/types/public/model.d.ts +7 -0
- package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
- package/dist/cjs/lib/v3/types/public/options.d.ts +13 -0
- package/dist/cjs/lib/v3/types/public/options.js.map +1 -1
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js +4 -3
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -1
- package/dist/cjs/lib/v3/understudy/locator.d.ts +12 -0
- package/dist/cjs/lib/v3/understudy/locator.js +44 -0
- package/dist/cjs/lib/v3/understudy/locator.js.map +1 -1
- package/dist/cjs/lib/v3/understudy/page.d.ts +15 -0
- package/dist/cjs/lib/v3/understudy/page.js +50 -0
- package/dist/cjs/lib/v3/understudy/page.js.map +1 -1
- package/dist/cjs/lib/v3/v3.d.ts +8 -0
- package/dist/cjs/lib/v3/v3.js +50 -3
- package/dist/cjs/lib/v3/v3.js.map +1 -1
- package/dist/cjs/lib/v3/verifier/types.d.ts +3 -2
- package/dist/cjs/lib/v3/verifier/types.js.map +1 -1
- package/dist/cjs/lib/version.d.ts +1 -1
- package/dist/cjs/lib/version.js +1 -1
- package/dist/cjs/lib/version.js.map +1 -1
- package/dist/esm/lib/modelUtils.d.ts +10 -0
- package/dist/esm/lib/modelUtils.js +9 -0
- package/dist/esm/lib/modelUtils.js.map +1 -1
- package/dist/esm/lib/v3/agent/AgentProvider.js +3 -0
- package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/click.js +15 -4
- package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js +12 -4
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/type.js +12 -3
- package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +3 -1
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
- package/dist/esm/lib/v3/api.d.ts +1 -1
- package/dist/esm/lib/v3/api.js +11 -1
- package/dist/esm/lib/v3/api.js.map +1 -1
- package/dist/esm/lib/v3/cache/AgentCache.js +6 -1
- package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -1
- package/dist/esm/lib/v3/external_clients/aisdk.js +2 -0
- package/dist/esm/lib/v3/external_clients/aisdk.js.map +1 -1
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +20 -0
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js +5 -4
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +32 -0
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/index.d.ts +1 -1
- package/dist/esm/lib/v3/llm/LLMProvider.js +9 -2
- package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
- package/dist/esm/lib/v3/llm/aisdk.js +2 -0
- package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
- package/dist/esm/lib/v3/llm/providerOptions.d.ts +7 -0
- package/dist/esm/lib/v3/llm/providerOptions.js +6 -0
- package/dist/esm/lib/v3/llm/providerOptions.js.map +1 -0
- package/dist/esm/lib/v3/types/private/agent.d.ts +1 -1
- package/dist/esm/lib/v3/types/private/agent.js +1 -0
- package/dist/esm/lib/v3/types/private/agent.js.map +1 -1
- package/dist/esm/lib/v3/types/public/agent.d.ts +1 -1
- package/dist/esm/lib/v3/types/public/agent.js +3 -0
- package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
- package/dist/esm/lib/v3/types/public/api.d.ts +53 -0
- package/dist/esm/lib/v3/types/public/api.js +8 -0
- package/dist/esm/lib/v3/types/public/api.js.map +1 -1
- package/dist/esm/lib/v3/types/public/model.d.ts +7 -0
- package/dist/esm/lib/v3/types/public/model.js.map +1 -1
- package/dist/esm/lib/v3/types/public/options.d.ts +13 -0
- package/dist/esm/lib/v3/types/public/options.js.map +1 -1
- package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.js +4 -3
- package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -1
- package/dist/esm/lib/v3/understudy/locator.d.ts +12 -0
- package/dist/esm/lib/v3/understudy/locator.js +44 -0
- package/dist/esm/lib/v3/understudy/locator.js.map +1 -1
- package/dist/esm/lib/v3/understudy/page.d.ts +15 -0
- package/dist/esm/lib/v3/understudy/page.js +50 -0
- package/dist/esm/lib/v3/understudy/page.js.map +1 -1
- package/dist/esm/lib/v3/v3.d.ts +8 -0
- package/dist/esm/lib/v3/v3.js +51 -4
- package/dist/esm/lib/v3/v3.js.map +1 -1
- package/dist/esm/lib/v3/verifier/types.d.ts +3 -2
- package/dist/esm/lib/v3/verifier/types.js.map +1 -1
- package/dist/esm/lib/version.d.ts +1 -1
- package/dist/esm/lib/version.js +1 -1
- package/dist/esm/lib/version.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/lib/v3/v3.d.ts
CHANGED
|
@@ -73,6 +73,14 @@ export declare class V3 {
|
|
|
73
73
|
* @deprecated Use `isVerified` instead. This alias will be removed in a future version.
|
|
74
74
|
*/
|
|
75
75
|
get isAdvancedStealth(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Whether coordinate pointer actions should actuate as touch instead of mouse.
|
|
78
|
+
*
|
|
79
|
+
* Explicit opt-in via the `useTouch` option — no session-derived or probed
|
|
80
|
+
* detection, so the answer is known before the first action, is stable for the
|
|
81
|
+
* whole run, and never surprises a caller who didn't ask for touch.
|
|
82
|
+
*/
|
|
83
|
+
get usesTouch(): boolean;
|
|
76
84
|
/**
|
|
77
85
|
* Returns the configured viewport dimensions from launch options.
|
|
78
86
|
* Falls back to default 1288x711 if not configured.
|
package/dist/cjs/lib/v3/v3.js
CHANGED
|
@@ -109,6 +109,7 @@ const EventEmitter_js_1 = require("./flowlogger/EventEmitter.js");
|
|
|
109
109
|
const EventStore_js_1 = require("./flowlogger/EventStore.js");
|
|
110
110
|
const timeoutGuard_js_1 = require("./handlers/handlerUtils/timeoutGuard.js");
|
|
111
111
|
const sdkErrors_js_1 = require("./types/public/sdkErrors.js");
|
|
112
|
+
const AUTO_MODEL_API_ONLY_MESSAGE = `model: "${modelUtils_js_2.AUTO_MODEL_NAME}" is only supported when running through the Stagehand API (env: "BROWSERBASE" with disableAPI: false and experimental: false). Specify a concrete model (e.g. "openai/gpt-5") instead.`;
|
|
112
113
|
const DEFAULT_MODEL_NAME = "openai/gpt-4.1-mini";
|
|
113
114
|
const DEFAULT_VIEWPORT = { width: 1288, height: 711 };
|
|
114
115
|
const DEFAULT_AGENT_TOOL_TIMEOUT_MS = 45000;
|
|
@@ -230,6 +231,16 @@ let V3 = (() => {
|
|
|
230
231
|
get isAdvancedStealth() {
|
|
231
232
|
return this.isVerified;
|
|
232
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Whether coordinate pointer actions should actuate as touch instead of mouse.
|
|
236
|
+
*
|
|
237
|
+
* Explicit opt-in via the `useTouch` option — no session-derived or probed
|
|
238
|
+
* detection, so the answer is known before the first action, is stable for the
|
|
239
|
+
* whole run, and never surprises a caller who didn't ask for touch.
|
|
240
|
+
*/
|
|
241
|
+
get usesTouch() {
|
|
242
|
+
return this.opts.useTouch === true;
|
|
243
|
+
}
|
|
233
244
|
/**
|
|
234
245
|
* Returns the configured viewport dimensions from launch options.
|
|
235
246
|
* Falls back to default 1288x711 if not configured.
|
|
@@ -350,7 +361,18 @@ let V3 = (() => {
|
|
|
350
361
|
const baseClientOptions = clientOptions
|
|
351
362
|
? { ...clientOptions }
|
|
352
363
|
: {};
|
|
353
|
-
if (
|
|
364
|
+
if ((0, modelUtils_js_2.isAutoModel)(this.modelName)) {
|
|
365
|
+
if (opts.llmClient ||
|
|
366
|
+
opts.env !== "BROWSERBASE" ||
|
|
367
|
+
this.disableAPI ||
|
|
368
|
+
this.experimental) {
|
|
369
|
+
throw new index_js_1.StagehandInvalidArgumentError(AUTO_MODEL_API_ONLY_MESSAGE);
|
|
370
|
+
}
|
|
371
|
+
// "auto" delegates model selection to the Stagehand API, so no local
|
|
372
|
+
// LLM client is created and no provider API key is required.
|
|
373
|
+
this.modelClientOptions = baseClientOptions;
|
|
374
|
+
}
|
|
375
|
+
else if (opts.llmClient) {
|
|
354
376
|
this.llmClient = opts.llmClient;
|
|
355
377
|
this.modelClientOptions = baseClientOptions;
|
|
356
378
|
this.disableAPI = true;
|
|
@@ -526,6 +548,15 @@ let V3 = (() => {
|
|
|
526
548
|
clientOptions = rest;
|
|
527
549
|
perCallMiddleware = middleware;
|
|
528
550
|
}
|
|
551
|
+
if ((0, modelUtils_js_2.isAutoModel)(modelName)) {
|
|
552
|
+
if (!this.apiClient) {
|
|
553
|
+
throw new index_js_1.StagehandInvalidArgumentError(AUTO_MODEL_API_ONLY_MESSAGE);
|
|
554
|
+
}
|
|
555
|
+
// The Stagehand API resolves "auto" server-side and intercepts every
|
|
556
|
+
// act/extract/observe, so the local client is never dereferenced here.
|
|
557
|
+
// Note it is undefined when the session's base model is also "auto".
|
|
558
|
+
return this.llmClient;
|
|
559
|
+
}
|
|
529
560
|
if (modelName === this.modelName &&
|
|
530
561
|
!perCallMiddleware &&
|
|
531
562
|
(!clientOptions || Object.keys(clientOptions).length === 0)) {
|
|
@@ -878,10 +909,21 @@ let V3 = (() => {
|
|
|
878
909
|
verbose: this.verbose,
|
|
879
910
|
systemPrompt: this.opts.systemPrompt,
|
|
880
911
|
selfHeal: this.opts.selfHeal,
|
|
912
|
+
useTouch: this.opts.useTouch,
|
|
881
913
|
browserbaseSessionCreateParams: createSessionPayload,
|
|
882
914
|
browserbaseSessionID: this.opts.browserbaseSessionID,
|
|
883
915
|
});
|
|
884
916
|
if (!available) {
|
|
917
|
+
if ((0, modelUtils_js_2.isAutoModel)(this.modelName)) {
|
|
918
|
+
// "auto" has no local fallback; end the just-created session
|
|
919
|
+
// best-effort before surfacing the error. Never end a
|
|
920
|
+
// caller-supplied (resumed) session we didn't create.
|
|
921
|
+
if (!this.opts.browserbaseSessionID) {
|
|
922
|
+
await this.apiClient.end().catch(() => { });
|
|
923
|
+
}
|
|
924
|
+
this.apiClient = null;
|
|
925
|
+
throw new index_js_1.StagehandInitError(`model: "${modelUtils_js_2.AUTO_MODEL_NAME}" requires the Stagehand API, but it is unavailable for this session (sessionId: ${sessionId}). Specify a concrete model (e.g. "openai/gpt-5") instead.`);
|
|
926
|
+
}
|
|
885
927
|
this.apiClient = null;
|
|
886
928
|
}
|
|
887
929
|
this.opts.browserbaseSessionID = sessionId;
|
|
@@ -1034,7 +1076,10 @@ let V3 = (() => {
|
|
|
1034
1076
|
let actCacheContext = null;
|
|
1035
1077
|
const canUseCache = typeof input === "string" &&
|
|
1036
1078
|
!this.isAgentReplayRecording() &&
|
|
1037
|
-
this.actCache.enabled
|
|
1079
|
+
this.actCache.enabled &&
|
|
1080
|
+
// "auto" sessions have no local LLM client for replay self-heal;
|
|
1081
|
+
// rely on the API (and its server-side cache) instead.
|
|
1082
|
+
!(0, modelUtils_js_2.isAutoModel)(this.modelName);
|
|
1038
1083
|
if (canUseCache) {
|
|
1039
1084
|
actCacheContext = await this.actCache.prepareContext(input, page, (0, variables_js_1.flattenVariables)(options?.variables));
|
|
1040
1085
|
if (actCacheContext) {
|
|
@@ -1518,7 +1563,9 @@ let V3 = (() => {
|
|
|
1518
1563
|
cua: { value: isCuaMode ? "true" : "false", type: "boolean" },
|
|
1519
1564
|
mode: { value: loggedMode, type: "string" },
|
|
1520
1565
|
model: {
|
|
1521
|
-
value: (0, modelUtils_js_1.extractModelName)(options?.model) ??
|
|
1566
|
+
value: (0, modelUtils_js_1.extractModelName)(options?.model) ??
|
|
1567
|
+
this.llmClient?.modelName ??
|
|
1568
|
+
this.modelName,
|
|
1522
1569
|
type: "string",
|
|
1523
1570
|
},
|
|
1524
1571
|
systemPrompt: { value: options?.systemPrompt ?? "", type: "string" },
|