57b2dfdf0e
70 nested closures (every prompt_toolkit key handler and handler factory, the clarify/sudo/secret/approval/model-picker/command-palette/stash display renderers, hint/placeholder/spinner callables, process_loop, spinner_loop, _signal_handler, wake-startup) become HermesCLI._tui_* methods; run() only binds them (kb.add(...)(self._tui_x)). The run() locals they closed over are published on self at their original binding sites (_tui_multiline_shortcuts, the four paste list-cells; process_loop reads self._app). Then four zero- back-ref prologue regions become _tui_print_startup, _tui_init_run_state, _tui_build_key_bindings -> kb and _tui_build_layout(kb) -> (layout, style). All moved bodies verified AST-identical modulo cli_ref->self and the free-var rewrites; unresolved-free-name check on every new method is empty. Source- inspection tests repointed: getsource(run) -> _tui_process_loop, AST lookup of handle_enter -> _tui_handle_enter.