refactor(cli): extract open handler and path resolver into separate functions
- Extract makeOpenHandler factory from makeCLISocketServer to reduce
function body length (was 187 lines, limit 150)
- Extract resolveOpenPath into standalone static function to reduce
cyclomatic complexity (was 17, limit 15)
- swiftlint --strict clean