(
address: ToolAddress,
args: unknown,
handler: ElicitationHandler,
)
| 4073 | : defaultElicitationHandler; |
| 4074 | |
| 4075 | const buildElicit = ( |
| 4076 | address: ToolAddress, |
| 4077 | args: unknown, |
| 4078 | handler: ElicitationHandler, |
| 4079 | ): Elicit => { |
| 4080 | return (request: ElicitationRequest) => |
| 4081 | Effect.gen(function* () { |
| 4082 | const response: ElicitationResponse = yield* handler({ |
| 4083 | address, |
| 4084 | args, |
| 4085 | request, |
| 4086 | }); |
| 4087 | if (response.action !== "accept") { |
| 4088 | return yield* new ElicitationDeclinedError({ |
| 4089 | address, |
| 4090 | action: response.action, |
| 4091 | }); |
| 4092 | } |
| 4093 | return response; |
| 4094 | }); |
| 4095 | }; |
| 4096 | |
| 4097 | // The single source of truth for "will enforceApproval pause this call". |
| 4098 | // Read before pre-approval arg validation so the extra validation pass |
no test coverage detected