33800 Docs

← Retour

Proposition: Onglet Tools Generique sur Pages Instances

Date: 04-02-2026 Status: EN COURS - Phase 1 terminee Priorite: HAUTE Derniere MAJ: 04-02-2026

Objectif

Ajouter un onglet "Tools" sur toutes les pages instances, avec une interface dediee selon le type de connecteur.

4 premiers outils implementes :

  1. web-search - Interface recherche web
  2. scraper - Navigation + extraction + CAPTCHA
  3. ai-orchestrator - Jobs IA + GPU monitor
  4. yolo - Detection d'objets

Extensible : Chaque type de connecteur pourra avoir son Tool dedie.


Avancement

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

Fichiers crees

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)

Modification layout.tsx


Fonctionnalites implementees

WebSearchTool (web-search)

YoloTool (yolo)

AiOrchestratorTool (ai-orchestrator)

ScrapperTool (scraper)


Prochaines etapes

  1. Test en PROD - Deployer et tester sur les 4 instances
  2. WebSearchTool - Ajouter autocomplete (/autocompleter)
  3. ScrapperTool V2 - Streaming WebSocket (optionnel)
  4. Feedback utilisateur - Ajuster selon retours

Architecture

Registry des Tools

// 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);
}

Page tools/index.tsx

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} />;
  }
});

Extensibilite future

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.


Complement

Voir aussi: 04-02-2026-22-15-plan-detaille-tools-api.md