MCPcopy Index your code
hub / github.com/anomalyco/opencode / normalize

Function normalize

packages/console/core/src/model.ts:129–164  ·  view source on GitHub ↗
(model: z.infer<typeof ModelSchema>)

Source from the content-addressed store, hash-verified

127 ),
128 models: (() => {
129 const normalize = (model: z.infer<typeof ModelSchema>) => {
130 const providers = model.providers.map((p) => ({
131 ...p,
132 priority: p.priority ?? Infinity,
133 weight: p.weight ?? 1,
134 }))
135 const composite = providers.find((p) => compositeProviders[p.id].length > 1)
136 if (!composite)
137 return {
138 trialProvider: model.trialProvider ? [model.trialProvider] : undefined,
139 providers,
140 }
141
142 const weightMulti = compositeProviders[composite.id].length
143
144 return {
145 trialProvider: (() => {
146 if (!model.trialProvider) return undefined
147 if (model.trialProvider === composite.id) return compositeProviders[composite.id].map((p) => p.id)
148 return [model.trialProvider]
149 })(),
150 providers: providers.flatMap((p) =>
151 p.id === composite.id
152 ? compositeProviders[p.id].map((sub) => ({
153 ...p,
154 id: sub.id,
155 }))
156 : [
157 {
158 ...p,
159 weight: p.weight * weightMulti,
160 },
161 ],
162 ),
163 }
164 }
165
166 return Object.fromEntries(
167 Object.entries(modelList === "lite" ? liteModels : zenModels).map(([modelId, model]) => {

Callers 1

model.tsFile · 0.70

Calls 1

findMethod · 0.65

Tested by

no test coverage detected