跳到主要内容

ARC 2.0.0-beta.28

检查、构建与 inspect

运行 arc blocklet check、build、inspect、dev 并附真实输出;把每条命令当作不同证明。

构建通过本身不能证明应用 surface。用一条短链路,并记录每一步实际证明了什么。

验收链

步骤命令证明不能证明
DSLarc dsl validate <dir>声明的 AUP/DSL 源可解析运行时行为或 HTTP 200
Package 契约arc blocklet check [dir] --profile <p>满足 recipe/profile 要求浏览器布局
约定扫描arc blocklet dev [dir]检测到的内容类型 / mount / 索引提示正在提供服务
构建arc blocklet build [dir]写入了 dist/ 与 AFS/flat manifest读者看到了目标页
Inspectarc blocklet inspect <dir>Package 身份 + 文件列表(+ 发布状态)UX 正确
本地运行arc blocklet run / service start --blocklet可观察本地 surface远程部署健康

arc blocklet check

bash
arc blocklet check ./demo-basic
arc blocklet check ./demo-min --profile minimal-app

CLI 接受的 profile:basic(默认)、minimal-appagent-workspacesupport-community

已验证输出:

text
Passed blocklet check (basic)
  dir: /…/demo-basic
  AUP pages: (none)
  web sections: 0
  agents: 0
  settings files: 0

Passed blocklet check (minimal-app)
  dir: /…/demo-min
  AUP pages: agent, home, settings
  web sections: 1
  agents: 1
  settings files: 5

arc blocklet validatecheck 的别名(措辞更偏校验)。

脚本化时用 JSON:

bash
arc blocklet check ./demo-min --profile minimal-app --json

arc dsl validate(与 lint)

bash
arc dsl validate ./demo-min
# Passed DSL validation
#   path: /…/demo-min
#   files: 16

arc dsl lint 可能在脚手架输出上报告格式漂移:

text
Failed DSL lint (3 changed)
  ERROR format_changed .aup/app.aup: File is not formatted. Run arc dsl format --write.

需要干净 lint 时用 arc dsl format --write <dir>check 仍可通过而 lint 报 format_changed——它们回答不同问题。

arc blocklet build

bash
arc blocklet build ./demo-basic
arc blocklet build ./demo-min

已验证:

text
Published 1 file(s) → /…/demo-basic/dist
  .afs/manifest.json  (http-mount protocol)
  blocklet.dist.json  (flat manifest)
  instance: stateless

Published 20 file(s) → /…/demo-min/dist
  .afs/manifest.json  (http-mount protocol)
  blocklet.dist.json  (flat manifest)
  instance: requires /instance DID Space

参数默认含义
--output <dir><dir>/dist输出目录
--dry-runfalse只计算 manifest,不写盘
--cleantrue写入前清理输出

不要手改 dist/。除非发布流程明确要求生成物,否则不要提交它(本站 blocklet 对 dist/.web-cache/ 做了 gitignore)。

构建 demo-basic 后的 .afs/manifest.json 片段示例:

json
{
  "afs": "1.0",
  "type": "readonly-tree",
  "files": [
    {
      "path": "blocklet.yaml",
      "size": 107,
      "contentType": "text/yaml",
      "sha256": "aeb371c705d2…"
    }
  ]
}

arc blocklet inspect

bash
arc blocklet inspect ./demo-basic
arc blocklet inspect ./demo-min

已验证形态:

text
Blocklet: demo-basic (demo-basic)
  path:    /…/demo-basic
  version: 0.1.0
  did:     did:blocklet:demo-basic
  status:  published
  files:   1  (107 bytes)
    blocklet.yaml  (…)

Blocklet: demo-min (demo-min)
  path:    /…/demo-min
  version: 0.1.0
  did:     did:blocklet:demo-min
  status:  published
  files:   20  (4468 bytes)
    .afs/preflight.json
    .aup/app.aup
    …

status: published 在此表示本地存在 dist/ 产物,供 inspect/list 使用——不是远程 DID Space 或 Cloudflare 部署成功。

arc blocklet dev

bash
arc blocklet dev ./demo-basic
# Blocklet: /…/demo-basic

arc blocklet dev ./demo-min
# Blocklet: /…/demo-min
# Content type: aup
# Index: pages → /
# Mount: agents/app-agent → /agents/app-agent
# Mount: pages → /pages

dev 当作目录约定报告,不是服务器。

arc blocklet list

bash
arc blocklet list .

已验证:

text
Blocklets under /…:
  demo-basic v0.1.0  [published]
    path: demo-basic
  demo-min v0.1.0  [unpublished]
    path: demo-min

成功 build 后该 package 的状态会变为 published。

记录一次验收笔记

对重要变更保留短记录:

  1. arc --version
  2. 确切的 check profile 与结果
  3. build 文件数 + instance:
  4. 本地 URL 与 HTTP/浏览器结果
  5. 明确说明远程发布纳入测试(或已纳入及目标)

CLI 手册:arc blocklet。诊断模式:测试与诊断