context-forge
Version:
AI orchestration platform with autonomous teams, enhancement planning, migration tools, 25+ slash commands, checkpoints & hooks. Multi-IDE: Claude, Cursor, Windsurf, Cline, Copilot
111 lines • 3.28 kB
TypeScript
import { TmuxWindowConfig, AgentSession } from '../types/orchestration';
export interface TmuxWindow {
sessionName: string;
windowIndex: number;
windowName: string;
active: boolean;
paneCount?: number;
}
export interface TmuxSession {
name: string;
windows: TmuxWindow[];
attached: boolean;
created?: Date;
}
export declare class TmuxManager {
private maxLinesCapture;
private safetyMode;
/**
* Check if tmux is installed and available
*/
checkTmuxAvailable(): Promise<boolean>;
/**
* Get all tmux sessions
*/
getSessions(): Promise<TmuxSession[]>;
/**
* Get windows for a specific session
*/
getSessionWindows(sessionName: string): Promise<TmuxWindow[]>;
/**
* Create a new tmux session
*/
createSession(sessionName: string, workingDirectory?: string): Promise<void>;
/**
* Create a new window in a session
*/
createWindow(config: TmuxWindowConfig): Promise<void>;
/**
* Rename a window
*/
renameWindow(sessionName: string, windowIndex: number, newName: string): Promise<void>;
/**
* Send keys to a window
*/
sendKeys(sessionName: string, windowIndex: number, keys: string): Promise<void>;
/**
* Send a command to a window (adds Enter automatically)
*/
sendCommand(sessionName: string, windowIndex: number, command: string): Promise<void>;
/**
* Send a message to a Claude agent window
* Uses proper timing to ensure Claude receives the message
*/
sendClaudeMessage(sessionName: string, windowIndex: number, message: string): Promise<void>;
/**
* Capture window content
*/
captureWindowContent(sessionName: string, windowIndex: number, lines?: number): Promise<string>;
/**
* Get window information
*/
getWindowInfo(sessionName: string, windowIndex: number): Promise<any>;
/**
* Check if a session exists
*/
sessionExists(sessionName: string): Promise<boolean>;
/**
* Kill a window
*/
killWindow(sessionName: string, windowIndex: number): Promise<void>;
/**
* Kill a session
*/
killSession(sessionName: string): Promise<void>;
/**
* Find windows by name pattern
*/
findWindowsByName(pattern: string): Promise<Array<{
session: string;
window: number;
name: string;
}>>;
/**
* Create a monitoring snapshot for all sessions
*/
createMonitoringSnapshot(): Promise<string>;
/**
* Wait for a window to contain specific text
*/
waitForText(sessionName: string, windowIndex: number, text: string, timeout?: number): Promise<boolean>;
/**
* Get the last window index for a session
*/
private getLastWindowIndex;
/**
* Move a window to a new index
*/
private moveWindow;
/**
* Execute a shell command and return the result
*/
executeShellCommand(command: string, cwd?: string): Promise<{
stdout: string;
stderr: string;
}>;
/**
* Convert AgentSession to TmuxWindowConfig
*/
agentSessionToWindowConfig(session: AgentSession, workingDirectory: string): TmuxWindowConfig;
}
//# sourceMappingURL=tmuxManager.d.ts.map