agent-embassy 4.3.0 → 4.4.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,16 @@ 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.4.0] - 2026-09-06
8
+
9
+ ### Changed
10
+ - Embassy now requires Node.js 22 or newer. The terminal interface uses Ink 7 for layout, styling, input and incremental rendering.
11
+ - `embassy tui` is rebuilt on Ink: endpoints grouped by state (Working, Waiting, Faulted, Ready, Dormant, Not reporting, Cached) with counts and a column header; one colour per state with the state word always shown; bold names, dim metadata, display-width padding so wide-character names keep the grid.
12
+ - The selected row is one highlight bar and reverse video means selection only; the outcome column receives the width so a failed delivery's safe code is readable at 80 columns; lists scroll by rendered lines, never orphan a group header, and mark clipped rows with "↑ N more" / "↓ N more".
13
+ - Host tabs with a health mark, section tabs with the failed count in red, and one footer line carrying the position counter and the keys; the discovery note shares the header line.
14
+ - Centred, bordered dialogs for retirement and token entry; the retirement dialog shows host, alias, the full endpoint ID and the settlement consequences in red with a distinct confirm key. Every empty list says why it is empty. Without an interactive terminal `tui` prints plain text with no escape codes; NO_COLOR removes styling and keeps the screen interactive.
15
+ - `string-width` is now a runtime dependency (pinned).
16
+
7
17
  ## [4.3.0] - 2026-09-06
8
18
 
9
19
  ### Added
package/README.md CHANGED
@@ -13,7 +13,7 @@ identity, so a rename or replacement never silently retargets queued work.
13
13
 
14
14
  ## Requirements
15
15
 
16
- - macOS and Node.js 20 or newer.
16
+ - macOS and Node.js 22 or newer.
17
17
  - Claude Code installed for the Claude sessions you use.
18
18
  - To receive in Codex, use its managed standalone installation with its App
19
19
  Server daemon already running under the same macOS login. Embassy discovers
@@ -13,7 +13,6 @@ import { LocalControlError, requestLocalControl } from "./local-control.js";
13
13
  import { runCoreRuntime } from "./runtime.js";
14
14
  import { defaultRunLaunchctl } from "./service-agent.js";
15
15
  import { runCoreServiceCommand } from "./core-service-command.js";
16
- import { runTui } from "./tui.js";
17
16
  import { createTuiSshClient } from "./tui-ssh.js";
18
17
  import { CORE_VERSION } from "./core-version.js";
19
18
  export { CORE_VERSION } from "./core-version.js";
@@ -203,8 +202,10 @@ export async function runCoreCli(args, dependencies = {}) {
203
202
  if (command === "tui") {
204
203
  if (args.length !== 1)
205
204
  return invalid();
205
+ const { runTui } = await import("./tui.js");
206
206
  const ssh = createTuiSshClient({ nodes: inventory.nodes, env });
207
207
  await runTui({ input: stdin, output: stdout, call, renderStatus, host: inventory.host,
208
+ terminal: { noColor: env.NO_COLOR !== undefined, dumb: env.TERM === "dumb" },
208
209
  remote: { hosts: inventory.nodes, call: ssh.call, close: ssh.close },
209
210
  hint: (code, host) => host && host !== inventory.host
210
211
  ? `On ${host}: ${hint("tui", code, "the configured state directory on that host")}`
@@ -1 +1 @@
1
- {"version":3,"file":"core-cli.js","sourceRoot":"","sources":["../../../src/gateway/core-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-cli.js","sourceRoot":"","sources":["../../../src/gateway/core-cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC;AAMF,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,mBAAmB,EAAS,EAAE,GAAG,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,oCAAoC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9H,MAAM,MAAM,GAAG,CAAC,CAAU,EAAgC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE/G,SAAS,YAAY,CAAC,IAAuB,EAAE,OAA0B;IACvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,EAAE,CAAC;QACnE,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC1C,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,MAAM,QAAQ,GAAG,CAAC,OAAmC,EAAE,IAAY,EAAU,EAAE;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACvD,CAAC,CAAC;AAEF,SAAS,MAAM,CAAC,GAAsB;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,4BAA4B,CAAC;IAC7E,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjE,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,MAAM,EAAE,EAAE,CAAC;IACzG,OAAO,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,KAAe;IACjC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;QACrB,IAAI,IAAI,GAAG,MAAM;YAAE,OAAO,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IACxF,MAAM,CAAC;QAAC,OAAO,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAAC,CAAC;IACjD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CAAC,OAAe,EAAE,IAAY,EAAE,QAAgB;IAC3D,IAAI,IAAI,KAAK,0BAA0B;QAAE,OAAO,mIAAmI,CAAC;IACpL,IAAI,IAAI,KAAK,wBAAwB;QAAE,OAAO,OAAO,KAAK,OAAO;YAC/D,CAAC,CAAC,gCAAgC,QAAQ,6DAA6D;YACvG,CAAC,CAAC,wCAAwC,QAAQ,8HAA8H,CAAC;IACnL,IAAI,IAAI,KAAK,kCAAkC,IAAI,IAAI,KAAK,uBAAuB;QAAE,OAAO,qKAAqK,CAAC;IAClQ,IAAI,IAAI,KAAK,0BAA0B;QAAE,OAAO,yHAAyH,CAAC;IAC1K,IAAI,IAAI,KAAK,iCAAiC;QAAE,OAAO,mFAAmF,CAAC;IAC3I,IAAI,IAAI,KAAK,0BAA0B;QAAE,OAAO,4HAA4H,CAAC;IAC7K,IAAI,IAAI,KAAK,uBAAuB,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,yCAAyC,QAAQ,yEAAyE,CAAC;IACzM,IAAI,IAAI,KAAK,wBAAwB,IAAI,IAAI,KAAK,8BAA8B;QAAE,OAAO,6BAA6B,QAAQ,wEAAwE,CAAC;IACvM,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,CAAC,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,mDAAmD,CAAC,CAAC;IAC5J,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACvI,KAAK,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAAC,CAAC;IACxT,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAClJ,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACpH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,8BAA8B,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,YAAY,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1K,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAkC,EAAE,CAAC;YACvE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,IAAI,qBAAqB,KAAK,IAAI,CAAC,UAAU,IAAI,mBAAmB,EAAE,CAAC,CAAC;YAC1H,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAmC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,QAAQ,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/H,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACvH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAqC,CAAC;IAC7D,IAAI,QAAQ,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACvF,KAAK,GAAG,CAAC,MAAM,IAAI,oBAAoB,OAAO,GAAG,CAAC,MAAM,IAAI,uBAAuB,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;IAC/K,MAAM,WAAW,GAAG,KAAK,CAAC,WAAwC,CAAC;IACnE,IAAI,WAAW,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/H,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAuB,EAAE,eAAoC,EAAE;IAC9F,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IACzF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IACrG,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,MAAe,EAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClI,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IAC/L,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,IAAI,QAAQ,GAAG,gCAAgC,CAAC;IAChD,IAAI,CAAC;QACH,IAAI,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAC/E,IAAI,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,WAAW,YAAY,IAAI,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAC1G,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YACxC,MAAM,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/I,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,QAAQ,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YAC/H,KAAK,CAAC,OAAO,EAAE,MAAM,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC1D,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,mBAAmB;gBAC9D,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAO,EAAE;aAC5F,CAAC,CAAC,CAAC;YACJ,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,EAAE,OAAsB,EAAoB,EAAE;YAC9D,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,GAAU,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;YAClH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,iBAAiB;gBACzF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,SAAS;gBAAE,OAAO,SAAS,EAAE,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO,SAAS,EAAE,CAAC;gBACjJ,IAAI,QAAQ,IAAI,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,sCAAsC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO,SAAS,EAAE,CAAC;gBACpJ,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,SAAS,EAAE,CAAC;YAC/G,OAAO,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YACxC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAChE,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI;gBACnF,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC5E,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;gBACpE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI;oBACnD,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,6CAA6C,CAAC,EAAE;oBACnF,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC;gBAC/B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;gBAC7F,MAAM,EAAE,MAAkB,EAAE,QAAQ,EAAE;oBACpC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAA0B;oBAC9H,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAqB;oBACrG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAA2D;iBAC5K,EAAE,CAAC,CAAC;YACP,MAAM,OAAO,CAAC,IAAI,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAsB,CAAC;QAC3B,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YACzC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC;oBAChF,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7H,CAAC;aAAM,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;YACvE,OAAO,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;oBACtG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5F,CAAC;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YACzC,OAAO,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;oBAChE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;QAChG,CAAC;aAAM,IAAI,OAAO,KAAK,iBAAiB,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YACxE,OAAO,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;QAC5H,CAAC;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7D,OAAO,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACzI,IAAI,CAAC,MAAM;gBAAE,OAAO,OAAO,EAAE,CAAC;YAC9B,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;YAC1C,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;oBAAE,MAAM;gBAChF,IAAI,YAAY,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACxJ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzD,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;;YACjF,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,eAAe;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3H,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,KAAK,YAAY,WAAW,IAAI,KAAK,YAAY,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAChH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,QAAQ;YAAE,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,IAAI,CAAC,CAAC;QACtD,OAAO,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,CAAC;IAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAAC,CAAC;AAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC7J,IAAI,UAAU,EAAE,CAAC;IACf,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -1 +1 @@
1
- export declare const CORE_VERSION = "4.3.0";
1
+ export declare const CORE_VERSION = "4.4.0";
@@ -1,2 +1,2 @@
1
- export const CORE_VERSION = "4.3.0";
1
+ export const CORE_VERSION = "4.4.0";
2
2
  //# sourceMappingURL=core-version.js.map
@@ -0,0 +1,67 @@
1
+ export type Obj = Record<string, unknown>;
2
+ export type Section = "endpoints" | "deliveries" | "retirements" | "result";
3
+ export type Mode = "browse" | "token" | "confirm";
4
+ export type EndpointRow = Readonly<{
5
+ id: string;
6
+ alias: string;
7
+ provider: string;
8
+ host: string;
9
+ local: boolean;
10
+ queueDepth?: number;
11
+ lastOperation?: Obj;
12
+ observedAt?: string;
13
+ safeErrorCode?: string;
14
+ codex?: Obj;
15
+ placeholder?: boolean;
16
+ }>;
17
+ export type DeliverySummary = Readonly<{
18
+ summary: true;
19
+ rows: readonly Obj[];
20
+ }>;
21
+ export type TuiModel = {
22
+ snapshot?: Obj;
23
+ snapshotAt?: number;
24
+ staleSince?: number;
25
+ error?: string;
26
+ errorDetail?: string;
27
+ action?: string;
28
+ actionRunning?: boolean;
29
+ host?: string;
30
+ restarted?: boolean;
31
+ section: Section;
32
+ previousSection?: Exclude<Section, "result">;
33
+ selected: Record<Exclude<Section, "result">, number> & Partial<Record<"result", number>>;
34
+ selectedEndpoint?: string;
35
+ mode: Mode;
36
+ token: string;
37
+ retiring?: EndpointRow;
38
+ result?: Readonly<{
39
+ label: string;
40
+ value: string;
41
+ }>;
42
+ hosts?: readonly Readonly<{
43
+ host: string;
44
+ state: string;
45
+ selected: boolean;
46
+ }>[];
47
+ };
48
+ export declare const object: (value: unknown) => value is Obj;
49
+ export declare const list: (value: unknown) => Obj[];
50
+ export declare const text: (value: unknown, fallback?: string) => string;
51
+ export declare const clean: (value: unknown) => string;
52
+ export declare const errorText: (error: unknown) => string;
53
+ export declare const age: (milliseconds: unknown) => string;
54
+ export declare const json: (value: unknown) => string;
55
+ export declare const endpointKey: (row: Pick<EndpointRow, "host" | "id">) => string;
56
+ export declare const unsuccessful: Set<string>;
57
+ export declare const deliveryToken: RegExp;
58
+ export declare function tokenFeedback(token: string): string;
59
+ export declare const groups: readonly ["Working", "Waiting", "Faulted", "Ready", "Dormant", "Not reporting", "Cached"];
60
+ export declare function endpointGroup(row: EndpointRow): number;
61
+ export declare function endpointRows(snapshot?: Obj): EndpointRow[];
62
+ export declare function sectionRows(model: TuiModel, width?: number): (Obj | EndpointRow | DeliverySummary | string)[];
63
+ export declare function operation(row: EndpointRow): string;
64
+ export declare function collisionAliases(snapshot?: Obj): Set<string>;
65
+ export declare function summaryLine(row: DeliverySummary): string;
66
+ export declare const isLoopback: (value: unknown) => boolean;
67
+ export declare function modalFits(model: Readonly<TuiModel>, width: number, height: number): boolean;
@@ -0,0 +1,136 @@
1
+ import wrapAnsi from "wrap-ansi";
2
+ export const object = (value) => !!value && typeof value === "object" && !Array.isArray(value);
3
+ export const list = (value) => Array.isArray(value) ? value.filter(object) : [];
4
+ export const text = (value, fallback = "not reported") => typeof value === "string" && value.length > 0 ? value : fallback;
5
+ const ansi = /(?:\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)|\u001b[P^_X][\s\S]*?\u001b\\|\u001b\[[0-?]*[ -/]*[@-~]|\u001b[@-_])/g;
6
+ export const clean = (value) => text(value, "").replace(ansi, "")
7
+ .replace(/[\p{Cc}\p{Cf}]/gu, (character) => character === "\u200d" ? character
8
+ : character === "\n" || character === "\r" || character === "\t" ? " " : "?");
9
+ export const errorText = (error) => {
10
+ if (object(error) && typeof error.code === "string")
11
+ return clean(error.code);
12
+ if (error instanceof Error && typeof error.code === "string")
13
+ return clean(error.code);
14
+ return "CONTROL_UNAVAILABLE";
15
+ };
16
+ export const age = (milliseconds) => {
17
+ const ms = typeof milliseconds === "number" && Number.isFinite(milliseconds) ? Math.max(0, milliseconds) : 0;
18
+ if (ms < 1_000)
19
+ return `${Math.round(ms)}ms`;
20
+ if (ms < 60_000)
21
+ return `${Math.floor(ms / 1_000)}s`;
22
+ if (ms < 3_600_000)
23
+ return `${Math.floor(ms / 60_000)}m`;
24
+ return `${Math.floor(ms / 3_600_000)}h`;
25
+ };
26
+ export const json = (value) => {
27
+ try {
28
+ return clean(JSON.stringify(value));
29
+ }
30
+ catch {
31
+ return "unprintable result";
32
+ }
33
+ };
34
+ export const endpointKey = (row) => `${row.host}\0${row.id}`;
35
+ const loopback = (value) => typeof value === "string" && /^loopback-[ab]-[0-9a-f]{8}@/.test(value);
36
+ export const unsuccessful = new Set(["failed", "cancelled", "expired", "ambiguous", "unconfirmed"]);
37
+ export const deliveryToken = /^dlv_[A-Za-z0-9_-]{24}$/;
38
+ export function tokenFeedback(token) {
39
+ if (deliveryToken.test(token))
40
+ return "format valid";
41
+ if ("dlv_".startsWith(token) || /^dlv_[A-Za-z0-9_-]{0,23}$/.test(token))
42
+ return "format incomplete";
43
+ return "format invalid";
44
+ }
45
+ export const groups = ["Working", "Waiting", "Faulted", "Ready", "Dormant", "Not reporting", "Cached"];
46
+ export function endpointGroup(row) {
47
+ if (!row.local)
48
+ return 6;
49
+ return { busy: 0, waiting: 1, systemError: 2, idle: 3, dormant: 4 }[String(row.codex?.state)] ?? 5;
50
+ }
51
+ export function endpointRows(snapshot) {
52
+ const local = list(snapshot?.routes).map((row) => ({ id: text(row.id), alias: text(row.alias), provider: text(row.provider),
53
+ host: text(row.host), local: true, ...(typeof row.queueDepth === "number" ? { queueDepth: row.queueDepth } : {}),
54
+ ...(object(row.lastOperation) ? { lastOperation: row.lastOperation } : {}), ...(object(row.codex) ? { codex: row.codex } : {}) }));
55
+ const federation = object(snapshot?.federation) ? snapshot.federation : undefined;
56
+ const remote = list(federation?.nodes).flatMap((node) => {
57
+ const common = { host: text(node.host), local: false,
58
+ ...(typeof node.observedAt === "string" ? { observedAt: node.observedAt } : {}),
59
+ ...(typeof node.safeErrorCode === "string" ? { safeErrorCode: node.safeErrorCode } : {}) };
60
+ const routes = list(node.routes);
61
+ return routes.length ? routes.map((row) => ({ ...common, id: text(row.id), alias: text(row.alias),
62
+ provider: text(row.provider), host: text(row.host, common.host) }))
63
+ : [{ ...common, id: "", alias: "No cached endpoints", provider: "-", placeholder: true }];
64
+ });
65
+ return [...local, ...remote].sort((a, b) => endpointGroup(a) - endpointGroup(b));
66
+ }
67
+ function deliveryRows(snapshot) {
68
+ const sorted = list(snapshot?.messages).sort((a, b) => (typeof a.ageMs === "number" ? a.ageMs : Number.MAX_SAFE_INTEGER) -
69
+ (typeof b.ageMs === "number" ? b.ageMs : Number.MAX_SAFE_INTEGER));
70
+ const result = [];
71
+ for (const row of sorted) {
72
+ const anonymous = typeof row.source !== "string" && typeof row.target !== "string", last = result.at(-1);
73
+ if (object(last) && last.summary === true && anonymous && Array.isArray(last.rows))
74
+ result[result.length - 1] = { summary: true, rows: [...last.rows.filter(object), row] };
75
+ else if (anonymous)
76
+ result.push({ summary: true, rows: [row] });
77
+ else
78
+ result.push(row);
79
+ }
80
+ return result;
81
+ }
82
+ export function sectionRows(model, width = 80) {
83
+ if (model.section === "endpoints")
84
+ return endpointRows(model.snapshot);
85
+ if (model.section === "deliveries")
86
+ return deliveryRows(model.snapshot);
87
+ if (model.section === "result") {
88
+ if (!model.result)
89
+ return [];
90
+ let value = model.result.value;
91
+ try {
92
+ value = JSON.stringify(JSON.parse(value), null, 2);
93
+ }
94
+ catch { /* A refusal includes plain operator guidance. */ }
95
+ return [`${model.result.label}:`, ...value.split("\n").flatMap((line) => wrapAnsi(clean(line), Math.max(1, width - 2), { hard: true, trim: false }).split("\n"))];
96
+ }
97
+ return list(model.snapshot?.retirements);
98
+ }
99
+ export function operation(row) {
100
+ if (!row.lastOperation)
101
+ return "not yet observed";
102
+ const outcome = text(row.lastOperation.outcome);
103
+ return outcome === "delivered" ? "delivered" : `${outcome} !${text(row.lastOperation.code)}`;
104
+ }
105
+ export function collisionAliases(snapshot) {
106
+ const counts = new Map();
107
+ for (const row of endpointRows(snapshot))
108
+ if (!row.placeholder)
109
+ counts.set(row.alias, (counts.get(row.alias) ?? 0) + 1);
110
+ return new Set([...counts].filter(([, count]) => count > 1).map(([alias]) => alias));
111
+ }
112
+ export function summaryLine(row) {
113
+ const counts = new Map();
114
+ for (const item of row.rows) {
115
+ const state = text(item.state), label = `${state}${unsuccessful.has(state) && item.safeErrorCode ? ` !${text(item.safeErrorCode)}` : ""}`;
116
+ counts.set(label, (counts.get(label) ?? 0) + 1);
117
+ }
118
+ return `${row.rows.length} unattributed deliveries · ${[...counts].map(([label, count]) => `${label} ${count}`).join(" · ")}`;
119
+ }
120
+ export const isLoopback = loopback;
121
+ export function modalFits(model, width, height) {
122
+ if (width < 48)
123
+ return false;
124
+ const inner = Math.min(78, width - 4) - 6;
125
+ const count = (value) => wrapAnsi(clean(value), inner, { hard: true, trim: false }).split("\n").length;
126
+ if (model.mode === "token")
127
+ return height >= 11;
128
+ if (model.mode !== "confirm" || !model.retiring)
129
+ return true;
130
+ const row = model.retiring;
131
+ const rows = 11 + count(`Host: ${row.host}`) + count(`Alias: ${row.alias}`) + count(row.id) +
132
+ count(`${row.provider} · queue ${row.queueDepth ?? 0} · last ${operation(row)}`) +
133
+ count("queued/reserved work is cancelled, armed work becomes ambiguous, accepted work becomes unconfirmed — cannot be undone.");
134
+ return rows <= height;
135
+ }
136
+ //# sourceMappingURL=tui-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-model.js","sourceRoot":"","sources":["../../../src/gateway/tui-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { type TuiModel } from "./tui-model.js";
3
+ export type TuiViewProps = Readonly<{
4
+ model: Readonly<TuiModel>;
5
+ columns: number;
6
+ rows: number;
7
+ now: number;
8
+ color: boolean;
9
+ }>;
10
+ export { modalFits } from "./tui-model.js";
11
+ export declare function TuiView({ model, columns, rows, now, color }: TuiViewProps): React.JSX.Element;
@@ -0,0 +1,206 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { Box, Text } from "ink";
4
+ import stringWidth from "string-width";
5
+ import { age, clean, collisionAliases, endpointGroup, endpointKey, groups, isLoopback, list, modalFits, object, operation, sectionRows, summaryLine, text, tokenFeedback, unsuccessful, } from "./tui-model.js";
6
+ function tone(value) {
7
+ if (["healthy", "idle", "ready", "delivered", "ok"].includes(value))
8
+ return "good";
9
+ if (["busy", "working", "queued", "reserved", "armed", "accepted"].includes(value))
10
+ return "busy";
11
+ if (value === "waiting")
12
+ return "waiting";
13
+ if (["dormant", "cached", "unknown"].includes(value))
14
+ return "dormant";
15
+ if (value === "stale")
16
+ return "busy";
17
+ if (unsuccessful.has(value) || ["unreachable", "not reachable", "degraded", "systemError"].includes(value))
18
+ return "bad";
19
+ return "plain";
20
+ }
21
+ function ToneText({ children, value, color, bold = false, inverse = false, dim = false, wrap = "truncate-end" }) {
22
+ const semantic = tone(value ?? "");
23
+ const foreground = !color ? undefined : semantic === "good" ? "green" : semantic === "busy" ? "yellow"
24
+ : semantic === "waiting" ? "magenta" : semantic === "bad" ? "red" : undefined;
25
+ return _jsx(Text, { ...(foreground ? { color: foreground } : {}), bold: color && bold, inverse: color && inverse, dimColor: color && (dim || semantic === "dormant" || value === "stale"), ...(wrap ? { wrap } : {}), children: children });
26
+ }
27
+ const graphemes = new Intl.Segmenter("en", { granularity: "grapheme" });
28
+ function padded(value, width, right = false) {
29
+ const safe = clean(value);
30
+ let output = safe;
31
+ if (stringWidth(safe) > width) {
32
+ output = "";
33
+ for (const { segment } of graphemes.segment(safe)) {
34
+ if (stringWidth(output + segment) > width - 1)
35
+ break;
36
+ output += segment;
37
+ }
38
+ output += width > 0 ? "…" : "";
39
+ }
40
+ const space = " ".repeat(Math.max(0, width - stringWidth(output)));
41
+ return right ? space + output : output + space;
42
+ }
43
+ function DataLine({ cells, selected, color, width }) {
44
+ return _jsx(Box, { height: 1, flexShrink: 0, width: width, children: _jsxs(Text, { inverse: selected && color, children: [selected ? "> " : " ", cells.map((cell, index) => _jsx(ToneText, { color: color, ...(!selected && cell.tone ? { value: cell.tone } : {}), bold: cell.bold ?? false, dim: !selected && (cell.dim ?? false), children: index < cells.length - 1 ? `${padded(cell.value, Math.max(0, cell.width - 1), cell.right)} ` : padded(cell.value, cell.width, cell.right) }, index))] }) });
45
+ }
46
+ function endpointWidths(width) {
47
+ const alias = Math.min(48, Math.max(10, width - 63));
48
+ return { alias, outcome: Math.max(1, width - alias - 27) };
49
+ }
50
+ function Rule({ width, color }) {
51
+ return _jsx(ToneText, { color: color, dim: true, children: "─".repeat(Math.max(1, width)) });
52
+ }
53
+ function HostTabs({ model, color, width }) {
54
+ if (!model.hosts || model.hosts.length < 2)
55
+ return null;
56
+ const count = Math.max(1, Math.floor(width / 24)), active = Math.max(0, model.hosts.findIndex((host) => host.selected));
57
+ const start = Math.max(0, Math.min(active - 1, model.hosts.length - count));
58
+ return _jsx(Box, { flexShrink: 0, height: 1, overflow: "hidden", children: model.hosts.slice(start, start + count).map((host) => _jsxs(Box, { width: Math.floor(width / Math.min(count, model.hosts.length)), paddingRight: 1, flexShrink: 0, children: [_jsx(ToneText, { color: color, value: host.state, children: "\u25CF " }), _jsx(ToneText, { color: color, value: host.state, bold: host.selected, wrap: "truncate-end", children: host.selected ? `[${clean(host.host)} · ${clean(host.state)}]` : `${clean(host.host)} · ${clean(host.state)}` })] }, host.host)) });
59
+ }
60
+ function Header({ model, width, now, color }) {
61
+ const snapshot = model.snapshot;
62
+ const health = model.error ? "UNREACHABLE" : snapshot ? text(snapshot.health, "unknown") : "not reachable";
63
+ const elapsed = model.snapshotAt === undefined ? "never" : now - model.snapshotAt < 1_000 ? "just now" : `${age(now - model.snapshotAt)} ago`;
64
+ return _jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [_jsx(HostTabs, { model: model, color: color, width: width }), _jsxs(Box, { height: 1, children: [_jsx(Box, { width: Math.max(12, width - 43), children: _jsxs(ToneText, { color: color, bold: true, wrap: "truncate-end", children: ["Embassy ", clean(model.host ?? "local")] }) }), _jsx(Box, { width: 25, children: _jsxs(ToneText, { color: color, value: health.toLowerCase(), children: ["broker ", clean(health)] }) }), _jsx(Box, { width: 18, children: _jsxs(ToneText, { color: color, dim: true, wrap: "truncate-end", children: ["ledger rev ", String(snapshot?.revision ?? "-")] }) })] }), _jsx(Box, { height: 1, flexShrink: 0, children: _jsxs(ToneText, { color: color, dim: true, wrap: "truncate-end", children: ["Updated ", elapsed, object(snapshot?.codex) ? ` · Codex discovery ${snapshot.codex.complete ? "up to 20 most recent" : "partial"}${snapshot.codex.truncated ? " · truncated" : ""} · ${observationAge(snapshot.codex.observedAt, now)}${snapshot.codex.safeErrorCode ? ` !${clean(text(snapshot.codex.safeErrorCode))}` : ""}` : ""] }) }), model.error ? _jsxs(_Fragment, { children: [_jsxs(ToneText, { color: color, value: "stale", children: ["STALE ", age(now - (model.staleSince ?? now)), " !", clean(model.error)] }), _jsxs(ToneText, { color: color, dim: true, children: [snapshot ? `Last-known: ${clean(text(snapshot.health))}. ` : "", "Run embassy service status on ", clean(model.host ?? "local"), "."] }), model.errorDetail ? _jsx(ToneText, { color: color, value: "failed", children: clean(model.errorDetail) }) : null] }) : snapshot?.safeErrorCode ? _jsxs(ToneText, { color: color, value: "failed", children: ["!", clean(text(snapshot.safeErrorCode))] }) : null, model.restarted ? _jsx(ToneText, { color: color, value: "busy", children: "Ledger revision decreased; broker restarted/reset." }) : null, _jsx(ToneText, { color: color, dim: true, children: padded("── not a provider readiness proof ", width).replace(/ +$/, (spaces) => " " + "─".repeat(Math.max(0, spaces.length - 1))) })] });
65
+ }
66
+ function observationAge(value, now) {
67
+ const parsed = typeof value === "string" ? Date.parse(value) : Number.NaN;
68
+ return Number.isFinite(parsed) ? `${age(now - parsed)} ago` : "not yet refreshed";
69
+ }
70
+ function SectionTabs({ model, color }) {
71
+ const failed = list(model.snapshot?.messages).filter((row) => row.state === "failed").length;
72
+ const tabs = ["endpoints", "deliveries", "retirements", "result"];
73
+ return _jsx(Box, { flexShrink: 0, children: tabs.map((section, index) => {
74
+ const selected = model.section === section;
75
+ const label = `${index + 1} ${section}`;
76
+ return _jsxs(Box, { marginRight: 2, children: [_jsx(ToneText, { color: color, bold: selected, dim: !selected, children: selected ? `[${label}` : label }), section === "deliveries" && failed ? _jsxs(ToneText, { color: color, value: "failed", children: [" (", failed, " failed)"] }) : null, selected ? _jsx(ToneText, { color: color, bold: true, children: "]" }) : null] }, section);
77
+ }) });
78
+ }
79
+ function EndpointLine({ row, selected, collisions, color, now, width }) {
80
+ const state = row.local ? text(row.codex?.state, "unknown") : row.safeErrorCode ? "stale" : "cached";
81
+ const alias = clean(row.alias), collision = collisions.has(row.alias);
82
+ const sizes = endpointWidths(width), outcome = text(row.lastOperation?.outcome, "");
83
+ return _jsxs(Box, { flexDirection: "column", children: [_jsx(DataLine, { selected: selected, color: color, width: width, cells: [
84
+ { value: state, width: 12, tone: state }, { value: alias, width: sizes.alias, bold: true },
85
+ { value: row.provider, width: 7, dim: true }, { value: row.local ? String(row.queueDepth ?? 0) : "—", width: 6, right: true, dim: true },
86
+ { value: row.local ? operation(row) : "not reported", width: sizes.outcome,
87
+ tone: outcome === "failed" || outcome === "delivered" ? outcome : "", dim: !["failed", "delivered"].includes(outcome) },
88
+ ] }), collision ? _jsx(Box, { paddingLeft: 14, height: 1, children: _jsxs(ToneText, { color: color, dim: true, wrap: "truncate-end", children: ["ambiguous name \u00B7 endpoint \u2026", clean(row.id.slice(-8))] }) }) : null, !row.local ? _jsx(Box, { paddingLeft: 14, height: 1, children: _jsxs(ToneText, { color: color, value: row.safeErrorCode ? "stale" : "dormant", dim: true, wrap: "truncate-end", children: ["SSH ", clean(row.host), " \u00B7 catalog ", observationAge(row.observedAt, now), row.safeErrorCode ? ` !${clean(row.safeErrorCode)}` : "", " \u00B7 queue/last not reported"] }) }) : null] });
89
+ }
90
+ function DeliveryLine({ row, selected, color, width }) {
91
+ if (row.summary === true)
92
+ return _jsx(DataLine, { selected: selected, color: color, width: width, cells: [{ value: summaryLine(row), width: width - 2,
93
+ tone: row.rows.some((item) => unsuccessful.has(String(item.state))) ? "failed" : "" }] });
94
+ const item = row;
95
+ const state = text(item.state), fault = unsuccessful.has(state) && item.safeErrorCode ? ` !${clean(text(item.safeErrorCode))}` : "";
96
+ const source = clean(text(item.source, "unavailable sender")), target = clean(text(item.target, "unavailable recipient"));
97
+ return _jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [_jsx(DataLine, { selected: selected, color: color, width: width, cells: [
98
+ { value: `${age(item.ageMs)} ago`, width: 10, right: true, dim: true }, { value: state, width: 13, tone: state },
99
+ { value: `${source} -> ${target}${isLoopback(source) || isLoopback(target) ? " (loopback check)" : ""}`, width: width - 25, bold: true },
100
+ ] }), fault ? _jsx(Box, { paddingLeft: 25, height: 1, children: _jsx(ToneText, { color: color, value: "failed", wrap: "truncate-end", children: fault.trim() }) }) : null] });
101
+ }
102
+ function content(model, color, now, width) {
103
+ const rows = sectionRows(model, width), selected = selectedIndex(model, rows), collisions = collisionAliases(model.snapshot);
104
+ const entries = [];
105
+ if (model.section === "endpoints") {
106
+ let prior = -1;
107
+ for (const [index, item] of rows.entries()) {
108
+ const group = endpointGroup(item);
109
+ if (group !== prior) {
110
+ const count = rows.filter((row) => endpointGroup(row) === group).length;
111
+ entries.push({ key: `group-${group}`, height: 1, node: _jsxs(ToneText, { color: color, bold: true, children: [groups[group], " (", count, ")"] }) });
112
+ prior = group;
113
+ }
114
+ entries.push({ key: `${endpointKey(item)}\0${index}`, index, height: 1 + Number(collisions.has(item.alias)) + Number(!item.local),
115
+ node: _jsx(EndpointLine, { row: item, selected: index === selected, collisions: collisions, color: color, now: now, width: width }) });
116
+ }
117
+ }
118
+ else if (model.section === "deliveries") {
119
+ rows.forEach((row, index) => entries.push({ key: `delivery-${index}`, index,
120
+ height: object(row) && !row.summary && unsuccessful.has(String(row.state)) && row.safeErrorCode ? 2 : 1,
121
+ node: _jsx(DeliveryLine, { row: row, selected: index === selected, color: color, width: width }) }));
122
+ }
123
+ else if (model.section === "retirements") {
124
+ rows.forEach((row, index) => {
125
+ const item = row, alias = text(item.alias), at = Date.parse(String(item.at));
126
+ entries.push({ key: `retirement-${index}`, index, height: 1,
127
+ node: _jsx(DataLine, { selected: index === selected, color: color, width: width, cells: [
128
+ { value: Number.isFinite(at) ? `${age(now - at)} ago` : text(item.at), width: 11, right: true, dim: true },
129
+ { value: alias + (isLoopback(alias) ? " (loopback check)" : ""), width: width - 13, bold: !isLoopback(alias), dim: isLoopback(alias) },
130
+ ] }) });
131
+ });
132
+ }
133
+ else if (model.result) {
134
+ rows.forEach((row, index) => {
135
+ const state = /"(?:state|status|health|outcome)":\s*"([a-zA-Z]+)"/.exec(String(row))?.[1];
136
+ entries.push({ key: `result-${index}`, index, height: 1,
137
+ node: _jsx(DataLine, { selected: index === selected, color: color, width: width, cells: [
138
+ { value: clean(row), width: width - 2, ...(state ? { tone: state } : {}), bold: index === 0 },
139
+ ] }) });
140
+ });
141
+ }
142
+ return entries;
143
+ }
144
+ function selectedIndex(model, rows = sectionRows(model)) {
145
+ if (model.section === "endpoints" && model.selectedEndpoint)
146
+ return rows.findIndex((row) => endpointKey(row) === model.selectedEndpoint);
147
+ return Math.max(0, Math.min(model.selected[model.section] ?? 0, Math.max(0, rows.length - 1)));
148
+ }
149
+ function viewport(all, focus, height) {
150
+ let start = 0, end = 0;
151
+ while (start < all.length) {
152
+ let remaining = height - Number(all.slice(0, start).some((entry) => entry.index !== undefined));
153
+ end = start;
154
+ while (end < all.length && all[end].height <= remaining) {
155
+ remaining -= all[end].height;
156
+ end++;
157
+ }
158
+ if (end < all.length && remaining === 0)
159
+ end--;
160
+ while (end > start && all[end - 1].index === undefined)
161
+ end--;
162
+ if (focus < 0 || focus < end || start >= focus)
163
+ break;
164
+ start++;
165
+ }
166
+ const above = all.slice(0, start).filter((entry) => entry.index !== undefined).length;
167
+ const below = all.slice(end).filter((entry) => entry.index !== undefined).length;
168
+ return { entries: all.slice(start, end), above, below };
169
+ }
170
+ function DialogContent({ model, columns, color }) {
171
+ const retirement = model.mode === "confirm" ? model.retiring : undefined;
172
+ return _jsxs(Box, { width: Math.min(78, columns - 4), borderStyle: "round", borderColor: color ? "gray" : undefined, paddingX: 2, paddingY: 1, flexDirection: "column", children: [_jsx(ToneText, { color: color, bold: true, children: retirement ? "Retire endpoint" : "Look up delivery" }), _jsx(Box, { height: 1 }), retirement ? _jsxs(_Fragment, { children: [_jsxs(ToneText, { color: color, bold: true, wrap: "wrap", children: ["Host: ", clean(retirement.host)] }), _jsxs(ToneText, { color: color, bold: true, wrap: "wrap", children: ["Alias: ", clean(retirement.alias)] }), _jsx(ToneText, { color: color, dim: true, children: "Endpoint ID" }), _jsx(ToneText, { color: color, bold: true, wrap: "wrap", children: clean(retirement.id) }), _jsx(Box, { height: 1 }), _jsxs(ToneText, { color: color, bold: true, wrap: "wrap", children: [clean(retirement.provider), " \u00B7 queue ", retirement.queueDepth ?? 0, " \u00B7 last ", clean(operation(retirement))] }), _jsx(Box, { height: 1 }), _jsx(ToneText, { color: color, value: "failed", wrap: "wrap", children: "queued/reserved work is cancelled, armed work becomes ambiguous, accepted work becomes unconfirmed \u2014 cannot be undone." }), _jsx(Box, { height: 1 }), _jsxs(Box, { children: [_jsx(ToneText, { color: color, value: "failed", bold: true, children: "y confirm" }), _jsx(ToneText, { color: color, children: " \u00B7 " }), _jsx(ToneText, { color: color, bold: true, children: "[N] cancel" })] })] }) : _jsxs(_Fragment, { children: [_jsx(ToneText, { color: color, dim: true, children: "Delivery token" }), _jsx(ToneText, { color: color, bold: true, children: clean(model.token || "dlv_…") }), _jsx(ToneText, { color: color, dim: true, children: tokenFeedback(model.token) }), _jsx(Box, { height: 1 }), _jsx(ToneText, { color: color, bold: true, children: "Enter look up \u00B7 Esc cancel" })] })] });
173
+ }
174
+ export { modalFits } from "./tui-model.js";
175
+ function Dialog({ model, columns, rows, color }) {
176
+ if (!modalFits(model, columns, rows))
177
+ return _jsx(TooSmall, { mode: model.mode, color: color });
178
+ return _jsx(Box, { width: columns, height: rows, alignItems: "center", justifyContent: "center", children: _jsx(DialogContent, { model: model, columns: columns, color: color }) });
179
+ }
180
+ function TooSmall({ mode, color }) {
181
+ return _jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(Box, { height: 1, flexShrink: 0, children: _jsx(ToneText, { color: color, bold: true, wrap: "truncate-end", children: "Embassy \u00B7 terminal too small" }) }), _jsx(Box, { height: 1, flexShrink: 0, children: _jsx(ToneText, { color: color, dim: true, wrap: "truncate-end", children: mode === "confirm" ? "Resize to show the exact endpoint ID and consequences." : "Resize: needs 48×10." }) }), _jsx(Box, { height: 1, flexShrink: 0, children: _jsx(ToneText, { color: color, wrap: "truncate-end", children: mode === "confirm" ? "N cancel" : mode === "token" ? "Esc cancel" : "q quit" }) })] });
182
+ }
183
+ export function TuiView({ model, columns, rows, now, color }) {
184
+ const width = Math.max(1, columns), height = Math.max(1, rows);
185
+ if (height < 10 || width < 48)
186
+ return _jsx(Box, { width: width, height: height, overflow: "hidden", children: _jsx(TooSmall, { mode: model.mode, color: color }) });
187
+ if (model.mode !== "browse")
188
+ return _jsx(Dialog, { model: model, columns: width, rows: height, color: color });
189
+ const all = content(model, color, now, width), source = sectionRows(model, width), selected = selectedIndex(model, source);
190
+ const headerRows = 3 + (model.hosts && model.hosts.length > 1 ? 1 : 0) + (model.error ? 2 + (model.errorDetail ? 1 : 0) : model.snapshot?.safeErrorCode ? 1 : 0)
191
+ + (model.restarted ? 1 : 0);
192
+ const actionRows = model.action ? 1 : 0, available = Math.max(1, height - headerRows - actionRows - 3 - Number(model.section === "endpoints"));
193
+ const focus = all.findIndex((entry) => entry.index === selected);
194
+ const visible = viewport(all, focus, available), sizes = endpointWidths(width);
195
+ const counter = `${model.section}${model.section === "result" ? " line" : ""} ${source.length ? `${selected < 0 ? "-" : selected + 1}/${source.length}` : "0/0"}`;
196
+ const empty = model.error ? `Broker unreachable (!${model.error}).` : !model.snapshot ? "Broker not reachable."
197
+ : model.section === "endpoints" ? "No endpoints registered." : model.section === "deliveries" ? "No deliveries yet."
198
+ : model.section === "retirements" ? "No retirements." : "No result yet. Run an action to see its result here.";
199
+ return _jsxs(Box, { width: width, height: height, flexDirection: "column", children: [_jsx(Header, { model: model, width: width, now: now, color: color }), _jsx(SectionTabs, { model: model, color: color }), model.section === "endpoints" ? _jsx(DataLine, { selected: false, color: color, width: width, cells: [
200
+ { value: "State", width: 12, dim: true }, { value: "Endpoint", width: sizes.alias, dim: true },
201
+ { value: "Type", width: 7, dim: true }, { value: "Queue", width: 6, right: true, dim: true },
202
+ { value: "Outcome", width: sizes.outcome, dim: true },
203
+ ] }) : null, _jsxs(Box, { flexDirection: "column", height: available, flexShrink: 0, overflow: "hidden", children: [visible.above > 0 ? _jsxs(ToneText, { color: color, dim: true, children: ["\u2191 ", visible.above, " more"] }) : null, visible.entries.length ? visible.entries.map((entry) => _jsx(React.Fragment, { children: entry.node }, entry.key))
204
+ : _jsx(ToneText, { color: color, dim: true, children: empty }), _jsx(Box, { flexGrow: 1 }), visible.below > 0 ? _jsxs(ToneText, { color: color, dim: true, children: ["\u2193 ", visible.below, " more"] }) : null] }), model.action ? _jsxs(ToneText, { color: color, ...(model.actionRunning ? { value: "busy" } : {}), wrap: "truncate-end", children: [clean(model.action), model.actionRunning ? " — polling paused" : ""] }) : null, _jsx(Rule, { width: width, color: color }), _jsx(Box, { height: 1, flexShrink: 0, children: _jsxs(ToneText, { color: color, dim: true, wrap: "truncate-end", children: [counter, " \u00B7 [/]:host Tab:view \u2191\u2193 r:refresh c:check d:token x:retire q:quit"] }) })] });
205
+ }
206
+ //# sourceMappingURL=tui-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-view.js","sourceRoot":"","sources":["../../../src/gateway/tui-view.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { type Readable, type Writable } from "node:stream";
2
2
  import type { BrokerCommand } from "./broker-control.js";
3
+ import { type TuiModel } from "./tui-model.js";
4
+ export type { TuiModel } from "./tui-model.js";
3
5
  type Input = Pick<Readable, "on" | "off"> & {
4
6
  isTTY?: boolean;
5
7
  isRaw?: boolean;
@@ -28,47 +30,11 @@ export type TuiDependencies = Readonly<{
28
30
  close: () => void;
29
31
  }>;
30
32
  signal?: AbortSignal;
31
- }>;
32
- type Obj = Record<string, unknown>;
33
- type Section = "endpoints" | "deliveries" | "retirements" | "result";
34
- type Mode = "browse" | "token" | "confirm";
35
- type EndpointRow = Readonly<{
36
- id: string;
37
- alias: string;
38
- provider: string;
39
- host: string;
40
- local: boolean;
41
- queueDepth?: number;
42
- lastOperation?: Obj;
43
- observedAt?: string;
44
- safeErrorCode?: string;
45
- codex?: Obj;
46
- placeholder?: boolean;
47
- }>;
48
- export type TuiModel = {
49
- snapshot?: Obj;
50
- snapshotAt?: number;
51
- staleSince?: number;
52
- error?: string;
53
- errorDetail?: string;
54
- action?: string;
55
- actionRunning?: boolean;
56
- host?: string;
57
- restarted?: boolean;
58
- section: Section;
59
- previousSection?: Exclude<Section, "result">;
60
- selected: Record<Exclude<Section, "result">, number> & Partial<Record<"result", number>>;
61
- selectedEndpoint?: string;
62
- mode: Mode;
63
- token: string;
64
- retiring?: EndpointRow;
65
- result?: Readonly<{
66
- label: string;
67
- value: string;
33
+ terminal?: Readonly<{
34
+ noColor?: boolean;
35
+ dumb?: boolean;
68
36
  }>;
69
- };
70
- /** Pure screen renderer. It emits no ANSI so all dynamic values remain inert. */
71
- export declare function renderTui(model: Readonly<TuiModel>, columns?: number, rows?: number, now?: number): string;
37
+ }>;
38
+ export declare function renderTui(model: Readonly<TuiModel>, columns?: number, rows?: number, now?: number, color?: boolean): string;
72
39
  /** Interactive, dependency-free client over the existing broker commands. */
73
40
  export declare function runTui(dependencies: TuiDependencies): Promise<void>;
74
- export {};
@@ -1,217 +1,15 @@
1
1
  import { PassThrough } from "node:stream";
2
- import { emitKeypressEvents } from "node:readline";
3
- const object = (value) => !!value && typeof value === "object" && !Array.isArray(value);
4
- const list = (value) => Array.isArray(value) ? value.filter(object) : [];
5
- const text = (value, fallback = "not reported") => typeof value === "string" && value.length > 0 ? value : fallback;
6
- const clean = (value) => text(value, "").replace(/[\u0000-\u001f\u007f-\u009f]/g, (character) => character === "\n" || character === "\r" || character === "\t" ? " " : "?");
7
- const errorText = (error) => {
8
- if (object(error) && typeof error.code === "string")
9
- return clean(error.code);
10
- if (error instanceof Error && typeof error.code === "string")
11
- return clean(error.code);
12
- return "CONTROL_UNAVAILABLE";
13
- };
14
- const age = (milliseconds) => {
15
- const ms = typeof milliseconds === "number" && Number.isFinite(milliseconds) ? Math.max(0, milliseconds) : 0;
16
- if (ms < 1_000)
17
- return `${Math.round(ms)}ms`;
18
- if (ms < 60_000)
19
- return `${Math.floor(ms / 1_000)}s`;
20
- if (ms < 3_600_000)
21
- return `${Math.floor(ms / 60_000)}m`;
22
- return `${Math.floor(ms / 3_600_000)}h`;
23
- };
24
- const observedAge = (value, now) => {
25
- const parsed = typeof value === "string" ? Date.parse(value) : Number.NaN;
26
- return Number.isFinite(parsed) ? `${age(now - parsed)} ago` : "not yet refreshed";
27
- };
28
- const fit = (value, width) => {
29
- if (width < 1)
30
- return "";
31
- const safe = clean(value);
32
- return safe.length <= width ? safe : width === 1 ? "…" : `${safe.slice(0, width - 1)}…`;
33
- };
34
- const wrap = (value, width) => {
35
- const safe = clean(value), size = Math.max(1, width);
36
- return safe.length
37
- ? Array.from({ length: Math.ceil(safe.length / size) }, (_, i) => safe.slice(i * size, (i + 1) * size))
38
- : [""];
39
- };
40
- const json = (value) => {
41
- try {
42
- return clean(JSON.stringify(value));
43
- }
44
- catch {
45
- return "unprintable result";
46
- }
47
- };
48
- const endpointKey = (row) => `${row.host}\0${row.id}`;
49
- const loopback = (value) => typeof value === "string" && /^loopback-[ab]-[0-9a-f]{8}@/.test(value);
50
- const unsuccessful = new Set(["failed", "cancelled", "expired", "ambiguous", "unconfirmed"]);
51
- const deliveryToken = /^dlv_[A-Za-z0-9_-]{24}$/;
52
- function tokenFeedback(token) {
53
- if (deliveryToken.test(token))
54
- return "format valid";
55
- if ("dlv_".startsWith(token) || /^dlv_[A-Za-z0-9_-]{0,23}$/.test(token))
56
- return "format incomplete";
57
- return "format invalid";
58
- }
59
- function endpointRows(snapshot) {
60
- const local = list(snapshot?.routes).map((row) => ({ id: text(row.id), alias: text(row.alias), provider: text(row.provider),
61
- host: text(row.host), local: true, ...(typeof row.queueDepth === "number" ? { queueDepth: row.queueDepth } : {}),
62
- ...(object(row.lastOperation) ? { lastOperation: row.lastOperation } : {}), ...(object(row.codex) ? { codex: row.codex } : {}) }));
63
- const federation = object(snapshot?.federation) ? snapshot.federation : undefined;
64
- const remote = list(federation?.nodes).flatMap((node) => {
65
- const common = { host: text(node.host), local: false,
66
- ...(typeof node.observedAt === "string" ? { observedAt: node.observedAt } : {}),
67
- ...(typeof node.safeErrorCode === "string" ? { safeErrorCode: node.safeErrorCode } : {}) };
68
- const routes = list(node.routes);
69
- return routes.length ? routes.map((row) => ({ ...common, id: text(row.id), alias: text(row.alias),
70
- provider: text(row.provider), host: text(row.host, common.host) }))
71
- : [{ ...common, id: "", alias: "No cached endpoints", provider: "-", placeholder: true }];
72
- });
73
- return [...local, ...remote];
74
- }
75
- function deliveryRows(snapshot) {
76
- const sorted = list(snapshot?.messages).sort((a, b) => (typeof a.ageMs === "number" ? a.ageMs : Number.MAX_SAFE_INTEGER) -
77
- (typeof b.ageMs === "number" ? b.ageMs : Number.MAX_SAFE_INTEGER));
78
- const result = [];
79
- for (const row of sorted) {
80
- const anonymous = typeof row.source !== "string" && typeof row.target !== "string", last = result.at(-1);
81
- if (anonymous && object(last) && last.summary === true && Array.isArray(last.rows))
82
- result[result.length - 1] = { summary: true, rows: [...last.rows.filter(object), row] };
83
- else if (anonymous)
84
- result.push({ summary: true, rows: [row] });
85
- else
86
- result.push(row);
87
- }
88
- return result;
89
- }
90
- function sectionRows(model, width = 80) {
91
- if (model.section === "endpoints")
92
- return endpointRows(model.snapshot);
93
- if (model.section === "deliveries")
94
- return deliveryRows(model.snapshot);
95
- if (model.section === "result")
96
- return model.result ? [`${model.result.label}:`, ...wrap(model.result.value, Math.max(1, width - 2))] : [];
97
- return list(model.snapshot?.retirements);
98
- }
99
- function operation(row) {
100
- if (!row.lastOperation)
101
- return "not yet observed";
102
- const outcome = text(row.lastOperation.outcome);
103
- return outcome === "delivered" ? "delivered" : `${outcome} !${text(row.lastOperation.code)}`;
104
- }
105
- function summaryLine(row) {
106
- const counts = new Map();
107
- for (const item of row.rows) {
108
- const state = text(item.state);
109
- const label = `${state}${unsuccessful.has(state) && item.safeErrorCode ? ` !${text(item.safeErrorCode)}` : ""}`;
110
- counts.set(label, (counts.get(label) ?? 0) + 1);
111
- }
112
- return `${row.rows.length} unattributed deliveries · ${[...counts].map(([label, count]) => `${label} ${count}`).join(" · ")}`;
113
- }
114
- function lineFor(row, section, now, collisions) {
115
- if (typeof row === "string")
116
- return row;
117
- if ("summary" in row && row.summary === true)
118
- return summaryLine(row);
119
- if (section === "endpoints") {
120
- const endpoint = row;
121
- const collision = collisions.has(endpoint.alias) ? ` [ambiguous; …${endpoint.id.slice(-8)}]` : "";
122
- const codex = endpoint.codex ? ` ${text(endpoint.codex.state)}` : "";
123
- return endpoint.local ? `${endpoint.alias}${collision} ${endpoint.provider}${codex} queued ${endpoint.queueDepth ?? 0} last ${operation(endpoint)}`
124
- : `SSH ${endpoint.host} · catalog ${observedAge(endpoint.observedAt, now)}${endpoint.safeErrorCode ? ` / ${endpoint.safeErrorCode}` : ""}` +
125
- ` · ${endpoint.alias}${collision} ${endpoint.provider} queue/last not reported`;
126
- }
127
- const item = row;
128
- if (section === "deliveries") {
129
- const state = text(item.state);
130
- const code = unsuccessful.has(state) && item.safeErrorCode ? ` !${text(item.safeErrorCode)}` : "";
131
- const source = text(item.source, "unavailable sender"), target = text(item.target, "unavailable recipient");
132
- return `${age(item.ageMs)} ago ${state}${code} ${source} -> ${target}${loopback(source) || loopback(target) ? " (loopback check)" : ""}`;
133
- }
134
- const alias = text(item.alias), parsed = typeof item.at === "string" ? Date.parse(item.at) : Number.NaN;
135
- return `${Number.isFinite(parsed) ? `${age(now - parsed)} ago` : text(item.at)} ${alias}${loopback(alias) ? " (loopback check)" : ""}`;
136
- }
137
- function collisionAliases(snapshot) {
138
- const counts = new Map();
139
- for (const row of endpointRows(snapshot))
140
- if (!row.placeholder)
141
- counts.set(row.alias, (counts.get(row.alias) ?? 0) + 1);
142
- return new Set([...counts].filter(([, count]) => count > 1).map(([alias]) => alias));
143
- }
144
- function retirementLines(row, width) {
145
- return ["Embassy retirement confirmation", ...wrap(`Host: ${row.host}`, width), ...wrap(`Alias: ${row.alias}`, width), ...wrap(`Endpoint ID: ${row.id}`, width),
146
- ...wrap(`${row.provider} · queued ${row.queueDepth ?? 0} · last ${operation(row)}`, width),
147
- ...wrap("queued/reserved work is cancelled, armed work becomes ambiguous, accepted work becomes unconfirmed — cannot be undone.", width),
148
- "y confirm · N cancel"];
149
- }
150
- /** Pure screen renderer. It emits no ANSI so all dynamic values remain inert. */
151
- export function renderTui(model, columns = 80, rows = 24, now = Date.now()) {
152
- const width = Math.max(1, columns || 80), height = Math.max(1, rows || 24);
153
- if (model.mode === "confirm" && model.retiring) {
154
- const confirmation = retirementLines(model.retiring, width);
155
- if (confirmation.length > height)
156
- return ["Embassy · terminal too small", "Resize to show the exact endpoint ID and consequences.", "N cancel"]
157
- .slice(0, height).map((line) => fit(line, width)).join("\n");
158
- return [...confirmation, ...Array.from({ length: height - confirmation.length }, () => "")]
159
- .map((line) => fit(line, width)).join("\n");
160
- }
161
- if (height < 6 || width < 24)
162
- return ["Embassy · terminal too small", "Resize · q quit"]
163
- .slice(0, height).map((line) => fit(line, width)).join("\n");
164
- const snapshot = model.snapshot, host = model.host ? ` ${model.host}` : "", lines = [];
165
- if (model.error) {
166
- const elapsed = model.staleSince ? `, ${age(now - model.staleSince)}` : "";
167
- lines.push(`Embassy${host} · broker UNREACHABLE (${model.error}${elapsed})`);
168
- lines.push(`${snapshot ? `Last-known: ${text(snapshot.health, "unknown")} · ledger rev ${snapshot.revision ?? "-"}. ` : ""}Run embassy service status${model.host ? ` on ${model.host}` : ""}.`);
169
- lines.push("STALE data · not a provider readiness proof");
170
- if (model.errorDetail)
171
- lines.push(...wrap(model.errorDetail, width));
172
- }
173
- else {
174
- const broker = snapshot ? text(snapshot.health, "unknown") : "not reachable";
175
- const fault = snapshot?.safeErrorCode ? ` !${text(snapshot.safeErrorCode)}` : "";
176
- lines.push(`Embassy${host} · broker ${broker}${fault} · ledger rev ${snapshot?.revision ?? "-"}`);
177
- lines.push(`Updated ${model.snapshotAt ? `${age(now - model.snapshotAt)} ago` : "never"} · not a provider readiness proof`);
178
- }
179
- if (model.restarted)
180
- lines.push("Ledger revision decreased; broker restarted/reset.");
181
- if (object(snapshot?.codex))
182
- lines.push(`Codex discovery ${snapshot.codex.complete ? "up to 20 most recent" : "partial"}${snapshot.codex.truncated ? " · truncated" : ""} · ${observedAge(snapshot.codex.observedAt, now)}${snapshot.codex.safeErrorCode ? ` !${text(snapshot.codex.safeErrorCode)}` : ""}`);
183
- const failed = list(snapshot?.messages).filter((row) => row.state === "failed").length;
184
- const tabs = ["endpoints", "deliveries", "retirements", "result"];
185
- const tabName = (tab) => tab === "deliveries" && failed ? `deliveries (${failed} failed)` : tab;
186
- lines.push(tabs.map((tab) => tab === model.section ? `[${tabName(tab)}]` : ` ${tabName(tab)} `).join(" "));
187
- const source = sectionRows(model, width);
188
- let selected = Math.max(0, Math.min(model.selected[model.section] ?? 0, Math.max(0, source.length - 1)));
189
- if (model.section === "endpoints" && model.selectedEndpoint)
190
- selected = source.findIndex((row) => endpointKey(row) === model.selectedEndpoint);
191
- const bodyHeight = Math.max(1, height - 9), start = selected < 0 ? 0
192
- : Math.max(0, Math.min(selected - Math.floor(bodyHeight / 2), Math.max(0, source.length - bodyHeight)));
193
- const visible = source.slice(start, start + bodyHeight);
194
- if (visible.length === 0)
195
- lines.push(" No rows.");
196
- else
197
- visible.forEach((row, offset) => lines.push(`${start + offset === selected ? ">" : " "} ${lineFor(row, model.section, now, collisionAliases(snapshot))}`));
198
- lines.push(`${model.section} ${source.length ? `${selected < 0 ? "-" : selected + 1}/${source.length}` : "0/0"}`);
199
- if (model.mode === "token")
200
- lines.push(`Delivery token: ${model.token || "dlv_…"} · ${tokenFeedback(model.token)}`, "Enter look up · Esc cancel");
201
- else
202
- lines.push("Tab/Shift-Tab or 1–4 sections · ↑/↓ j/k g/G select", "r refresh · c check · d delivery · x retire · q quit");
203
- if (model.actionRunning)
204
- lines.push(...wrap(`${model.action ?? "action in progress"} — polling paused`, width - 2).map((line) => ` ${line}`));
205
- else if (model.action)
206
- lines.push(...wrap(model.action, width - 2).map((line) => ` ${line}`));
207
- while (lines.length < height)
208
- lines.push("");
209
- return lines.slice(0, height).map((line) => fit(line, width)).join("\n");
2
+ import { createElement } from "react";
3
+ import { render, renderToString, useInput } from "ink";
4
+ import { TuiView, modalFits } from "./tui-view.js";
5
+ import { object, text, clean, errorText, json, endpointRows, endpointKey, sectionRows, deliveryToken } from "./tui-model.js";
6
+ export function renderTui(model, columns = 80, rows = 24, now = Date.now(), color = false) {
7
+ return renderToString(createElement(TuiView, { model, columns, rows, now, color }), { columns });
210
8
  }
211
9
  /** Interactive, dependency-free client over the existing broker commands. */
212
10
  export async function runTui(dependencies) {
213
11
  const { input, output, call, renderStatus, signal } = dependencies;
214
- if (!output.isTTY || !input.isTTY) {
12
+ if (!output.isTTY || !input.isTTY || (dependencies.terminal?.dumb ?? process.env.TERM === "dumb")) {
215
13
  output.write(renderStatus(await call({ method: "list_snapshot", params: {} })));
216
14
  return;
217
15
  }
@@ -226,32 +24,44 @@ export async function runTui(dependencies) {
226
24
  }));
227
25
  let active = 0, model = panes[0].model;
228
26
  const priorRaw = input.isRaw === true, priorFlowing = input.readableFlowing;
229
- let closed = false, lastFrame = "";
27
+ const color = !(dependencies.terminal?.noColor ?? process.env.NO_COLOR !== undefined);
28
+ let closed = false, ink;
230
29
  let drawTimer;
231
30
  let resolveDone;
232
31
  const done = new Promise((resolve) => { resolveDone = resolve; });
233
- const keyInput = new PassThrough();
32
+ const keyInput = Object.assign(new PassThrough(), {
33
+ isTTY: true, setRawMode: () => keyInput, ref: () => keyInput, unref: () => keyInput,
34
+ });
35
+ const screen = () => {
36
+ useInput((value, key) => {
37
+ const name = key.ctrl ? value : key.upArrow ? "up" : key.downArrow ? "down" : key.escape ? "escape"
38
+ : key.return ? "return" : key.tab ? "tab" : key.backspace || key.delete ? "backspace" : undefined;
39
+ if (!name && !key.ctrl && value.length > 1) {
40
+ for (const character of value) {
41
+ if (character === "\r" || character === "\n")
42
+ onKeypress("", { name: "return" });
43
+ else
44
+ onKeypress(character);
45
+ }
46
+ }
47
+ else
48
+ onKeypress(value, { ...(name ? { name } : {}), ctrl: key.ctrl, shift: key.shift });
49
+ });
50
+ return createElement(TuiView, { model, columns: output.columns || 80,
51
+ rows: Math.max(1, (output.rows || 24) - 1), now: Date.now(), color });
52
+ };
234
53
  const draw = () => {
235
54
  if (closed)
236
55
  return;
237
- const width = output.columns || 80, height = output.rows || 24;
238
- const overview = [];
239
- if (panes.length > 1 && model.mode !== "confirm") {
240
- overview.push("Hosts: [ / ] switch · each pane reports its own broker");
241
- const visible = Math.min(4, Math.max(1, height - 10));
242
- const start = Math.max(0, Math.min(active - 1, panes.length - visible));
243
- panes.slice(start, start + visible).forEach((pane, offset) => {
244
- const m = pane.model;
245
- const state = m.error ? `STALE !${m.error}` : m.snapshot ? text(m.snapshot.health) : "connecting";
246
- const elapsed = m.snapshotAt === undefined ? "not observed" : `${age(Date.now() - m.snapshotAt)} ago`;
247
- overview.push(`${start + offset === active ? ">" : " "} ${m.host} · ${state} · ${elapsed}`);
248
- });
249
- }
250
- const frame = [...overview.map((line) => fit(line, width)), renderTui(model, width, Math.max(1, height - overview.length))].join("\n");
251
- if (frame === lastFrame)
252
- return;
253
- lastFrame = frame;
254
- output.write(`\x1b[H\x1b[2J${frame}\x1b[0m`);
56
+ model.hosts = panes.map((pane, index) => ({ host: pane.model.host, selected: index === active,
57
+ state: pane.model.error ? "stale" : pane.model.snapshot ? text(pane.model.snapshot.health) : "connecting" }));
58
+ if (ink)
59
+ ink.rerender(createElement(screen));
60
+ else
61
+ ink = render(createElement(screen), { stdout: output,
62
+ stdin: keyInput, stderr: output,
63
+ patchConsole: false, exitOnCtrlC: false, incrementalRendering: true, interactive: true, maxFps: 30 });
64
+ void ink.waitUntilRenderFlush().catch(finish);
255
65
  };
256
66
  const replaceSnapshot = (pane, value) => {
257
67
  if (!object(value))
@@ -427,7 +237,8 @@ export async function runTui(dependencies) {
427
237
  input.off("data", onInputData);
428
238
  input.off("end", finish);
429
239
  input.off("error", finish);
430
- keyInput.off("keypress", onKeypress);
240
+ ink?.unmount();
241
+ ink?.cleanup();
431
242
  keyInput.destroy();
432
243
  output.off?.("resize", draw);
433
244
  signal?.removeEventListener("abort", finish);
@@ -448,7 +259,7 @@ export async function runTui(dependencies) {
448
259
  }
449
260
  catch { /* input may already be closed */ }
450
261
  remote?.close();
451
- output.write("\x1b[0m\x1b[?25h\x1b[?1049l");
262
+ output.write(`${color ? "\x1b[0m" : ""}\x1b[?25h\x1b[?1049l`);
452
263
  resolveDone();
453
264
  };
454
265
  const onKeypress = (sequence, details) => {
@@ -480,7 +291,7 @@ export async function runTui(dependencies) {
480
291
  const retiring = model.retiring;
481
292
  model.mode = "browse";
482
293
  delete model.retiring;
483
- const visible = retiring ? retirementLines(retiring, output.columns || 80).length <= (output.rows || 24) : false;
294
+ const visible = retiring ? modalFits({ ...model, mode: "confirm", retiring }, output.columns || 80, (output.rows || 24) - 1) : false;
484
295
  if (key.toLowerCase() === "y" && retiring && visible)
485
296
  queueAction("retire", { method: "retire_route", params: { endpoint: retiring.id } });
486
297
  else
@@ -537,8 +348,6 @@ export async function runTui(dependencies) {
537
348
  };
538
349
  const onInputData = (chunk) => { if (!closed)
539
350
  keyInput.write(chunk); };
540
- emitKeypressEvents(keyInput);
541
- keyInput.on("keypress", onKeypress);
542
351
  input.on("data", onInputData);
543
352
  input.on("end", finish);
544
353
  input.on("error", finish);
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/gateway/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/gateway/tui.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  # Configuration
2
2
 
3
+ Embassy requires macOS and Node.js 22 or newer.
4
+
3
5
  Embassy has one broker per login user and machine. Configuration is inherited
4
6
  when the broker starts; changing it requires a broker restart. Provider build
5
7
  or version metadata never grants routing authority.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-embassy",
3
- "version": "4.3.0",
3
+ "version": "4.4.0",
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"