Add Provider Install wizard to GUI

- Create ProviderInstallDialog for installing AI provider CLI tools
- Shows available providers (Claude, Codex, Gemini, OpenCode, Ollama)
- Detects which providers are already installed
- Runs installation commands with live output
- Offers to add provider variants after installation
- Add "Tools" menu with "Install AI Provider..." option
- Add "Install Provider..." button to Providers page

Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
rob
2026-01-18 01:14:49 -04:00
co-authored by Claude Opus 4.5
parent f0d175f3c6
commit f442759344
3 changed files with 520 additions and 1 deletions
+14
View File
@@ -35,7 +35,13 @@ class ProvidersPage(QWidget):
header_layout.addStretch()
self.btn_install = QPushButton("Install Provider...")
self.btn_install.setToolTip("Install a new AI provider CLI tool")
self.btn_install.clicked.connect(self._install_provider)
header_layout.addWidget(self.btn_install)
self.btn_add = QPushButton("Add Provider")
self.btn_add.setToolTip("Manually add a provider configuration")
self.btn_add.clicked.connect(self._add_provider)
header_layout.addWidget(self.btn_add)
@@ -121,6 +127,14 @@ class ProvidersPage(QWidget):
name_item = self.table.item(row, 0)
return name_item.text(), name_item.data(Qt.UserRole)
def _install_provider(self):
"""Open the provider installation wizard."""
from ..dialogs.provider_install_dialog import ProviderInstallDialog
dialog = ProviderInstallDialog(self)
if dialog.exec():
self.refresh()
self.main_window.show_status("Providers updated")
def _add_provider(self):
"""Add a new provider."""
from ..dialogs.provider_dialog import ProviderDialog