文件 I/O 模型

wesgine 的文件 I/O 分为三个域:ArtifactDir(持久产出)、ScratchDir(临时计算)和 HostPaths(宿主路径)。


三域模型

域路径特点
ArtifactDir{CellDataDir}/workspace/{actor}/持久产出,Cell 内
ScratchDir.scratch/{runID}/临时计算,Run 结束后 GC
HostPaths宿主文件系统路径引擎只验证边界

ArtifactDir(INV-IO-01, INV-IO-04)


ScratchDir(INV-IO-06)


HostPaths(INV-IO-07)


PrimaryRoot(INV-IO-09)

Agent 认知的"主工作上下文"——出现在系统提示词标为 active project。

Fallback 链:

  1. 显式声明 CellSpec.AgentDefaults.Workspace.PrimaryRoot
  2. AllowPaths[0]
  3. ArtifactDir

必须在 AllowPaths ∪ {ArtifactDir} 内。


Exec CWD 优先级(INV-IO-03)

显式 cwd 参数 > PrimaryRoot > ScratchDir > ArtifactDir

编程场景下 PrimaryRoot = VS Code 项目根。


写入边界(INV-IO-02)

write/edit/apply_patch 输出必须落入:

禁止:/tmp、Scratch、任何 Cell 外路径。


Export 行为(INV-IO-08)


Workspace Handle(INV-IO-05)

cell.Workspace() → WorkspaceHandle
  .List(actor, path, depth)
  .Download(actor, path)
  .Upload(actor, path, body)
  .Delete(actor, path)
  .Stats(actor)
  .GC()
  .DeleteByPrefix(actor, prefix)

反模式

禁止正确做法
从 AppRunRequest 传入 ArtifactDir引擎自动推算
写入 /tmp 或 Cell 外路径ArtifactDir 或 HostPaths
HostPaths 做 MkdirAll/Chmod引擎只验证边界
Export 包含 .scratch/永不包含