Public declaration syntax from forge-swift/Sources/ForgeCore/Provider.swift Original source SHA-256: 74a2d6d36da0307a4808db60e16cfd537250ac8a2ef035765146ef4da67b117d Function bodies and constant values are omitted. This is not the complete implementation. Source line 23 public struct ProviderRef: Codable, Sendable, Hashable, Equatable Source line 25 public let namespace: String /// The model name (e.g., "gpt-4o"). public let model: String /// The full reference string (e.g., "openai:gpt-4o"). public let full: String /// Parses a provider reference string. /// /// - Parameter input: A string in `namespace:model` format. /// - Returns: The parsed `ProviderRef`. /// - Throws: `ForgeError.invalidProviderRef` if the input does not contain /// exactly one colon separator, or if either part is empty. public static func parse(_ input: String) throws -> ProviderRef Source line 27 public let model: String /// The full reference string (e.g., "openai:gpt-4o"). public let full: String /// Parses a provider reference string. /// /// - Parameter input: A string in `namespace:model` format. /// - Returns: The parsed `ProviderRef`. /// - Throws: `ForgeError.invalidProviderRef` if the input does not contain /// exactly one colon separator, or if either part is empty. public static func parse(_ input: String) throws -> ProviderRef Source line 29 public let full: String /// Parses a provider reference string. /// /// - Parameter input: A string in `namespace:model` format. /// - Returns: The parsed `ProviderRef`. /// - Throws: `ForgeError.invalidProviderRef` if the input does not contain /// exactly one colon separator, or if either part is empty. public static func parse(_ input: String) throws -> ProviderRef Source line 37 public static func parse(_ input: String) throws -> ProviderRef Source line 47 public var description: String Source line 53 public struct ProviderMetadata: Codable, Sendable Source line 55 public let name: String /// Provider namespace (e.g., "openai"). public let namespace: String /// Whether the provider supports tool calling. public let supportsToolCalling: Bool /// Whether the provider supports structured output. public let supportsStructuredOutput: Bool /// Whether the provider supports streaming. public let supportsStreaming: Bool /// Whether the provider supports image input. public let supportsImageInput: Bool /// Provider-session runtime capabilities for coding-style integrations. public let runtimeCapabilities: ProviderRuntimeCapabilities public init( name: String, namespace: String, supportsToolCalling: Bool, supportsStructuredOutput: Bool, supportsStreaming: Bool, supportsImageInput: Bool, runtimeCapabilities: ProviderRuntimeCapabilities; Source line 57 public let namespace: String /// Whether the provider supports tool calling. public let supportsToolCalling: Bool /// Whether the provider supports structured output. public let supportsStructuredOutput: Bool /// Whether the provider supports streaming. public let supportsStreaming: Bool /// Whether the provider supports image input. public let supportsImageInput: Bool /// Provider-session runtime capabilities for coding-style integrations. public let runtimeCapabilities: ProviderRuntimeCapabilities public init( name: String, namespace: String, supportsToolCalling: Bool, supportsStructuredOutput: Bool, supportsStreaming: Bool, supportsImageInput: Bool, runtimeCapabilities: ProviderRuntimeCapabilities; Source line 59 public let supportsToolCalling: Bool /// Whether the provider supports structured output. public let supportsStructuredOutput: Bool /// Whether the provider supports streaming. public let supportsStreaming: Bool /// Whether the provider supports image input. public let supportsImageInput: Bool /// Provider-session runtime capabilities for coding-style integrations. public let runtimeCapabilities: ProviderRuntimeCapabilities public init( name: String, namespace: String, supportsToolCalling: Bool, supportsStructuredOutput: Bool, supportsStreaming: Bool, supportsImageInput: Bool, runtimeCapabilities: ProviderRuntimeCapabilities; Source line 61 public let supportsStructuredOutput: Bool /// Whether the provider supports streaming. public let supportsStreaming: Bool /// Whether the provider supports image input. public let supportsImageInput: Bool /// Provider-session runtime capabilities for coding-style integrations. public let runtimeCapabilities: ProviderRuntimeCapabilities public init( name: String, namespace: String, supportsToolCalling: Bool, supportsStructuredOutput: Bool, supportsStreaming: Bool, supportsImageInput: Bool, runtimeCapabilities: ProviderRuntimeCapabilities; Source line 63 public let supportsStreaming: Bool /// Whether the provider supports image input. public let supportsImageInput: Bool /// Provider-session runtime capabilities for coding-style integrations. public let runtimeCapabilities: ProviderRuntimeCapabilities public init( name: String, namespace: String, supportsToolCalling: Bool, supportsStructuredOutput: Bool, supportsStreaming: Bool, supportsImageInput: Bool, runtimeCapabilities: ProviderRuntimeCapabilities; Source line 65 public let supportsImageInput: Bool /// Provider-session runtime capabilities for coding-style integrations. public let runtimeCapabilities: ProviderRuntimeCapabilities public init( name: String, namespace: String, supportsToolCalling: Bool, supportsStructuredOutput: Bool, supportsStreaming: Bool, supportsImageInput: Bool, runtimeCapabilities: ProviderRuntimeCapabilities; Source line 67 public let runtimeCapabilities: ProviderRuntimeCapabilities public init( name: String, namespace: String, supportsToolCalling: Bool, supportsStructuredOutput: Bool, supportsStreaming: Bool, supportsImageInput: Bool, runtimeCapabilities: ProviderRuntimeCapabilities; Source line 69 public init( name: String, namespace: String, supportsToolCalling: Bool, supportsStructuredOutput: Bool, supportsStreaming: Bool, supportsImageInput: Bool, runtimeCapabilities: ProviderRuntimeCapabilities; Source line 89 public enum RuntimeCapability: String, Codable, Sendable, Hashable, CaseIterable Source line 103 public struct ProviderRuntimeCapabilities: Codable, Sendable, Equatable Source line 104 public let baselineContract: Bool public let capabilities: Set public init( baselineContract: Bool; Source line 105 public let capabilities: Set public init( baselineContract: Bool; Source line 107 public init( baselineContract: Bool; Source line 115 public static func baseline() -> ProviderRuntimeCapabilities Source line 119 public func withCapability(_ capability: RuntimeCapability) -> ProviderRuntimeCapabilities Source line 128 public func supports(_ capability: RuntimeCapability) -> Bool Source line 133 public struct ProviderNegotiationRequest: Codable, Sendable, Equatable Source line 134 public let providerRef: String public let requireBaselineContract: Bool public let requiredCapabilities: [RuntimeCapability] public init( providerRef: String, requireBaselineContract: Bool, requiredCapabilities: [RuntimeCapability] ) Source line 135 public let requireBaselineContract: Bool public let requiredCapabilities: [RuntimeCapability] public init( providerRef: String, requireBaselineContract: Bool, requiredCapabilities: [RuntimeCapability] ) Source line 136 public let requiredCapabilities: [RuntimeCapability] public init( providerRef: String, requireBaselineContract: Bool, requiredCapabilities: [RuntimeCapability] ) Source line 138 public init( providerRef: String, requireBaselineContract: Bool, requiredCapabilities: [RuntimeCapability] ) Source line 149 public struct ProviderNegotiationResult: Codable, Sendable, Equatable Source line 150 public let providerRef: String public let baselineContract: Bool public let negotiatedCapabilities: [RuntimeCapability] } public enum ProviderSessionState: String, Codable, Sendable, Hashable, CaseIterable Source line 151 public let baselineContract: Bool public let negotiatedCapabilities: [RuntimeCapability] } public enum ProviderSessionState: String, Codable, Sendable, Hashable, CaseIterable Source line 152 public let negotiatedCapabilities: [RuntimeCapability] } public enum ProviderSessionState: String, Codable, Sendable, Hashable, CaseIterable Source line 155 public enum ProviderSessionState: String, Codable, Sendable, Hashable, CaseIterable Source line 167 public struct ProviderUsageSummary: Codable, Sendable, Equatable Source line 168 public let inputTokens: UInt64 public let outputTokens: UInt64 public let totalTokens: UInt64 public init(inputTokens: UInt64; Source line 169 public let outputTokens: UInt64 public let totalTokens: UInt64 public init(inputTokens: UInt64; Source line 170 public let totalTokens: UInt64 public init(inputTokens: UInt64; Source line 172 public init(inputTokens: UInt64; Source line 179 public struct ProviderSessionEvent: Codable, Sendable, Equatable Source line 180 public let sessionId: String public let state: ProviderSessionState public let message: String? public let usage: ProviderUsageSummary? public init( sessionId: String, state: ProviderSessionState, message: String?; Source line 181 public let state: ProviderSessionState public let message: String? public let usage: ProviderUsageSummary? public init( sessionId: String, state: ProviderSessionState, message: String?; Source line 182 public let message: String? public let usage: ProviderUsageSummary? public init( sessionId: String, state: ProviderSessionState, message: String?; Source line 183 public let usage: ProviderUsageSummary? public init( sessionId: String, state: ProviderSessionState, message: String?; Source line 185 public init( sessionId: String, state: ProviderSessionState, message: String?; Source line 207 public final class ProviderRegistry: @unchecked Sendable Source line 213 public init() Source line 221 public func register(_ providerRef: String, model: any LanguageModel) throws Source line 230 public func registerWithRuntime( _ providerRef: String, model: any LanguageModel, runtimeCapabilities: ProviderRuntimeCapabilities ) throws Source line 255 public func get(_ providerRef: String) -> (any LanguageModel)? Source line 266 public func require(_ providerRef: String) throws -> any LanguageModel Source line 277 public func getMetadata(_ providerRef: String) -> ProviderMetadata? Source line 286 public func list() -> [String] Source line 293 public var count: Int Source line 300 public var isEmpty: Bool Source line 307 public func negotiate( _ request: ProviderNegotiationRequest ) throws -> ProviderNegotiationResult Source line 340 public enum ProviderFamily: String, Codable, Sendable, Hashable, CaseIterable Source line 346 public enum AuthStrategy: String, Codable, Sendable, Hashable, CaseIterable Source line 354 public struct ProviderPreset: Codable, Sendable, Equatable Source line 355 public let namespace: String public let family: ProviderFamily public let authStrategy: AuthStrategy public init(namespace: String, family: ProviderFamily, authStrategy: AuthStrategy) Source line 356 public let family: ProviderFamily public let authStrategy: AuthStrategy public init(namespace: String, family: ProviderFamily, authStrategy: AuthStrategy) Source line 357 public let authStrategy: AuthStrategy public init(namespace: String, family: ProviderFamily, authStrategy: AuthStrategy) Source line 359 public init(namespace: String, family: ProviderFamily, authStrategy: AuthStrategy) Source line 366 public typealias ProviderEnvironment; Source line 367 public typealias ProviderGenerateHandler; Source line 368 public typealias ProviderStreamHandler; Source line 370 public struct ProviderExecutionRequest: Sendable Source line 371 public let providerRef: String public let namespace: String public let modelId: String public let family: ProviderFamily public let authStrategy: AuthStrategy public let credential: String public let baseURL: String? public let messages: [ModelMessage] public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 372 public let namespace: String public let modelId: String public let family: ProviderFamily public let authStrategy: AuthStrategy public let credential: String public let baseURL: String? public let messages: [ModelMessage] public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 373 public let modelId: String public let family: ProviderFamily public let authStrategy: AuthStrategy public let credential: String public let baseURL: String? public let messages: [ModelMessage] public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 374 public let family: ProviderFamily public let authStrategy: AuthStrategy public let credential: String public let baseURL: String? public let messages: [ModelMessage] public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 375 public let authStrategy: AuthStrategy public let credential: String public let baseURL: String? public let messages: [ModelMessage] public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 376 public let credential: String public let baseURL: String? public let messages: [ModelMessage] public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 377 public let baseURL: String? public let messages: [ModelMessage] public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 378 public let messages: [ModelMessage] public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 379 public let tools: [ToolDefinition] public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 380 public let options: GenerateOptions public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 382 public init( providerRef: String, namespace: String, modelId: String, family: ProviderFamily, authStrategy: AuthStrategy, credential: String, baseURL: String?, messages: [ModelMessage], tools: [ToolDefinition], options: GenerateOptions ) Source line 407 public struct ProviderInstallOptions: Sendable Source line 408 public let environment: ProviderEnvironment? public let generate: ProviderGenerateHandler? public let stream: ProviderStreamHandler? public init( environment: ProviderEnvironment?; Source line 409 public let generate: ProviderGenerateHandler? public let stream: ProviderStreamHandler? public init( environment: ProviderEnvironment?; Source line 410 public let stream: ProviderStreamHandler? public init( environment: ProviderEnvironment?; Source line 412 public init( environment: ProviderEnvironment?; Source line 474 public func approvedCodingProviderPresets() -> [ProviderPreset] Source line 484 public func approvedDirectProviderPresets() -> [ProviderPreset] Source line 502 public func approvedGatewayProviderPresets() -> [ProviderPreset] Source line 512 public func registerOfficialCodingProviders( _ registry: ProviderRegistry, options: ProviderInstallOptions; Source line 643 public func registerDefaultCoreDirectProviders( _ registry: ProviderRegistry, options: ProviderInstallOptions; Source line 655 public func registerOpenAiModel( _ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 683 public func registerAnthropicModel( _ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 711 public func registerGoogleModel( _ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 739 public func registerXaiModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 744 public func registerDeepSeekModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 749 public func registerMistralModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 754 public func registerCohereModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 759 public func registerGroqModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 764 public func registerMoonshotModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 769 public func registerZaiModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 774 public func registerMiniMaxModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 779 public func registerOpenRouterModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 784 public func registerBedrockModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 808 public func registerVertexAiModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 832 public func registerMicrosoftFoundryModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions; Source line 856 public func registerFoundryModel(_ registry: ProviderRegistry, modelId: String, options: ProviderInstallOptions;