OrbitWake for VS Code

Vue d’ensemble

L’extension OrbitWake pour VS Code apporte un panneau de chat code-aware, un pairing sécurisé avec le workspace OrbitWake, un mode Ask pour travailler avec le fichier actif et un mode Agent capable de préparer des patchs multi-fichiers à revoir avant toute écriture locale.

État actuel

La version présente dans le repo est 0.1.4, publiée sous le package orbitwake-vscode avec le publisher orbitwake.

L’extension cible VS Code 1.106 ou plus récent et utilise la Secondary Side Bar native afin de garder Explorer à gauche et OrbitWake dans le panneau droit.

Le package actuel n’est pas une simple maquette : il contient le runtime de l’extension, les commandes, le webview, les tests et un workflow CI qui vérifie la syntaxe, les contrôles du webview, l’Extension Host et le packaging VSIX.

Ce que l’extension expose

CapacitéÉtat actuel
Secondary Side BarDisponible via le container OrbitWake.
Mode AskDisponible avec contexte du dernier éditeur code utile.
Mode AgentDisponible lorsqu’un folder/workspace est ouvert.
Sélection de modèleOrbitWake Auto, OpenAI, Claude et Grok.
Patch multi-fichiersPréparé par Agent, puis revu localement.
Preview diff natifDisponible via vscode.diff.
Apply / RejectExplicite avant les écritures locales.
Pairing workspaceDisponible via Settings → IDEs.

Pairing sécurisé avec OrbitWake

La connexion entre VS Code et OrbitWake utilise un code de pairing créé dans Settings → IDEs.

Le code est lisible, au format ABCD-EFGH, expire après 10 minutes et ne peut être utilisé qu’une fois.

Créer un nouveau code invalide les codes précédents encore actifs pour le même utilisateur.

Dans VS Code, la commande OrbitWake: Connect IDE demande ce code puis l’envoie au backend avec le nom de machine, le nom et la version de l’éditeur, ainsi qu’un identifiant machine dérivé localement.

Session IDE et token

Lorsqu’un pairing est accepté, OrbitWake crée une session IDE et retourne un token aléatoire.

Le token brut est stocké côté éditeur dans VS Code SecretStorage. Côté serveur, OrbitWake ne conserve que son hash SHA-256.

Chaque requête IDE authentifiée utilise ce token dans un header Bearer. La session doit être active et non révoquée.

Le serveur met à jour last_seen_at lorsqu’une session valide est utilisée.

Sessions révocables

Settings → IDEs affiche les éditeurs connectés, avec le nom de l’appareil, l’éditeur, la version et la dernière activité connue.

Une session peut être révoquée depuis OrbitWake. Une session révoquée ne peut plus authentifier les endpoints IDE.

La commande OrbitWake: Disconnect IDE supprime aussi le token du SecretStorage local de VS Code.

Mode Ask

Ask est conçu pour interroger OrbitWake à partir du contexte du fichier actif ou du dernier éditeur code utile lorsque le panneau OrbitWake prend le focus.

Le contexte peut inclure :

DonnéeLimite actuelle
Chemin du fichierChemin relatif au workspace.
LangageIdentifiant de langage VS Code.
SélectionJusqu’à 16 000 caractères.
Contenu du fichierJusqu’à 32 000 caractères.
DiagnosticsJusqu’à 50 diagnostics.

Le backend IDE demande au modèle de répondre de manière concise et orientée implémentation, et lui interdit de prétendre qu’un fichier a été changé ou qu’une commande a été exécutée si l’éditeur ne l’a pas réellement signalé.

Ask About Selection

La commande OrbitWake: Ask About Selection ouvre la vue OrbitWake et préremplit le composer avec le code actuellement sélectionné.

La commande exige un fichier code ouvert et une sélection non vide. Sans sélection, l’extension affiche un avertissement au lieu d’envoyer un contexte vide.

Mode Agent

Agent nécessite un dossier ou workspace ouvert. Il scanne localement les fichiers pertinents, sélectionne un petit ensemble de contexte puis demande au backend OrbitWake de préparer une proposition de patch.

L’extension recherche jusqu’à 500 chemins de workspace, classe jusqu’à 120 candidats et transmet au maximum 10 fichiers pertinents au backend.

Le backend accepte jusqu’à 12 fichiers en entrée, avec un contexte total plafonné à 72 000 caractères, puis produit au maximum 10 modifications de fichiers dans une proposition.

Le format attendu n’est pas un unified diff : OrbitWake retourne les contenus de remplacement complets des fichiers concernés.

Fichiers sensibles exclus

Ask et Agent refusent certains fichiers sensibles locaux avant qu’ils ne soient envoyés à OrbitWake.

La liste actuelle couvre notamment .env, les variantes .env.*, .npmrc, .pypirc, .netrc, plusieurs noms de fichiers de credentials ou secrets, les clés privées SSH, ainsi que des extensions comme .pem, .key, .p12, .pfx, .crt et .cer.

PortéeCette protection concerne le contexte automatiquement collecté par l’extension. Elle ne remplace pas les bonnes pratiques de gestion de secrets dans le projet lui-même.

Revue des patchs

Une proposition Agent est conservée localement comme un patch en attente. L’utilisateur peut la prévisualiser dans des diffs VS Code natifs avant toute écriture.

Pour un fichier existant, le diff compare le fichier local actuel à la version proposée. Pour un nouveau fichier, OrbitWake utilise un document virtuel vide comme côté gauche du diff.

La proposition affiche un résumé, les chemins concernés et la raison de chaque changement.

Apply et Reject

OrbitWake ne modifie pas immédiatement les fichiers après génération.

Avant l’application, l’extension vérifie :

ContrôleBut
Workspace identiqueÉviter d’appliquer un patch dans un autre projet.
Chemins relatifs sûrsBloquer chemins absolus, .. et sorties du workspace.
Document dirtyDemander de sauvegarder les modifications locales avant l’application.
Hash du contenuDétecter un fichier modifié depuis la génération du patch.
Confirmation modaleExiger un clic explicite sur Apply changes.

Si le fichier a changé après génération, le patch est refusé et doit être régénéré. Reject abandonne la proposition sans écrire les fichiers.

Modèles disponibles dans le panneau

L’interface actuelle propose OrbitWake Auto, OpenAI, Claude et Grok.

Avec OrbitWake Auto, la réponse peut afficher le modèle finalement résolu par le gateway. Les requêtes Ask et Agent utilisent le même AI gateway OrbitWake et sont comptabilisées dans le système de metering.

Le backend applique également le budget provider quotidien global d’OrbitWake.

Disponibilité des fonctions AI IDE

Dans la build actuelle, les endpoints AI de l’IDE vérifient l’éligibilité du compte avant de répondre.

Les private testers passent directement cette vérification ; sinon le compte doit disposer d’un statut de private beta actif.

Une extension correctement pairée peut donc être authentifiée mais recevoir une réponse 403 si les fonctions AI IDE ne sont pas encore activées pour ce compte.

Commandes actuellement enregistrées

CommandeRôle
OrbitWake: Connect IDEPairer VS Code avec OrbitWake.
OrbitWake: Disconnect IDESupprimer le token local et vider la proposition en attente.
OrbitWake: Ask About SelectionEnvoyer la sélection courante vers le composer OrbitWake.

Limites actuelles

L’extension n’exécute pas de commandes shell et ne doit pas prétendre qu’une commande a été lancée.

Le mode Agent prépare des remplacements complets de fichiers ; il n’effectue pas un patch Git local, un commit ou un push.

Le scanner se limite à des fichiers texte reconnus et exclut les gros fichiers au-delà de 220 000 octets pour la lecture locale.

Les dépendances et répertoires générés courants comme node_modules, .git, .next, dist, build, coverage, vendor, target, environnements virtuels Python et caches sont exclus du scan Agent.

Les fonctions AI IDE restent soumises à l’éligibilité beta du compte dans cette build.

Validation et packaging

Le repo contient un workflow dédié au packaging de l’extension lorsque les fichiers VS Code changent dans une PR vers la branche release.

Le pipeline vérifie la syntaxe du runtime et du webview, exécute les tests webview, lance l’extension dans un VS Code Extension Host sous Xvfb, package un VSIX et contrôle que les fichiers runtime essentiels sont présents dans l’archive.

Cette CI valide le package du repo ; elle ne doit pas être interprétée comme une garantie que chaque poste utilisateur ou configuration VS Code fonctionnera sans contrainte locale.

Étapes suivantes

Les prochaines pages VS Code peuvent maintenant détailler Installation, Authentification, Commandes, Réglages et Dépannage à partir de cette implémentation réelle.

PrécédentCloud — Vue d’ensembleSuivantVS Code — Installation