@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/cjs/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/cjs/lib/v3/v3.js
CHANGED
|
@@ -71,7 +71,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
71
71
|
};
|
|
72
72
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
73
73
|
exports.V3 = void 0;
|
|
74
|
-
const events_1 = require("events");
|
|
75
74
|
const fs_1 = __importDefault(require("fs"));
|
|
76
75
|
const os_1 = __importDefault(require("os"));
|
|
77
76
|
const path_1 = __importDefault(require("path"));
|
|
@@ -102,8 +101,9 @@ const modelUtils_js_2 = require("../modelUtils.js");
|
|
|
102
101
|
const api_js_1 = require("./api.js");
|
|
103
102
|
const validateExperimentalFeatures_js_1 = require("./agent/utils/validateExperimentalFeatures.js");
|
|
104
103
|
const variables_js_1 = require("./agent/utils/variables.js");
|
|
105
|
-
const
|
|
106
|
-
const
|
|
104
|
+
const FlowLogger_js_1 = require("./flowlogger/FlowLogger.js");
|
|
105
|
+
const EventEmitter_js_1 = require("./flowlogger/EventEmitter.js");
|
|
106
|
+
const EventStore_js_1 = require("./flowlogger/EventStore.js");
|
|
107
107
|
const timeoutGuard_js_1 = require("./handlers/handlerUtils/timeoutGuard.js");
|
|
108
108
|
const sdkErrors_js_1 = require("./types/public/sdkErrors.js");
|
|
109
109
|
const DEFAULT_MODEL_NAME = "openai/gpt-4.1-mini";
|
|
@@ -151,17 +151,14 @@ let V3 = (() => {
|
|
|
151
151
|
return class V3 {
|
|
152
152
|
static {
|
|
153
153
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
154
|
-
_act_decorators = [
|
|
154
|
+
_act_decorators = [FlowLogger_js_1.FlowLogger.wrapWithLogging({
|
|
155
155
|
eventType: "StagehandAct",
|
|
156
|
-
eventIdSuffix: "4",
|
|
157
156
|
})];
|
|
158
|
-
_extract_decorators = [
|
|
157
|
+
_extract_decorators = [FlowLogger_js_1.FlowLogger.wrapWithLogging({
|
|
159
158
|
eventType: "StagehandExtract",
|
|
160
|
-
eventIdSuffix: "4",
|
|
161
159
|
})];
|
|
162
|
-
_observe_decorators = [
|
|
160
|
+
_observe_decorators = [FlowLogger_js_1.FlowLogger.wrapWithLogging({
|
|
163
161
|
eventType: "StagehandObserve",
|
|
164
|
-
eventIdSuffix: "4",
|
|
165
162
|
})];
|
|
166
163
|
__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);
|
|
167
164
|
__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);
|
|
@@ -179,7 +176,7 @@ let V3 = (() => {
|
|
|
179
176
|
* Event bus for internal communication.
|
|
180
177
|
* Emits events like 'screenshot' when screenshots are captured during agent execution.
|
|
181
178
|
*/
|
|
182
|
-
bus = new
|
|
179
|
+
bus = new EventEmitter_js_1.EventEmitterWithWildcardSupport();
|
|
183
180
|
modelName;
|
|
184
181
|
modelClientOptions;
|
|
185
182
|
llmProvider;
|
|
@@ -248,6 +245,7 @@ let V3 = (() => {
|
|
|
248
245
|
_history = [];
|
|
249
246
|
instanceId;
|
|
250
247
|
sessionId;
|
|
248
|
+
eventStore;
|
|
251
249
|
flowLoggerContext;
|
|
252
250
|
static _processGuardsInstalled = false;
|
|
253
251
|
static _instances = new Set();
|
|
@@ -257,10 +255,6 @@ let V3 = (() => {
|
|
|
257
255
|
apiClient = null;
|
|
258
256
|
keepAlive;
|
|
259
257
|
shutdownSupervisor = null;
|
|
260
|
-
detachEventStoreListener = null;
|
|
261
|
-
withLoggingContext(fn) {
|
|
262
|
-
return (0, logger_js_2.withInstanceLogContext)(this.instanceId, fn);
|
|
263
|
-
}
|
|
264
258
|
stagehandMetrics = {
|
|
265
259
|
actPromptTokens: 0,
|
|
266
260
|
actCompletionTokens: 0,
|
|
@@ -385,9 +379,21 @@ let V3 = (() => {
|
|
|
385
379
|
act: this.act.bind(this),
|
|
386
380
|
});
|
|
387
381
|
this.opts = opts;
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
382
|
+
// FlowLogger always gets a per-instance session context and shared event
|
|
383
|
+
// bus. The attached EventStore decides which sinks are active:
|
|
384
|
+
// `verbose: 2` or `BROWSERBASE_FLOW_LOGS=1` enables pretty stderr output,
|
|
385
|
+
// and `BROWSERBASE_CONFIG_DIR` enables the pretty/jsonl file sinks for this session.
|
|
386
|
+
this.eventStore = new EventStore_js_1.EventStore(this.sessionId, opts);
|
|
387
|
+
this.flowLoggerContext = FlowLogger_js_1.FlowLogger.init(this.sessionId, this.bus);
|
|
388
|
+
// Flow event pipeline:
|
|
389
|
+
// FlowLogger -> this.bus -> this.eventStore -> configured sinks/query history.
|
|
390
|
+
// V3 owns the bus for this session. EventStore is not another bus; it just
|
|
391
|
+
// receives already-emitted FlowEvents here, then fans them out to sinks and
|
|
392
|
+
// keeps the queryable per-session history used by /v4/log, parent/ancestor lookups, and tests.
|
|
393
|
+
// `on()` stores a strong reference to the handler, so the EventStore
|
|
394
|
+
// stays alive until this bus is garbage-collected with the rest of the V3
|
|
395
|
+
// object graph.
|
|
396
|
+
this.bus.on("*", this.eventStore.emit);
|
|
391
397
|
// Track instance for global process guard handling
|
|
392
398
|
V3._instances.add(this);
|
|
393
399
|
}
|
|
@@ -594,7 +600,7 @@ let V3 = (() => {
|
|
|
594
600
|
*/
|
|
595
601
|
async init() {
|
|
596
602
|
try {
|
|
597
|
-
return await this.
|
|
603
|
+
return await (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
|
|
598
604
|
this.actHandler = new actHandler_js_1.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);
|
|
599
605
|
this.extractHandler = new extractHandler_js_1.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));
|
|
600
606
|
this.observeHandler = new observeHandler_js_1.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));
|
|
@@ -759,9 +765,13 @@ let V3 = (() => {
|
|
|
759
765
|
const baseSessionParams = this.opts.browserbaseSessionCreateParams ?? {};
|
|
760
766
|
const resolvedKeepAlive = this.keepAlive;
|
|
761
767
|
const keepAlive = this.keepAlive === true;
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
768
|
+
let effectiveSessionParams = baseSessionParams;
|
|
769
|
+
if (resolvedKeepAlive !== undefined) {
|
|
770
|
+
effectiveSessionParams = {
|
|
771
|
+
...baseSessionParams,
|
|
772
|
+
keepAlive: resolvedKeepAlive,
|
|
773
|
+
};
|
|
774
|
+
}
|
|
765
775
|
if (!this.disableAPI && !this.experimental) {
|
|
766
776
|
this.apiClient = new api_js_1.StagehandAPIClient({
|
|
767
777
|
apiKey,
|
|
@@ -868,13 +878,6 @@ let V3 = (() => {
|
|
|
868
878
|
// ignore cleanup errors
|
|
869
879
|
}
|
|
870
880
|
}
|
|
871
|
-
try {
|
|
872
|
-
this.detachEventStoreListener?.();
|
|
873
|
-
this.detachEventStoreListener = null;
|
|
874
|
-
}
|
|
875
|
-
catch {
|
|
876
|
-
// ignore cleanup errors
|
|
877
|
-
}
|
|
878
881
|
throw error;
|
|
879
882
|
}
|
|
880
883
|
}
|
|
@@ -918,7 +921,7 @@ let V3 = (() => {
|
|
|
918
921
|
this.browserbaseDebugUrl = undefined;
|
|
919
922
|
}
|
|
920
923
|
async act(input, options) {
|
|
921
|
-
return await this.
|
|
924
|
+
return await (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
|
|
922
925
|
if (!this.actHandler)
|
|
923
926
|
throw new index_js_1.StagehandNotInitializedError("act()");
|
|
924
927
|
let actResult;
|
|
@@ -1002,7 +1005,7 @@ let V3 = (() => {
|
|
|
1002
1005
|
});
|
|
1003
1006
|
}
|
|
1004
1007
|
async extract(a, b, c) {
|
|
1005
|
-
return await this.
|
|
1008
|
+
return await (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
|
|
1006
1009
|
if (!this.extractHandler) {
|
|
1007
1010
|
throw new index_js_1.StagehandNotInitializedError("extract()");
|
|
1008
1011
|
}
|
|
@@ -1070,7 +1073,7 @@ let V3 = (() => {
|
|
|
1070
1073
|
});
|
|
1071
1074
|
}
|
|
1072
1075
|
async observe(a, b) {
|
|
1073
|
-
return await this.
|
|
1076
|
+
return await (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
|
|
1074
1077
|
if (!this.observeHandler) {
|
|
1075
1078
|
throw new index_js_1.StagehandNotInitializedError("observe()");
|
|
1076
1079
|
}
|
|
@@ -1156,7 +1159,7 @@ let V3 = (() => {
|
|
|
1156
1159
|
try {
|
|
1157
1160
|
// Close session file logger
|
|
1158
1161
|
try {
|
|
1159
|
-
await
|
|
1162
|
+
await FlowLogger_js_1.FlowLogger.close(this.flowLoggerContext);
|
|
1160
1163
|
}
|
|
1161
1164
|
catch {
|
|
1162
1165
|
// ignore
|
|
@@ -1193,8 +1196,7 @@ let V3 = (() => {
|
|
|
1193
1196
|
// ignore
|
|
1194
1197
|
}
|
|
1195
1198
|
try {
|
|
1196
|
-
this.
|
|
1197
|
-
this.detachEventStoreListener = null;
|
|
1199
|
+
await this.eventStore.destroy();
|
|
1198
1200
|
}
|
|
1199
1201
|
catch {
|
|
1200
1202
|
// ignore
|
|
@@ -1465,10 +1467,7 @@ let V3 = (() => {
|
|
|
1465
1467
|
throw new index_js_1.CuaModelRequiredError(index_js_1.AVAILABLE_CUA_MODELS);
|
|
1466
1468
|
}
|
|
1467
1469
|
const agentConfigSignature = this.agentCache.buildConfigSignature(options);
|
|
1468
|
-
const execute =
|
|
1469
|
-
eventType: "AgentExecute",
|
|
1470
|
-
eventIdSuffix: "3",
|
|
1471
|
-
})(async (instructionOrOptions) => this.withLoggingContext(async () => {
|
|
1470
|
+
const execute = async (instructionOrOptions) => (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
|
|
1472
1471
|
(0, validateExperimentalFeatures_js_1.validateExperimentalFeatures)({
|
|
1473
1472
|
isExperimental: this.experimental,
|
|
1474
1473
|
agentConfig: options,
|
|
@@ -1558,18 +1557,18 @@ let V3 = (() => {
|
|
|
1558
1557
|
this.discardAgentReplayRecording();
|
|
1559
1558
|
}
|
|
1560
1559
|
}
|
|
1561
|
-
})
|
|
1560
|
+
});
|
|
1562
1561
|
return {
|
|
1563
|
-
execute
|
|
1562
|
+
execute: FlowLogger_js_1.FlowLogger.wrapWithLogging({
|
|
1563
|
+
eventType: "AgentExecute",
|
|
1564
|
+
context: this.flowLoggerContext,
|
|
1565
|
+
})(execute),
|
|
1564
1566
|
};
|
|
1565
1567
|
}
|
|
1566
1568
|
// Default: AISDK tools-based agent
|
|
1567
1569
|
const agentConfigSignature = this.agentCache.buildConfigSignature(options);
|
|
1568
1570
|
const isStreaming = options?.stream ?? false;
|
|
1569
|
-
const execute =
|
|
1570
|
-
eventType: "AgentExecute",
|
|
1571
|
-
eventIdSuffix: "3",
|
|
1572
|
-
})(async (instructionOrOptions) => this.withLoggingContext(async () => {
|
|
1571
|
+
const execute = async (instructionOrOptions) => (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
|
|
1573
1572
|
(0, validateExperimentalFeatures_js_1.validateExperimentalFeatures)({
|
|
1574
1573
|
isExperimental: this.experimental,
|
|
1575
1574
|
agentConfig: options,
|
|
@@ -1641,9 +1640,12 @@ let V3 = (() => {
|
|
|
1641
1640
|
this.discardAgentReplayRecording();
|
|
1642
1641
|
}
|
|
1643
1642
|
}
|
|
1644
|
-
})
|
|
1643
|
+
});
|
|
1645
1644
|
return {
|
|
1646
|
-
execute
|
|
1645
|
+
execute: FlowLogger_js_1.FlowLogger.wrapWithLogging({
|
|
1646
|
+
eventType: "AgentExecute",
|
|
1647
|
+
context: this.flowLoggerContext,
|
|
1648
|
+
})(execute),
|
|
1647
1649
|
};
|
|
1648
1650
|
}
|
|
1649
1651
|
};
|