( sessions taskBridgeSessionManager, globalWorkspacePath string, logger *slog.Logger, options ...taskSessionBridgeOption, )
| 98 | var _ taskpkg.SessionExecutor = (*taskSessionBridge)(nil) |
| 99 | |
| 100 | func newTaskSessionBridge( |
| 101 | sessions taskBridgeSessionManager, |
| 102 | globalWorkspacePath string, |
| 103 | logger *slog.Logger, |
| 104 | options ...taskSessionBridgeOption, |
| 105 | ) (*taskSessionBridge, error) { |
| 106 | if sessions == nil { |
| 107 | return nil, errors.New("daemon: task session bridge requires a session manager") |
| 108 | } |
| 109 | if logger == nil { |
| 110 | logger = slog.Default() |
| 111 | } |
| 112 | bridge := &taskSessionBridge{ |
| 113 | sessions: sessions, |
| 114 | globalWorkspacePath: strings.TrimSpace(globalWorkspacePath), |
| 115 | logger: logger, |
| 116 | } |
| 117 | for _, option := range options { |
| 118 | if option != nil { |
| 119 | option(bridge) |
| 120 | } |
| 121 | } |
| 122 | return bridge, nil |
| 123 | } |
| 124 | |
| 125 | func (b *taskSessionBridge) StartTaskSession( |
| 126 | ctx context.Context, |
no outgoing calls