fix(cli): improve type safety and fix StatusRow tests

This commit is contained in:
Keith Guerin
2026-03-27 22:19:26 -07:00
parent bc17679db7
commit bc814bdfe6
2 changed files with 23 additions and 7 deletions
@@ -46,6 +46,19 @@ import {
} from './executionLifecycleService.js';
const { Terminal } = pkg;
/**
* Internal interfaces to access non-public xterm properties.
*/
interface XTermCore {
coreService: {
isCursorHidden: boolean;
};
}
interface XTermInternal {
_core?: XTermCore;
}
const MAX_CHILD_PROCESS_BUFFER_SIZE = 16 * 1024 * 1024; // 16MB
/**
@@ -952,9 +965,10 @@ export class ShellExecutionService {
if (output !== finalOutput) {
output = finalOutput;
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-type-assertion
const isCursorHidden = (headlessTerminal as any)._core?.coreService
?.isCursorHidden as boolean | undefined;
const isCursorHidden =
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
(headlessTerminal as unknown as XTermInternal)._core?.coreService
?.isCursorHidden;
const event: ShellOutputEvent = {
type: 'data',
chunk: finalOutput,
@@ -1307,9 +1321,10 @@ export class ShellExecutionService {
startLine,
endLine,
);
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-type-assertion
const isCursorHidden = (activePty.headlessTerminal as any)._core
?.coreService?.isCursorHidden as boolean | undefined;
const isCursorHidden =
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
(activePty.headlessTerminal as unknown as XTermInternal)._core
?.coreService?.isCursorHidden;
const event: ShellOutputEvent = {
type: 'data',
chunk: bufferData,