MCPcopy Create free account
hub / github.com/coder/coder / providerMetadataToOptions

Function providerMetadataToOptions

coderd/x/chatd/chatprompt/chatprompt.go:1247–1262  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

1245// Uses fantasy.UnmarshalProviderOptions to restore registered
1246// provider-specific types. Returns nil on failure.
1247func 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.

Callers 2

partsToMessagePartsFunction · 0.85

Calls 2

UnmarshalMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected