fix: align pi model discovery with auth storage

This commit is contained in:
Peter Steinberger
2025-12-26 11:49:13 +01:00
parent d31c5d7a2c
commit 82ced33747
6 changed files with 90 additions and 63 deletions

View File

@@ -1,6 +1,5 @@
import { describe, expect, it, vi } from "vitest";
import type { AssistantMessage } from "@mariozechner/pi-ai";
import { describe, expect, it, vi } from "vitest";
import { subscribeEmbeddedPiSession } from "./pi-embedded-subscribe.js";
@@ -8,6 +7,8 @@ type StubSession = {
subscribe: (fn: (evt: unknown) => void) => () => void;
};
type SessionEventHandler = (evt: unknown) => void;
describe("subscribeEmbeddedPiSession", () => {
it("filters to <final> and falls back when tags are malformed", () => {
let handler: ((evt: unknown) => void) | undefined;
@@ -97,16 +98,16 @@ describe("subscribeEmbeddedPiSession", () => {
});
it("waits for auto-compaction retry and clears buffered text", async () => {
const listeners: Array<(evt: any) => void> = [];
const listeners: SessionEventHandler[] = [];
const session = {
subscribe: (listener: (evt: any) => void) => {
subscribe: (listener: SessionEventHandler) => {
listeners.push(listener);
return () => {
const index = listeners.indexOf(listener);
if (index !== -1) listeners.splice(index, 1);
};
},
} as any;
} as unknown as Parameters<typeof subscribeEmbeddedPiSession>[0]["session"];
const subscription = subscribeEmbeddedPiSession({
session,
@@ -150,13 +151,13 @@ describe("subscribeEmbeddedPiSession", () => {
});
it("resolves after compaction ends without retry", async () => {
const listeners: Array<(evt: any) => void> = [];
const listeners: SessionEventHandler[] = [];
const session = {
subscribe: (listener: (evt: any) => void) => {
subscribe: (listener: SessionEventHandler) => {
listeners.push(listener);
return () => {};
},
} as any;
} as unknown as Parameters<typeof subscribeEmbeddedPiSession>[0]["session"];
const subscription = subscribeEmbeddedPiSession({
session,
@@ -184,13 +185,13 @@ describe("subscribeEmbeddedPiSession", () => {
});
it("waits for multiple compaction retries before resolving", async () => {
const listeners: Array<(evt: any) => void> = [];
const listeners: SessionEventHandler[] = [];
const session = {
subscribe: (listener: (evt: any) => void) => {
subscribe: (listener: SessionEventHandler) => {
listeners.push(listener);
return () => {};
},
} as any;
} as unknown as Parameters<typeof subscribeEmbeddedPiSession>[0]["session"];
const subscription = subscribeEmbeddedPiSession({
session,