From d5090441da0a4055707d6a26ea11524e81076f43 Mon Sep 17 00:00:00 2001 From: Jiang Bohan Date: Mon, 9 Feb 2026 16:37:33 +0800 Subject: [PATCH] fix(agent): use user message content type for displayContent --- src/agent/runner.ts | 3 ++- src/agent/session/session-manager.ts | 4 ++-- src/agent/session/types.ts | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/agent/runner.ts b/src/agent/runner.ts index 732daacb..8738163b 100644 --- a/src/agent/runner.ts +++ b/src/agent/runner.ts @@ -1,4 +1,5 @@ import { Agent as PiAgentCore, type AgentEvent, type AgentMessage } from "@mariozechner/pi-agent-core"; +import type { UserMessage } from "@mariozechner/pi-ai"; import { v7 as uuidv7 } from "uuid"; import type { AgentOptions, AgentRunResult, ReasoningMode } from "./types.js"; import type { MulticaEvent, CompactionEndEvent } from "./events.js"; @@ -572,7 +573,7 @@ export class Agent { private handleSessionEvent(event: AgentEvent) { if (event.type === "message_end") { const message = event.message as AgentMessage; - const saveOptions: { internal?: boolean; displayContent?: AgentMessage["content"] } = {}; + const saveOptions: { internal?: boolean; displayContent?: UserMessage["content"] } = {}; if (this._internalRun) { saveOptions.internal = true; } diff --git a/src/agent/session/session-manager.ts b/src/agent/session/session-manager.ts index 2a8e745a..8ca825dd 100644 --- a/src/agent/session/session-manager.ts +++ b/src/agent/session/session-manager.ts @@ -1,5 +1,5 @@ import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { getModel, type Model } from "@mariozechner/pi-ai"; +import { getModel, type Model, type UserMessage } from "@mariozechner/pi-ai"; import type { SessionEntry, SessionMeta } from "./types.js"; import { appendEntry, readEntries, resolveSessionPath, writeEntries } from "./storage.js"; import { compactMessages, compactMessagesAsync, type CompactionResult } from "./compaction.js"; @@ -230,7 +230,7 @@ export class SessionManager { saveMessage( message: AgentMessage, - options?: { internal?: boolean; displayContent?: AgentMessage["content"] }, + options?: { internal?: boolean; displayContent?: UserMessage["content"] }, ) { void this.enqueue(() => appendEntry( diff --git a/src/agent/session/types.ts b/src/agent/session/types.ts index dfafa061..ec734424 100644 --- a/src/agent/session/types.ts +++ b/src/agent/session/types.ts @@ -1,4 +1,5 @@ import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { UserMessage } from "@mariozechner/pi-ai"; export type SessionMeta = { provider?: string; @@ -20,7 +21,7 @@ export type SessionEntry = * User-visible content preserved for UI/history rendering. * When omitted, consumers should fall back to message.content. */ - displayContent?: AgentMessage["content"]; + displayContent?: UserMessage["content"]; } | { type: "meta"; meta: SessionMeta; timestamp: number } | {