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

Function modelSuggestions

packages/opencode/src/provider/provider.ts:1273–1300  ·  view source on GitHub ↗
(provider: Info | undefined, modelID: ModelV2.ID, enableExperimentalModels: boolean)

Source from the content-addressed store, hash-verified

1271}
1272
1273function modelSuggestions(provider: Info | undefined, modelID: ModelV2.ID, enableExperimentalModels: boolean) {
1274 const available = provider
1275 ? Object.keys(provider.models).filter((id) => {
1276 const model = provider.models[id]
1277 if (model.status === "deprecated") return false
1278 if (model.status === "alpha" && !enableExperimentalModels) return false
1279 return true
1280 })
1281 : []
1282 const fuzzy = fuzzysort.go(modelID, available, { limit: 3, threshold: -10000 }).map((m) => m.target)
1283 if (fuzzy.length) return fuzzy
1284 const query = modelID
1285 .toLowerCase()
1286 .split(/[^a-z0-9]+/)
1287 .filter((part) => part.length > 1)
1288 return sortBy(
1289 available
1290 .map((id) => ({
1291 id,
1292 score: query.filter((part) => id.toLowerCase().includes(part)).length,
1293 }))
1294 .filter((item) => item.score > 0),
1295 [(item) => item.score, "desc"],
1296 [(item) => item.id, "asc"],
1297 )
1298 .slice(0, 3)
1299 .map((item) => item.id)
1300}
1301
1302const layer = Layer.effect(
1303 Service,

Callers 1

provider.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected