Files
browser/platform_web/schemas/aiProviders.ts
T
2026-07-15 19:43:06 +08:00

35 lines
1.1 KiB
TypeScript

import type { AiProviderRequest, AiProviderStatusRequest, AiProviderUpdateRequest } from "../api/types";
import { completeAiProviderForm, type AiProviderFormState } from "../contracts/aiProviders";
export function aiProviderCreateRequestFromForm(form: AiProviderFormState): AiProviderRequest {
const completed = completeAiProviderForm(form);
return {
id: completed.id,
...aiProviderUpdateRequestFromForm(completed)
};
}
export function aiProviderUpdateRequestFromForm(form: AiProviderFormState): AiProviderUpdateRequest {
const completed = completeAiProviderForm(form);
const models = completed.modelsText
.split(",")
.map((model) => model.trim())
.filter(Boolean);
return {
name: completed.name,
kind: completed.kind,
baseUrl: completed.baseUrl,
apiKeyRef: completed.apiKeyRef,
models,
defaultModel: completed.defaultModel || models[0],
relayMode: completed.relayMode,
timeoutMs: Number.parseInt(completed.timeoutMs, 10),
redactionPolicy: completed.redactionPolicy
};
}
export function aiProviderRetireRequest(): AiProviderStatusRequest {
return { status: "disabled" };
}