mirror of
https://github.com/luckyyzh/pi-agent-integrated.git
synced 2026-10-03 02:59:35 +00:00
feat: integrate Pi backend and Pi Web
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
|
||||
async function loadSubject(path) {
|
||||
try {
|
||||
const { createJiti } = await import("jiti");
|
||||
return createJiti(import.meta.url).import(path);
|
||||
} catch {
|
||||
return import(path);
|
||||
}
|
||||
}
|
||||
|
||||
const { buildModelsListUrl, parseDiscoveredModels } = await loadSubject("./model-discovery.ts");
|
||||
const { resolveModelDiscoveryAuth } = await loadSubject("./model-discovery-auth.ts");
|
||||
|
||||
test("builds protocol-appropriate model list URLs", () => {
|
||||
assert.equal(buildModelsListUrl("https://api.example.com/v1/", "openai-completions").toString(), "https://api.example.com/v1/models");
|
||||
assert.equal(buildModelsListUrl("https://api.anthropic.com", "anthropic-messages").toString(), "https://api.anthropic.com/v1/models?limit=1000");
|
||||
assert.equal(buildModelsListUrl("https://generativelanguage.googleapis.com", "google-generative-ai").toString(), "https://generativelanguage.googleapis.com/v1beta/models?pageSize=1000");
|
||||
assert.equal(buildModelsListUrl("https://api.example.com/custom/models", "openai-responses").toString(), "https://api.example.com/custom/models");
|
||||
});
|
||||
|
||||
test("parses OpenAI, Anthropic, Google, and string model lists", () => {
|
||||
assert.deepEqual(parseDiscoveredModels({ data: [{ id: "gpt-5" }, { id: "claude", display_name: "Claude" }] }), [
|
||||
{ id: "claude", name: "Claude" },
|
||||
{ id: "gpt-5" },
|
||||
]);
|
||||
assert.deepEqual(parseDiscoveredModels({ models: [{ name: "models/gemini-2.5-pro", displayName: "Gemini 2.5 Pro" }] }), [
|
||||
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro" },
|
||||
]);
|
||||
assert.deepEqual(parseDiscoveredModels(["zeta", "alpha", "alpha"]), [
|
||||
{ id: "alpha" },
|
||||
{ id: "zeta" },
|
||||
]);
|
||||
});
|
||||
|
||||
test("resolves environment-backed headers without an API key", async () => {
|
||||
process.env.PI_WEB_DISCOVERY_TEST_TOKEN = "resolved-token";
|
||||
try {
|
||||
const auth = await resolveModelDiscoveryAuth("pi-web-header-only-test", {
|
||||
baseUrl: "https://example.invalid/v1",
|
||||
api: "openai-completions",
|
||||
headers: { "X-Discovery-Token": "$PI_WEB_DISCOVERY_TEST_TOKEN" },
|
||||
});
|
||||
assert.equal(auth.apiKey, undefined);
|
||||
assert.deepEqual(auth.headers, { "X-Discovery-Token": "resolved-token" });
|
||||
} finally {
|
||||
delete process.env.PI_WEB_DISCOVERY_TEST_TOKEN;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user