/** * OpenKernel — Agent Backend registry + built-in CLI specs * * Holds the executors a node can route a task to. 'kernel' (the native path) is * always present and handled inline by the Federation manager; the CLI backends * are advertised only when their binary is actually installed, so the mesh's * compute-router won't send a `claude` task to a node without Claude Code. * * Each CLI is invoked in headless / non-interactive mode. Flags are the stable * public ones for each tool; a device can override the binary or append args via * env (INFINICODE__BIN / INFINICODE__ARGS) without a code change. */ import type { AgentBackend, BackendId } from './types.js'; import { type CliBackendSpec } from './cli-backend.js'; declare const CLAUDE_SPEC: CliBackendSpec; declare const OPENCODE_SPEC: CliBackendSpec; declare const CODEX_SPEC: CliBackendSpec; declare const GEMINI_SPEC: CliBackendSpec; export declare class AgentBackendRegistry { private map; register(backend: AgentBackend): this; get(id: BackendId): AgentBackend | undefined; /** True if this node can run `id` (the native kernel, or an installed CLI). */ has(id: BackendId): boolean; all(): AgentBackend[]; /** Backend ids runnable here — 'kernel' plus every installed CLI. */ availableIds(): BackendId[]; } /** Registry seeded with the built-in CLI backends (availability checked lazily). */ export declare function createDefaultBackendRegistry(): AgentBackendRegistry; export { CLAUDE_SPEC, OPENCODE_SPEC, CODEX_SPEC, GEMINI_SPEC };