blob: a725297a3dcb1cb39751244b36231342d3eddc80 [file]
import type {
AccessCredentialPrincipalKind,
ClientCapabilityClientFrame,
ClientCapabilityHostFrame,
} from '../protocol/index.js';
export interface ClientCapabilityConnectionSender {
send(frame: ClientCapabilityHostFrame): Promise<void>;
}
export interface ClientCapabilityConnectionIdentity {
readonly connectionId: string;
readonly principalId: string;
readonly clientInstanceId: string;
readonly principalKind: 'local_owner' | AccessCredentialPrincipalKind;
}
export interface ClientCapabilityConnection {
accept(frame: ClientCapabilityClientFrame): void;
close(): Promise<void>;
}
/** Pure full-duplex seam kept outside the Runtime-backed execution composition. */
export interface ClientCapabilityService {
attachConnection(
identity: ClientCapabilityConnectionIdentity,
sender: ClientCapabilityConnectionSender,
): ClientCapabilityConnection;
}