|
258 | 258 | (get-in (first out) [:frame/data :messages])))) |
259 | 259 |
|
260 | 260 | ;; Case 2: Append with tool call |
261 | | - (let [[new-state {:keys [out tool-write]}] |
262 | | - (sut/context-aggregator-transform |
263 | | - state nil |
264 | | - (frame/llm-context-messages-append |
265 | | - {:messages (conj new-messages tool-request) |
266 | | - :properties {:tool-call? true |
267 | | - :run-llm? false}}))] |
268 | | - |
269 | | - ;; Check state update |
270 | | - (is (= [{:role :system :content "Initial context"} |
271 | | - {:role :user :content "Hello"} |
272 | | - {:role :assistant :content "Hi there"} |
273 | | - tool-request] |
274 | | - (get-in new-state [:llm/context :messages]))) |
275 | | - |
276 | | - ;; Check if message was sent to tool-write channel |
277 | | - (is (= 1 (count tool-write))) |
278 | | - (is (frame/llm-context? (first tool-write))) |
279 | | - (is (= [{:role :system :content "Initial context"} |
280 | | - {:role :user :content "Hello"} |
281 | | - {:role :assistant :content "Hi there"} |
282 | | - tool-request] |
283 | | - (get-in (first tool-write) [:frame/data :messages]))) |
284 | | - |
285 | | - ;; Verify no message sent to out channel when only tool-call? is true |
286 | | - (is (nil? out))) |
| 261 | + (testing "Handles tool-call request messages correctly" |
| 262 | + (let [[new-state {:keys [out tool-write sys-out]}] |
| 263 | + (sut/context-aggregator-transform |
| 264 | + state nil |
| 265 | + (frame/llm-context-messages-append |
| 266 | + {:messages (conj new-messages tool-request) |
| 267 | + :properties {:tool-call? true |
| 268 | + :run-llm? false}})) |
| 269 | + [tool-call-request-frame] sys-out] |
| 270 | + |
| 271 | + ;; Check state update |
| 272 | + (is (= [{:role :system :content "Initial context"} |
| 273 | + {:role :user :content "Hello"} |
| 274 | + {:role :assistant :content "Hi there"} |
| 275 | + tool-request] |
| 276 | + (get-in new-state [:llm/context :messages]))) |
| 277 | + |
| 278 | + ;; Check if message was sent to tool-write channel |
| 279 | + (is (= 1 (count tool-write))) |
| 280 | + (is (frame/llm-context? (first tool-write))) |
| 281 | + (is (= [{:role :system :content "Initial context"} |
| 282 | + {:role :user :content "Hello"} |
| 283 | + {:role :assistant :content "Hi there"} |
| 284 | + tool-request] |
| 285 | + (get-in (first tool-write) [:frame/data :messages]))) |
| 286 | + |
| 287 | + ;; Verify no message sent to out channel when only tool-call? is true |
| 288 | + (is (nil? out)) |
| 289 | + (is (frame/llm-tool-call-request? tool-call-request-frame)) |
| 290 | + (is (= (:frame/data tool-call-request-frame) tool-request)))) |
287 | 291 |
|
288 | 292 | ;; Case 3: Append with both tool call and run-llm |
289 | 293 | (let [[new-state {:keys [out tool-write]}] |
|
0 commit comments