@@ -27,33 +27,44 @@ import java.util.Collections
2727import java.util.Objects
2828import 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 )
3235class ModelConfig
3336private 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}
0 commit comments