(statuses: Record<string, ModelAvailabilityEntry>)
| 84 | } |
| 85 | |
| 86 | export const buildActiveModelOptions = (statuses: Record<string, ModelAvailabilityEntry>): ActiveModelOption[] => { |
| 87 | const options: ActiveModelOption[] = []; |
| 88 | |
| 89 | ACTIVE_CLI_OPTIONS.forEach(({ id, name }) => { |
| 90 | const status = statuses?.[id]; |
| 91 | const availableModels = new Set((status?.models ?? []).map(modelId => normalizeModelId(id, modelId))); |
| 92 | const baseAvailability = Boolean(status?.available ?? status?.configured ?? true); |
| 93 | |
| 94 | getModelDefinitionsForCli(id).forEach(definition => { |
| 95 | const normalizedId = normalizeModelId(id, definition.id); |
| 96 | const isAvailable = baseAvailability && (availableModels.size === 0 || availableModels.has(normalizedId)); |
| 97 | |
| 98 | options.push({ |
| 99 | id: normalizedId, |
| 100 | name: definition.name, |
| 101 | cli: id, |
| 102 | cliName: name, |
| 103 | available: isAvailable, |
| 104 | }); |
| 105 | }); |
| 106 | }); |
| 107 | |
| 108 | return options; |
| 109 | }; |
no test coverage detected