8ff0f475dedc406f52abbb2be36101b3b0bd0d95
Cadrage capacités plugin SCM (#346): le manifeste plugin gagne permissions.workspaceExec.allow — règles d'exécution contrôlée par l'hôte (commande bare ASCII résolue sans shell, argv exact avec jeton `*` en suffixe, cwd project-relative sûr, effect read/write/network/destructive, 64 règles max) — au lieu de lectures ad hoc du store interne .git. Validation manifeste + exports runtime/index + docs README/manifest/ services + auto-check script étendu (règles valides acceptées, règles unsafe rejetées). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(sdk): pluginRoot officiel exposé dans activate(ctx) — #285 (src/runtime: champ pluginRoot = racine du package installé; docs activation-context/commands-and-feedback/services/manifest réécrits du constat d'absence vers le contrat d'usage officiel — runCommand reste project-scoped, pluginRoot utilisable dans command/args, substitution manifest ${pluginRoot}/${appDataDir} inchangée pour mcpServers; exemple hello-plugin: script packagé scripts/hello-task.mjs consommé via ctx.pluginRoot, packaging étendu; QA verte: npm run check — build, typecheck:examples, package:hello-plugin, artefact zip vérifié)
feat(sdk): metadata statiques contributes.mcpServers[].tools — #296 (type IdeAPluginMcpToolMetadata {name exact non vide, description optionnelle non vide} exporté public; validation manifest: tools optionnel, noms uniques par serveur — metadata d'affichage pour l'UI d'attribution de capacités, ne remplace ni ne cache MCP tools/list et n'enregistre rien; scripts/check-manifest-tools.mjs + npm run test:manifest intégré à check: optionnel/valide/doublon rejeté; doc manifest.md: exemple unity_get_scene/run_tests + règles; QA verte reconfirmée par Git: npm run check)
IdeA Plugin SDK
Public TypeScript SDK for IdeA plugins.
The SDK defines the stable manifest and runtime types used by plugins loaded by
IdeA. A plugin ships an idea-plugin.json manifest plus an ESM entrypoint that
exports activate(ctx).
Start Here
- Manifest: required fields, capabilities and contribution ids.
- Activation And Context:
activate(ctx), lifecycle, logging, storage and subscriptions. - Menus: top-level menus, native menu insertion and command registration.
- Commands And Feedback: command return values, skipped work and background tasks.
- Layouts With React: React/JSX/hooks layout authoring with host-provided React.
- Windows: opening plugin layouts in detached OS windows.
- Services: workspace files and bounded
workspace.execTool, tasks, tooling, events, config, terminal and windows facades. - Packaging And Distribution: build output, archive layout, hot reload and dependency rules.
- Codex Skills And IdeA Plugins: separate IdeA-native plugin skills from Codex plugin discovery.
- Project Plugin Assignments: enable plugins per project and assign skills and MCP tools to agents.
The installable example lives in examples/hello-plugin.
It demonstrates a menu command, storage, background-task feedback, a React layout
component and services.windows.open(...).
For short project-scoped external tools, use
ctx.services.workspace.execTool() with an explicit manifest
permissions.workspaceExec allow rule. See Services and
Manifest. The primitive is generic and does not expose a
native Git/SCM API.
Install
npm install
Build
npm run build
Validate The Example
npm run typecheck:examples
npm run package:hello-plugin
The example archive is written to:
examples/hello-plugin/build/hello-plugin-0.1.0.zip
Description
Languages
TypeScript
72%
JavaScript
28%