@anna-ai/cli

中文文档
0.1.64发布于 2026/11/06MITTypeScriptES Module近 30 天下载 2151

Anna App开发商CLI:脚手架,验证,取用(第2阶段MVP:init +验证).

中文使用文档
文档目录17 节
  1. 安装
  2. 图标
  3. anna-app init <dir> [--slug <slug>] [--template minimal] [-…
  4. anna-app validate [--manifest manifest.json] [--bundle bund…
  5. anna-app dev [--manifest …] [--bundle …] [--port 5180] [--m…
  6. anna-app doctor [--matrix-nexus-root <path>]
  7. anna-app fixture verify <file.jsonl>
  8. anna-app fixture summarize <file.jsonl>
  9. anna-app fixture replay <file.jsonl> [--manifest …]
  10. 程序操纵(最优)
  11. Pytest 插件 (E) anna-executa-test (中文(简体) )
  12. Schema 捆绑
  13. 浏览器 SDK
  14. 持续储存(APS)
  15. 路线图
  16. 固定版本
  17. 测试

@anna-ai/ cli (韩语)

Anna App 开发者 CLI — scolfold, 验证, 运行本地 Dev 牵引, 驱动 基于固定式回归测试,以及针对来自 vitest编号 :pytest第二阶段至第九阶段已经完成.

安装

最终用户安装( 在第一个 npm 发布后):

npm i -g @anna-ai/cli
anna-app --help

这个 dev 财务报告和审定财务报表 fixture replay 命令透明地获取被绑定的 Python 运行时间通过 uvx (无需矩阵-nexus的取出). 安装 页:1 一次:

curl -LsSf https://astral.sh/uv/install.sh | sh

本地 dev( 此重播) :

pnpm install
pnpm build
node dist/cli.js --help

图标

anna-app init <dir> [--slug <slug>] [--template minimal] [--force]

脚手架 一个新的 Anna App 项目( 明显 + 捆绑 + stdio 插件) 模板). __TOOL_ID__ 变成 tool-dev-<slug>。 。 。 .

anna-app init my-app --slug my-app
cd my-app
anna-app validate

anna-app validate [--manifest manifest.json] [--bundle bundle] [--strict]

分层故障快速检查:遗产正常化(方案1 - 3显示为 折叠到计划 4 及其已退役的球场—— permissions, (中文(简体) ), host_capabilities,则 ui.host_api 方法清单——报告为 警告——杰森·斯克马 ui 静态 — 交叉文件 tool_id 内插( 与 Evenshtein-1 typo 检测) → 浏览器版面用法 vs ui.browser_permissions (警告:例如. getUserMedia 无 "microphone" 被 Dashboard 权限政策拒绝 – 论坛 # 395 → --strict allowed_tools 字数对 ui.host_api.agent.tools。 。 。 .

没有方法级主机 API 允许列表: 安装 App 是 用户的同意,以及 anna.<ns>.<method> 可供安装 App. (英语). 一个表单只宣布了三种能力 涉及第二次 校长:

声明含义
ui.host_api.credentials: ["google"]app可能通过下列方式读取的第三方账户: credentials.*
ui.host_api.agent.tools: ["fs_read_file"]主机- kit 工具( e)fs_* 编号 : exec_* 编号 : browser_*可使用沙盒代理会话; ["*"] = 总数
storage.scopes: {"user": "rw"}跨App数据(user 编号 : tool / 另一个App's app 桶; App 的自带 app 范围不需要声明

anna-app dev [--manifest …] [--bundle …] [--port 5180] [--matrix-nexus-root <path>] [--executa <spec>…]

搭便车:

  • 喷出Python anna-app-bridge (生产调度器通过 WindowStoreProtocol) (中文(简体) ).
  • 模拟仪表板 http://localhost:<port>/。 。 。 .
  • 自动发现 <manifest-dir>/executas/<name>/ 插件( Python /) 节点.js / go / 预建 二进制),并在程序中注册它们 ExecutaPool。见下文“多语言执行”.
  • 热重装入磁盘更改上的捆绑( 使用) --no-watch 用于禁用).
  • 嘲讽 实时语音会话 (单位:千美元)anna.audio.session, SDK − 0.21.0) (中文(简体) ) 在仪表板页面中:通过浏览器的 ASR SpeechRecognition (Chrome) LLM通过当地 agent.session通过 speechSynthesis (无) tts_audio 帧——应用程序的玩家保持闲置. 活动/ setContext 编号 : say / 驳入/ end() 跟着制作 协议.
  • 应用 与生产相同的权限政策门: 线框 allow 属性和捆绑 Permissions-Policy 信头都来自 运行时间( e)ui.browser_permissions 隐含 audio: ["session"] ⇒ microphone ∪ frame-src {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}请回放 一个没有记录的应用程序 声明 "microphone" 局部失败 完全像失败一样 盘子 - validate 告诉你原因.
  • 镜像 主机主题/ locale (SDK = 0.24.0): iframe URL载体 ?theme=&themeMode=&lang= 并播放标题栏 QQ/QQ和 EN/ theme.changed 编号 : locale.changed 事件,所以 anna.onThemeChange() 编号 : anna.onLocaleChange() 可以在没有生产主机的情况下行使.
  • 前进 agent.session.run 逐字到关系账户,所以 可选每次运行 maxTokens (发送者为 0.30.0 / SDK 为 0.26.0) 添加剂 run_meta.max_output_tokens 编号 : task_complete.{stop_reason,truncated} 帧的表现与生产时完全相同.

多语言执行器

每一子目录 <manifest-dir>/executas/ 根据 第一个匹配的哨兵:

{\fn方正粗倩简体\fs12\an8\1cHFFFF00\b0}哨兵队类型默认发射
0 个executa.json(任何一个)command 字段,下面有其它类型的默认值
1个pyproject.tomlpythonuv run --project <dir> <tool_id>
2个package.jsonnodenode <bin[tool_id] | bin | main | module>
3个go.mod (独行)go需求 executa.json 声明 type: "go"
页:1bin/<dirname> 执行binary直接运行可执行文件

executa.json (建议明确,GO和预建所需) 二进制工具 :

{
  "tool_id": "tool-yourhandle-foo-abcd1234",
  "type":    "python" | "node" | "go" | "binary",
  "command": ["…"],          // optional; full override of type defaults
  "enabled": true             // optional; default true. Set false to skip
                              // (useful when shipping multiple language
                              // flavours of the same tool_id).
}

这个 --executa <spec> 旗帜( 可换行) 登记树外 executa,或完全覆盖运行时的自动发现. 光谱语法 :

# Auto-detect from the dir (same rules as in-tree discovery):
anna-app dev --executa dir=./vendor/external-tool

# Force type when there's no executa.json:
anna-app dev --executa dir=./executas/foo,type=go

# Fully explicit:
anna-app dev --executa dir=./executas/foo,tool_id=tool-h-foo-12345678,command="node plugin.js"

关于全部发现/ executa.json 参考文献,参见 anna-executa-examples/docs/multi-language-anna-apps.md。 。 。 .

两个运行时间模式( 自动选择) :

模式何时命令
uvx (默认)附近没有矩阵- nexus 检查uvx --from anna-app-runtime-local@<pinned> anna-app-bridge
nexus-source--matrix-nexus-root 设定, $ANNA_NEXUS_ROOT 设置, 或从内侧取出uv run --project <root> python -m anna_app_runtime_local.bridge

被绑定的轮子版本导出为 PINNED_RUNTIME_VERSION 从 斜/斜/桥 - 撞上锁与 packages/VERSIONS.md 在矩阵内.

anna-app doctor [--matrix-nexus-root <path>]

环境清醒度检查 : uv 在路径上, uvx 被绑定的缓存状态 运行时间,可选矩阵-nexus取出, dev 签名密钥权限. 退出 0 如果所有需要的检查证.

anna-app fixture verify <file.jsonl>

严格合成+语义验证所记录的固定(信封) 命令 响应 请求对齐).

anna-app fixture summarize <file.jsonl>

漂亮的统计数: 计数 (ns, method),错误分解,事件总计.

anna-app fixture replay <file.jsonl> [--manifest …]

干跑重放( MVP): 重执行记录的请求序列 新鲜的 LocalDispatcherSession 并显示每个响应。 现场执行 重新召集被推迟到未来的未成年人.

程序操纵(最优)

import { mountBundle } from "@anna-ai/cli/test";

const h = await mountBundle({
  manifest: "./examples/hello/manifest.json",
  bundle:   "./examples/hello/bundle",
});
await h.call("storage", "set", { key: "k", value: 1 });
const events = h.drainEvents();
await h.close();

见 标准/测试/指数.ts 为整个地表。 电话是 与清单中的能力申报完全相同 生产量tools.invoke * 已申报的执行、非自存范围 storage.scopes, (中文(简体) ), credentials.* → ui.host_api.credentials)没有 方法级 ACL.

Pytest 插件 (E)anna-executa-test(中文(简体) )

对于执行作者。 生活在矩阵-正数 packages/anna-executa-test/提供 executa_session 编号 : executa_invoke 固定装置——见该包的README.

Schema 捆绑

@anna-ai/app-schema 是 npm 常规依赖。 设定 ANNA_APP_SCHEMA_DIR 指向一个 本地检出( 例如 ). matrix-nexus/packages/anna-app-schema/改为: 在协议上标注而不发布.

浏览器 SDK

终端用户应用程序捆绑装入 AnnaAppRuntime 从 /static/anna-apps/_sdk/<version>/index.js。两个矩阵-nexus 生产服务器和CLI的用具服务于来自 公共 npm 软件包 @anna-ai/app-runtime, (中文(简体) ), 被宣布为正常依赖。 没有卖出副本, 没有同步 步骤.

持续储存(APS)

Anna 1.2+ 暴露了JSON-RPC在下方的每个用户存储表面 storage/* 名称空间。 每个安装的Executa都收到一个 storage_token 为其自身服务 tool 范围——安装是同意的,并非给予什么。 还要 触摸整个用户 user 范围 :

  1. 在插件描述的显示中宣告它的结构 "storage": {"scopes": {"user": "rw"}} (或遗产) host_capabilities: ["aps.scope.user.read", "aps.scope.user.write"] 字符串; aps.kv 编号 : aps.files 只有自我范围.
  2. 谈判 client_capabilities.storage = {} 期间 initialize。 。 。 .

anna-app executa dev --storage real 薄荷金币 和这些 范围(tool +已声明),镜像平台薄荷.

见协议和最佳做法指南 anna-executa-examples/docs/persent-surversent-surverage.md 互联网档案馆的存檔,存档日期2013-12-02 用于线条格式、出错代码和工作过的OCR-cache示例。 这个 当地 dev lande 默认模拟 APS 所以端到端测试不 需要网络访问.

路线图

阶段状态范围
2 - 时间: init + 键 validate✅ MVPSchema/ACL检查
3 - 3 (英语) dev 绳子✅ MVPStdio桥、仪表板、热重装
4 - 4 (中文(简体) ) @anna-ai/cli/test✅ MVP程序化 mountBundle
5 - 5 (英语) anna-executa-test (pystest) (英语)✅ MVP从矩阵- nexus 运出插件
6 - 说明 fixture {verify,summarize,replay}QQ MVP (干跑重放) (英语)直播延期
7——出版发行已经完成uvx 默认 + 满 [email protected] 取出; 最终用户不再需要矩阵- nexus 退出
8 - 国家 manifest.dev 块 + init 模板 + 4 文件已经完成见 矩阵-nexus/docs/开发商/应用程序/数字 : local-dev.md, (中文(简体) ), testing-bundle.md, (中文(简体) ), testing-plugin.md, (中文(简体) ), recording-replay.md
9 — 参考实例升级已经完成anna-executa-examples/examples/anna-app-focus-flow 船舶 tests/{bundle,plugin}/固定装置,以及 .github/workflows/anna-app.yml

固定版本

  • PINNED_RUNTIME_VERSION = "0.2.0a1" (单位:千美元)斜/斜/桥(中文(简体) )
  • 见 matrix-nexus/packages/VERSIONS.md 用于完整的工具链矩阵.

测试

pnpm test

版本与发布记录

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

版本发布日期距今
0.1.64latest2026/11/061 天前
0.1.632026/10/308 天前
0.1.612026/10/2315 天前
0.1.602026/10/2117 天前
0.1.592026/10/1622 天前
0.1.582026/10/0929 天前

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

@anna-ai/cli 是什么?

Anna App开发商CLI:脚手架,验证,取用(第2阶段MVP:init +验证).

如何安装 @anna-ai/cli?

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

@anna-ai/cli 支持 TypeScript 吗?

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

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

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

@anna-ai/cli 需要什么版本的 Node.js?

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

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

@anna-ai/cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

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

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

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

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