Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Runfield

Runfield 为 AI 提供可创建、可执行、可释放的隔离环境。代码正在按 docs 中的完整 P0 设计实现;只有对应自然语言 E2E 和真实运行时测试全部通过后,能力才视为完成。

已完成的实现基础

  • Rust 实现的 runfieldd daemon 和 runfield CLI
  • 严格解析 EnvironmentSpec YAML,生成内容寻址的 EnvironmentLock
  • 使用 SQLite 持久化 Lock 和 Environment 状态
  • RFC 8785 JCS Lock 与五类 InputSlot 静态校验
  • CreateEnvironment client-stream 帧序、offset、chunk、大小和摘要校验
  • 非 Secret root-only staging 与 Secret 内存 staging
  • 基于 EnvironmentLock 的动态输入契约校验
  • SQLite 单连接 actor、Create 幂等事务、revision 状态迁移和默认 30 分钟/最长 10 天生命周期
  • Environment Get/List/Watch/Renew 与带 request ID 的幂等 Release
  • 到期自动释放,以及 daemon 启动时继续清理遗留的 RELEASING Environment
  • Linux OCI Driver 的资源限制、禁网、Agent 引导、失败回收和 Release
  • Linux OCI Agent 的身份绑定、受限 tar 二次校验、no-replace 注入和固定权限
  • 受管 PIPE Process 的 Start/Get/List/Watch/Attach/Signal、Start 幂等、输出续读、stdin sequence 和输出配额
  • 公共命令执行只经过 Agent Process;容器 runtime exec 产品路径已删除
  • CLI 通过 --input <slot>=<source-file> 发送完整输入流;Secret 不进入命令行参数
  • Environment metadata 持久化并随资源快照返回

TERMINAL/PTY Process、Runtime 文件 API、per-Environment mTLS、控制面认证、PREPARING 恢复与持续清理重试、镜像与能力目录、网络、Linux/Windows KVM、完整桌面和 BUA/CUA 仍在实现中。当前仓库不是可发布版本,也不使用简化路径替代这些设计能力。

本地运行

需要 Rust 1.96+ 和可用的 Docker daemon。protoc 已作为 Rust 构建依赖内置,不需要单独安装。

cargo build --workspace
cargo run -p runfieldd -- --listen 127.0.0.1:7777 --state .runfield/runfield.db

Create 输入统一从本地文件读取。directory 的源文件是未压缩受限 ustar/PAX tar;variable、metadata 和两种 Secret 的源文件内容作为值发送。

runfield resolve environment.yaml
runfield create <lock-digest> \
  --request-id <uuid> \
  --input config=./config.json \
  --input workspace=./workspace.tar \
  --input token=./private/token

验证

cargo fmt --all -- --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages