fix(cli): dedupe generated installer fallback models
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -127,10 +127,19 @@ describe("generateOmoConfig - model fallback system", () => {
|
||||
|
||||
//#then
|
||||
expect(agents.sisyphus.model).toBe("anthropic/claude-opus-4-6")
|
||||
expect(agents.sisyphus.fallback_models?.map((entry) => entry.model)).toContain("openai/gpt-5.4")
|
||||
expect(agents.sisyphus.fallback_models?.find((entry) => entry.model === "openai/gpt-5.4")?.variant).toBe("medium")
|
||||
expect(agents.sisyphus.fallback_models).toEqual([
|
||||
{
|
||||
model: "openai/gpt-5.4",
|
||||
variant: "medium",
|
||||
},
|
||||
])
|
||||
expect(categories.deep.model).toBe("openai/gpt-5.4")
|
||||
expect(categories.deep.fallback_models?.map((entry) => entry.model)).toContain("anthropic/claude-opus-4-6")
|
||||
expect(categories.deep.fallback_models).toEqual([
|
||||
{
|
||||
model: "anthropic/claude-opus-4-6",
|
||||
variant: "max",
|
||||
},
|
||||
])
|
||||
})
|
||||
|
||||
test("uses haiku for explore when Claude max20", () => {
|
||||
|
||||
@@ -47,12 +47,18 @@ function attachFallbackModels<T extends AgentConfig | CategoryConfig>(
|
||||
.filter((provider) => isProviderAvailable(provider, availability))
|
||||
.map((provider) => toFallbackModelObject(entry, provider))
|
||||
)
|
||||
const primaryIndex = expandedFallbacks.findIndex((entry) => entry.model === config.model)
|
||||
const uniqueFallbacks = expandedFallbacks.filter((entry, index, allEntries) =>
|
||||
allEntries.findIndex((candidate) =>
|
||||
candidate.model === entry.model &&
|
||||
candidate.variant === entry.variant
|
||||
) === index
|
||||
)
|
||||
const primaryIndex = uniqueFallbacks.findIndex((entry) => entry.model === config.model)
|
||||
if (primaryIndex === -1) {
|
||||
return config
|
||||
}
|
||||
|
||||
const fallbackModels = expandedFallbacks.slice(primaryIndex + 1)
|
||||
const fallbackModels = uniqueFallbacks.slice(primaryIndex + 1)
|
||||
if (fallbackModels.length === 0) {
|
||||
return config
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user