/** * host domain contract. No protocol version: client and host ship * together; introduce protocolVersion only when an independently released client appears. */ import type { RpcRequest, RpcResponse } from './rpc.ts' /** Host-level unary methods. */ export interface HostApi { /** * One-shot host snapshot. Empty payload uses the literal `{}` (extend in place when fields arrive). * version = the host app's (apps/cli) package.json version; cwd = the host process working * directory (root for session persistence and tool execution); provider/model = the defaults * applied when a new agent doesn't specify them explicitly, absent when the host configures * no explicit default (the adapter falls back internally); * attachedSessions = count of currently attached sessions (those with a live agent). */ describe(request: RpcRequest<{}>): Promise> /** Open the operating system's single-directory picker; cancellation returns null. */ pickDirectory( request: RpcRequest<{}>, signal: AbortSignal, ): Promise> /** * Open a filesystem path with the operating system's default application * (Finder / Explorer / xdg-open hand-off). The browser carrier restricts this * privileged method to loopback, same-origin requests. */ openPath( request: RpcRequest<{ path: string }>, signal: AbortSignal, ): Promise> }