{"record":{"id":"37b3e558c30c88de","repo":"HKUDS/nanobot","slug":"no-native-tui-archive-is-published-for-nanobot","errorCode":null,"errorMessage":"no native TUI archive is published for nanobot {__version__} on this platform; current source installs must be editable and keep their checkout and Bun available, while released packages need a matching GitHub release archive; use `nanobot agent --classic` if intentional","messagePattern":"no native TUI archive is published for nanobot (.+?) on this platform; current source installs must be editable and keep their checkout and Bun available, while released packages need a matching GitHub release archive; use `nanobot agent --classic` if intentional","errorType":"exception","errorClass":"TuiUnavailableError","httpStatus":null,"severity":"error","filePath":"nanobot/cli/tui_launcher.py","lineNumber":196,"sourceCode":"    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\"\n    )\n\n\ndef _source_checkout_tui_dir() -> Path | None:\n    \"\"\"Return this checkout's TUI source, never a neighboring unrelated directory.\"\"\"\n    return _tui_source_dir(Path(__file__).resolve().parents[2])\n\n\ndef _tui_source_dir(project_root: Path) -> Path | None:\n    project_root = project_root.resolve(strict=False)\n    source_dir = project_root / \"tui\"\n    if (project_root / \"pyproject.toml\").is_file() and (source_dir / \"package.json\").is_file():\n        return source_dir\n    return None","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/cli/tui_launcher.py#L178-L214","documentation":"Error \"no native TUI archive is published for nanobot {__version__} on this platform; current source installs must be editable and keep their checkout and Bun available, while released packages need a matching GitHub release archive; use `nanobot agent --classic` if intentional\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/cli/tui_launcher.py:196 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"}