@sjawhar/opencode-legion-envoy 5.6.0 → 5.6.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/opencode-legion-envoy",
3
- "version": "5.6.0",
3
+ "version": "5.6.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/src/server.js",
@@ -25,11 +25,11 @@ reply. A human may reply to your message in turn — the follow-up arrives as a
25
25
  `in_reply_to` names your message and whose `reply_body` quotes it; answer it the same way,
26
26
  `dispatch_message({ issue, in_reply_to: "<their reply id>", body })`, so the exchange reads as one
27
27
  thread. `dispatch_message` itself never carries `target` or `delivery`: agent-to-agent traffic goes
28
- through Envoy or the hub. A bearer that targets over HTTP names its own session in `actor`
29
- (`{kind: "session", id}`), and the card shows that session as the author. `GET /api/v1/agents`
30
- (any authenticated caller) lists live sessions with their capabilities (`aside`, `btw`, `steer`);
31
- target only a session that advertises the mode you want. Sending to a session with no issue
32
- (`POST /api/v1/agents/{session_id}/messages`) stays human-only.
28
+ through Envoy or Oh My Pi's `agent://` messages. A bearer that targets over HTTP names its own
29
+ session in `actor` (`{kind: "session", id}`), and the card shows that session as the author.
30
+ `GET /api/v1/agents` (any authenticated caller) lists live sessions with their capabilities
31
+ (`aside`, `btw`, `steer`); target only a session that advertises the mode you want. Sending to a
32
+ session with no issue (`POST /api/v1/agents/{session_id}/messages`) stays human-only.
33
33
 
34
34
  ## Answering a direct message
35
35
 
@@ -122,8 +122,9 @@ envoy_send(
122
122
 
123
123
  `envoy_whoami`'s `session_id` is the address a reply to you reaches. Inside a `task` subagent it
124
124
  is the session that spawned you: a subagent registers no Envoy session of its own, so a peer
125
- answering it reaches that session, which relays to you over hub. The `subagent` field in that
126
- output carries your own host session id — it is not an address, so never hand it to a peer.
125
+ answering it reaches that session, which relays to you with a `write` to your `agent://` address.
126
+ The `subagent` field in that output carries your own host session id — it is not an address, so
127
+ never hand it to a peer.
127
128
 
128
129
  `session_id` is empty when nothing can be reached: a process that took no Envoy identity, or a
129
130
  subagent whose spawning session this process can no longer place (it forked away, and other
@@ -134,8 +135,8 @@ would send your peers to an agent that never spawned you.
134
135
  Your own `envoy_publish` never reaches the agent that spawned you. The listener delivers nothing
135
136
  to the session a message names as its source, and inside a subagent that source is your parent,
136
137
  so a publish to a role it holds — or to any topic it subscribes to — is accepted and delivered to
137
- nobody. Use hub for that one hop. `envoy_send` to any other session, including a reply, is
138
- unaffected.
138
+ nobody. Use a `write` to its `agent://` address for that one hop. `envoy_send` to any other
139
+ session, including a reply, is unaffected.
139
140
 
140
141
  ### Delivery capabilities
141
142
 
@@ -62,11 +62,11 @@ workflow table. You may still use ordinary `task` subagents for your own phase w
62
62
  is a Legion role.
63
63
  Escalate a product, scope, design, cross-phase, or lifecycle decision to the owning architect with
64
64
  `envoy_publish` to its role topic (`notifications.role.` followed by its encoded token, see
65
- above), carrying the verified facts and the decision needed. `hub` only reaches subagents
66
- inside your own process, not the architect's separate one. Never write a decision block into a
67
- spec yourself: the architect decides whether the human must answer it and writes the block, since
68
- a new version of an approved root spec closes the tree's design gate. A standalone to-do only a
69
- human can do is a `dispatch_ask`, and its replies return to your own session.
65
+ above), carrying the verified facts and the decision needed. A `write` to `agent://` only reaches
66
+ agents inside your own process, not the architect's separate one. Never write a decision block
67
+ into a spec yourself: the architect decides whether the human must answer it and writes the block,
68
+ since a new version of an approved root spec closes the tree's design gate. A standalone to-do
69
+ only a human can do is a `dispatch_ask`, and its replies return to your own session.
70
70
 
71
71
  Because the same agent is always resumed for its phase, you may receive more than one
72
72
  assignment across your lifetime: once the daemon ends your phase it suspends you, and when a later
@@ -152,9 +152,10 @@ new work.
152
152
  clone, so they all share one operation log: `jj undo`, `jj abandon`, and
153
153
  `jj op restore|revert|abandon|undo` rewrite it for every tree at once. The extension refuses them in every
154
154
  phase-worker pane before they run — a `bash` command in any position of a pipeline or `&&`
155
- chain, with or without `-R`, judged on the whole argument list; `eval` code; and a `hub`
156
- process start — from your own tool calls and from any `task` subagent you spawn (it runs in
157
- your pane, against the same log), and a `bash` command whose quoted text merely mentions `jj`
155
+ chain, with or without `-R`, judged on the whole argument list (a supervised service's start
156
+ included); `eval` code; and stdin written to a service (a `write` to `proc://<id>`) — from your
157
+ own tool calls and from any `task` subagent you spawn (it runs in your pane, against the same
158
+ log), and a `bash` command whose quoted text merely mentions `jj`
158
159
  with one of those words (a heredoc, an echo, a commit message) is refused too: write such text
159
160
  with the `write` tool or say "operation-log rollback" instead. `jj restore <paths>`,
160
161
  `jj op log`, and `jj op show` stay allowed. Recover forward only: a new commit