# @elaraai/east-plugin 中文文档

规范地址：https://npmcn.com/package/%40elaraai/east-plugin/

版本：1\.0\.107
npm 元数据更新时间：2026-11-13T06:53:30.456Z
中文译文更新时间：2026-11-13T13:52:38.414Z
软件包许可：AGPL-3\.0-or-later

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40elaraai/east-plugin
原文对照：https://npmcn.com/package/%40elaraai/east-plugin/?lang=original
项目主页：https://github.com/elaraai/east-workspace#readme
源码仓库：https://github.com/elaraai/east-workspace

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：11.9 MB，145 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22\.0\.0
- 运行依赖：5 个
- peer 依赖：typescript \>=5\.0\.0 \<7
- 首次发布：2026-10-06T22:15:20.294Z
- 最新版本发布：2026-11-13T06:53:30.124Z
- 近 30 天下载量：3366（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：23（近 12 个月 23 个）

## 中文简介

East的代理插件运行时间——实例索引生成器,实例搜索及其MCP工具,搜索第一钩和Codex技能适配器——用于一个以East's为基础的Claude Code或Codex插件.

## 安装

```sh
npm install @elaraai/east-plugin
```

也可以使用：`pnpm add @elaraai/east-plugin`、`yarn add @elaraai/east-plugin`、`bun add @elaraai/east-plugin`

## README

# 共享东代理插件库

共同执行 [`east-claude-plugin`](https://npmcn.com/package/%40elaraai/east-claude-plugin) 财务报告和审定财务报表 [`east-codex-plugin`](https://npmcn.com/package/%40elaraai/east-codex-plugin),作为 `@elaraai/east-plugin` 用于基于 East 的 Claude 代码或代码插件( 见 [建立在 East 插件上](https://npmcn.com/package/%40elaraai/east-plugin/#readme-building-on-easts-plugin)) (中文(简体) ). 这不是代理插件本身 .

-   `lib/`:项目检测,搜索,复核和调试,守护进程客户端,Python诊断,状态,笔录助手,stdio LSP客户端,搜索第一指南和钩子(Claude Code's in `search-hooks.ts`代码在 `codex-hook.ts`),可编码技术适配器(`codex-skills.ts`),以及插件组装器(`package.ts`) (中文(简体) ).
-   `hooks/`:常见的生命周期和克洛德工具适配器. Codex的一个工具钩是 `east-codex-plugin/hooks/codex-tools.ts`结束 `lib/codex-hook.ts` 财务报告和审定财务报表 `lib/codex-tools.ts` (胸口和外壳正常化).
-   `daemon/`: TypeScript/TSX LSP,Python LSP发射器和驻地诊断服务器.
-   `mcp/`:实例搜索、检索、状态和真正的LSP桥;搜索和检索工具是 `example-tools.ts`用于任何服务器.
-   `skills/`:一个技能目录——四个插件-内生技能外加同包自有技能的同义链接.
-   `scripts/`:唯一索引生成器 Python 渲染器,组装器驱动程序(`package.ts`)和CLI安装/更新执行.
-   `index.json`: 犬科生成的活体, 一个承诺的文物。 每个装配的插件都装了一份, 出版的套件把它装上一个插件, 这个插件在它自己旁边为东方服务.
-   `marketplace/` (被忽略):两个插件都是作为主机安装而组装的, `east-claude-plugin/` 财务报告和审定财务报表 `east-codex-plugin/`,有市场文件为它们取名——一个Claude Code和Codex在目录下名下的地方市场(`elaraai`, (中文(简体) ), `elaraai-codex`),所以一个维护者在报到或目录中点出名字.

主机运行时间文件是薄包再导出,由 Esbuild 内含. 它们不能独立地复制共同行为. `hostText` 翻译输出边界上的主机化工具和技能名. 组装的插件有意包含重复字节,所以已安装的插件不依赖于这个工作空间包.

```bash
pnpm --filter @elaraai/east-plugin run build
pnpm --filter @elaraai/east-plugin run generate-index   # → index.json (commit it)
make -C libs/east-plugin package                        # both hosts' bundles + the assembled plugins under marketplace/
```

索引生成需要构建实例和Python环境,这在任一主机README中都有记载. 在运行时间变化后, 在捆绑主机前构建此软件包 。 代码 `build` 克劳德 `build` 自动做到这一点,并组装自己的插件;根递归式构建遵循工作空间依赖性图表.

编辑该技能拥有的库, 或它的本地源代码在此 。 Claude Code的插件通过包时的链接复制了目录; Codex的实现和调整了同样的源. 在两个主机下都没有产生任何犯罪。 在改变共享行为后运行两个主机测试套件:它们运行在组装的插件上.

### 出版

发布会公布汇编的目录 `@elaraai/east-claude-plugin` 财务报告和审定财务报表 `@elaraai/east-codex-plugin` 在锁步版本中 `scripts/publish-plugins.mjs` - 和公开目录 [elaraai/插头](https://github.com/elaraai/plugins) 逐个列出为 `npm` 源被固定在它发布的版本上,为两个主机. 新套件名称被一手拖出(`scripts/bootstrap-plugins-npm.mjs`),在可以为此配置可信出版之前.

## 建立在 East 插件上

由东方所建出的产品的一个插件——它自己的技能和自己的例子——在自己的本体上运行同样的机械,每个被调用插件自己名字的作品:索引生成器,实例搜索及其MCP工具,搜索第一钩和Codex技能适配器. 东方自有的插件就是这些,用东方的名字来称呼.

```bash
npm install @elaraai/east-plugin@<the East packages' version>
```

**诸版本.** `@elaraai/east-plugin` 在一个版本的船舶上 `@elaraai/*` 软件包共享,并取决于 `@elaraai/east` 财务报告和审定财务报表 `@elaraai/east-diagnostics` 在那个版本。 把它固定在您所使用实例的东方软件包中, 并把它们一起移动 。 东方指数是那个版本的本体.

### 指数

一个 `index.config.json` 命名软件包 `*.examples.ts(x)` 作为东方的索引 [`index.config.json`](https://npmcn.com/package/%40elaraai/east-plugin/index.config.json) 是否: 来源为 `ir: true` 是一个以东程序为例的软件包,从它已建的测试模块中读取(`dist`),并与其所打印的TypeScript作为IR存储;其他任何被作为作者来源存储. 手写条目(如CLI) `index.static.json` 联 合 国 `{ "entries": [...] }`。 。 。 .

```bash
npx east-plugin-generate-index --base-dir . --config index.config.json --static index.static.json --out index.json
# the python printings of the programs, optional (without them a program answers in TypeScript only):
uv run --with elaraai-east-py python node_modules/@elaraai/east-plugin/scripts/render-python.py index.json
```

从代码, `generateIndex({ baseDir, config, staticEntries })` (单位:千美元)`@elaraai/east-plugin/scripts/generate-index`)返回要写入的索引.

### 搜索

搜索和获取 MCP 服务器上的工具注册 `registerExampleTools(server, { index, searchTool, getTool, corpus, packages, scopes })`,一旦索引上载,它就会回答:一个服务器在连接之前等待它,所以一个不会在启动时加载失败的索引,命名原因. `scopes` 是npm 瞄准镜 炸弹包安装在, `@elaraai` 除非给出:包过滤器接受其中任何一个下的名称,搜索工具告诉代理商不要读取那里已安装的包. 一个插件用East的两种方法之一来组成它的包:

-   **一个服务器回答两个蝎子.** 服务East的索引与你自己的索引:包过滤器既知道两者,又有一个例子id命名了它的包,所以两者从不相撞.
    
    ```ts
    import { fileURLToPath } from "node:url";
    import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
    import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
    import { registerExampleTools } from "@elaraai/east-plugin/mcp/example-tools";
    import { EAST_INDEX_PATH } from "@elaraai/east-plugin/lib/east-index";
    
    const server = new McpServer({ name: "acme", version: "1.0.0" });
    await registerExampleTools(server, {
      index: [EAST_INDEX_PATH, fileURLToPath(new URL("../index.json", import.meta.url))],
      searchTool: "search_acme_examples",
      getTool: "get_acme_example",
      corpus: "Acme",
      packages: ["acme-cloud", "east", "e3"],
    });
    await server.connect(new StdioServerTransport());
    ```
    
-   **各取一..** 安装在您旁边的 East 插件用它自己的工具解答 East 的元件; 您的服务器只服务您的索引 .
    

`EAST_INDEX_PATH` 命名已安装的软件包 `index.json`。一个捆绑的服务器,作为East的插件捆绑他们的插件,复制文件在构建时输入插件,并从那里读取.

### 包裹

主机安装的插件是一个目录,每个文件都是真实的,完全不依赖. `assemblePlugin` (单位:千美元)`@elaraai/east-plugin/lib/package`) 从您的插件源头—— 它的显示目录, 它的建立 `.build/`,每个 `hooks/hooks.json`, (中文(简体) ), `.mcp.json`, (中文(简体) ), `.lsp.json`,读取,LICENSE和(克洛德码) `commands/` 财务报告和审定财务报表 `agents/` 它有——你的技能目录(后面的符号链接,包含一个链接的技能目录;在您的名字中被改编为Codex),以及你的索引,并生成一个 `package.json` 没有依赖性。 它就在旁边 `out` 并且一旦完成就搬入原地,所以失败将留下一个更早的集合 `out` 除先前的集合或源头重叠外,其他任何物体都不得持有:

```ts
import { assemblePlugin } from "@elaraai/east-plugin/lib/package";

await assemblePlugin({ host: "claude", source: "packages/acme-claude-plugin", skills: "packages/acme-plugin/skills", index: "packages/acme-plugin/index.json", out: "marketplace/acme-claude-plugin" });
await assemblePlugin({ host: "codex", source: "packages/acme-codex-plugin", skills: "packages/acme-plugin/skills", index: "packages/acme-plugin/index.json", out: "marketplace/acme-codex-plugin", names: ACME });
```

发布每个目录 `npm publish <dir> --access public` ,并在 [elaraai/插头](https://github.com/elaraai/plugins) catalog,该目录将每个标注在它为两个主机发布的版本上. 同一个目录,旁边是 `.claude-plugin/marketplace.json` 财务报告和审定财务报表 `.agents/plugins/marketplace.json` 拥有相对来源,是当地的发展市场,就像东方的 `scripts/package.ts` 写一个.

### 钩子

Claude Code每起事件都有一个钩子 每个功能都是共享的,由您的名字配置 :

```ts
// hooks/pre-write.ts — the gate on a write of your code with no search on record
import { gateText, type SearchGuidance } from "@elaraai/east-plugin/lib/search-guidance";
import { runPreWriteGate } from "@elaraai/east-plugin/lib/search-hooks";
import { SEARCH_TOOLS } from "@elaraai/east-plugin/lib/transcript";

const ACME: SearchGuidance = {
  searchTool: "mcp__plugin_acme_acme__search_acme_examples",
  getTool: "mcp__plugin_acme_acme__get_acme_example",
  corpus: "Acme",
  scope: "@elaraai",
};
await runPreWriteGate({
  searchTools: [ACME.searchTool, ACME.getTool, ...SEARCH_TOOLS], // a search of East's corpus counts too
  gateText: gateText(ACME),
  isCorpusCode: (code) => /@elaraai\/acme/.test(code),
  markerPrefix: "acme-search-seen",
  requireSearchEnv: "ACME_REQUIRE_SEARCH",
});
```

读取的提醒是 `runPreReadReminder({ readText: readText(ACME), isCorpusRead: corpusReadFor(ACME.scope) })`。编码器在每个工具上运行一个钩: `codexSearchGate(event, options)` (单位:千美元)`lib/codex-hook.ts`电话后用工具记录搜索情况,在记录之前,它会提醒人们读取你的体格和门的密码; `writeSearchHookReply` 写下答案.

### 技能

一个插件会传送自己的技能;东方来自它旁边安装的东方插件. Codex只缓存插件本身,所以一个Codex插件将它的技能作为真实文件传送,改编自克洛德代码: `materializeSkills(sources, target, names)` (单位:千美元)`lib/codex-skills.ts`)适应了每种技能的"Markdown"——你的工具失去了克洛德代码的MCP前缀, `/acme:` 变成 `$acme-codex-plugin:`并复制其他文件.

## 常见问题

### @elaraai/east-plugin 是什么？

East的代理插件运行时间——实例索引生成器,实例搜索及其MCP工具,搜索第一钩和Codex技能适配器——用于一个以East's为基础的Claude Code或Codex插件\.

### 如何安装 @elaraai/east-plugin？

在项目目录运行 npm install @elaraai/east-plugin，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：typescript（\>=5\.0\.0 \<7）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 east-plugin-generate-index，可以用 npx east-plugin-generate-index 直接运行。

### @elaraai/east-plugin 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/elaraai\_\_east-plugin 是否存在。

### @elaraai/east-plugin 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @elaraai/east-plugin 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @elaraai/east-plugin 可以商用吗？

@elaraai/east-plugin 使用 AGPL-3\.0-or-later 许可。最严格的 Copyleft：除分发外，通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括，不构成法律意见，请以许可原文为准。

### @elaraai/east-plugin 的下载量有多少？

根据 npm 官方下载统计，@elaraai/east-plugin 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,366 次，日均约 112 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @elaraai/east-plugin 还在维护吗？

最新版本 1\.0\.107 发布于 2026/11/13（今天）；至今共发布 23 个版本，其中过去 12 个月发布了 23 个；首次发布于 2026/10/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

