Skip to content

Docs: nodes and providers#19

Merged
willwashburn merged 4 commits into
mainfrom
node-providers-docs
Jul 13, 2026
Merged

Docs: nodes and providers#19
willwashburn merged 4 commits into
mainfrom
node-providers-docs

Conversation

@willwashburn

@willwashburn willwashburn commented Jul 8, 2026

Copy link
Copy Markdown
Member

Documents the node-provider architecture: a workspace has agents that converse and nodes that do work, and providers attach to a node, connect directly to the engine, and register its capabilities.

Pages

  • nodes-and-providers.mdx (new): the newcomer overview — the workspace → nodes → providers → capabilities model, action vs capacity registrations, node-addressed invoke (POST /v1/nodes/:node/actions/:name/invoke) with a curl and SDK example, per-provider liveness, spawn wrapping, and the cloud enroll + node up onboarding. Added to the docs nav under "Delivery and sessions."
  • architecture.mdx: the delivery deep-dive, rewritten to the provider topology — the engine is the hub, each provider connects directly to /v1/node/ws, and the node's agent runtime (Rust) hosts PTYs and registers spawn/release capacity.
  • nodes.mdx: node, provider, capability (action / capacity), placement, heartbeat, and node API aligned to the provider model, including node-addressed invoke and provider retirement routes.
  • actions.mdx: the node-actions section reframed to providers, capacity, node-addressed invoke, and spawn shadowing.
  • harness-driver.mdx: @agent-relay/harness-driver described as the client SDK for the node's agent runtime.
  • cli-broker-lifecycle.mdx: retitled "Node lifecycle" — cloud enroll, node up, and node-runtime commands.
  • reference-cli.mdx: node and fleet command groups plus cloud enroll.
  • orchestrating-with-actions.mdx: one line noting registration and invocation are one model whether an agent connection or a node provider hosts the handler.

Merge alongside the relay release that ships node providers (spec §8 step 5) — describes the end state.

🤖 Generated with Claude Code


Summary by cubic

Adds a newcomer “Nodes and providers” overview and rewrites docs to the provider model: providers attach to a node, connect directly to the engine, and register actions vs capacity. Documents node‑addressed invocation, per‑provider liveness, and spawn wrapping.

  • New Features

    • New page: Nodes and providers — model, action vs capacity, node‑addressed invoke (POST /v1/nodes/:node/actions/:name/invoke), per‑provider liveness, spawn:<harness> wrapping, and quick start (agent-relay cloud enroll + agent-relay node up). Added to docs nav.
    • Architecture updated to providers + agent runtime — the Rust runtime registers spawn:*/release capacity and owns PTYs; capability providers connect directly to /v1/node/ws; invocation is node‑addressed.
    • Nodes and Actions aligned to actions vs capacity, placement, and shadowing/delegation via ctx.spawnAgent; added provider retirement (DELETE /v1/nodes/:node/providers/:name) and clarified action name uniqueness within a node.
    • CLI/docs: fleet status now describes node/capability health from provider attachment; “Orchestrating with actions” notes the shared invocation model across agent‑ and node‑hosted handlers; harness driver docs frame @agent-relay/harness-driver as the PTY client for the node’s agent runtime.
  • Bug Fixes

    • Docs polish and correctness: spawn‑wrap example uses ctx.send_message; Capability glossary covers actions and capacity and notes capacity is never materialized as an invokable action; fixed “connects to /v1/node/ws” wording; aligned nt_live_* token notation; tightened the orchestrating cross‑reference; kept the harness‑driver caller/host boundary explicit; updated the docs‑markdown export test to the current quickstart banner copy.

Written for commit dc2c0a1. Summary will update on new commits.

Review in cubic

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Documentation across the site is rewritten to replace the broker/broker-pty-engine/action-runner model with a node + provider + agent runtime model, introducing "actions" vs "capacity" terminology. A new "Nodes and providers" page is added, navigation is updated, and related docs, CLI text, and one test expectation are revised.

Changes

Node/Provider Documentation Model

Layer / File(s) Summary
New "Nodes and providers" page and nav wiring
web/content/docs/nodes-and-providers.mdx, web/lib/docs-nav.ts
Adds a new page defining nodes, providers, capability registration, invoke lifecycle, authoring guidance (TS/Python/Swift), liveness, spawn wrapping, and fleet enrollment; registers it in docs navigation.
Nodes page rewrite
web/content/docs/nodes.mdx
Redefines node concept, capability kinds (action vs capacity), placement eligibility ordering, targeted/untargeted failure modes, heartbeat/roster liveness, REST API endpoints, and enrollment/identity flow.
Architecture page rewrite
web/content/docs/architecture.mdx
Reframes the engine-hub, provider/capability registration, delivery and spawn flows, vocabulary table, and footer cards around nodes/providers/agent runtime.
Supporting docs and cross-links
web/content/docs/actions.mdx, web/content/docs/harness-driver.mdx, web/content/docs/orchestrating-with-actions.mdx, web/content/docs/reference-cli.mdx, web/lib/test/docs-markdown-components.test.ts
Updates spawn/capacity explanation, agent-runtime SDK framing, intro text and cross-link banner, fleet status CLI wording, and the quickstart test expectation.

Estimated code review effort: 2 (Simple) | ~15 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant Engine
  participant Provider
  participant AgentRuntime
  Client->>Engine: POST /v1/nodes/:node/actions/:name/invoke
  Engine->>Provider: route invoke to registering provider
  Provider->>AgentRuntime: delegate spawn/release or run handler
  Provider-->>Engine: action.completed / action.failed
  Engine-->>Client: acknowledgement + result event
Loading

Possibly related PRs

  • AgentWorkforce/agentrelay.com#9: Overlapping updates to the same core nodes/delivery/architecture documentation as part of the node delivery model change-set.

Poem

A broker hopped away one day,
A node and provider came to stay. 🐇
Actions invoke, capacity flows,
Where spawn wraps spawn, the runtime knows.
New docs bloom like clover green—
The tidiest warren you've ever seen! 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title is concise and accurately summarizes the main documentation update about nodes and providers.
Description check ✅ Passed The description directly matches the changeset and explains the new docs and rewrites in relevant detail.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch node-providers-docs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the Agent Relay documentation to transition from the 'local broker' model to the new 'nodes and providers' architecture, renaming CLI commands from 'local' to 'node' and introducing a dedicated guide for nodes and providers. The review feedback highlights a couple of minor issues in the updated documentation: an inconsistent API call in a Python code example (using 'ctx.relay.send_message' instead of 'ctx.send_message') and a missing preposition ('to') in a sentence describing WebSocket connections.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread web/content/docs/nodes-and-providers.mdx Outdated
Comment thread web/content/docs/nodes.mdx Outdated
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Preview deployed!

Environment URL
Web https://47cc7fe1-agentrelay-web.agent-workforce.workers.dev

This is a Cloudflare Workers preview version of this PR's build.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c6c9838ca0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread web/content/docs/nodes-and-providers.mdx
Comment thread web/content/docs/cli-broker-lifecycle.mdx Outdated
Add the nodes-and-providers overview — workspace/agents/nodes/providers,
action vs capacity registrations, node-addressed invoke, per-provider
liveness, spawn wrapping, and the enroll + node up onboarding.

Align the delivery, action, and CLI pages to the node-provider model:
providers connect directly to the engine, the node's agent runtime hosts
spawn/release capacity, and invocation is node-addressed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9 issues found across 9 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="web/content/docs/nodes-and-providers.mdx">

<violation number="1" location="web/content/docs/nodes-and-providers.mdx:122">
P2: This example overwrites `agent["cli"]` from the harness selector (`claude`) to a full command string. Earlier in the page, `cli` is described as the field that addresses spawn capacity (e.g., `spawn:claude`). After this mutation, `ctx.spawn_agent(agent)` may no longer match the native `spawn:claude` capacity. Consider leaving `cli` unchanged and passing additional flags through an `args` key or `harnessConfig` instead, to keep the delegation routable.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread web/content/docs/actions.mdx
Comment thread web/content/docs/harness-driver.mdx Outdated
Comment thread web/content/docs/reference-cli.mdx Outdated
Comment thread web/content/docs/orchestrating-with-actions.mdx Outdated
Comment thread web/content/docs/nodes-and-providers.mdx Outdated
Comment thread web/content/docs/cli-broker-lifecycle.mdx Outdated
Comment thread web/content/docs/nodes-and-providers.mdx Outdated
Comment thread web/content/docs/nodes-and-providers.mdx
Comment thread web/content/docs/nodes.mdx Outdated
The introduction quickstart banner copy changed in #18; update the
docs-markdown export assertion to the shipped text so the suite is green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@willwashburn
willwashburn force-pushed the node-providers-docs branch from c6c9838 to 29821aa Compare July 8, 2026 11:11

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
web/content/docs/nodes.mdx (1)

184-184: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Minor style: "all of the node's providers" → "all the node's providers".

LanguageTool flags this as unnecessarily verbose. Quick readability improvement.

Proposed fix
- across restarts; all of the node's providers share it.
+ across restarts; all the node's providers share it.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/content/docs/nodes.mdx` at line 184, The wording in the node enrollment
description is slightly verbose; update the sentence in nodes.mdx to use “all
the node’s providers” instead of “all of the node’s providers” for cleaner
readability. Keep the surrounding explanation about node token reuse and
provider ownership unchanged.

Source: Linters/SAST tools

web/content/docs/architecture.mdx (1)

8-8: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Hyphenate "end-to-end" when used as a compound modifier.

"end to end" should be "end-to-end" before the noun it modifies.

Proposed fix
- This page describes the
- delivery side end to end: the node and provider model, the agent runtime that hosts sessions on a
+ This page describes the
+ delivery side end-to-end: the node and provider model, the agent runtime that hosts sessions on a
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/content/docs/architecture.mdx` at line 8, The phrase in the architecture
docs uses “end to end” as a compound modifier, so update the wording in the
affected prose to “end-to-end” where it appears before the noun; adjust the
surrounding sentence in the documentation content so the phrasing is consistent
and grammatically correct.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/content/docs/nodes-and-providers.mdx`:
- Line 25: The token notation in nodes-and-providers.mdx is inconsistent with
the rest of the docs: the text in the node identity section should use the same
`nt_live_*` prefix pattern used elsewhere. Update the wording around the
`nt_live_` token reference so it matches the shared notation and stays
consistent with the `name`/identity description in that section.

---

Nitpick comments:
In `@web/content/docs/architecture.mdx`:
- Line 8: The phrase in the architecture docs uses “end to end” as a compound
modifier, so update the wording in the affected prose to “end-to-end” where it
appears before the noun; adjust the surrounding sentence in the documentation
content so the phrasing is consistent and grammatically correct.

In `@web/content/docs/nodes.mdx`:
- Line 184: The wording in the node enrollment description is slightly verbose;
update the sentence in nodes.mdx to use “all the node’s providers” instead of
“all of the node’s providers” for cleaner readability. Keep the surrounding
explanation about node token reuse and provider ownership unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d8d69721-0583-4e5d-bfa3-5aecb8da37d4

📥 Commits

Reviewing files that changed from the base of the PR and between d5a62c2 and 29821aa.

📒 Files selected for processing (9)
  • web/content/docs/actions.mdx
  • web/content/docs/architecture.mdx
  • web/content/docs/harness-driver.mdx
  • web/content/docs/nodes-and-providers.mdx
  • web/content/docs/nodes.mdx
  • web/content/docs/orchestrating-with-actions.mdx
  • web/content/docs/reference-cli.mdx
  • web/lib/docs-nav.ts
  • web/lib/test/docs-markdown-components.test.ts

Comment thread web/content/docs/nodes-and-providers.mdx Outdated
willwashburn and others added 2 commits July 8, 2026 07:18
- Use the direct `ctx.send_message` helper in the spawn-wrap example, matching
  the stated ctx surface and the sibling `ctx.spawn_agent` call.
- Broaden the Capability glossary entry to cover both actions and capacity.
- Say capacity is "never materialized as an invokable action" so it does not
  read as contradicting the action.invoke dispatch frames on the Actions page.
- Fix "connects to /v1/node/ws" grammar.
- Scope the orchestrating cross-reference to the shared invocation model.
- Keep the harness-driver caller/host boundary explicit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@willwashburn
willwashburn merged commit 0816b8e into main Jul 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant