mirror of
https://github.com/bendtherules/opencode-multi-model.git
synced 2026-08-18 13:42:21 +00:00
99 lines
2.5 KiB
TypeScript
99 lines
2.5 KiB
TypeScript
/**
|
|
* Options for launching a multi-model tmux session.
|
|
*/
|
|
export interface MultiModelOptions {
|
|
/** Name for the tmux session. */
|
|
sessionName: string;
|
|
/** List of model ids to launch. */
|
|
models: string[];
|
|
/** Binary name to use ('opencode' or 'kilo'). Defaults to 'opencode'. */
|
|
binaryName?: string;
|
|
/** Caller context: 'cli' shows shell commands, 'tool' shows tool instructions. */
|
|
mode?: "cli" | "tool";
|
|
}
|
|
|
|
/**
|
|
* Result returned after attempting to launch a multi-model session.
|
|
*/
|
|
export interface MultiModelResult {
|
|
/** Whether the launch succeeded. */
|
|
success: boolean;
|
|
/** The session name used. */
|
|
sessionName: string;
|
|
/** Window names created in the tmux session. */
|
|
windows?: string[];
|
|
/** Error message if the launch failed. */
|
|
error?: string;
|
|
/** Instructions for attaching and cleaning up the session. */
|
|
instructions?: string;
|
|
}
|
|
|
|
/**
|
|
* Options for closing a multi-model tmux session.
|
|
*/
|
|
export interface CloseSessionOptions {
|
|
/** Whether to create archive tags before deleting branches. */
|
|
createArchiveTags?: boolean;
|
|
/** Name of the tmux session to close. */
|
|
sessionName: string;
|
|
/** Whether to remove worktrees and delete branches. */
|
|
cleanupWorktrees?: boolean;
|
|
/** Skip confirmation prompts. */
|
|
force?: boolean;
|
|
}
|
|
|
|
/**
|
|
* Result returned after attempting to close a multi-model session.
|
|
*/
|
|
export interface CloseSessionResult {
|
|
/** Console messages and instructions. */
|
|
instructions: string;
|
|
/** Whether the close succeeded. */
|
|
success: boolean;
|
|
/** The session name that was closed. */
|
|
sessionName: string;
|
|
/** Error message if the close failed. */
|
|
error?: string;
|
|
/** Whether cleanup was performed. */
|
|
cleanupPerformed?: boolean;
|
|
/** Worktree paths that were removed. */
|
|
worktreesRemoved?: string[];
|
|
/** Branch names that were deleted. */
|
|
branchesDeleted?: string[];
|
|
/** Archive tags that were created before branch deletion. */
|
|
tagsCreated?: string[];
|
|
|
|
}
|
|
|
|
/**
|
|
* Internal type for a window launch plan.
|
|
*/
|
|
export interface WindowLaunchPlan {
|
|
/** Full model id. */
|
|
model: string;
|
|
/** Unique tmux window name. */
|
|
windowName: string;
|
|
}
|
|
|
|
/**
|
|
* Result of running a shell command.
|
|
*/
|
|
export interface CommandResult {
|
|
/** Whether the command exited with code 0. */
|
|
ok: boolean;
|
|
/** Captured stdout. */
|
|
stdout: string;
|
|
/** Captured stderr. */
|
|
stderr: string;
|
|
}
|
|
|
|
/**
|
|
* Information about a git worktree.
|
|
*/
|
|
export interface WorktreeInfo {
|
|
/** Absolute path to the worktree. */
|
|
path: string;
|
|
/** Branch name associated with the worktree. */
|
|
branch: string;
|
|
}
|