Remplace le README monolithique par un point d'entrée vers des pages dédiées
(manifest, activation/contexte, menus, commandes/feedback, layouts React,
fenêtres, services, packaging/distribution) pour couvrir #142-#144 et
faciliter la navigation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Le runtime SDK expose désormais react/react-dom résolus contre l'instance
hébergée par IdeA plutôt qu'une copie embarquée, pour que les layouts plugin
en JSX/hooks partagent le même arbre React que l'host. hello-plugin migre son
layout d'exemple en .tsx pour illustrer le contrat.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Documente la règle publique menu -> command handler -> tâche de fond optionnelle
-> feedback (docs/commands-and-feedback.md + README), clarifie via JSDoc les
invariants de runCommand/recordOnly/ownerAgentId dans runtime.ts, et met à jour
l'exemple hello-plugin (feedback structuré launched/skipped, watch non-fatal)
pour qu'il illustre fidèlement le contrat documenté. Publie docs/ dans le
package npm.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Documente et illustre deux contrats SDK :
- Multi-fichiers ESM : le `main` du manifeste peut importer d'autres
fichiers du package via specifiers relatifs, servis par IdeA sur
`idea-plugin://` (build `tsc` non bundlé). Le packager embarque tout
`dist/**/*.js` et vérifie la présence du `main`. Les bare specifiers
(`node_modules`) restent hors contrat : à bundler ou vendorer.
- Storage plugin-owned : `ctx.storage` est la place canonique de l'état
interne du plugin (compteurs, flags, préférences, caches), hors des
fichiers projet. Les APIs workspace/config restent pour le contenu
project-owned.
L'exemple hello-plugin est éclaté en modules (constants, core/layout,
core/workspace, core/storage) pour exercer l'import relatif et le storage.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>