MCPcopy Create free account
hub / github.com/anomalyco/opencode / parseModelSelection

Function parseModelSelection

packages/opencode/src/acp/config-option.ts:115–146  ·  view source on GitHub ↗
(modelId: string, providers: readonly ConfigOptionProvider[])

Source from the content-addressed store, hash-verified

113}
114
115export function parseModelSelection(modelId: string, providers: readonly ConfigOptionProvider[]): ModelSelection {
116 const provider = providers.find((item) => modelId.startsWith(`${item.id}/`))
117 if (provider) {
118 const modelID = modelId.slice(provider.id.length + 1)
119 if (provider.models[modelID]) {
120 return { model: { providerID: provider.id, modelID } }
121 }
122
123 const separator = modelID.lastIndexOf("/")
124 if (separator > -1) {
125 const baseModelID = modelID.slice(0, separator)
126 const variant = modelID.slice(separator + 1)
127 if (provider.models[baseModelID]?.variants?.[variant]) {
128 return { model: { providerID: provider.id, modelID: baseModelID }, variant }
129 }
130 }
131
132 return { model: { providerID: provider.id, modelID } }
133 }
134
135 const separator = modelId.indexOf("/")
136 if (separator === -1) {
137 return { model: { providerID: modelId, modelID: "" } }
138 }
139
140 return {
141 model: {
142 providerID: modelId.slice(0, separator),
143 modelID: modelId.slice(separator + 1),
144 },
145 }
146}
147
148export function formatCurrentModelId(input: {
149 model: ModelSelection["model"]

Callers 2

parseSelectedModelFunction · 0.90

Calls 1

findMethod · 0.65

Tested by

no test coverage detected