providerMetadataToOptions reconstructs fantasy ProviderOptions from raw JSON stored in an SDK part's ProviderMetadata field. Uses fantasy.UnmarshalProviderOptions to restore registered provider-specific types. Returns nil on failure.
(logger slog.Logger, raw json.RawMessage)
| 1245 | // Uses fantasy.UnmarshalProviderOptions to restore registered |
| 1246 | // provider-specific types. Returns nil on failure. |
| 1247 | func providerMetadataToOptions(logger slog.Logger, raw json.RawMessage) fantasy.ProviderOptions { |
| 1248 | if len(raw) == 0 { |
| 1249 | return nil |
| 1250 | } |
| 1251 | var intermediate map[string]json.RawMessage |
| 1252 | if err := json.Unmarshal(raw, &intermediate); err != nil { |
| 1253 | logger.Warn(context.Background(), "failed to unmarshal provider metadata", slog.Error(err)) |
| 1254 | return nil |
| 1255 | } |
| 1256 | opts, err := fantasy.UnmarshalProviderOptions(intermediate) |
| 1257 | if err != nil { |
| 1258 | logger.Warn(context.Background(), "failed to decode provider options", slog.Error(err)) |
| 1259 | return nil |
| 1260 | } |
| 1261 | return opts |
| 1262 | } |
| 1263 | |
| 1264 | // safeToolCallArgs ensures tool call args are valid JSON. Returns |
| 1265 | // nil for empty or invalid input so the field is omitted. |
no test coverage detected