Skip to content

Commit 28f7978

Browse files
feat(api): manual updates
1 parent 07db616 commit 28f7978

File tree

20 files changed

+473
-298
lines changed

20 files changed

+473
-298
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 7
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-d571232203ef4e00986a3245224267db6f8aaffdad57780f712e0694dc8d9e37.yml
3-
openapi_spec_hash: d5d635dd7b24a2e1255c6f2a895253ff
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-817d1d4e845b1946dac8ee10fd34b3f533aa36f74ac598582ffb1b0399a5a932.yml
3+
openapi_spec_hash: 9d856db62b34909fec94743235b3d7be
44
config_hash: 88e87ba7021be93d267ecfc8f5e6b891

stagehand-java-core/src/main/kotlin/com/browserbase/api/models/sessions/ModelConfig.kt

Lines changed: 74 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -27,33 +27,44 @@ import java.util.Collections
2727
import java.util.Objects
2828
import java.util.Optional
2929

30+
/**
31+
* Model name string with provider prefix (e.g., 'openai/gpt-5-nano', 'anthropic/claude-4.5-opus')
32+
*/
3033
@JsonDeserialize(using = ModelConfig.Deserializer::class)
3134
@JsonSerialize(using = ModelConfig.Serializer::class)
3235
class ModelConfig
3336
private constructor(
34-
private val string: String? = null,
35-
private val unionMember1: UnionMember1? = null,
37+
private val name: String? = null,
38+
private val modelConfigObject: ModelConfigObject? = null,
3639
private val _json: JsonValue? = null,
3740
) {
3841

39-
fun string(): Optional<String> = Optional.ofNullable(string)
42+
/**
43+
* Model name string with provider prefix (e.g., 'openai/gpt-5-nano',
44+
* 'anthropic/claude-4.5-opus')
45+
*/
46+
fun name(): Optional<String> = Optional.ofNullable(name)
4047

41-
fun unionMember1(): Optional<UnionMember1> = Optional.ofNullable(unionMember1)
48+
fun modelConfigObject(): Optional<ModelConfigObject> = Optional.ofNullable(modelConfigObject)
4249

43-
fun isString(): Boolean = string != null
50+
fun isName(): Boolean = name != null
4451

45-
fun isUnionMember1(): Boolean = unionMember1 != null
52+
fun isModelConfigObject(): Boolean = modelConfigObject != null
4653

47-
fun asString(): String = string.getOrThrow("string")
54+
/**
55+
* Model name string with provider prefix (e.g., 'openai/gpt-5-nano',
56+
* 'anthropic/claude-4.5-opus')
57+
*/
58+
fun asName(): String = name.getOrThrow("name")
4859

49-
fun asUnionMember1(): UnionMember1 = unionMember1.getOrThrow("unionMember1")
60+
fun asModelConfigObject(): ModelConfigObject = modelConfigObject.getOrThrow("modelConfigObject")
5061

5162
fun _json(): Optional<JsonValue> = Optional.ofNullable(_json)
5263

5364
fun <T> accept(visitor: Visitor<T>): T =
5465
when {
55-
string != null -> visitor.visitString(string)
56-
unionMember1 != null -> visitor.visitUnionMember1(unionMember1)
66+
name != null -> visitor.visitName(name)
67+
modelConfigObject != null -> visitor.visitModelConfigObject(modelConfigObject)
5768
else -> visitor.unknown(_json)
5869
}
5970

@@ -66,10 +77,10 @@ private constructor(
6677

6778
accept(
6879
object : Visitor<Unit> {
69-
override fun visitString(string: String) {}
80+
override fun visitName(name: String) {}
7081

71-
override fun visitUnionMember1(unionMember1: UnionMember1) {
72-
unionMember1.validate()
82+
override fun visitModelConfigObject(modelConfigObject: ModelConfigObject) {
83+
modelConfigObject.validate()
7384
}
7485
}
7586
)
@@ -93,9 +104,10 @@ private constructor(
93104
internal fun validity(): Int =
94105
accept(
95106
object : Visitor<Int> {
96-
override fun visitString(string: String) = 1
107+
override fun visitName(name: String) = 1
97108

98-
override fun visitUnionMember1(unionMember1: UnionMember1) = unionMember1.validity()
109+
override fun visitModelConfigObject(modelConfigObject: ModelConfigObject) =
110+
modelConfigObject.validity()
99111

100112
override fun unknown(json: JsonValue?) = 0
101113
}
@@ -106,35 +118,46 @@ private constructor(
106118
return true
107119
}
108120

109-
return other is ModelConfig && string == other.string && unionMember1 == other.unionMember1
121+
return other is ModelConfig &&
122+
name == other.name &&
123+
modelConfigObject == other.modelConfigObject
110124
}
111125

112-
override fun hashCode(): Int = Objects.hash(string, unionMember1)
126+
override fun hashCode(): Int = Objects.hash(name, modelConfigObject)
113127

114128
override fun toString(): String =
115129
when {
116-
string != null -> "ModelConfig{string=$string}"
117-
unionMember1 != null -> "ModelConfig{unionMember1=$unionMember1}"
130+
name != null -> "ModelConfig{name=$name}"
131+
modelConfigObject != null -> "ModelConfig{modelConfigObject=$modelConfigObject}"
118132
_json != null -> "ModelConfig{_unknown=$_json}"
119133
else -> throw IllegalStateException("Invalid ModelConfig")
120134
}
121135

122136
companion object {
123137

124-
@JvmStatic fun ofString(string: String) = ModelConfig(string = string)
138+
/**
139+
* Model name string with provider prefix (e.g., 'openai/gpt-5-nano',
140+
* 'anthropic/claude-4.5-opus')
141+
*/
142+
@JvmStatic fun ofName(name: String) = ModelConfig(name = name)
125143

126144
@JvmStatic
127-
fun ofUnionMember1(unionMember1: UnionMember1) = ModelConfig(unionMember1 = unionMember1)
145+
fun ofModelConfigObject(modelConfigObject: ModelConfigObject) =
146+
ModelConfig(modelConfigObject = modelConfigObject)
128147
}
129148

130149
/**
131150
* An interface that defines how to map each variant of [ModelConfig] to a value of type [T].
132151
*/
133152
interface Visitor<out T> {
134153

135-
fun visitString(string: String): T
154+
/**
155+
* Model name string with provider prefix (e.g., 'openai/gpt-5-nano',
156+
* 'anthropic/claude-4.5-opus')
157+
*/
158+
fun visitName(name: String): T
136159

137-
fun visitUnionMember1(unionMember1: UnionMember1): T
160+
fun visitModelConfigObject(modelConfigObject: ModelConfigObject): T
138161

139162
/**
140163
* Maps an unknown variant of [ModelConfig] to a value of type [T].
@@ -157,11 +180,11 @@ private constructor(
157180

158181
val bestMatches =
159182
sequenceOf(
160-
tryDeserialize(node, jacksonTypeRef<UnionMember1>())?.let {
161-
ModelConfig(unionMember1 = it, _json = json)
183+
tryDeserialize(node, jacksonTypeRef<ModelConfigObject>())?.let {
184+
ModelConfig(modelConfigObject = it, _json = json)
162185
},
163186
tryDeserialize(node, jacksonTypeRef<String>())?.let {
164-
ModelConfig(string = it, _json = json)
187+
ModelConfig(name = it, _json = json)
165188
},
166189
)
167190
.filterNotNull()
@@ -187,15 +210,15 @@ private constructor(
187210
provider: SerializerProvider,
188211
) {
189212
when {
190-
value.string != null -> generator.writeObject(value.string)
191-
value.unionMember1 != null -> generator.writeObject(value.unionMember1)
213+
value.name != null -> generator.writeObject(value.name)
214+
value.modelConfigObject != null -> generator.writeObject(value.modelConfigObject)
192215
value._json != null -> generator.writeObject(value._json)
193216
else -> throw IllegalStateException("Invalid ModelConfig")
194217
}
195218
}
196219
}
197220

198-
class UnionMember1
221+
class ModelConfigObject
199222
@JsonCreator(mode = JsonCreator.Mode.DISABLED)
200223
private constructor(
201224
private val modelName: JsonField<String>,
@@ -214,18 +237,24 @@ private constructor(
214237
) : this(modelName, apiKey, baseUrl, mutableMapOf())
215238

216239
/**
240+
* Model name string without prefix (e.g., 'gpt-5-nano', 'claude-4.5-opus')
241+
*
217242
* @throws StagehandInvalidDataException if the JSON field has an unexpected type or is
218243
* unexpectedly missing or null (e.g. if the server responded with an unexpected value).
219244
*/
220245
fun modelName(): String = modelName.getRequired("modelName")
221246

222247
/**
248+
* API key for the model provider
249+
*
223250
* @throws StagehandInvalidDataException if the JSON field has an unexpected type (e.g. if
224251
* the server responded with an unexpected value).
225252
*/
226253
fun apiKey(): Optional<String> = apiKey.getOptional("apiKey")
227254

228255
/**
256+
* Base URL for the model provider
257+
*
229258
* @throws StagehandInvalidDataException if the JSON field has an unexpected type (e.g. if
230259
* the server responded with an unexpected value).
231260
*/
@@ -267,7 +296,7 @@ private constructor(
267296
companion object {
268297

269298
/**
270-
* Returns a mutable builder for constructing an instance of [UnionMember1].
299+
* Returns a mutable builder for constructing an instance of [ModelConfigObject].
271300
*
272301
* The following fields are required:
273302
* ```java
@@ -277,7 +306,7 @@ private constructor(
277306
@JvmStatic fun builder() = Builder()
278307
}
279308

280-
/** A builder for [UnionMember1]. */
309+
/** A builder for [ModelConfigObject]. */
281310
class Builder internal constructor() {
282311

283312
private var modelName: JsonField<String>? = null
@@ -286,13 +315,14 @@ private constructor(
286315
private var additionalProperties: MutableMap<String, JsonValue> = mutableMapOf()
287316

288317
@JvmSynthetic
289-
internal fun from(unionMember1: UnionMember1) = apply {
290-
modelName = unionMember1.modelName
291-
apiKey = unionMember1.apiKey
292-
baseUrl = unionMember1.baseUrl
293-
additionalProperties = unionMember1.additionalProperties.toMutableMap()
318+
internal fun from(modelConfigObject: ModelConfigObject) = apply {
319+
modelName = modelConfigObject.modelName
320+
apiKey = modelConfigObject.apiKey
321+
baseUrl = modelConfigObject.baseUrl
322+
additionalProperties = modelConfigObject.additionalProperties.toMutableMap()
294323
}
295324

325+
/** Model name string without prefix (e.g., 'gpt-5-nano', 'claude-4.5-opus') */
296326
fun modelName(modelName: String) = modelName(JsonField.of(modelName))
297327

298328
/**
@@ -304,6 +334,7 @@ private constructor(
304334
*/
305335
fun modelName(modelName: JsonField<String>) = apply { this.modelName = modelName }
306336

337+
/** API key for the model provider */
307338
fun apiKey(apiKey: String) = apiKey(JsonField.of(apiKey))
308339

309340
/**
@@ -315,6 +346,7 @@ private constructor(
315346
*/
316347
fun apiKey(apiKey: JsonField<String>) = apply { this.apiKey = apiKey }
317348

349+
/** Base URL for the model provider */
318350
fun baseUrl(baseUrl: String) = baseUrl(JsonField.of(baseUrl))
319351

320352
/**
@@ -346,7 +378,7 @@ private constructor(
346378
}
347379

348380
/**
349-
* Returns an immutable instance of [UnionMember1].
381+
* Returns an immutable instance of [ModelConfigObject].
350382
*
351383
* Further updates to this [Builder] will not mutate the returned instance.
352384
*
@@ -357,8 +389,8 @@ private constructor(
357389
*
358390
* @throws IllegalStateException if any required field is unset.
359391
*/
360-
fun build(): UnionMember1 =
361-
UnionMember1(
392+
fun build(): ModelConfigObject =
393+
ModelConfigObject(
362394
checkRequired("modelName", modelName),
363395
apiKey,
364396
baseUrl,
@@ -368,7 +400,7 @@ private constructor(
368400

369401
private var validated: Boolean = false
370402

371-
fun validate(): UnionMember1 = apply {
403+
fun validate(): ModelConfigObject = apply {
372404
if (validated) {
373405
return@apply
374406
}
@@ -404,7 +436,7 @@ private constructor(
404436
return true
405437
}
406438

407-
return other is UnionMember1 &&
439+
return other is ModelConfigObject &&
408440
modelName == other.modelName &&
409441
apiKey == other.apiKey &&
410442
baseUrl == other.baseUrl &&
@@ -418,6 +450,6 @@ private constructor(
418450
override fun hashCode(): Int = hashCode
419451

420452
override fun toString() =
421-
"UnionMember1{modelName=$modelName, apiKey=$apiKey, baseUrl=$baseUrl, additionalProperties=$additionalProperties}"
453+
"ModelConfigObject{modelName=$modelName, apiKey=$apiKey, baseUrl=$baseUrl, additionalProperties=$additionalProperties}"
422454
}
423455
}

stagehand-java-core/src/main/kotlin/com/browserbase/api/models/sessions/SessionActParams.kt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,6 +1133,9 @@ private constructor(
11331133
) : this(model, timeout, variables, mutableMapOf())
11341134

11351135
/**
1136+
* Model name string with provider prefix (e.g., 'openai/gpt-5-nano',
1137+
* 'anthropic/claude-4.5-opus')
1138+
*
11361139
* @throws StagehandInvalidDataException if the JSON field has an unexpected type (e.g. if
11371140
* the server responded with an unexpected value).
11381141
*/
@@ -1211,6 +1214,10 @@ private constructor(
12111214
additionalProperties = options.additionalProperties.toMutableMap()
12121215
}
12131216

1217+
/**
1218+
* Model name string with provider prefix (e.g., 'openai/gpt-5-nano',
1219+
* 'anthropic/claude-4.5-opus')
1220+
*/
12141221
fun model(model: ModelConfig) = model(JsonField.of(model))
12151222

12161223
/**
@@ -1222,12 +1229,14 @@ private constructor(
12221229
*/
12231230
fun model(model: JsonField<ModelConfig>) = apply { this.model = model }
12241231

1225-
/** Alias for calling [model] with `ModelConfig.ofString(string)`. */
1226-
fun model(string: String) = model(ModelConfig.ofString(string))
1232+
/** Alias for calling [model] with `ModelConfig.ofName(name)`. */
1233+
fun model(name: String) = model(ModelConfig.ofName(name))
12271234

1228-
/** Alias for calling [model] with `ModelConfig.ofUnionMember1(unionMember1)`. */
1229-
fun model(unionMember1: ModelConfig.UnionMember1) =
1230-
model(ModelConfig.ofUnionMember1(unionMember1))
1235+
/**
1236+
* Alias for calling [model] with `ModelConfig.ofModelConfigObject(modelConfigObject)`.
1237+
*/
1238+
fun model(modelConfigObject: ModelConfig.ModelConfigObject) =
1239+
model(ModelConfig.ofModelConfigObject(modelConfigObject))
12311240

12321241
/** Timeout in ms for the action */
12331242
fun timeout(timeout: Double) = timeout(JsonField.of(timeout))

0 commit comments

Comments
 (0)