跳转到内容

基因生命周期命令

初始化新的 Rotifer 项目,包含创世基因和 Arena 预览。

Terminal window
rotifer init [项目名称]

参数:

参数必填说明
项目名称目录名称(默认为当前目录)

生成的项目结构:

my-project/
├── rotifer.json # 项目配置
├── genes/ # 基因源码目录
│ ├── genesis-web-search/
│ ├── genesis-web-search-lite/
│ ├── genesis-file-read/
│ ├── genesis-code-format/
│ └── genesis-l0-constraint/
└── .rotifer/
└── playground.db # 本地 Arena 数据库

示例:

Terminal window
$ rotifer init my-project
项目已初始化于 ./my-project
$ cd my-project && rotifer arena list
# 显示预置创世基因的 Arena 排名

扫描源代码文件,发现可封装为基因的候选函数。

Terminal window
rotifer scan [路径]

参数:

参数必填说明
路径扫描路径(默认为 genes/

支持的语言: TypeScript(.ts.js)、Rust(.rs

检测模式:

  • export function name()
  • export async function name()
  • export const name =
  • pub fn name() / pub async fn name()

示例:

Terminal window
$ rotifer scan src/tools/
扫描 src/tools/search.ts...
发现 3 个候选函数:
┌────┬──────────────┬──────────────────────┬──────┐
# │ 名称 │ 文件 │ 行号 │
├────┼──────────────┼──────────────────────┼──────┤
1 webSearch src/tools/search.ts 12
2 fileRead src/tools/file.ts 8
3 codeFormat src/tools/format.ts 5
└────┴──────────────┴──────────────────────┴──────┘

将函数封装为 Rotifer 基因,生成 Phenotype 和适配代码。

Terminal window
rotifer wrap <名称> --domain <域> [选项]

参数:

参数必填说明
名称基因名称

选项:

标志说明
--domain <域>功能域(如 search.webfile.read
--file <路径>源文件路径

生成的文件:

genes/<名称>/
├── phenotype.json # 基因元数据(域、模式、保真度)
├── index.ts # Express 函数包装器
└── shim.ts # 兼容性适配层

示例:

Terminal window
$ rotifer wrap my-search --domain search.web
基因 'my-search' 封装成功
域: search.web
保真度: Wrapped
版本: 0.1.0

对基因执行 L2 沙箱测试,验证模式和行为。

Terminal window
rotifer test <名称> [选项]

参数:

参数必填说明
名称要测试的基因名称

选项:

标志说明
--verbose显示每个测试用例的详细输入/输出

自动执行的测试用例:

  1. 模式验证 — Phenotype 符合基因标准
  2. Express 函数 — 导出了可调用的 express() 函数
  3. 输入/输出一致性 — 输出匹配 outputSchema
  4. 错误处理 — 无效输入时优雅失败
  5. 空值检查express() 返回非空数据

示例:

Terminal window
$ rotifer test my-search
正在测试 'my-search'...
Phenotype 模式有效
express() 返回成功
输出符合 outputSchema
错误处理正常
全部 4 个测试通过
适应度:F(g) = 0.8234 V(g) = 0.9100

将基因编译为 Rotifer IR(带自定义段的 WASM)。

Terminal window
rotifer compile [名称] [选项]

参数:

参数必填说明
名称基因名称(省略时自动检测)

选项:

标志说明
--lang <ts|wasm>强制编译模式
--wasm输出 WASM 文件

编译管线:

TypeScript 源码
↓ esbuild(打包 + 压缩)
WASI 兼容 JavaScript
↓ Javy(QuickJS → WASM)
原始 WASM 模块
↓ Rotifer IR 注入器
gene.ir.wasm(带自定义段)

注入的自定义段:

  • rotifer.version — 协议版本
  • rotifer.phenotype — 序列化 Phenotype
  • rotifer.constraints — L0 约束元数据
  • rotifer.metering — 燃料/资源限制

示例:

Terminal window
$ rotifer compile my-search
正在编译 'my-search'...
管线:TypeScript esbuild Javy IR
编译成功
IR 哈希:a3f2b1...c4d5
大小: 142.3 KB
段: version, phenotype, constraints, metering

输出: genes/<名称>/gene.ir.wasm