fix(agent): decouple agent streams from compat

closes #6851
This commit is contained in:
Mario Zechner
2026-07-20 17:54:17 +02:00
parent 3a40794ea1
commit 1235c0ec64
29 changed files with 219 additions and 105 deletions
@@ -3,7 +3,7 @@ import { tmpdir } from "node:os";
import { join } from "node:path";
import { Agent } from "@earendil-works/pi-agent-core";
import { type AssistantMessage, createAssistantMessageEventStream, fauxAssistantMessage } from "@earendil-works/pi-ai";
import { getModel } from "@earendil-works/pi-ai/compat";
import { getModel, streamSimple } from "@earendil-works/pi-ai/compat";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { AgentSession } from "../src/core/agent-session.ts";
import { AuthStorage } from "../src/core/auth-storage.ts";
@@ -21,10 +21,10 @@ describe("AgentSession auto-compaction queue resume", () => {
beforeEach(async () => {
tempDir = join(tmpdir(), `pi-auto-compaction-queue-${Date.now()}`);
mkdirSync(tempDir, { recursive: true });
vi.useFakeTimers();
const model = getModel("anthropic", "claude-sonnet-4-5")!;
const agent = new Agent({
streamFunction: streamSimple,
initialState: {
model,
systemPrompt: "Test",
@@ -50,7 +50,6 @@ describe("AgentSession auto-compaction queue resume", () => {
afterEach(() => {
session.dispose();
vi.useRealTimers();
vi.restoreAllMocks();
if (tempDir && existsSync(tempDir)) {
rmSync(tempDir, { recursive: true });
@@ -84,9 +83,9 @@ describe("AgentSession auto-compaction queue resume", () => {
timestamp: now - 500,
});
session.agent.state.messages = sessionManager.buildSessionContext().messages;
session.agent.streamFn = (summaryModel) => {
session.agent.streamFunction = (summaryModel) => {
const stream = createAssistantMessageEventStream();
queueMicrotask(() => {
void Promise.resolve().then(() => {
stream.push({
type: "done",
reason: "stop",