Skip to content
Registry

harness

v0.5.7

Thin durable turn loop that wires session-manager, context-manager, and llm-router into an agent loop; spawns sub-agents as child sessions.

Install

bash
iii trigger compose::add worker=harness@0.5.7

Run in your project with the iii engine running. Exact versions are immutable and digest-pinned.

Functions89

approval::add_always_allow

Function

Append a function id to the per-session always-allow list (idempotent).

Request
valueunknown
Response
valueunknown

approval::approve_always

Function

Remember an "approve always" decision for this session — the function id stops prompting in every mode. Idempotent.

Request
valueunknown
Response
valueunknown

approval::clear_settings

Function

Clear the per-session approval settings on conversation deletion.

Request
valueunknown
Response
valueunknown

approval::get_settings

Function

Read the per-session approval settings; returns defaults when none persisted.

Request
valueunknown
Response
valueunknown

approval::on_harness_config

Function
Request
valueunknown
Response
valueunknown

approval::remove_always_allow

Function

Remove a function id from the per-session always-allow list.

Request
valueunknown
Response
valueunknown

approval::resolve

Function

Flip an approval to allow or deny. Persists the decision to the approvals scope to wake the parked turn.

Request
valueunknown
Response
valueunknown

approval::set_mode

Function

Set the permission mode (manual | auto | full) for a session.

Request
valueunknown
Response
valueunknown

budget::alert_set

Function

Add an alert to a budget.

Request
valueunknown
Response
valueunknown

budget::check

Function

Check whether a budget allows an estimated spend.

Request
valueunknown
Response
valueunknown

budget::create

Function

Create a budget with ceiling + period.

Request
valueunknown
Response
valueunknown

budget::delete

Function

Delete a budget.

Request
valueunknown
Response
valueunknown

budget::enforce

Function

Toggle enforcement on a budget.

Request
valueunknown
Response
valueunknown

budget::exempt

Function

Add a 24h exemption for a principal.

Request
valueunknown
Response
valueunknown

budget::forecast

Function

Project spend through period end.

Request
valueunknown
Response
valueunknown

budget::get

Function

Fetch a budget by id.

Request
valueunknown
Response
valueunknown

budget::list

Function

List budgets, newest first.

Request
valueunknown
Response
valueunknown

budget::pause

Function

Pause or resume a budget.

Request
valueunknown
Response
valueunknown

budget::record

Function

Record a spend, fire matching alerts.

Request
valueunknown
Response
valueunknown

budget::reset

Function

Reset spent_usd, archive prior period.

Request
valueunknown
Response
valueunknown

budget::update

Function

Update a whitelisted set of budget fields.

Request
valueunknown
Response
valueunknown

budget::usage

Function

Aggregate spend over a window.

Request
valueunknown
Response
valueunknown

context-compaction::compact_now

Function

Sync pre-turn compaction triggered by turn-orchestrator when a turn would overflow. Performs prune+summarise+reinject+continue.

Request
valueunknown
Response
valueunknown

context-compaction::compact_session

Function

User-initiated synchronous compaction of a session. Required: session_id. Optional: model { id, providerID, limit? } to skip auto-resolution. If model is omitted, falls back to (1) most recent assistant message in session-tree, (2) orchestrator run_request.

Request
valueunknown
Response
valueunknown

context-compaction::on_agent_event

Function

Internal: subscribes to agent::turn_end; triggers async compaction on TurnEnd when running tokens exceed usable(model).

Request
valueunknown
Response
valueunknown

context-compaction::prune_tool_outputs

Function

Prune older tool outputs without summarisation (cheap path).

Request
valueunknown
Response
valueunknown

harness::fanout::models_changed

Function

Internal: coalesces models-scope state changes into ui::models::changed::<browser_id> pushes.

Request
valueunknown
Response
valueunknown

harness::fanout::session_created

Function

Internal: fans out a newly-created session id to ui::sessions::changed::<browser_id>.

Request
valueunknown
Response
valueunknown

harness::fs::read_inline

Function

Read a host file via shell::fs::read, drain its channel, and return a {content:[{text}], details:{size, truncated, bytes_read}} envelope (max 256 KiB inline by default).

Request
valueunknown
Response
valueunknown

harness::provider::list

Function

List providers declared to the harness.

Request
valueunknown
Response
valueunknown

harness::provider::register

Function

Self-declare an LLM provider (id, config schema, defaults) into the dynamic harness configuration schema.

Request
valueunknown
Response
valueunknown

harness::provider::resolve

Function

Resolve a provider credential + settings (api_url, max_tokens) from the harness configuration. Server-side only.

Request
valueunknown
Response
valueunknown

harness::providers::refresh_on_config

Function
Request
valueunknown
Response
valueunknown

harness::trigger

Function

Browser kickoff: forward payload to run::start. Used by console/web over the iii-browser-sdk.

Request
valueunknown
Response
valueunknown

hook-fanout::publish_collect

Function

Publish a topic, collect subscriber replies until timeout, apply merge_rule.

Request
valueunknown
Response
valueunknown

hook-fanout::reply_handler

Function

Internal: routes agent::hook_reply stream events to pending publish_collect calls.

Request
valueunknown
Response
valueunknown

models::get

Function

Look up a single model by (provider, model_id). Returns null when no provider has registered it.

Request
valueunknown
Response
valueunknown

models::list

Function

List models, optionally filtered by provider or capability. Returns only models registered by providers (no embedded seed).

Request
valueunknown
Response
valueunknown

models::reconcile

Function

Replace the catalog for <provider> with a single Model[] value under scope models (one state write).

Request
valueunknown
Response
valueunknown

models::supports

Function

Check whether a provider-registered model supports a capability (false when unknown).

Request
valueunknown
Response
valueunknown

policy::check_permissions

Function

Check a function call against iii-permissions.yaml; returns allow, deny, or needs_approval.

Request
valueunknown
Response
valueunknown

provider::anthropic::complete

Function

Legacy: drain a streamed Anthropic completion and return the final AssistantMessage.

Request
valueunknown
Response
valueunknown

provider::anthropic::refresh_models

Function

Re-pull the Anthropic model list (GET /v1/models) and register each into the iii models catalog. Idempotent.

Request
valueunknown
Response
valueunknown

provider::anthropic::stream

Function

Stream a single assistant turn from Anthropic into the caller-supplied channel. Each AssistantMessageEvent is sent as a JSON text message; the terminal event is Done or Error followed by close.

Request
valueunknown
Response
valueunknown

provider::kimi::complete

Function

Legacy: drain a streamed Kimi chat-completion and return the final AssistantMessage.

Request
valueunknown
Response
valueunknown

provider::kimi::refresh_models

Function

Re-pull the Kimi (Moonshot) model list (GET /v1/models) and register each into the iii models catalog. Idempotent.

Request
valueunknown
Response
valueunknown

provider::kimi::stream

Function

Stream a single assistant turn from Kimi (Moonshot) Chat Completions into the caller-supplied channel.

Request
valueunknown
Response
valueunknown

provider::llamacpp::complete

Function

Legacy: drain a streamed llama-server chat-completion and return the final AssistantMessage.

Request
valueunknown
Response
valueunknown

provider::llamacpp::refresh_models

Function

Re-discover the loaded llama-server model and register it into the iii models catalog. Idempotent.

Request
valueunknown
Response
valueunknown

provider::llamacpp::stream

Function

Stream a single assistant turn from a local llama-server Chat Completions server into the caller-supplied channel.

Request
valueunknown
Response
valueunknown

provider::lmstudio::complete

Function

Legacy: drain a streamed LM Studio chat-completion and return the final AssistantMessage.

Request
valueunknown
Response
valueunknown

provider::lmstudio::load_model

Function

Load an LM Studio model into memory via POST /api/v1/models/load. Blocks until ready (up to 120s).

Request
valueunknown
Response
valueunknown

provider::lmstudio::refresh_models

Function

Re-discover loaded LM Studio models and register each into the iii models catalog. Idempotent.

Request
valueunknown
Response
valueunknown

provider::lmstudio::stream

Function

Stream a single assistant turn from a local LM Studio Chat Completions server into the caller-supplied channel.

Request
valueunknown
Response
valueunknown

provider::lmstudio::unload_model

Function

Unload an LM Studio model instance via POST /api/v1/models/unload.

Request
valueunknown
Response
valueunknown

provider::openai::complete

Function

Legacy: drain a streamed OpenAI chat-completion and return the final AssistantMessage.

Request
valueunknown
Response
valueunknown

provider::openai::refresh_models

Function

Re-pull the OpenAI model list (GET /v1/models) and register the chat-capable subset into the iii models catalog. Idempotent.

Request
valueunknown
Response
valueunknown

provider::openai::stream

Function

Stream a single assistant turn from OpenAI Chat Completions into the caller-supplied channel.

Request
valueunknown
Response
valueunknown

run::start

Function

Start a durable agent session and return immediately.

Request
valueunknown
Response
valueunknown

session-inbox::drain

Function

Atomically read and clear all items in a session-scoped inbox.

Request
valueunknown
Response
valueunknown

session-inbox::peek

Function

Read all items in a session-scoped inbox without mutating.

Request
valueunknown
Response
valueunknown

session-inbox::push

Function

Append an item to a session-scoped inbox.

Request
valueunknown
Response
valueunknown

session-tree::append

Function

Append an AgentMessage entry to a session

Request
valueunknown
Response
valueunknown

session-tree::append_synthetic

Function

Append a synthetic user-role message entry to a session

Request
valueunknown
Response
valueunknown

session-tree::clone

Function

Duplicate a session with re-mapped ids

Request
valueunknown
Response
valueunknown

session-tree::compact

Function

Append a Compaction entry summarising the active path

Request
valueunknown
Response
valueunknown

session-tree::compactions

Function

Return all compaction entries for a session, sorted by timestamp ascending

Request
valueunknown
Response
valueunknown

session-tree::create

Function

Create a new empty session record

Request
valueunknown
Response
valueunknown

session-tree::ensure

Function

Idempotently ensure a session exists with the given id

Request
valueunknown
Response
valueunknown

session-tree::export_html

Function

Render the active path as a self-contained HTML document

Request
valueunknown
Response
valueunknown

session-tree::fork

Function

Fork a session at a given entry into a new session id

Request
valueunknown
Response
valueunknown

session-tree::list

Function

List sessions with optional pagination and ordering

Request
valueunknown
Response
valueunknown

session-tree::messages

Function

Load every AgentMessage on the active path of a session, paired with its entry_id, oldest first

Request
valueunknown
Response
valueunknown

session-tree::reconcile

Function

Mirror missing messages from a state-snapshot into session-tree

Request
valueunknown
Response
valueunknown

session-tree::tree

Function

Return the session tree as a nested TreeNode

Request
valueunknown
Response
valueunknown

session-tree::update_part

Function

Replace content of a function_result message entry with compacted output

Request
valueunknown
Response
valueunknown

session-tree::update_parts

Function

Batch replace content of multiple function_result message entries. Loads entries once.

Request
valueunknown
Response
valueunknown

turn::assistant_streaming

Function

Run one durable FSM transition for session in state assistant_streaming: start turn, stream provider response, finalize, and route onward.

Request
valueunknown
Response
valueunknown

turn::function_awaiting_approval

Function

Run one durable FSM transition for session in state function_awaiting_approval: execute each call as its approval decision arrives.

Request
valueunknown
Response
valueunknown

turn::function_execute

Function

Run one durable FSM transition for session in state function_execute: dispatch prepared calls and finalize results.

Request
valueunknown
Response
valueunknown

turn::get_state

Function

Read the current turn_state record for a session. Returns null if the session is unknown. UI clients use this on page reload to recover any in-progress modals (e.g. function_awaiting_approval) without reading iii state directly.

Request
valueunknown
Response
valueunknown

turn::on_approval

Function

State trigger on scope=approvals; enqueues turn::function_awaiting_approval when a decision is written.

Request
valueunknown
Response
valueunknown

turn::provisioning

Function

Run one durable FSM transition for session in state provisioning: build the system prompt, attach the agent_trigger function schema, advance to assistant_streaming.

Request
valueunknown
Response
valueunknown

turn::steering_check

Function

Run one durable FSM transition for session in state steering_check: drain inboxes and route onward.

Request
valueunknown
Response
valueunknown

ui::models::subscribe

Function

Register a browser's interest in model-catalog changes (ui::models::changed pushes).

Request
valueunknown
Response
valueunknown

ui::models::unsubscribe

Function

Remove a browser's model-catalog change subscription.

Request
valueunknown
Response
valueunknown

ui::subscribe

Function

Register a browser's interest in a session (or all sessions if session_id is null).

Request
valueunknown
Response
valueunknown

ui::unsubscribe

Function

Remove a browser's subscription to a session (or its all-sessions sub if session_id is null).

Request
valueunknown
Response
valueunknown

web::fetch

Function

Fetch a URL over HTTP(S) and return the response as a structured envelope. Use this INSTEAD of `shell::exec` with curl for any HTTP request — it returns {ok, status, headers, body} as JSON, enforces size/timeout caps, and blocks private / cloud-metadata / link-local addresses server-side (SSRF guard; loopback is allowed by default for harness dev workflows). For JSON: pass `json: {...}` (auto-stringifies + sets content-type) and `response_format: "json"` (auto-parses response into the `json` field). Method is case-insensitive. On failure returns `{ok:false, error, message}` where `error` is one of: invalid_payload, invalid_url, blocked_host, timeout, too_many_redirects, transport_error. Branch on `error`, not on text.

Request
valueunknown
Response
valueunknown

Triggers0

No triggers registered

Search the registry

Find workers, kits and executables, or jump to a page.