extension.*
Le côté hôte de la plateforme d’applications d’extension. Ces méthodes sous-tendent la CLI ht extension et les entrées de la palette de commandes. Elles constituent la surface de gestion — le backend/frontend d’une extension pilote le reste de τ-mux via le @tau-mux/sdk, qui appelle les méthodes habituelles surface.*, notification.*, sidebar.*, workspace.* et browser.*.
Registre
Section intitulée « Registre »| Méthode | Params | Résultat |
|---|---|---|
extension.list | {} | [{ id, name, version, icon, description, enabled, hasBuild, running, path }] |
extension.templates | {} | string[] — noms des templates d’échafaudage embarqués |
extension.enable | { id: string } | "OK" — autorise l’ouverture de l’extension (v0.4.12) |
extension.disable | { id: string } | "OK" — arrête les surfaces en cours ; extension.open refuse jusqu’à réactivation (v0.4.12 ; le drapeau existait mais n’était jamais appliqué) |
extension.reload | {} | "OK" — re-scanne le répertoire des extensions + reconstruit le registre |
Surfaces
Section intitulée « Surfaces »| Méthode | Params | Résultat |
|---|---|---|
extension.open | { id: string, split?: boolean, direction?: "right"|"down" } | "OK" |
extension.split | { id: string, direction?: "right"|"down" } | "OK" |
extension.stop | { surface_id: string } | "OK" — arrête un backend d’extension en cours d’exécution |
extension.open / extension.split génèrent un nouvel id de surface préfixé par ext:, démarrent le backend de l’extension (et le serveur de dev Vite, en mode dev), et montent son iframe.
Création
Section intitulée « Création »| Méthode | Params | Résultat |
|---|---|---|
extension.new | { id: string, template: string, name?: string } | { id, path } |
extension.install | { path: string } | { id, path } |
extension.remove | { id: string } | "OK" |
extension.new clone un template embarqué (voir extension.templates) dans <config>/extensions/<id>/ et réécrit l’id de son manifeste. extension.install copie un répertoire externe contenant un manifest.json valide. extension.remove arrête toute surface en cours d’exécution, puis supprime le dossier.
- Toutes les méthodes nécessitent qu’un
ExtensionManagersoit câblé ; dans les processus qui n’en ont pas (certaines fixtures de test), elles lèventextensions are not available. - Les extensions sont entièrement de confiance — les
permissionsdu manifeste sont indicatives. Le jeton de la socket RPC (s’il est activé) protège toujours la socket, donc seuls les clients légitimement connectés peuvent les appeler. Voir le modèle de confiance.