{"record":{"id":"f113b8a31bea974c","repo":"HKUDS/nanobot","slug":"this-source-checkout-requires-bun-to-run-its-match","errorCode":null,"errorMessage":"this source checkout requires Bun to run its matching TUI; install Bun, then run `nanobot agent` again","messagePattern":"this source checkout requires Bun to run its matching TUI; install Bun, then run `nanobot agent` again","errorType":"exception","errorClass":"TuiUnavailableError","httpStatus":null,"severity":"error","filePath":"nanobot/cli/tui_launcher.py","lineNumber":182,"sourceCode":"    system = {\"Windows\": \"win32\", \"Darwin\": \"darwin\", \"Linux\": \"linux\"}.get(\n        platform.system(),\n        platform.system().lower(),\n    )\n    machine = {\"x86_64\": \"x64\", \"AMD64\": \"x64\", \"aarch64\": \"arm64\"}.get(\n        platform.machine(),\n        platform.machine().lower(),\n    )\n    if system == \"win32\" and machine == \"arm64\":\n        raise TuiUnavailableError(\n            \"the native TUI is not available on Windows ARM64 because Bun FFI is disabled \"\n            \"on that platform; use the classic prompt until the upstream runtime supports it\"\n        )\n    asset = f\"nanobot-tui-{system}-{machine}{suffix}\"\n    source_dir = _source_checkout_tui_dir()\n    if source_dir is not None:\n        bun = shutil.which(\"bun\")\n        if not bun:\n            raise TuiUnavailableError(\n                \"this source checkout requires Bun to run its matching TUI; \"\n                \"install Bun, then run `nanobot agent` again\"\n            )\n        return _resolve_source_tui_command(source_dir, bun)\n\n    packaged = Path(__file__).resolve().parents[1] / \"tui\" / \"bin\" / asset\n    if packaged.is_file():\n        return [str(packaged)]\n\n    downloaded = _download_release_tui(asset)\n    if downloaded is not None:\n        return [str(downloaded)]\n\n    raise TuiUnavailableError(\n        f\"no native TUI archive is published for nanobot {__version__} on this platform; \"\n        \"current source installs must be editable and keep their checkout and Bun available, \"\n        \"while released packages need a matching GitHub release archive; use \"\n        \"`nanobot agent --classic` if intentional\"","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/cli/tui_launcher.py#L164-L200","documentation":"Error \"this source checkout requires Bun to run its matching TUI; install Bun, then run `nanobot agent` again\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/cli/tui_launcher.py:182 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}