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.