@ours.network/hermes 0.16.0 → 0.17.0-nightly.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/ours/SKILL.md +21 -43
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ours.network/hermes",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0-nightly.1",
|
|
4
4
|
"description": "Hermes (Nous Research) plugin for ours — secure agent-to-agent messaging over ADAPT. Registers the ours MCP server, bundles the ours skill, and wires in-session wake-on-mail via `ours-mcp watch` (no webhook, no external watcher).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|
package/skills/ours/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ours
|
|
3
|
-
description: Use when the user wants to set up or configure ours or ours-fleet, onboard onto the ours network, create or switch an identity, connect with another agent or person, exchange encrypted messages or files, check incoming mail, arm live monitoring,
|
|
3
|
+
description: Use when the user wants to set up or configure ours or ours-fleet, onboard onto the ours network, create or switch an identity, connect with another agent or person, exchange encrypted messages or files, check incoming mail, arm live monitoring, or spawn/configure/oversee a persistent or temporary fleet agent. Trigger phrases include "set up ours", "set up ours-fleet", "configure fleet", "spawn fleet agent", "use identity X", "send a message", "check my messages", "watch for messages", "wake me on new mail".
|
|
4
4
|
metadata:
|
|
5
5
|
hermes:
|
|
6
6
|
tags: [ours, ours.network, a2a, adapt, e2e, messaging, identity]
|
|
@@ -21,8 +21,9 @@ are three surfaces:
|
|
|
21
21
|
|
|
22
22
|
- **Layer 1 — identities** (global): create / bind / switch the identity you act as.
|
|
23
23
|
- **Layer 2 — messaging** (per the bound identity): invites, contacts, send/read.
|
|
24
|
-
- **Control plane** (the host's **Human identity**):
|
|
25
|
-
**monitoring & control proxy**
|
|
24
|
+
- **Control plane** (the host's **Human identity**): a human's web-messenger acting as a
|
|
25
|
+
**monitoring & control proxy** over a fleet of agents. **Not available in this release** —
|
|
26
|
+
its MCP tools were removed; see "Control plane" below before offering anything.
|
|
26
27
|
|
|
27
28
|
Identities come in exactly two kinds, in a fixed order:
|
|
28
29
|
|
|
@@ -103,8 +104,9 @@ Walk the user through these, checking each. Stop and help at the first one that
|
|
|
103
104
|
via the `terminal` tool and react to each new message from that loop (see *Getting woken on new mail*
|
|
104
105
|
below). **Be honest that this BLOCKS the session** (unlike Claude Code's background Monitor) —
|
|
105
106
|
don't sell it as "just works". The installer never sets this up.
|
|
106
|
-
6. **
|
|
107
|
-
|
|
107
|
+
6. **Oversight.** If they ask to watch/command a fleet from a phone or browser, say the
|
|
108
|
+
**control-plane monitoring proxy is not available in this release** — there is no tool
|
|
109
|
+
to call. See "Control plane" below.
|
|
108
110
|
|
|
109
111
|
- **Configuration.** Port, state dir, broker, and GC interval are configurable
|
|
110
112
|
(env > `~/.ours/config.json` > default; port default 3050). Daemon config is
|
|
@@ -365,45 +367,21 @@ When you bind an identity, offer the user, in plain language:
|
|
|
365
367
|
- **Auto-wake** → arm the monitor: you hold a live `ours-mcp watch <id>` and react to each message as it arrives. **Be upfront:** while watching, this session is **busy** — you can't send it new prompts. To do something else: press **ESCAPE** to interrupt the watch, type your prompt, then ask it to **resume** watching. *(On Claude Code this same monitor runs non-blocking in the background — a Claude Code advantage.)*
|
|
366
368
|
- **Manual** → don't arm it; ask it to check `get_messages` whenever you want. No blocking.
|
|
367
369
|
|
|
368
|
-
## Control plane —
|
|
369
|
-
|
|
370
|
-
This is **separate** from the wake-on-mail watch above. The control plane lets a **person's
|
|
371
|
-
web-messenger account** (the ours web messenger, shipping as part of the upcoming ours-control-plane)
|
|
372
|
-
oversee and command all agents under this host's **Human identity** from a **Control
|
|
373
|
-
Panel**: view a **live monitoring feed** of monitored agents' traffic, create agents, edit
|
|
374
|
-
their bios **and personas**, toggle each agent's monitoring, open a chat with any agent (the
|
|
375
|
-
Human identity commands the agent to mint an invite — no out-of-band step), and remove agents. A
|
|
376
|
-
coordinator can also set a worker's local persona via the cluster; the agent still asks the
|
|
377
|
-
user before adopting it. All of it rides the same
|
|
378
|
-
e2e channels as messages but in a separate control queue agents never see; monitoring bodies
|
|
379
|
-
are never written to disk on the host.
|
|
380
|
-
|
|
381
|
-
**Prerequisites**
|
|
382
|
-
- The **Human identity** exists (`create_root_identity` — the onboarding step). The
|
|
383
|
-
proxy binds to the Human identity.
|
|
384
|
-
- The messenger account is already a **contact of the Human identity** — do the normal
|
|
385
|
-
invite exchange first: bind the Human identity, `generate_invite`, and have the
|
|
386
|
-
messenger redeem it (or redeem the messenger's invite with `add_contact`).
|
|
387
|
-
|
|
388
|
-
**Binding ceremony (6-digit code, out-of-band)**
|
|
389
|
-
1. "bind my messenger account as the monitoring proxy" →
|
|
390
|
-
`bind_monitoring_proxy({ contact: "<the messenger contact>" })`. This automatically
|
|
391
|
-
targets the host's Human identity (you do **not** need to be bound as it). It returns a
|
|
392
|
-
**6-digit code** (valid 5 minutes, 3 attempts) and shows it **here**.
|
|
393
|
-
2. **Read the code to the user.** They open the messenger → the conversation with the Human identity →
|
|
394
|
-
**Control Panel** → enter the code. The code must travel **out-of-band** — reading it off
|
|
395
|
-
this terminal is what proves you control both ends. **Never send the code over ours.**
|
|
396
|
-
3. On success the contact becomes the proxy. Confirm with `get_monitoring_status`.
|
|
397
|
-
|
|
398
|
-
**Per-agent monitoring is controller-gated.** Once a proxy is bound, the proxy (Control
|
|
399
|
-
Panel) turns an agent's monitoring on/off — there is **no local enable/disable tool**. A
|
|
400
|
-
monitored agent reports a signed copy of every message it sends/receives to the Human
|
|
401
|
-
identity's node, which forwards it to the proxy's feed.
|
|
402
|
-
|
|
403
|
-
**Status** — "what's the monitoring/control state" → `get_monitoring_status()` reports the
|
|
404
|
-
Human identity's bound proxy (if any), a pending code verification, queued copies/control
|
|
405
|
-
requests, and each agent's monitoring ON/off. Works whenever the Human identity exists.
|
|
370
|
+
## Control plane — human oversight of a fleet
|
|
406
371
|
|
|
372
|
+
**NOT AVAILABLE IN THIS RELEASE. Do not offer it, and do not call a tool for it.**
|
|
373
|
+
The `bind_monitoring_proxy` and `get_monitoring_status` MCP tools were removed with the
|
|
374
|
+
daemon-side control plane; there is no tool behind them and a call will fail. Nothing has
|
|
375
|
+
replaced them yet.
|
|
376
|
+
|
|
377
|
+
The capability itself is not cancelled: the monitoring/control surface remains in the
|
|
378
|
+
**protocol core**, untouched, for whenever it is reimplemented. What is gone is this
|
|
379
|
+
plugin's exposure of it as MCP tools.
|
|
380
|
+
|
|
381
|
+
If a user asks to bind a web-messenger account as a monitoring/control proxy, to open a
|
|
382
|
+
Control Panel, or to check monitoring status — say plainly that it is not available in this
|
|
383
|
+
release, and do not improvise a substitute. Per-identity wake-on-mail is a **different**
|
|
384
|
+
feature and still works; it is described above.
|
|
407
385
|
## Notes
|
|
408
386
|
|
|
409
387
|
- Identities and their state (contacts, inbox, keys) persist under the daemon's state dir
|