@@ -38,9 +38,9 @@ public class MutagenDaemon: FileSyncDaemon {
38
38
private let mutagenDaemonSocket : URL
39
39
40
40
// Non-nil when the daemon is running
41
+ var client : DaemonClient ?
41
42
private var group : MultiThreadedEventLoopGroup ?
42
43
private var channel : GRPCChannel ?
43
- private var client : DaemonClient ?
44
44
45
45
// Protect start & stop transitions against re-entrancy
46
46
private let transition = AsyncSemaphore ( value: 1 )
@@ -293,59 +293,6 @@ public class MutagenDaemon: FileSyncDaemon {
293
293
}
294
294
}
295
295
296
-
297
- extension MutagenDaemon {
298
- typealias PromptStream = GRPCAsyncBidirectionalStreamingCall < Prompting_HostRequest , Prompting_HostResponse >
299
-
300
- func Host( allowPrompts: Bool = true ) async throws ( DaemonError) -> ( PromptStream , identifier: String ) {
301
- let stream = client!. prompt. makeHostCall ( )
302
-
303
- do {
304
- try await stream. requestStream. send ( . with { req in req. allowPrompts = allowPrompts } )
305
- } catch {
306
- throw . grpcFailure( error)
307
- }
308
-
309
- // We can't make call `makeAsyncIterator` more than once
310
- // (as a for-loop would do implicitly)
311
- var iter = stream. responseStream. makeAsyncIterator ( )
312
-
313
- // "Receive the initialization response, validate it, and extract the prompt identifier"
314
- let initResp : Prompting_HostResponse ?
315
- do {
316
- initResp = try await iter. next ( )
317
- } catch {
318
- throw . grpcFailure( error)
319
- }
320
- guard let initResp = initResp else {
321
- throw . unexpectedStreamClosure
322
- }
323
- // TODO: we'll always accept prompts for now
324
- try initResp. ensureValid ( first: true , allowPrompts: allowPrompts)
325
-
326
- Task . detached ( priority: . background) {
327
- do {
328
- while let resp = try await iter. next ( ) {
329
- debugPrint ( resp)
330
- try resp. ensureValid ( first: false , allowPrompts: allowPrompts)
331
- switch resp. isPrompt {
332
- case true :
333
- // TODO: Handle prompt
334
- break
335
- case false :
336
- // TODO: Handle message
337
- break
338
- }
339
- }
340
- } catch {
341
- // TODO: Log prompter stream error
342
- }
343
- }
344
- return ( stream, identifier: initResp. identifier)
345
- }
346
- }
347
-
348
-
349
296
struct DaemonClient {
350
297
let mgmt : Daemon_DaemonAsyncClient
351
298
let sync : Synchronization_SynchronizationAsyncClient
0 commit comments