The observer's surface: one olympus tool over the running core.
Olympus already paints the grid into whatever vessel is mounted. This is how a caller ASKS instead of watching: which agents exist, what one of them has actually been doing, and which one the panels should zoom into.
Everything here reads the core's own state. The only writes are to the observer's viewport -- which agent is focused, which tab is shown -- and never to an agent. Least privilege: an observer observes.
The observer's surface: one `olympus` tool over the running core. Olympus already paints the grid into whatever vessel is mounted. This is how a caller ASKS instead of watching: which agents exist, what one of them has actually been doing, and which one the panels should zoom into. Everything here reads the core's own state. The only writes are to the observer's viewport -- which agent is focused, which tab is shown -- and never to an agent. Least privilege: an observer observes.
(activity-answer agent limit)What AGENT has been doing: its row, then its recent log newest first, at most LIMIT lines. Read-only -- it never moves the focus.
What AGENT has been doing: its row, then its recent log newest first, at most LIMIT lines. Read-only -- it never moves the focus.
(agent-row {:agent/keys [id name status kind mode project parent task activity
seen done drones exited? recent]
:as agent})AGENT as a flat row for a tool caller: every fact the roster could tell,
absent facts omitted rather than carried as nil. The recent log is
summarized by length here; activity is what answers it in full.
AGENT as a flat row for a tool caller: every fact the roster could tell, absent facts omitted rather than carried as nil. The recent log is summarized by length here; `activity` is what answers it in full.
(agents-answer {:keys [roster model]} status)The whole roster: the header counts, then a row per agent. STATUS, when given, keeps only agents in that status.
The whole roster: the header counts, then a row per agent. STATUS, when given, keeps only agents in that status.
(answer state nav {:keys [command agent status limit query role]})Run COMMAND against the core. STATE is the core's state atom and NAV the viewport operations {:focus! :next-tab! :prev-tab! :refresh! :transcript! :search! :close-transcript!}. Returns the answer map, or {:error ...}.
Run COMMAND against the core. STATE is the core's state atom and NAV the
viewport operations {:focus! :next-tab! :prev-tab! :refresh! :transcript!
:search! :close-transcript!}. Returns the answer map, or {:error ...}.How many log lines activity answers when the caller names no limit.
How many log lines `activity` answers when the caller names no limit.
(find-agent roster needle)The agent of ROSTER the caller means by NEEDLE: an exact id, then an exact name, then a unique case-insensitive substring of either. nil when nothing matches; the ambiguous case answers nil rather than guessing.
The agent of ROSTER the caller means by NEEDLE: an exact id, then an exact name, then a unique case-insensitive substring of either. nil when nothing matches; the ambiguous case answers nil rather than guessing.
(focus-answer {:keys [model lens-sections]} agent)The state after focusing: which agent the panels now zoom into, the tab it lives on, and its activity, so one call both moves the view and answers.
The state after focusing: which agent the panels now zoom into, the tab it lives on, and its activity, so one call both moves the view and answers.
(tool state nav)The olympus tool-def over the core's STATE atom and NAV viewport ops.
The `olympus` tool-def over the core's STATE atom and NAV viewport ops.
(transcript-params agent extra)Port params for AGENT, merged over EXTRA: its id, and the project that partitions its transcript store, which is what makes a ling that has already finished findable on disk.
Port params for AGENT, merged over EXTRA: its id, and the project that partitions its transcript store, which is what makes a ling that has already finished findable on disk.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |