Date: 04-02-2026 Status: EN COURS - Phase 1 terminee Priorite: HAUTE Derniere MAJ: 04-02-2026
Ajouter un onglet "Tools" sur toutes les pages instances, avec une interface dediee selon le type de connecteur.
4 premiers outils implementes :
Extensible : Chaque type de connecteur pourra avoir son Tool dedie.
| Phase | Status | Description |
|---|---|---|
| Structure | FAIT | Route, registry, DefaultTool, layout |
| BaseTool.tsx | FAIT | Layout commun (header, loading, error) |
| DefaultTool.tsx | FAIT | Fallback pour connecteurs sans tool |
| YoloTool.tsx | FAIT | Upload, detection, canvas, bbox |
| WebSearchTool.tsx | FAIT | Recherche, moteurs, categories |
| AiOrchestratorTool.tsx | FAIT | GPU monitor, tools, jobs, queue |
| ScrapperTool.tsx | FAIT | Navigate, actions, screenshot, AI |
| Onglet Tools | FAIT | Ajoute sur toutes les instances |
src/routes/connectors/instance/[id]/tools/
└── index.tsx # Router dynamique vers le bon composant
src/components/tools/
├── index.ts # Export tous les tools + registry
├── BaseTool.tsx # Layout commun (header, loading, error)
├── DefaultTool.tsx # Fallback pour connecteurs sans tool
├── WebSearchTool.tsx # web-search (227 lignes)
├── ScrapperTool.tsx # scraper (483 lignes)
├── AiOrchestratorTool.tsx # ai-orchestrator (397 lignes)
└── YoloTool.tsx # yolo (367 lignes)
isTools dans pathname// src/components/tools/index.ts
export const TOOLS_ENABLED_CONNECTORS = [
'web-search',
'scraper',
'ai-orchestrator',
'yolo',
] as const;
export function hasDedicatedTool(connectorType: string): boolean {
return TOOLS_ENABLED_CONNECTORS.includes(connectorType);
}
export default component$(() => {
const ctx = useContext(InstanceContext);
const connectorType = ctx.instance.value?.connector_type;
switch (connectorType) {
case 'web-search': return <WebSearchTool instance={instance} />;
case 'scraper': return <ScrapperTool instance={instance} />;
case 'ai-orchestrator': return <AiOrchestratorTool instance={instance} />;
case 'yolo': return <YoloTool instance={instance} />;
default: return <DefaultTool instance={instance} />;
}
});
Chaque connecteur peut avoir son Tool :
| Connecteur | Tool potentiel |
|---|---|
| jellyfin | Browser medias, player integre |
| proxmox | Dashboard VMs, console VNC |
| ssh | Terminal integre (existe deja dans Terminaux) |
| github | Browser repos, issues, PRs |
| gitlab | Browser projets, pipelines |
Il suffit d'ajouter le composant dans TOOLS_ENABLED_CONNECTORS et le switch case.
Voir aussi: 04-02-2026-22-15-plan-detaille-tools-api.md