import Foundation import SaplingCore public final class EmbeddedGitProvider: GitProvider { public let displayName = "Embedded Git" public init() {} public func initRepository(at path: URL) async throws -> GitRepository { throw GitProviderError.notImplemented("Embedded Git init is reserved for the future iOS provider.") } public func clone(remoteURL: URL, to destinationURL: URL) async throws -> GitRepository { throw GitProviderError.notImplemented("Embedded Git clone is reserved for the future iOS provider.") } public func repository(at path: URL) -> any Repository { EmbeddedRepository(rootURL: path) } } private struct EmbeddedRepository: Repository { let rootURL: URL func status() async throws -> [GitFileStatus] { throw unsupported() } func add(paths: [String]) async throws { throw unsupported() } func commit(message: String) async throws -> GitCommit { throw unsupported() } func push(remote: String?, branch: String?) async throws { throw unsupported() } func pull(remote: String?, branch: String?) async throws { throw unsupported() } func createBranch(named name: String) async throws -> GitBranch { throw unsupported() } func switchBranch(named name: String) async throws -> GitBranch { throw unsupported() } func merge(branch name: String) async throws { throw unsupported() } func addSubmodule(remoteURL: URL, path: String) async throws -> Subproject { throw unsupported() } func removeSubmodule(path: String) async throws { throw unsupported() } func updateSubmodules(initSubmodules: Bool, recursive: Bool) async throws { throw unsupported() } func syncSubmodules(recursive: Bool) async throws { throw unsupported() } private func unsupported() -> GitProviderError { .notImplemented("Embedded Git repository operations are intentionally stubbed for iOS.") } }