@rotifer/playground 0.29.0 → 0.30.1

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.
@@ -8,10 +8,17 @@
8
8
  * sit in the denominator and a slower, costlier gene scores lower. The
9
9
  * implementation does not divide by raw values — an unbounded denominator
10
10
  * drives F(g) to zero for any gene with a realistic latency, which is what
11
- * ADR-215 P1 set out to avoid. It normalizes each into a (0, 1] score first:
11
+ * ADR-215 P1 set out to avoid. It normalizes each into a (0, 1] score first,
12
+ * against a reference scale (ADR-318 D2):
12
13
  *
13
- * L_score = 1 / (1 + avg_latency_ms / LATENCY_SCALE_MS)
14
- * Cost_score = 1 / (1 + avg_cost / RESOURCE_SCALE_UNITS)
14
+ * L_score = 1 / (1 + avg_latency_ms / L_ref)
15
+ * Cost_score = 1 / (1 + avg_cost / Cost_ref)
16
+ *
17
+ * L_ref / Cost_ref are the current-season median of the gene's own domain and
18
+ * fidelity, computed by the registry (`get_fitness_reference`); a gene exactly
19
+ * at its peers' median scores 1/2 on each. While the season has too few
20
+ * measured genes, or the registry cannot be reached, the fixed constants below
21
+ * stand in (FALLBACK_REFERENCE).
15
22
  *
16
23
  * Those scores are already *inverted* — lower latency means a score nearer 1 —
17
24
  * so they belong in the numerator. Dividing by them, as this code did until
@@ -20,23 +27,26 @@
20
27
  * tests in `tests/unit/fitness-formula.test.ts` hold the direction.
21
28
  */
22
29
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.RESOURCE_SCALE_UNITS = exports.LATENCY_SCALE_MS = void 0;
30
+ exports.REFERENCE_FUNCTION_MISSING = exports.FALLBACK_REFERENCE = exports.RESOURCE_SCALE_UNITS = exports.LATENCY_SCALE_MS = void 0;
31
+ exports.isUsableReference = isUsableReference;
32
+ exports.resolveFitnessReference = resolveFitnessReference;
24
33
  exports.latencyScoreFor = latencyScoreFor;
25
34
  exports.resourceEfficiencyFor = resourceEfficiencyFor;
26
35
  exports.computeBaseFitness = computeBaseFitness;
27
36
  /**
28
- * Latency at which L_score halves. `[N]` — provisional, uncalibrated.
37
+ * Fallback L_ref: latency at which L_score halves when no season median is
38
+ * available. `[N]` — provisional, uncalibrated.
29
39
  *
30
- * ADR-318 D2 replaces both constants with `L_ref` / `Cost_ref` — the season
31
- * median for the gene's own domain and fidelity, which is what makes F(g)
32
- * dimensionless and comparable across bindings — and marks their values `[N]`
33
- * pending ABM / measured calibration under RFC-001 §0. That reference scale
34
- * needs a season-median pipeline that does not exist yet (v0.9.3 #6); these two
35
- * fixed constants are the stand-ins until it does.
40
+ * ADR-318 D2 defines `L_ref` / `Cost_ref` as the season median for the gene's
41
+ * own domain and fidelity, which is what makes F(g) dimensionless and
42
+ * comparable across bindings. The registry computes it (v0.9.3 #6); these two
43
+ * fixed constants are used only while that median does not exist for a group
44
+ * — too few measured genes this season — or cannot be fetched.
36
45
  */
37
46
  exports.LATENCY_SCALE_MS = 1000;
38
47
  /**
39
- * Resource cost (fuel units) at which Cost_score halves. `[N]` — provisional.
48
+ * Fallback Cost_ref: resource cost (fuel units) at which Cost_score halves
49
+ * when no season median is available. `[N]` — provisional.
40
50
  *
41
51
  * Badly out of scale, and known to be: ADR-318 recorded both constants as
42
52
  * guesses, and measured 7.7e9 fuel on a leaderboard gene from its reported
@@ -52,23 +62,88 @@ exports.LATENCY_SCALE_MS = 1000;
52
62
  * protocol-parameter change under RFC-001 §0, not a code cleanup.
53
63
  */
54
64
  exports.RESOURCE_SCALE_UNITS = 10_000;
55
- /** L_score: 1 at zero latency, strictly decreasing, never zero. */
56
- function latencyScoreFor(avgLatencyMs) {
57
- return 1.0 / (1.0 + Math.max(avgLatencyMs, 0) / exports.LATENCY_SCALE_MS);
65
+ /** The fixed constants, used whenever no season median is available. */
66
+ exports.FALLBACK_REFERENCE = Object.freeze({
67
+ latencyMs: exports.LATENCY_SCALE_MS,
68
+ resourceCost: exports.RESOURCE_SCALE_UNITS,
69
+ });
70
+ /** Both values finite and positive; anything else would divide by zero or flip a sign. */
71
+ function isUsableReference(reference) {
72
+ return (Number.isFinite(reference.latencyMs) && reference.latencyMs > 0 &&
73
+ Number.isFinite(reference.resourceCost) && reference.resourceCost > 0);
74
+ }
75
+ /**
76
+ * `code` on the error a reference fetcher throws when the registry has no
77
+ * `get_fitness_reference` (HTTP 404): a registry from before the migration,
78
+ * whose arena_entries has no reference columns either. A code rather than an
79
+ * error class, so the check survives two copies of this module.
80
+ */
81
+ exports.REFERENCE_FUNCTION_MISSING = "REFERENCE_FUNCTION_MISSING";
82
+ /**
83
+ * The reference scale for one gene's F(g): its group's season median when the
84
+ * registry has one, the fixed constants otherwise. Never throws — a missing
85
+ * median is a reason to fall back, not to fail the evaluation.
86
+ */
87
+ async function resolveFitnessReference(domain, fidelity, fetchReference) {
88
+ let row;
89
+ try {
90
+ row = await fetchReference(domain, fidelity);
91
+ }
92
+ catch (err) {
93
+ const isFunctionMissing = err?.code === exports.REFERENCE_FUNCTION_MISSING;
94
+ return {
95
+ scale: { ...exports.FALLBACK_REFERENCE },
96
+ source: "fallback",
97
+ isRecordable: !isFunctionMissing,
98
+ reason: isFunctionMissing
99
+ ? "the registry has no season median yet (get_fitness_reference is not deployed)"
100
+ : `the registry's season median could not be read (${err.message})`,
101
+ };
102
+ }
103
+ if (row === null) {
104
+ return {
105
+ scale: { ...exports.FALLBACK_REFERENCE },
106
+ source: "fallback",
107
+ isRecordable: true,
108
+ reason: `too few measured ${domain} / ${fidelity} genes this season for a median`,
109
+ };
110
+ }
111
+ const scale = { latencyMs: Number(row.l_ref_ms), resourceCost: Number(row.cost_ref) };
112
+ if (!isUsableReference(scale)) {
113
+ return {
114
+ scale: { ...exports.FALLBACK_REFERENCE },
115
+ source: "fallback",
116
+ isRecordable: true,
117
+ reason: "the registry returned a median that is not a positive number",
118
+ };
119
+ }
120
+ return {
121
+ scale,
122
+ source: "season-median",
123
+ isRecordable: true,
124
+ sampleGenes: row.sample_genes,
125
+ seasonNumber: row.season_number,
126
+ };
127
+ }
128
+ /** L_score: 1 at zero latency, 1/2 at L_ref, strictly decreasing, never zero. */
129
+ function latencyScoreFor(avgLatencyMs, latencyRefMs = exports.LATENCY_SCALE_MS) {
130
+ return 1.0 / (1.0 + Math.max(avgLatencyMs, 0) / latencyRefMs);
58
131
  }
59
- /** Cost_score: 1 at zero cost, strictly decreasing, never zero. */
60
- function resourceEfficiencyFor(avgResourceCost) {
61
- return 1.0 / (1.0 + Math.max(avgResourceCost, 0) / exports.RESOURCE_SCALE_UNITS);
132
+ /** Cost_score: 1 at zero cost, 1/2 at Cost_ref, strictly decreasing, never zero. */
133
+ function resourceEfficiencyFor(avgResourceCost, costRef = exports.RESOURCE_SCALE_UNITS) {
134
+ return 1.0 / (1.0 + Math.max(avgResourceCost, 0) / costRef);
62
135
  }
63
136
  /**
64
- * F(g) from one batch of evaluation measurements.
137
+ * F(g) from one batch of evaluation measurements, against `reference` (the
138
+ * fixed constants when omitted, or when the given scale is not usable).
65
139
  *
66
140
  * Multiplicative throughout: a zero in any factor collapses the score, with no
67
141
  * mutual compensation between a gene's strengths and its weaknesses.
68
142
  */
69
- function computeBaseFitness(inputs) {
70
- const latencyScore = latencyScoreFor(inputs.avgLatencyMs);
71
- const resourceEfficiency = resourceEfficiencyFor(inputs.avgResourceCost);
143
+ function computeBaseFitness(inputs, reference = exports.FALLBACK_REFERENCE) {
144
+ const scale = isUsableReference(reference) ? reference : exports.FALLBACK_REFERENCE;
145
+ const latencyScore = latencyScoreFor(inputs.avgLatencyMs, scale.latencyMs);
146
+ const resourceEfficiency = resourceEfficiencyFor(inputs.avgResourceCost, scale.resourceCost);
72
147
  const quality = inputs.successRate * Math.log1p(inputs.coverage) * (1 + inputs.robustness);
73
148
  // Multiplied, not divided: L_score and Cost_score are already inverted, so
74
149
  // multiplying by them is what makes slower and costlier score lower. No cap —
@@ -1 +1 @@
1
- {"version":3,"file":"fitness-formula.js","sourceRoot":"","sources":["../../src/utils/fitness-formula.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AA8DH,0CAEC;AAGD,sDAEC;AAQD,gDAUC;AArFD;;;;;;;;;GASG;AACU,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACrC;;;;;;;;;;;;;;;GAeG;AACU,QAAA,oBAAoB,GAAG,MAAM,CAAC;AAgC3C,mEAAmE;AACnE,SAAgB,eAAe,CAAC,YAAoB;IAClD,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,wBAAgB,CAAC,CAAC;AACpE,CAAC;AAED,mEAAmE;AACnE,SAAgB,qBAAqB,CAAC,eAAuB;IAC3D,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,4BAAoB,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAAqB;IACtD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzE,MAAM,OAAO,GACX,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,kDAAkD;IAClD,MAAM,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,kBAAkB,CAAC;IAC1D,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"fitness-formula.js","sourceRoot":"","sources":["../../src/utils/fitness-formula.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,12 @@
10
10
  * A ladder keeps both properties we care about:
11
11
  * - completion: a run that dies of fuel alone is retried with more, up to a
12
12
  * hard cap, so "expensive" stops reading as "broken";
13
- * - honesty: the fuel actually burned is what lands in resource_cost, and
14
- * F(g)'s efficiency term already prices it — a Gene that needs 8e9 fuel
15
- * pays for 8e9 fuel. Nothing here makes an expensive Gene look cheap.
13
+ * - honesty: what lands in resource_cost is the fuel actually burned plus
14
+ * any host-call surcharges (ADR-327 D4, billed on top, not drawn from the
15
+ * budget), and F(g)'s efficiency term prices all of it — a Gene that
16
+ * needs 8e9 fuel pays for 8e9 fuel. Nothing here makes an expensive Gene
17
+ * look cheap. A rung's budget bounds guest computation only, so
18
+ * resource_cost can exceed it; that is not a fuel-exhausted failure.
16
19
  *
17
20
  * The cap is finite on purpose: a Gene that exhausts the top rung records a
18
21
  * fuel-exhausted failure, because at some point "needs more fuel" is the
@@ -1 +1 @@
1
- {"version":3,"file":"run-fuel-ladder.d.ts","sourceRoot":"","sources":["../../src/utils/run-fuel-ladder.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAQxC,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,iBAAiB,GACjB,SAAS,GACT,OAAO,CAAC;AAEZ;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,cAAc,GAAG,IAAI,CAWvB;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D"}
1
+ {"version":3,"file":"run-fuel-ladder.d.ts","sourceRoot":"","sources":["../../src/utils/run-fuel-ladder.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAQxC,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,iBAAiB,GACjB,SAAS,GACT,OAAO,CAAC;AAEZ;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,cAAc,GAAG,IAAI,CAWvB;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -16,9 +16,12 @@ const sandbox_defaults_js_1 = require("./sandbox-defaults.js");
16
16
  * A ladder keeps both properties we care about:
17
17
  * - completion: a run that dies of fuel alone is retried with more, up to a
18
18
  * hard cap, so "expensive" stops reading as "broken";
19
- * - honesty: the fuel actually burned is what lands in resource_cost, and
20
- * F(g)'s efficiency term already prices it — a Gene that needs 8e9 fuel
21
- * pays for 8e9 fuel. Nothing here makes an expensive Gene look cheap.
19
+ * - honesty: what lands in resource_cost is the fuel actually burned plus
20
+ * any host-call surcharges (ADR-327 D4, billed on top, not drawn from the
21
+ * budget), and F(g)'s efficiency term prices all of it — a Gene that
22
+ * needs 8e9 fuel pays for 8e9 fuel. Nothing here makes an expensive Gene
23
+ * look cheap. A rung's budget bounds guest computation only, so
24
+ * resource_cost can exceed it; that is not a fuel-exhausted failure.
22
25
  *
23
26
  * The cap is finite on purpose: a Gene that exhausts the top rung records a
24
27
  * fuel-exhausted failure, because at some point "needs more fuel" is the
@@ -1 +1 @@
1
- {"version":3,"file":"run-fuel-ladder.js","sourceRoot":"","sources":["../../src/utils/run-fuel-ladder.ts"],"names":[],"mappings":";;;AA6CA,gDAaC;AAGD,gDAEC;AA/DD,+DAAoE;AAEpE;;;;;;;;;;;;;;;;;;;;GAoBG;AACU,QAAA,WAAW,GAAsB;IAC5C,iDAA2B,CAAC,QAAQ,EAAE,+BAA+B;IACrE,aAAa;IACb,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,2EAA2E;IAC3E,cAAc;CACf,CAAC;AAQF;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,YAAuC;IAEvC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uDAAuD;AACvD,SAAgB,kBAAkB,CAAC,OAAe;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,iDAA2B,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"run-fuel-ladder.js","sourceRoot":"","sources":["../../src/utils/run-fuel-ladder.ts"],"names":[],"mappings":";;;AAgDA,gDAaC;AAGD,gDAEC;AAlED,+DAAoE;AAEpE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,WAAW,GAAsB;IAC5C,iDAA2B,CAAC,QAAQ,EAAE,+BAA+B;IACrE,aAAa;IACb,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,2EAA2E;IAC3E,cAAc;CACf,CAAC;AAQF;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,YAAuC;IAEvC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uDAAuD;AACvD,SAAgB,kBAAkB,CAAC,OAAe;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,iDAA2B,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rotifer/playground",
3
- "version": "0.29.0",
3
+ "version": "0.30.1",
4
4
  "description": "Rotifer Protocol Playground — local development environment for gene development, Arena competition, and protocol simulation",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Rotifer Protocol Contributors",
@@ -92,10 +92,10 @@
92
92
  },
93
93
  "optionalDependencies": {
94
94
  "@rolldown/binding-linux-x64-gnu": "1.1.1",
95
- "@rotifer/playground-darwin-arm64": "0.29.0",
96
- "@rotifer/playground-darwin-x64": "0.29.0",
97
- "@rotifer/playground-linux-x64-gnu": "0.29.0",
98
- "@rotifer/playground-win32-x64-msvc": "0.29.0"
95
+ "@rotifer/playground-darwin-arm64": "0.30.1",
96
+ "@rotifer/playground-darwin-x64": "0.30.1",
97
+ "@rotifer/playground-linux-x64-gnu": "0.30.1",
98
+ "@rotifer/playground-win32-x64-msvc": "0.30.1"
99
99
  },
100
100
  "engines": {
101
101
  "node": ">=22.18.0"