@browserbasehq/orca 3.2.0-preview.2 → 3.2.0-preview.4
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/v3/agent/AnthropicCUAClient.js +5 -5
- package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.js +5 -5
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.js.map +1 -1
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.js +5 -5
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/act.js +1 -10
- package/dist/cjs/lib/v3/agent/tools/act.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/ariaTree.js +1 -12
- package/dist/cjs/lib/v3/agent/tools/ariaTree.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/braveSearch.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/browserbaseSearch.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/clickAndHold.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/extract.js +1 -10
- package/dist/cjs/lib/v3/agent/tools/extract.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/fillform.js +1 -10
- package/dist/cjs/lib/v3/agent/tools/fillform.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/index.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/index.js +53 -5
- package/dist/cjs/lib/v3/agent/tools/index.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/keys.d.ts +1 -1
- package/dist/cjs/lib/v3/agent/tools/keys.js.map +1 -1
- package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -1
- package/dist/cjs/lib/v3/api.js +9 -2
- package/dist/cjs/lib/v3/api.js.map +1 -1
- package/dist/cjs/lib/v3/flowlogger/EventEmitter.d.ts +7 -0
- package/dist/cjs/lib/v3/flowlogger/EventEmitter.js +30 -0
- package/dist/cjs/lib/v3/flowlogger/EventEmitter.js.map +1 -0
- package/dist/cjs/lib/v3/flowlogger/EventSink.d.ts +44 -0
- package/dist/cjs/lib/v3/flowlogger/EventSink.js +217 -0
- package/dist/cjs/lib/v3/flowlogger/EventSink.js.map +1 -0
- package/dist/cjs/lib/v3/flowlogger/EventStore.d.ts +26 -0
- package/dist/cjs/lib/v3/flowlogger/EventStore.js +135 -0
- package/dist/cjs/lib/v3/flowlogger/EventStore.js.map +1 -0
- package/dist/{esm/lib/v3/flowLogger.d.ts → cjs/lib/v3/flowlogger/FlowLogger.d.ts} +32 -31
- package/dist/cjs/lib/v3/flowlogger/FlowLogger.js +591 -0
- package/dist/cjs/lib/v3/flowlogger/FlowLogger.js.map +1 -0
- package/dist/cjs/lib/v3/flowlogger/prettify.d.ts +6 -0
- package/dist/cjs/lib/v3/flowlogger/prettify.js +395 -0
- package/dist/cjs/lib/v3/flowlogger/prettify.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js +26 -28
- package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +2 -2
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -1
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +3 -5
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
- package/dist/cjs/lib/v3/llm/aisdk.js +9 -9
- package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
- package/dist/cjs/lib/v3/types/public/options.d.ts +2 -0
- package/dist/cjs/lib/v3/types/public/options.js.map +1 -1
- package/dist/cjs/lib/v3/understudy/cdp.d.ts +1 -1
- package/dist/cjs/lib/v3/understudy/cdp.js +83 -43
- package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -1
- package/dist/cjs/lib/v3/understudy/page.js +18 -23
- package/dist/cjs/lib/v3/understudy/page.js.map +1 -1
- package/dist/cjs/lib/v3/v3.d.ts +5 -5
- package/dist/cjs/lib/v3/v3.js +48 -46
- package/dist/cjs/lib/v3/v3.js.map +1 -1
- package/dist/cjs/tests/integration/flowLogger.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/flowLogger.spec.js +714 -0
- package/dist/cjs/tests/integration/flowLogger.spec.js.map +1 -0
- package/dist/cjs/tests/integration/testUtils.d.ts +33 -0
- package/dist/cjs/tests/integration/testUtils.js +144 -0
- package/dist/cjs/tests/integration/testUtils.js.map +1 -1
- package/dist/cjs/tests/integration/timeouts.spec.js +112 -2
- package/dist/cjs/tests/integration/timeouts.spec.js.map +1 -1
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +1 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +95 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +1 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +1 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +43 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +1 -0
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +1 -0
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +250 -0
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +1 -0
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +1 -1
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/GoogleCUAClient.js +1 -1
- package/dist/esm/lib/v3/agent/GoogleCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/OpenAICUAClient.js +1 -1
- package/dist/esm/lib/v3/agent/OpenAICUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/act.js +1 -10
- package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/ariaTree.js +1 -12
- package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/braveSearch.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/browserbaseSearch.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/clickAndHold.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/extract.js +1 -10
- package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/fillform.js +1 -10
- package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/index.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/index.js +53 -5
- package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/keys.d.ts +1 -1
- package/dist/esm/lib/v3/agent/tools/keys.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
- package/dist/esm/lib/v3/api.js +9 -2
- package/dist/esm/lib/v3/api.js.map +1 -1
- package/dist/esm/lib/v3/flowlogger/EventEmitter.d.ts +7 -0
- package/dist/esm/lib/v3/flowlogger/EventEmitter.js +26 -0
- package/dist/esm/lib/v3/flowlogger/EventEmitter.js.map +1 -0
- package/dist/esm/lib/v3/flowlogger/EventSink.d.ts +44 -0
- package/dist/esm/lib/v3/flowlogger/EventSink.js +206 -0
- package/dist/esm/lib/v3/flowlogger/EventSink.js.map +1 -0
- package/dist/esm/lib/v3/flowlogger/EventStore.d.ts +26 -0
- package/dist/esm/lib/v3/flowlogger/EventStore.js +127 -0
- package/dist/esm/lib/v3/flowlogger/EventStore.js.map +1 -0
- package/dist/{cjs/lib/v3/flowLogger.d.ts → esm/lib/v3/flowlogger/FlowLogger.d.ts} +32 -31
- package/dist/esm/lib/v3/flowlogger/FlowLogger.js +583 -0
- package/dist/esm/lib/v3/flowlogger/FlowLogger.js.map +1 -0
- package/dist/esm/lib/v3/flowlogger/prettify.d.ts +6 -0
- package/dist/esm/lib/v3/flowlogger/prettify.js +389 -0
- package/dist/esm/lib/v3/flowlogger/prettify.js.map +1 -0
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +25 -27
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js +1 -1
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +2 -4
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/llm/aisdk.js +1 -1
- package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
- package/dist/esm/lib/v3/types/public/options.d.ts +2 -0
- package/dist/esm/lib/v3/types/public/options.js.map +1 -1
- package/dist/esm/lib/v3/understudy/cdp.d.ts +1 -1
- package/dist/esm/lib/v3/understudy/cdp.js +78 -38
- package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
- package/dist/esm/lib/v3/understudy/page.js +13 -18
- package/dist/esm/lib/v3/understudy/page.js.map +1 -1
- package/dist/esm/lib/v3/v3.d.ts +5 -5
- package/dist/esm/lib/v3/v3.js +43 -41
- package/dist/esm/lib/v3/v3.js.map +1 -1
- package/dist/esm/tests/integration/flowLogger.spec.d.ts +1 -0
- package/dist/esm/tests/integration/flowLogger.spec.js +712 -0
- package/dist/esm/tests/integration/flowLogger.spec.js.map +1 -0
- package/dist/esm/tests/integration/testUtils.d.ts +33 -0
- package/dist/esm/tests/integration/testUtils.js +138 -0
- package/dist/esm/tests/integration/testUtils.js.map +1 -1
- package/dist/esm/tests/integration/timeouts.spec.js +112 -2
- package/dist/esm/tests/integration/timeouts.spec.js.map +1 -1
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +1 -0
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +93 -0
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +1 -0
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +1 -0
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +41 -0
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +1 -0
- package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +1 -0
- package/dist/esm/tests/unit/flowlogger-eventstore.test.js +248 -0
- package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +1 -0
- package/package.json +3 -1
- package/dist/cjs/lib/v3/eventStore.d.ts +0 -41
- package/dist/cjs/lib/v3/eventStore.js +0 -375
- package/dist/cjs/lib/v3/eventStore.js.map +0 -1
- package/dist/cjs/lib/v3/flowLogger.js +0 -470
- package/dist/cjs/lib/v3/flowLogger.js.map +0 -1
- package/dist/esm/lib/v3/eventStore.d.ts +0 -41
- package/dist/esm/lib/v3/eventStore.js +0 -363
- package/dist/esm/lib/v3/eventStore.js.map +0 -1
- package/dist/esm/lib/v3/flowLogger.js +0 -462
- package/dist/esm/lib/v3/flowLogger.js.map +0 -1
package/dist/esm/lib/v3/v3.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { EventEmitter } from "events";
|
|
2
1
|
import { z } from "zod";
|
|
3
2
|
import { InferStagehandSchema, StagehandZodSchema } from "./zodCompat.js";
|
|
4
3
|
import { LLMClient } from "./llm/LLMClient.js";
|
|
5
4
|
import { AgentReplayStep } from "./types/private/index.js";
|
|
6
5
|
import { AgentConfig, AgentExecuteOptions, AgentStreamExecuteOptions, AgentResult, LogLine, StagehandMetrics, Action, ActOptions, ActResult, defaultExtractSchema, ExtractOptions, HistoryEntry, ObserveOptions, pageTextSchema, V3FunctionName, V3Options, AgentStreamResult } from "./types/public/index.js";
|
|
7
6
|
import { V3Context } from "./understudy/context.js";
|
|
8
|
-
import { type FlowLoggerContext } from "./
|
|
7
|
+
import { type FlowLoggerContext } from "./flowlogger/FlowLogger.js";
|
|
8
|
+
import { EventEmitterWithWildcardSupport } from "./flowlogger/EventEmitter.js";
|
|
9
|
+
import { EventStore } from "./flowlogger/EventStore.js";
|
|
9
10
|
/**
|
|
10
11
|
* V3
|
|
11
12
|
*
|
|
@@ -33,7 +34,7 @@ export declare class V3 {
|
|
|
33
34
|
* Event bus for internal communication.
|
|
34
35
|
* Emits events like 'screenshot' when screenshots are captured during agent execution.
|
|
35
36
|
*/
|
|
36
|
-
readonly bus:
|
|
37
|
+
readonly bus: EventEmitterWithWildcardSupport;
|
|
37
38
|
private modelName;
|
|
38
39
|
private modelClientOptions;
|
|
39
40
|
private llmProvider;
|
|
@@ -72,6 +73,7 @@ export declare class V3 {
|
|
|
72
73
|
private _history;
|
|
73
74
|
private readonly instanceId;
|
|
74
75
|
private readonly sessionId;
|
|
76
|
+
readonly eventStore: EventStore;
|
|
75
77
|
readonly flowLoggerContext: FlowLoggerContext;
|
|
76
78
|
private static _processGuardsInstalled;
|
|
77
79
|
private static _instances;
|
|
@@ -81,8 +83,6 @@ export declare class V3 {
|
|
|
81
83
|
private apiClient;
|
|
82
84
|
private keepAlive?;
|
|
83
85
|
private shutdownSupervisor;
|
|
84
|
-
private detachEventStoreListener;
|
|
85
|
-
private withLoggingContext;
|
|
86
86
|
stagehandMetrics: StagehandMetrics;
|
|
87
87
|
constructor(opts: V3Options);
|
|
88
88
|
/**
|
package/dist/esm/lib/v3/v3.js
CHANGED
|
@@ -32,7 +32,6 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
32
32
|
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
33
|
done = true;
|
|
34
34
|
};
|
|
35
|
-
import { EventEmitter } from "events";
|
|
36
35
|
import fs from "fs";
|
|
37
36
|
import os from "os";
|
|
38
37
|
import path from "path";
|
|
@@ -63,8 +62,9 @@ import { resolveModel } from "../modelUtils.js";
|
|
|
63
62
|
import { StagehandAPIClient } from "./api.js";
|
|
64
63
|
import { validateExperimentalFeatures } from "./agent/utils/validateExperimentalFeatures.js";
|
|
65
64
|
import { flattenVariables } from "./agent/utils/variables.js";
|
|
66
|
-
import { FlowLogger } from "./
|
|
67
|
-
import {
|
|
65
|
+
import { FlowLogger } from "./flowlogger/FlowLogger.js";
|
|
66
|
+
import { EventEmitterWithWildcardSupport } from "./flowlogger/EventEmitter.js";
|
|
67
|
+
import { EventStore } from "./flowlogger/EventStore.js";
|
|
68
68
|
import { createTimeoutGuard } from "./handlers/handlerUtils/timeoutGuard.js";
|
|
69
69
|
import { ActTimeoutError } from "./types/public/sdkErrors.js";
|
|
70
70
|
const DEFAULT_MODEL_NAME = "openai/gpt-4.1-mini";
|
|
@@ -114,15 +114,12 @@ let V3 = (() => {
|
|
|
114
114
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
115
115
|
_act_decorators = [FlowLogger.wrapWithLogging({
|
|
116
116
|
eventType: "StagehandAct",
|
|
117
|
-
eventIdSuffix: "4",
|
|
118
117
|
})];
|
|
119
118
|
_extract_decorators = [FlowLogger.wrapWithLogging({
|
|
120
119
|
eventType: "StagehandExtract",
|
|
121
|
-
eventIdSuffix: "4",
|
|
122
120
|
})];
|
|
123
121
|
_observe_decorators = [FlowLogger.wrapWithLogging({
|
|
124
122
|
eventType: "StagehandObserve",
|
|
125
|
-
eventIdSuffix: "4",
|
|
126
123
|
})];
|
|
127
124
|
__esDecorate(this, null, _act_decorators, { kind: "method", name: "act", static: false, private: false, access: { has: obj => "act" in obj, get: obj => obj.act }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
128
125
|
__esDecorate(this, null, _extract_decorators, { kind: "method", name: "extract", static: false, private: false, access: { has: obj => "extract" in obj, get: obj => obj.extract }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -140,7 +137,7 @@ let V3 = (() => {
|
|
|
140
137
|
* Event bus for internal communication.
|
|
141
138
|
* Emits events like 'screenshot' when screenshots are captured during agent execution.
|
|
142
139
|
*/
|
|
143
|
-
bus = new
|
|
140
|
+
bus = new EventEmitterWithWildcardSupport();
|
|
144
141
|
modelName;
|
|
145
142
|
modelClientOptions;
|
|
146
143
|
llmProvider;
|
|
@@ -209,6 +206,7 @@ let V3 = (() => {
|
|
|
209
206
|
_history = [];
|
|
210
207
|
instanceId;
|
|
211
208
|
sessionId;
|
|
209
|
+
eventStore;
|
|
212
210
|
flowLoggerContext;
|
|
213
211
|
static _processGuardsInstalled = false;
|
|
214
212
|
static _instances = new Set();
|
|
@@ -218,10 +216,6 @@ let V3 = (() => {
|
|
|
218
216
|
apiClient = null;
|
|
219
217
|
keepAlive;
|
|
220
218
|
shutdownSupervisor = null;
|
|
221
|
-
detachEventStoreListener = null;
|
|
222
|
-
withLoggingContext(fn) {
|
|
223
|
-
return withInstanceLogContext(this.instanceId, fn);
|
|
224
|
-
}
|
|
225
219
|
stagehandMetrics = {
|
|
226
220
|
actPromptTokens: 0,
|
|
227
221
|
actCompletionTokens: 0,
|
|
@@ -346,9 +340,21 @@ let V3 = (() => {
|
|
|
346
340
|
act: this.act.bind(this),
|
|
347
341
|
});
|
|
348
342
|
this.opts = opts;
|
|
349
|
-
|
|
343
|
+
// FlowLogger always gets a per-instance session context and shared event
|
|
344
|
+
// bus. The attached EventStore decides which sinks are active:
|
|
345
|
+
// `verbose: 2` or `BROWSERBASE_FLOW_LOGS=1` enables pretty stderr output,
|
|
346
|
+
// and `BROWSERBASE_CONFIG_DIR` enables the pretty/jsonl file sinks for this session.
|
|
347
|
+
this.eventStore = new EventStore(this.sessionId, opts);
|
|
350
348
|
this.flowLoggerContext = FlowLogger.init(this.sessionId, this.bus);
|
|
351
|
-
|
|
349
|
+
// Flow event pipeline:
|
|
350
|
+
// FlowLogger -> this.bus -> this.eventStore -> configured sinks/query history.
|
|
351
|
+
// V3 owns the bus for this session. EventStore is not another bus; it just
|
|
352
|
+
// receives already-emitted FlowEvents here, then fans them out to sinks and
|
|
353
|
+
// keeps the queryable per-session history used by /v4/log, parent/ancestor lookups, and tests.
|
|
354
|
+
// `on()` stores a strong reference to the handler, so the EventStore
|
|
355
|
+
// stays alive until this bus is garbage-collected with the rest of the V3
|
|
356
|
+
// object graph.
|
|
357
|
+
this.bus.on("*", this.eventStore.emit);
|
|
352
358
|
// Track instance for global process guard handling
|
|
353
359
|
V3._instances.add(this);
|
|
354
360
|
}
|
|
@@ -555,7 +561,7 @@ let V3 = (() => {
|
|
|
555
561
|
*/
|
|
556
562
|
async init() {
|
|
557
563
|
try {
|
|
558
|
-
return await this.
|
|
564
|
+
return await withInstanceLogContext(this.instanceId, async () => {
|
|
559
565
|
this.actHandler = new ActHandler(this.llmClient, this.modelName, this.modelClientOptions, (model) => this.resolveLlmClient(model), this.opts.systemPrompt ?? "", this.logInferenceToFile, this.opts.selfHeal ?? true, (functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs) => this.updateMetrics(functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs), this.domSettleTimeoutMs);
|
|
560
566
|
this.extractHandler = new ExtractHandler(this.llmClient, this.modelName, this.modelClientOptions, (model) => this.resolveLlmClient(model), this.opts.systemPrompt ?? "", this.logInferenceToFile, this.experimental, (functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs) => this.updateMetrics(functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs));
|
|
561
567
|
this.observeHandler = new ObserveHandler(this.llmClient, this.modelName, this.modelClientOptions, (model) => this.resolveLlmClient(model), this.opts.systemPrompt ?? "", this.logInferenceToFile, this.experimental, (functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs) => this.updateMetrics(functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs));
|
|
@@ -720,9 +726,13 @@ let V3 = (() => {
|
|
|
720
726
|
const baseSessionParams = this.opts.browserbaseSessionCreateParams ?? {};
|
|
721
727
|
const resolvedKeepAlive = this.keepAlive;
|
|
722
728
|
const keepAlive = this.keepAlive === true;
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
729
|
+
let effectiveSessionParams = baseSessionParams;
|
|
730
|
+
if (resolvedKeepAlive !== undefined) {
|
|
731
|
+
effectiveSessionParams = {
|
|
732
|
+
...baseSessionParams,
|
|
733
|
+
keepAlive: resolvedKeepAlive,
|
|
734
|
+
};
|
|
735
|
+
}
|
|
726
736
|
if (!this.disableAPI && !this.experimental) {
|
|
727
737
|
this.apiClient = new StagehandAPIClient({
|
|
728
738
|
apiKey,
|
|
@@ -829,13 +839,6 @@ let V3 = (() => {
|
|
|
829
839
|
// ignore cleanup errors
|
|
830
840
|
}
|
|
831
841
|
}
|
|
832
|
-
try {
|
|
833
|
-
this.detachEventStoreListener?.();
|
|
834
|
-
this.detachEventStoreListener = null;
|
|
835
|
-
}
|
|
836
|
-
catch {
|
|
837
|
-
// ignore cleanup errors
|
|
838
|
-
}
|
|
839
842
|
throw error;
|
|
840
843
|
}
|
|
841
844
|
}
|
|
@@ -879,7 +882,7 @@ let V3 = (() => {
|
|
|
879
882
|
this.browserbaseDebugUrl = undefined;
|
|
880
883
|
}
|
|
881
884
|
async act(input, options) {
|
|
882
|
-
return await this.
|
|
885
|
+
return await withInstanceLogContext(this.instanceId, async () => {
|
|
883
886
|
if (!this.actHandler)
|
|
884
887
|
throw new StagehandNotInitializedError("act()");
|
|
885
888
|
let actResult;
|
|
@@ -963,7 +966,7 @@ let V3 = (() => {
|
|
|
963
966
|
});
|
|
964
967
|
}
|
|
965
968
|
async extract(a, b, c) {
|
|
966
|
-
return await this.
|
|
969
|
+
return await withInstanceLogContext(this.instanceId, async () => {
|
|
967
970
|
if (!this.extractHandler) {
|
|
968
971
|
throw new StagehandNotInitializedError("extract()");
|
|
969
972
|
}
|
|
@@ -1031,7 +1034,7 @@ let V3 = (() => {
|
|
|
1031
1034
|
});
|
|
1032
1035
|
}
|
|
1033
1036
|
async observe(a, b) {
|
|
1034
|
-
return await this.
|
|
1037
|
+
return await withInstanceLogContext(this.instanceId, async () => {
|
|
1035
1038
|
if (!this.observeHandler) {
|
|
1036
1039
|
throw new StagehandNotInitializedError("observe()");
|
|
1037
1040
|
}
|
|
@@ -1154,8 +1157,7 @@ let V3 = (() => {
|
|
|
1154
1157
|
// ignore
|
|
1155
1158
|
}
|
|
1156
1159
|
try {
|
|
1157
|
-
this.
|
|
1158
|
-
this.detachEventStoreListener = null;
|
|
1160
|
+
await this.eventStore.destroy();
|
|
1159
1161
|
}
|
|
1160
1162
|
catch {
|
|
1161
1163
|
// ignore
|
|
@@ -1426,10 +1428,7 @@ let V3 = (() => {
|
|
|
1426
1428
|
throw new CuaModelRequiredError(AVAILABLE_CUA_MODELS);
|
|
1427
1429
|
}
|
|
1428
1430
|
const agentConfigSignature = this.agentCache.buildConfigSignature(options);
|
|
1429
|
-
const execute =
|
|
1430
|
-
eventType: "AgentExecute",
|
|
1431
|
-
eventIdSuffix: "3",
|
|
1432
|
-
})(async (instructionOrOptions) => this.withLoggingContext(async () => {
|
|
1431
|
+
const execute = async (instructionOrOptions) => withInstanceLogContext(this.instanceId, async () => {
|
|
1433
1432
|
validateExperimentalFeatures({
|
|
1434
1433
|
isExperimental: this.experimental,
|
|
1435
1434
|
agentConfig: options,
|
|
@@ -1519,18 +1518,18 @@ let V3 = (() => {
|
|
|
1519
1518
|
this.discardAgentReplayRecording();
|
|
1520
1519
|
}
|
|
1521
1520
|
}
|
|
1522
|
-
})
|
|
1521
|
+
});
|
|
1523
1522
|
return {
|
|
1524
|
-
execute
|
|
1523
|
+
execute: FlowLogger.wrapWithLogging({
|
|
1524
|
+
eventType: "AgentExecute",
|
|
1525
|
+
context: this.flowLoggerContext,
|
|
1526
|
+
})(execute),
|
|
1525
1527
|
};
|
|
1526
1528
|
}
|
|
1527
1529
|
// Default: AISDK tools-based agent
|
|
1528
1530
|
const agentConfigSignature = this.agentCache.buildConfigSignature(options);
|
|
1529
1531
|
const isStreaming = options?.stream ?? false;
|
|
1530
|
-
const execute =
|
|
1531
|
-
eventType: "AgentExecute",
|
|
1532
|
-
eventIdSuffix: "3",
|
|
1533
|
-
})(async (instructionOrOptions) => this.withLoggingContext(async () => {
|
|
1532
|
+
const execute = async (instructionOrOptions) => withInstanceLogContext(this.instanceId, async () => {
|
|
1534
1533
|
validateExperimentalFeatures({
|
|
1535
1534
|
isExperimental: this.experimental,
|
|
1536
1535
|
agentConfig: options,
|
|
@@ -1602,9 +1601,12 @@ let V3 = (() => {
|
|
|
1602
1601
|
this.discardAgentReplayRecording();
|
|
1603
1602
|
}
|
|
1604
1603
|
}
|
|
1605
|
-
})
|
|
1604
|
+
});
|
|
1606
1605
|
return {
|
|
1607
|
-
execute
|
|
1606
|
+
execute: FlowLogger.wrapWithLogging({
|
|
1607
|
+
eventType: "AgentExecute",
|
|
1608
|
+
context: this.flowLoggerContext,
|
|
1609
|
+
})(execute),
|
|
1608
1610
|
};
|
|
1609
1611
|
}
|
|
1610
1612
|
};
|