add hermes agent provider

This commit is contained in:
2026-05-04 21:52:39 -07:00
parent 195e157e1a
commit 8b580fd3e1
27 changed files with 359 additions and 83 deletions

View File

@@ -141,7 +141,8 @@ final class SybilViewModel {
private let fallbackModels: [Provider: [String]] = [
.openai: ["gpt-4.1-mini"],
.anthropic: ["claude-3-5-sonnet-latest"],
.xai: ["grok-3-mini"]
.xai: ["grok-3-mini"],
.hermesAgent: ["hermes-agent"]
]
init(
@@ -160,6 +161,12 @@ final class SybilViewModel {
modelOptions(for: provider)
}
var providerOptions: [Provider] {
Provider.allCases.filter { candidate in
candidate != .hermesAgent || modelCatalog[candidate] != nil
}
}
func modelOptions(for candidate: Provider) -> [String] {
let serverModels = modelCatalog[candidate]?.models ?? []
if !serverModels.isEmpty {
@@ -893,6 +900,11 @@ final class SybilViewModel {
}
private func syncModelSelectionWithServerCatalog() {
if !providerOptions.contains(provider), let firstProvider = providerOptions.first {
provider = firstProvider
settings.preferredProvider = firstProvider
}
if !providerModelOptions.contains(model), let first = providerModelOptions.first {
model = first
settings.preferredModelByProvider[provider] = first