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

# openvibe-sdk/agents/dispatch · OpenVibe.Services

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

# `openvibe-sdk/agents/dispatch`

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/agents-dispatch.d.ts` (both). Declarations are shown verbatim.

## type Rung

~~~~
export type Rung = 'machine' | 'plan' | 'key' | 'allowance' | 'credits';
~~~~

## type Tier

~~~~
export type Tier = 'small' | 'medium' | 'strong';
~~~~

## interface Choice

~~~~
export interface Choice {
    id: string;
    name?: string;
    rung?: Rung;
    family?: string;
    tier?: Tier;
    caps?: string[];
    context?: number;
    speed?: number;
    price?: { in?: number; out?: number };
    available?: boolean;
}
~~~~

## interface Need

~~~~
export interface Need { caps?: string[]; context?: number; speed?: number; tier?: Tier; }
~~~~

## interface LadderOptions

~~~~
export interface LadderOptions { need?: Need; pin?: string | null; avoid?: string[]; budgetLeft?: number | null; tokens?: { tokensIn?: number; tokensOut?: number }; }
~~~~

## type Ladder

~~~~
export type Ladder = Array<Choice & { why: string }> & { skipped: Array<{ choice: Choice; why: string; pinned?: boolean }> };
~~~~

## export export function ladder(choices: Choice\[\], options?: LadderOp

~~~~
export function ladder(choices: Choice[], options?: LadderOptions): Ladder;
~~~~

## export export function pick(choices: Choice\[\], options?: LadderOpti

~~~~
export function pick(choices: Choice[], options?: LadderOptions): { choice: (Choice & { why: string }) | null; why: string; passedOver: { id: string; why: string } | null; skipped: Ladder['skipped'] };
~~~~

## interface Evidence

~~~~
export interface Evidence { kind: 'test' | 'schema' | 'tool' | 'grader' | 'unsure'; detail?: string; }
~~~~

## export export function escalate(current: Choice, evidence: Evidence

~~~~
export function escalate(current: Choice, evidence: Evidence | null, choices: Choice[], options?: { need?: Need; tried?: string[]; budgetLeft?: number | null }): { choice: Choice & { why: string }; why: string } | null;
~~~~

## interface Harness

~~~~
export interface Harness { id: string; caps?: string[]; plan?: string; }
~~~~

## export export function harnessFor(task: { needs?: string\[\] }, harne

~~~~
export function harnessFor(task: { needs?: string[] }, harnesses: Harness[], options?: { plans?: string[] }): { harness: Harness; why: string } | null;
~~~~

## interface Machine

~~~~
export interface Machine { id: string; name?: string; online?: boolean; allows?: string[]; repos?: string[]; }
~~~~

## interface Where

~~~~
export interface Where { kind: 'openvibe' | 'machine' | 'runner' | 'this-computer'; id?: string; name?: string; }
~~~~

## export export function placeFor(run: { target?: unknown; needs?: st

~~~~
export function placeFor(run: { target?: unknown; needs?: string[]; robot?: string; untrusted?: boolean; heavy?: boolean }, options?: { machines?: Machine[]; cloud?: boolean }): { where: Where; why: string } | null;
~~~~

## export export function estimate(choice: Choice, tokens?: { tokensIn

~~~~
export function estimate(choice: Choice, tokens?: { tokensIn?: number; tokensOut?: number }): number;
~~~~

## export export function slice(parent: { usd?: number; tokens?: numbe

~~~~
export function slice(parent: { usd?: number; tokens?: number; seconds?: number; steps?: number } | null, share: number): { usd?: number; tokens?: number; seconds?: number; steps?: number };
~~~~

## export export function cannot(choice: Choice, need?: Need): string

~~~~
export function cannot(choice: Choice, need?: Need): string | null;
~~~~

## export export const RUNGS: Rung\[\];

~~~~
export const RUNGS: Rung[];
~~~~

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

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

## export export const EVIDENCE: Array<Evidence\['kind'\]>;

~~~~
export const EVIDENCE: Array<Evidence['kind']>;
~~~~
