export const gitZoneIdeProtocolVersion = 1; export type TRemoteProcessStatus = 'starting' | 'running' | 'stopped' | 'failed'; export interface IIdeSshTarget { id: string; label?: string; hostAlias: string; hostName?: string; user?: string; port?: number; workspacePath?: string; } export interface IRemoteServerManifest { protocolVersion: number; serverVersion: string; platform: string; arch: string; artifactName: string; sha256?: string; createdAt: string; } export interface IRemoteServerPaths { installRoot: string; versionRoot: string; currentLink: string; logsDir: string; manifestPath: string; } export interface IRemoteOpenCodeDescriptor { baseUrl: string; port: number; username: string; password: string; status: TRemoteProcessStatus; } export interface IRemoteTheiaDescriptor { baseUrl: string; localPort: number; remotePort: number; status: TRemoteProcessStatus; } export interface IRemoteSessionDescriptor { sessionId: string; target: IIdeSshTarget; workspacePath: string; serverVersion: string; createdAt: string; theia: IRemoteTheiaDescriptor; opencode?: IRemoteOpenCodeDescriptor; } export interface IRemoteProbeResult { ok: boolean; hostAlias: string; platform?: string; arch?: string; homeDir?: string; shell?: string; nodeVersion?: string; pnpmVersion?: string; gitVersion?: string; opencodeVersion?: string; errors: string[]; } export interface IPortForwardDescriptor { id: string; label?: string; localHost: string; localPort: number; remoteHost: string; remotePort: number; status: TRemoteProcessStatus; }