+ {checking && (
+
+ progress_activity
+ Checking {tool.name}...
+
+ )}
+
+ {!checking && status && !status.installed && (
+
+
+
+
warning
+
+
{tool.name} not detected locally
+
Manual configuration is still available if 9router is deployed on a remote server.
+
+
+
+
+
+
+
+ {showInstallGuide && (
+
+
Installation Guide
+
+
+
Install command:
+
{getInstallCommand()}
+
+ {tool.docsUrl && (
+
+ Docs: {tool.docsUrl}
+
+ )}
+
+
+ )}
+
+ )}
+
+ {!checking && status?.installed && (
+ <>
+
+ {/* Endpoint (selector) */}
+
+ Select Endpoint
+ arrow_forward
+
+
+
+ {/* Current configured */}
+ {currentBaseUrl ? (
+
+ Current
+ arrow_forward
+
+ {currentBaseUrl}
+
+
+ ) : null}
+
+ {/* API Key */}
+
+
API Key
+
arrow_forward
+
+
+
+ {/* Models selector cho Pi (multi-models) */}
+ {tool.id === "pi" && (
+
+
Models
+
arrow_forward
+
+
+ {selectedModels.length === 0 ? (
+ No models selected. Add models to use in Pi.
+ ) : (
+ selectedModels.map((modelId) => (
+
+ {modelId}
+
+
+ ))
+ )}
+
+
+
+ {activeProviders?.length > 0 && (
+
+ )}
+ {selectedModels.length > 0 && (
+
+ )}
+
+
+
+ )}
+
+ {/* Model (1 model cho các tool khác, trừ omp) */}
+ {tool.id !== "omp" && tool.id !== "pi" && (
+
+
Model
+
arrow_forward
+
+ setSelectedModel(e.target.value)}
+ placeholder="provider/model-id"
+ className="w-full min-w-0 pl-2 pr-7 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"
+ />
+ {selectedModel && (
+
+ )}
+
+
+
+ )}
+
+
+ {/* Messages */}
+ {message && (
+
+ {message.text}
+
+ )}
+
+ {/* Action Buttons */}
+
+
+
+ {status?.has9Router && (
+
+ )}
+
+
+
+ >
+ )}
+
+ )}
+
+