|
230 | 230 | {:type :toolCallPrepare |
231 | 231 | :id tool-call-id |
232 | 232 | :name (:name event-data) |
| 233 | + :server (:server event-data) |
233 | 234 | :origin (:origin event-data) |
234 | 235 | :arguments-text (:arguments-text event-data)} |
235 | 236 | :summary (:summary event-data))) |
|
240 | 241 | {:type :toolCallRun |
241 | 242 | :id tool-call-id |
242 | 243 | :name (:name event-data) |
| 244 | + :server (:server event-data) |
243 | 245 | :origin (:origin event-data) |
244 | 246 | :arguments (:arguments event-data) |
245 | 247 | :manual-approval (:manual-approval event-data)} |
|
252 | 254 | {:type :toolCallRunning |
253 | 255 | :id tool-call-id |
254 | 256 | :name (:name event-data) |
| 257 | + :server (:server event-data) |
255 | 258 | :origin (:origin event-data) |
256 | 259 | :arguments (:arguments event-data)} |
257 | 260 | :details (:details event-data) |
|
264 | 267 | :id tool-call-id |
265 | 268 | :origin (:origin event-data) |
266 | 269 | :name (:name event-data) |
| 270 | + :server (:server event-data) |
267 | 271 | :arguments (:arguments event-data) |
268 | 272 | :error (:error event-data) |
269 | 273 | :total-time-ms (:total-time-ms event-data) |
|
274 | 278 | :send-toolCallRejected |
275 | 279 | (let [tool-call-state (get-tool-call-state @db* (:chat-id chat-ctx) tool-call-id) |
276 | 280 | name (:name tool-call-state) |
| 281 | + server (:server tool-call-state) |
277 | 282 | origin (:origin tool-call-state) |
278 | 283 | arguments (:arguments tool-call-state)] |
279 | 284 | (send-content! chat-ctx :assistant |
|
282 | 287 | :id tool-call-id |
283 | 288 | :origin (or (:origin event-data) origin) |
284 | 289 | :name (or (:name event-data) name) |
| 290 | + :server (or (:server event-data) server) |
285 | 291 | :arguments (or (:arguments event-data) arguments) |
286 | 292 | :reason (:code (:reason event-data) :user)} |
287 | 293 | :details (:details event-data) |
|
309 | 315 | ;; :future (future) is initialized by the :set-call-future action TODO: rename to :set-future |
310 | 316 | ;; :resources (map) is updated by the :add-resources action |
311 | 317 | :name (:name event-data) |
| 318 | + :server (:server event-data) |
312 | 319 | :arguments (:arguments event-data) |
313 | 320 | :origin (:origin event-data) |
314 | 321 | :decision-reason {:code :none |
|
397 | 404 | (defn ^:private tool-name->origin [name all-tools] |
398 | 405 | (:origin (first (filter #(= name (:name %)) all-tools)))) |
399 | 406 |
|
| 407 | +(defn ^:private tool-name->server [name all-tools] |
| 408 | + (:server (first (filter #(= name (:name %)) all-tools)))) |
| 409 | + |
400 | 410 | (defn ^:private tokenize-args [^String s] |
401 | 411 | (if (string/blank? s) |
402 | 412 | [] |
|
516 | 526 | (assert-chat-not-stopped! chat-ctx) |
517 | 527 | (transition-tool-call! db* chat-ctx id :tool-prepare |
518 | 528 | {:name name |
| 529 | + :server (tool-name->server name all-tools) |
519 | 530 | :origin (tool-name->origin name all-tools) |
520 | 531 | :arguments-text arguments-text |
521 | 532 | :summary (f.tools/tool-call-summary all-tools name nil config)})) |
|
531 | 542 | details (f.tools/tool-call-details-before-invocation name arguments) |
532 | 543 | summary (f.tools/tool-call-summary all-tools name arguments config) |
533 | 544 | origin (tool-name->origin name all-tools) |
| 545 | + server (tool-name->server name all-tools) |
534 | 546 | approval (f.tools/approval all-tools name arguments @db* config behavior) |
535 | 547 | ask? (= :ask approval)] |
536 | 548 | ;; assert: In :preparing or :stopping or :stopped |
|
539 | 551 | (transition-tool-call! db* chat-ctx id :tool-run |
540 | 552 | {:approved?* approved?* |
541 | 553 | :name name |
542 | | - :origin (tool-name->origin name all-tools) |
| 554 | + :server server |
| 555 | + :origin origin |
543 | 556 | :arguments arguments |
544 | 557 | :manual-approval ask? |
545 | 558 | :details details |
|
579 | 592 | :content (assoc tool-call |
580 | 593 | :details details |
581 | 594 | :summary summary |
582 | | - :origin origin)}) |
| 595 | + :origin origin |
| 596 | + :server server)}) |
583 | 597 | (add-to-history! {:role "tool_call_output" |
584 | 598 | :content (assoc tool-call |
585 | 599 | :error (:error result) |
586 | 600 | :output result |
587 | 601 | :details details |
588 | 602 | :summary summary |
589 | | - :origin origin)}) |
| 603 | + :origin origin |
| 604 | + :server server)}) |
590 | 605 | ;; assert: In :executing or :stopping |
591 | 606 | (let [status (:status (get-tool-call-state @db* chat-id id))] |
592 | 607 | (case status |
593 | 608 | :executing (transition-tool-call! db* chat-ctx id :execution-end |
594 | 609 | {:origin origin |
595 | 610 | :name name |
| 611 | + :server server |
596 | 612 | :arguments arguments |
597 | 613 | :error (:error result) |
598 | 614 | :outputs (:contents result) |
|
603 | 619 | :stopping (transition-tool-call! db* chat-ctx id :stop-attempted |
604 | 620 | {:origin origin |
605 | 621 | :name name |
| 622 | + :server server |
606 | 623 | :arguments arguments |
607 | 624 | :error (:error result) |
608 | 625 | :outputs (:contents result) |
|
615 | 632 | {:delayed-future delayed-future |
616 | 633 | :origin origin |
617 | 634 | :name name |
| 635 | + :server server |
618 | 636 | :arguments arguments |
619 | 637 | :start-time (System/currentTimeMillis) |
620 | 638 | :details details |
|
632 | 650 | (transition-tool-call! db* chat-ctx id :send-reject |
633 | 651 | {:origin origin |
634 | 652 | :name name |
| 653 | + :server server |
635 | 654 | :arguments arguments |
636 | 655 | :reason code |
637 | 656 | :details details |
|
710 | 729 | "tool_call" {:type :toolCallPrepare |
711 | 730 | :origin (:origin message-content) |
712 | 731 | :name (:name message-content) |
| 732 | + :server (:server message-content) |
713 | 733 | :arguments-text "" |
714 | 734 | :id (:id message-content)} |
715 | 735 | "tool_call_output" {:type :toolCalled |
716 | 736 | :origin (:origin message-content) |
717 | 737 | :name (:name message-content) |
| 738 | + :server (:server message-content) |
718 | 739 | :arguments (:arguments message-content) |
719 | 740 | :error (:error message-content) |
720 | 741 | :id (:id message-content) |
|
0 commit comments