File tree 7 files changed +61
-36
lines changed
7 files changed +61
-36
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ " @browserbasehq/stagehand " : minor
3
+ ---
4
+
5
+ Logger in LLMClient is inherited by default from Stagehand. Named rather than positional arguments are used in implemented LLMClients.
Original file line number Diff line number Diff line change 1
- import { type ConstructorParams , type LogLine , Stagehand } from "../lib" ;
1
+ import { type ConstructorParams , Stagehand } from "../lib" ;
2
2
import { z } from "zod" ;
3
3
import { OllamaClient } from "./external_clients/ollama" ;
4
4
@@ -7,13 +7,9 @@ const StagehandConfig: ConstructorParams = {
7
7
apiKey : process . env . BROWSERBASE_API_KEY ,
8
8
projectId : process . env . BROWSERBASE_PROJECT_ID ,
9
9
verbose : 1 ,
10
- llmClient : new OllamaClient (
11
- ( message : LogLine ) =>
12
- console . log ( `[stagehand::${ message . category } ] ${ message . message } ` ) ,
13
- false ,
14
- undefined ,
15
- "llama3.2" ,
16
- ) ,
10
+ llmClient : new OllamaClient ( {
11
+ modelName : "llama3.2" ,
12
+ } ) ,
17
13
debugDom : true ,
18
14
} ;
19
15
Original file line number Diff line number Diff line change @@ -28,13 +28,19 @@ export class OllamaClient extends LLMClient {
28
28
private enableCaching : boolean ;
29
29
public clientOptions : ClientOptions ;
30
30
31
- constructor (
32
- logger : ( message : LogLine ) => void ,
31
+ constructor ( {
32
+ logger,
33
33
enableCaching = false ,
34
- cache : LLMCache | undefined ,
35
- modelName : "llama3.2" ,
36
- clientOptions ?: ClientOptions ,
37
- ) {
34
+ cache = undefined ,
35
+ modelName = "llama3.2" ,
36
+ clientOptions,
37
+ } : {
38
+ logger ?: ( message : LogLine ) => void ;
39
+ enableCaching ?: boolean ;
40
+ cache ?: LLMCache ;
41
+ modelName ?: string ;
42
+ clientOptions ?: ClientOptions ;
43
+ } ) {
38
44
super ( modelName as AvailableModel ) ;
39
45
this . client = new OpenAI ( {
40
46
...clientOptions ,
Original file line number Diff line number Diff line change @@ -365,6 +365,11 @@ export class Stagehand {
365
365
modelName ?? DEFAULT_MODEL_NAME ,
366
366
modelClientOptions ,
367
367
) ;
368
+
369
+ if ( ! this . llmClient . logger ) {
370
+ this . llmClient . logger = this . logger ;
371
+ }
372
+
368
373
this . domSettleTimeoutMs = domSettleTimeoutMs ?? 30_000 ;
369
374
this . headless = headless ?? false ;
370
375
this . browserbaseSessionCreateParams = browserbaseSessionCreateParams ;
@@ -614,3 +619,4 @@ export * from "../types/model";
614
619
export * from "../types/playwright" ;
615
620
export * from "../types/stagehand" ;
616
621
export * from "../types/page" ;
622
+ export { LLMClient } from "./llm/LLMClient" ;
Original file line number Diff line number Diff line change @@ -19,13 +19,19 @@ export class AnthropicClient extends LLMClient {
19
19
private enableCaching : boolean ;
20
20
public clientOptions : ClientOptions ;
21
21
22
- constructor (
23
- logger : ( message : LogLine ) => void ,
22
+ constructor ( {
23
+ logger,
24
24
enableCaching = false ,
25
- cache : LLMCache | undefined ,
26
- modelName : AvailableModel ,
27
- clientOptions ?: ClientOptions ,
28
- ) {
25
+ cache,
26
+ modelName,
27
+ clientOptions,
28
+ } : {
29
+ logger : ( message : LogLine ) => void ;
30
+ enableCaching ?: boolean ;
31
+ cache ?: LLMCache ;
32
+ modelName : AvailableModel ;
33
+ clientOptions ?: ClientOptions ;
34
+ } ) {
29
35
super ( modelName ) ;
30
36
this . client = new Anthropic ( clientOptions ) ;
31
37
this . logger = logger ;
Original file line number Diff line number Diff line change @@ -61,21 +61,21 @@ export class LLMProvider {
61
61
62
62
switch ( provider ) {
63
63
case "openai" :
64
- return new OpenAIClient (
65
- this . logger ,
66
- this . enableCaching ,
67
- this . cache ,
64
+ return new OpenAIClient ( {
65
+ logger : this . logger ,
66
+ enableCaching : this . enableCaching ,
67
+ cache : this . cache ,
68
68
modelName,
69
69
clientOptions,
70
- ) ;
70
+ } ) ;
71
71
case "anthropic" :
72
- return new AnthropicClient (
73
- this . logger ,
74
- this . enableCaching ,
75
- this . cache ,
72
+ return new AnthropicClient ( {
73
+ logger : this . logger ,
74
+ enableCaching : this . enableCaching ,
75
+ cache : this . cache ,
76
76
modelName,
77
77
clientOptions,
78
- ) ;
78
+ } ) ;
79
79
default :
80
80
throw new Error ( `Unsupported provider: ${ provider } ` ) ;
81
81
}
Original file line number Diff line number Diff line change @@ -29,13 +29,19 @@ export class OpenAIClient extends LLMClient {
29
29
private enableCaching : boolean ;
30
30
public clientOptions : ClientOptions ;
31
31
32
- constructor (
33
- logger : ( message : LogLine ) => void ,
32
+ constructor ( {
33
+ logger,
34
34
enableCaching = false ,
35
- cache : LLMCache | undefined ,
36
- modelName : AvailableModel ,
37
- clientOptions ?: ClientOptions ,
38
- ) {
35
+ cache,
36
+ modelName,
37
+ clientOptions,
38
+ } : {
39
+ logger : ( message : LogLine ) => void ;
40
+ enableCaching ?: boolean ;
41
+ cache ?: LLMCache ;
42
+ modelName : AvailableModel ;
43
+ clientOptions ?: ClientOptions ;
44
+ } ) {
39
45
super ( modelName ) ;
40
46
this . clientOptions = clientOptions ;
41
47
this . client = new OpenAI ( clientOptions ) ;
You can’t perform that action at this time.
0 commit comments