Complete platform management workflows
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -8,6 +8,7 @@ import type {
|
||||
|
||||
export type ServerWorkflowViewState = "api" | "local" | "saving";
|
||||
export type ServerLifecycleActionLabel = "create" | "start" | "stop" | "refresh";
|
||||
export type ServerRemovalAction = "archive";
|
||||
|
||||
export interface ServerCreateFormState {
|
||||
id: string;
|
||||
@@ -23,6 +24,17 @@ export interface ServerWorkflowActionState {
|
||||
message: string;
|
||||
}
|
||||
|
||||
export interface ServerMetadataFormState {
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface ServerRemovalConfirmationState {
|
||||
action: ServerRemovalAction;
|
||||
serverInstanceId: string;
|
||||
name: string;
|
||||
state: ServerInstanceState;
|
||||
}
|
||||
|
||||
export interface ServerManagementSummary {
|
||||
total: number;
|
||||
running: number;
|
||||
@@ -83,3 +95,11 @@ export function defaultServerCreateForm(plugins: GamePluginResponse[], endpoints
|
||||
runEndpointId: endpoints[0]?.id ?? ""
|
||||
};
|
||||
}
|
||||
|
||||
export function serverMetadataFormFromInstance(instance: ServerInstanceResponse): ServerMetadataFormState {
|
||||
return { name: instance.name };
|
||||
}
|
||||
|
||||
export function canArchiveServer(state: ServerInstanceState): boolean {
|
||||
return state !== "running" && state !== "installing" && state !== "deleted";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import type { UserResponse, UserStatus } from "../api/types";
|
||||
|
||||
export type UserListSource = "api" | "local-development";
|
||||
export type UserRemovalAction = "deactivate";
|
||||
|
||||
export interface UserEditFormState {
|
||||
displayName: string;
|
||||
email: string;
|
||||
phone: string;
|
||||
qq: string;
|
||||
contactNote: string;
|
||||
roles: string[];
|
||||
status: UserStatus;
|
||||
}
|
||||
|
||||
export interface UserRemovalConfirmationState {
|
||||
action: UserRemovalAction;
|
||||
user: UserResponse;
|
||||
}
|
||||
|
||||
export function userEditFormFromResponse(user: UserResponse): UserEditFormState {
|
||||
return {
|
||||
displayName: user.displayName,
|
||||
email: user.email ?? "",
|
||||
phone: user.profile?.phone ?? "",
|
||||
qq: user.profile?.qq ?? "",
|
||||
contactNote: user.profile?.contactNote ?? "",
|
||||
roles: [...user.roles],
|
||||
status: user.status
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user