feat: rebuild xiteng.site homelab platform

This commit is contained in:
2026-08-12 09:48:25 +08:00
parent 557b0eca33
commit 5b84988789
128 changed files with 14979 additions and 292 deletions
+64
View File
@@ -0,0 +1,64 @@
import {describe, expect, test} from "bun:test";
import {generationCallOptions, normalizeGenerationSettings} from "./generation-settings.ts";
function provider(api) {
return {
id: api,
name: api,
api,
connection: {type: "backend", baseUrl: "https://example.com/v1", proxy: null},
auth: {type: "bearer"},
headers: {},
defaultModel: "test-model",
discovery: {type: "openai-models-list", url: "https://example.com/v1/models"},
builtin: false,
credentialState: "configured",
credentials: []
};
}
describe("generation settings", () => {
test("normalizes user-controlled values", () => {
expect(normalizeGenerationSettings({reasoning: "high", showReasoningSummary: true, temperature: 5, maxOutputTokens: 12.8})).toEqual({
reasoning: "high",
showReasoningSummary: true,
temperature: 2,
maxOutputTokens: 12
});
});
test("maps OpenAI reasoning and summary", () => {
expect(generationCallOptions(provider("openai-responses"), {
reasoning: "high",
showReasoningSummary: true,
temperature: null,
maxOutputTokens: 4096
})).toEqual({
reasoning: "high",
maxOutputTokens: 4096,
providerOptions: {openai: {reasoningSummary: "auto"}}
});
});
test("maps Anthropic adaptive thinking", () => {
expect(generationCallOptions(provider("anthropic-messages"), {
reasoning: "medium",
showReasoningSummary: true,
temperature: 0.4,
maxOutputTokens: null
})).toEqual({
reasoning: "medium",
temperature: 0.4,
providerOptions: {anthropic: {thinking: {type: "adaptive", display: "summarized"}}}
});
});
test("keeps auto mode provider-default", () => {
expect(generationCallOptions(provider("openai-completions"), {
reasoning: "auto",
showReasoningSummary: false,
temperature: null,
maxOutputTokens: null
})).toEqual({});
});
});