Liking cljdoc? Tell your friends :D

com.blockether.vis.ext.foundation-harness.core

harness compatibility extension — a DROPPABLE classpath plug-in (drop the jar, drop the feature) that exposes the AGENTS and SKILLS vis' own project dir and other AI coding HARNESSES (Claude Code, pi, opencode, the agents standard, …) leave on disk to the vis model. The sibling of the shell layer's POSIX compat. Vis reads its OWN project-local skills from .vis/skills (highest precedence).

Two bare verbs (bound like cat/rg via :ext.engine/builtin? true):

  • SKILLS are PROGRESSIVE: the prompt lists every skill name — description (cheap — always present while :vis/harness-skills is ON), and skill(name) loads the FULL SKILL.md + its bundled resource PATHS on demand so the model spends tokens only on the one it uses.

  • AGENTS are an ALIAS to sub_loop: agent(name, prompt) runs the named agent as a CHILD loop whose system prompt IS that agent's markdown body, on its declared model. Gated by :vis/harness-agents.

This layer OWNS its toggles — registered here, not in core — so dropping the jar drops the toggles. :owner :vis :group :tools parks them in Settings → Feature Toggles beside the shell toggle. Each verb gates on its OWN toggle (the extension activates if EITHER is on), so they switch independently.

`harness` compatibility extension — a DROPPABLE classpath plug-in (drop the
jar, drop the feature) that exposes the AGENTS and SKILLS vis' own project
dir and other AI coding HARNESSES (Claude Code, pi, opencode, the agents
standard, …) leave on disk to the vis model. The sibling of the shell
layer's POSIX compat. Vis reads its OWN project-local skills from
`.vis/skills` (highest precedence).

Two bare verbs (bound like cat/rg via `:ext.engine/builtin? true`):

- SKILLS are PROGRESSIVE: the prompt lists every skill `name — description`
  (cheap — always present while `:vis/harness-skills` is ON), and
  `skill(name)` loads the FULL `SKILL.md` + its bundled resource PATHS on
  demand so the model spends tokens only on the one it uses.

- AGENTS are an ALIAS to `sub_loop`: `agent(name, prompt)` runs the named
  agent as a CHILD loop whose system prompt IS that agent's markdown body,
  on its declared model. Gated by `:vis/harness-agents`.

This layer OWNS its toggles — registered here, not in core — so dropping the
jar drops the toggles. `:owner :vis :group :tools` parks them in Settings →
Feature Toggles beside the shell toggle. Each verb gates on its OWN toggle
(the extension activates if EITHER is on), so they switch independently.
raw docstring

agentclj

(agent name prompt)

await agent(name, prompt) Delegate prompt to a harness sub-agent as a child loop (names listed in the HARNESS AGENTS prompt block). Child runs isolated; edits merge back. Returns {"agent", "task_id", "status", "answer", "changed_files"}. Unknown name → {"error", "available": [names]}. EXPENSIVE (a full child LLM turn) — delegable sub-tasks only.

await agent(name, prompt)
Delegate `prompt` to a harness sub-agent as a child loop (names listed in the HARNESS AGENTS prompt block). Child runs isolated; edits merge back.
Returns {"agent", "task_id", "status", "answer", "changed_files"}. Unknown name → {"error", "available": [names]}.
EXPENSIVE (a full child LLM turn) — delegable sub-tasks only.
sourceraw docstring

agent-symbolclj

source

skill-symbolclj

source

skill-toolclj

(skill-tool env input)

Load a harness SKILL on demand — its full SKILL.md. Names are in the HARNESS SKILLS block (✓ = already loaded). Loaded ONCE per session; a second call acks already-loaded without resending the body.

Load a harness SKILL on demand — its full SKILL.md. Names are in the HARNESS
SKILLS block (✓ = already loaded). Loaded ONCE per session; a second call acks
already-loaded without resending the body.
sourceraw docstring

vis-extensionclj

source

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close