跳转到内容
flamo
开始使用

Artifact

Artifact 是 Flamo 在设计、作者工具、Runtime、Studio 和发布管线之间传递的 canonical 数据。无论入口来自 Figma、Codex 还是 TS/JS,能够持久化、比较、验证和交付的结果都应落到 Artifact,而不是某次运行的对象快照。

字段 职责
source 输入来源与同步 provenance
scene 可渲染节点、层级和资源引用
tokens 变量集合、mode、alias 与 binding
prototype 页面/Frame 原型交互与过渡
nodeArtifacts 节点级脚本、绑定、overlay 与公开 surface
exports 可发布边界、tagName 与 public surface
metadata 版本、主导出和其他受约束元数据

字段的精确类型、必填性和源码位置以 FlamoArtifact 字段手册为准。

  • Artifact 不是 Component 的同义词:只有带稳定公开契约、精确依赖和发布证据的 Export 才能晋升为 Component Release。
  • Artifact 不是 Instance:它不包含 DOM、ECS Entity、GPU handle、listener 或 timer。
  • Artifact 不是手写页面 DSL:结构通过类型化 schema、authoring operation 和 compiler 维护。
  • Artifact 不是框架组件树:Vue/React 等宿主对象不会进入 Artifact。

运行时 set()、变量 override、Preview 中的 transient Variant 切换只改变当前 Instance。需要永久修改时,使用 revision-safe authoring transaction,并保留 dry-run、receipt、reload 和验证证据。同步输入与用户作者内容发生冲突时,合并规则必须尊重各自 ownership,不能用旧本地 scene 覆盖更新后的设计事实。

Artifact 的稳定边界让同一发布资产可以进入 Studio、Runtime、测试、浏览器 ESM 和 Web Component,而不复制第二套事实。