Module interactive

Module interactive 

Source
Expand description

Interactive mode implementation for SSH sessions

This module provides both traditional rustyline-based interactive mode and modern PTY-based interactive mode with full terminal support.

§Architecture

The interactive module is split into focused submodules for maintainability:

§Core Components

  • types: Core types and structures (InteractiveCommand, InteractiveResult, NodeSession)
  • execution: Main execution logic coordinating PTY and traditional modes

§Connection Management

  • connection: SSH connection establishment for interactive sessions
    • Handles both direct connections and jump host chains
    • Manages authentication method selection
    • Supports both traditional and PTY-enabled channels

§Session Management

  • single_node: Single node interactive session handling

    • Rustyline-based command input
    • Real-time SSH output streaming
    • Command history management
  • multiplex: Multi-node multiplexed session handling

    • Parallel command execution across nodes
    • Node selection and activation
    • Coordinated output display with timestamps

§Utilities

  • commands: Special command parsing and handling (node switching, broadcast, etc.)
  • utils: Utility functions for prompts, path expansion, PTY detection

§Public API

The module exports only the public-facing types:

  • InteractiveCommand: Configuration and entry point for interactive sessions
  • InteractiveResult: Summary of interactive session execution

Structs§

InteractiveCommand
Interactive mode command configuration
InteractiveResult
Result of an interactive session