File I/O 三域模型

wesgine 文件系统的三个域:ArtifactDir、ScratchDir、HostPaths。


三域概览

域用途生命周期出现在系统提示词
ArtifactDir持久产出跟随 Cell❌
ScratchDir临时计算Run 结束后 GC❌
HostPaths宿主文件系统应用层管理✓(PrimaryRoot)

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

引擎从 (CellDataDir, Actor, AgentID) 推算,不从外部传入。

{CellDataDir}/workspace/{actor}/

ScratchDir(INV-IO-06)

{CellDataDir}/.scratch/{runID}/

Run 结束后引擎 GC(os.RemoveAll)。


HostPaths(INV-IO-07)

宿主文件系统中的路径(如 VS Code 项目根)。

引擎只验证边界,不做:


PrimaryRoot(INV-IO-09)

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

声明

CellSpec.AgentDefaults.Workspace.PrimaryRoot

Fallback 链

显式声明 > AllowPaths[0] > ArtifactDir

约束

必须在 AllowPaths ∪ {ArtifactDir} 内。


写入边界(INV-IO-02)

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

ArtifactDir ∪ HostPaths

禁止:


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

显式 cwd 参数 > PrimaryRoot > ScratchDir > ArtifactDir

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


Workspace Handle(INV-IO-05)

cell.Workspace()

与 cell.Memory() 对等:

方法路径说明
GET/workspace/files文件列表
GET/workspace/file下载文件
POST/workspace/upload上传文件
DELETE/workspace/file删除文件
GET/workspace/stats使用统计
POST/workspace/gc触发 GC
DELETE/workspace/delete-by-prefix按前缀批量删除

所有端点接受 ?actor= 参数。


Export 行为(INV-IO-08)

Cell Export 默认包含 workspace/:

ExportOpts{SkipWorkspace: true} // 可排除

.scratch/ 永不包含在 Export 中。


相关文档