# Portage AnythingLLM Workspaces → Lapce (`core_ide/`) L’extension [extensions/anythingllm-workspaces/](../../extensions/anythingllm-workspaces/) cible **VS Code / Cursor** (`vscode` API). Lapce utilise un **modèle de plugins** distinct (Volt / WASI, RPC). Ce document découpe le travail en **phases** pour une interface cohérente avec [platform-target.md](../platform-target.md). ## Phase 1 — Connectivité sans webview - Préférences Lapce (équivalent `anythingllm.baseUrl`, `apiKey`, `reposApiBaseUrl`, `reposApiToken`) — stockage secrets hors dépôt. - Commandes palette : - Lister les workspaces AnythingLLM → ouvrir URL dans le **navigateur système**. - Ouvrir l’UI web AnythingLLM. - Client HTTP vers `repos-devtools-server` et API AnythingLLM (réutiliser la logique des fichiers TypeScript comme **spécification** ; implémenter en Rust dans Lapce ou via petit binaire Node invoqué — choix d’équipe). - Pas de panneau Dev tools ; pas de sync RAG initiale depuis l’IDE. ## Phase 2 — Parité « Dev tools » et sync RAG - Panneau ou vue dédiée : saisie des lignes de commande (`/repos-clone-sync`, `/workspace-sync`, …) comme [extensions/anythingllm-workspaces/README.md](../../extensions/anythingllm-workspaces/README.md). - Réimplémenter **initialRagSync** + `.4nkaiignore` (crate `ignore` ou équivalent Rust). - Ouvrir le dossier dépôt dans Lapce après clone (API workspace Lapce). ## Phase 3 — Orchestrateur - Raccorder les commandes Lapce à [orchestrator-api.md](./orchestrator-api.md) plutôt qu’aux services en dur, pour centraliser tokens et politiques par `env`. ## Dépendances - [core-ide.md](../core-ide.md) — build Lapce. - [orchestrator-api.md](./orchestrator-api.md) — routage cible. - [anythingllm-workspaces.md](../anythingllm-workspaces.md) — principe workspace par projet. ## Risque principal Écart de capacités entre **webview VS Code** et **UI Lapce** : prévoir une **vue minimale** (terminal + buffer sortie) si webview complète retardée.