UNPKG

@mesh-tech/mesh-cli

Version:

CLI for Mesh platform development utilities

52 lines (51 loc) 2.13 kB
import * as net from 'node:net'; export interface RunnerManifest { tenant: string; pid: number; pgid: number; token: string; controlPort: number; socksPort: number; ports: number[]; startedAt: string; } export interface ControlResponse { token: string; tenant: string; pid: number; socksPort: number; listening: number[]; bindErrors: Record<string, string>; } export declare function mintRunnerToken(): string; export declare function readRunnerManifest(file: string): RunnerManifest | null; export declare function writeRunnerManifest(file: string, manifest: RunnerManifest): void; export declare function clearRunnerManifest(file: string, token?: string): void; export declare function getProcessGroupId(pid: number): number | null; export declare function parseRunnerPidsFromPs(psOutput: string, tenant: string, exclude?: number): number[]; export declare function discoverRunnerPids(tenant: string, exclude?: number): number[]; export declare function startControlServer(payload: () => ControlResponse): Promise<{ server: net.Server; port: number; }>; export declare function queryControl(port: number, timeoutMs?: number): Promise<ControlResponse | null>; export interface OwnershipCheck { ok: boolean; reason: string; resp?: ControlResponse; } export declare function verifyRunnerOwnership(args: { manifest: RunnerManifest | null; expectedSocksPort: number; expectedPorts: number[]; isPidAlive?: (pid: number) => boolean; query?: (port: number) => Promise<ControlResponse | null>; }): Promise<OwnershipCheck>; export declare function pollOwnership(check: () => Promise<OwnershipCheck>, deadlineMs: number): Promise<OwnershipCheck>; export declare function describePortOwner(port: number): string | null; export interface SquattedPort { port: number; owner: string | null; } export declare function findSquattedPorts(ports: number[], accepts: (port: number) => Promise<boolean>): Promise<SquattedPort[]>; export declare function buildSquatterError(tenant: string, squatted: SquattedPort[], detail?: string): string;