agent-embassy 4.1.0 → 4.3.0

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +135 -35
  3. package/SECURITY.md +25 -11
  4. package/dist/src/gateway/broker-control.js +9 -2
  5. package/dist/src/gateway/broker-control.js.map +1 -1
  6. package/dist/src/gateway/broker.d.ts +14 -0
  7. package/dist/src/gateway/broker.js +6 -2
  8. package/dist/src/gateway/broker.js.map +1 -1
  9. package/dist/src/gateway/codex-discovery.d.ts +42 -0
  10. package/dist/src/gateway/codex-discovery.js +604 -0
  11. package/dist/src/gateway/codex-discovery.js.map +1 -0
  12. package/dist/src/gateway/codex-stateless-transport.d.ts +1 -1
  13. package/dist/src/gateway/codex-stateless-transport.js +126 -18
  14. package/dist/src/gateway/codex-stateless-transport.js.map +1 -1
  15. package/dist/src/gateway/core-cli.js +14 -6
  16. package/dist/src/gateway/core-cli.js.map +1 -1
  17. package/dist/src/gateway/core-version.d.ts +1 -1
  18. package/dist/src/gateway/core-version.js +1 -1
  19. package/dist/src/gateway/endpoint-directory.d.ts +12 -0
  20. package/dist/src/gateway/endpoint-directory.js +94 -4
  21. package/dist/src/gateway/endpoint-directory.js.map +1 -1
  22. package/dist/src/gateway/ledger-codec.js +11 -6
  23. package/dist/src/gateway/ledger-codec.js.map +1 -1
  24. package/dist/src/gateway/ledger.d.ts +2 -1
  25. package/dist/src/gateway/ledger.js +5 -2
  26. package/dist/src/gateway/ledger.js.map +1 -1
  27. package/dist/src/gateway/local-control.d.ts +1 -1
  28. package/dist/src/gateway/local-control.js +1 -1
  29. package/dist/src/gateway/owned-state.d.ts +1 -0
  30. package/dist/src/gateway/owned-state.js +1 -1
  31. package/dist/src/gateway/owned-state.js.map +1 -1
  32. package/dist/src/gateway/runtime.d.ts +4 -2
  33. package/dist/src/gateway/runtime.js +18 -5
  34. package/dist/src/gateway/runtime.js.map +1 -1
  35. package/dist/src/gateway/tui-ssh.d.ts +36 -0
  36. package/dist/src/gateway/tui-ssh.js +199 -0
  37. package/dist/src/gateway/tui-ssh.js.map +1 -0
  38. package/dist/src/gateway/tui.d.ts +8 -1
  39. package/dist/src/gateway/tui.js +103 -53
  40. package/dist/src/gateway/tui.js.map +1 -1
  41. package/docs/CONFIGURATION.md +116 -24
  42. package/docs/DELIVERY.md +18 -6
  43. package/docs/GATEWAY-ARCHITECTURE.md +50 -25
  44. package/package.json +2 -2
  45. package/skills/embassy-peer/SKILL.md +27 -9
package/CHANGELOG.md CHANGED
@@ -4,6 +4,23 @@ All notable changes to this project are documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
+ ## [4.3.0] - 2026-09-06
8
+
9
+ ### Added
10
+ - Native Codex App Server discovery lists the recency top 20 unarchived root threads as ordinary Codex endpoints without per-task registration; sub-agents are excluded. Dormant agents wake on delivery; `register-codex` remains the fallback for non-native harnesses, and retirement suppresses immediate rediscovery.
11
+
12
+ ### Changed
13
+ - Private control protocol 5 → 6 for root status metadata. Private state 6 reads forward into 7 with one private retention marker; existing 4.2.0 rows remain retained. Window aging hides automatic rows without retiring them. Back up state before upgrading: 4.2.0 refuses schema 7, so rollback requires the pre-upgrade backup. Federation stays protocol 3.
14
+ - Ordinary Codex delivery starts only after an immediate idle observation. A competing client can win the remaining check/write race; the App Server cannot distinguish that steer from a fresh turn, so receipts prove acceptance and lifetime rather than fresh-turn creation. Exact-turn `STEER:` remains explicit and unchanged.
15
+
16
+ ## [4.2.0] - 2026-09-06
17
+
18
+ ### Added
19
+ - Multi-host TUI: independent client-side SSH status panes and existing operator actions on configured hosts, with host-bound retirement confirmation and stale/unsupported-response handling. No broker protocol or state change.
20
+
21
+ ### Fixed
22
+ - Claude socket timeout tests control the timer and synchronize on write start, rather than assuming connection completes post-connect revalidation within 10 ms. A separate pre-write timeout case pins the existing retryable classification.
23
+
7
24
  ## [4.1.0] - 2026-09-06
8
25
 
9
26
  ### Added
package/README.md CHANGED
@@ -14,7 +14,12 @@ identity, so a rename or replacement never silently retargets queued work.
14
14
  ## Requirements
15
15
 
16
16
  - macOS and Node.js 20 or newer.
17
- - Claude Code and/or Codex CLI installed for the agents you use.
17
+ - Claude Code installed for the Claude sessions you use.
18
+ - To receive in Codex, use its managed standalone installation with its App
19
+ Server daemon already running under the same macOS login. Embassy discovers
20
+ its 20 most recent unarchived root agents automatically, but does not install, start or
21
+ update that daemon; merely having a `codex` executable on PATH is
22
+ insufficient.
18
23
  - A private `nodes.json` when choosing an explicit host name or federating;
19
24
  first single-machine boot creates one from the short hostname.
20
25
  - Key-based, non-interactive SSH between configured machines when federating.
@@ -31,10 +36,16 @@ The launchd service records the absolute installation path used by
31
36
  `embassy service install`. After replacing or removing that installation, run
32
37
  the install command again.
33
38
 
34
- The agent starts at login and uses launchd's crash-only keepalive policy. A
39
+ `embassy service install` starts the per-user launchd agent immediately and
40
+ arranges login startup; use the same command to reload broker configuration or
41
+ start a stopped installation, and use `embassy service uninstall` to stop and
42
+ unload it.
43
+
44
+ The agent uses launchd's crash-only keepalive policy. A
35
45
  verified `SIGABRT` crash relaunches it. A clean exit, boot refusal, `SIGTERM`,
36
46
  or deliberate `kill -9` leaves it stopped; inspect `embassy service status`
37
- and install/start it deliberately rather than assuming every signal restarts it.
47
+ and run `embassy service install` deliberately rather than assuming every
48
+ signal restarts it.
38
49
 
39
50
  ## Quickstart
40
51
 
@@ -46,11 +57,15 @@ Embassy hosts.
46
57
  {"version":1,"host":"studio","nodes":[]}
47
58
  ```
48
59
 
49
- The file lives at
50
- `$XDG_STATE_HOME/agent-embassy/nodes.json`, or
51
- `~/.local/state/agent-embassy/nodes.json` when `XDG_STATE_HOME` is unset. It
52
- must be owned by the current user, mode 0600, inside the private mode-0700 state
53
- directory. If it is absent on first single-machine boot, Embassy derives a
60
+ `nodes.json` lives inside `EMBASSY_STATE_DIR` when set; otherwise it lives in
61
+ `$XDG_STATE_HOME/agent-embassy`, or `~/.local/state/agent-embassy` when
62
+ `XDG_STATE_HOME` is unset; every client shell must use the same state-directory
63
+ configuration captured by the installed service. Create the private state
64
+ directory before saving the example, and set directory mode 0700 and
65
+ `nodes.json` mode 0600 before installing the service.
66
+
67
+ The file must be owned by the current user, mode 0600, inside the private
68
+ mode-0700 state directory. If it is absent on first single-machine boot, Embassy derives a
54
69
  lower-case name from the short hostname and atomically writes the equivalent
55
70
  empty-node file. It never rewrites a present inventory.
56
71
 
@@ -61,8 +76,23 @@ embassy service install
61
76
  embassy health
62
77
  ```
63
78
 
64
- A Codex task registers itself from that task's inherited identity. Embassy
65
- never accepts or prints the task ID:
79
+ Global npm installation includes `skills/embassy-peer` under the
80
+ `agent-embassy` package in `npm root -g`; the operator can copy that entire
81
+ folder into `~/.codex/skills/` and `~/.claude/skills/`, then ask each agent to
82
+ use it, or provide the shown commands directly to the agent's shell tool.
83
+
84
+ Read `host` from the `nodes.json` that first boot created and use it as every
85
+ local `@host` suffix; the examples use `@studio` only when you explicitly chose
86
+ `host: studio`, not as a universal alias suffix.
87
+
88
+ The 20 most recent Codex root agents appear automatically from the same-user App Server daemon. Run
89
+ `embassy status` to see their current public names; dormant agents remain
90
+ addressable and wake on delivery. Native task IDs, previews and history never
91
+ appear in Embassy output.
92
+
93
+ For a harness without native daemon integration, ask the live Codex CLI task
94
+ to execute this fallback registration through its shell tool; an ordinary
95
+ terminal lacks that task's inherited identity:
66
96
 
67
97
  ```sh
68
98
  embassy register-codex --alias codex-reviewer@studio
@@ -72,22 +102,35 @@ Claude sessions are discovered and recorded by exact native identity when a
72
102
  Claude caller sends or when a named Claude target is resolved. No helper or
73
103
  native advertisement process is installed.
74
104
 
75
- From either a Claude session or a registered Codex task, send the body on
76
- stdin. The sender is inferred from the calling session:
105
+ After `codex-reviewer@studio` appears in status, ask the live Claude Code session
106
+ to run `embassy send --to codex-reviewer@studio` with 'Please review the change
107
+ and reply using the supplied Embassy hint' on stdin; execute this through the
108
+ agent's shell tool, not an unrelated terminal. The sender is inferred from the calling session:
77
109
 
78
110
  ```sh
79
- printf '%s\n' 'Please review the change.' |
80
- embassy send --to claude-reviewer@studio
111
+ printf '%s\n' 'Please review the change and reply using the supplied Embassy hint' |
112
+ embassy send --to codex-reviewer@studio
81
113
  ```
82
114
 
83
- The recipient gets a provenance envelope and a conversation-bound reply
84
- command:
115
+ The receiving Codex task sees a broker hint such as:
116
+
117
+ ```text
118
+ <embassy-reply-hint conversation="conv_EXACT_REFERENCE" ...>Reply by running `embassy send --conversation conv_EXACT_REFERENCE` with the reply body on stdin.</embassy-reply-hint>
119
+ ```
120
+
121
+ It must execute the exact received command to send the reply, because ordinary
122
+ Codex final output is not forwarded automatically and `conv_example` is not a
123
+ usable reference:
85
124
 
86
125
  ```sh
87
126
  printf '%s\n' 'Review complete.' |
88
127
  embassy send --conversation conv_example
89
128
  ```
90
129
 
130
+ For a Claude target, find the current Claude target name with an authorized
131
+ `embassy refresh` followed by `embassy status --json`, or use the exact current
132
+ name supplied by that session.
133
+
91
134
  Conversation references are identity-bound, are not aliases, and may survive a
92
135
  broker restart while their retained ledger row and both exact endpoints remain
93
136
  valid. They stop resolving after retirement, replacement, expiry, eviction, or
@@ -114,7 +157,24 @@ See [Delivery semantics](docs/DELIVERY.md) for the phase and receipt contract.
114
157
 
115
158
  ## Multiple machines
116
159
 
117
- List direct peers in each machine's `nodes.json`. The local broker launches:
160
+ Install Embassy and run `embassy service install` on both Macs; for `studio`
161
+ and `laptop`, use `{"version":1,"host":"studio","nodes":["laptop"]}` on
162
+ studio and `{"version":1,"host":"laptop","nodes":["studio"]}` on laptop,
163
+ with each peer name matching both the remote inventory's `host` and a working
164
+ SSH destination or `~/.ssh/config` Host alias.
165
+
166
+ After changing a running broker's inventory, reload it with
167
+ `embassy service install`; wait for `codex-reviewer@laptop` to appear from the
168
+ Codex daemon on laptop (or use fallback registration), then ask the Claude
169
+ session on studio to run
170
+ `embassy send --to codex-reviewer@laptop` with the message on stdin.
171
+
172
+ From studio, verify the remote command environment with
173
+ `/usr/bin/ssh laptop 'which -a embassy; node --version; embassy --version'`,
174
+ then verify the corresponding direction from laptop; both remote Node and
175
+ Embassy must resolve without an interactive shell or password prompt.
176
+
177
+ The local broker launches:
118
178
 
119
179
  ```text
120
180
  /usr/bin/ssh <node> embassy peer-stdio
@@ -129,8 +189,8 @@ queue and trusts the peer's source identity, so first contact does not wait
129
189
  for a destination catalog poll. Catalogs are bounded memory-only observations,
130
190
  never routing authority.
131
191
 
132
- `embassy refresh` observes local Claude sessions and every configured SSH
133
- catalog in parallel. `status` performs no provider or network I/O: it shows the
192
+ `embassy refresh` observes local Claude and Codex sessions and every configured
193
+ SSH catalog in parallel. `status` performs no provider or network I/O: it shows the
134
194
  last per-node catalog rows and observation time, retains the last rows when a
135
195
  later refresh fails, and labels that node `PEER_TUNNEL_UNAVAILABLE`. At most 128
136
196
  remote rows are displayed; truncation is explicit. Named and exact sends still
@@ -138,6 +198,16 @@ ask the owner directly.
138
198
 
139
199
  ## Operations
140
200
 
201
+ Retain `result.deliveryToken` from the successful send response in your current
202
+ session and substitute that exact value for the example; status shows aggregate
203
+ route queues and recent delivery metadata but cannot recover a lost delivery
204
+ token or distinguish identical sends by token.
205
+
206
+ The ellipses (`...` or `…`), `conv_example`, `dlv_example`, and `<public-id>`
207
+ are substitutions, not runnable literal values: supply the indicated command
208
+ arguments, exact received conversation reference, exact returned delivery
209
+ token, or public endpoint ID respectively.
210
+
141
211
  ```sh
142
212
  embassy status
143
213
  embassy status --json
@@ -155,14 +225,25 @@ embassy serve # foreground alternative
155
225
  retirements, each local route's last native operation, and the last bounded SSH
156
226
  catalog observation. It does not claim that an idle provider is ready.
157
227
 
158
- `embassy tui` live-updates that metadata in a plain terminal (including over
159
- SSH). On-screen keys select endpoints, confirm exact-ID local retirement,
160
- refresh discovery, run the loopback check, or look up a delivery token.
161
- It never displays message bodies. Remote rows show catalog age, not remote
162
- broker health, queue depth or last operation: those are not reported by the
163
- catalog. Run the TUI on the owning machine to inspect its local ledger.
228
+ Use `delivery-status` to inspect that delivery's phase, pending age or terminal
229
+ code; use `status --json` to identify a stranded local route, and retire it with
230
+ `retire --alias` using its alias or `retire --endpoint` using its public id from `result.routes`,
231
+ understanding that this settles all outstanding work for that endpoint.
232
+
233
+ `embassy tui` shows the local broker and each direct host in `nodes.json` in one
234
+ terminal. Use `[` / `]` to select a host: local status polls every second, while
235
+ independent SSH clients read each remote's `embassy status --json` about every
236
+ five seconds. Each pane reports its own broker's health, queue and last
237
+ operations—not another broker's cached catalog. One hanging host cannot block
238
+ the other panes. No message bodies are displayed.
239
+ On-screen keys refresh, check, look up a token or retire on the selected host.
240
+ Remote actions run the same CLI there over configured non-interactive SSH;
241
+ retirement requires HOST + full endpoint ID confirmation and a fresh supported
242
+ owner snapshot. An uncertain action is never automatically retried.
164
243
  Disconnected views are marked stale; actions are never automatically retried.
165
- Without an interactive terminal, `tui` prints the status text once and exits.
244
+ Without an interactive terminal, `tui` prints local status text once and exits
245
+ without SSH. Unsupported remote response shapes are not guessed; a lazy
246
+ `embassy --version` read identifies only that remote CLI, not its broker version.
166
247
  Deliveries are newest-admitted first, with faults distinguished from successful
167
248
  delivery. Use 1–4 or Tab to change sections, g/G for first/last row, and Esc to
168
249
  return from an action result. Token lookup echoes only the token you type;
@@ -176,7 +257,9 @@ person, while `--json` keeps the envelope.
176
257
 
177
258
  `check` is a broker-only loopback through the real ledger and coordinator. It
178
259
  proves local control, persistence, routing, and receipt handling without
179
- contacting a live Claude or Codex agent. It is not a provider-readiness test.
260
+ contacting a live Claude or Codex agent. Healthy means the Embassy control
261
+ socket and ledger respond; a passing check exercises only broker loopback, so
262
+ neither proves that a Claude session or Codex task can receive or answer a message.
180
263
 
181
264
  `retire` removes one local endpoint identity. Queued and reserved work is
182
265
  cancelled, armed work becomes ambiguous, and accepted work becomes unconfirmed.
@@ -192,22 +275,39 @@ If departed sessions share a name, retire one exactly with
192
275
  provider frames never appear in public output.
193
276
  - Every native write is authorized against the exact current endpoint after
194
277
  preparation. Names are never silently resolved again during an attempt.
195
- - SSH uses the fixed system binary, batch mode, no forwarding, and no shell.
196
- - `health` and `check` describe broker infrastructure, not model readiness or
197
- comprehension.
278
+ - Embassy launches `/usr/bin/ssh` directly without a local shell, in batch mode
279
+ with forwarding disabled; the remote account must resolve the fixed
280
+ `embassy peer-stdio` command in its non-interactive SSH environment.
281
+ - Healthy means the Embassy control socket and ledger respond; a passing check
282
+ exercises only broker loopback, so neither proves that a Claude session or
283
+ Codex task can receive or answer a message.
198
284
 
199
285
  See [Security](SECURITY.md), [Configuration](docs/CONFIGURATION.md), and
200
286
  [Architecture](docs/GATEWAY-ARCHITECTURE.md).
201
287
 
202
288
  ## Upgrading to 4.x
203
289
 
204
- Version 4 accepts only fresh private state schema 6 and private control
205
- protocol 5. It does not migrate or read v3 state. Before upgrading, use the old
206
- binary to inspect and settle work, stop the broker, preserve a backup of the
207
- old state, then reset `gateway-state.json`. Keep `nodes.json`.
290
+ Codex discovery reads valid schema 6 forward and writes schema 7, adding only a
291
+ private retention marker; existing 4.2.0 endpoints stay retained. No reset is
292
+ needed for 4.2.0. Back up `gateway-state.json` before upgrading: 4.2.0 refuses
293
+ schema 7, so rollback requires that pre-upgrade backup. Private control changes
294
+ 5→6; upgrade CLI and broker together. There is no 3.x migration.
295
+
296
+ Before replacing a 3.x installation, use its matching CLI to inspect and
297
+ settle or explicitly abandon pending work; stop a launchd broker with
298
+ `embassy service uninstall` (or stop the foreground serve process) and confirm
299
+ it is stopped with `embassy service status`, back up and move aside only
300
+ `gateway-state.json` in that broker's state directory while retaining
301
+ `nodes.json`, then install the current discovery-enabled 4.x release and run
302
+ `embassy service install`. Current Codex agents are discovered; use fallback
303
+ registration only for non-native harnesses.
304
+
305
+ All state produced by Embassy 3.x is unsupported by 4.x; preserve the matching
306
+ old binary as well as its old state if rollback may be needed, and never run
307
+ the old and new brokers together. See the [reset procedure](docs/CONFIGURATION.md#private-state-reset).
208
308
 
209
309
  The rollback boundary is the preserved old state plus its matching old binary.
210
- Do not point an old binary at schema-6 state or a v4 binary at old state.
310
+ Do not point 4.2.0 at schema-7 state or this release at schema ≤5.
211
311
 
212
312
  ## Development
213
313
 
package/SECURITY.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  ## Supported versions
4
4
 
5
- Security fixes are provided for the current release line. Version 4 uses a
6
- reset-only state boundary and does not run compatibility code for older private
7
- state or control protocols.
5
+ Security fixes are provided for the current release line. Private schema 6 is
6
+ read forward into 7; schema ≤5 still requires a reset. Private control peers
7
+ must use the same protocol version.
8
8
 
9
9
  ## Reporting a vulnerability
10
10
 
@@ -89,9 +89,13 @@ An endpoint's opaque `(ID, host, provider)` tuple is routing authority. Its
89
89
  admission; writes, replies, restart recovery, and settlement use the tuple.
90
90
  Historical names never resolve, and queued work is never silently rebound.
91
91
 
92
- Codex tasks self-register from inherited `CODEX_THREAD_ID`. Embassy never
93
- accepts, prints, or guesses the value. Registration performs no provider I/O.
94
- Each operation resumes and attests that exact task immediately before write.
92
+ Codex agents are discovered from bounded same-user App Server metadata. Their
93
+ immutable native thread IDs remain private identity and are never accepted as
94
+ arguments, printed or guessed. Native names are mutable aliases; only the
95
+ recency top 20 roots are automatically listed. A task may
96
+ self-register from inherited `CODEX_THREAD_ID` as a fallback; discovery and
97
+ registration reconcile the same identity. Each operation resumes and attests
98
+ that exact task immediately before write.
95
99
 
96
100
  Claude callers are resolved from inherited `CLAUDE_CODE_MESSAGING_SOCKET`,
97
101
  which must be an absolute path. The path may become an in-memory `uds:`
@@ -142,6 +146,13 @@ never interrupts a generation, and falls back to the ordinary bounded queue
142
146
  when cleanly unavailable. Embassy never calls `turn/interrupt`, answers an
143
147
  approval, or changes a task's approval or sandbox policy.
144
148
 
149
+ Ordinary Codex work is started only after an immediate idle-status observation;
150
+ active work remains queued in Embassy. A competing client can start a turn
151
+ between that observation and Embassy's write, and the provider response cannot
152
+ distinguish the resulting steer from a fresh turn. The receipt therefore proves
153
+ acceptance and lifetime, not fresh-turn creation. This residual race is the same
154
+ for discovered and fallback-registered tasks and never authorizes replay.
155
+
145
156
  ## Filesystem and process boundary
146
157
 
147
158
  The state directory is a current-user-owned mode-0700 real directory. State and
@@ -189,6 +200,8 @@ commit boundary remain uncertain and are never replayed automatically.
189
200
  Public JSON is a closed projection. It may contain opaque Embassy endpoint IDs,
190
201
  aliases, providers, hosts, queue depths, safe codes, phases/outcomes, ages,
191
202
  recent retirement times, and bounded remote catalog rows and observation times.
203
+ Codex rows may additionally contain observed busy, waiting, idle, dormant or unknown state.
204
+ The explicit-registration retention marker remains private.
192
205
  It must never contain native IDs or handles, socket paths, message bodies,
193
206
  delivery/conversation secrets, credentials, exceptions, raw diagnostics, or
194
207
  provider histories. Human output is derived from the same validated shape.
@@ -198,11 +211,12 @@ protocol channel. Operational hints use bounded safe codes and stderr.
198
211
 
199
212
  ## State reset and rollback
200
213
 
201
- Private state schema 6 and control protocol 5 are the only v4 formats. Older or
202
- unknown state refuses before mutation. There is no converter, compatibility
203
- reader, or alias for removed commands. The operator must inspect and settle old
204
- work with the old binary, stop the broker, preserve the old state, and start v4
205
- with a fresh `gateway-state.json` while keeping `nodes.json`.
214
+ Private state writes schema 7 and reads valid schema 6 forward, retaining its
215
+ existing rows. Control protocol is 6. Schemas ≤5 and unknown state refuse before
216
+ mutation; no 3.x converter or removed-command alias exists. Before upgrading
217
+ 4.2.0, stop the broker and back up its state; 4.2.0 refuses schema 7, so rollback
218
+ requires that pre-upgrade backup. Upgrading from 3.x still requires inspecting
219
+ unsettled work with the old binary and resetting state while keeping `nodes.json`.
206
220
 
207
221
  Reset invalidates all old routes, receipts, and conversation references. The
208
222
  only rollback is the preserved old binary with its untouched old state. Embassy
@@ -20,6 +20,8 @@ const endpoint = (x) => exact(x, ["id", "host", "provider", "alias"]) &&
20
20
  const rows = (x, maximum, accepts) => Array.isArray(x) && x.length <= maximum && x.every(accepts);
21
21
  const endpoints = (x, accepts = endpoint) => rows(x, 128, accepts) &&
22
22
  new Set(x.map((row) => JSON.stringify([row.host, row.id]))).size === x.length;
23
+ const codexMetadata = (x) => exact(x, ["state"]) &&
24
+ ["dormant", "idle", "busy", "waiting", "systemError", "unknown"].includes(String(x.state));
23
25
  /** One public projection contract, used before emission and after transport. Native
24
26
  * handles and arbitrary adapter fields can never hitchhike in a valid result. */
25
27
  export function isBrokerResult(method, value) {
@@ -39,9 +41,13 @@ export function isBrokerResult(method, value) {
39
41
  exact(value, ["found", "state", "terminal", "deadlineAt"], ["pendingForMs", "safeErrorCode"]) && value.found === true && date(value.deadlineAt) &&
40
42
  (value.terminal === true ? outcomes.includes(String(value.state)) && code(value.safeErrorCode) && value.pendingForMs === undefined
41
43
  : value.terminal === false && ["queued", "reserved", "armed", "accepted"].includes(String(value.state)) && count(value.pendingForMs) && value.safeErrorCode === undefined);
42
- case "list_snapshot": return exact(value, ["health", "revision", "routes", "messages", "retirements"], ["safeErrorCode", "federation"]) &&
44
+ case "list_snapshot": return exact(value, ["health", "revision", "routes", "messages", "retirements"], ["safeErrorCode", "federation", "codex"]) &&
43
45
  ["healthy", "degraded"].includes(String(value.health)) && count(value.revision) &&
44
46
  (value.safeErrorCode === undefined || code(value.safeErrorCode)) &&
47
+ (value.codex === undefined || exact(value.codex, ["truncated", "complete"], ["observedAt", "safeErrorCode"]) &&
48
+ typeof value.codex.truncated === "boolean" && typeof value.codex.complete === "boolean" &&
49
+ (value.codex.observedAt === undefined || date(value.codex.observedAt)) &&
50
+ (value.codex.safeErrorCode === undefined || code(value.codex.safeErrorCode))) &&
45
51
  (value.federation === undefined || exact(value.federation, ["nodes", "truncated"]) && typeof value.federation.truncated === "boolean" &&
46
52
  rows(value.federation.nodes, 32, (node) => exact(node, ["host", "routes"], ["observedAt", "safeErrorCode"]) && host(node.host) &&
47
53
  endpoints(node.routes, (row) => endpoint(row) && row.host === node.host) &&
@@ -49,8 +55,9 @@ export function isBrokerResult(method, value) {
49
55
  (node.safeErrorCode === undefined || node.safeErrorCode === "PEER_TUNNEL_UNAVAILABLE")) &&
50
56
  new Set(value.federation.nodes.map((node) => node.host)).size === value.federation.nodes.length &&
51
57
  value.federation.nodes.reduce((sum, node) => sum + node.routes.length, 0) <= 128) &&
52
- endpoints(value.routes, (row) => exact(row, ["id", "alias", "provider", "host", "queueDepth"], ["lastOperation"]) &&
58
+ endpoints(value.routes, (row) => exact(row, ["id", "alias", "provider", "host", "queueDepth"], ["lastOperation", "codex"]) &&
53
59
  endpoint({ id: row.id, alias: row.alias, provider: row.provider, host: row.host }) && count(row.queueDepth) &&
60
+ (row.codex === undefined || row.provider === "codex" && codexMetadata(row.codex)) &&
54
61
  (row.lastOperation === undefined || exact(row.lastOperation, ["outcome", "code"]) &&
55
62
  [...outcomes, "deferred"].includes(String(row.lastOperation.outcome)) && code(row.lastOperation.code))) &&
56
63
  rows(value.messages, 600, (row) => exact(row, ["state", "ageMs"], ["source", "target", "safeErrorCode"]) &&
@@ -1 +1 @@
1
- {"version":3,"file":"broker-control.js","sourceRoot":"","sources":["../../../src/gateway/broker-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker-control.js","sourceRoot":"","sources":["../../../src/gateway/broker-control.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { EndpointDirectory, type EndpointCaller } from "./endpoint-directory.js"
3
3
  import { type LedgerLimits, type LedgerState } from "./ledger.js";
4
4
  import type { OwnedStateFile } from "./owned-state.js";
5
5
  import type { FederatedHandoff, Federation } from "./federation.js";
6
+ import type { CodexDiscoveryObservation } from "./codex-discovery.js";
6
7
  export type BrokerOptions = Readonly<{
7
8
  host: string;
8
9
  store: OwnedStateFile<LedgerState>;
@@ -13,6 +14,10 @@ export type BrokerOptions = Readonly<{
13
14
  nodes?: readonly string[];
14
15
  steeringEnabled?: boolean;
15
16
  federation?: Pick<Federation, "catalog" | "snapshot">;
17
+ codexDiscovery?: {
18
+ refresh(): Promise<void>;
19
+ observation(): CodexDiscoveryObservation;
20
+ };
16
21
  }>;
17
22
  /** Application commands over the directory and the single delivery ledger. */
18
23
  export declare class MessagingBroker {
@@ -87,6 +92,9 @@ export declare class MessagingBroker {
87
92
  code: string;
88
93
  unwritten?: true;
89
94
  }> | undefined;
95
+ codex?: Readonly<{
96
+ state: import("./codex-discovery.js").CodexThread["status"];
97
+ }> | undefined;
90
98
  id: string;
91
99
  alias: string;
92
100
  provider: "claude" | "codex";
@@ -107,6 +115,12 @@ export declare class MessagingBroker {
107
115
  nodes: readonly import("./federation.js").FederationObservation[];
108
116
  truncated: boolean;
109
117
  }>;
118
+ codex?: Readonly<{
119
+ observedAt?: string;
120
+ safeErrorCode?: string;
121
+ truncated: boolean;
122
+ complete: boolean;
123
+ }>;
110
124
  revision: number;
111
125
  safeErrorCode?: string;
112
126
  health: string;
@@ -116,9 +116,11 @@ export class MessagingBroker {
116
116
  async refresh() {
117
117
  const [endpoints] = await Promise.all([
118
118
  this.options.directory.refresh(), this.options.federation?.catalog(),
119
+ this.options.codexDiscovery?.refresh().catch(() => undefined),
119
120
  ]);
120
121
  this.kick();
121
- return { routes: endpoints.map(publicEndpoint) };
122
+ const codex = (await this.options.store.snapshot()).endpoints.filter((row) => row.provider === "codex");
123
+ return { routes: this.options.directory.listed([...codex, ...endpoints.filter((row) => row.provider !== "codex")]).map(publicEndpoint) };
122
124
  }
123
125
  async status() {
124
126
  await this.change((ledger) => ledger.expire());
@@ -127,8 +129,10 @@ export class MessagingBroker {
127
129
  return {
128
130
  health: this.fault ? "degraded" : "healthy", ...(this.fault ? { safeErrorCode: this.fault } : {}),
129
131
  revision: state.commit.sequence,
132
+ ...(this.options.codexDiscovery ? { codex: this.options.codexDiscovery.observation() } : {}),
130
133
  ...(this.options.federation ? { federation: this.options.federation.snapshot() } : {}),
131
- routes: state.endpoints.map((e) => ({ ...publicEndpoint(e),
134
+ routes: this.options.directory.listed(state.endpoints).map((e) => ({ ...publicEndpoint(e),
135
+ ...(e.provider === "codex" && this.options.codexDiscovery ? { codex: this.options.directory.codexMetadata(e) } : {}),
132
136
  ...(this.options.coordinator.observation(e) === undefined ? {} : { lastOperation: this.options.coordinator.observation(e) }),
133
137
  queueDepth: state.deliveries.filter((d) => d.target.id === e.id && d.target.host === e.host && d.state.phase !== "terminal").length })),
134
138
  messages: state.deliveries.map((d) => ({ source: alias(d.source) ?? d.sourceAlias, target: alias(d.target),
@@ -1 +1 @@
1
- {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/gateway/broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/gateway/broker.ts"],"names":[],"mappings":"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"}