Files
PaperClipAI/ui/src/api/instanceSettings.ts
T

58 lines
2.2 KiB
TypeScript

import type {
InstanceExperimentalSettings,
InstanceGeneralSettings,
InstanceSettings,
IssueGraphLivenessAutoRecoveryPreview,
PatchInstanceSettings,
PatchInstanceGeneralSettings,
PatchInstanceExperimentalSettings,
} from "@paperclipai/shared";
import { api } from "./client";
export const instanceSettingsApi = {
get: () =>
api.get<InstanceSettings>("/instance/settings"),
update: (patch: PatchInstanceSettings) =>
api.patch<InstanceSettings>("/instance/settings", patch),
getGeneral: () =>
api.get<InstanceGeneralSettings>("/instance/settings/general"),
updateGeneral: (patch: PatchInstanceGeneralSettings) =>
api.patch<InstanceGeneralSettings>("/instance/settings/general", patch),
getExperimental: () =>
api.get<InstanceExperimentalSettings>("/instance/settings/experimental"),
updateExperimental: (patch: PatchInstanceExperimentalSettings) =>
api.patch<InstanceExperimentalSettings>("/instance/settings/experimental", patch),
previewIssueGraphLivenessAutoRecovery: (input: { lookbackHours?: number }) =>
api.post<IssueGraphLivenessAutoRecoveryPreview>(
"/instance/settings/experimental/issue-graph-liveness-auto-recovery/preview",
input,
),
runIssueGraphLivenessAutoRecovery: (input: { lookbackHours?: number }) =>
api.post<{
findings: number;
autoRecoveryEnabled: boolean;
lookbackHours: number;
cutoff: string;
escalationsCreated: number;
existingEscalations: number;
skipped: number;
skippedAutoRecoveryDisabled: number;
skippedOutsideLookback: number;
dependencyWakeBackstopChecked: number;
dependencyWakesHealed: number;
dependencyWakeExistingSkipped: number;
dependencyWakeLivePathSkipped: number;
dependencyWakeInteractionSkipped: number;
dependencyWakePauseHoldSkipped: number;
dependencyWakeNotReadySkipped: number;
dependencyWakeCandidateLimitSkipped: number;
dependencyWakeDeferredOrFailed: number;
dependencyWakeEnqueueFailed: number;
dependencyWakeIssueIds: string[];
escalationIssueIds: string[];
}>(
"/instance/settings/experimental/issue-graph-liveness-auto-recovery/run",
input,
),
};