(
address: ToolAddress,
args: unknown,
handler: ElicitationHandler,
)
| 4186 | : defaultElicitationHandler; |
| 4187 | |
| 4188 | const buildElicit = ( |
| 4189 | address: ToolAddress, |
| 4190 | args: unknown, |
| 4191 | handler: ElicitationHandler, |
| 4192 | ): Elicit => { |
| 4193 | return (request: ElicitationRequest) => |
| 4194 | Effect.gen(function* () { |
| 4195 | const response: ElicitationResponse = yield* handler({ |
| 4196 | address, |
| 4197 | args, |
| 4198 | request, |
| 4199 | }); |
| 4200 | if (response.action !== "accept") { |
| 4201 | return yield* new ElicitationDeclinedError({ |
| 4202 | address, |
| 4203 | action: response.action, |
| 4204 | }); |
| 4205 | } |
| 4206 | return response; |
| 4207 | }); |
| 4208 | }; |
| 4209 | |
| 4210 | // The single source of truth for "will enforceApproval pause this call". |
| 4211 | // Read before pre-approval arg validation so the extra validation pass |
no test coverage detected