1- import type { AgentMessage } from "@mariozechner/pi-agent-core" ;
21import type { AssistantMessage , TextContent } from "@mariozechner/pi-ai" ;
32import type { ExtensionContext } from "@mariozechner/pi-coding-agent" ;
43import { CONTEXT_THRESHOLDS , DUMB_ZONE_PATTERNS , POST_COMPACTION_MULTIPLIER } from "./constants" ;
@@ -78,8 +77,15 @@ export function getContextUtilization(ctx: ExtensionContext): number {
7877/**
7978 * Type guard for assistant messages.
8079 */
81- export function isAssistantMessage ( message : AgentMessage ) : message is AssistantMessage {
82- return message . role === "assistant" && Array . isArray ( message . content ) ;
80+ export function isAssistantMessage ( message : unknown ) : message is AssistantMessage {
81+ return (
82+ typeof message === "object" &&
83+ message !== null &&
84+ "role" in message &&
85+ message . role === "assistant" &&
86+ "content" in message &&
87+ Array . isArray ( message . content )
88+ ) ;
8389}
8490
8591/**
@@ -104,10 +110,7 @@ export function matchesDumbZonePatterns(text: string): boolean {
104110 * Combines quantitative (context usage) and qualitative (phrase patterns) checks.
105111 * Triggers at WARNING threshold so persistent indicators appear early.
106112 */
107- export function checkDumbZone (
108- ctx : ExtensionContext ,
109- messages : AgentMessage [ ]
110- ) : DumbZoneCheckResult {
113+ export function checkDumbZone ( ctx : ExtensionContext , messages : unknown [ ] ) : DumbZoneCheckResult {
111114 const utilization = getContextUtilization ( ctx ) ;
112115 const compacted = hasCompacted ( ctx ) ;
113116 const warningThreshold = getEffectiveThreshold ( CONTEXT_THRESHOLDS . WARNING , compacted ) ;
0 commit comments