luft/render/application-agent-tests.lisp
in-package#:luft.render.tests
deftestluft-agent-vocabulary-is-application-level-and-parameterized
let*
tool
luv.application-agent:make-command-tool'render::com-set-projection
parameters
openai:tool-parameterstool
properties
cdr
assoc"properties"parameters:test#'string=
projection
cdr
assoc"projection"properties:test#'string=
ok
equal'
"perspective""isometric"
cdr
assoc"enum"projection:test#'string=
ok
equal'
render::com-set-projection:perspective
ok
deftestluft-agent-participates-in-viewer-instrument-release
let*
viewer
clim:make-application-frame'render:viewer
close-count0
agent
make-instance'render::viewer-agent:applicationviewer:model"test":socketnil:turn-function
lambda
:close-functionagentprompt
declare
ignoreagentprompt
lambda
agent
declare
ignoreagent
incfclose-count
ok
ok
find-if
lambda
instrument
ok
ok
defun make-command-tool
(command &key description)defun command-tool-parse
(tool arguments)defun attach-viewer-agent
(viewer agent)defun viewer-instruments
(viewer)defun release-viewer-instruments
(viewer)defun wait-for-application-agent-release
(agent &key timeout)Wait for AGENT's close path and FIFO worker, returning NIL on timeout. Release state and application detachment do not wait for this join point. A finite TIMEOUT therefore remains safe even when a provider-specific close function stalls or fails to wake its active receive.
define-arithmetic-operator =
Test whether two compatible scalars are equal.
defun release-application-agent
(agent)Detach AGENT and initiate its provider close exactly once. Terminal state is visible before this function returns. A dedicated lifecycle thread promptly sends the provider's non-destructive close frame so an active receive can wake; it never executes on the caller or application canvas. The sole FIFO worker rejects…