---
title: "openvibe-sdk/compute · OpenVibe.Services"
canonical: "https://openvibe.services/docs/sdk/compute"
updated: null
---

# openvibe-sdk/compute · OpenVibe.Services

HTML: [openvibe-sdk/compute · OpenVibe.Services](https://openvibe.services/docs/sdk/compute)

# `openvibe-sdk/compute`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

From `types/compute.d.ts` (server only). Declarations are shown verbatim.

## type Strategy

~~~~
export type Strategy = 'automatic' | 'cheapest' | 'fastest' | 'private' | 'own';
~~~~

## type Tier

~~~~
export type Tier = 'own' | 'home' | 'dedicated' | 'community' | 'partner';
~~~~

## interface Machine

~~~~
export interface Machine { id: string; tier: Tier; owner?: string; health: string; draining?: boolean; region: string; hourly: number | null; currency: string; free_ram_mb: number; free_slots: number; gpu_mb?: number; latency_ms?: number; queue_ms?: number; sessions?: number; state?: string; managed?: boolean; idle_since?: number; egress?: string }
~~~~

## interface Request

~~~~
export interface Request { strategy?: Strategy; owner?: string; kind?: string; ram_mb?: number; gpu_mb?: number; region?: string; machine?: string; public_egress?: boolean; max_hourly?: number }
~~~~

## interface Pool

~~~~
export interface Pool { strategy?: Strategy; currency?: string; kind?: string; target_wait_ms?: number; max_hourly?: number; min_gain?: number; measured_peak_ram_mb?: number; min_warm?: number; max_machines?: number; slots_per_machine?: number; idle_grace_ms?: number }
~~~~

## interface Decision

~~~~
export interface Decision { strategy: Strategy; selected: string | null; tier: Tier | null; hourly: number | null; currency: string; reasons: string[]; rejected: Array<{id: string; reason: string}>; switched: boolean; decided_at: string }
~~~~

## export export function choose(request: Request, machines: Machine\[\]

~~~~
export function choose(request: Request, machines: Machine[], pool?: Pool, context?: {now?: number; current?: string | null}): Decision;
~~~~

## export export function scale(pool: Pool, machines: Machine\[\], waiti

~~~~
export function scale(pool: Pool, machines: Machine[], waiting: Array<{created_at: number}>, context?: {now?: number}): {actions: Array<{action: string; id?: string; reason: string}>; ram_per_session_mb: number; waiting: number; overdue: number; free_slots: number};
~~~~

## export export function micros(value: string | number): bigint;

~~~~
export function micros(value: string | number): bigint;
~~~~

## export export function charge(hourlyMicros: bigint | string, millis

~~~~
export function charge(hourlyMicros: bigint | string, milliseconds: number, quantumSeconds?: number): bigint;
~~~~

## interface Quote

~~~~
export interface Quote { provider: string; id: string; region: string; hourly: number | null; currency: string; ram_mb: number; gpu_mb: number; setup: number; billing_seconds: number; tier: Tier; quoted_at: number; expires_at: number; provisionable?: boolean; reason?: string }
~~~~

## interface Provider

~~~~
export interface Provider {id: string; configured: boolean; quote(request?: {gpu_mb?: number}): Promise<Quote[]>; provision(quote: Quote, spec: {label: string; image: string; command?: string[]; disk_gb?: number}): Promise<{id: string}>; health(id: string): Promise<{state?: string; deleted?: boolean}>; release(id: string): Promise<void>}
~~~~

## export export function createProviders(options?: {fetch?: typeof fe

~~~~
export function createProviders(options?: {fetch?: typeof fetch; config?: Record<string, {key?: string; application_secret?: string; consumer_key?: string; project?: string}>; now?: () => number}): Record<string, Provider>;
~~~~

## export export const STRATEGIES: Strategy\[\];

~~~~
export const STRATEGIES: Strategy[];
~~~~

## export export const TIERS: Tier\[\];

~~~~
export const TIERS: Tier[];
~~~~
