23 lines
1.9 KiB
Markdown
23 lines
1.9 KiB
Markdown
---
|
|
issueRef: "#286"
|
|
version: 3
|
|
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
|
updatedAt: 1788889482726
|
|
---
|
|
# Cadrage SDK UnityPlugin
|
|
|
|
Demande: répondre aux questions de contrat SDK pour `plugins/unity-developer-tools` autour des ressources packagées et des slash commands.
|
|
|
|
Vérification Architect + grep direct dans IdeA:
|
|
- `sdk/IdeaSDK/src/runtime.ts` expose `ActivateContext.pluginRoot: string`.
|
|
- `sdk/IdeaSDK/docs/activation-context.md`, `commands-and-feedback.md`, `services.md` et `manifest.md` documentent déjà `ctx.pluginRoot` et la règle d'utilisation avec `tasks.runCommand`.
|
|
- `frontend/src/plugins/runtime/loader.ts` exige puis injecte `pluginRoot` dans le contexte d'activation.
|
|
- `sdk/IdeaSDK/src/manifest.ts` valide `slashCommands` uniquement avec `name`, `shortDescription`, `command`, `requiresConfirmation`, `when`; aucun schéma d'arguments.
|
|
- `crates/application/src/slash_command.rs`, `crates/backend/src/dto.rs` et `frontend/src/plugins/runtime/registry.ts` transportent des arguments opaques, mais l'UI chat actuelle passe le reste de la ligne comme un seul argument chaîne.
|
|
|
|
Conclusion:
|
|
- Il n'y a pas de service SDK ressources dédié; le contrat officiel est `ctx.pluginRoot`.
|
|
- Pour exécuter une ressource packagée, construire un chemin absolu depuis `ctx.pluginRoot`, appeler l'interpréteur via `ctx.services.tasks.runCommand`, et garder `cwd` relatif au projet.
|
|
- Le chemin est host-local/read-only, ne pas le persister.
|
|
- Les slash commands n'ont pas d'arguments structurés déclarables dans le manifest; UnityPlugin doit parser/valider lui-même les arguments reçus.
|
|
- Pas de modification docs SDK nécessaire: le contrat `pluginRoot` est déjà documenté. Lacune côté UnityPlugin: `plugins/unity-developer-tools/types/idea-plugin-sdk.d.ts` doit être aligné avec le SDK canonique en ajoutant `pluginRoot` à `ActivateContext` ou en remplaçant le shim par le SDK à jour. |