Skip to content

Commit ed18f6a

Browse files
committed
Add server to tool call messages.
1 parent 27dfc33 commit ed18f6a

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## Unreleased
44

5+
- Add `server` to tool call messages.
6+
57
## 0.63.3
68

79
- Fix last word going after tool call for openai-chat API.

src/eca/features/chat.clj

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@
230230
{:type :toolCallPrepare
231231
:id tool-call-id
232232
:name (:name event-data)
233+
:server (:server event-data)
233234
:origin (:origin event-data)
234235
:arguments-text (:arguments-text event-data)}
235236
:summary (:summary event-data)))
@@ -240,6 +241,7 @@
240241
{:type :toolCallRun
241242
:id tool-call-id
242243
:name (:name event-data)
244+
:server (:server event-data)
243245
:origin (:origin event-data)
244246
:arguments (:arguments event-data)
245247
:manual-approval (:manual-approval event-data)}
@@ -252,6 +254,7 @@
252254
{:type :toolCallRunning
253255
:id tool-call-id
254256
:name (:name event-data)
257+
:server (:server event-data)
255258
:origin (:origin event-data)
256259
:arguments (:arguments event-data)}
257260
:details (:details event-data)
@@ -264,6 +267,7 @@
264267
:id tool-call-id
265268
:origin (:origin event-data)
266269
:name (:name event-data)
270+
:server (:server event-data)
267271
:arguments (:arguments event-data)
268272
:error (:error event-data)
269273
:total-time-ms (:total-time-ms event-data)
@@ -274,6 +278,7 @@
274278
:send-toolCallRejected
275279
(let [tool-call-state (get-tool-call-state @db* (:chat-id chat-ctx) tool-call-id)
276280
name (:name tool-call-state)
281+
server (:server tool-call-state)
277282
origin (:origin tool-call-state)
278283
arguments (:arguments tool-call-state)]
279284
(send-content! chat-ctx :assistant
@@ -282,6 +287,7 @@
282287
:id tool-call-id
283288
:origin (or (:origin event-data) origin)
284289
:name (or (:name event-data) name)
290+
:server (or (:server event-data) server)
285291
:arguments (or (:arguments event-data) arguments)
286292
:reason (:code (:reason event-data) :user)}
287293
:details (:details event-data)
@@ -309,6 +315,7 @@
309315
;; :future (future) is initialized by the :set-call-future action TODO: rename to :set-future
310316
;; :resources (map) is updated by the :add-resources action
311317
:name (:name event-data)
318+
:server (:server event-data)
312319
:arguments (:arguments event-data)
313320
:origin (:origin event-data)
314321
:decision-reason {:code :none
@@ -397,6 +404,9 @@
397404
(defn ^:private tool-name->origin [name all-tools]
398405
(:origin (first (filter #(= name (:name %)) all-tools))))
399406

407+
(defn ^:private tool-name->server [name all-tools]
408+
(:server (first (filter #(= name (:name %)) all-tools))))
409+
400410
(defn ^:private tokenize-args [^String s]
401411
(if (string/blank? s)
402412
[]
@@ -516,6 +526,7 @@
516526
(assert-chat-not-stopped! chat-ctx)
517527
(transition-tool-call! db* chat-ctx id :tool-prepare
518528
{:name name
529+
:server (tool-name->server name all-tools)
519530
:origin (tool-name->origin name all-tools)
520531
:arguments-text arguments-text
521532
:summary (f.tools/tool-call-summary all-tools name nil config)}))
@@ -531,6 +542,7 @@
531542
details (f.tools/tool-call-details-before-invocation name arguments)
532543
summary (f.tools/tool-call-summary all-tools name arguments config)
533544
origin (tool-name->origin name all-tools)
545+
server (tool-name->server name all-tools)
534546
approval (f.tools/approval all-tools name arguments @db* config behavior)
535547
ask? (= :ask approval)]
536548
;; assert: In :preparing or :stopping or :stopped
@@ -539,7 +551,8 @@
539551
(transition-tool-call! db* chat-ctx id :tool-run
540552
{:approved?* approved?*
541553
:name name
542-
:origin (tool-name->origin name all-tools)
554+
:server server
555+
:origin origin
543556
:arguments arguments
544557
:manual-approval ask?
545558
:details details
@@ -579,20 +592,23 @@
579592
:content (assoc tool-call
580593
:details details
581594
:summary summary
582-
:origin origin)})
595+
:origin origin
596+
:server server)})
583597
(add-to-history! {:role "tool_call_output"
584598
:content (assoc tool-call
585599
:error (:error result)
586600
:output result
587601
:details details
588602
:summary summary
589-
:origin origin)})
603+
:origin origin
604+
:server server)})
590605
;; assert: In :executing or :stopping
591606
(let [status (:status (get-tool-call-state @db* chat-id id))]
592607
(case status
593608
:executing (transition-tool-call! db* chat-ctx id :execution-end
594609
{:origin origin
595610
:name name
611+
:server server
596612
:arguments arguments
597613
:error (:error result)
598614
:outputs (:contents result)
@@ -603,6 +619,7 @@
603619
:stopping (transition-tool-call! db* chat-ctx id :stop-attempted
604620
{:origin origin
605621
:name name
622+
:server server
606623
:arguments arguments
607624
:error (:error result)
608625
:outputs (:contents result)
@@ -615,6 +632,7 @@
615632
{:delayed-future delayed-future
616633
:origin origin
617634
:name name
635+
:server server
618636
:arguments arguments
619637
:start-time (System/currentTimeMillis)
620638
:details details
@@ -632,6 +650,7 @@
632650
(transition-tool-call! db* chat-ctx id :send-reject
633651
{:origin origin
634652
:name name
653+
:server server
635654
:arguments arguments
636655
:reason code
637656
:details details
@@ -710,11 +729,13 @@
710729
"tool_call" {:type :toolCallPrepare
711730
:origin (:origin message-content)
712731
:name (:name message-content)
732+
:server (:server message-content)
713733
:arguments-text ""
714734
:id (:id message-content)}
715735
"tool_call_output" {:type :toolCalled
716736
:origin (:origin message-content)
717737
:name (:name message-content)
738+
:server (:server message-content)
718739
:arguments (:arguments message-content)
719740
:error (:error message-content)
720741
:id (:id message-content)

0 commit comments

Comments
 (0)