Files
zeekay b60f47a8bb Regenerate: the AI surface says what it answers
288 of hanzoai/ai's 294 operations now declare a response, against 1 before.
GET /v1/models, POST /v1/chat/completions, /v1/embeddings, /v1/messages —
every address a client actually calls — used to reach this client untyped,
because cloud's relay carried an operation's sentence and dropped the shapes
it named. It carries both now.

Fleet-wide the document goes from 69% to 81% of operations declaring what
comes back, which is where the ~208 new models here come from.
2026-08-28 15:52:19 -07:00

66 lines
2.3 KiB
Swift

//
// AiRouterStats.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
public struct AiRouterStats: Sendable, Codable, ParameterConvertible, Hashable {
public var byModel: [String: Int]?
public var bySource: [String: Int]?
public var byTask: [String: AiTaskStats]?
public var cost: AiCostStats?
public var org: String?
public var quality: AiQualityStats?
public var retrain: AiRetrainMeta?
public var scope: String?
public var throughput: AiThroughputStats?
public var window: AiStatsWindow?
public init(byModel: [String: Int]? = nil, bySource: [String: Int]? = nil, byTask: [String: AiTaskStats]? = nil, cost: AiCostStats? = nil, org: String? = nil, quality: AiQualityStats? = nil, retrain: AiRetrainMeta? = nil, scope: String? = nil, throughput: AiThroughputStats? = nil, window: AiStatsWindow? = nil) {
self.byModel = byModel
self.bySource = bySource
self.byTask = byTask
self.cost = cost
self.org = org
self.quality = quality
self.retrain = retrain
self.scope = scope
self.throughput = throughput
self.window = window
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case byModel = "by_model"
case bySource = "by_source"
case byTask = "by_task"
case cost
case org
case quality
case retrain
case scope
case throughput
case window
}
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(byModel, forKey: .byModel)
try container.encodeIfPresent(bySource, forKey: .bySource)
try container.encodeIfPresent(byTask, forKey: .byTask)
try container.encodeIfPresent(cost, forKey: .cost)
try container.encodeIfPresent(org, forKey: .org)
try container.encodeIfPresent(quality, forKey: .quality)
try container.encodeIfPresent(retrain, forKey: .retrain)
try container.encodeIfPresent(scope, forKey: .scope)
try container.encodeIfPresent(throughput, forKey: .throughput)
try container.encodeIfPresent(window, forKey: .window)
}
}