{"record":{"id":"3db9503c68392afd","repo":"HKUDS/nanobot","slug":"cli-app-name-not-found","errorCode":null,"errorMessage":"CLI app '{name}' not found","messagePattern":"CLI app '(.+?)' not found","errorType":"error_code","errorClass":"CliAppError","httpStatus":404,"severity":"error","filePath":"nanobot/apps/cli/service.py","lineNumber":617,"sourceCode":"            if data is None or _now() - cached_at >= self.runtime.catalog_ttl_seconds:\n                return False\n        return True\n\n    def _manifest_source(self, app: dict[str, Any]) -> str:\n        source = str(app.get(\"_source\") or \"harness\")\n        if source == \"extensions\":\n            return \"nanobot-extension\"\n        return f\"cli-anything:{source}\"\n\n    def _trust_registry(self, app: dict[str, Any]) -> str:\n        return \"nanobot-extension\" if str(app.get(\"_source\") or \"\") == \"extensions\" else \"cli-anything\"\n\n    def get_app(self, name: str, *, force_refresh: bool = False) -> dict[str, Any]:\n        wanted = name.lower()\n        for app in self.catalog(force_refresh=force_refresh)[0]:\n            if str(app.get(\"name\", \"\")).lower() == wanted:\n                return app\n        raise CliAppError(f\"CLI app '{name}' not found\", status=404)\n\n    def mentioned_installed_apps(self, text: str) -> list[dict[str, str]]:\n        \"\"\"Return installed CLI Apps referenced as ``@name`` in user text.\"\"\"\n        if \"@\" not in text:\n            return []\n        installed = self._load_installed()\n        if not installed:\n            return []\n        installed_by_name = {\n            str(name).lower(): (str(name), _as_object_dict(data) or {})\n            for name, data in installed.items()\n        }\n        seen: set[str] = set()\n        mentions: list[dict[str, str]] = []\n        for match in _MENTION_RE.finditer(text):\n            wanted = str(match.group(2)).lower()\n            if wanted in seen or wanted not in installed_by_name:\n                continue","sourceCodeStart":599,"sourceCodeEnd":635,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/apps/cli/service.py#L599-L635","documentation":"Error \"CLI app '{name}' not found\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/apps/cli/service.py:617 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"}