Something went wrong. Try again.
watches turns and automatically creates and resolves tasks that get pinned into main agent context
Something went wrong. Try again.
752 B · 24 lines
TypeScript
at main
12345678910111213141516171819202122232425import type { AgentMessage } from "@earendil-works/pi-agent-core";import { liveThreads } from "./state.ts";import type { ObserverPacket, Registry } from "./types.ts";
const assistantText = (messages: AgentMessage[]): string => messages .flatMap((message) => message.role === "assistant" ? message.content.filter((part) => part.type === "text").map((part) => part.text) : [], ) .join("\n\n");
export function buildPacket( registry: Registry, messages: AgentMessage[], targetMessageIds: ReadonlySet<string>,): ObserverPacket { return { threads: liveThreads(registry), userMessages: registry.unreconciled.filter((message) => targetMessageIds.has(message.messageId)), completedAssistantTurn: assistantText(messages), };}