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>
48 lines
1.7 KiB
Swift
48 lines
1.7 KiB
Swift
import ClawdbotKit
|
|
import ClawdbotProtocol
|
|
import Foundation
|
|
|
|
// Prefer the ClawdbotKit wrapper to keep gateway request payloads consistent.
|
|
typealias AnyCodable = ClawdbotKit.AnyCodable
|
|
typealias InstanceIdentity = ClawdbotKit.InstanceIdentity
|
|
|
|
extension AnyCodable {
|
|
var stringValue: String? { self.value as? String }
|
|
var boolValue: Bool? { self.value as? Bool }
|
|
var intValue: Int? { self.value as? Int }
|
|
var doubleValue: Double? { self.value as? Double }
|
|
var dictionaryValue: [String: AnyCodable]? { self.value as? [String: AnyCodable] }
|
|
var arrayValue: [AnyCodable]? { self.value as? [AnyCodable] }
|
|
|
|
var foundationValue: Any {
|
|
switch self.value {
|
|
case let dict as [String: AnyCodable]:
|
|
dict.mapValues { $0.foundationValue }
|
|
case let array as [AnyCodable]:
|
|
array.map(\.foundationValue)
|
|
default:
|
|
self.value
|
|
}
|
|
}
|
|
}
|
|
|
|
extension ClawdbotProtocol.AnyCodable {
|
|
var stringValue: String? { self.value as? String }
|
|
var boolValue: Bool? { self.value as? Bool }
|
|
var intValue: Int? { self.value as? Int }
|
|
var doubleValue: Double? { self.value as? Double }
|
|
var dictionaryValue: [String: ClawdbotProtocol.AnyCodable]? { self.value as? [String: ClawdbotProtocol.AnyCodable] }
|
|
var arrayValue: [ClawdbotProtocol.AnyCodable]? { self.value as? [ClawdbotProtocol.AnyCodable] }
|
|
|
|
var foundationValue: Any {
|
|
switch self.value {
|
|
case let dict as [String: ClawdbotProtocol.AnyCodable]:
|
|
dict.mapValues { $0.foundationValue }
|
|
case let array as [ClawdbotProtocol.AnyCodable]:
|
|
array.map(\.foundationValue)
|
|
default:
|
|
self.value
|
|
}
|
|
}
|
|
}
|