From a47a9e899383fba7e3488ae9d494af9caf0492fa Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sun, 17 May 2026 19:36:41 +0100 Subject: Check types of tool call arguments. --- tests/tools.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 tests/tools.scm (limited to 'tests') diff --git a/tests/tools.scm b/tests/tools.scm new file mode 100644 index 0000000..1ad0c62 --- /dev/null +++ b/tests/tools.scm @@ -0,0 +1,46 @@ +;;; kaagum --- Tiny, security-focused AI agent in Guile +;;; Copyright © 2026 Arun Isaac +;;; +;;; This file is part of kaagum. +;;; +;;; kaagum is free software: you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation, either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; kaagum is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with kaagum. If not, see . + +(use-modules (srfi srfi-64) + (kaagum tools)) + +(test-begin "tools") + +(test-equal "tool call with parameter type mismatch must error out" + "Error: Argument arg of invalid type" + (guard (c ((tool-call-parse-failure? c) + (tool-call-parse-failure-message c))) + (spec->tool-call "foo" + "/foo/bar" + `(("read" . ,(tool #:description "A dummy test tool" + #:parameters `(("arg" . ,(tool-parameter + #:description "an argument" + #:type "integer" + #:required? #t))) + #:proc identity + #:title identity + #:kind "read"))) + (list "read") + (list) + `(("id" . "foo123") + ("type" . "function") + ("function" + ("name" . "read") + ("arguments" . "{\"arg\": \"[738\"}")))))) + +(test-end "tools") -- cgit 1.4.1