summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/ui/hooks/shellCommandProcessor.test.ts8
-rw-r--r--packages/cli/src/ui/hooks/shellCommandProcessor.ts11
-rw-r--r--packages/cli/src/ui/hooks/useReactToolScheduler.ts5
-rw-r--r--packages/cli/src/ui/hooks/useToolScheduler.test.ts11
4 files changed, 19 insertions, 16 deletions
diff --git a/packages/cli/src/ui/hooks/shellCommandProcessor.test.ts b/packages/cli/src/ui/hooks/shellCommandProcessor.test.ts
index d5270aba..49dd9c2a 100644
--- a/packages/cli/src/ui/hooks/shellCommandProcessor.test.ts
+++ b/packages/cli/src/ui/hooks/shellCommandProcessor.test.ts
@@ -104,8 +104,6 @@ describe('useShellCommandProcessor', () => {
): ShellExecutionResult => ({
rawOutput: Buffer.from(overrides.output || ''),
output: 'Success',
- stdout: 'Success',
- stderr: '',
exitCode: 0,
signal: null,
error: null,
@@ -223,7 +221,6 @@ describe('useShellCommandProcessor', () => {
act(() => {
mockShellOutputCallback({
type: 'data',
- stream: 'stdout',
chunk: 'hello',
});
});
@@ -234,12 +231,9 @@ describe('useShellCommandProcessor', () => {
// Advance time and send another event to trigger the throttled update
await act(async () => {
await vi.advanceTimersByTimeAsync(OUTPUT_UPDATE_INTERVAL_MS + 1);
- });
- act(() => {
mockShellOutputCallback({
type: 'data',
- stream: 'stdout',
- chunk: ' world',
+ chunk: 'hello world',
});
});
diff --git a/packages/cli/src/ui/hooks/shellCommandProcessor.ts b/packages/cli/src/ui/hooks/shellCommandProcessor.ts
index 08df0a74..537b21ac 100644
--- a/packages/cli/src/ui/hooks/shellCommandProcessor.ts
+++ b/packages/cli/src/ui/hooks/shellCommandProcessor.ts
@@ -104,7 +104,6 @@ export const useShellCommandProcessor = (
const execPromise = new Promise<void>((resolve) => {
let lastUpdateTime = Date.now();
let cumulativeStdout = '';
- let cumulativeStderr = '';
let isBinaryStream = false;
let binaryBytesReceived = 0;
@@ -142,11 +141,7 @@ export const useShellCommandProcessor = (
case 'data':
// Do not process text data if we've already switched to binary mode.
if (isBinaryStream) break;
- if (event.stream === 'stdout') {
- cumulativeStdout += event.chunk;
- } else {
- cumulativeStderr += event.chunk;
- }
+ cumulativeStdout = event.chunk;
break;
case 'binary_detected':
isBinaryStream = true;
@@ -172,9 +167,7 @@ export const useShellCommandProcessor = (
'[Binary output detected. Halting stream...]';
}
} else {
- currentDisplayOutput =
- cumulativeStdout +
- (cumulativeStderr ? `\n${cumulativeStderr}` : '');
+ currentDisplayOutput = cumulativeStdout;
}
// Throttle pending UI updates to avoid excessive re-renders.
diff --git a/packages/cli/src/ui/hooks/useReactToolScheduler.ts b/packages/cli/src/ui/hooks/useReactToolScheduler.ts
index 93e05387..ce9727b7 100644
--- a/packages/cli/src/ui/hooks/useReactToolScheduler.ts
+++ b/packages/cli/src/ui/hooks/useReactToolScheduler.ts
@@ -62,6 +62,8 @@ export type TrackedToolCall =
| TrackedCompletedToolCall
| TrackedCancelledToolCall;
+import { useTerminalSize } from './useTerminalSize.js';
+
export function useReactToolScheduler(
onComplete: (tools: CompletedToolCall[]) => Promise<void>,
config: Config,
@@ -71,6 +73,7 @@ export function useReactToolScheduler(
getPreferredEditor: () => EditorType | undefined,
onEditorClose: () => void,
): [TrackedToolCall[], ScheduleFn, MarkToolsAsSubmittedFn] {
+ const terminalSize = useTerminalSize();
const [toolCallsForDisplay, setToolCallsForDisplay] = useState<
TrackedToolCall[]
>([]);
@@ -140,6 +143,7 @@ export function useReactToolScheduler(
onToolCallsUpdate: toolCallsUpdateHandler,
getPreferredEditor,
config,
+ getTerminalSize: () => terminalSize,
onEditorClose,
}),
[
@@ -148,6 +152,7 @@ export function useReactToolScheduler(
allToolCallsCompleteHandler,
toolCallsUpdateHandler,
getPreferredEditor,
+ terminalSize,
onEditorClose,
],
);
diff --git a/packages/cli/src/ui/hooks/useToolScheduler.test.ts b/packages/cli/src/ui/hooks/useToolScheduler.test.ts
index 64b064e2..36fa8825 100644
--- a/packages/cli/src/ui/hooks/useToolScheduler.test.ts
+++ b/packages/cli/src/ui/hooks/useToolScheduler.test.ts
@@ -34,6 +34,13 @@ import {
HistoryItemToolGroup,
} from '../types.js';
+vi.mock('./useTerminalSize', () => ({
+ useTerminalSize: () => ({
+ columns: 80,
+ rows: 24,
+ }),
+}));
+
// Mocks
vi.mock('@google/gemini-cli-core', async () => {
const actual = await vi.importActual('@google/gemini-cli-core');
@@ -179,6 +186,8 @@ describe('useReactToolScheduler in YOLO Mode', () => {
request.args,
expect.any(AbortSignal),
undefined,
+ 80,
+ 24,
);
// Check that onComplete was called with success
@@ -326,6 +335,8 @@ describe('useReactToolScheduler', () => {
request.args,
expect.any(AbortSignal),
undefined,
+ 80,
+ 24,
);
expect(onComplete).toHaveBeenCalledWith([
expect.objectContaining({