mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-14 14:12:44 +00:00
Editor-grade mouse selection parity with the Ink TUI (hermes-ink selection.ts): a second click in the 500ms/1-cell chain selects the same-class character run under the cursor (iTerm2 word set, wide-glyph aware), a third selects the line, and dragging with the button held extends word-by-word / line-by-line while the clicked span stays selected — anchor flips across the span on direction change. Core knows only press-drag char selection, so this is a boundary shim (multiClickSelect.ts) wrapping the renderer's startSelection/updateSelection seam; word bounds read the presented frame's char grid. Native quirks probed and pinned: per-renderable selection anchors are fixed at set time (anchor flips restart the selection) and forward selections exclude the focus cell (inclusive spans seed focus at hi+1). Pure scanning logic in logic/multiClick.ts; 20 new tests (pure + real-mouse-path frames); demo.tsx installs the seam for tmux smokes. |
||
|---|---|---|
| .. | ||
| scripts | ||
| src | ||
| .gitignore | ||
| .prettierrc | ||
| eslint.config.mjs | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.json | ||
| vitest.config.ts | ||