feat(plugin): add typed RPC wrappers for Python backend

This commit is contained in:
2026-06-28 07:56:26 +08:00
parent ab6a91e13f
commit 026bd299ca
+76
View File
@@ -0,0 +1,76 @@
import { callable } from "@decky/api"
// ── Settings ────────────────────────────────────────────────────
export const getSettings = callable<[], Record<string, unknown>>("get_settings")
export const setSetting = callable<[key: string, value: unknown], Record<string, unknown>>("set_setting")
// ── MangoHud ────────────────────────────────────────────────────
export const checkMangohud = callable<[], {
installed: boolean
path: string
version: string
error?: string
}>("check_mangohud")
export const writeMangohudConfig = callable<[], {
success: boolean
path: string
error?: string
}>("write_mangohud_config")
export const getMangohudConfig = callable<[], {
exists: boolean
content: string
path: string
}>("get_mangohud_config")
export const readAndParseMangohudLog = callable<[logPath?: string], {
fpsAvg?: number
fpsLow?: number
fpsHigh?: number
fpsOnePercentLow?: number | null
tdpWatts?: number | null
error?: string
}>("read_and_parse_mangohud_log")
export const clearMangohudLog = callable<[logPath?: string], {
success: boolean
error?: string
}>("clear_mangohud_log")
// ── System Info ─────────────────────────────────────────────────
export const getHardwareInfo = callable<[], {
slug: string
name: string
raw: string
}>("get_hardware_info")
export const getOsVersion = callable<[], string>("get_os_version")
export const getProtonVersion = callable<[appId: number], string>("get_proton_version")
export const getLaunchOptions = callable<[appId: number], string>("get_launch_options")
// ── Export ──────────────────────────────────────────────────────
export const exportToFile = callable<[data: Record<string, unknown>, exportPath: string], {
success: boolean
path: string
error?: string
}>("export_to_file")
// ── Upload ──────────────────────────────────────────────────────
export const uploadToDeckyvault = callable<[
data: Record<string, unknown>,
apiKey: string,
baseUrl?: string
], {
success: boolean
data?: { id: string; gameId: string; versionId: string; createdAt: string; authMethod: string }
error?: string
status?: number
}>("upload_to_deckyvault")
export const testApiKey = callable<[apiKey: string, baseUrl?: string], {
valid: boolean
error?: string
}>("test_api_key")