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:
1 parent
719370c8f7
commit
6081e3e325
1743 files changed
+205459
-131704
No files matched your search
@@ -1,6 +1,6 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { stream as streamOpenAICompletions } from "../src/api/openai-completions.ts";
|
||||
import { getModel } from "../src/compat.ts";
|
||||
import { getModel, normalizeContext } from "../src/compat.ts";
|
||||
import type { Model } from "../src/types.ts";
|
||||
|
||||
interface FakeOpenAIClientOptions {
|
||||
@@ -99,10 +99,10 @@ describe("openai-completions prompt caching", () => {
|
||||
) {
|
||||
await streamOpenAICompletions(
|
||||
model,
|
||||
{
|
||||
normalizeContext({
|
||||
systemPrompt: "sys",
|
||||
messages: [{ role: "user", content: "hi", timestamp: Date.now() }],
|
||||
},
|
||||
}),
|
||||
{ apiKey: "test-key", ...options },
|
||||
).result();
|
||||
|
||||
@@ -171,7 +171,7 @@ describe("openai-completions prompt caching", () => {
|
||||
expect(headers["x-session-affinity"]).toBe("session-affinity");
|
||||
});
|
||||
|
||||
it.each(["accounts/fireworks/models/glm-5p2", "accounts/fireworks/routers/glm-5p2-fast"] as const)(
|
||||
it.each(["accounts/fireworks/models/glm-5p3", "accounts/fireworks/routers/glm-5p3-fast"] as const)(
|
||||
"sends Fireworks session affinity for %s",
|
||||
async (modelId) => {
|
||||
const model = getModel("fireworks", modelId);
|
||||
@@ -181,6 +181,14 @@ describe("openai-completions prompt caching", () => {
|
||||
},
|
||||
);
|
||||
|
||||
it("sends Baseten session affinity for built-in catalog models", async () => {
|
||||
const model = getModel("baseten", "zai-org/GLM-5.2");
|
||||
const { headers } = await captureRequest({ sessionId: "baseten-catalog-session" }, model);
|
||||
|
||||
expect(headers["x-session-affinity"]).toBe("baseten-catalog-session");
|
||||
expect(headers["x-client-request-id"]).toBe("baseten-catalog-session");
|
||||
});
|
||||
|
||||
it("uses OpenAI no-session format when configured", async () => {
|
||||
const model = createModel({
|
||||
compat: { sendSessionAffinityHeaders: true, sessionAffinityFormat: "openai-nosession" },
|
||||
@@ -210,12 +218,8 @@ describe("openai-completions prompt caching", () => {
|
||||
expect(headers["x-session-affinity"]).toBeUndefined();
|
||||
});
|
||||
|
||||
it("auto-detects OpenRouter session-affinity header for OpenRouter endpoints", async () => {
|
||||
const model = createModel({
|
||||
provider: "openrouter",
|
||||
baseUrl: "https://openrouter.ai/api/v1",
|
||||
compat: { sendSessionAffinityHeaders: true },
|
||||
});
|
||||
it("sends OpenRouter session-affinity header by default for built-in OpenRouter models", async () => {
|
||||
const model = getModel("openrouter", "auto");
|
||||
const { payload, headers } = await captureRequest({ sessionId: "session-openrouter" }, model);
|
||||
|
||||
expect(payload?.session_id).toBeUndefined();
|
||||
@@ -230,6 +234,7 @@ describe("openai-completions prompt caching", () => {
|
||||
const model = createModel({
|
||||
provider: "openrouter",
|
||||
baseUrl: "https://openrouter.ai/api/v1",
|
||||
compat: { sendSessionAffinityHeaders: false },
|
||||
});
|
||||
const { payload, headers } = await captureRequest({ sessionId: "session-openrouter" }, model);
|
||||
|
||||
|
||||
Reference in new issue
Block a user