agent-embassy 4.2.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +28 -17
  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 +10 -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-model.d.ts +67 -0
  36. package/dist/src/gateway/tui-model.js +136 -0
  37. package/dist/src/gateway/tui-model.js.map +1 -0
  38. package/dist/src/gateway/tui-view.d.ts +11 -0
  39. package/dist/src/gateway/tui-view.js +206 -0
  40. package/dist/src/gateway/tui-view.js.map +1 -0
  41. package/dist/src/gateway/tui.d.ts +7 -40
  42. package/dist/src/gateway/tui.js +43 -231
  43. package/dist/src/gateway/tui.js.map +1 -1
  44. package/docs/CONFIGURATION.md +59 -17
  45. package/docs/DELIVERY.md +18 -6
  46. package/docs/GATEWAY-ARCHITECTURE.md +43 -21
  47. package/package.json +8 -3
  48. package/skills/embassy-peer/SKILL.md +6 -6
@@ -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,46 +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
- placeholder?: boolean;
46
- }>;
47
- export type TuiModel = {
48
- snapshot?: Obj;
49
- snapshotAt?: number;
50
- staleSince?: number;
51
- error?: string;
52
- errorDetail?: string;
53
- action?: string;
54
- actionRunning?: boolean;
55
- host?: string;
56
- restarted?: boolean;
57
- section: Section;
58
- previousSection?: Exclude<Section, "result">;
59
- selected: Record<Exclude<Section, "result">, number> & Partial<Record<"result", number>>;
60
- selectedEndpoint?: string;
61
- mode: Mode;
62
- token: string;
63
- retiring?: EndpointRow;
64
- result?: Readonly<{
65
- label: string;
66
- value: string;
33
+ terminal?: Readonly<{
34
+ noColor?: boolean;
35
+ dumb?: boolean;
67
36
  }>;
68
- };
69
- /** Pure screen renderer. It emits no ANSI so all dynamic values remain inert. */
70
- 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;
71
39
  /** Interactive, dependency-free client over the existing broker commands. */
72
40
  export declare function runTui(dependencies: TuiDependencies): Promise<void>;
73
- export {};
@@ -1,214 +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 } : {}) }));
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
- return endpoint.local ? `${endpoint.alias}${collision} ${endpoint.provider} queued ${endpoint.queueDepth ?? 0} last ${operation(endpoint)}`
123
- : `SSH ${endpoint.host} · catalog ${observedAge(endpoint.observedAt, now)}${endpoint.safeErrorCode ? ` / ${endpoint.safeErrorCode}` : ""}` +
124
- ` · ${endpoint.alias}${collision} ${endpoint.provider} queue/last not reported`;
125
- }
126
- const item = row;
127
- if (section === "deliveries") {
128
- const state = text(item.state);
129
- const code = unsuccessful.has(state) && item.safeErrorCode ? ` !${text(item.safeErrorCode)}` : "";
130
- const source = text(item.source, "retired sender"), target = text(item.target, "remote/retired recipient");
131
- return `${age(item.ageMs)} ago ${state}${code} ${source} -> ${target}${loopback(source) || loopback(target) ? " (loopback check)" : ""}`;
132
- }
133
- const alias = text(item.alias), parsed = typeof item.at === "string" ? Date.parse(item.at) : Number.NaN;
134
- return `${Number.isFinite(parsed) ? `${age(now - parsed)} ago` : text(item.at)} ${alias}${loopback(alias) ? " (loopback check)" : ""}`;
135
- }
136
- function collisionAliases(snapshot) {
137
- const counts = new Map();
138
- for (const row of endpointRows(snapshot))
139
- if (!row.placeholder)
140
- counts.set(row.alias, (counts.get(row.alias) ?? 0) + 1);
141
- return new Set([...counts].filter(([, count]) => count > 1).map(([alias]) => alias));
142
- }
143
- function retirementLines(row, width) {
144
- return ["Embassy retirement confirmation", ...wrap(`Host: ${row.host}`, width), ...wrap(`Alias: ${row.alias}`, width), ...wrap(`Endpoint ID: ${row.id}`, width),
145
- ...wrap(`${row.provider} · queued ${row.queueDepth ?? 0} · last ${operation(row)}`, width),
146
- ...wrap("queued/reserved work is cancelled, armed work becomes ambiguous, accepted work becomes unconfirmed — cannot be undone.", width),
147
- "y confirm · N cancel"];
148
- }
149
- /** Pure screen renderer. It emits no ANSI so all dynamic values remain inert. */
150
- export function renderTui(model, columns = 80, rows = 24, now = Date.now()) {
151
- const width = Math.max(1, columns || 80), height = Math.max(1, rows || 24);
152
- if (model.mode === "confirm" && model.retiring) {
153
- const confirmation = retirementLines(model.retiring, width);
154
- if (confirmation.length > height)
155
- return ["Embassy · terminal too small", "Resize to show the exact endpoint ID and consequences.", "N cancel"]
156
- .slice(0, height).map((line) => fit(line, width)).join("\n");
157
- return [...confirmation, ...Array.from({ length: height - confirmation.length }, () => "")]
158
- .map((line) => fit(line, width)).join("\n");
159
- }
160
- if (height < 6 || width < 24)
161
- return ["Embassy · terminal too small", "Resize · q quit"]
162
- .slice(0, height).map((line) => fit(line, width)).join("\n");
163
- const snapshot = model.snapshot, host = model.host ? ` ${model.host}` : "", lines = [];
164
- if (model.error) {
165
- const elapsed = model.staleSince ? `, ${age(now - model.staleSince)}` : "";
166
- lines.push(`Embassy${host} · broker UNREACHABLE (${model.error}${elapsed})`);
167
- lines.push(`${snapshot ? `Last-known: ${text(snapshot.health, "unknown")} · ledger rev ${snapshot.revision ?? "-"}. ` : ""}Run embassy service status${model.host ? ` on ${model.host}` : ""}.`);
168
- lines.push("STALE data · not a provider readiness proof");
169
- if (model.errorDetail)
170
- lines.push(...wrap(model.errorDetail, width));
171
- }
172
- else {
173
- const broker = snapshot ? text(snapshot.health, "unknown") : "not reachable";
174
- const fault = snapshot?.safeErrorCode ? ` !${text(snapshot.safeErrorCode)}` : "";
175
- lines.push(`Embassy${host} · broker ${broker}${fault} · ledger rev ${snapshot?.revision ?? "-"}`);
176
- lines.push(`Updated ${model.snapshotAt ? `${age(now - model.snapshotAt)} ago` : "never"} · not a provider readiness proof`);
177
- }
178
- if (model.restarted)
179
- lines.push("Ledger revision decreased; broker restarted/reset.");
180
- const failed = list(snapshot?.messages).filter((row) => row.state === "failed").length;
181
- const tabs = ["endpoints", "deliveries", "retirements", "result"];
182
- const tabName = (tab) => tab === "deliveries" && failed ? `deliveries (${failed} failed)` : tab;
183
- lines.push(tabs.map((tab) => tab === model.section ? `[${tabName(tab)}]` : ` ${tabName(tab)} `).join(" "));
184
- const source = sectionRows(model, width);
185
- let selected = Math.max(0, Math.min(model.selected[model.section] ?? 0, Math.max(0, source.length - 1)));
186
- if (model.section === "endpoints" && model.selectedEndpoint)
187
- selected = source.findIndex((row) => endpointKey(row) === model.selectedEndpoint);
188
- const bodyHeight = Math.max(1, height - 9), start = selected < 0 ? 0
189
- : Math.max(0, Math.min(selected - Math.floor(bodyHeight / 2), Math.max(0, source.length - bodyHeight)));
190
- const visible = source.slice(start, start + bodyHeight);
191
- if (visible.length === 0)
192
- lines.push(" No rows.");
193
- else
194
- visible.forEach((row, offset) => lines.push(`${start + offset === selected ? ">" : " "} ${lineFor(row, model.section, now, collisionAliases(snapshot))}`));
195
- lines.push(`${model.section} ${source.length ? `${selected < 0 ? "-" : selected + 1}/${source.length}` : "0/0"}`);
196
- if (model.mode === "token")
197
- lines.push(`Delivery token: ${model.token || "dlv_…"} · ${tokenFeedback(model.token)}`, "Enter look up · Esc cancel");
198
- else
199
- lines.push("Tab/Shift-Tab or 1–4 sections · ↑/↓ j/k g/G select", "r refresh · c check · d delivery · x retire · q quit");
200
- if (model.actionRunning)
201
- lines.push(...wrap(`${model.action ?? "action in progress"} — polling paused`, width - 2).map((line) => ` ${line}`));
202
- else if (model.action)
203
- lines.push(...wrap(model.action, width - 2).map((line) => ` ${line}`));
204
- while (lines.length < height)
205
- lines.push("");
206
- 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 });
207
8
  }
208
9
  /** Interactive, dependency-free client over the existing broker commands. */
209
10
  export async function runTui(dependencies) {
210
11
  const { input, output, call, renderStatus, signal } = dependencies;
211
- if (!output.isTTY || !input.isTTY) {
12
+ if (!output.isTTY || !input.isTTY || (dependencies.terminal?.dumb ?? process.env.TERM === "dumb")) {
212
13
  output.write(renderStatus(await call({ method: "list_snapshot", params: {} })));
213
14
  return;
214
15
  }
@@ -223,32 +24,44 @@ export async function runTui(dependencies) {
223
24
  }));
224
25
  let active = 0, model = panes[0].model;
225
26
  const priorRaw = input.isRaw === true, priorFlowing = input.readableFlowing;
226
- let closed = false, lastFrame = "";
27
+ const color = !(dependencies.terminal?.noColor ?? process.env.NO_COLOR !== undefined);
28
+ let closed = false, ink;
227
29
  let drawTimer;
228
30
  let resolveDone;
229
31
  const done = new Promise((resolve) => { resolveDone = resolve; });
230
- 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
+ };
231
53
  const draw = () => {
232
54
  if (closed)
233
55
  return;
234
- const width = output.columns || 80, height = output.rows || 24;
235
- const overview = [];
236
- if (panes.length > 1 && model.mode !== "confirm") {
237
- overview.push("Hosts: [ / ] switch · each pane reports its own broker");
238
- const visible = Math.min(4, Math.max(1, height - 10));
239
- const start = Math.max(0, Math.min(active - 1, panes.length - visible));
240
- panes.slice(start, start + visible).forEach((pane, offset) => {
241
- const m = pane.model;
242
- const state = m.error ? `STALE !${m.error}` : m.snapshot ? text(m.snapshot.health) : "connecting";
243
- const elapsed = m.snapshotAt === undefined ? "not observed" : `${age(Date.now() - m.snapshotAt)} ago`;
244
- overview.push(`${start + offset === active ? ">" : " "} ${m.host} · ${state} · ${elapsed}`);
245
- });
246
- }
247
- const frame = [...overview.map((line) => fit(line, width)), renderTui(model, width, Math.max(1, height - overview.length))].join("\n");
248
- if (frame === lastFrame)
249
- return;
250
- lastFrame = frame;
251
- 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);
252
65
  };
253
66
  const replaceSnapshot = (pane, value) => {
254
67
  if (!object(value))
@@ -424,7 +237,8 @@ export async function runTui(dependencies) {
424
237
  input.off("data", onInputData);
425
238
  input.off("end", finish);
426
239
  input.off("error", finish);
427
- keyInput.off("keypress", onKeypress);
240
+ ink?.unmount();
241
+ ink?.cleanup();
428
242
  keyInput.destroy();
429
243
  output.off?.("resize", draw);
430
244
  signal?.removeEventListener("abort", finish);
@@ -445,7 +259,7 @@ export async function runTui(dependencies) {
445
259
  }
446
260
  catch { /* input may already be closed */ }
447
261
  remote?.close();
448
- output.write("\x1b[0m\x1b[?25h\x1b[?1049l");
262
+ output.write(`${color ? "\x1b[0m" : ""}\x1b[?25h\x1b[?1049l`);
449
263
  resolveDone();
450
264
  };
451
265
  const onKeypress = (sequence, details) => {
@@ -477,7 +291,7 @@ export async function runTui(dependencies) {
477
291
  const retiring = model.retiring;
478
292
  model.mode = "browse";
479
293
  delete model.retiring;
480
- 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;
481
295
  if (key.toLowerCase() === "y" && retiring && visible)
482
296
  queueAction("retire", { method: "retire_route", params: { endpoint: retiring.id } });
483
297
  else
@@ -534,8 +348,6 @@ export async function runTui(dependencies) {
534
348
  };
535
349
  const onInputData = (chunk) => { if (!closed)
536
350
  keyInput.write(chunk); };
537
- emitKeypressEvents(keyInput);
538
- keyInput.on("keypress", onKeypress);
539
351
  input.on("data", onInputData);
540
352
  input.on("end", finish);
541
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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"}