From ea4dd5ae35a41016e43225679578845378d59f60 Mon Sep 17 00:00:00 2001 From: "A.K.M. Adib" Date: Tue, 10 Mar 2026 11:13:16 -0400 Subject: [PATCH] lint passes and failing test passes --- .../src/context/toolOutputMaskingService.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/core/src/context/toolOutputMaskingService.ts b/packages/core/src/context/toolOutputMaskingService.ts index 44b8fcf897..32a291f581 100644 --- a/packages/core/src/context/toolOutputMaskingService.ts +++ b/packages/core/src/context/toolOutputMaskingService.ts @@ -48,6 +48,18 @@ export interface MaskingResult { tokensSaved: number; } +interface HasOutputFile { + outputFile: string; +} + +function hasOutputFile(obj: unknown): obj is HasOutputFile { + if (typeof obj !== 'object' || obj === null || !('outputFile' in obj)) { + return false; + } + const val = (obj as Record)['outputFile']; + return typeof val === 'string'; +} + /** * Service to manage context window efficiency by masking bulky tool outputs (Tool Output Masking). * @@ -191,11 +203,8 @@ export class ToolOutputMaskingService { let fileSizeMB = '0.00'; let totalLines = 0; - if ( - typeof originalResponse['outputFile'] === 'string' && - originalResponse['outputFile'] - ) { - filePath = originalResponse['outputFile']; + if (hasOutputFile(originalResponse) && originalResponse.outputFile) { + filePath = originalResponse.outputFile; try { const stats = await fsPromises.stat(filePath); fileSizeMB = (stats.size / 1024 / 1024).toFixed(2);