Public declaration syntax from forge-swift/Sources/ForgeCore/Tool.swift Original source SHA-256: 6df75118c89ff7e86caf8876b2b23188463f5f708f369390a594046a55e21dce Function bodies and constant values are omitted. This is not the complete implementation. Source line 25 public enum ToolTier: String, Codable, Sendable, Hashable, CaseIterable Source line 44 public var requiresAuthorization: Bool Source line 50 public var description: String Source line 61 public struct ToolDefinition: Codable, Sendable, Equatable Source line 63 public let name: String /// Human-readable description shown to the model. public let toolDescription: String /// JSON Schema defining the tool's parameters. public let parameters: JsonSchema /// Tier classification (Platform/External/Embedded). public let tier: ToolTier private enum CodingKeys: String, CodingKey Source line 65 public let toolDescription: String /// JSON Schema defining the tool's parameters. public let parameters: JsonSchema /// Tier classification (Platform/External/Embedded). public let tier: ToolTier private enum CodingKeys: String, CodingKey Source line 67 public let parameters: JsonSchema /// Tier classification (Platform/External/Embedded). public let tier: ToolTier private enum CodingKeys: String, CodingKey Source line 69 public let tier: ToolTier private enum CodingKeys: String, CodingKey Source line 82 public static func builder(_ name: String) -> ToolDefinitionBuilder Source line 100 public struct ToolDefinitionBuilder: Sendable Source line 114 public func description(_ desc: String) -> ToolDefinitionBuilder Source line 124 public func parameters(_ schema: JsonSchema) -> ToolDefinitionBuilder Source line 134 public func tier(_ tier: ToolTier) -> ToolDefinitionBuilder Source line 143 public func build() -> ToolDefinition Source line 158 public struct ToolCall: Codable, Sendable, Equatable Source line 160 public let id: String /// The tool name being invoked. public let name: String /// JSON arguments for the tool. public let arguments: JSONValue public init(id: String, name: String, arguments: JSONValue) Source line 162 public let name: String /// JSON arguments for the tool. public let arguments: JSONValue public init(id: String, name: String, arguments: JSONValue) Source line 164 public let arguments: JSONValue public init(id: String, name: String, arguments: JSONValue) Source line 166 public init(id: String, name: String, arguments: JSONValue) Source line 178 public struct ToolResult: Codable, Sendable, Equatable Source line 180 public let toolCallId: String /// The tool name. public let name: String /// The result content (stringified). public let content: String /// Whether the tool execution resulted in an error. public let isError: Bool public init(toolCallId: String, name: String, content: String, isError: Bool) Source line 182 public let name: String /// The result content (stringified). public let content: String /// Whether the tool execution resulted in an error. public let isError: Bool public init(toolCallId: String, name: String, content: String, isError: Bool) Source line 184 public let content: String /// Whether the tool execution resulted in an error. public let isError: Bool public init(toolCallId: String, name: String, content: String, isError: Bool) Source line 186 public let isError: Bool public init(toolCallId: String, name: String, content: String, isError: Bool) Source line 188 public init(toolCallId: String, name: String, content: String, isError: Bool) Source line 204 public enum ToolApproval: Sendable, Equatable Source line 218 public init(from decoder: Decoder) throws Source line 240 public func encode(to encoder: Encoder) throws