Skip to content

Commit 90149cb

Browse files
committed
add output monitoring for foreground terminals
1 parent 4f540e6 commit 90149cb

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,6 @@ export class RunInTerminalTool extends Disposable implements IToolImpl {
430430

431431
outputMonitor = store.add(this._instantiationService.createInstance(OutputMonitor, execution, undefined, invocation.context!, token, command));
432432
await Event.toPromise(outputMonitor.onDidFinishCommand);
433-
const pollingResult = outputMonitor.pollingResult;
434433

435434
if (token.isCancellationRequested) {
436435
throw new CancellationError();
@@ -498,6 +497,7 @@ export class RunInTerminalTool extends Disposable implements IToolImpl {
498497

499498
let outputLineCount = -1;
500499
let exitCode: number | undefined;
500+
let outputMonitor: OutputMonitor | undefined;
501501
try {
502502
let strategy: ITerminalExecuteStrategy;
503503
const commandDetection = toolTerminal.instance.capabilities.get(TerminalCapability.CommandDetection);
@@ -517,7 +517,11 @@ export class RunInTerminalTool extends Disposable implements IToolImpl {
517517
}
518518
}
519519
this._logService.debug(`RunInTerminalTool: Using \`${strategy.type}\` execute strategy for command \`${command}\``);
520+
521+
outputMonitor = store.add(this._instantiationService.createInstance(OutputMonitor, { instance: toolTerminal.instance, sessionId: invocation.context!.sessionId, getOutput: () => getOutput(toolTerminal.instance) }, undefined, invocation.context!, token, command));
520522
const executeResult = await strategy.execute(command, token);
523+
await Event.toPromise(outputMonitor.onDidFinishCommand);
524+
521525
if (token.isCancellationRequested) {
522526
throw new CancellationError();
523527
}
@@ -560,9 +564,9 @@ export class RunInTerminalTool extends Disposable implements IToolImpl {
560564
inputUserSigint,
561565
terminalExecutionIdleBeforeTimeout: undefined,
562566
pollDurationMs: undefined,
563-
inputToolManualAcceptCount: 0,
564-
inputToolManualRejectCount: 0,
565-
inputToolManualChars: 0,
567+
inputToolManualAcceptCount: outputMonitor?.outputMonitorTelemetryCounters?.inputToolManualAcceptCount,
568+
inputToolManualRejectCount: outputMonitor?.outputMonitorTelemetryCounters?.inputToolManualRejectCount,
569+
inputToolManualChars: outputMonitor?.outputMonitorTelemetryCounters?.inputToolManualChars,
566570
});
567571
}
568572

0 commit comments

Comments
 (0)