ablative docs
↑↓ move↵ openesc close
Stack Notebook ablative.com.au

Run Norn activities

Configure a declared Norn harness and serve its queue through an agent worker.

Open .md

Prepare the worker host

Use an Aion build with the Norn feature and install a compatible Norn executable on the worker host. Complete Norn’s account login there. Choose its executable path, account and allowed environment variable names explicitly.

Build
The CLI’s norn feature includes the adapter and is in the default feature set. The Norn executable is installed and authenticated separately on the worker host.
Launch
The adapter launches the configured binary with --protocol jsonrpc, performs initialize and requires protocol norn-driven/1, then sends run/execute.
Events
Norn event notifications become activity transcript events. The response matching run/execute supplies the terminal activity outcome.
Controls
The adapter advertises InjectMessage and Cancel. Each session also checks the spawned Norn binary’s advertised capabilities. Other intervention primitives are refused by name.
Environment
env_pass is the complete child environment. Add each needed provider or account variable name explicitly; the worker host supplies its value.
Implementation
crates/aion-integration-norn/src/harness.rs defines launch and registration capabilities; translate.rs and session.rs map messages, events and results.

Declare the harness

This workflow sends a prompt and repository path to the reviewers queue. Replace the example Norn executable and account with the host’s values. The action’s repository parameter supplies the child working directory.

//! Answer a repository question through the reviewers worker.
workflow review_a_tree
  input tree: String
  input question: String
  outcome answered: type Answer, route success

type Answer { reply: String }

type Reply { text: String, final_message: String, stop_reason: String, session_id: String }

worker reviewers
  harness
    kind norn
    concurrency 2
    reconnect_initial_backoff 5s
    reconnect_max_backoff 1m
    reconnect_max_attempts 50
    env_pass "PATH", "HOME"
    args "--account", "default"
    cwd from repo
    binary "/usr/local/bin/norn"
  action review(repo: String, prompt: String) -> Reply
    agent

step review
  review(repo: tree, prompt: question) -> reply
  route answered(reply: reply.text)

The complete agent outcome includes text, final_message, stop_reason and session_id. The workflow routes the text field into its own successful answer.

Check and serve

Inspect the action surface and resolved harness before connecting.

aion awl check review_a_tree.awl
aion worker agent review_a_tree.awl --liminal-address 127.0.0.1:50061 --identity norn-reviewer-1 --check

Deploy the document through the authoring commands, then serve its declared queue. This command uses the liminal worker listener.

aion worker agent review_a_tree.awl --liminal-address 127.0.0.1:50061 --identity norn-reviewer-1

For an authenticated listener, supply the connection token file and admitted namespace described in auth and Lys. Read the registration result and transcript. Use activity control to inject a message or cancel the advertised attempt.

On main, crates/aion-integration-norn/src/harness.rs:403–423 negotiates the protocol, and :492–513 starts the agent request. Registration capabilities are declared at :77–82. A successful protocol handshake still needs a configured Norn account to execute a model request.