@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.
- package/dist/attach.d.ts +2 -0
- package/dist/attach.d.ts.map +1 -1
- package/dist/attach.js +73 -6
- package/dist/attach.js.map +1 -1
- package/dist/auth-login.d.ts +24 -1
- package/dist/auth-login.d.ts.map +1 -1
- package/dist/auth-login.js +132 -4
- package/dist/auth-login.js.map +1 -1
- package/dist/central-mcp.d.ts +2 -0
- package/dist/central-mcp.d.ts.map +1 -1
- package/dist/central-mcp.js +90 -3
- package/dist/central-mcp.js.map +1 -1
- package/dist/cli-help-groups.js +1 -1
- package/dist/cli-help-groups.js.map +1 -1
- package/dist/crash-log.d.ts +112 -0
- package/dist/crash-log.d.ts.map +1 -0
- package/dist/crash-log.js +560 -0
- package/dist/crash-log.js.map +1 -0
- package/dist/gateway-host/live-declarations.d.ts +58 -0
- package/dist/gateway-host/live-declarations.d.ts.map +1 -0
- package/dist/gateway-host/live-declarations.js +423 -0
- package/dist/gateway-host/live-declarations.js.map +1 -0
- package/dist/gateway-host/live-registration.d.ts +162 -0
- package/dist/gateway-host/live-registration.d.ts.map +1 -0
- package/dist/gateway-host/live-registration.js +455 -0
- package/dist/gateway-host/live-registration.js.map +1 -0
- package/dist/identity-cull/cull.d.ts.map +1 -1
- package/dist/identity-cull/cull.js +35 -89
- package/dist/identity-cull/cull.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +90 -6
- package/dist/index.js.map +1 -1
- package/dist/native-host.d.ts +3 -1
- package/dist/native-host.d.ts.map +1 -1
- package/dist/native-host.js +43 -10
- package/dist/native-host.js.map +1 -1
- package/dist/native-terminal/client.d.ts +2 -2
- package/dist/native-terminal/client.d.ts.map +1 -1
- package/dist/native-terminal/client.js +2 -2
- package/dist/native-terminal/client.js.map +1 -1
- package/dist/native-terminal/host.d.ts +21 -5
- package/dist/native-terminal/host.d.ts.map +1 -1
- package/dist/native-terminal/host.js +104 -72
- package/dist/native-terminal/host.js.map +1 -1
- package/dist/native-terminal/journal.d.ts +5 -0
- package/dist/native-terminal/journal.d.ts.map +1 -1
- package/dist/native-terminal/journal.js +30 -17
- package/dist/native-terminal/journal.js.map +1 -1
- package/dist/native-terminal/op.d.ts +16 -1
- package/dist/native-terminal/op.d.ts.map +1 -1
- package/dist/native-terminal/op.js +124 -45
- package/dist/native-terminal/op.js.map +1 -1
- package/dist/native-terminal/process.d.ts.map +1 -1
- package/dist/native-terminal/process.js +4 -2
- package/dist/native-terminal/process.js.map +1 -1
- package/dist/native-terminal/publication-refusal.d.ts +22 -0
- package/dist/native-terminal/publication-refusal.d.ts.map +1 -0
- package/dist/native-terminal/publication-refusal.js +26 -0
- package/dist/native-terminal/publication-refusal.js.map +1 -0
- package/dist/native-terminal/server.d.ts +9 -2
- package/dist/native-terminal/server.d.ts.map +1 -1
- package/dist/native-terminal/server.js +335 -138
- package/dist/native-terminal/server.js.map +1 -1
- package/dist/native-terminal/supervisor.d.ts.map +1 -1
- package/dist/native-terminal/supervisor.js +9 -0
- package/dist/native-terminal/supervisor.js.map +1 -1
- package/dist/proc-identity.d.ts +63 -1
- package/dist/proc-identity.d.ts.map +1 -1
- package/dist/proc-identity.js +98 -1
- package/dist/proc-identity.js.map +1 -1
- package/dist/pty.d.ts.map +1 -1
- package/dist/pty.js +18 -0
- package/dist/pty.js.map +1 -1
- package/dist/registry.d.ts +15 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +17 -4
- package/dist/registry.js.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +79 -16
- package/dist/run.js.map +1 -1
- package/dist/terminal-reset.d.ts +104 -0
- package/dist/terminal-reset.d.ts.map +1 -0
- package/dist/terminal-reset.js +229 -0
- package/dist/terminal-reset.js.map +1 -0
- package/dist/tmux.d.ts +25 -3
- package/dist/tmux.d.ts.map +1 -1
- package/dist/tmux.js +61 -18
- package/dist/tmux.js.map +1 -1
- package/dist/vendor/engram-live/contracts.d.ts +208 -0
- package/dist/vendor/engram-live/contracts.js +558 -0
- package/dist/vendor/engram-live/integration.d.ts +73 -0
- package/dist/vendor/engram-live/integration.js +194 -0
- package/dist/vendor/engram-live/registration.d.ts +138 -0
- package/dist/vendor/engram-live/registration.js +360 -0
- 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
|
-
|
|
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
|
package/dist/tmux.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
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
|
-
|
|
1610
|
-
|
|
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(
|
|
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(
|
|
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 =
|
|
2041
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2102
|
+
const slept = runReset(sleepOnce);
|
|
2103
|
+
if (slept.signal) {
|
|
2104
|
+
return statusFromSpawnResult(slept);
|
|
2105
|
+
}
|
|
2063
2106
|
}
|
|
2064
2107
|
}
|
|
2065
2108
|
//# sourceMappingURL=tmux.js.map
|