import type { AdapterImplementation, AdapterRequest, AdapterResponse } from "../protocol/types.js"; export interface RuntimeAdapterProcess { request(request: AdapterRequest, timeoutMs: number): Promise; restart?(): Promise; close(): Promise; } export interface AvailableRuntimeAdapter { readonly id: string; readonly availability: "available"; readonly process: RuntimeAdapterProcess; readonly timeoutMs: number; readonly expected: Pick & Required> & Partial>; } export interface UnsupportedRuntimeAdapter { readonly id: string; readonly availability: "unsupported"; readonly reason: string; } export type RuntimeAdapter = AvailableRuntimeAdapter | UnsupportedRuntimeAdapter; export interface RuntimeProvider { readonly runtime: string; adapters(): Promise; close(): Promise; }