chore(vendor): import pi 1.3.0

Imported as a linear vendor commit so forge rebases do not replay the upstream root tree.

git-subtree-dir: third_party/pi

git-subtree-split: 71023aec1546d6d677a65669c5665c0927ce0dd0
This commit is contained in:
2026-10-15 17:58:48 -04:00
parent 719370c8f7
commit 6081e3e325
1743 changed files with 205460 additions and 131705 deletions

View File

@@ -1,5 +1,12 @@
import type { AgentTool, ThinkingLevel } from "@earendil-works/pi-agent-core";
import { fauxAssistantMessage, fauxToolCall, type Model, type Usage } from "@earendil-works/pi-ai";
import {
fauxAssistantMessage,
fauxToolCall,
getCurrentSystemPrompt,
type JsonObject,
type Model,
type Usage,
} from "@earendil-works/pi-ai";
import { Type } from "typebox";
import { afterEach, describe, expect, it } from "vitest";
import type { BuildSystemPromptOptions, ExtensionAPI } from "../../src/index.ts";
@@ -339,7 +346,12 @@ describe("AgentSession model and extension characterization", () => {
expect(getAssistantTexts(harness)).toContain("patched result");
const toolResult = harness.session.messages.find(
(message) => message.role === "toolResult" && message.details?.patched === true,
(message) =>
message.role === "toolResult" &&
typeof message.details === "object" &&
message.details !== null &&
!Array.isArray(message.details) &&
(message.details as JsonObject).patched === true,
);
expect(observedToolUsage).toEqual(toolUsage);
expect(toolResult).toBeDefined();
@@ -474,7 +486,7 @@ describe("AgentSession model and extension characterization", () => {
let sawInjectedUserMessage = false;
harness.setResponses([
(context) => {
providerSystemPrompt = context.systemPrompt ?? "";
providerSystemPrompt = getCurrentSystemPrompt(context.messages);
sawInjectedUserMessage = context.messages.some(
(message) =>
message.role === "user" &&