//#region extensions/crypto/src/services/fly-control-service.d.ts /** * Fly Control Service — Manages the Fly.io deployment from within the bot. * * Uses the Fly Machines REST API (https://api.machines.dev) to: * - List/set/delete app-level secrets * - Get machine status * - Restart the machine * * Auth: FLY_API_TOKEN env var (set as a Fly secret itself). * App name: FLY_APP_NAME env var (or auto-detected from FLY_APP_NAME on Fly). * * SECURITY: All callers must be authenticated (requireAuth on commands). * Secret values are write-only — Fly's API never returns plaintext values. */ declare function isFlyControlAvailable(): boolean; declare class FlyControlError extends Error { statusCode?: number | undefined; constructor(message: string, statusCode?: number | undefined); } declare class FlyNotConfiguredError extends FlyControlError { constructor(); } interface FlySecret { name: string; digest: string; createdAt: string; version?: number; } /** List all secrets (names + digests only, never plaintext values). */ declare function listSecrets(): Promise; /** * Set one or more secrets. Values are encrypted by Fly and never returned. * Returns the new secrets version number — pass this to redeployMachine() * so the machine picks up the staged secrets. */ declare function setSecrets(secrets: Record): Promise; /** Delete a single secret. */ declare function deleteSecret(name: string): Promise; interface FlyMachineStatus { id: string; name: string; state: string; region: string; instanceId: string; privateIp: string; createdAt: string; updatedAt: string; imageRef: string; cpuKind: string; cpus: number; memoryMb: number; } /** List machines for this app. */ declare function listMachines(): Promise; /** Restart a specific machine (simple restart, does NOT pick up new secrets). */ declare function restartMachine(machineId: string): Promise; /** * Update a machine in-place (GET config → POST it back) with min_secrets_version. * * The Fly Machines API stages secrets on set but does NOT deploy them until * a machine update includes `min_secrets_version` matching the staged version. * This is what `fly secrets deploy` does under the hood. * * If no secretsVersion is passed, we first query the secrets list to get the * latest version automatically. */ declare function redeployMachine(machineId: string, secretsVersion?: number): Promise; /** * Redeploy all running machines (picks up staged secrets). * Uses update with min_secrets_version (not restart) to ensure new secrets are deployed. * * @param secretsVersion - If provided, passed to redeployMachine. Otherwise auto-detected. */ declare function restartAllMachines(secretsVersion?: number): Promise; type LlmProvider = 'anthropic' | 'bankr' | 'openrouter' | 'openai'; declare function isValidProvider(p: string): p is LlmProvider; /** * Set the LLM provider secret (without restarting). * Returns the new secrets version — pass to scheduleRestart() so the * machine update includes min_secrets_version and actually deploys it. */ declare function setProvider(provider: LlmProvider): Promise; /** * Schedule a restart after a delay (default 2s). * This gives the command response time to be delivered before the process dies. * Fire-and-forget — errors are logged but don't propagate. * * @param delayMs - Delay before restart (default 2000ms) * @param secretsVersion - If provided, ensures the machine update includes * min_secrets_version so staged secrets are deployed (not just staged). */ declare function scheduleRestart(delayMs?: number, secretsVersion?: number): void; declare function getCurrentProvider(): LlmProvider; //#endregion export { FlyControlError, FlyMachineStatus, FlyNotConfiguredError, FlySecret, LlmProvider, deleteSecret, getCurrentProvider, isFlyControlAvailable, isValidProvider, listMachines, listSecrets, redeployMachine, restartAllMachines, restartMachine, scheduleRestart, setProvider, setSecrets }; //# sourceMappingURL=fly-control-service.d.mts.map