fix(agent): use user message content type for displayContent

This commit is contained in:
Jiang Bohan 2026-02-09 16:37:33 +08:00
parent ff0694175e
commit d5090441da
3 changed files with 6 additions and 4 deletions

View file

@ -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;
}

View file

@ -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(

View file

@ -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 }
| {