@cef-ai/cli

中文文档
4.2.0发布于 2026/10/30TypeScriptES Module近 30 天下载 3918

cef ——建设,打字,检查指挥线的特务. 镜像代理Runtime合同(ADR-001):捆绑安装平面处理器地图 globalThis.__handlers,列表中标有管弦乐手读取的路由表.

中文使用文档
文档目录10 节
  1. 安装
  2. 子命令
  3. DDC 证书 cef push , (中文(简体) ), cef widget push , (中文(简体) ), c…
  4. 装腔作势的特工
  5. 快速启动
  6. 出版到组织金库
  7. 程序化 API
  8. 构建时间线
  9. 配套软件包
  10. 参考资料

@cef-ai/ cli (英语)

cef ——建设,打字,检查指挥线的特务. 镜像 agent Runtime合同(ADR-001):捆绑安装平面处理器地图于 globalThis.__handlers,列表中标注了管弦乐手的路由表 读取.

安装

pnpm add -D @cef-ai/cli

这增加了 cef 二进制为 node_modules/.bin在一个工作空间项目中, 通过它引用 pnpm exec cef <subcommand>。 。 。 .

子命令

子命令状态说明
cef init [dir]已运出脚手架,一个Hello-world代理项目(代理+cubby+部件+测试),取决于发布内容 @cef-ai/* 软件包。 与 --yes/flags; 撰写方便AI的文件, 自动连接 cef Claude 代码插件 (--no-ai 跳过).
cef deploy已运出让代理人活下来: 应用 repo 的 deployments/ 文件夹(或单个集文件)到平台. --endpoint <url> (或 $CEF_ENDPOINT; 默认为 dev , --deployments <file|dir>, (中文(简体) ), --version, (中文(简体) ), --as-pubkey, (中文(简体) ), --dry-run. 要求部署记录+可到达端点.
cef build已运出打开代理条目, 装入 Esbuild (捆绑导入 SDK 运行时间 shims并安装) globalThis.__handlers),发射 dist/<agentId>/{bundle.js,manifest.json}。 。 。 .
cef typegen已运出生成 .cef/generated.d.ts (声明合并) KnownEventTypes)并刷新 cef.lock.json。 。 。 .
cef inspect <agentDir>已运出读取已建 manifest.json,运行捆绑 node:vm,并报告打开的处理器名称 __handlers 加上任何路由 目标显示的参考 但捆绑不暴露.
cef publish已运出POST 已建代理卡到市场API(--as-pubkey, (中文(简体) ), --access-token编号 :$CEF_ACCESS_TOKEN ——同一CLI访问符 cef deploy (a) 使用.
cef push已运出上传代理到 DDC . --kind internal (默认)上传已建代理 bundle.js (+ 部件 dirs) 和盖章 货单的捆绑回放 —— 直接装入你控制的桶中 (--bucket),或者通过"金库-api"进入组织"金库范围"("金库")--vault <id> --vault-scope <scope>) (中文(简体) ). --kind external 注册运行的代理 外部 平台,从其 A2A 对 代理卡:取出卡片,获得一张清单(kind: "external", (中文(简体) ), a2aCard: <url>,没有捆绑)并写到同一个桶注册处. 外部旗帜 : --card <url>, (中文(简体) ), --alias, (中文(简体) ), --agent-version, (中文(简体) ), --scope, (中文(简体) ), --idle-timeout。 。 。 .
cef eval <sub>已运出工作流程评价,一次一个工作流程--workflow默认值: cef.config.ts 或者说 dist/ 声明). datasets, (中文(简体) ), create <dataset>, (中文(简体) ), pull <dataset> 编号 : push <dataset> (雷波语) datasets/<dataset>/ - 保险库; push --cut, (中文(简体) ), --force, (中文(简体) ), --prune, (中文(简体) ), --restore· ; pull --force, (中文(简体) ), run <dataset> (单位:千美元)--workflow-version, (中文(简体) ), --dataset-version, (中文(简体) ), --repeats, (中文(简体) ), --baseline, (中文(简体) ), --resume, (中文(简体) ), experiments [dataset], (中文(简体) ), compare <a> <b>工作流程(包括:--vault编号 :$CEF_VAULT_ID,默认钱包本身),其范围(--scope,默认其 requiredScopes); 需要钱包(--keystore编号 :--password 或者说 --secret-phrase)或(或) --access-token编号 :$CEF_ACCESS_TOKEN和金库的拨款 在那个范围. run 需求 --as-pubkey编号 :$CEF_AS_PUBKEY。见 @cef-ai/eval。 。 。 .
cef test树枝占位符 - 使用 vitest 直接与 @cef-ai/testing 直至综合跑道降落.
cef dev树枝占位符——待被打包的平台图像.

cef build 每个已声明代理撰写一个目录 :

dist/
  <agentId>/
    bundle.js      # IIFE that installs globalThis.__handlers — a flat map
                   # of handler functions the runtime dispatches as
                   # __handlers[name](event, context). Event handlers are
                   # keyed "<engagementId>::<method>"; lifecycle hooks under
                   # the fixed keys onStart / onClose.
    manifest.json  # AgentManifest body — bundle embedded inline; each
                   # engagement carries handles{eventType -> handlerName}
                   # (namespaced) and hooks[] ("start"/"close"). Identity /
                   # signature fields are blank until `cef publish` signs.

处理器名称命名间隔( E)<engagementId>::<method>) 保持平地状态 __handlers 当多个任务宣布某一方法时,地图无相撞 名称; 乐团从 HandlerFor,所以AR直接检查。 生命周期钩子不是 名称空格——管弦乐手硬码 onStart 编号 : onClose - 如此的方法 - 对 - so a method 名称可以重复使用,作为跨业务约定的活动处理器,但只有一个 每个代理商可能拥有每个生命周期钩(cef build a 的错误 碰撞).

cef typegen 读取 cef.config.ts (和 publishes 声明)和 写入 .cef/generated.d.ts输入 KnownEventTypes 所以作者们 获得字符串- 升自动补全 @OnEvent 财务报告和审定财务报表 ctx.publish编辑 cef.lock.json 在每次运行时都会重写快照, 所以 VCS diffs 表面 类型漂移.

DDC 证书cef push, (中文(简体) ), cef widget push, (中文(简体) ), cef cubby push(中文(简体) )

向桶上写字完全由以下之一授权: 1

  • --secret-phrase 编号 : $CEF_DDC_SECRET_PHRASE - 拥有钥匙的短语 桶头.
  • --access-token 编号 : $CEF_DDC_ACCESS_TOKEN - 由DDC公司授予的DDC访问令牌 桶主来.

访问令牌要么没有标的(无记名令牌:按原样发送),要么是 发给一个钥匙,它的主体——在ROC代理服务邀请函中的标志是: 发给受邀成员。 存储节点接受标的符号 仅根据该密钥签名的请求,所以CLI也需要其短语: --subject-phrase 编号 : $CEF_DDC_SUBJECT_PHRASE。CLI检查该短语 在连接前生成对象(sr25519或ed25519),并拒绝 没有它,而不是让节点回答 issuer doesn't match subject in parent token。没有该短语,使用 在ROC的代理服务成员面板上的"Copy DDC sord for the CLI"——它 用你的钱包来签名,一个在您邀请下没有标出主题的标志——或者 向桶主询问一个没有标注对象的标志 .

装腔作势的特工

桶推( 推出)cef push --bucket也宣布,在水桶的幼崽 登记(cubbies/<alias>每立方公尺,上面写着: 尚未命名 — at 0.1.0,该版本 cef cubby push 使用,与 明显是移民 这就是ROC在部署工作流程执行者时所做的 runs cuby; 没有它, 工作流程只能通过 CLI 失败 第一步与 cubby: lookup schema: … Failed to get cns record。别名 注册名称从未被触动( 用 cef cubby push如果登记处无法阅读,则不宣布任何内容。 A 类 在代理被推后声明未写入命令; 重试一遍. cef push --vault 不这样做——金库-api做 也没有宣布幼崽.

快速启动

pnpm add -D @cef-ai/cli
pnpm exec cef build
pnpm exec cef inspect dist/<agentId>

注册在别处运行的代理是同一个命令, 不同 --kind,而且根本不需要建设步骤——我们没有编译的代码:

pnpm exec cef push --kind external \
  --card https://ai.example/.well-known/agent-card.json \
  --bucket 1338 --as-pubkey 0x<agent-service-pubkey> --env dev

它和任何其他代理人一样出现在ROC的注册簿上,可以连接到一个 保险库和从沙盒发送事件.

出版到组织金库

一个组织金库的特工 住在金库自己的登记桶里 还有 (原始内容存档于2018-03-27) (英语). vault-api write it——而不是CLI. 命名金库和发布范围 从一桶取出 :

pnpm exec cef push --vault <vaultId> --vault-scope gtm \
  --secret-phrase "<your wallet phrase>" --as-pubkey 0x<agent-service-pubkey> --env dev

库- api 检查您持有在瞄准镜( 库主, 或 拥有成员一级补助金的成员),并将代理人的别名与 范围是首先公布的,因此另一个范围无法取而代之。 国家行动倡议 上传该版本的文件, 并附有未加标记的显示; 保险库- api 印出 捆绑和部件 CID 并返回存储的运算表,其中 cef push 写回 dist/<id>/manifest.json。 。 。 .

全权证书: --secret-phrase 编号 : $CEF_VAULT_SECRET_PHRASE 使用自己的符号 钱包密钥, 生成为 ed25519( 唯一的方案金库- api 接受), 或 --vault-token 编号 : $CEF_VAULT_TOKEN 发送钱包- api 令牌 . $CEF_DDC_SECRET_PHRASE 没有 这里使用的:它取出一个桶主的名字,而不是你. --bucket, (中文(简体) ), --access-token, (中文(简体) ), --preset, (中文(简体) ), --endpoint 财务报告和审定财务报表 --cdn 不适用,并被拒绝.

一个金库的答案 REGISTRY_NOT_CONFIGURED 直到它的主人记录 登记桶并封存登记代表团 (单位:千美元)PUT /api/v1/vaults/<vaultId>/delegations) (中文(简体) ). 店主这样做 在ROC的组织网页上,或与 sdk.vault.delegations.grant 从 @cef-ai/vault-sdk。 。 。 .

这些种类使用不相干旗帜——捆绑没有卡片,卡片没有 dist/ - 所以通过一种旗帜和另一种旗帜 --kind 被拒绝 名称而不是被忽略。 它所防止的失败是沉默的: --card 无 --kind external 否则,会推 任何最后建造和报告 成功吗.

程序化 API

每个子命令都有从软件包导出的相应函数 根, 从测试和脚本中有用 :

import { cefBuild, cefTypegen, cefInspect } from "@cef-ai/cli";

const build = await cefBuild({ cwd: process.cwd(), outDir: "dist" });
for (const a of build.agents) {
  console.log(a.agentId, a.bundlePath, a.bundleBytes);
}

await cefTypegen({ configPath: "./cef.config.ts" });

const inspected = await cefInspect({
  agentDir: "dist/echo",
  print: false,
});
for (const e of inspected.engagements) {
  console.log(e.id, e.handles, e.hooks, e.exposedMethods, e.missingMethods);
}

构建时间线

cef build 在代理服务器的条目文件之前运行一个合成插件 捆绑. 失败以单个可操作消息中止构建 。 这个 规则反射其中 @cef-ai/eslint-plugin 所以编辑器 警告与CI失败一致.

  • @OnEvent(...) 参数必须是字符串文字.
  • ctx.publish(t, ...) 第一个参数必须是字符串字元.
  • ctx.cubby("alias") 参数必须是文字和宣布的别名 cef.config.ts cubbies[].alias。 。 。 .
  • ctx.models.X 成员必须参考已宣布的模型别名.
  • 导入不得针对被禁模块列表(节点内置像 fs, (中文(简体) ), net, (中文(简体) ), http, (中文(简体) ), child_process,加同步 DB / 网络 npm 软件包)。 特工们使用全球 fetch 用于HTTP和 ctx.cubby 页:1 状态; globalThis.crypto (网络晶体)替换 node:crypto。 。 。 .

完整的被禁单元清单和理由在 agent-sdk.md 7节.

配套软件包

参考资料

  • SDK Spec探员: ../../../company-memory-bank/specs/platform/03-components/agent-sdk.md
  • 运行时间整合合同 : ../../../company-memory-bank/specs/platform/03-components/sdk-runtime-integration-contract.md

这个 ../company-memory-bank/... 路径指向内部兄弟重播 并且不能从新克隆人那里浏览.

版本与发布记录

@cef-ai/cli 共发布 60 个版本,首次发布于 2026/04/08;过去 12 个月发布了 60 个版本。

版本发布日期距今
4.2.0latest2026/10/3010 天前
4.1.12026/10/2911 天前
4.1.02026/10/2712 天前
4.0.02026/10/2218 天前
3.0.02026/10/2119 天前
2.9.12026/10/1723 天前

关于 @cef-ai/cli 的常见问题

@cef-ai/cli 是什么?

cef ——建设,打字,检查指挥线的特务. 镜像代理Runtime合同(ADR-001):捆绑安装平面处理器地图 globalThis.__handlers,列表中标有管弦乐手读取的路由表.

如何安装 @cef-ai/cli?

在项目目录运行 npm install @cef-ai/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 cef,可以用 npx cef 直接运行。

@cef-ai/cli 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cef-ai/cli 支持 ESM 还是 CommonJS?

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

@cef-ai/cli 可以商用吗?

@cef-ai/cli 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@cef-ai/cli 的下载量有多少?

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

@cef-ai/cli 还在维护吗?

最新版本 4.2.0 发布于 2026/10/30(10 天前);至今共发布 60 个版本,其中过去 12 个月发布了 60 个;首次发布于 2026/04/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。