Complete platform management workflows

This commit is contained in:
npc0-hue
2026-07-14 16:39:37 +08:00
parent 7e05d0a4e7
commit 4f33f761a3
106 changed files with 11313 additions and 460 deletions
+19 -6
View File
@@ -1,7 +1,8 @@
import type { AiProviderKind, AiProviderResponse, AiProviderStatus, AiRelayMode } from "../api/types";
export type AiProviderFilter = AiProviderStatus | "all";
export type AiProviderViewState = "api" | "local" | "saving" | "error";
export type AiProviderListState = "loading" | "ready" | "error";
export type AiProviderViewState = "api" | "local-development" | "saving" | "error";
export interface AiProviderFormState {
id: string;
@@ -30,22 +31,34 @@ export interface AiProviderActionState {
message: string;
}
export interface AiProviderPageInitialState {
providers?: AiProviderResponse[];
selectedId?: string;
listState?: AiProviderListState;
listError?: string;
source?: AiProviderViewState;
action?: AiProviderActionState | null;
}
export function emptyAiProviderForm(): AiProviderFormState {
return {
id: "",
name: "",
kind: "openai-compatible",
baseUrl: "https://api.example.test/v1",
baseUrl: "",
apiKeyRef: "secret://providers/",
modelsText: "gpt-4.1-mini",
defaultModel: "gpt-4.1-mini",
relayMode: "direct",
modelsText: "",
defaultModel: "",
relayMode: "relay",
timeoutMs: "30000",
redactionPolicy: "default"
};
}
export function aiProviderToForm(provider: AiProviderResponse): AiProviderFormState {
export function aiProviderToForm(provider?: AiProviderResponse): AiProviderFormState {
if (!provider) {
return emptyAiProviderForm();
}
return {
id: provider.id,
name: provider.name,