@@ -1,10 +1,12 @@
11package agent
22
33import (
4+ "bytes"
45 "cmp"
56 "context"
67 "encoding/json"
78 "errors"
9+ "io"
810 "log/slog"
911 "slices"
1012 "strings"
@@ -126,24 +128,29 @@ func (c *coordinator) Run(ctx context.Context, sessionID string, prompt string,
126128func getProviderOptions(model Model) ai.ProviderOptions {
127129 options := ai.ProviderOptions{}
128130
129− cfgOpts := "{}"
130− catwalkOpts := "{}"
131+ cfgOpts := []byte("{}")
132+ catwalkOpts := []byte("{}")
131133
132134 if model.ModelCfg.ProviderOptions != nil {
133135 data, err := json.Marshal(model.ModelCfg.ProviderOptions)
134136 if err == nil {
135− cfgOpts = string(data)
137+ cfgOpts = data
136138 }
137139 }
138140
139141 if model.CatwalkCfg.Options.ProviderOptions != nil {
140142 data, err := json.Marshal(model.CatwalkCfg.Options.ProviderOptions)
141143 if err == nil {
142− catwalkOpts = string(data)
144+ catwalkOpts = data
143145 }
144146 }
145147
146− got, err := jsons.Merge([]string{catwalkOpts, cfgOpts})
148+ readers := []io.Reader{
149+ bytes.NewReader(catwalkOpts),
150+ bytes.NewReader(cfgOpts),
151+ }
152+
153+ got, err := jsons.Merge(readers)
147154 if err != nil {
148155 slog.Error("Could not merge call config", "err", err)
149156 return options