import CodexBarCoreimport Foundation struct ProviderRuntimeContext { let provider: UsageProvider let settings: SettingsStore let store: UsageStore} enum ProviderRuntimeAction { case forceSessionRefresh case openAIWebAccessToggled(Bool)} @MainActorprotocol ProviderRuntime: AnyObject { var id: UsageProvider { get } func start(context: ProviderRuntimeContext) func stop(context: ProviderRuntimeContext) func settingsDidChange(context: ProviderRuntimeContext) func providerDidRefresh(context: ProviderRuntimeContext, provider: UsageProvider) func providerDidFail(context: ProviderRuntimeContext, provider: UsageProvider, error: Error) func perform(action: ProviderRuntimeAction, context: ProviderRuntimeContext) async} extension ProviderRuntime { func start(context _: ProviderRuntimeContext) {} func stop(context _: ProviderRuntimeContext) {} func settingsDidChange(context _: ProviderRuntimeContext) {} func providerDidRefresh(context _: ProviderRuntimeContext, provider _: UsageProvider) {} func providerDidFail(context _: ProviderRuntimeContext, provider _: UsageProvider, error _: Error) {} func perform(action _: ProviderRuntimeAction, context _: ProviderRuntimeContext) async {}}
import CodexBarCore
import Foundation
struct ProviderRuntimeContext {
let provider: UsageProvider
let settings: SettingsStore
let store: UsageStore
}
enum ProviderRuntimeAction {
case forceSessionRefresh
case openAIWebAccessToggled(Bool)
}
@MainActor
protocol ProviderRuntime: AnyObject {
var id: UsageProvider { get }
func start(context: ProviderRuntimeContext)
func stop(context: ProviderRuntimeContext)
func settingsDidChange(context: ProviderRuntimeContext)
func providerDidRefresh(context: ProviderRuntimeContext, provider: UsageProvider)
func providerDidFail(context: ProviderRuntimeContext, provider: UsageProvider, error: Error)
func perform(action: ProviderRuntimeAction, context: ProviderRuntimeContext) async
}
extension ProviderRuntime {
func start(context _: ProviderRuntimeContext) {}
func stop(context _: ProviderRuntimeContext) {}
func settingsDidChange(context _: ProviderRuntimeContext) {}
func providerDidRefresh(context _: ProviderRuntimeContext, provider _: UsageProvider) {}
func providerDidFail(context _: ProviderRuntimeContext, provider _: UsageProvider, error _: Error) {}
func perform(action _: ProviderRuntimeAction, context _: ProviderRuntimeContext) async {}
}