native macOS codings agent orchestrator prowl.onev.cat
Something went wrong. Try again.
1.5 kB · 46 lines
Swift
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import ComposableArchitectureimport Foundationimport ProwlCLIShared
struct WorktreeInfoWatcherClient { var send: @MainActor @Sendable (Command) -> Void var events: @MainActor @Sendable () -> AsyncStream<Event>
enum Command: Equatable { case setWorktrees([Worktree]) case setOpenedWorktreeIDs(Set<Worktree.ID>) case setSelectedWorktreeID(Worktree.ID?) case refreshLineChanges case setPullRequestTrackingEnabled(Bool) case setPlainRepositoryRoots([URL]) case stop }
enum Event: Equatable { case branchChanged(worktreeID: Worktree.ID) case filesChanged(worktreeID: Worktree.ID) case repositoryWorktreesChanged(repositoryRootURL: URL) case repositoryRemoteConfigurationChanged(repositoryRootURL: URL) case repositoryPullRequestRefresh(repositoryRootURL: URL, worktreeIDs: [Worktree.ID]) case plainRepositoryBecameGitRepository(URL) }}
extension WorktreeInfoWatcherClient: DependencyKey { static let liveValue = WorktreeInfoWatcherClient( send: { _ in fatalError("WorktreeInfoWatcherClient.send not configured") }, events: { fatalError("WorktreeInfoWatcherClient.events not configured") } )
static let testValue = WorktreeInfoWatcherClient( send: { _ in }, events: { AsyncStream { $0.finish() } } )}
extension DependencyValues { var worktreeInfoWatcher: WorktreeInfoWatcherClient { get { self[WorktreeInfoWatcherClient.self] } set { self[WorktreeInfoWatcherClient.self] = newValue } }}