Skip to content

Commit 8c9a7ea

Browse files
committed
fix(pi): loosen dumb zone message type
1 parent 83d428b commit 8c9a7ea

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

  • packages/pi-packages/pi-dumb-zone/src

packages/pi-packages/pi-dumb-zone/src/checks.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { AgentMessage } from "@mariozechner/pi-agent-core";
21
import type { AssistantMessage, TextContent } from "@mariozechner/pi-ai";
32
import type { ExtensionContext } from "@mariozechner/pi-coding-agent";
43
import { 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

Comments
 (0)