| ... | ... | @@ -116,16 +116,58 @@ function toRequestError( |
| 116 | 116 | }); |
| 117 | 117 | } |
| 118 | 118 | |
| 119 | | const unavailableRuntimeError = () => new Error("Claude Code runtime is not configured."); |
| 120 | | |
| 121 | 119 | function makeUnavailableRuntime(): ClaudeCodeRuntime { |
| 120 | const unavailableDetail = "Claude Code runtime is not configured."; |
| 121 | |
| 122 | 122 | return { |
| 123 | | startSession: () => Effect.fail(unavailableRuntimeError()), |
| 124 | | sendTurn: () => Effect.fail(unavailableRuntimeError()), |
| 125 | | interruptTurn: () => Effect.fail(unavailableRuntimeError()), |
| 126 | | readThread: () => Effect.fail(unavailableRuntimeError()), |
| 127 | | rollbackThread: () => Effect.fail(unavailableRuntimeError()), |
| 128 | | respondToRequest: () => Effect.fail(unavailableRuntimeError()), |
| 123 | startSession: () => |
| 124 | Effect.fail( |
| 125 | new ProviderAdapterProcessError({ |
| 126 | provider: PROVIDER, |
| 127 | sessionId: "pending", |
| 128 | detail: unavailableDetail, |
| 129 | }), |
| 130 | ), |
| 131 | sendTurn: (_input) => |
| 132 | Effect.fail( |
| 133 | new ProviderAdapterRequestError({ |
| 134 | provider: PROVIDER, |
| 135 | method: "turn/start", |
| 136 | detail: unavailableDetail, |
| 137 | }), |
| 138 | ), |
| 139 | interruptTurn: (_sessionId) => |
| 140 | Effect.fail( |
| 141 | new ProviderAdapterRequestError({ |
| 142 | provider: PROVIDER, |
| 143 | method: "turn/interrupt", |
| 144 | detail: unavailableDetail, |
| 145 | }), |
| 146 | ), |
| 147 | readThread: (_sessionId) => |
| 148 | Effect.fail( |
| 149 | new ProviderAdapterRequestError({ |
| 150 | provider: PROVIDER, |
| 151 | method: "thread/read", |
| 152 | detail: unavailableDetail, |
| 153 | }), |
| 154 | ), |
| 155 | rollbackThread: (_sessionId) => |
| 156 | Effect.fail( |
| 157 | new ProviderAdapterRequestError({ |
| 158 | provider: PROVIDER, |
| 159 | method: "thread/rollback", |
| 160 | detail: unavailableDetail, |
| 161 | }), |
| 162 | ), |
| 163 | respondToRequest: (_sessionId) => |
| 164 | Effect.fail( |
| 165 | new ProviderAdapterRequestError({ |
| 166 | provider: PROVIDER, |
| 167 | method: "item/requestApproval/decision", |
| 168 | detail: unavailableDetail, |
| 169 | }), |
| 170 | ), |
| 129 | 171 | stopSession: () => Effect.void, |
| 130 | 172 | listSessions: () => Effect.succeed([]), |
| 131 | 173 | hasSession: () => Effect.succeed(false), |