export const SHELL_TYPES = ['bash', 'powershell'] as const export type ShellType = (typeof SHELL_TYPES)[number] export const DEFAULT_HOOK_SHELL: ShellType = 'bash' export type ShellProvider = { type: ShellType shellPath: string detached: boolean /** * Build the full command string including all shell-specific setup. * For bash: source snapshot, session env, disable extglob, eval-wrap, pwd tracking. */ buildExecCommand( command: string, opts: { id: number | string sandboxTmpDir?: string useSandbox: boolean }, ): Promise<{ commandString: string; cwdFilePath: string }> /** * Shell args for spawn (e.g., ['-c', '-l', cmd] for bash). */ getSpawnArgs(commandString: string): string[] /** * Extra env vars for this shell type. * May perform async initialization (e.g., tmux socket setup for bash). */ getEnvironmentOverrides(command: string): Promise> }