|
223 | 223 | :summary (:summary event-data))) |
224 | 224 |
|
225 | 225 | :send-toolCallRejected |
226 | | - (send-content! chat-ctx :assistant |
227 | | - (assoc-some |
228 | | - {:type :toolCallRejected |
229 | | - :id tool-call-id |
230 | | - :origin (:origin event-data) |
231 | | - :name (:name event-data) |
232 | | - :arguments (:arguments event-data) |
233 | | - :reason (:code (:reason event-data) :user)} |
234 | | - :details (:details event-data) |
235 | | - :summary (:summary event-data))) |
| 226 | + (let [tool-call-state (get-tool-call-state @db* (:chat-id chat-ctx) tool-call-id) |
| 227 | + name (:name tool-call-state) |
| 228 | + origin (:origin tool-call-state) |
| 229 | + arguments (:arguments tool-call-state)] |
| 230 | + (send-content! chat-ctx :assistant |
| 231 | + (assoc-some |
| 232 | + {:type :toolCallRejected |
| 233 | + :id tool-call-id |
| 234 | + :origin (or (:origin event-data) origin) |
| 235 | + :name (or (:name event-data) name) |
| 236 | + :arguments (or (:arguments event-data) arguments) |
| 237 | + :reason (:code (:reason event-data) :user)} |
| 238 | + :details (:details event-data) |
| 239 | + :summary (:summary event-data)))) |
236 | 240 |
|
237 | 241 | ;; State management actions |
238 | 242 | :init-approval-promise |
|
487 | 491 | :manual-approval ask? |
488 | 492 | :details details |
489 | 493 | :summary summary})) |
490 | | - ;; assert: In: :check-approval or :stopped |
491 | | - (when-not (#{:stopped} (:status (get-tool-call-state @db* chat-id id))) |
| 494 | + ;; assert: In: :check-approval or :stopped or :rejected |
| 495 | + (when-not (#{:stopped :rejected} (:status (get-tool-call-state @db* chat-id id))) |
492 | 496 | (case approval |
493 | 497 | :ask (transition-tool-call! db* chat-ctx id :approval-ask |
494 | 498 | {:state :running |
|
0 commit comments