@@ -176,27 +176,38 @@ public func maybeExtractCustomToolCalls(input: String) -> [Components.Schemas.To
176
176
return [ ]
177
177
}
178
178
179
- var props : [ String : Components . Schemas . ToolCall . argumentsPayload . additionalPropertiesPayload ] = [ : ]
180
- for (param_name, param) in params {
181
- switch ( param) {
182
- case let value as String :
183
- props [ param_name] = . case1( value)
184
- case let value as Int :
185
- props [ param_name] = . case2( value)
186
- case let value as Double :
187
- props [ param_name] = . case3( value)
188
- case let value as Bool :
189
- props [ param_name] = . case4( value)
190
- default :
191
- return [ ]
179
+ var props : [ String : Components . Schemas . ToolCall . argumentsPayload ] = [ : ]
180
+ for (param_name, param) in params {
181
+ switch ( param) {
182
+ case let value as String :
183
+ props [ param_name] = . case1( value)
184
+ case let value as Int :
185
+ var additionalProps : [ String : Components . Schemas . ToolCall . argumentsPayload . Case2Payload . additionalPropertiesPayload ] = [ : ]
186
+ additionalProps [ param_name] = . case2( value)
187
+ let payload = Components . Schemas. ToolCall. argumentsPayload. Case2Payload ( additionalProperties: additionalProps)
188
+ props [ param_name] = . case2( payload)
189
+ case let value as Double :
190
+ var additionalProps : [ String : Components . Schemas . ToolCall . argumentsPayload . Case2Payload . additionalPropertiesPayload ] = [ : ]
191
+ additionalProps [ param_name] = . case3( value)
192
+ let payload = Components . Schemas. ToolCall. argumentsPayload. Case2Payload ( additionalProperties: additionalProps)
193
+ props [ param_name] = . case2( payload)
194
+ case let value as Bool :
195
+ var additionalProps : [ String : Components . Schemas . ToolCall . argumentsPayload . Case2Payload . additionalPropertiesPayload ] = [ : ]
196
+ additionalProps [ param_name] = . case4( value)
197
+ let payload = Components . Schemas. ToolCall. argumentsPayload. Case2Payload ( additionalProperties: additionalProps)
198
+ props [ param_name] = . case2( payload)
199
+ default :
200
+ return [ ]
201
+ }
192
202
}
193
- }
203
+
204
+ let case2Payload = try Components . Schemas. ToolCall. argumentsPayload. Case2Payload ( from: props as! Decoder )
194
205
195
206
result. append (
196
207
Components . Schemas. ToolCall (
197
208
call_id: UUID ( ) . uuidString,
198
209
tool_name: . case2( name) , // custom_tool
199
- arguments: . init ( additionalProperties : props )
210
+ arguments: . case2 ( case2Payload )
200
211
)
201
212
)
202
213
}
0 commit comments