Venice's API doesn't support certain OpenAI-compatible parameters that Clawdbot sends by default: - `store`: Venice returns HTTP 400 with no body when this is present - `developer` role: Not supported by Venice's API This adds VENICE_COMPAT settings (supportsStore: false, supportsDeveloperRole: false) to all Venice model definitions, both from the static catalog and dynamically discovered models. Fixes issues reported in PR #1666 where users experienced silent failures (HTTP 400, no body) when using Venice models. Co-authored-by: jonisjongithub <jonisjongithub@users.noreply.github.com> Co-authored-by: Clawdbot <bot@clawd.bot>
24 lines
716 B
Swift
24 lines
716 B
Swift
import Foundation
|
|
import Testing
|
|
@testable import Swabble
|
|
|
|
@Test
|
|
func configRoundTrip() throws {
|
|
var cfg = SwabbleConfig()
|
|
cfg.wake.word = "robot"
|
|
let url = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString + ".json")
|
|
defer { try? FileManager.default.removeItem(at: url) }
|
|
|
|
try ConfigLoader.save(cfg, at: url)
|
|
let loaded = try ConfigLoader.load(at: url)
|
|
#expect(loaded.wake.word == "robot")
|
|
#expect(loaded.hook.prefix.contains("Voice swabble"))
|
|
}
|
|
|
|
@Test
|
|
func configMissingThrows() {
|
|
#expect(throws: ConfigError.missingConfig) {
|
|
_ = try ConfigLoader.load(at: FileManager.default.temporaryDirectory.appendingPathComponent("nope.json"))
|
|
}
|
|
}
|