跳到主要内容

Schema 命令

注意

这篇文档当前可通过 feishu_doc_id 直连读取,但尚未确认它在 Rabetbase CLI 2.0 🔥 根节点下的真实 wiki 节点位置。本地先按 docx 直连来源保留,避免继续错误复用其他页面的 feishu_node_token

本文档说明 rabetbase schema(子命令 export)的用途与输出结构:导出与 --help 同源的机器可读元数据,便于 IDE、Skill、脚本消费当前 CLI 的命令契约。

概述

schema 用于输出结构化 JSON 载荷(在声明式管线信封的 data 字段中),包含全部 service + command 的说明、风险等级、认证与 appcode 要求、位置参数与完整 flags(含框架为 help 注入的 --format / --yes 等)。本命令未实现 dryRun,不应使用 --dry-run

命令用法

rabetbase schema
# 或
rabetbase schema export

单命令服务:rabetbase schema 等价于 rabetbase schema export(默认子命令为 export)。

输出格式(--format

  • 未指定 --format,且配置文件未设置默认 format 时:默认 json(标准输出信封 + 缩进 JSON)。
  • --format compress:与 json 相同的信封结构,单行紧凑 JSON(无缩进换行),仅机器可读,可明显减少 token。
  • 仍可通过 --format pretty--format table 切换;若用户在配置中设置了全局 format,则 CLI 显式 --format > 配置文件 > 本命令默认 json > pretty

输出说明

成功时走声明式管线的标准输出信封:

字段说明
ok是否成功
command当前命令标签,如 rabetbase schema export
risk本命令风险等级(schema exportread
data见下节「载荷结构」

载荷结构(data

字段说明
schemaVersion契约版本号,当前为 1
clibindisplayNameversiongitCommit
globalFlags与全局 --help 中 GLOBAL OPTIONS 对应的标志列表
services按帮助分组的可调用命令(与 rabetbase --help 一致);不含 CLI 内部兼容用的旧命令别名

每个 service 条目包含:servicelabelisSingleCommanddefaultCommandhasWildcard(是否含 wildcard 路由,如 run)、以及 commands 数组。

每个 command 条目包含:

  • commanddescriptiontag(若有)
  • riskrequiresAuthrequiresAppCodehasFormat
  • supportsDryRun(是否声明了 dryRun 预览)
  • args:位置参数声明(若有)
  • flags:与单命令 --help 中 FLAGS 一致的完整列表(含注入项);pattern 以可序列化形式给出
  • helpExtra:静态字符串,或 { "dynamic": true } 表示帮助为运行时生成(如 run 下列出脚本)

Wildcardrun 等服务在帮助里展示为 <script>,schema 中对该条使用与 wildcard 定义相同的元数据;hasWildcard 标明该服务支持未穷举子命令名。

前置条件

  • 无需登录requiresAuth: false
  • 无需 appcoderequiresAppCode: false

示例

--format json(或无 --format 且未覆盖配置默认)时根层示意:

{
"ok": true,
"command": "rabetbase schema export",
"risk": "read",
"data": {
"schemaVersion": 1,
"cli": {
"bin": "rabetbase",
"displayName": "Rabetbase CLI",
"version": "…",
"gitCommit": "…"
}
}
}

完整 data 体积较大,建议由工具消费而非人工通读。