基因生命周期命令
rotifer init
Section titled “rotifer init”初始化新的 Rotifer 项目,包含创世基因和 Arena 预览。
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 数据库示例:
$ rotifer init my-project✨ 项目已初始化于 ./my-project
$ cd my-project && rotifer arena list# 显示预置创世基因的 Arena 排名rotifer scan
Section titled “rotifer scan”扫描源代码文件,发现可封装为基因的候选函数。
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()
示例:
$ 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 wrap
Section titled “rotifer wrap”将函数封装为 Rotifer 基因,生成 Phenotype 和适配代码。
rotifer wrap <名称> --domain <域> [选项]参数:
| 参数 | 必填 | 说明 |
|---|---|---|
名称 | 是 | 基因名称 |
选项:
| 标志 | 说明 |
|---|---|
--domain <域> | 功能域(如 search.web、file.read) |
--file <路径> | 源文件路径 |
生成的文件:
genes/<名称>/├── phenotype.json # 基因元数据(域、模式、保真度)├── index.ts # Express 函数包装器└── shim.ts # 兼容性适配层示例:
$ rotifer wrap my-search --domain search.web ✓ 基因 'my-search' 封装成功
域: search.web 保真度: Wrapped 版本: 0.1.0rotifer test
Section titled “rotifer test”对基因执行 L2 沙箱测试,验证模式和行为。
rotifer test <名称> [选项]参数:
| 参数 | 必填 | 说明 |
|---|---|---|
名称 | 是 | 要测试的基因名称 |
选项:
| 标志 | 说明 |
|---|---|
--verbose | 显示每个测试用例的详细输入/输出 |
自动执行的测试用例:
- 模式验证 — Phenotype 符合基因标准
- Express 函数 — 导出了可调用的
express()函数 - 输入/输出一致性 — 输出匹配
outputSchema - 错误处理 — 无效输入时优雅失败
- 空值检查 —
express()返回非空数据
示例:
$ rotifer test my-search 正在测试 'my-search'...
✓ Phenotype 模式有效 ✓ express() 返回成功 ✓ 输出符合 outputSchema ✓ 错误处理正常
全部 4 个测试通过 ✓ 适应度:F(g) = 0.8234 V(g) = 0.9100rotifer compile
Section titled “rotifer compile”将基因编译为 Rotifer IR(带自定义段的 WASM)。
rotifer compile [名称] [选项]参数:
| 参数 | 必填 | 说明 |
|---|---|---|
名称 | 否 | 基因名称(省略时自动检测) |
选项:
| 标志 | 说明 |
|---|---|
--lang <ts|wasm> | 强制编译模式 |
--wasm | 输出 WASM 文件 |
编译管线:
TypeScript 源码 ↓ esbuild(打包 + 压缩)WASI 兼容 JavaScript ↓ Javy(QuickJS → WASM)原始 WASM 模块 ↓ Rotifer IR 注入器gene.ir.wasm(带自定义段)注入的自定义段:
rotifer.version— 协议版本rotifer.phenotype— 序列化 Phenotyperotifer.constraints— L0 约束元数据rotifer.metering— 燃料/资源限制
示例:
$ rotifer compile my-search 正在编译 'my-search'...
管线:TypeScript → esbuild → Javy → IR ✓ 编译成功
IR 哈希:a3f2b1...c4d5 大小: 142.3 KB 段: version, phenotype, constraints, metering输出: genes/<名称>/gene.ir.wasm