Public declaration syntax from forge-swift/Sources/ForgeAgent/Agent.swift Original source SHA-256: a79107d6df9f886d47808a1f37f5c398ec7052b76bad9a89fb9a3a17e3f265f3 Function bodies and constant values are omitted. This is not the complete implementation. Source line 19 public struct AgentConfig: Sendable Source line 21 public let providerRef: String /// System instruction for the agent. public let systemPrompt: String? /// Maximum number of tool loop steps before stopping. public let maxSteps: Int /// Maximum total tokens before stopping. public let maxTokens: UInt64 /// Generation options for inference calls. public let options: GenerateOptions /// Agent name for logging and telemetry. public let name: String? public init( providerRef: String, systemPrompt: String?; Source line 23 public let systemPrompt: String? /// Maximum number of tool loop steps before stopping. public let maxSteps: Int /// Maximum total tokens before stopping. public let maxTokens: UInt64 /// Generation options for inference calls. public let options: GenerateOptions /// Agent name for logging and telemetry. public let name: String? public init( providerRef: String, systemPrompt: String?; Source line 25 public let maxSteps: Int /// Maximum total tokens before stopping. public let maxTokens: UInt64 /// Generation options for inference calls. public let options: GenerateOptions /// Agent name for logging and telemetry. public let name: String? public init( providerRef: String, systemPrompt: String?; Source line 27 public let maxTokens: UInt64 /// Generation options for inference calls. public let options: GenerateOptions /// Agent name for logging and telemetry. public let name: String? public init( providerRef: String, systemPrompt: String?; Source line 29 public let options: GenerateOptions /// Agent name for logging and telemetry. public let name: String? public init( providerRef: String, systemPrompt: String?; Source line 31 public let name: String? public init( providerRef: String, systemPrompt: String?; Source line 33 public init( providerRef: String, systemPrompt: String?; Source line 53 public struct AgentOutput: Sendable Source line 55 public let text: String /// All messages in the conversation (including tool calls and results). public let messages: [ModelMessage] /// Total usage across all inference calls. public let usage: Usage /// Number of tool loop steps executed. public let steps: Int /// The finish reason of the final inference call. public let finishReason: FinishReason public init( text: String, messages: [ModelMessage], usage: Usage, steps: Int, finishReason: FinishReason ) Source line 57 public let messages: [ModelMessage] /// Total usage across all inference calls. public let usage: Usage /// Number of tool loop steps executed. public let steps: Int /// The finish reason of the final inference call. public let finishReason: FinishReason public init( text: String, messages: [ModelMessage], usage: Usage, steps: Int, finishReason: FinishReason ) Source line 59 public let usage: Usage /// Number of tool loop steps executed. public let steps: Int /// The finish reason of the final inference call. public let finishReason: FinishReason public init( text: String, messages: [ModelMessage], usage: Usage, steps: Int, finishReason: FinishReason ) Source line 61 public let steps: Int /// The finish reason of the final inference call. public let finishReason: FinishReason public init( text: String, messages: [ModelMessage], usage: Usage, steps: Int, finishReason: FinishReason ) Source line 63 public let finishReason: FinishReason public init( text: String, messages: [ModelMessage], usage: Usage, steps: Int, finishReason: FinishReason ) Source line 65 public init( text: String, messages: [ModelMessage], usage: Usage, steps: Int, finishReason: FinishReason ) Source line 88 public protocol ForgeAgent: Sendable