@rotifer/playground 0.26.3 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +3 -1
- package/README.zh.md +3 -1
- package/dist/cloud/capability-candidates.d.ts +87 -0
- package/dist/cloud/capability-candidates.d.ts.map +1 -0
- package/dist/cloud/capability-candidates.js +244 -0
- package/dist/cloud/capability-candidates.js.map +1 -0
- package/dist/commands/agent-create.d.ts +8 -0
- package/dist/commands/agent-create.d.ts.map +1 -1
- package/dist/commands/agent-create.js +5 -2
- package/dist/commands/agent-create.js.map +1 -1
- package/dist/commands/agent-run.d.ts.map +1 -1
- package/dist/commands/agent-run.js +23 -13
- package/dist/commands/agent-run.js.map +1 -1
- package/dist/commands/genome-import.d.ts +122 -0
- package/dist/commands/genome-import.d.ts.map +1 -0
- package/dist/commands/genome-import.js +632 -0
- package/dist/commands/genome-import.js.map +1 -0
- package/dist/commands/genome.d.ts +213 -0
- package/dist/commands/genome.d.ts.map +1 -0
- package/dist/commands/genome.js +606 -0
- package/dist/commands/genome.js.map +1 -0
- package/dist/commands/install.d.ts +54 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +148 -75
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/network.d.ts.map +1 -1
- package/dist/commands/network.js +12 -15
- package/dist/commands/network.js.map +1 -1
- package/dist/commands/publish.js +2 -2
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/vg.js +2 -2
- package/dist/commands/vg.js.map +1 -1
- package/dist/commands/wrap.d.ts.map +1 -1
- package/dist/commands/wrap.js +15 -3
- package/dist/commands/wrap.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/publish/pre-publish-check.d.ts +15 -0
- package/dist/publish/pre-publish-check.d.ts.map +1 -1
- package/dist/publish/pre-publish-check.js +17 -2
- package/dist/publish/pre-publish-check.js.map +1 -1
- package/dist/scanner/index.d.ts +1 -1
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +3 -1
- package/dist/scanner/index.js.map +1 -1
- package/dist/scanner/literals.d.ts +2 -0
- package/dist/scanner/literals.d.ts.map +1 -0
- package/dist/scanner/literals.js +293 -0
- package/dist/scanner/literals.js.map +1 -0
- package/dist/scanner/rules.d.ts +14 -0
- package/dist/scanner/rules.d.ts.map +1 -1
- package/dist/scanner/rules.js +30 -1
- package/dist/scanner/rules.js.map +1 -1
- package/dist/scanner/scanner.d.ts.map +1 -1
- package/dist/scanner/scanner.js +8 -1
- package/dist/scanner/scanner.js.map +1 -1
- package/dist/scanner/types.d.ts +7 -0
- package/dist/scanner/types.d.ts.map +1 -1
- package/dist/utils/binding.d.ts +20 -2
- package/dist/utils/binding.d.ts.map +1 -1
- package/dist/utils/binding.js +22 -0
- package/dist/utils/binding.js.map +1 -1
- package/dist/utils/p2p-daemon.d.ts.map +1 -1
- package/dist/utils/p2p-daemon.js +6 -2
- package/dist/utils/p2p-daemon.js.map +1 -1
- package/dist/utils/rust-phenotype.d.ts +24 -0
- package/dist/utils/rust-phenotype.d.ts.map +1 -0
- package/dist/utils/rust-phenotype.js +59 -0
- package/dist/utils/rust-phenotype.js.map +1 -0
- package/genes/genesis-file-read/phenotype.json +1 -0
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,43 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.28.0](https://github.com/rotifer-protocol/rotifer-playground/compare/v0.27.0...v0.28.0) (2026-10-20)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **genome:** add `rotifer genome export` with a credential scan gate ([#391](https://github.com/rotifer-protocol/rotifer-playground/issues/391)) ([fa1135a](https://github.com/rotifer-protocol/rotifer-playground/commit/fa1135abe2c649eaccdd0126fb59dd6d5c9f1ada))
|
|
14
|
+
* **genome:** add `rotifer genome import` with evidence-based capability resolution ([#395](https://github.com/rotifer-protocol/rotifer-playground/issues/395)) ([bb893ca](https://github.com/rotifer-protocol/rotifer-playground/commit/bb893ca8410a72218abce142830fa05997670d22))
|
|
15
|
+
* **install:** compare phenotype with the recorded content_hash, warning only ([#400](https://github.com/rotifer-protocol/rotifer-playground/issues/400)) ([0f0e8ff](https://github.com/rotifer-protocol/rotifer-playground/commit/0f0e8ff7fb6eb6c4343477b8710986bf0dc6d693))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **agent-run:** make Par / Cond / Try run on compiled genes ([#396](https://github.com/rotifer-protocol/rotifer-playground/issues/396)) ([f26d540](https://github.com/rotifer-protocol/rotifer-playground/commit/f26d5400b5c0deba7db1c484af7d31b4acc1bf14))
|
|
21
|
+
* **deps:** bump wasmtime to 48.0.7 for the 2026-10-19 RustSec advisories ([#392](https://github.com/rotifer-protocol/rotifer-playground/issues/392)) ([a981083](https://github.com/rotifer-protocol/rotifer-playground/commit/a9810836ff0f8744be6173402bca516815ea968c))
|
|
22
|
+
* **genome:** apply excludeGeneIds at admission, not after install ([#397](https://github.com/rotifer-protocol/rotifer-playground/issues/397)) ([ff41832](https://github.com/rotifer-protocol/rotifer-playground/commit/ff4183273f4b29fded555fc6a1c6c03342eb3289))
|
|
23
|
+
* **genome:** close five gaps the Blueprint RFC review found ([#401](https://github.com/rotifer-protocol/rotifer-playground/issues/401)) ([f4bdc88](https://github.com/rotifer-protocol/rotifer-playground/commit/f4bdc8894d5d2f92d802548832317ecd1ffce4f1))
|
|
24
|
+
* **genome:** stop the entropy rule from flagging natural-language text ([#404](https://github.com/rotifer-protocol/rotifer-playground/issues/404)) ([53ddc5d](https://github.com/rotifer-protocol/rotifer-playground/commit/53ddc5d6b62dfa12e24bc14e191b5e29b881decf))
|
|
25
|
+
* **scanner:** pin scanner_version to the rules table and stop S-01 flagging literals ([#394](https://github.com/rotifer-protocol/rotifer-playground/issues/394)) ([9751938](https://github.com/rotifer-protocol/rotifer-playground/commit/9751938815f499542be27eff28aa87d86cbe9fff))
|
|
26
|
+
* **supabase:** give the arena leaderboard a unique tiebreak so paging is stable ([#403](https://github.com/rotifer-protocol/rotifer-playground/issues/403)) ([eb6d62a](https://github.com/rotifer-protocol/rotifer-playground/commit/eb6d62acb586a050557ec0a414ebdbc666dc6215))
|
|
27
|
+
* **supabase:** pin genes.created_at and decide duplicate hashes by who came first ([#399](https://github.com/rotifer-protocol/rotifer-playground/issues/399)) ([49fc4ea](https://github.com/rotifer-protocol/rotifer-playground/commit/49fc4eac8474aa8f0cbbbe6d440a5b1087dd4474))
|
|
28
|
+
* **supabase:** stop recomputing content_hash server-side; pin content hash v1 ([#398](https://github.com/rotifer-protocol/rotifer-playground/issues/398)) ([d01a6d7](https://github.com/rotifer-protocol/rotifer-playground/commit/d01a6d7816ad789f65c12413157686d085a62c11))
|
|
29
|
+
|
|
30
|
+
## [0.27.0](https://github.com/rotifer-protocol/rotifer-playground/compare/v0.26.3...v0.27.0) (2026-10-19)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
* **genes:** declare source files for three bundled Wrapped genes ([#383](https://github.com/rotifer-protocol/rotifer-playground/issues/383)) ([f1540c6](https://github.com/rotifer-protocol/rotifer-playground/commit/f1540c6d6c1199d55cbe1294b709852477cc2ce4))
|
|
36
|
+
* **identity:** gene ID v2 — a content-derived gene identity (docs/gene-id-v2.md); `rotifer network announce` sends it and refuses genes that have none ([927048c](https://github.com/rotifer-protocol/rotifer-playground/commit/927048c4074127ec6ce45a468f20224f96f6bf1f))
|
|
37
|
+
* **p2p:** freeze P2P wire format v1 — protobuf announcements on /rotifer/p2p/1/announcements, validated before forwarding. Not compatible with 0.26.x and earlier, which use JSON on /rotifer/announcements: upgrade every machine in a P2P setup ([927048c](https://github.com/rotifer-protocol/rotifer-playground/commit/927048c4074127ec6ce45a468f20224f96f6bf1f))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* **deps:** bump rustls to 0.23.46 for today's RustSec advisories ([#384](https://github.com/rotifer-protocol/rotifer-playground/issues/384)) ([43a54b2](https://github.com/rotifer-protocol/rotifer-playground/commit/43a54b2336bfbdc5db1f2c01a2522c5bcb392e6f))
|
|
43
|
+
* **deps:** bump wasmtime to 48.0.6 for today's RustSec advisories ([#385](https://github.com/rotifer-protocol/rotifer-playground/issues/385)) ([22d8e4e](https://github.com/rotifer-protocol/rotifer-playground/commit/22d8e4e3454d8b9bbc6d3aad1db10bea7f1cdb48))
|
|
44
|
+
|
|
8
45
|
## [0.26.3](https://github.com/rotifer-protocol/rotifer-playground/compare/v0.26.2...v0.26.3) (2026-10-14)
|
|
9
46
|
|
|
10
47
|
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
Development environment for the **Rotifer Protocol** — **WASM-Native, Polyglot by Design**: build genes in TypeScript / Rust / AssemblyScript / Go / C, compete in Arenas, share via Cloud, and simulate agent evolution.
|
|
11
11
|
|
|
12
|
-
> **Status:** v0.
|
|
12
|
+
> **Status:** v0.28.x — An agent's genome can now move between machines. `rotifer genome export` writes it to a Genome Blueprint (`.rgenome`: which genes, how they are composed, and a capability query for each role) after scanning it for credentials, and `rotifer genome import` rebuilds the agent from the Registry, either installing exactly the pinned genes or picking, per role, a candidate that passes the Arena admission bar. The Blueprint format is still a draft and may change. No Registry gene has reached the `verified` Arena tier yet, so today capability picks fall back to the pinned genes (and a role whose gene was never published cannot be imported), and Wrapped genes cannot be imported. `rotifer install` now compares the downloaded phenotype with the content hash the Registry recorded and warns on a mismatch, and `agent run` executes Par / Cond / Try compositions on compiled genes. Every gene still has a content-derived `v2:` ID ([docs/gene-id-v2.md](docs/gene-id-v2.md)); the experimental P2P layer announces genes by that ID on a frozen protobuf wire format, and nodes on 0.26.x and earlier do not see newer nodes, so upgrade every machine in a P2P setup. Publishing still enforces spec §47.5 T1: a gene must handle one case correctly, refuse one malformed input through the `__rotifer_error` channel (reported as `INVALID_INPUT`), and keep 10 generated inputs schema-legal. See [CHANGELOG.md](CHANGELOG.md) for full release history. Automatic peer discovery, internet-wide reach, and L4 Collective Immunity are later milestones — see [Implementation Status](#implementation-status) below.
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -187,6 +187,8 @@ Run `rotifer --help` for the grouped command list. The commands below cover the
|
|
|
187
187
|
| `rotifer agent create <agent-name>` | Create an Agent (`--composition Seq\|Par\|Cond\|Try\|TryPool`) |
|
|
188
188
|
| `rotifer agent list` | List all agents |
|
|
189
189
|
| `rotifer agent run <agent-name>` | Execute genome pipeline (WASM sandbox, `--no-sandbox` for Node.js) |
|
|
190
|
+
| `rotifer genome export <agent>` | Export an agent's genome as a shareable Blueprint (`.rgenome`); aborts if the file would carry a credential |
|
|
191
|
+
| `rotifer genome import <file>` | Rebuild an agent from a Blueprint: installs Native/Hybrid genes by exact version (`--pinned`) or picks Arena-verified substitutes that clear the F(g) and V(g) thresholds; `--dry-run` shows the plan |
|
|
190
192
|
| `rotifer vg [path]` | V(g) security scan for gene/skill code |
|
|
191
193
|
| `rotifer network` | P2P gene network commands (see `rotifer network --help`) |
|
|
192
194
|
| `rotifer self-update` | Check for updates and upgrade Rotifer packages |
|
package/README.zh.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
**Rotifer Protocol** 的开发环境——构建基因、运行 Arena 竞争、通过 Cloud 共享、模拟代理进化。
|
|
11
11
|
|
|
12
|
-
> **状态:** v0.
|
|
12
|
+
> **状态:** v0.28.x——Agent 的基因组现在可以在机器之间搬运了。`rotifer genome export` 先扫描凭证,再把基因组写成一份 Genome Blueprint(`.rgenome`:用了哪些基因、怎样组合、每个角色的能力查询);`rotifer genome import` 从 Registry 把 Agent 重建出来,可以原样安装钉住的基因,也可以按角色挑选过了 Arena 准入门槛的候选。Blueprint 格式仍是草案,后续可能调整。目前 Registry 里还没有基因进入 Arena 的 `verified` 档,所以按能力挑选暂时都会退回钉住的基因(作者从未发布过的基因无法导入),Wrapped 基因也还不能导入。`rotifer install` 现在会把下载到的 phenotype 与 Registry 记录的内容哈希比对,不一致时给出警告;`agent run` 可以在编译过的基因上执行 Par/Cond/Try 组合。每个基因仍有一个由内容算出的 `v2:` 身份号(见 [docs/gene-id-v2.md](docs/gene-id-v2.md));实验性的 P2P 层用这个号在已冻结的 protobuf 线格式上发布基因公告,0.26.x 及更早版本的节点看不到新节点的公告,P2P 环境里的每台机器都要升级。发布基因仍强制执行规范 §47.5 T1:至少正确处理一条用例、通过 `__rotifer_error` 通道拒绝一条格式错误的输入(报告为 `INVALID_INPUT`),并让 10 组生成输入全部产出符合结构的输出。详细版本历史请参见 [CHANGELOG.md](CHANGELOG.md)。自动节点发现、跨公网连接与 L4 集体免疫是后续里程碑——详见下方[实现状态](#实现状态)。
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -185,6 +185,8 @@ playground/
|
|
|
185
185
|
| `rotifer agent create <agent-name>` | 用基因组创建 Agent |
|
|
186
186
|
| `rotifer agent list` | 列出全部 Agent |
|
|
187
187
|
| `rotifer agent run <agent-name>` | 执行 Agent 的基因组管线 |
|
|
188
|
+
| `rotifer genome export <agent>` | 把 Agent 的基因组导出为可分享的 Blueprint(`.rgenome`);文件里若带凭证则中止 |
|
|
189
|
+
| `rotifer genome import <file>` | 从 Blueprint 重建 Agent:按精确版本安装 Native/Hybrid 基因(`--pinned`),或挑选 Arena 已验证、过 F(g) 与 V(g) 门槛的替代;`--dry-run` 只看解析结果 |
|
|
188
190
|
| `rotifer vg [path]` | 对基因代码执行 V(g) 安全扫描 |
|
|
189
191
|
| `rotifer network` | P2P 基因网络命令 |
|
|
190
192
|
| `rotifer self-update` | 检查并升级 Rotifer 包 |
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { type LeaderboardRow } from "./client.js";
|
|
2
|
+
import type { CloudGene } from "./types.js";
|
|
3
|
+
import { type GeneIdV2Result } from "../utils/binding.js";
|
|
4
|
+
export type RejectionCode = "not-verified" | "invalidated" | "fidelity" | "missing-evidence" | "fitness-below-threshold" | "vg-below-threshold" | "stale-evidence" | "no-artifact" | "schema-incompatible" | "excluded";
|
|
5
|
+
export interface Rejection {
|
|
6
|
+
code: RejectionCode;
|
|
7
|
+
detail: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CandidateEvidence {
|
|
10
|
+
tier: string;
|
|
11
|
+
fitness_value: number | null;
|
|
12
|
+
safety_score: number | null;
|
|
13
|
+
safety_score_source: "submitter-declared";
|
|
14
|
+
evaluation_method: string | null;
|
|
15
|
+
evaluation_n: number | null;
|
|
16
|
+
last_evaluated: string | null;
|
|
17
|
+
invalidation_reason: string | null;
|
|
18
|
+
}
|
|
19
|
+
export interface CandidateVerdict {
|
|
20
|
+
/** Registry row UUID — what `rotifer install` takes. */
|
|
21
|
+
cloudId: string;
|
|
22
|
+
owner: string;
|
|
23
|
+
name: string;
|
|
24
|
+
version: string;
|
|
25
|
+
fidelity: string;
|
|
26
|
+
/** v2 gene ID of the row's content, computed for every candidate that passed the other checks. */
|
|
27
|
+
geneId?: string;
|
|
28
|
+
evidence: CandidateEvidence;
|
|
29
|
+
admitted: boolean;
|
|
30
|
+
rejections: Rejection[];
|
|
31
|
+
}
|
|
32
|
+
export interface AdmissionPolicy {
|
|
33
|
+
minFitness: number;
|
|
34
|
+
minVg: number;
|
|
35
|
+
maxEvalAgeDays: number;
|
|
36
|
+
now: Date;
|
|
37
|
+
}
|
|
38
|
+
export interface CapabilityQueryLike {
|
|
39
|
+
domain: string;
|
|
40
|
+
inputSchemaCompat: unknown;
|
|
41
|
+
outputSchemaCompat: unknown;
|
|
42
|
+
minFitness?: number;
|
|
43
|
+
excludeGeneIds?: string[];
|
|
44
|
+
}
|
|
45
|
+
export interface CandidateResolution {
|
|
46
|
+
/** Every candidate considered, admitted or not, best first among the admitted. */
|
|
47
|
+
candidates: CandidateVerdict[];
|
|
48
|
+
/** Admitted candidates ordered by fitness_value, highest first. */
|
|
49
|
+
admitted: CandidateVerdict[];
|
|
50
|
+
}
|
|
51
|
+
/** Evidence could not be obtained — a failure, never a reason to fall back silently. */
|
|
52
|
+
export declare class EvidenceError extends Error {
|
|
53
|
+
constructor(message: string);
|
|
54
|
+
}
|
|
55
|
+
export interface CandidateSources {
|
|
56
|
+
arenaLeaderboard: (o: {
|
|
57
|
+
domain?: string;
|
|
58
|
+
limit?: number;
|
|
59
|
+
offset?: number;
|
|
60
|
+
}) => Promise<LeaderboardRow[]>;
|
|
61
|
+
getGene: (id: string) => Promise<CloudGene>;
|
|
62
|
+
/** v2 gene ID of a Registry row's content — needed to apply excludeGeneIds before choosing. */
|
|
63
|
+
computeGeneId: (gene: CloudGene) => Promise<GeneIdV2Result>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Compute a candidate's v2 gene ID from its Registry row without installing it:
|
|
67
|
+
* phenotype and WASM go to a throwaway directory, the WASM is checked against
|
|
68
|
+
* the row's size and SHA-256, and nothing is counted as a download.
|
|
69
|
+
*/
|
|
70
|
+
export declare function computeGeneIdFromRegistry(gene: CloudGene): Promise<GeneIdV2Result>;
|
|
71
|
+
export declare function schemaIncompatibility(query: {
|
|
72
|
+
inputSchemaCompat: unknown;
|
|
73
|
+
outputSchemaCompat: unknown;
|
|
74
|
+
}, candidate: {
|
|
75
|
+
inputSchema?: unknown;
|
|
76
|
+
outputSchema?: unknown;
|
|
77
|
+
}): string | null;
|
|
78
|
+
/** Every condition a candidate fails; empty means admitted. */
|
|
79
|
+
export declare function admissionRejections(row: LeaderboardRow, gene: CloudGene, query: CapabilityQueryLike, policy: AdmissionPolicy): Rejection[];
|
|
80
|
+
/**
|
|
81
|
+
* Fetch the evidence for every leaderboard row in `query.domain` and judge each
|
|
82
|
+
* one. Fails (EvidenceError) when evidence cannot be read — an unreachable
|
|
83
|
+
* leaderboard or a candidate whose Registry row has an empty phenotype is not
|
|
84
|
+
* "no candidate", it is "could not decide".
|
|
85
|
+
*/
|
|
86
|
+
export declare function resolveCapabilityCandidates(query: CapabilityQueryLike, policy: AdmissionPolicy, sources?: CandidateSources): Promise<CandidateResolution>;
|
|
87
|
+
//# sourceMappingURL=capability-candidates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-candidates.d.ts","sourceRoot":"","sources":["../../src/cloud/capability-candidates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvidenceError = void 0;
|
|
4
|
+
exports.computeGeneIdFromRegistry = computeGeneIdFromRegistry;
|
|
5
|
+
exports.schemaIncompatibility = schemaIncompatibility;
|
|
6
|
+
exports.admissionRejections = admissionRejections;
|
|
7
|
+
exports.resolveCapabilityCandidates = resolveCapabilityCandidates;
|
|
8
|
+
/**
|
|
9
|
+
* Capability-mode candidate resolution for `rotifer genome import`.
|
|
10
|
+
*
|
|
11
|
+
* Evidence comes only from existing read-only endpoints:
|
|
12
|
+
* - scores: `get_arena_leaderboard` (one row per logical gene; `gene_id` is
|
|
13
|
+
* the Registry row UUID of the version on the board);
|
|
14
|
+
* - full phenotype + artifact: `getGene(<UUID>)`. `listGenes()` and
|
|
15
|
+
* `getGene().fitness` are not used — the search RPC blanks phenotype and
|
|
16
|
+
* fitness, so they cannot support a selection.
|
|
17
|
+
*
|
|
18
|
+
* A candidate is admitted only when every condition holds, and missing
|
|
19
|
+
* evidence counts as failing (§5.1: F(g) and V(g) must both clear their
|
|
20
|
+
* thresholds). Nothing here is relaxed to make a candidate pass.
|
|
21
|
+
*
|
|
22
|
+
* `safety_score` is the value the Arena submitter reported with its run; the
|
|
23
|
+
* server does not recompute it. It is used as a declared safety score and
|
|
24
|
+
* labelled that way in every output — it is not the `rotifer vg` grade and not
|
|
25
|
+
* the full §5.1 V(g).
|
|
26
|
+
*/
|
|
27
|
+
const node_crypto_1 = require("node:crypto");
|
|
28
|
+
const node_fs_1 = require("node:fs");
|
|
29
|
+
const node_os_1 = require("node:os");
|
|
30
|
+
const node_path_1 = require("node:path");
|
|
31
|
+
const client_js_1 = require("./client.js");
|
|
32
|
+
const binding_js_1 = require("../utils/binding.js");
|
|
33
|
+
const validate_gene_name_js_1 = require("../utils/validate-gene-name.js");
|
|
34
|
+
/** Evidence could not be obtained — a failure, never a reason to fall back silently. */
|
|
35
|
+
class EvidenceError extends Error {
|
|
36
|
+
constructor(message) {
|
|
37
|
+
super(message);
|
|
38
|
+
this.name = "EvidenceError";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.EvidenceError = EvidenceError;
|
|
42
|
+
const LEADERBOARD_PAGE = 200;
|
|
43
|
+
/** 10 000 rows per domain is far beyond today's board; past it the read is treated as unreliable. */
|
|
44
|
+
const LEADERBOARD_MAX_PAGES = 50;
|
|
45
|
+
/**
|
|
46
|
+
* Compute a candidate's v2 gene ID from its Registry row without installing it:
|
|
47
|
+
* phenotype and WASM go to a throwaway directory, the WASM is checked against
|
|
48
|
+
* the row's size and SHA-256, and nothing is counted as a download.
|
|
49
|
+
*/
|
|
50
|
+
async function computeGeneIdFromRegistry(gene) {
|
|
51
|
+
if (!gene.wasm_url)
|
|
52
|
+
return { reason: "the Registry row has no WASM artifact" };
|
|
53
|
+
(0, validate_gene_name_js_1.validateGeneName)(gene.name);
|
|
54
|
+
const root = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "rotifer-candidate-"));
|
|
55
|
+
try {
|
|
56
|
+
const dir = (0, node_path_1.join)(root, gene.name);
|
|
57
|
+
(0, node_fs_1.mkdirSync)(dir);
|
|
58
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, "phenotype.json"), JSON.stringify(gene.phenotype, null, 2) + "\n");
|
|
59
|
+
const wasm = await (0, client_js_1.downloadGeneWasm)(gene.wasm_url);
|
|
60
|
+
if (gene.wasm_size && wasm.length !== gene.wasm_size)
|
|
61
|
+
return { reason: "WASM size does not match the Registry row" };
|
|
62
|
+
if (gene.wasm_hash && (0, node_crypto_1.createHash)("sha256").update(wasm).digest("hex") !== gene.wasm_hash) {
|
|
63
|
+
return { reason: "WASM hash does not match the Registry row" };
|
|
64
|
+
}
|
|
65
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(dir, "gene.ir.wasm"), wasm);
|
|
66
|
+
return (0, binding_js_1.geneIdV2)(root, gene.name);
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
(0, node_fs_1.rmSync)(root, { recursive: true, force: true });
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const DEFAULT_SOURCES = { arenaLeaderboard: client_js_1.arenaLeaderboard, getGene: client_js_1.getGene, computeGeneId: computeGeneIdFromRegistry };
|
|
73
|
+
function asObjectSchema(s) {
|
|
74
|
+
if (typeof s !== "object" || s === null)
|
|
75
|
+
return null;
|
|
76
|
+
const props = s.properties;
|
|
77
|
+
if (typeof props !== "object" || props === null || Array.isArray(props))
|
|
78
|
+
return null;
|
|
79
|
+
return s;
|
|
80
|
+
}
|
|
81
|
+
function sameType(a, b) {
|
|
82
|
+
if (!a || !b || a.type === undefined || b.type === undefined)
|
|
83
|
+
return true;
|
|
84
|
+
return JSON.stringify(a.type) === JSON.stringify(b.type);
|
|
85
|
+
}
|
|
86
|
+
function schemaIncompatibility(query, candidate) {
|
|
87
|
+
const qIn = asObjectSchema(query.inputSchemaCompat);
|
|
88
|
+
const qOut = asObjectSchema(query.outputSchemaCompat);
|
|
89
|
+
const cIn = asObjectSchema(candidate.inputSchema);
|
|
90
|
+
const cOut = asObjectSchema(candidate.outputSchema);
|
|
91
|
+
if (!qIn || !qOut)
|
|
92
|
+
return "the Blueprint's capability query has no checkable schema";
|
|
93
|
+
if (!cIn || !cOut)
|
|
94
|
+
return "the candidate declares no checkable input/output schema";
|
|
95
|
+
const required = Array.isArray(cIn.required) ? cIn.required.filter((r) => typeof r === "string") : [];
|
|
96
|
+
for (const field of required) {
|
|
97
|
+
if (!(field in qIn.properties))
|
|
98
|
+
return `candidate requires input '${field}', which the original input does not provide`;
|
|
99
|
+
if (!sameType(qIn.properties[field], cIn.properties[field]))
|
|
100
|
+
return `input '${field}' has a different type`;
|
|
101
|
+
}
|
|
102
|
+
for (const field of Object.keys(qOut.properties)) {
|
|
103
|
+
if (!(field in cOut.properties))
|
|
104
|
+
return `candidate does not produce output '${field}'`;
|
|
105
|
+
if (!sameType(qOut.properties[field], cOut.properties[field]))
|
|
106
|
+
return `output '${field}' has a different type`;
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
// ── Admission ────────────────────────────────────────────────
|
|
111
|
+
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
112
|
+
/** Every condition a candidate fails; empty means admitted. */
|
|
113
|
+
function admissionRejections(row, gene, query, policy) {
|
|
114
|
+
const out = [];
|
|
115
|
+
if (row.tier !== "verified") {
|
|
116
|
+
out.push({ code: "not-verified", detail: `Arena tier is '${row.tier}', not 'verified'` });
|
|
117
|
+
}
|
|
118
|
+
if (row.invalidation_reason) {
|
|
119
|
+
out.push({ code: "invalidated", detail: `Arena entry invalidated: ${row.invalidation_reason}` });
|
|
120
|
+
}
|
|
121
|
+
const fidelity = (row.fidelity || gene.fidelity || "").toLowerCase();
|
|
122
|
+
if (fidelity !== "native" && fidelity !== "hybrid") {
|
|
123
|
+
out.push({ code: "fidelity", detail: `fidelity '${row.fidelity || gene.fidelity}' is not Native or Hybrid` });
|
|
124
|
+
}
|
|
125
|
+
if (row.fitness_value === null || row.fitness_value === undefined) {
|
|
126
|
+
out.push({ code: "missing-evidence", detail: "no fitness_value" });
|
|
127
|
+
}
|
|
128
|
+
else if (!(row.fitness_value > policy.minFitness)) {
|
|
129
|
+
out.push({ code: "fitness-below-threshold", detail: `fitness ${row.fitness_value} ≤ minFitness ${policy.minFitness}` });
|
|
130
|
+
}
|
|
131
|
+
if (row.safety_score === null || row.safety_score === undefined) {
|
|
132
|
+
out.push({ code: "missing-evidence", detail: "no safety_score" });
|
|
133
|
+
}
|
|
134
|
+
else if (!(row.safety_score > policy.minVg)) {
|
|
135
|
+
out.push({
|
|
136
|
+
code: "vg-below-threshold",
|
|
137
|
+
detail: `submitter-declared safety ${row.safety_score} ≤ V(g) threshold ${policy.minVg}`,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
if (!row.last_evaluated) {
|
|
141
|
+
out.push({ code: "missing-evidence", detail: "no last_evaluated" });
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const ageDays = (policy.now.getTime() - Date.parse(row.last_evaluated)) / DAY_MS;
|
|
145
|
+
if (!Number.isFinite(ageDays) || ageDays > policy.maxEvalAgeDays) {
|
|
146
|
+
out.push({
|
|
147
|
+
code: "stale-evidence",
|
|
148
|
+
detail: `last evaluated ${row.last_evaluated}, older than ${policy.maxEvalAgeDays} days`,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Installing it must give something executable whose v2 ID can be checked.
|
|
153
|
+
if (!gene.wasm_url)
|
|
154
|
+
out.push({ code: "no-artifact", detail: "the Registry row has no WASM artifact" });
|
|
155
|
+
const schemaProblem = schemaIncompatibility(query, gene.phenotype ?? {});
|
|
156
|
+
if (schemaProblem)
|
|
157
|
+
out.push({ code: "schema-incompatible", detail: schemaProblem });
|
|
158
|
+
return out;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Fetch the evidence for every leaderboard row in `query.domain` and judge each
|
|
162
|
+
* one. Fails (EvidenceError) when evidence cannot be read — an unreachable
|
|
163
|
+
* leaderboard or a candidate whose Registry row has an empty phenotype is not
|
|
164
|
+
* "no candidate", it is "could not decide".
|
|
165
|
+
*/
|
|
166
|
+
async function resolveCapabilityCandidates(query, policy, sources = DEFAULT_SOURCES) {
|
|
167
|
+
// The RPC returns at most `limit` rows per call; read every page, or a
|
|
168
|
+
// qualifying candidate past the first page would be reported as "none".
|
|
169
|
+
const rows = [];
|
|
170
|
+
for (let page = 0;; page++) {
|
|
171
|
+
if (page >= LEADERBOARD_MAX_PAGES) {
|
|
172
|
+
throw new EvidenceError(`the Arena leaderboard for '${query.domain}' has more than ${LEADERBOARD_PAGE * LEADERBOARD_MAX_PAGES} rows; refusing to decide on a partial read`);
|
|
173
|
+
}
|
|
174
|
+
let batch;
|
|
175
|
+
try {
|
|
176
|
+
batch = await sources.arenaLeaderboard({ domain: query.domain, limit: LEADERBOARD_PAGE, offset: page * LEADERBOARD_PAGE });
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
throw new EvidenceError(`could not read the Arena leaderboard for '${query.domain}': ${err.message}`);
|
|
180
|
+
}
|
|
181
|
+
if (!Array.isArray(batch))
|
|
182
|
+
throw new EvidenceError(`the Arena leaderboard for '${query.domain}' returned no rows array`);
|
|
183
|
+
rows.push(...batch);
|
|
184
|
+
if (batch.length < LEADERBOARD_PAGE)
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
const candidates = [];
|
|
188
|
+
for (const row of rows.filter((r) => r.domain === query.domain)) {
|
|
189
|
+
let gene;
|
|
190
|
+
try {
|
|
191
|
+
gene = await sources.getGene(row.gene_id);
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
throw new EvidenceError(`could not read Registry row ${row.gene_id} (${row.gene_name}): ${err.message}`);
|
|
195
|
+
}
|
|
196
|
+
if (!gene.phenotype || Object.keys(gene.phenotype).length === 0) {
|
|
197
|
+
throw new EvidenceError(`Registry row ${row.gene_id} (${row.gene_name}) returned an empty phenotype`);
|
|
198
|
+
}
|
|
199
|
+
const rejections = admissionRejections(row, gene, query, policy);
|
|
200
|
+
// Every candidate that passed everything else is identified by content
|
|
201
|
+
// before it can be chosen: the import later checks that what it installed
|
|
202
|
+
// is this exact content, and excludeGeneIds (v2 IDs) can be applied here,
|
|
203
|
+
// so an excluded candidate is rejected and the next one gets its turn.
|
|
204
|
+
let geneId;
|
|
205
|
+
const excluded = query.excludeGeneIds ?? [];
|
|
206
|
+
if (rejections.length === 0) {
|
|
207
|
+
const id = await sources.computeGeneId(gene);
|
|
208
|
+
if ("id" in id) {
|
|
209
|
+
geneId = id.id;
|
|
210
|
+
if (excluded.includes(id.id)) {
|
|
211
|
+
rejections.push({ code: "excluded", detail: `v2 gene ID ${id.id} is in the Blueprint's excludeGeneIds` });
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
rejections.push({ code: "missing-evidence", detail: `v2 gene ID could not be computed from the Registry row: ${id.reason}` });
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
candidates.push({
|
|
219
|
+
cloudId: row.gene_id,
|
|
220
|
+
owner: row.owner_username,
|
|
221
|
+
name: row.gene_name,
|
|
222
|
+
version: row.gene_version,
|
|
223
|
+
fidelity: row.fidelity,
|
|
224
|
+
...(geneId ? { geneId } : {}),
|
|
225
|
+
evidence: {
|
|
226
|
+
tier: row.tier,
|
|
227
|
+
fitness_value: row.fitness_value,
|
|
228
|
+
safety_score: row.safety_score,
|
|
229
|
+
safety_score_source: "submitter-declared",
|
|
230
|
+
evaluation_method: row.evaluation_method,
|
|
231
|
+
evaluation_n: row.evaluation_n,
|
|
232
|
+
last_evaluated: row.last_evaluated,
|
|
233
|
+
invalidation_reason: row.invalidation_reason,
|
|
234
|
+
},
|
|
235
|
+
admitted: rejections.length === 0,
|
|
236
|
+
rejections,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
const admitted = candidates
|
|
240
|
+
.filter((c) => c.admitted)
|
|
241
|
+
.sort((a, b) => (b.evidence.fitness_value ?? 0) - (a.evidence.fitness_value ?? 0));
|
|
242
|
+
return { candidates, admitted };
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=capability-candidates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-candidates.js","sourceRoot":"","sources":["../../src/cloud/capability-candidates.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,14 @@ export interface CreateAgentParams {
|
|
|
7
7
|
compositionType: string;
|
|
8
8
|
parMerge?: string;
|
|
9
9
|
strategy?: string;
|
|
10
|
+
/** Cond predicate to store; omitted → the default `{ field: "type", equals: "primary" }`. */
|
|
11
|
+
predicate?: {
|
|
12
|
+
field: string;
|
|
13
|
+
op?: string;
|
|
14
|
+
value?: unknown;
|
|
15
|
+
};
|
|
16
|
+
/** Receives schema-compatibility warnings instead of printing them (for --json callers). */
|
|
17
|
+
onSchemaWarnings?: (warnings: string[]) => void;
|
|
10
18
|
}
|
|
11
19
|
export interface AgentRecord {
|
|
12
20
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-create.d.ts","sourceRoot":"","sources":["../../src/commands/agent-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-create.d.ts","sourceRoot":"","sources":["../../src/commands/agent-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5D,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CA8DtE;AAED,eAAO,MAAM,kBAAkB,SAiG5B,CAAC"}
|
|
@@ -57,7 +57,10 @@ function createAgentCore(params) {
|
|
|
57
57
|
}
|
|
58
58
|
if (genome.length >= 2) {
|
|
59
59
|
const warnings = checkSchemaCompatibility(root, params.genesDir, genome);
|
|
60
|
-
if (
|
|
60
|
+
if (params.onSchemaWarnings) {
|
|
61
|
+
params.onSchemaWarnings(warnings);
|
|
62
|
+
}
|
|
63
|
+
else if (warnings.length > 0) {
|
|
61
64
|
display.warn("Schema compatibility warnings:");
|
|
62
65
|
for (const w of warnings) {
|
|
63
66
|
display.warn(` ${w}`);
|
|
@@ -73,7 +76,7 @@ function createAgentCore(params) {
|
|
|
73
76
|
else if (compositionType === "Cond" && genome.length >= 2) {
|
|
74
77
|
composition = {
|
|
75
78
|
type: "Cond",
|
|
76
|
-
predicate: { field: "type", equals: "primary" },
|
|
79
|
+
predicate: params.predicate ?? { field: "type", equals: "primary" },
|
|
77
80
|
thenBranch: genome[0],
|
|
78
81
|
elseBranch: genome[1],
|
|
79
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-create.js","sourceRoot":"","sources":["../../src/commands/agent-create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"agent-create.js","sourceRoot":"","sources":["../../src/commands/agent-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-run.d.ts","sourceRoot":"","sources":["../../src/commands/agent-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-run.d.ts","sourceRoot":"","sources":["../../src/commands/agent-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,eAAO,MAAM,eAAe,SA8WxB,CAAC;AAgdL,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgB3E;AAUD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,IAAI,CAwDN"}
|