# Comandos backend do app desktop O backend Tauri exposto ao frontend vive principalmente em `tauri-app/src-tauri/src/lib.rs`. Esta pagina documenta os comandos que o frontend usa para runtime, modelos e diagnostico. ## Runtime manager ### `bootstrap_runtime_command` Carrega a configuracao persistida, reconstrui o snapshot do runtime e pode iniciar o runtime local automaticamente quando a politica e `on_app_launch` e o modo e `local`. ### `get_runtime_snapshot_command` Retorna o `RuntimeSnapshot` atual com: - `status` - `ready` - `process_running` - `resolved_url` - `binary_path` - `last_error` - `config` ### `save_runtime_config_command_handler` Persiste `RuntimeConfig` e atualiza o estado backend usado pelo runtime manager. Importante: - se o processo local estiver rodando e a mudanca exigir restart, o backend pode recusar a alteracao com erro `restart_required` ### `start_runtime_command` Inicia o runtime local usando a configuracao atualmente salva no backend Tauri. ### `stop_runtime_command` Para o runtime local e atualiza o snapshot. ## GPU e modelos ### `query_gpu` Usa `nvidia-smi` para detectar GPU NVIDIA e sugerir `recommended_layers`. ### `scan_models(dir)` Escaneia um diretorio em busca de arquivos `.gguf`. ### `pick_models_dir` Abre seletor nativo de pasta e devolve o diretorio escolhido junto com os modelos encontrados. ### `pick_model_files` Abre seletor nativo de arquivos para escolher um ou mais `.gguf`. ### `import_model(src_path, dest_dir)` Copia um arquivo `.gguf` para um diretorio de modelos. ## Configuracao e paths ### `find_server_binary` Resolve o caminho do binario `localllm` para diagnostico e start local. ### `get_app_data_dir` Retorna o diretorio de dados do app. O backend desktop agora expoe apenas a superficie unificada do runtime manager para configuracao e ciclo de vida. ## Tipos principais ### `RuntimeConfig` Campos relevantes: - `connection_mode` - `start_policy` - `server_url` - `api_key` - `model_path` - `models_dir` - `addr` - `gpu_layers` - `ctx_size` - `extra_model_paths` ### `RuntimeSnapshot` Representa o estado serializado usado pelo frontend para desenhar o runtime card, drawer e logica de start/stop. ## Observacoes importantes - o backend Tauri e a source of truth da configuracao persistida do runtime do app - o frontend usa `useRuntimeManager()` para consumir essa superficie de comandos - readiness do runtime local depende de `GET /health`, nao apenas de socket aberto