import type { InstanceExperimentalSettings, InstanceGeneralSettings, InstanceSettings, IssueGraphLivenessAutoRecoveryPreview, PatchInstanceSettings, PatchInstanceGeneralSettings, PatchInstanceExperimentalSettings, } from "@paperclipai/shared"; import { api } from "./client"; export const instanceSettingsApi = { get: () => api.get("/instance/settings"), update: (patch: PatchInstanceSettings) => api.patch("/instance/settings", patch), getGeneral: () => api.get("/instance/settings/general"), updateGeneral: (patch: PatchInstanceGeneralSettings) => api.patch("/instance/settings/general", patch), getExperimental: () => api.get("/instance/settings/experimental"), updateExperimental: (patch: PatchInstanceExperimentalSettings) => api.patch("/instance/settings/experimental", patch), previewIssueGraphLivenessAutoRecovery: (input: { lookbackHours?: number }) => api.post( "/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, ), };