/**
 * ============================================================
 *  src/plugins/pluginApi.ts —— 插件 plugin.ts 的契约
 * ------------------------------------------------------------
 *  双层插件契约的"代码层"接口：
 *
 *    plugins/<id>/.claude-plugin/plugin.json  → 元数据
 *    plugins/<id>/commands/*.md               → 声明式 slash 命令（默认走 LLM）
 *    plugins/<id>/hooks/hooks.json            → 声明式 hook
 *    plugins/<id>/plugin.ts                   → 可选！要接管命令分发时才写
 *
 *  纯 markdown 插件（无 plugin.ts）零修改 drop-in，覆盖 99% Anthropic 上游用例；
 *  富插件写 plugin.ts 接管 runCommand，把全部逻辑放在自己目录里，外部 src/ 一行不改。
 *
 *  PluginContext 是框架"愿意暴露给插件"的最小运行时上下文：
 *   - provider / history / signal / sessionState 都是 runQuery 本来就接受的
 *   - 插件作者通过 src/plugin-sdk.ts 取 runQuery、chat、executeTool 等
 *
 *  PluginEvent 是事件层的"开放契约"：插件可以 yield 任意带 type 字段的自定义事件
 *   ——框架原样透传，UI 不识别就静默忽略。让插件不必把私有事件挤进 LoopEvent。
 * ============================================================
 */
export {};
