package shell import ( "context" "io" "git.t-juice.club/torjus/oubliette/internal/storage" ) // Shell is the interface that all honeypot shell implementations must satisfy. type Shell interface { Name() string Description() string Handle(ctx context.Context, sess *SessionContext, rw io.ReadWriteCloser) error } // SessionContext carries metadata about the current SSH session. type SessionContext struct { SessionID string Username string RemoteAddr string ClientVersion string Store storage.Store ShellConfig map[string]any CommonConfig ShellCommonConfig } // ShellCommonConfig holds settings shared across all shell types. type ShellCommonConfig struct { Hostname string Banner string FakeUser string // override username in prompt; empty = use authenticated user }