fix: encode shift+non-letter keys using CSI u / modified CSI sequences (#14)
resolveKey("shift+return") previously returned plain "\r" because
shift was silently ignored for non-letter keys. Now:
- CSI sequence keys (arrows, home/end, delete, pageup/down) get the
modifier parameter inserted: e.g. shift+up → \x1b[1;2A
- Control char keys (return, tab, escape, space, backspace) use
Kitty keyboard protocol CSI u encoding: e.g. shift+return → \x1b[13;2u
- shift+tab produces the legacy backtab sequence \x1b[Z
- Combined modifiers (ctrl+shift, alt+shift, ctrl+alt+shift) are
supported using the standard xterm modifier bitmask
Fixes #13
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
authored by