mirror of
https://github.com/hanzoai/swift-sdk.git
synced 2026-10-30 18:20:19 +00:00
The projection these were generated from predated the compute migration, so they described /v1/visor — which the API serves at zero paths now. No /v1/visor path survives here.
76 lines
3.2 KiB
Swift
76 lines
3.2 KiB
Swift
//
|
|
// BuildSummary.swift
|
|
//
|
|
// Generated by openapi-generator
|
|
// https://openapi-generator.tech
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public struct BuildSummary: Sendable, Codable, ParameterConvertible, Hashable {
|
|
|
|
/** Agent is the label the surface that did the work calls itself by. */
|
|
public var agent: String?
|
|
/** EndedAt is when it finished, same format. Empty means it is still going. */
|
|
public var endedAt: String?
|
|
/** Org and Project are the build's public ADDRESS — the pair the full story is read at, and the pair a visitor sees in the URL bar. Not a tenant key: this index is anonymous and lists only what authors published. */
|
|
public var org: String?
|
|
/** Project is the product's slug, the second half of that address. */
|
|
public var project: String?
|
|
/** Repo is the repository the work was done in, as the session reported it. */
|
|
public var repo: String?
|
|
/** Session is the agent session behind the build, and the value its commits name in their `Hanzo-Session:` trailer. */
|
|
public var session: String?
|
|
/** StartedAt is when the session opened, RFC 3339 in UTC. */
|
|
public var startedAt: String?
|
|
/** Status is the session's own: running, paused, done or error — so a card can show a build still being written. */
|
|
public var status: String?
|
|
/** Title is the human line for the card. Sent even when empty, like every field here, because that is what this route has always sent. */
|
|
public var title: String?
|
|
/** Turns is HOW MANY turns the transcript holds — a COUNT, unlike the `turn` on each turn of the full story, which is that turn's position. The full read returns at most 1000 of them; this number is not capped. */
|
|
public var turns: Int64?
|
|
|
|
public init(agent: String? = nil, endedAt: String? = nil, org: String? = nil, project: String? = nil, repo: String? = nil, session: String? = nil, startedAt: String? = nil, status: String? = nil, title: String? = nil, turns: Int64? = nil) {
|
|
self.agent = agent
|
|
self.endedAt = endedAt
|
|
self.org = org
|
|
self.project = project
|
|
self.repo = repo
|
|
self.session = session
|
|
self.startedAt = startedAt
|
|
self.status = status
|
|
self.title = title
|
|
self.turns = turns
|
|
}
|
|
|
|
public enum CodingKeys: String, CodingKey, CaseIterable {
|
|
case agent
|
|
case endedAt
|
|
case org
|
|
case project
|
|
case repo
|
|
case session
|
|
case startedAt
|
|
case status
|
|
case title
|
|
case turns
|
|
}
|
|
|
|
// Encodable protocol methods
|
|
|
|
public func encode(to encoder: Encoder) throws {
|
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
try container.encodeIfPresent(agent, forKey: .agent)
|
|
try container.encodeIfPresent(endedAt, forKey: .endedAt)
|
|
try container.encodeIfPresent(org, forKey: .org)
|
|
try container.encodeIfPresent(project, forKey: .project)
|
|
try container.encodeIfPresent(repo, forKey: .repo)
|
|
try container.encodeIfPresent(session, forKey: .session)
|
|
try container.encodeIfPresent(startedAt, forKey: .startedAt)
|
|
try container.encodeIfPresent(status, forKey: .status)
|
|
try container.encodeIfPresent(title, forKey: .title)
|
|
try container.encodeIfPresent(turns, forKey: .turns)
|
|
}
|
|
}
|
|
|