agent-embassy 4.3.0 → 4.4.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.
@@ -8,10 +8,8 @@ pairs are supported. Sending is one `embassy send` command; receiving wakes the
8
8
  target through its native interface. A receipt proves delivery machinery, not
9
9
  model comprehension.
10
10
 
11
- The design optimizes for this steady state and deliberately excludes native
12
- Claude `SendMessage` advertisement helpers, shell-peer mailboxes, automatic
13
- Codex output forwarding, persistent remote mirrors, general activity streams,
14
- and migration compatibility.
11
+ The design optimizes for this steady state; everything it deliberately leaves
12
+ out is listed under [Responsibility exclusions](#responsibility-exclusions).
15
13
 
16
14
  ## Topology
17
15
 
@@ -31,8 +29,8 @@ Claude/Codex CLI
31
29
  remote broker ledger
32
30
  ```
33
31
 
34
- There is one broker per login user and host. The broker owns one schema-7 JSON
35
- document and one private control socket. It does not listen on a network port.
32
+ There is one broker per login user and host. The broker owns one private JSON
33
+ state document and one private control socket. It does not listen on a network port.
36
34
  launchd may supervise the same foreground `serve` entry point.
37
35
 
38
36
  ## Endpoint directory
@@ -139,8 +137,8 @@ guessing. The live host lease is checked before a transaction, before
139
137
  persistence, and immediately before rename.
140
138
 
141
139
  No-op transactions write nothing. Unsupported or corrupt state refuses before
142
- mutation. Valid schema 6 reads forward with all existing rows retained; writes use 7.
143
- The only added field is the private retention marker. Schema ≤5 still needs a reset.
140
+ mutation. A valid schema-6 document from an earlier 4.x release reads forward
141
+ with all existing rows retained; schema ≤5 needs a reset.
144
142
 
145
143
  ## Coordinator
146
144
 
@@ -239,9 +237,8 @@ reset.
239
237
 
240
238
  ## Local control and CLI
241
239
 
242
- The private control protocol is version 6. Each connection carries one bounded
243
- JSON request and one closed JSON response over the expected private Unix
244
- socket. A mutating request whose reply is lost after write reports
240
+ Each private control connection carries one bounded JSON request and one
241
+ closed JSON response over the expected private Unix socket. A mutating request whose reply is lost after write reports
245
242
  `CONTROL_WRITE_OUTCOME_AMBIGUOUS`; the CLI does not retry it.
246
243
 
247
244
  The public CLI is:
@@ -257,8 +254,9 @@ serve service peer-stdio
257
254
  `send` accepts exactly one of `--to` and `--conversation`; it has no `--from`.
258
255
  Human `status` is a rendering of the same closed body-free JSON shape. Its
259
256
  health word describes control/ledger health, local route rows expose their last
260
- native operation, and Codex rows expose busy, waiting, idle, dormant or unknown
261
- status, without parent references or registration-origin labels. The federation section
257
+ native operation, and Codex rows expose busy, waiting, idle, dormant,
258
+ systemError or unknown status, without parent references or
259
+ registration-origin labels. The federation section
262
260
  exposes only the last bounded catalog observation. `health` is a control-path probe. `check` creates temporary
263
261
  private loopback endpoints and uses the real ledger/coordinator/receipt path,
264
262
  then retires them; no provider or model is contacted. It is not a
@@ -283,7 +281,7 @@ Startup order is ownership-sensitive:
283
281
  1. load the private node inventory, or derive a transient first-boot default,
284
282
  and load configuration;
285
283
  2. acquire the fixed host-wide kernel lease;
286
- 3. open and validate schema-7 state without changing the inventory;
284
+ 3. open and validate the private state without changing the inventory;
287
285
  4. atomically install and reload the default inventory when first boot needs
288
286
  one;
289
287
  5. construct native and SSH adapters;
@@ -304,7 +302,7 @@ model interrupt.
304
302
 
305
303
  | Surface | Version | Compatibility policy |
306
304
  |---|---:|---|
307
- | Private state (`gateway-state.json`) | 7 | Reset only; older and unknown schemas refuse without mutation |
305
+ | Private state (`gateway-state.json`) | 7 | A valid schema-6 document is read forward with rows retained; ≤5 and unknown refuse without mutation (reset) |
308
306
  | Private control (CLI ↔ broker) | 6 | CLI and broker must come from one installation |
309
307
  | Federation (`peer-stdio`) | 3 | Exact version and host handshake; no compatibility mode |
310
308
  | Consumed Claude peer protocol | 1 | Incompatible records are rejected in isolation |
@@ -314,10 +312,11 @@ each use boundary. Version or build metadata is never routing authority.
314
312
 
315
313
  ## Responsibility exclusions
316
314
 
317
- The v4 core intentionally has no shell-peer registration/token/mailbox/await
315
+ The core intentionally has no shell-peer registration/token/mailbox/await
318
316
  system, no native Claude advertisement helper, no automatic provider-output
319
317
  reply capture, no persisted remote route mirror, no pair/selection graph, no
320
- dashboard/watch event system, no notice-mode machinery, and no v3 migration
321
- reader. The responsibilities that remain are endpoint identity, bounded
318
+ dashboard/watch event system, no notice-mode machinery, and no old-state
319
+ migration reader. Its responsibilities are endpoint identity, bounded
322
320
  delivery, native wake, exact replies, direct federation, status, retirement,
323
- service supervision, and loopback verification.
321
+ service supervision, and loopback verification. The reasons are recorded in
322
+ the repository's `docs/DECLINED.md`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-embassy",
3
- "version": "4.3.0",
3
+ "version": "4.4.1",
4
4
  "description": "A local gateway for bidirectional messaging between Claude Code sessions and Codex tasks.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -62,13 +62,18 @@
62
62
  "soak": "tsx --test test/soak/core-soak.test.ts"
63
63
  },
64
64
  "engines": {
65
- "node": ">=20"
65
+ "node": ">=22"
66
66
  },
67
67
  "dependencies": {
68
+ "ink": "7.1.1",
69
+ "react": "19.2.8",
70
+ "string-width": "8.2.2",
71
+ "wrap-ansi": "10.0.1",
68
72
  "ws": "8.21.3"
69
73
  },
70
74
  "devDependencies": {
71
75
  "@types/node": "24.10.1",
76
+ "@types/react": "19.2.18",
72
77
  "@types/ws": "8.18.1",
73
78
  "tsx": "4.20.6",
74
79
  "typescript": "5.9.3"
@@ -100,4 +100,4 @@ For operator-authorized removal use `embassy retire --alias <local-alias>`. It r
100
100
 
101
101
  When a name collides, operator-authorized `embassy retire --endpoint <public-id>` removes just that local endpoint using its opaque ID from status. Use exactly one of `--alias` or `--endpoint`; never substitute a native session ID. A partial discovery cannot clear a known collision; exact user-supplied UUID addressing remains available until a complete scan proves uniqueness.
102
102
 
103
- There is no shell-peer mailbox, await command, native sending advertisement, automatic output forwarding, reply alias, or unregister-codex command in v4. Do not fall back to removed commands or direct provider sockets; report the precise refusal.
103
+ `embassy --help` lists the whole public CLI; do not fall back to a command that is not listed there or to direct provider sockets; report the precise refusal.