9ce3a557a99eb767782403c2167ffaac3bd02691
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): 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): 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): 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é)
docs(sdk): schéma project-plugins.json v1 + assignation skills/tools agents — #283 (project-plugin-assignments: workflow install→enable→assign→relaunch, schéma complet plugins/agents/skills/tools camelCase, ordre d'injection natif puis plugin, tombstones inertes uninstall/reinstall, validation UI/API idempotente vs édition manuelle, reload plugin ≠ relance agent; liens croisés manifest/codex-skills/README; QA verte: npm run build, liens docs vérifiés)
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, 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(...).
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.2%
JavaScript
27.8%