summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorjgart <jgart@dismail.de>2026-08-14 10:35:38 +0100
committerjgart <jgart@dismail.de>2026-08-21 16:33:56 +0100
commit91c8dc1805cbdf5a813af60f3afc2b10577f535e (patch)
tree3df9bef3557a546fd177393a954dcb801f36bcc0 /gnu
parentf5326e03e27b938ca8aaae462b261193ac895d4f (diff)
gnu: Add kaagum.
* gnu/packages/guile-xyz.scm (kaagum): New variable. Co-authored-by: Arun Isaac <arunisaac@systemreboot.net> Change-Id: Ic05a77c25c1c6d870385adf258fe484a1b56584d
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/guile-xyz.scm69
1 files changed, 69 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 27dcf99eb03..f6656e26f47 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -4252,6 +4252,75 @@ inspired by the SCSH regular expression system.")
4252 (name "guile2.2-irregex") 4252 (name "guile2.2-irregex")
4253 (native-inputs (list guile-2.2)))) 4253 (native-inputs (list guile-2.2))))
4254 4254
4255(define-public kaagum
4256 (package
4257 (name "kaagum")
4258 (version "0.1.0")
4259 (source
4260 (origin
4261 (method git-fetch)
4262 (uri (git-reference
4263 (url "https://git.systemreboot.net/kaagum")
4264 (commit (string-append "v" version))
4265 (recursive? #t)))
4266 (file-name (git-file-name name version))
4267 (sha256
4268 (base32 "1f9k1jvpda9mzm74c612cxpj5h2bm5284s2qid4p2mrg7ffvs34k"))))
4269 (build-system gnu-build-system)
4270 (arguments
4271 (list #:make-flags
4272 #~(list (string-append "prefix=" #$output)
4273 (string-append "CERTIFICATES_DIRECTORY="
4274 #$(this-package-native-input "nss-certs")
4275 "/etc/ssl/certs"))
4276 #:modules `(((guix build guile-build-system)
4277 #:select (target-guile-effective-version))
4278 ,@%default-gnu-imported-modules)
4279 #:phases
4280 (with-imported-modules `((guix build guile-build-system)
4281 ,@%default-gnu-imported-modules)
4282 #~(modify-phases %standard-phases
4283 (replace 'patch-source-shebangs
4284 (lambda* (#:key inputs #:allow-other-keys)
4285 (substitute* "bin/kaagum"
4286 (("^exec guile")
4287 (string-append "exec "
4288 (search-input-file inputs "/bin/guile"))))))
4289 (delete 'configure)
4290 (add-after 'install 'wrap
4291 (lambda* (#:key inputs outputs #:allow-other-keys)
4292 (let ((out (assoc-ref outputs "out"))
4293 (effective-version (target-guile-effective-version)))
4294 (wrap-program (string-append out "/bin/kaagum")
4295 `("GUILE_LOAD_PATH" prefix
4296 (,(string-append out "/share/guile/site/" effective-version)
4297 ,(getenv "GUILE_LOAD_PATH")))
4298 `("GUILE_LOAD_COMPILED_PATH" prefix
4299 (,(string-append out "/lib/guile/"
4300 effective-version "/site-ccache")
4301 ,(getenv "GUILE_LOAD_COMPILED_PATH")))))))))))
4302 (inputs
4303 (list bash-minimal guile-next guile-json-4 guile-lens guix))
4304 (native-inputs
4305 (list guile-run64 nss-certs))
4306 (home-page "https://klaus.systemreboot.net/kaagum/")
4307 (synopsis "Tiny, security-focused AI agent in Guile")
4308 (description
4309 "Kaagum is a tiny, security-focused AI agent written in Guile with
4310minimal dependencies. Kaagum works with any LLM that provides an
4311OpenAI-compatible API.
4312
4313Kaagum runs tool calls securely using containers and capability-based
4314access. Tool calls have limited or no access to the filesystem and to
4315the network. Capabilities allow network access to be controlled with
4316fine granularity. Containers are implemented using Guix's container
4317API.
4318
4319Kaagum offers no user interface on its own. Instead, it speaks
4320the @acronym{ACP, Agent Client Protocol} and allows you to use any
4321compatible user interface of your choice.")
4322 (license license:gpl3+)))
4323
4255(define-public haunt 4324(define-public haunt
4256 (package 4325 (package
4257 (name "haunt") 4326 (name "haunt")