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

42 lines
1.3 KiB
Swift

//
// AiHistoryTotals.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
public struct AiHistoryTotals: Sendable, Codable, ParameterConvertible, Hashable {
public var cumulativeCostSaved: Double?
public var daysActive: Int?
public var events: Int?
public var rewardRate: Double?
public init(cumulativeCostSaved: Double? = nil, daysActive: Int? = nil, events: Int? = nil, rewardRate: Double? = nil) {
self.cumulativeCostSaved = cumulativeCostSaved
self.daysActive = daysActive
self.events = events
self.rewardRate = rewardRate
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case cumulativeCostSaved = "cumulative_cost_saved"
case daysActive = "days_active"
case events
case rewardRate = "reward_rate"
}
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(cumulativeCostSaved, forKey: .cumulativeCostSaved)
try container.encodeIfPresent(daysActive, forKey: .daysActive)
try container.encodeIfPresent(events, forKey: .events)
try container.encodeIfPresent(rewardRate, forKey: .rewardRate)
}
}