/** * OpenKernel — Compute Router (cross-device) * * Given a task's capability needs, rank connected peers by how well they fit: * capability coverage, live load (from telemetry), and latency. This is the * east-west analog of the in-process CapabilityRouter — it decides WHICH DEVICE * runs a task, not which model. */ import type { Capability } from '../types.js'; import type { PeerInfo } from './types.js'; export interface ComputeCandidate { peer: PeerInfo; score: number; reason: string; } export interface ComputeNeed { capabilities: Capability[]; /** Prefer a specific device if named (e.g. "robopanda"). */ preferNodeId?: string; preferName?: string; } export declare class ComputeRouter { /** Rank connected peers for a task. Best first. */ rank(peers: PeerInfo[], need: ComputeNeed): ComputeCandidate[]; best(peers: PeerInfo[], need: ComputeNeed): PeerInfo | null; private coverage; }