arc dsl 处理 AUP DSL,.aup 文件(比如页面的 layout.aup)用的声明式语言。除了 lsp,每个子命令都接受一个路径(一个 .aup 文件或者一个 blocklet 目录),不填默认当前目录。
对照版本:arc 2.0.0-beta.50(commit a99fb2c37,main,2026-09-11)。复制 dump 前先跑 arc --version;钉住命令面的是 commit。
arc dsl <subcommand> [path] [options]全局选项(见 总览):--json、--view、--instance / -i(作用在哪个本地 ARC 实例;省略即 default),以及 --home(实例根;要指定作用在哪个实例,用 --instance)。
arc dsl lint
检查 DSL 格式和语义有效性。这是这个仓库自己合并门里跑的四项检查之一。
用法
arc dsl lint [path] [options]--fix:lint 之前先应用所有安全的修复--fix-format:用规范格式重写 DSL 源文件--fix-ids:从页面 DSL 源文件里移除没被引用的显式 id--fix-locales:清理 DSL 源文件里没引用到的 locale JSON key
arc dsl validate
校验一个 .aup 文件或 blocklet 目录。合并门四项检查里的第二项。
arc dsl validate [path]示例
$ arc dsl validate
Passed DSL validation
path: /path/to/your/blocklet
files: 368
Next: arc blocklet build /path/to/your/blocklet成功时会打印一个 Next: 提示指向下一步该跑的命令(arc blocklet build);失败时每条问题按 ERROR <rule> path:line:col: message 的格式报出来。dsl 的子命令里只有这一个会打印 Next: 提示——lint、format、generate、decompile、doctor、migrate-i18n 都不会。
arc dsl schema
打印 AUP DSL 的语言 schema 和 primitive 元数据。
arc dsl schema [path]示例
$ arc dsl schema
Passed DSL schema
path: /path/to/your/blocklet
root: /path/to/your/blocklet
primitives: 63
aliases: 12
snippets: 4
files: 0这几个数字是按项目算的:一个自己定义了 primitive(通过 .scaffold/*.dsl)的 blocklet,primitives 数字会比一个普通 blocklet 高,而内置的那部分总数也会随着 DSL 语言在各个版本里新增 primitive 而变化——想看当前的准确数字,直接跑一次命令,不要把这里的任何固定数字当成一直不变的事实。
arc dsl format
格式化页面 .aup 文件。
用法
arc dsl format [path] [options]--check:如果格式化会改动文件就失败退出--write:原地重写文件
arc dsl generate
从 app.aup 生成 app.json 和页面 JSON 产物。
用法
arc dsl generate [path] [options]--check:如果生成的产物会变化就失败退出--write:原地重写生成的产物
全新的 minimal-app 脚手架零修改时,--check 目前以 5 退出(.aup/app.json、.aup/pages/agent.json、.aup/pages/home.json、.aup/wrapper.json 上的 generated_changed)。完整检查链见 arc blocklet create。
arc dsl decompile
把生成的 AUP JSON 产物反编译回 AUP DSL 源文件,是 generate 的反方向。
用法
arc dsl decompile [path] [options]--check:如果反编译出的 DSL 会改动文件就失败退出--write:原地重写反编译出的 DSL 文件--partial:能反编译的部分照写,缺失的页面产物降级成警告而不是直接失败
arc dsl doctor
把 decompile、format、regenerate-check、validate 一起跑一遍,一条命令检查 DSL 产物的健康状态。
用法
arc dsl doctor [path] [options]--check:如果 doctor 会改动文件就失败退出--write:验证前先原地重写反编译出的 DSL 文件
同一份零修改的 minimal-app 脚手架上,arc dsl doctor 目前以 5 退出(decompile step: failed (0 files, 0 changed))。完整记录见 arc blocklet create 下的检查链。
arc dsl migrate-i18n
把精确匹配的 $t(page.key) 字符串挪进页面本地的内联 i18n 块。
用法
arc dsl migrate-i18n [path] [options]--check:如果迁移会改动文件就失败退出--write:原地重写页面 DSL 和 locale JSON 文件
arc dsl language
检视 DSL 诊断信息、补全建议、hover 元数据,编辑器集成背后的机制。
用法
arc dsl language [path] [options]--line <n>:查补全/hover 用的行号(从 1 开始)--column <n>:查补全/hover 用的列号(从 1 开始)
arc dsl lsp
启动一个 JSON-RPC language server,给 AUP DSL 的编辑器集成用。
arc dsl lsp