@rotifer/playground 0.28.0 → 0.29.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 +26 -0
- package/README.md +2 -2
- package/README.zh.md +2 -2
- package/dist/cloud/capability-candidates.d.ts +2 -0
- package/dist/cloud/capability-candidates.d.ts.map +1 -1
- package/dist/cloud/capability-candidates.js +83 -31
- package/dist/cloud/capability-candidates.js.map +1 -1
- package/dist/commands/agent-run.d.ts.map +1 -1
- package/dist/commands/agent-run.js +7 -0
- package/dist/commands/agent-run.js.map +1 -1
- package/dist/commands/genome-format.d.ts +180 -0
- package/dist/commands/genome-format.d.ts.map +1 -0
- package/dist/commands/genome-format.js +774 -0
- package/dist/commands/genome-format.js.map +1 -0
- package/dist/commands/genome-import.d.ts +4 -26
- package/dist/commands/genome-import.d.ts.map +1 -1
- package/dist/commands/genome-import.js +39 -246
- package/dist/commands/genome-import.js.map +1 -1
- package/dist/commands/genome.d.ts +7 -138
- package/dist/commands/genome.d.ts.map +1 -1
- package/dist/commands/genome.js +31 -245
- package/dist/commands/genome.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genome-format.js","sourceRoot":"","sources":["../../src/commands/genome-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,11 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { type CandidateEvidence, type CandidateVerdict } from "../cloud/capability-candidates.js";
|
|
3
3
|
import { type ContentHashCheck } from "./install.js";
|
|
4
|
-
import { type GenomeBlueprint, type ResolutionHint } from "./genome.js";
|
|
4
|
+
import { type CompositionPlan, type GenomeBlueprint, type ResolutionHint } from "./genome-format.js";
|
|
5
|
+
export { GenomeImportError, compositionPlan, computeGenomeId, parseBlueprint, type CompositionPlan, type ParsedBlueprint } from "./genome-format.js";
|
|
5
6
|
/** Recommended V_min of §5.1: the floor every capability selection must clear. */
|
|
6
7
|
export declare const DEFAULT_MIN_VG = 0.7;
|
|
7
8
|
export declare const DEFAULT_MAX_EVAL_AGE_DAYS = 90;
|
|
8
|
-
export declare class GenomeImportError extends Error {
|
|
9
|
-
readonly hint?: string | undefined;
|
|
10
|
-
constructor(message: string, hint?: string | undefined);
|
|
11
|
-
}
|
|
12
|
-
/** What `agent create` needs to rebuild the composition. */
|
|
13
|
-
export interface CompositionPlan {
|
|
14
|
-
type: "Single" | "Seq" | "Par" | "Cond" | "Try";
|
|
15
|
-
/** Roles in execution order (= the agent's genome order). */
|
|
16
|
-
roles: string[];
|
|
17
|
-
parMerge?: string;
|
|
18
|
-
predicate?: {
|
|
19
|
-
field: string;
|
|
20
|
-
op: string;
|
|
21
|
-
value: unknown;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export interface ParsedBlueprint {
|
|
25
|
-
blueprint: GenomeBlueprint;
|
|
26
|
-
plan: CompositionPlan;
|
|
27
|
-
/** The author's suggested V(g) threshold, if any. */
|
|
28
|
-
suggestedMinVg?: number;
|
|
29
|
-
}
|
|
30
|
-
export declare function compositionPlan(blueprint: GenomeBlueprint): CompositionPlan;
|
|
31
|
-
/** Parse a Blueprint, keep only what v0.9.2 can rebuild faithfully, and run the credential scan. */
|
|
32
|
-
export declare function parseBlueprint(text: string): ParsedBlueprint;
|
|
33
9
|
export type RoleMode = "capability" | "pinned" | "fallback";
|
|
34
10
|
export interface RoleResolution {
|
|
35
11
|
role: string;
|
|
@@ -83,6 +59,8 @@ export declare function resolveRole(role: string, ctx: ResolveContext): Promise<
|
|
|
83
59
|
export interface ImportResult {
|
|
84
60
|
ok: true;
|
|
85
61
|
dryRun: boolean;
|
|
62
|
+
/** Computed from the Blueprint before anything is resolved or written. */
|
|
63
|
+
genomeId: string;
|
|
86
64
|
agent: {
|
|
87
65
|
id: string;
|
|
88
66
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genome-import.d.ts","sourceRoot":"","sources":["../../src/commands/genome-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/F,OAAO,
|
|
1
|
+
{"version":3,"file":"genome-import.d.ts","sourceRoot":"","sources":["../../src/commands/genome-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.genomeImportCommand = exports.
|
|
37
|
-
exports.compositionPlan = compositionPlan;
|
|
38
|
-
exports.parseBlueprint = parseBlueprint;
|
|
36
|
+
exports.genomeImportCommand = exports.DEFAULT_MAX_EVAL_AGE_DAYS = exports.DEFAULT_MIN_VG = exports.parseBlueprint = exports.computeGenomeId = exports.compositionPlan = exports.GenomeImportError = void 0;
|
|
39
37
|
exports.locatePinned = locatePinned;
|
|
40
38
|
exports.effectiveMinVg = effectiveMinVg;
|
|
41
39
|
exports.resolveRole = resolveRole;
|
|
@@ -55,233 +53,25 @@ const client_js_1 = require("../cloud/client.js");
|
|
|
55
53
|
const capability_candidates_js_1 = require("../cloud/capability-candidates.js");
|
|
56
54
|
const install_js_1 = require("./install.js");
|
|
57
55
|
const agent_create_js_1 = require("./agent-create.js");
|
|
58
|
-
const
|
|
56
|
+
const genome_format_js_1 = require("./genome-format.js");
|
|
57
|
+
var genome_format_js_2 = require("./genome-format.js");
|
|
58
|
+
Object.defineProperty(exports, "GenomeImportError", { enumerable: true, get: function () { return genome_format_js_2.GenomeImportError; } });
|
|
59
|
+
Object.defineProperty(exports, "compositionPlan", { enumerable: true, get: function () { return genome_format_js_2.compositionPlan; } });
|
|
60
|
+
Object.defineProperty(exports, "computeGenomeId", { enumerable: true, get: function () { return genome_format_js_2.computeGenomeId; } });
|
|
61
|
+
Object.defineProperty(exports, "parseBlueprint", { enumerable: true, get: function () { return genome_format_js_2.parseBlueprint; } });
|
|
59
62
|
/** Recommended V_min of §5.1: the floor every capability selection must clear. */
|
|
60
63
|
exports.DEFAULT_MIN_VG = 0.7;
|
|
61
64
|
exports.DEFAULT_MAX_EVAL_AGE_DAYS = 90;
|
|
62
|
-
const PAR_MERGES = new Set(["first", "concat", "merge"]);
|
|
63
|
-
class GenomeImportError extends Error {
|
|
64
|
-
hint;
|
|
65
|
-
constructor(message, hint) {
|
|
66
|
-
super(message);
|
|
67
|
-
this.hint = hint;
|
|
68
|
-
this.name = "GenomeImportError";
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
exports.GenomeImportError = GenomeImportError;
|
|
72
|
-
const OPS_FROM_SPEC = Object.fromEntries(Object.entries(genome_js_1.COMPARE_OPS).map(([local, spec]) => [spec, local]));
|
|
73
|
-
function outsideSubset(why) {
|
|
74
|
-
return new GenomeImportError(`Composition is outside the v0.9.2 executable subset: ${why}`, "v0.9.2 imports Gene, Seq of genes, Par of genes (no deadline), and Cond/TryCatch over exactly two genes.");
|
|
75
|
-
}
|
|
76
|
-
function isObject(v) {
|
|
77
|
-
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
78
|
-
}
|
|
79
|
-
/** The single key of an externally tagged AlgebraExpr, and its body. */
|
|
80
|
-
function tagOf(expr) {
|
|
81
|
-
if (!isObject(expr))
|
|
82
|
-
throw outsideSubset("an expression is not an object");
|
|
83
|
-
const keys = Object.keys(expr);
|
|
84
|
-
if (keys.length !== 1)
|
|
85
|
-
throw outsideSubset(`an expression has ${keys.length} tags`);
|
|
86
|
-
const body = expr[keys[0]];
|
|
87
|
-
if (!isObject(body))
|
|
88
|
-
throw outsideSubset(`'${keys[0]}' has no body`);
|
|
89
|
-
return [keys[0], body];
|
|
90
|
-
}
|
|
91
|
-
/** A `Gene` leaf's role, checked against the snapshot's gene list. */
|
|
92
|
-
function leafRole(expr, genes) {
|
|
93
|
-
const [tag, body] = tagOf(expr);
|
|
94
|
-
if (tag === "RemoteGene")
|
|
95
|
-
throw outsideSubset("RemoteGene is not supported");
|
|
96
|
-
if (tag !== "Gene")
|
|
97
|
-
throw outsideSubset(`'${tag}' appears where only a single gene may`);
|
|
98
|
-
const ref = body.geneRef;
|
|
99
|
-
if (!isObject(ref) || typeof ref.role !== "string" || typeof ref.geneId !== "string") {
|
|
100
|
-
throw outsideSubset("a Gene leaf has no geneRef { geneId, role }");
|
|
101
|
-
}
|
|
102
|
-
const listed = genes.find((g) => g.role === ref.role);
|
|
103
|
-
if (!listed || listed.geneId !== ref.geneId) {
|
|
104
|
-
throw new GenomeImportError(`Composition leaf '${ref.role}' does not match snapshot.genes`);
|
|
105
|
-
}
|
|
106
|
-
return ref.role;
|
|
107
|
-
}
|
|
108
|
-
function compositionPlan(blueprint) {
|
|
109
|
-
const genes = blueprint.snapshot.genes;
|
|
110
|
-
const order = genes.map((g) => g.role);
|
|
111
|
-
const ext = blueprint.bindingExtensions?.[genome_js_1.BINDING_NAME] ?? {};
|
|
112
|
-
const expr = blueprint.snapshot.composition;
|
|
113
|
-
// §4.3: a genome is an ordered composition; with no expression it runs in order.
|
|
114
|
-
if (expr === undefined) {
|
|
115
|
-
return genes.length === 1 ? { type: "Single", roles: order } : { type: "Seq", roles: order };
|
|
116
|
-
}
|
|
117
|
-
const [tag, body] = tagOf(expr);
|
|
118
|
-
let plan;
|
|
119
|
-
switch (tag) {
|
|
120
|
-
case "Gene":
|
|
121
|
-
plan = { type: "Single", roles: [leafRole(expr, genes)] };
|
|
122
|
-
break;
|
|
123
|
-
case "Seq": {
|
|
124
|
-
if (!Array.isArray(body.steps) || body.steps.length === 0)
|
|
125
|
-
throw outsideSubset("Seq has no steps");
|
|
126
|
-
plan = { type: "Seq", roles: body.steps.map((s) => leafRole(s, genes)) };
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
case "Par": {
|
|
130
|
-
// `agent run` executes Par flat and n-ary; export writes it right-nested.
|
|
131
|
-
// Flatten Par(a, Par(b, c)) back to [a, b, c]; anything else nested is refused.
|
|
132
|
-
const roles = [];
|
|
133
|
-
let node = body;
|
|
134
|
-
for (;;) {
|
|
135
|
-
if (node.deadline !== undefined && node.deadline !== null)
|
|
136
|
-
throw outsideSubset("Par with a deadline");
|
|
137
|
-
roles.push(leafRole(node.left, genes));
|
|
138
|
-
const [rightTag, rightBody] = tagOf(node.right);
|
|
139
|
-
if (rightTag === "Par") {
|
|
140
|
-
node = rightBody;
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
roles.push(leafRole(node.right, genes));
|
|
144
|
-
break;
|
|
145
|
-
}
|
|
146
|
-
const merge = ext.parMerge ?? "first";
|
|
147
|
-
if (typeof merge !== "string" || !PAR_MERGES.has(merge)) {
|
|
148
|
-
throw new GenomeImportError(`bindingExtensions["${genome_js_1.BINDING_NAME}"].parMerge '${String(merge)}' is not first, concat or merge`);
|
|
149
|
-
}
|
|
150
|
-
plan = { type: "Par", roles, parMerge: merge };
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
case "Cond": {
|
|
154
|
-
const p = body.predicate;
|
|
155
|
-
if (!isObject(p) || typeof p.field !== "string" || typeof p.operator !== "string" || !("value" in p)) {
|
|
156
|
-
throw outsideSubset("Cond predicate must be { field, operator, value }");
|
|
157
|
-
}
|
|
158
|
-
// agent run substitutes "type" for an empty field and "primary" for a null
|
|
159
|
-
// value; accepting them would run a different branch than the one declared.
|
|
160
|
-
if (p.field === "")
|
|
161
|
-
throw outsideSubset("Cond predicate needs a non-empty field");
|
|
162
|
-
if (p.value === null)
|
|
163
|
-
throw outsideSubset("Cond predicate value must not be null");
|
|
164
|
-
const op = OPS_FROM_SPEC[p.operator];
|
|
165
|
-
if (!op)
|
|
166
|
-
throw outsideSubset(`unknown CompareOp '${p.operator}'`);
|
|
167
|
-
plan = {
|
|
168
|
-
type: "Cond",
|
|
169
|
-
roles: [leafRole(body.ifTrue, genes), leafRole(body.ifFalse, genes)],
|
|
170
|
-
predicate: { field: p.field, op, value: p.value },
|
|
171
|
-
};
|
|
172
|
-
break;
|
|
173
|
-
}
|
|
174
|
-
case "TryCatch":
|
|
175
|
-
plan = { type: "Try", roles: [leafRole(body.body, genes), leafRole(body.handler, genes)] };
|
|
176
|
-
break;
|
|
177
|
-
default:
|
|
178
|
-
throw outsideSubset(`'${tag}' is not a §15.2 operator v0.9.2 supports`);
|
|
179
|
-
}
|
|
180
|
-
if (plan.roles.join("\u0000") !== order.join("\u0000")) {
|
|
181
|
-
throw outsideSubset("the composition must use every gene of snapshot.genes once, in order");
|
|
182
|
-
}
|
|
183
|
-
return plan;
|
|
184
|
-
}
|
|
185
|
-
function checkMinVg(value, where) {
|
|
186
|
-
if (typeof value !== "number" || !Number.isFinite(value) || value < genome_js_1.MIN_VG_FLOOR || value >= 1) {
|
|
187
|
-
throw new GenomeImportError(`${where} must be in [${genome_js_1.MIN_VG_FLOOR}, 1.0)`, "§5.1 does not allow a V(g) threshold below 0.5.");
|
|
188
|
-
}
|
|
189
|
-
return value;
|
|
190
|
-
}
|
|
191
|
-
/** Parse a Blueprint, keep only what v0.9.2 can rebuild faithfully, and run the credential scan. */
|
|
192
|
-
function parseBlueprint(text) {
|
|
193
|
-
let raw;
|
|
194
|
-
try {
|
|
195
|
-
raw = JSON.parse(text);
|
|
196
|
-
}
|
|
197
|
-
catch (err) {
|
|
198
|
-
// The parser's own message quotes the input around the error, which may be
|
|
199
|
-
// a key; report only where it broke.
|
|
200
|
-
const position = /position (\d+)/.exec(err.message)?.[1];
|
|
201
|
-
throw new GenomeImportError(`Not a JSON Blueprint: the file is not valid JSON${position ? ` (at position ${position})` : ""}`);
|
|
202
|
-
}
|
|
203
|
-
if (!isObject(raw))
|
|
204
|
-
throw new GenomeImportError("Not a Blueprint: the top level is not an object");
|
|
205
|
-
// The credential scan runs before any structural check: structural errors
|
|
206
|
-
// name roles, keys and values from the file, and none of those may be a
|
|
207
|
-
// secret by the time they are printed. Findings carry masked pointers only.
|
|
208
|
-
const findings = (0, genome_js_1.scanBlueprint)(raw, { isLeafIdCheckedStructurally: true });
|
|
209
|
-
if (findings.length > 0) {
|
|
210
|
-
const where = findings.map((f) => `${f.pointer || "/"} [${f.layer}] ${f.rule}`).join("; ");
|
|
211
|
-
throw new GenomeImportError(`The Blueprint carries what looks like a credential, so it is not imported: ${where}`);
|
|
212
|
-
}
|
|
213
|
-
const format = raw.blueprintFormat;
|
|
214
|
-
if (typeof format !== "number" || !Number.isInteger(format) || format < 1) {
|
|
215
|
-
throw new GenomeImportError("Not a Blueprint: blueprintFormat is missing or not a positive integer");
|
|
216
|
-
}
|
|
217
|
-
if (format > genome_js_1.BLUEPRINT_FORMAT) {
|
|
218
|
-
throw new GenomeImportError(`Blueprint format ${format} is newer than this CLI understands (${genome_js_1.BLUEPRINT_FORMAT})`, "Update the CLI: rotifer self-update");
|
|
219
|
-
}
|
|
220
|
-
const snapshot = raw.snapshot;
|
|
221
|
-
if (!isObject(snapshot) || !Array.isArray(snapshot.genes) || snapshot.genes.length === 0) {
|
|
222
|
-
throw new GenomeImportError("Blueprint has no snapshot.genes");
|
|
223
|
-
}
|
|
224
|
-
const roles = new Set();
|
|
225
|
-
for (const g of snapshot.genes) {
|
|
226
|
-
if (!isObject(g) || typeof g.geneId !== "string" || typeof g.role !== "string" || g.role === "") {
|
|
227
|
-
throw new GenomeImportError("Every snapshot.genes entry needs a geneId and a role");
|
|
228
|
-
}
|
|
229
|
-
if (!genome_js_1.GENE_ID_V2.test(g.geneId))
|
|
230
|
-
throw new GenomeImportError(`Gene '${g.role}' has no v2 gene ID`);
|
|
231
|
-
if (g.optional === true)
|
|
232
|
-
throw outsideSubset(`gene '${g.role}' is optional, which agent run has no notion of`);
|
|
233
|
-
if (roles.has(g.role))
|
|
234
|
-
throw new GenomeImportError(`Role '${g.role}' appears twice in snapshot.genes`);
|
|
235
|
-
roles.add(g.role);
|
|
236
|
-
}
|
|
237
|
-
if (raw.capabilities !== undefined) {
|
|
238
|
-
if (!isObject(raw.capabilities))
|
|
239
|
-
throw new GenomeImportError("capabilities must be an object");
|
|
240
|
-
for (const [role, q] of Object.entries(raw.capabilities)) {
|
|
241
|
-
if (!roles.has(role))
|
|
242
|
-
throw new GenomeImportError(`capabilities has a role '${role}' that snapshot.genes lacks`);
|
|
243
|
-
if (!isObject(q) || typeof q.domain !== "string" || q.domain === "") {
|
|
244
|
-
throw new GenomeImportError(`capabilities['${role}'] has no domain`);
|
|
245
|
-
}
|
|
246
|
-
if (q.minFitness !== undefined && (typeof q.minFitness !== "number" || q.minFitness < 0 || q.minFitness > 1)) {
|
|
247
|
-
throw new GenomeImportError(`capabilities['${role}'].minFitness must be between 0 and 1`);
|
|
248
|
-
}
|
|
249
|
-
if (q.excludeGeneIds !== undefined) {
|
|
250
|
-
if (!Array.isArray(q.excludeGeneIds) || !q.excludeGeneIds.every((id) => typeof id === "string" && genome_js_1.GENE_ID_V2.test(id))) {
|
|
251
|
-
throw new GenomeImportError(`capabilities['${role}'].excludeGeneIds must be v2 gene IDs`);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
if (raw.resolutionHints !== undefined) {
|
|
257
|
-
if (!isObject(raw.resolutionHints))
|
|
258
|
-
throw new GenomeImportError("resolutionHints must be an object");
|
|
259
|
-
for (const [role, h] of Object.entries(raw.resolutionHints)) {
|
|
260
|
-
if (!roles.has(role))
|
|
261
|
-
throw new GenomeImportError(`resolutionHints has a role '${role}' that snapshot.genes lacks`);
|
|
262
|
-
const isValid = isObject(h) &&
|
|
263
|
-
["owner", "name", "version", "fidelity"].every((k) => typeof h[k] === "string" && h[k] !== "") &&
|
|
264
|
-
(h.cloudId === undefined || typeof h.cloudId === "string");
|
|
265
|
-
if (!isValid)
|
|
266
|
-
throw new GenomeImportError(`resolutionHints['${role}'] needs owner, name, version and fidelity`);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
const blueprint = raw;
|
|
270
|
-
const ext = blueprint.bindingExtensions?.[genome_js_1.BINDING_NAME];
|
|
271
|
-
const suggestedMinVg = ext?.minVg === undefined ? undefined : checkMinVg(ext.minVg, `bindingExtensions["${genome_js_1.BINDING_NAME}"].minVg`);
|
|
272
|
-
const plan = compositionPlan(blueprint);
|
|
273
|
-
return { blueprint, plan, suggestedMinVg };
|
|
274
|
-
}
|
|
275
65
|
function isWrapped(fidelity) {
|
|
276
66
|
return fidelity.toLowerCase() === "wrapped";
|
|
277
67
|
}
|
|
278
68
|
/** Lock mode: the exact author + name + version from the hints. */
|
|
279
69
|
async function locatePinned(role, hint) {
|
|
280
70
|
if (!hint) {
|
|
281
|
-
throw new GenomeImportError(`Role '${role}' has no resolutionHints, so it cannot be located by gene ID`, "The author's gene was never published; ask them to publish it, or import with capability mode.");
|
|
71
|
+
throw new genome_format_js_1.GenomeImportError(`Role '${role}' has no resolutionHints, so it cannot be located by gene ID`, "The author's gene was never published; ask them to publish it, or import with capability mode.");
|
|
282
72
|
}
|
|
283
73
|
if (isWrapped(hint.fidelity)) {
|
|
284
|
-
throw new GenomeImportError(`Role '${role}' is a Wrapped gene: v0.9.2 does not support installing Wrapped genes from the Registry`, "Drop --pinned so capability mode can look for a Native/Hybrid substitute.");
|
|
74
|
+
throw new genome_format_js_1.GenomeImportError(`Role '${role}' is a Wrapped gene: v0.9.2 does not support installing Wrapped genes from the Registry`, "Drop --pinned so capability mode can look for a Native/Hybrid substitute.");
|
|
285
75
|
}
|
|
286
76
|
const same = (a, b) => a.toLowerCase() === b.toLowerCase();
|
|
287
77
|
if (hint.cloudId) {
|
|
@@ -298,7 +88,7 @@ async function locatePinned(role, hint) {
|
|
|
298
88
|
const versions = await (0, client_js_1.listGeneVersions)(hint.owner, hint.name);
|
|
299
89
|
const match = versions.find((v) => v.version === hint.version);
|
|
300
90
|
if (!match) {
|
|
301
|
-
throw new GenomeImportError(`Role '${role}': ${hint.owner}/${hint.name}@${hint.version} is not in the Registry (unpublished, or never published)`);
|
|
91
|
+
throw new genome_format_js_1.GenomeImportError(`Role '${role}': ${hint.owner}/${hint.name}@${hint.version} is not in the Registry (unpublished, or never published)`);
|
|
302
92
|
}
|
|
303
93
|
return { cloudId: match.id };
|
|
304
94
|
}
|
|
@@ -306,11 +96,16 @@ async function locatePinned(role, hint) {
|
|
|
306
96
|
function effectiveMinVg(suggested, local) {
|
|
307
97
|
return Math.max(exports.DEFAULT_MIN_VG, suggested ?? 0, local ?? 0);
|
|
308
98
|
}
|
|
99
|
+
function ownEntry(map, key) {
|
|
100
|
+
return map !== undefined && Object.hasOwn(map, key) ? map[key] : undefined;
|
|
101
|
+
}
|
|
309
102
|
async function resolveRole(role, ctx) {
|
|
310
103
|
const { blueprint, options } = ctx;
|
|
311
104
|
const ref = blueprint.snapshot.genes.find((g) => g.role === role);
|
|
312
|
-
|
|
313
|
-
|
|
105
|
+
// Own entries only: a role may be named "toString" or "__proto__", and a plain
|
|
106
|
+
// lookup would return the inherited member instead of "no entry".
|
|
107
|
+
const hint = ownEntry(blueprint.resolutionHints, role);
|
|
108
|
+
const query = ownEntry(blueprint.capabilities, role);
|
|
314
109
|
const pinned = async (mode, extra = {}) => {
|
|
315
110
|
const { cloudId } = await locatePinned(role, hint);
|
|
316
111
|
return {
|
|
@@ -330,7 +125,7 @@ async function resolveRole(role, ctx) {
|
|
|
330
125
|
if (options.isPinned || !query)
|
|
331
126
|
return pinned("pinned");
|
|
332
127
|
const policy = {
|
|
333
|
-
minFitness: query.minFitness ??
|
|
128
|
+
minFitness: query.minFitness ?? genome_format_js_1.DEFAULT_MIN_FITNESS,
|
|
334
129
|
minVg: effectiveMinVg(ctx.suggestedMinVg, options.minVg),
|
|
335
130
|
maxEvalAgeDays: options.maxEvalAgeDays ?? exports.DEFAULT_MAX_EVAL_AGE_DAYS,
|
|
336
131
|
now: options.now ?? new Date(),
|
|
@@ -403,24 +198,24 @@ async function installAndVerify(resolutions, genesRoot, stagingRoot, isVerbose)
|
|
|
403
198
|
if (hashWarning && isVerbose)
|
|
404
199
|
display.warn(hashWarning);
|
|
405
200
|
if (gene.name !== r.name) {
|
|
406
|
-
throw new GenomeImportError(`Registry row ${r.cloudId} is '${gene.name}', expected '${r.name}'`);
|
|
201
|
+
throw new genome_format_js_1.GenomeImportError(`Registry row ${r.cloudId} is '${gene.name}', expected '${r.name}'`);
|
|
407
202
|
}
|
|
408
203
|
const id = (0, binding_js_1.geneIdV2)(stagingRoot, gene.name);
|
|
409
204
|
if (!("id" in id)) {
|
|
410
|
-
throw new GenomeImportError(`Installed '${gene.name}' has no v2 gene ID: ${id.reason}`);
|
|
205
|
+
throw new genome_format_js_1.GenomeImportError(`Installed '${gene.name}' has no v2 gene ID: ${id.reason}`);
|
|
411
206
|
}
|
|
412
207
|
if (isLockMode && id.id !== r.originalGeneId) {
|
|
413
|
-
throw new GenomeImportError(`geneId mismatch for role '${r.role}': the Blueprint pins ${r.originalGeneId}, ` +
|
|
208
|
+
throw new genome_format_js_1.GenomeImportError(`geneId mismatch for role '${r.role}': the Blueprint pins ${r.originalGeneId}, ` +
|
|
414
209
|
`the installed ${r.owner}/${r.name}@${r.version} is ${id.id}`, "The gene's content differs from what the Blueprint was made from; nothing was imported.");
|
|
415
210
|
}
|
|
416
211
|
// Exclusion was applied at admission; what was installed must be what was admitted.
|
|
417
212
|
if (!isLockMode && id.id !== r.candidateGeneId) {
|
|
418
|
-
throw new GenomeImportError(`Role '${r.role}': installed ${r.owner}/${r.name}@${r.version} is ${id.id}, not the ${r.candidateGeneId} admitted`, "The Registry row changed between admission and install; nothing was imported.");
|
|
213
|
+
throw new genome_format_js_1.GenomeImportError(`Role '${r.role}': installed ${r.owner}/${r.name}@${r.version} is ${id.id}, not the ${r.candidateGeneId} admitted`, "The Registry row changed between admission and install; nothing was imported.");
|
|
419
214
|
}
|
|
420
215
|
if ((0, node_fs_1.existsSync)((0, node_path_1.join)(local, "phenotype.json"))) {
|
|
421
216
|
const localId = (0, binding_js_1.geneIdV2)(genesRoot, r.name);
|
|
422
217
|
if (!("id" in localId) || localId.id !== id.id) {
|
|
423
|
-
throw new GenomeImportError(`A different gene named '${r.name}' already exists in this workspace`, "Import into another workspace, or move the local gene aside first.");
|
|
218
|
+
throw new genome_format_js_1.GenomeImportError(`A different gene named '${r.name}' already exists in this workspace`, "Import into another workspace, or move the local gene aside first.");
|
|
424
219
|
}
|
|
425
220
|
staged.push({ role: r.role, name: r.name, geneId: id.id, stagedDir: null, contentHashCheck });
|
|
426
221
|
continue;
|
|
@@ -429,28 +224,24 @@ async function installAndVerify(resolutions, genesRoot, stagingRoot, isVerbose)
|
|
|
429
224
|
}
|
|
430
225
|
return staged;
|
|
431
226
|
}
|
|
432
|
-
/** sha256 of the composition-relevant part of the Blueprint: same genome, same id. */
|
|
433
|
-
function genomeIdOf(blueprint) {
|
|
434
|
-
const material = JSON.stringify({ genes: blueprint.snapshot.genes, composition: blueprint.snapshot.composition ?? null });
|
|
435
|
-
return (0, node_crypto_1.createHash)("sha256").update(material).digest("hex");
|
|
436
|
-
}
|
|
437
227
|
async function importGenome(file, options, ctx) {
|
|
438
228
|
if (options.minVg !== undefined)
|
|
439
|
-
checkMinVg(options.minVg, "--min-vg");
|
|
229
|
+
(0, genome_format_js_1.checkMinVg)(options.minVg, "--min-vg");
|
|
440
230
|
if (options.maxEvalAgeDays !== undefined && !(Number.isFinite(options.maxEvalAgeDays) && options.maxEvalAgeDays > 0)) {
|
|
441
|
-
throw new GenomeImportError("--max-eval-age must be a positive number of days");
|
|
231
|
+
throw new genome_format_js_1.GenomeImportError("--max-eval-age must be a positive number of days");
|
|
442
232
|
}
|
|
443
233
|
let text;
|
|
444
234
|
try {
|
|
445
235
|
text = (0, node_fs_1.readFileSync)(file, "utf-8");
|
|
446
236
|
}
|
|
447
237
|
catch (err) {
|
|
448
|
-
throw new GenomeImportError(`Cannot read ${file}: ${err.message}`);
|
|
238
|
+
throw new genome_format_js_1.GenomeImportError(`Cannot read ${file}: ${err.message}`);
|
|
449
239
|
}
|
|
450
|
-
|
|
240
|
+
// parseBlueprint computes genomeId before any role is resolved or anything written.
|
|
241
|
+
const { blueprint, plan, genomeId, suggestedMinVg } = (0, genome_format_js_1.parseBlueprint)(text);
|
|
451
242
|
const agentName = options.name ?? blueprint.metadata?.name;
|
|
452
243
|
if (typeof agentName !== "string" || agentName === "") {
|
|
453
|
-
throw new GenomeImportError("The Blueprint has no metadata.name", "Name the agent: --name <agent>");
|
|
244
|
+
throw new genome_format_js_1.GenomeImportError("The Blueprint has no metadata.name", "Name the agent: --name <agent>");
|
|
454
245
|
}
|
|
455
246
|
const agentsDir = (0, node_path_1.join)(ctx.root, ".rotifer", "agents");
|
|
456
247
|
if ((0, node_fs_1.existsSync)(agentsDir)) {
|
|
@@ -458,7 +249,7 @@ async function importGenome(file, options, ctx) {
|
|
|
458
249
|
.filter((f) => f.endsWith(".json"))
|
|
459
250
|
.some((f) => JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(agentsDir, f), "utf-8")).name === agentName);
|
|
460
251
|
if (isTaken)
|
|
461
|
-
throw new GenomeImportError(`An agent named '${agentName}' already exists`, "Pick another: --name <agent>");
|
|
252
|
+
throw new genome_format_js_1.GenomeImportError(`An agent named '${agentName}' already exists`, "Pick another: --name <agent>");
|
|
462
253
|
}
|
|
463
254
|
const resolutions = [];
|
|
464
255
|
for (const role of plan.roles) {
|
|
@@ -467,20 +258,21 @@ async function importGenome(file, options, ctx) {
|
|
|
467
258
|
}
|
|
468
259
|
catch (err) {
|
|
469
260
|
if (err instanceof capability_candidates_js_1.EvidenceError) {
|
|
470
|
-
throw new GenomeImportError(`Role '${role}': ${err.message}`, "Capability evidence could not be read; nothing was imported.");
|
|
261
|
+
throw new genome_format_js_1.GenomeImportError(`Role '${role}': ${err.message}`, "Capability evidence could not be read; nothing was imported.");
|
|
471
262
|
}
|
|
472
263
|
throw err;
|
|
473
264
|
}
|
|
474
265
|
}
|
|
475
266
|
const names = resolutions.map((r) => r.name);
|
|
476
267
|
if (new Set(names).size !== names.length) {
|
|
477
|
-
throw new GenomeImportError("Two roles resolved to the same gene name; the agent cannot hold both");
|
|
268
|
+
throw new genome_format_js_1.GenomeImportError("Two roles resolved to the same gene name; the agent cannot hold both");
|
|
478
269
|
}
|
|
479
270
|
const resolvedAt = (options.now ?? new Date()).toISOString();
|
|
480
271
|
if (options.isDryRun) {
|
|
481
272
|
return {
|
|
482
273
|
ok: true,
|
|
483
274
|
dryRun: true,
|
|
275
|
+
genomeId,
|
|
484
276
|
agent: null,
|
|
485
277
|
composition: plan.type,
|
|
486
278
|
executionSnapshot: null,
|
|
@@ -520,10 +312,11 @@ async function importGenome(file, options, ctx) {
|
|
|
520
312
|
return {
|
|
521
313
|
ok: true,
|
|
522
314
|
dryRun: false,
|
|
315
|
+
genomeId,
|
|
523
316
|
agent: { id: agent.id, name: agent.name },
|
|
524
317
|
composition: plan.type,
|
|
525
318
|
executionSnapshot: {
|
|
526
|
-
genomeId
|
|
319
|
+
genomeId,
|
|
527
320
|
resolvedDeps: Object.fromEntries(staged.map((s) => [s.role, s.geneId])),
|
|
528
321
|
resolvedAt,
|
|
529
322
|
status: "ACTIVE",
|
|
@@ -537,7 +330,7 @@ function parseNumber(flag, raw) {
|
|
|
537
330
|
return undefined;
|
|
538
331
|
const n = Number(raw);
|
|
539
332
|
if (raw.trim() === "" || !Number.isFinite(n))
|
|
540
|
-
throw new GenomeImportError(`${flag} must be a number, got '${raw}'`);
|
|
333
|
+
throw new genome_format_js_1.GenomeImportError(`${flag} must be a number, got '${raw}'`);
|
|
541
334
|
return n;
|
|
542
335
|
}
|
|
543
336
|
function renderHuman(r) {
|
|
@@ -601,9 +394,9 @@ async function runGenomeImport(file, cli, ctx) {
|
|
|
601
394
|
return 0;
|
|
602
395
|
}
|
|
603
396
|
catch (err) {
|
|
604
|
-
if (!(err instanceof GenomeImportError)) {
|
|
397
|
+
if (!(err instanceof genome_format_js_1.GenomeImportError)) {
|
|
605
398
|
const message = err?.message ?? String(err);
|
|
606
|
-
err = new GenomeImportError(message);
|
|
399
|
+
err = new genome_format_js_1.GenomeImportError(message);
|
|
607
400
|
}
|
|
608
401
|
const e = err;
|
|
609
402
|
if (display.isJsonMode()) {
|
|
@@ -622,7 +415,7 @@ exports.genomeImportCommand = new commander_1.Command("import")
|
|
|
622
415
|
.option("--dry-run", "resolve every role and print the plan; install nothing")
|
|
623
416
|
.option("--yes", "accept substitutes from other authors without asking")
|
|
624
417
|
.option("--name <agent>", "name for the new agent (default: the Blueprint's)")
|
|
625
|
-
.option("--min-vg <n>", `V(g) threshold for capability picks, in [${
|
|
418
|
+
.option("--min-vg <n>", `V(g) threshold for capability picks, in [${genome_format_js_1.MIN_VG_FLOOR}, 1.0) (default ${exports.DEFAULT_MIN_VG}; the strictest of this, the Blueprint's and the default wins)`)
|
|
626
419
|
.option("--max-eval-age <days>", `ignore Arena evidence older than this (default ${exports.DEFAULT_MAX_EVAL_AGE_DAYS})`)
|
|
627
420
|
.action(async (file, cli) => {
|
|
628
421
|
const root = (0, project_root_js_1.requireProjectRoot)();
|