@browserbasehq/orca 3.6.0-gemini-cua → 3.7.1-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/AgentClient.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/AgentClient.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/AnthropicCUAClient.d.ts +4 -3
- package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +11 -9
- package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.d.ts +12 -3
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.js +107 -22
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.js.map +1 -1
- package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js +2 -2
- package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js.map +1 -1
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.d.ts +6 -3
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.js +13 -7
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.js.map +1 -1
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.d.ts +1 -0
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +43 -3
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
- package/dist/cjs/lib/v3/api.js +9 -0
- 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/v3AgentHandler.js +35 -11
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -1
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +32 -18
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
- package/dist/cjs/lib/v3/index.d.ts +2 -1
- package/dist/cjs/lib/v3/llm/LLMProvider.d.ts +2 -2
- 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 +10 -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/context.d.ts +7 -0
- package/dist/cjs/lib/v3/types/public/context.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/sdkErrors.d.ts +4 -0
- package/dist/cjs/lib/v3/types/public/sdkErrors.js +9 -1
- package/dist/cjs/lib/v3/types/public/sdkErrors.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/cdp.d.ts +2 -0
- package/dist/cjs/lib/v3/understudy/cdp.js +26 -12
- package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -1
- package/dist/cjs/lib/v3/understudy/context.d.ts +13 -1
- package/dist/cjs/lib/v3/understudy/context.js +284 -1
- package/dist/cjs/lib/v3/understudy/context.js.map +1 -1
- package/dist/cjs/lib/v3/understudy/domainPolicy.d.ts +25 -0
- package/dist/cjs/lib/v3/understudy/domainPolicy.js +162 -0
- package/dist/cjs/lib/v3/understudy/domainPolicy.js.map +1 -0
- package/dist/cjs/lib/v3/v3.js +43 -4
- 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/AgentClient.d.ts +2 -2
- package/dist/esm/lib/v3/agent/AgentClient.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/AnthropicCUAClient.d.ts +4 -3
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +11 -9
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/GoogleCUAClient.d.ts +12 -3
- package/dist/esm/lib/v3/agent/GoogleCUAClient.js +107 -22
- package/dist/esm/lib/v3/agent/GoogleCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.d.ts +2 -2
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +2 -2
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/OpenAICUAClient.d.ts +6 -3
- package/dist/esm/lib/v3/agent/OpenAICUAClient.js +13 -7
- package/dist/esm/lib/v3/agent/OpenAICUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.d.ts +1 -0
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +42 -3
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
- package/dist/esm/lib/v3/api.js +9 -0
- 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/v3AgentHandler.js +35 -11
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +32 -18
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/index.d.ts +2 -1
- package/dist/esm/lib/v3/llm/LLMProvider.d.ts +2 -2
- 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 +10 -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/context.d.ts +7 -0
- package/dist/esm/lib/v3/types/public/context.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/sdkErrors.d.ts +4 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.js +7 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.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/cdp.d.ts +2 -0
- package/dist/esm/lib/v3/understudy/cdp.js +26 -12
- package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
- package/dist/esm/lib/v3/understudy/context.d.ts +13 -1
- package/dist/esm/lib/v3/understudy/context.js +285 -2
- package/dist/esm/lib/v3/understudy/context.js.map +1 -1
- package/dist/esm/lib/v3/understudy/domainPolicy.d.ts +25 -0
- package/dist/esm/lib/v3/understudy/domainPolicy.js +158 -0
- package/dist/esm/lib/v3/understudy/domainPolicy.js.map +1 -0
- package/dist/esm/lib/v3/v3.js +44 -5
- 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 +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domainPolicy.js","sourceRoot":"","sources":["../../../../../lib/v3/understudy/domainPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Protocol } from \"devtools-protocol\";\nimport { StagehandInvalidArgumentError } from \"../types/public/sdkErrors.js\";\nimport type { DomainPolicy } from \"../types/public/context.js\";\n\ntype DomainRule =\n | { type: \"exact\"; hostname: string }\n | { type: \"wildcard\"; hostname: string };\n\nexport type NormalizedDomainPolicy = {\n allowedDomains: string[];\n blockedDomains: string[];\n allowedDomainRules: DomainRule[];\n blockedDomainRules: DomainRule[];\n fetchPatterns: Protocol.Fetch.RequestPattern[];\n};\n\nexport type DomainPolicyDecision =\n | { action: \"continue\" }\n | { action: \"block\"; reason: \"allowedDomains\" | \"blockedDomains\" };\n\nconst DOMAIN_LABEL_RE = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;\nconst HTTP_SCHEMES = [\"http\", \"https\"] as const;\ntype DomainPolicyKey = \"allowedDomains\" | \"blockedDomains\";\n\nfunction canonicalizeHostname(hostname: string): string {\n return hostname.toLowerCase().replace(/\\.+$/, \"\");\n}\n\nfunction validateHostname(\n hostname: string,\n original: string,\n kind: \"allowedDomains\" | \"blockedDomains\",\n): void {\n const label = kind === \"allowedDomains\" ? \"allowed\" : \"blocked\";\n\n if (!hostname || hostname.length > 253) {\n throw new StagehandInvalidArgumentError(\n `Invalid ${label} domain pattern: \"${original}\"`,\n );\n }\n\n const labels = hostname.split(\".\");\n if (\n labels.length < 2 ||\n labels.some((label) => !DOMAIN_LABEL_RE.test(label))\n ) {\n throw new StagehandInvalidArgumentError(\n `Invalid ${label} domain pattern: \"${original}\"`,\n );\n }\n}\n\nfunction normalizeDomainPattern(\n pattern: unknown,\n kind: \"allowedDomains\" | \"blockedDomains\",\n): DomainRule {\n const label = kind === \"allowedDomains\" ? \"allowed\" : \"blocked\";\n const capitalizedLabel = kind === \"allowedDomains\" ? \"Allowed\" : \"Blocked\";\n\n if (typeof pattern !== \"string\") {\n throw new StagehandInvalidArgumentError(\n `${capitalizedLabel} domain patterns must be strings`,\n );\n }\n\n const original = pattern;\n const normalized = canonicalizeHostname(pattern.trim());\n\n if (!normalized) {\n throw new StagehandInvalidArgumentError(\n `Invalid ${label} domain pattern: \"${original}\"`,\n );\n }\n\n if (\n normalized.includes(\"://\") ||\n normalized.includes(\"/\") ||\n normalized.includes(\":\") ||\n normalized.includes(\"?\") ||\n normalized.includes(\"#\")\n ) {\n throw new StagehandInvalidArgumentError(\n `${capitalizedLabel} domain patterns must be domain-only values: \"${original}\"`,\n );\n }\n\n if (normalized.startsWith(\"*.\")) {\n const hostname = normalized.slice(2);\n validateHostname(hostname, original, kind);\n return { type: \"wildcard\", hostname };\n }\n\n if (normalized.includes(\"*\")) {\n throw new StagehandInvalidArgumentError(\n `Wildcards are only supported as a leading \"*.\": \"${original}\"`,\n );\n }\n\n validateHostname(normalized, original, kind);\n return { type: \"exact\", hostname: normalized };\n}\n\nfunction normalizeDomainPatterns(\n patterns: unknown[] | undefined,\n kind: DomainPolicyKey,\n): DomainRule[] {\n if (!patterns?.length) return [];\n\n const rulesByKey = new Map<string, DomainRule>();\n for (const pattern of patterns) {\n const rule = normalizeDomainPattern(pattern, kind);\n rulesByKey.set(`${rule.type}:${rule.hostname}`, rule);\n }\n\n return Array.from(rulesByKey.values());\n}\n\nfunction getDomainPatterns(\n policy: DomainPolicy | null | undefined,\n key: DomainPolicyKey,\n): string[] {\n if (policy === null) return [];\n\n // Passing undefined usually means the caller accidentally omitted the policy\n // argument or passed through an unset variable. Clearing must be explicit.\n if (policy === undefined) {\n throw new StagehandInvalidArgumentError(\n \"Domain policy must be an object or null\",\n );\n }\n\n const patterns = policy[key];\n if (patterns === undefined) return [];\n\n // Empty arrays intentionally clear that side of the policy, but malformed\n // runtime values should fail fast rather than silently disabling interception.\n if (!Array.isArray(patterns)) {\n throw new StagehandInvalidArgumentError(\n `${key} must be an array of strings`,\n );\n }\n\n return patterns;\n}\n\nfunction patternHost(rule: DomainRule): string {\n return rule.type === \"wildcard\" ? `*.${rule.hostname}` : rule.hostname;\n}\n\nfunction fetchPatternHosts(rule: DomainRule): string[] {\n const host = patternHost(rule);\n return [host, `${host}.`];\n}\n\nfunction toBlocklistFetchPatterns(\n rules: DomainRule[],\n): Protocol.Fetch.RequestPattern[] {\n const patterns: Protocol.Fetch.RequestPattern[] = [];\n\n for (const rule of rules) {\n for (const host of fetchPatternHosts(rule)) {\n for (const scheme of HTTP_SCHEMES) {\n patterns.push({\n urlPattern: `${scheme}://${host}/*`,\n requestStage: \"Request\",\n });\n patterns.push({\n urlPattern: `${scheme}://${host}:*/*`,\n requestStage: \"Request\",\n });\n }\n }\n }\n\n return patterns;\n}\n\nfunction toAllowlistFetchPatterns(): Protocol.Fetch.RequestPattern[] {\n return HTTP_SCHEMES.map((scheme) => ({\n urlPattern: `${scheme}://*/*`,\n requestStage: \"Request\",\n }));\n}\n\nexport function normalizeDomainPolicy(\n policy: DomainPolicy | null | undefined,\n): NormalizedDomainPolicy | null {\n const allowedDomains = getDomainPatterns(policy, \"allowedDomains\");\n const blockedDomains = getDomainPatterns(policy, \"blockedDomains\");\n\n if (!allowedDomains.length && !blockedDomains.length) return null;\n\n const allowedDomainRules = normalizeDomainPatterns(\n allowedDomains,\n \"allowedDomains\",\n );\n const blockedDomainRules = normalizeDomainPatterns(\n blockedDomains,\n \"blockedDomains\",\n );\n\n return {\n allowedDomains: allowedDomainRules.map(patternHost),\n blockedDomains: blockedDomainRules.map(patternHost),\n allowedDomainRules,\n blockedDomainRules,\n fetchPatterns: allowedDomainRules.length\n ? toAllowlistFetchPatterns()\n : toBlocklistFetchPatterns(blockedDomainRules),\n };\n}\n\nfunction hostnameFromHttpUrl(url: string): string | null {\n try {\n const parsed = new URL(url);\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n return null;\n }\n return canonicalizeHostname(parsed.hostname);\n } catch {\n return null;\n }\n}\n\nfunction matchesDomainRules(hostname: string, rules: DomainRule[]): boolean {\n return rules.some((rule) => {\n if (rule.type === \"exact\") {\n return hostname === rule.hostname;\n }\n return hostname.endsWith(`.${rule.hostname}`);\n });\n}\n\nexport function getDomainPolicyDecision(\n url: string,\n policy: NormalizedDomainPolicy | null,\n): DomainPolicyDecision {\n if (!policy) return { action: \"continue\" };\n\n const hostname = hostnameFromHttpUrl(url);\n if (!hostname) return { action: \"continue\" };\n\n if (matchesDomainRules(hostname, policy.blockedDomainRules)) {\n return { action: \"block\", reason: \"blockedDomains\" };\n }\n\n if (\n policy.allowedDomainRules.length &&\n !matchesDomainRules(hostname, policy.allowedDomainRules)\n ) {\n return { action: \"block\", reason: \"allowedDomains\" };\n }\n\n return { action: \"continue\" };\n}\n"]}
|
package/dist/esm/lib/v3/v3.js
CHANGED
|
@@ -60,7 +60,7 @@ import { resolveTools } from "./mcp/utils.js";
|
|
|
60
60
|
import { HYBRID_CAPABLE_MODEL_PATTERNS } from "./types/private/agent.js";
|
|
61
61
|
import { AVAILABLE_CUA_MODELS, defaultExtractSchema, V3FunctionName, CuaModelRequiredError, StagehandInvalidArgumentError, StagehandNotInitializedError, MissingEnvironmentVariableError, StagehandInitError, } from "./types/public/index.js";
|
|
62
62
|
import { V3Context } from "./understudy/context.js";
|
|
63
|
-
import { resolveModel } from "../modelUtils.js";
|
|
63
|
+
import { AUTO_MODEL_NAME, isAutoModel, resolveModel } from "../modelUtils.js";
|
|
64
64
|
import { StagehandAPIClient } from "./api.js";
|
|
65
65
|
import { validateExperimentalFeatures } from "./agent/utils/validateExperimentalFeatures.js";
|
|
66
66
|
import { flattenVariables } from "./agent/utils/variables.js";
|
|
@@ -69,6 +69,7 @@ import { EventEmitterWithWildcardSupport } from "./flowlogger/EventEmitter.js";
|
|
|
69
69
|
import { EventStore } from "./flowlogger/EventStore.js";
|
|
70
70
|
import { createTimeoutGuard } from "./handlers/handlerUtils/timeoutGuard.js";
|
|
71
71
|
import { ActTimeoutError } from "./types/public/sdkErrors.js";
|
|
72
|
+
const AUTO_MODEL_API_ONLY_MESSAGE = `model: "${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.`;
|
|
72
73
|
const DEFAULT_MODEL_NAME = "openai/gpt-4.1-mini";
|
|
73
74
|
const DEFAULT_VIEWPORT = { width: 1288, height: 711 };
|
|
74
75
|
const DEFAULT_AGENT_TOOL_TIMEOUT_MS = 45000;
|
|
@@ -310,7 +311,18 @@ let V3 = (() => {
|
|
|
310
311
|
const baseClientOptions = clientOptions
|
|
311
312
|
? { ...clientOptions }
|
|
312
313
|
: {};
|
|
313
|
-
if (
|
|
314
|
+
if (isAutoModel(this.modelName)) {
|
|
315
|
+
if (opts.llmClient ||
|
|
316
|
+
opts.env !== "BROWSERBASE" ||
|
|
317
|
+
this.disableAPI ||
|
|
318
|
+
this.experimental) {
|
|
319
|
+
throw new StagehandInvalidArgumentError(AUTO_MODEL_API_ONLY_MESSAGE);
|
|
320
|
+
}
|
|
321
|
+
// "auto" delegates model selection to the Stagehand API, so no local
|
|
322
|
+
// LLM client is created and no provider API key is required.
|
|
323
|
+
this.modelClientOptions = baseClientOptions;
|
|
324
|
+
}
|
|
325
|
+
else if (opts.llmClient) {
|
|
314
326
|
this.llmClient = opts.llmClient;
|
|
315
327
|
this.modelClientOptions = baseClientOptions;
|
|
316
328
|
this.disableAPI = true;
|
|
@@ -486,6 +498,15 @@ let V3 = (() => {
|
|
|
486
498
|
clientOptions = rest;
|
|
487
499
|
perCallMiddleware = middleware;
|
|
488
500
|
}
|
|
501
|
+
if (isAutoModel(modelName)) {
|
|
502
|
+
if (!this.apiClient) {
|
|
503
|
+
throw new StagehandInvalidArgumentError(AUTO_MODEL_API_ONLY_MESSAGE);
|
|
504
|
+
}
|
|
505
|
+
// The Stagehand API resolves "auto" server-side and intercepts every
|
|
506
|
+
// act/extract/observe, so the local client is never dereferenced here.
|
|
507
|
+
// Note it is undefined when the session's base model is also "auto".
|
|
508
|
+
return this.llmClient;
|
|
509
|
+
}
|
|
489
510
|
if (modelName === this.modelName &&
|
|
490
511
|
!perCallMiddleware &&
|
|
491
512
|
(!clientOptions || Object.keys(clientOptions).length === 0)) {
|
|
@@ -842,6 +863,16 @@ let V3 = (() => {
|
|
|
842
863
|
browserbaseSessionID: this.opts.browserbaseSessionID,
|
|
843
864
|
});
|
|
844
865
|
if (!available) {
|
|
866
|
+
if (isAutoModel(this.modelName)) {
|
|
867
|
+
// "auto" has no local fallback; end the just-created session
|
|
868
|
+
// best-effort before surfacing the error. Never end a
|
|
869
|
+
// caller-supplied (resumed) session we didn't create.
|
|
870
|
+
if (!this.opts.browserbaseSessionID) {
|
|
871
|
+
await this.apiClient.end().catch(() => { });
|
|
872
|
+
}
|
|
873
|
+
this.apiClient = null;
|
|
874
|
+
throw new StagehandInitError(`model: "${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.`);
|
|
875
|
+
}
|
|
845
876
|
this.apiClient = null;
|
|
846
877
|
}
|
|
847
878
|
this.opts.browserbaseSessionID = sessionId;
|
|
@@ -994,7 +1025,10 @@ let V3 = (() => {
|
|
|
994
1025
|
let actCacheContext = null;
|
|
995
1026
|
const canUseCache = typeof input === "string" &&
|
|
996
1027
|
!this.isAgentReplayRecording() &&
|
|
997
|
-
this.actCache.enabled
|
|
1028
|
+
this.actCache.enabled &&
|
|
1029
|
+
// "auto" sessions have no local LLM client for replay self-heal;
|
|
1030
|
+
// rely on the API (and its server-side cache) instead.
|
|
1031
|
+
!isAutoModel(this.modelName);
|
|
998
1032
|
if (canUseCache) {
|
|
999
1033
|
actCacheContext = await this.actCache.prepareContext(input, page, flattenVariables(options?.variables));
|
|
1000
1034
|
if (actCacheContext) {
|
|
@@ -1478,14 +1512,19 @@ let V3 = (() => {
|
|
|
1478
1512
|
cua: { value: isCuaMode ? "true" : "false", type: "boolean" },
|
|
1479
1513
|
mode: { value: loggedMode, type: "string" },
|
|
1480
1514
|
model: {
|
|
1481
|
-
value: extractModelName(options?.model) ??
|
|
1515
|
+
value: extractModelName(options?.model) ??
|
|
1516
|
+
this.llmClient?.modelName ??
|
|
1517
|
+
this.modelName,
|
|
1482
1518
|
type: "string",
|
|
1483
1519
|
},
|
|
1484
1520
|
systemPrompt: { value: options?.systemPrompt ?? "", type: "string" },
|
|
1485
1521
|
tools: { value: JSON.stringify(options?.tools ?? {}), type: "object" },
|
|
1486
1522
|
...(options?.integrations && {
|
|
1487
1523
|
integrations: {
|
|
1488
|
-
|
|
1524
|
+
// Integrations may contain live MCP `Client` instances (from
|
|
1525
|
+
// connectToMCPServer), which are circular and throw in JSON.stringify.
|
|
1526
|
+
// Log a safe descriptor instead: keep URL strings, summarize clients.
|
|
1527
|
+
value: JSON.stringify(options.integrations.map((integration) => typeof integration === "string" ? integration : "[mcp client]")),
|
|
1489
1528
|
type: "object",
|
|
1490
1529
|
},
|
|
1491
1530
|
}),
|