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>
42 lines
1.1 KiB
Swift
42 lines
1.1 KiB
Swift
import Foundation
|
|
|
|
public enum LogLevel: String, Comparable, CaseIterable, Sendable {
|
|
case trace, debug, info, warn, error
|
|
|
|
var rank: Int {
|
|
switch self {
|
|
case .trace: 0
|
|
case .debug: 1
|
|
case .info: 2
|
|
case .warn: 3
|
|
case .error: 4
|
|
}
|
|
}
|
|
|
|
public static func < (lhs: LogLevel, rhs: LogLevel) -> Bool { lhs.rank < rhs.rank }
|
|
}
|
|
|
|
public struct Logger: Sendable {
|
|
public let level: LogLevel
|
|
|
|
public init(level: LogLevel) { self.level = level }
|
|
|
|
public func log(_ level: LogLevel, _ message: String) {
|
|
guard level >= self.level else { return }
|
|
let ts = ISO8601DateFormatter().string(from: Date())
|
|
print("[\(level.rawValue.uppercased())] \(ts) | \(message)")
|
|
}
|
|
|
|
public func trace(_ msg: String) { log(.trace, msg) }
|
|
public func debug(_ msg: String) { log(.debug, msg) }
|
|
public func info(_ msg: String) { log(.info, msg) }
|
|
public func warn(_ msg: String) { log(.warn, msg) }
|
|
public func error(_ msg: String) { log(.error, msg) }
|
|
}
|
|
|
|
extension LogLevel {
|
|
public init?(configValue: String) {
|
|
self.init(rawValue: configValue.lowercased())
|
|
}
|
|
}
|