@sentropic/h2a-runtime 0.98.5 → 0.98.7-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/attach.d.ts +2 -0
  2. package/dist/attach.d.ts.map +1 -1
  3. package/dist/attach.js +73 -6
  4. package/dist/attach.js.map +1 -1
  5. package/dist/auth-login.d.ts +24 -1
  6. package/dist/auth-login.d.ts.map +1 -1
  7. package/dist/auth-login.js +132 -4
  8. package/dist/auth-login.js.map +1 -1
  9. package/dist/central-mcp.d.ts +2 -0
  10. package/dist/central-mcp.d.ts.map +1 -1
  11. package/dist/central-mcp.js +90 -3
  12. package/dist/central-mcp.js.map +1 -1
  13. package/dist/cli-help-groups.js +1 -1
  14. package/dist/cli-help-groups.js.map +1 -1
  15. package/dist/crash-log.d.ts +112 -0
  16. package/dist/crash-log.d.ts.map +1 -0
  17. package/dist/crash-log.js +560 -0
  18. package/dist/crash-log.js.map +1 -0
  19. package/dist/gateway-host/live-declarations.d.ts +58 -0
  20. package/dist/gateway-host/live-declarations.d.ts.map +1 -0
  21. package/dist/gateway-host/live-declarations.js +423 -0
  22. package/dist/gateway-host/live-declarations.js.map +1 -0
  23. package/dist/gateway-host/live-registration.d.ts +162 -0
  24. package/dist/gateway-host/live-registration.d.ts.map +1 -0
  25. package/dist/gateway-host/live-registration.js +455 -0
  26. package/dist/gateway-host/live-registration.js.map +1 -0
  27. package/dist/identity-cull/cull.d.ts.map +1 -1
  28. package/dist/identity-cull/cull.js +35 -89
  29. package/dist/identity-cull/cull.js.map +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +90 -6
  32. package/dist/index.js.map +1 -1
  33. package/dist/native-host.d.ts +3 -1
  34. package/dist/native-host.d.ts.map +1 -1
  35. package/dist/native-host.js +43 -10
  36. package/dist/native-host.js.map +1 -1
  37. package/dist/native-terminal/client.d.ts +2 -2
  38. package/dist/native-terminal/client.d.ts.map +1 -1
  39. package/dist/native-terminal/client.js +2 -2
  40. package/dist/native-terminal/client.js.map +1 -1
  41. package/dist/native-terminal/host.d.ts +21 -5
  42. package/dist/native-terminal/host.d.ts.map +1 -1
  43. package/dist/native-terminal/host.js +104 -72
  44. package/dist/native-terminal/host.js.map +1 -1
  45. package/dist/native-terminal/journal.d.ts +5 -0
  46. package/dist/native-terminal/journal.d.ts.map +1 -1
  47. package/dist/native-terminal/journal.js +30 -17
  48. package/dist/native-terminal/journal.js.map +1 -1
  49. package/dist/native-terminal/op.d.ts +16 -1
  50. package/dist/native-terminal/op.d.ts.map +1 -1
  51. package/dist/native-terminal/op.js +124 -45
  52. package/dist/native-terminal/op.js.map +1 -1
  53. package/dist/native-terminal/process.d.ts.map +1 -1
  54. package/dist/native-terminal/process.js +4 -2
  55. package/dist/native-terminal/process.js.map +1 -1
  56. package/dist/native-terminal/publication-refusal.d.ts +22 -0
  57. package/dist/native-terminal/publication-refusal.d.ts.map +1 -0
  58. package/dist/native-terminal/publication-refusal.js +26 -0
  59. package/dist/native-terminal/publication-refusal.js.map +1 -0
  60. package/dist/native-terminal/server.d.ts +9 -2
  61. package/dist/native-terminal/server.d.ts.map +1 -1
  62. package/dist/native-terminal/server.js +335 -138
  63. package/dist/native-terminal/server.js.map +1 -1
  64. package/dist/native-terminal/supervisor.d.ts.map +1 -1
  65. package/dist/native-terminal/supervisor.js +9 -0
  66. package/dist/native-terminal/supervisor.js.map +1 -1
  67. package/dist/proc-identity.d.ts +63 -1
  68. package/dist/proc-identity.d.ts.map +1 -1
  69. package/dist/proc-identity.js +98 -1
  70. package/dist/proc-identity.js.map +1 -1
  71. package/dist/pty.d.ts.map +1 -1
  72. package/dist/pty.js +18 -0
  73. package/dist/pty.js.map +1 -1
  74. package/dist/registry.d.ts +15 -0
  75. package/dist/registry.d.ts.map +1 -1
  76. package/dist/registry.js +17 -4
  77. package/dist/registry.js.map +1 -1
  78. package/dist/run.d.ts.map +1 -1
  79. package/dist/run.js +79 -16
  80. package/dist/run.js.map +1 -1
  81. package/dist/terminal-reset.d.ts +104 -0
  82. package/dist/terminal-reset.d.ts.map +1 -0
  83. package/dist/terminal-reset.js +229 -0
  84. package/dist/terminal-reset.js.map +1 -0
  85. package/dist/tmux.d.ts +25 -3
  86. package/dist/tmux.d.ts.map +1 -1
  87. package/dist/tmux.js +61 -18
  88. package/dist/tmux.js.map +1 -1
  89. package/dist/vendor/engram-live/contracts.d.ts +208 -0
  90. package/dist/vendor/engram-live/contracts.js +558 -0
  91. package/dist/vendor/engram-live/integration.d.ts +73 -0
  92. package/dist/vendor/engram-live/integration.js +194 -0
  93. package/dist/vendor/engram-live/registration.d.ts +138 -0
  94. package/dist/vendor/engram-live/registration.js +360 -0
  95. package/package.json +4 -3
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Sane-state reset for h2a verbs that hand the REAL client terminal to a child
3
+ * over inherited stdio (`tmux attach`, foreground CLI, `kubectl exec` attach).
4
+ *
5
+ * Unlike the native attach path (native-terminal/op.ts), these verbs never see
6
+ * the child's output bytes, so there is nothing to track: emit a fixed,
7
+ * idempotent reset that is a no-op on an already-sane terminal. The DEC set
8
+ * and ordering mirror TerminalModeTracker's DEC_MODES so both mechanisms stay
9
+ * comparable (see terminal-reset.test.ts for the cross-check).
10
+ *
11
+ * Sync limitation (rev351-1): the wrapped child runs in a BLOCKING spawnSync,
12
+ * which owns a private libuv loop. A JS `process.on(signal)` handler installed
13
+ * around it can never run synchronously: delivery is deferred until the event
14
+ * loop regains control, and removing the listener right after spawnSync
15
+ * destroys the pending signal. Trapping therefore swallows the signal (exit 0)
16
+ * and blocks the wrapper until the child ends on its own (plus it breaks
17
+ * Ctrl-C in the reconnect loop). So this wrapper installs NO signal handlers:
18
+ * a signal addressed to the wrapper itself keeps its default disposition (the
19
+ * wrapper dies promptly, like SIGKILL — residual, no reset possible), while a
20
+ * signal that kills only the CHILD is observed synchronously via r.signal and
21
+ * mapped to 128+n by statusFromSpawnResult (never 0).
22
+ */
23
+ /**
24
+ * Unconditional sane-state reset for the client terminal. Every sequence is a
25
+ * no-op when the terminal is already sane: clearing an unset private mode,
26
+ * showing a visible cursor, leaving the normal keypad, or zeroing
27
+ * modifyOtherKeys changes nothing.
28
+ *
29
+ * Prefix `\x18` (CAN) + `ESC \` (ST) aborts a truncated CSI/OSC sequence when
30
+ * the child died mid-write; without it the reset itself could be swallowed
31
+ * inside the incomplete sequence. Kitty keyboard stacks are per-screen
32
+ * (main vs alternate, cf. terminal-modes.ts): pop up to 16 entries and zero
33
+ * flags BEFORE leaving the alternate screen, then pop again after returning
34
+ * to the main screen. Without a byte stream there is no exact stack to pop,
35
+ * so the maximal pop is the best-effort bound (the tracked native attach path
36
+ * pops exactly instead).
37
+ */
38
+ export declare const CLIENT_TERMINAL_RESET_SEQUENCE: string;
39
+ /** Write the reset to a TTY stdout, synchronously so teardown paths can use it. */
40
+ export declare function resetClientTerminal(stdout?: {
41
+ isTTY?: boolean;
42
+ fd?: unknown;
43
+ write?: (chunk: string) => unknown;
44
+ }): boolean;
45
+ /** POSIX signal numbers for the 128+n exit-code mapping. */
46
+ export declare const SIGNAL_NUMBERS: Readonly<Record<string, number>>;
47
+ export type SpawnResultLike = {
48
+ readonly status: number | null;
49
+ readonly signal: NodeJS.Signals | null;
50
+ readonly error?: unknown;
51
+ };
52
+ /**
53
+ * Map a spawnSync result to a process exit code that preserves signal-death
54
+ * semantics. A child killed by a signal has status null: the old `?? 0`
55
+ * reported that as success. Now it reports 128+signo; a spawn error reports
56
+ * 127; a null status with no signal and no error (should not happen) reports
57
+ * 1 rather than 0.
58
+ */
59
+ export declare function statusFromSpawnResult(result: SpawnResultLike): number;
60
+ export type TtyStdin = Pick<NodeJS.ReadStream, "isTTY" | "isRaw" | "setRawMode"> & {
61
+ readonly fd?: unknown;
62
+ };
63
+ export type SttySaveResult = {
64
+ readonly status?: number | null;
65
+ readonly stdout?: unknown;
66
+ };
67
+ /**
68
+ * rev351r2-2: injectable `stty` runner so the save/restore logic is
69
+ * unit-testable without a real TTY. The default shells out like before.
70
+ */
71
+ export type SttySpawn = (args: ReadonlyArray<string>, options: {
72
+ readonly stdinFd: number;
73
+ readonly capture: boolean;
74
+ }) => SttySaveResult;
75
+ export type TtyState = {
76
+ readonly stdinFd: number | undefined;
77
+ readonly wasRaw: boolean;
78
+ readonly saved: SttySaveResult | undefined;
79
+ };
80
+ /**
81
+ * rev351r2-2: single home for the termios save every client-terminal owner
82
+ * (`withClientTerminalReset`, `run`, `attach`, `auth login`) used to copy.
83
+ * Captures stdin raw mode plus `stty -g` on a real TTY; elsewhere (or when
84
+ * `stty` fails) the save is empty and the restore below degrades to the VT
85
+ * reset plus the raw-mode restore.
86
+ */
87
+ export declare function saveTtyState(stdin: TtyStdin, stty?: SttySpawn): TtyState;
88
+ /**
89
+ * rev351r2-2: single home for the termios restore. Emits the VT reset, puts
90
+ * stdin raw mode back the way it was, then re-applies the saved `stty` state
91
+ * when there is one. Every step is best effort so teardown never masks the
92
+ * session outcome.
93
+ */
94
+ export declare function restoreTtyState(state: TtyState, stdin: TtyStdin, doReset: () => void, stty?: SttySpawn): void;
95
+ /**
96
+ * Run `run` (usually one blocking inherit-stdio child) and restore the client
97
+ * terminal on every SYNCHRONOUS exit path (normal return, sync exception,
98
+ * child signal death observed via its spawn result). Restores termios
99
+ * (`stty -g`) and stdin raw mode like withAttachTerminalRecovery, plus the
100
+ * unconditional VT reset. Installs no signal handlers (see header): trapping
101
+ * around spawnSync would swallow and block.
102
+ */
103
+ export declare function withClientTerminalReset<T>(run: () => T, reset?: () => void, stdin?: TtyStdin): T;
104
+ //# sourceMappingURL=terminal-reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-reset.d.ts","sourceRoot":"","sources":["../src/terminal-reset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,8BAA8B,QAa3B,CAAC;AAEjB,mFAAmF;AACnF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;CAAmB,GAC7F,OAAO,CAYT;AAoDD,4DAA4D;AAC5D,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMzD,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAIrE;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,CACzB,MAAM,CAAC,UAAU,EACjB,OAAO,GAAG,OAAO,GAAG,YAAY,CACjC,GAAG;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,KAC7D,cAAc,CAAC;AAUpB,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,EACf,IAAI,GAAE,SAA4B,GACjC,QAAQ,CAgBV;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,IAAI,EACnB,IAAI,GAAE,SAA4B,GACjC,IAAI,CAiCN;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,GAAG,EAAE,MAAM,CAAC,EACZ,KAAK,GAAE,MAAM,IAEZ,EACD,KAAK,GAAE,QAAwB,GAC9B,CAAC,CAOH"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Sane-state reset for h2a verbs that hand the REAL client terminal to a child
3
+ * over inherited stdio (`tmux attach`, foreground CLI, `kubectl exec` attach).
4
+ *
5
+ * Unlike the native attach path (native-terminal/op.ts), these verbs never see
6
+ * the child's output bytes, so there is nothing to track: emit a fixed,
7
+ * idempotent reset that is a no-op on an already-sane terminal. The DEC set
8
+ * and ordering mirror TerminalModeTracker's DEC_MODES so both mechanisms stay
9
+ * comparable (see terminal-reset.test.ts for the cross-check).
10
+ *
11
+ * Sync limitation (rev351-1): the wrapped child runs in a BLOCKING spawnSync,
12
+ * which owns a private libuv loop. A JS `process.on(signal)` handler installed
13
+ * around it can never run synchronously: delivery is deferred until the event
14
+ * loop regains control, and removing the listener right after spawnSync
15
+ * destroys the pending signal. Trapping therefore swallows the signal (exit 0)
16
+ * and blocks the wrapper until the child ends on its own (plus it breaks
17
+ * Ctrl-C in the reconnect loop). So this wrapper installs NO signal handlers:
18
+ * a signal addressed to the wrapper itself keeps its default disposition (the
19
+ * wrapper dies promptly, like SIGKILL — residual, no reset possible), while a
20
+ * signal that kills only the CHILD is observed synchronously via r.signal and
21
+ * mapped to 128+n by statusFromSpawnResult (never 0).
22
+ */
23
+ import { spawnSync } from "node:child_process";
24
+ import { writeSync } from "node:fs";
25
+ import { constants as osConstants } from "node:os";
26
+ const ESC = "\x1b";
27
+ /**
28
+ * Unconditional sane-state reset for the client terminal. Every sequence is a
29
+ * no-op when the terminal is already sane: clearing an unset private mode,
30
+ * showing a visible cursor, leaving the normal keypad, or zeroing
31
+ * modifyOtherKeys changes nothing.
32
+ *
33
+ * Prefix `\x18` (CAN) + `ESC \` (ST) aborts a truncated CSI/OSC sequence when
34
+ * the child died mid-write; without it the reset itself could be swallowed
35
+ * inside the incomplete sequence. Kitty keyboard stacks are per-screen
36
+ * (main vs alternate, cf. terminal-modes.ts): pop up to 16 entries and zero
37
+ * flags BEFORE leaving the alternate screen, then pop again after returning
38
+ * to the main screen. Without a byte stream there is no exact stack to pop,
39
+ * so the maximal pop is the best-effort bound (the tracked native attach path
40
+ * pops exactly instead).
41
+ */
42
+ export const CLIENT_TERMINAL_RESET_SEQUENCE = `\x18${ESC}\\` + // abort any truncated CSI/OSC first
43
+ `${ESC}[?2026l` + // end synchronized output first
44
+ `${ESC}[<16u${ESC}[=0u` + // pop Kitty alternate-screen stack before leaving it
45
+ `${ESC}[?1l` + // normal cursor keys
46
+ `${ESC}[?1000l${ESC}[?1002l${ESC}[?1003l` + // mouse reporting
47
+ `${ESC}[?1004l` + // focus reporting (the ^[[I/^[[O stuck symptom)
48
+ `${ESC}[?1006l${ESC}[?1015l` + // mouse encoding
49
+ `${ESC}[?2004l` + // bracketed paste
50
+ `${ESC}[?47l${ESC}[?1047l${ESC}[?1049l` + // back to the normal screen
51
+ `${ESC}[<16u${ESC}[=0u` + // pop Kitty main-screen stack after returning
52
+ `${ESC}[?25h` + // visible cursor
53
+ `${ESC}>` + // normal keypad
54
+ `${ESC}[>4;0m`; // modifyOtherKeys off
55
+ /** Write the reset to a TTY stdout, synchronously so teardown paths can use it. */
56
+ export function resetClientTerminal(stdout = process.stdout) {
57
+ try {
58
+ if (stdout.isTTY !== true)
59
+ return false;
60
+ if (typeof stdout.fd === "number") {
61
+ writeSync(stdout.fd, CLIENT_TERMINAL_RESET_SEQUENCE);
62
+ }
63
+ else {
64
+ stdout.write?.(CLIENT_TERMINAL_RESET_SEQUENCE);
65
+ }
66
+ return true;
67
+ }
68
+ catch {
69
+ return false;
70
+ }
71
+ }
72
+ /**
73
+ * rev351r2-6: signal numbers for the 128+n exit-code mapping, read from the
74
+ * running platform (`os.constants.signals`) with a Linux fallback for names
75
+ * the platform does not know. A frozen literal got macOS/BSD numbers wrong
76
+ * (SIGBUS 10 not 7, SIGUSR1 30 not 10, SIGCHLD 20, SIGSTOP 17, ...); the
77
+ * operational signals (HUP/INT/QUIT/KILL/TERM/SEGV/ABRT) agree everywhere,
78
+ * but crash-code mapping should still use the platform's own table.
79
+ */
80
+ const FALLBACK_SIGNAL_NUMBERS = {
81
+ SIGHUP: 1,
82
+ SIGINT: 2,
83
+ SIGQUIT: 3,
84
+ SIGILL: 4,
85
+ SIGTRAP: 5,
86
+ SIGABRT: 6,
87
+ SIGBUS: 7,
88
+ SIGFPE: 8,
89
+ SIGKILL: 9,
90
+ SIGUSR1: 10,
91
+ SIGSEGV: 11,
92
+ SIGUSR2: 12,
93
+ SIGPIPE: 13,
94
+ SIGALRM: 14,
95
+ SIGTERM: 15,
96
+ SIGSTKFLT: 16,
97
+ SIGCHLD: 17,
98
+ SIGCONT: 18,
99
+ SIGSTOP: 19,
100
+ SIGTSTP: 20,
101
+ SIGTTIN: 21,
102
+ SIGTTOU: 22,
103
+ SIGURG: 23,
104
+ SIGXCPU: 24,
105
+ SIGXFSZ: 25,
106
+ SIGVTALRM: 26,
107
+ SIGPROF: 27,
108
+ SIGWINCH: 28,
109
+ SIGIO: 29,
110
+ SIGPWR: 30,
111
+ SIGSYS: 31,
112
+ };
113
+ function platformSignalNumber(name) {
114
+ const fromOs = osConstants.signals[name];
115
+ if (typeof fromOs === "number")
116
+ return fromOs;
117
+ return FALLBACK_SIGNAL_NUMBERS[name] ?? 0;
118
+ }
119
+ /** POSIX signal numbers for the 128+n exit-code mapping. */
120
+ export const SIGNAL_NUMBERS = Object.fromEntries(Object.keys(FALLBACK_SIGNAL_NUMBERS).map((name) => [
121
+ name,
122
+ platformSignalNumber(name),
123
+ ]));
124
+ /**
125
+ * Map a spawnSync result to a process exit code that preserves signal-death
126
+ * semantics. A child killed by a signal has status null: the old `?? 0`
127
+ * reported that as success. Now it reports 128+signo; a spawn error reports
128
+ * 127; a null status with no signal and no error (should not happen) reports
129
+ * 1 rather than 0.
130
+ */
131
+ export function statusFromSpawnResult(result) {
132
+ if (result.signal)
133
+ return 128 + (SIGNAL_NUMBERS[result.signal] ?? 0);
134
+ if (result.error !== undefined && result.error !== null)
135
+ return 127;
136
+ return result.status ?? 1;
137
+ }
138
+ const defaultSttySpawn = (args, { stdinFd, capture }) => {
139
+ const result = spawnSync("stty", [...args], {
140
+ stdio: [stdinFd, capture ? "pipe" : "ignore", "ignore"],
141
+ encoding: "utf8",
142
+ });
143
+ return result;
144
+ };
145
+ /**
146
+ * rev351r2-2: single home for the termios save every client-terminal owner
147
+ * (`withClientTerminalReset`, `run`, `attach`, `auth login`) used to copy.
148
+ * Captures stdin raw mode plus `stty -g` on a real TTY; elsewhere (or when
149
+ * `stty` fails) the save is empty and the restore below degrades to the VT
150
+ * reset plus the raw-mode restore.
151
+ */
152
+ export function saveTtyState(stdin, stty = defaultSttySpawn) {
153
+ const wasRaw = stdin.isRaw === true;
154
+ const fd = stdin.fd;
155
+ const stdinFd = typeof fd === "number" ? fd : undefined;
156
+ if (stdin.isTTY !== true ||
157
+ stdinFd === undefined ||
158
+ process.platform === "win32") {
159
+ return { stdinFd, wasRaw, saved: undefined };
160
+ }
161
+ try {
162
+ return { stdinFd, wasRaw, saved: stty(["-g"], { stdinFd, capture: true }) };
163
+ }
164
+ catch {
165
+ return { stdinFd, wasRaw, saved: undefined };
166
+ }
167
+ }
168
+ /**
169
+ * rev351r2-2: single home for the termios restore. Emits the VT reset, puts
170
+ * stdin raw mode back the way it was, then re-applies the saved `stty` state
171
+ * when there is one. Every step is best effort so teardown never masks the
172
+ * session outcome.
173
+ */
174
+ export function restoreTtyState(state, stdin, doReset, stty = defaultSttySpawn) {
175
+ try {
176
+ doReset();
177
+ }
178
+ catch {
179
+ // Best effort on teardown; the caller's own outcome takes precedence.
180
+ }
181
+ try {
182
+ if (stdin.isTTY === true) {
183
+ try {
184
+ stdin.setRawMode?.(state.wasRaw);
185
+ }
186
+ catch {
187
+ // Restoring raw must never mask the caller's outcome.
188
+ }
189
+ }
190
+ }
191
+ catch {
192
+ // Best effort on teardown.
193
+ }
194
+ try {
195
+ const saved = state.saved;
196
+ if (saved?.status === 0 &&
197
+ typeof saved.stdout === "string" &&
198
+ saved.stdout.trim() &&
199
+ state.stdinFd !== undefined) {
200
+ stty([saved.stdout.trim()], {
201
+ stdinFd: state.stdinFd,
202
+ capture: false,
203
+ });
204
+ }
205
+ }
206
+ catch {
207
+ // Best effort; the VT reset above already ran.
208
+ }
209
+ }
210
+ /**
211
+ * Run `run` (usually one blocking inherit-stdio child) and restore the client
212
+ * terminal on every SYNCHRONOUS exit path (normal return, sync exception,
213
+ * child signal death observed via its spawn result). Restores termios
214
+ * (`stty -g`) and stdin raw mode like withAttachTerminalRecovery, plus the
215
+ * unconditional VT reset. Installs no signal handlers (see header): trapping
216
+ * around spawnSync would swallow and block.
217
+ */
218
+ export function withClientTerminalReset(run, reset = () => {
219
+ resetClientTerminal();
220
+ }, stdin = process.stdin) {
221
+ const state = saveTtyState(stdin);
222
+ try {
223
+ return run();
224
+ }
225
+ finally {
226
+ restoreTtyState(state, stdin, reset);
227
+ }
228
+ }
229
+ //# sourceMappingURL=terminal-reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-reset.js","sourceRoot":"","sources":["../src/terminal-reset.ts"],"names":[],"mappings":"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"}
package/dist/tmux.d.ts CHANGED
@@ -596,14 +596,36 @@ export declare function paneWorkerAttribution(pane: string): WorkerAttribution |
596
596
  export declare function paneWorkerAttributionFromView(pane: string, view: ProcView): WorkerAttribution | undefined;
597
597
  /** One /proc scan for the fleet-wide auditor and supervising pass. */
598
598
  export declare function readFleetProcView(): ProcView;
599
+ /** Confine the fleet /proc walk for tests; `undefined` restores /proc. */
600
+ export declare function setTestProcReaderRoot(root: string | undefined): void;
599
601
  export declare function procReaderDeps(): ProcReaderDeps;
602
+ export type AttachPodTmuxDeps = {
603
+ readonly spawnKubectl?: (args: ReadonlyArray<string>, env: NodeJS.ProcessEnv) => {
604
+ status: number | null;
605
+ signal: NodeJS.Signals | null;
606
+ error?: unknown;
607
+ };
608
+ readonly sleepOnce?: () => {
609
+ status: number | null;
610
+ signal: NodeJS.Signals | null;
611
+ };
612
+ readonly reset?: () => void;
613
+ readonly stderr?: Pick<NodeJS.WriteStream, "write">;
614
+ };
600
615
  /**
601
616
  * Attach the real terminal straight into the Pod's tmux session via
602
617
  * `kubectl exec -it`. The local terminal talks to tmux directly (no WS proxy),
603
618
  * so scrollback + copy-to-local-clipboard (OSC52) work natively. Requires a
604
619
  * tmux-backed session (Pod started by the tmux-wrapping agent). Blocks until
605
- * detach/exit; returns the kubectl exit status.
606
- */
607
- export declare function attachPodTmux(tunnel: TunnelConfig, sessionId: string): number;
620
+ * detach/exit; returns the kubectl exit status (128+n when killed by signal).
621
+ *
622
+ * rev351-1: each `kubectl` spawn is wrapped individually (not the whole
623
+ * reconnect loop) so a killed `kubectl exec` resets the client terminal BEFORE
624
+ * the diagnostic + sleep. A kubectl killed by signal stops the loop and
625
+ * reports 128+n — never 0 (clean detach) and never a silent reconnect, so
626
+ * Ctrl-C stops instead of looping. With no signal trapping the wrapper itself
627
+ * also dies promptly on SIGINT/SIGTERM (no blocking).
628
+ */
629
+ export declare function attachPodTmux(tunnel: TunnelConfig, sessionId: string, deps?: AttachPodTmuxDeps): number;
608
630
  export {};
609
631
  //# sourceMappingURL=tmux.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../src/tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../src/tmux.ts"],"names":[],"mappings":"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"}
package/dist/tmux.js CHANGED
@@ -21,6 +21,7 @@ import { readProcessObservation, readProcessTreeCpuMs, readProcView, readWorkerA
21
21
  import { decideRelaunchSafety, isRelaunchKillable, } from "./relaunch.js";
22
22
  import { LAUNCH_OPTION_PREFIX, buildLaunchContext, launchContextOptions, parseLaunchContext, redactSecrets, } from "./launch-context.js";
23
23
  import { SESSION_CLASS_ENV } from "./session-class.js";
24
+ import { statusFromSpawnResult, withClientTerminalReset, } from "./terminal-reset.js";
24
25
  const TMUX = "tmux";
25
26
  /** Canonical tmux session-name prefix for h2a-managed local sessions. */
26
27
  export const LOCAL_PREFIX = "h2a-";
@@ -1589,12 +1590,14 @@ export async function startH2aWindowVerified(session, cwd, commandLine, agentPan
1589
1590
  * detaches (Ctrl-b d) or the session ends. Returns the tmux exit status.
1590
1591
  */
1591
1592
  export function attachLocalSession(name) {
1592
- ensureScrollConfig();
1593
- const args = process.env.TMUX
1594
- ? ["switch-client", "-t", `=${name}`]
1595
- : ["attach-session", "-t", `=${name}`];
1596
- const r = spawnSync(TMUX, args, { stdio: "inherit" });
1597
- return r.status ?? 0;
1593
+ return withClientTerminalReset(() => {
1594
+ ensureScrollConfig();
1595
+ const args = process.env.TMUX
1596
+ ? ["switch-client", "-t", `=${name}`]
1597
+ : ["attach-session", "-t", `=${name}`];
1598
+ const r = spawnSync(TMUX, args, { stdio: "inherit" });
1599
+ return statusFromSpawnResult(r);
1600
+ });
1598
1601
  }
1599
1602
  export function currentTmuxSessionIs(name) {
1600
1603
  if (!process.env.TMUX)
@@ -1606,8 +1609,10 @@ export function currentTmuxSessionIs(name) {
1606
1609
  return r.status === 0 && r.stdout.trim() === name;
1607
1610
  }
1608
1611
  export function runLocalCliForeground(command, args) {
1609
- const r = spawnSync(command, args, { stdio: "inherit" });
1610
- return r.status ?? 0;
1612
+ return withClientTerminalReset(() => {
1613
+ const r = spawnSync(command, args, { stdio: "inherit" });
1614
+ return statusFromSpawnResult(r);
1615
+ });
1611
1616
  }
1612
1617
  /**
1613
1618
  * Kill a local tmux session. A relaunch kill carries the pane generation that
@@ -1969,11 +1974,23 @@ export function paneWorkerAttributionFromView(pane, view) {
1969
1974
  export function readFleetProcView() {
1970
1975
  return readProcView(procReaderDeps());
1971
1976
  }
1977
+ // R4 test-only seam: the fleet-wide /proc walk below also reads WORKER
1978
+ // IDENTITY (pane attribution, `workerDisproven`), so production must always
1979
+ // read the real /proc — no environment variable may redirect it (identity
1980
+ // spoofing, round-4 finding). Tests that need to confine the walk to the
1981
+ // private process view the isolation guard pins their spawned processes into
1982
+ // call this setter explicitly; no production code path ever does.
1983
+ let testProcRootForTests;
1984
+ /** Confine the fleet /proc walk for tests; `undefined` restores /proc. */
1985
+ export function setTestProcReaderRoot(root) {
1986
+ testProcRootForTests = root;
1987
+ }
1972
1988
  export function procReaderDeps() {
1989
+ const procRoot = testProcRootForTests ?? "/proc";
1973
1990
  return {
1974
1991
  listPids: () => {
1975
1992
  try {
1976
- return readdirSync("/proc")
1993
+ return readdirSync(procRoot)
1977
1994
  .map((entry) => Number.parseInt(entry, 10))
1978
1995
  .filter((value) => Number.isInteger(value) && value > 0);
1979
1996
  }
@@ -1983,7 +2000,7 @@ export function procReaderDeps() {
1983
2000
  },
1984
2001
  readStat: (target) => {
1985
2002
  try {
1986
- return readFileSync(`/proc/${target}/stat`, "utf8");
2003
+ return readFileSync(join(procRoot, String(target), "stat"), "utf8");
1987
2004
  }
1988
2005
  catch {
1989
2006
  return undefined;
@@ -1996,9 +2013,16 @@ export function procReaderDeps() {
1996
2013
  * `kubectl exec -it`. The local terminal talks to tmux directly (no WS proxy),
1997
2014
  * so scrollback + copy-to-local-clipboard (OSC52) work natively. Requires a
1998
2015
  * tmux-backed session (Pod started by the tmux-wrapping agent). Blocks until
1999
- * detach/exit; returns the kubectl exit status.
2016
+ * detach/exit; returns the kubectl exit status (128+n when killed by signal).
2017
+ *
2018
+ * rev351-1: each `kubectl` spawn is wrapped individually (not the whole
2019
+ * reconnect loop) so a killed `kubectl exec` resets the client terminal BEFORE
2020
+ * the diagnostic + sleep. A kubectl killed by signal stops the loop and
2021
+ * reports 128+n — never 0 (clean detach) and never a silent reconnect, so
2022
+ * Ctrl-C stops instead of looping. With no signal trapping the wrapper itself
2023
+ * also dies promptly on SIGINT/SIGTERM (no blocking).
2000
2024
  */
2001
- export function attachPodTmux(tunnel, sessionId) {
2025
+ export function attachPodTmux(tunnel, sessionId, deps = {}) {
2002
2026
  const env = { ...process.env };
2003
2027
  if (tunnel.kubeconfig)
2004
2028
  env.KUBECONFIG = expandHome(tunnel.kubeconfig);
@@ -2026,6 +2050,16 @@ export function attachPodTmux(tunnel, sessionId) {
2026
2050
  "-s",
2027
2051
  POD_TMUX_SESSION,
2028
2052
  ];
2053
+ const spawnKubectl = deps.spawnKubectl ??
2054
+ ((a, e) => spawnSync("kubectl", [...a], { stdio: "inherit", env: e }));
2055
+ const sleepOnce = deps.sleepOnce ?? (() => spawnSync("sleep", ["1"], { stdio: "ignore" }));
2056
+ const stderr = deps.stderr ?? process.stderr;
2057
+ const runReset = (run) => {
2058
+ if (deps.reset !== undefined) {
2059
+ return withClientTerminalReset(run, deps.reset);
2060
+ }
2061
+ return withClientTerminalReset(run);
2062
+ };
2029
2063
  // Long-lived `kubectl exec` streams corrupt over time ("tls: bad record MAC"
2030
2064
  // / "next reader: local error" from the SPDY/WS executor): the terminal fills
2031
2065
  // with garbage and the client dies, dumping the user back to their local
@@ -2037,19 +2071,25 @@ export function attachPodTmux(tunnel, sessionId) {
2037
2071
  let quickFailures = 0;
2038
2072
  for (;;) {
2039
2073
  const startedAt = Date.now();
2040
- const r = spawnSync("kubectl", args, { stdio: "inherit", env });
2041
- const status = r.status ?? 0;
2074
+ const r = runReset(() => spawnKubectl(args, env));
2075
+ if (r.signal) {
2076
+ const status = statusFromSpawnResult(r);
2077
+ stderr.write(`[h2a] kubectl attach killed by ${String(r.signal)} (status ${status}) — not reconnecting. ` +
2078
+ `Re-run \`h2a attach ${sessionId} --exec\` once ready.\n`);
2079
+ return status;
2080
+ }
2081
+ const status = statusFromSpawnResult(r);
2042
2082
  if (status === 0) {
2043
2083
  // Clean detach (Ctrl-b d) or exit: the Pod session keeps running — tell
2044
2084
  // the user how to get back in.
2045
- process.stderr.write(`[h2a] detached from ${sessionId} — re-attach: h2a attach ${sessionId} --exec\n`);
2085
+ stderr.write(`[h2a] detached from ${sessionId} — re-attach: h2a attach ${sessionId} --exec\n`);
2046
2086
  return 0;
2047
2087
  }
2048
2088
  const ranMs = Date.now() - startedAt;
2049
2089
  if (ranMs < 3000) {
2050
2090
  quickFailures += 1;
2051
2091
  if (quickFailures >= 5) {
2052
- process.stderr.write(`[h2a] exec attach keeps failing immediately (status ${status}) — the Pod may be gone. ` +
2092
+ stderr.write(`[h2a] exec attach keeps failing immediately (status ${status}) — the Pod may be gone. ` +
2053
2093
  `Re-run \`h2a attach ${sessionId} --exec\` once it's back.\n`);
2054
2094
  return status;
2055
2095
  }
@@ -2057,9 +2097,12 @@ export function attachPodTmux(tunnel, sessionId) {
2057
2097
  else {
2058
2098
  quickFailures = 0; // a real session that ran a while then dropped
2059
2099
  }
2060
- process.stderr.write(`[h2a] exec stream dropped (status ${status} — e.g. "tls: bad record MAC" on a long kubectl exec). ` +
2100
+ stderr.write(`[h2a] exec stream dropped (status ${status} — e.g. "tls: bad record MAC" on a long kubectl exec). ` +
2061
2101
  `Your Pod session is intact; reconnecting to its tmux… (Ctrl-C to stop)\n`);
2062
- spawnSync("sleep", ["1"], { stdio: "ignore" });
2102
+ const slept = runReset(sleepOnce);
2103
+ if (slept.signal) {
2104
+ return statusFromSpawnResult(slept);
2105
+ }
2063
2106
  }
2064
2107
  }
2065
2108
  //# sourceMappingURL=tmux.js.map