melete-ai 0.88.2

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.
Files changed (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -0
  3. package/bin/melete-server.mjs +345 -0
  4. package/bin/melete.mjs +165 -0
  5. package/dist/achievability.d.ts +38 -0
  6. package/dist/achievability.d.ts.map +1 -0
  7. package/dist/achievability.js +135 -0
  8. package/dist/achievability.js.map +1 -0
  9. package/dist/aegis.d.ts +52 -0
  10. package/dist/aegis.d.ts.map +1 -0
  11. package/dist/aegis.js +191 -0
  12. package/dist/aegis.js.map +1 -0
  13. package/dist/arms.d.ts +70 -0
  14. package/dist/arms.d.ts.map +1 -0
  15. package/dist/arms.js +399 -0
  16. package/dist/arms.js.map +1 -0
  17. package/dist/batch.d.ts +30 -0
  18. package/dist/batch.d.ts.map +1 -0
  19. package/dist/batch.js +151 -0
  20. package/dist/batch.js.map +1 -0
  21. package/dist/bench.d.ts +49 -0
  22. package/dist/bench.d.ts.map +1 -0
  23. package/dist/bench.js +124 -0
  24. package/dist/bench.js.map +1 -0
  25. package/dist/certify.d.ts +48 -0
  26. package/dist/certify.d.ts.map +1 -0
  27. package/dist/certify.js +125 -0
  28. package/dist/certify.js.map +1 -0
  29. package/dist/cliff.d.ts +41 -0
  30. package/dist/cliff.d.ts.map +1 -0
  31. package/dist/cliff.js +132 -0
  32. package/dist/cliff.js.map +1 -0
  33. package/dist/confidence.d.ts +38 -0
  34. package/dist/confidence.d.ts.map +1 -0
  35. package/dist/confidence.js +98 -0
  36. package/dist/confidence.js.map +1 -0
  37. package/dist/constrained.d.ts +59 -0
  38. package/dist/constrained.d.ts.map +1 -0
  39. package/dist/constrained.js +191 -0
  40. package/dist/constrained.js.map +1 -0
  41. package/dist/cortex.d.ts +56 -0
  42. package/dist/cortex.d.ts.map +1 -0
  43. package/dist/cortex.js +81 -0
  44. package/dist/cortex.js.map +1 -0
  45. package/dist/costaware.d.ts +49 -0
  46. package/dist/costaware.d.ts.map +1 -0
  47. package/dist/costaware.js +185 -0
  48. package/dist/costaware.js.map +1 -0
  49. package/dist/drift.d.ts +36 -0
  50. package/dist/drift.d.ts.map +1 -0
  51. package/dist/drift.js +157 -0
  52. package/dist/drift.js.map +1 -0
  53. package/dist/efficiency.d.ts +49 -0
  54. package/dist/efficiency.d.ts.map +1 -0
  55. package/dist/efficiency.js +143 -0
  56. package/dist/efficiency.js.map +1 -0
  57. package/dist/engine.d.ts +64 -0
  58. package/dist/engine.d.ts.map +1 -0
  59. package/dist/engine.js +130 -0
  60. package/dist/engine.js.map +1 -0
  61. package/dist/federated.d.ts +38 -0
  62. package/dist/federated.d.ts.map +1 -0
  63. package/dist/federated.js +121 -0
  64. package/dist/federated.js.map +1 -0
  65. package/dist/frontier.d.ts +51 -0
  66. package/dist/frontier.d.ts.map +1 -0
  67. package/dist/frontier.js +117 -0
  68. package/dist/frontier.js.map +1 -0
  69. package/dist/guardian.d.ts +46 -0
  70. package/dist/guardian.d.ts.map +1 -0
  71. package/dist/guardian.js +101 -0
  72. package/dist/guardian.js.map +1 -0
  73. package/dist/index.d.ts +90 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +189 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/interaction.d.ts +44 -0
  78. package/dist/interaction.d.ts.map +1 -0
  79. package/dist/interaction.js +167 -0
  80. package/dist/interaction.js.map +1 -0
  81. package/dist/interactive.d.ts +25 -0
  82. package/dist/interactive.d.ts.map +1 -0
  83. package/dist/interactive.js +75 -0
  84. package/dist/interactive.js.map +1 -0
  85. package/dist/inverse.d.ts +44 -0
  86. package/dist/inverse.d.ts.map +1 -0
  87. package/dist/inverse.js +141 -0
  88. package/dist/inverse.js.map +1 -0
  89. package/dist/ipshield.d.ts +62 -0
  90. package/dist/ipshield.d.ts.map +1 -0
  91. package/dist/ipshield.js +104 -0
  92. package/dist/ipshield.js.map +1 -0
  93. package/dist/journalist.d.ts +56 -0
  94. package/dist/journalist.d.ts.map +1 -0
  95. package/dist/journalist.js +132 -0
  96. package/dist/journalist.js.map +1 -0
  97. package/dist/lineage.d.ts +43 -0
  98. package/dist/lineage.d.ts.map +1 -0
  99. package/dist/lineage.js +112 -0
  100. package/dist/lineage.js.map +1 -0
  101. package/dist/metabrain.d.ts +59 -0
  102. package/dist/metabrain.d.ts.map +1 -0
  103. package/dist/metabrain.js +215 -0
  104. package/dist/metabrain.js.map +1 -0
  105. package/dist/mixedspace.d.ts +61 -0
  106. package/dist/mixedspace.d.ts.map +1 -0
  107. package/dist/mixedspace.js +267 -0
  108. package/dist/mixedspace.js.map +1 -0
  109. package/dist/multiobjective.d.ts +42 -0
  110. package/dist/multiobjective.d.ts.map +1 -0
  111. package/dist/multiobjective.js +123 -0
  112. package/dist/multiobjective.js.map +1 -0
  113. package/dist/noise.d.ts +45 -0
  114. package/dist/noise.d.ts.map +1 -0
  115. package/dist/noise.js +148 -0
  116. package/dist/noise.js.map +1 -0
  117. package/dist/noiserobust.d.ts +71 -0
  118. package/dist/noiserobust.d.ts.map +1 -0
  119. package/dist/noiserobust.js +215 -0
  120. package/dist/noiserobust.js.map +1 -0
  121. package/dist/oracle.d.ts +63 -0
  122. package/dist/oracle.d.ts.map +1 -0
  123. package/dist/oracle.js +106 -0
  124. package/dist/oracle.js.map +1 -0
  125. package/dist/poopt.d.ts +79 -0
  126. package/dist/poopt.d.ts.map +1 -0
  127. package/dist/poopt.js +148 -0
  128. package/dist/poopt.js.map +1 -0
  129. package/dist/portfolio.d.ts +51 -0
  130. package/dist/portfolio.d.ts.map +1 -0
  131. package/dist/portfolio.js +132 -0
  132. package/dist/portfolio.js.map +1 -0
  133. package/dist/prescription.d.ts +57 -0
  134. package/dist/prescription.d.ts.map +1 -0
  135. package/dist/prescription.js +131 -0
  136. package/dist/prescription.js.map +1 -0
  137. package/dist/prime.d.ts +85 -0
  138. package/dist/prime.d.ts.map +1 -0
  139. package/dist/prime.js +157 -0
  140. package/dist/prime.js.map +1 -0
  141. package/dist/provenance.d.ts +77 -0
  142. package/dist/provenance.d.ts.map +1 -0
  143. package/dist/provenance.js +155 -0
  144. package/dist/provenance.js.map +1 -0
  145. package/dist/rashomon.d.ts +40 -0
  146. package/dist/rashomon.d.ts.map +1 -0
  147. package/dist/rashomon.js +93 -0
  148. package/dist/rashomon.js.map +1 -0
  149. package/dist/reliability.d.ts +79 -0
  150. package/dist/reliability.d.ts.map +1 -0
  151. package/dist/reliability.js +197 -0
  152. package/dist/reliability.js.map +1 -0
  153. package/dist/replay.d.ts +62 -0
  154. package/dist/replay.d.ts.map +1 -0
  155. package/dist/replay.js +146 -0
  156. package/dist/replay.js.map +1 -0
  157. package/dist/replicate.d.ts +72 -0
  158. package/dist/replicate.d.ts.map +1 -0
  159. package/dist/replicate.js +103 -0
  160. package/dist/replicate.js.map +1 -0
  161. package/dist/resonance.d.ts +32 -0
  162. package/dist/resonance.d.ts.map +1 -0
  163. package/dist/resonance.js +190 -0
  164. package/dist/resonance.js.map +1 -0
  165. package/dist/sensitivity.d.ts +44 -0
  166. package/dist/sensitivity.d.ts.map +1 -0
  167. package/dist/sensitivity.js +109 -0
  168. package/dist/sensitivity.js.map +1 -0
  169. package/dist/server.d.ts +26 -0
  170. package/dist/server.d.ts.map +1 -0
  171. package/dist/server.js +1410 -0
  172. package/dist/server.js.map +1 -0
  173. package/dist/shape.d.ts +37 -0
  174. package/dist/shape.d.ts.map +1 -0
  175. package/dist/shape.js +170 -0
  176. package/dist/shape.js.map +1 -0
  177. package/dist/sloppiness.d.ts +44 -0
  178. package/dist/sloppiness.d.ts.map +1 -0
  179. package/dist/sloppiness.js +194 -0
  180. package/dist/sloppiness.js.map +1 -0
  181. package/dist/sovereign.d.ts +77 -0
  182. package/dist/sovereign.d.ts.map +1 -0
  183. package/dist/sovereign.js +144 -0
  184. package/dist/sovereign.js.map +1 -0
  185. package/dist/space.d.ts +38 -0
  186. package/dist/space.d.ts.map +1 -0
  187. package/dist/space.js +107 -0
  188. package/dist/space.js.map +1 -0
  189. package/dist/surprise.d.ts +43 -0
  190. package/dist/surprise.d.ts.map +1 -0
  191. package/dist/surprise.js +123 -0
  192. package/dist/surprise.js.map +1 -0
  193. package/dist/territory.d.ts +43 -0
  194. package/dist/territory.d.ts.map +1 -0
  195. package/dist/territory.js +102 -0
  196. package/dist/territory.js.map +1 -0
  197. package/dist/trace.d.ts +58 -0
  198. package/dist/trace.d.ts.map +1 -0
  199. package/dist/trace.js +0 -0
  200. package/dist/trace.js.map +1 -0
  201. package/dist/transfer.d.ts +46 -0
  202. package/dist/transfer.d.ts.map +1 -0
  203. package/dist/transfer.js +112 -0
  204. package/dist/transfer.js.map +1 -0
  205. package/dist/twin.d.ts +41 -0
  206. package/dist/twin.d.ts.map +1 -0
  207. package/dist/twin.js +116 -0
  208. package/dist/twin.js.map +1 -0
  209. package/examples/train.mjs +8 -0
  210. package/examples/tune.mjs +11 -0
  211. package/package.json +56 -0
@@ -0,0 +1,117 @@
1
+ /** Best-so-far series in the goal direction (monotone non-decreasing once mapped to "higher = better"). */
2
+ function bestSeries(obs, goal) {
3
+ const dir = goal === "minimize" ? -1 : 1;
4
+ const out = [];
5
+ let b = -Infinity;
6
+ for (const o of obs) {
7
+ const v = dir * (o?.value ?? -Infinity);
8
+ if (Number.isFinite(v) && v > b)
9
+ b = v;
10
+ out.push(b);
11
+ }
12
+ return out;
13
+ }
14
+ /**
15
+ * Decide whether the next experiment is worth running.
16
+ * @param obs the (experiment, value) history so far, in run order
17
+ * @param goal "maximize" | "minimize"
18
+ * @param costPerExperiment optional real cost of ONE experiment (money/time) — only then is $ math shown
19
+ * @param window how many recent experiments define "recent" gain (default 5)
20
+ */
21
+ export function stoppingAdvice(obs, goal = "maximize", costPerExperiment = null, window = 5) {
22
+ const hist = (obs ?? []).filter((o) => o && o.experiment && Number.isFinite(o.value));
23
+ const n = hist.length;
24
+ const cost = (typeof costPerExperiment === "number" && costPerExperiment > 0) ? costPerExperiment : null;
25
+ const spent = cost != null ? +(n * cost).toFixed(6) : null;
26
+ // too little evidence → abstain (prove-or-unknown; never bluff a STOP that wastes a real discovery)
27
+ const warmup = Math.max(6, window + 1);
28
+ if (n < warmup) {
29
+ return { n, best: n ? hist.reduce((a, b) => (goal === "minimize" ? Math.min(a, b.value) : Math.max(a, b.value)), hist[0].value) : NaN,
30
+ recentGain: 0, expectedGainNext: NaN, noiseFloor: NaN, plateau: false, recommendation: "UNKNOWN",
31
+ confidence: Math.min(0.4, n / warmup * 0.4), rationale: `only ${n} experiment(s) — need ≈${warmup} before a stop/continue call is trustworthy`,
32
+ costPerExperiment: cost, spentSoFar: spent, reasonCode: "too-few" };
33
+ }
34
+ const series = bestSeries(hist, goal); // higher = better
35
+ const bestNorm = series[n - 1];
36
+ const bestRaw = (goal === "minimize" ? -1 : 1) * bestNorm;
37
+ const range = Math.max(1e-12, series[n - 1] - series[0]); // total climb this run (goal-normalised, >0)
38
+ // recent gain = best-so-far improvement across the last `window` experiments
39
+ const recentGain = Math.max(0, series[n - 1] - series[n - 1 - window]);
40
+ // noise floor: a "meaningful" change is a small fraction of the total climb. Below it, more tries are
41
+ // chasing noise. Scales with the run so it works on any units.
42
+ const noiseFloor = Math.max(1e-9, 0.02 * range);
43
+ // expected gain of ONE more experiment: improvements decay as you converge. Take the average per-step
44
+ // gain over the recent window and damp it by how stalled the very last steps are (geometric decay).
45
+ const perStepRecent = recentGain / window;
46
+ const lastHalf = Math.max(0, series[n - 1] - series[Math.max(0, n - 1 - Math.ceil(window / 2))]);
47
+ const stall = lastHalf <= noiseFloor ? 0.3 : 1.0; // if the freshest steps stalled, discount hard
48
+ const expectedGainNext = +(perStepRecent * stall).toFixed(9);
49
+ const plateau = recentGain <= noiseFloor;
50
+ // confidence rises with how many experiments back the verdict, capped — honest about small samples
51
+ const confidence = +Math.min(0.95, 0.5 + 0.45 * Math.min(1, (n - warmup) / 12)).toFixed(3);
52
+ let recommendation;
53
+ let reasonCode;
54
+ let rationale;
55
+ if (expectedGainNext > noiseFloor) {
56
+ recommendation = "CONTINUE";
57
+ reasonCode = "still-improving";
58
+ rationale = `still climbing — the last ${window} experiments gained ${recentGain.toExponential(2)}, so one more is expected to add ~${expectedGainNext.toExponential(2)} (above the ${noiseFloor.toExponential(2)} noise floor)`;
59
+ }
60
+ else {
61
+ recommendation = "STOP";
62
+ reasonCode = "plateaued";
63
+ rationale = `practical best reached — the last ${window} experiments gained only ${recentGain.toExponential(2)}, below the ${noiseFloor.toExponential(2)} noise floor; more tries are unlikely to beat ${bestRaw.toPrecision(4)} enough to justify their cost`;
64
+ }
65
+ return { n, best: bestRaw, recentGain, expectedGainNext, noiseFloor, plateau, recommendation, confidence, rationale, costPerExperiment: cost, spentSoFar: spent, reasonCode };
66
+ }
67
+ // ── gauntlet ──────────────────────────────────────────────────────────────────
68
+ export function frontierGauntlet() {
69
+ // a converging run: gains shrink toward a ceiling of 1.0
70
+ const conv = [];
71
+ for (let i = 0; i < 40; i++)
72
+ conv.push({ experiment: { x: i }, value: 1 - Math.exp(-i / 4) });
73
+ // EARLY in the run → CONTINUE (still climbing fast)
74
+ const early = stoppingAdvice(conv.slice(0, 8), "maximize");
75
+ const earlyOK = early.recommendation === "CONTINUE";
76
+ // LATE (converged) → STOP (plateaued)
77
+ const late = stoppingAdvice(conv, "maximize");
78
+ const lateOK = late.recommendation === "STOP" && late.plateau;
79
+ // too few → UNKNOWN, never a confident STOP
80
+ const tiny = stoppingAdvice(conv.slice(0, 3), "maximize");
81
+ const tinyOK = tiny.recommendation === "UNKNOWN" && tiny.reasonCode === "too-few";
82
+ // minimize works symmetrically (descending toward 0)
83
+ const dec = [];
84
+ for (let i = 0; i < 40; i++)
85
+ dec.push({ experiment: { x: i }, value: Math.exp(-i / 4) });
86
+ const minLate = stoppingAdvice(dec, "minimize");
87
+ const minOK = minLate.recommendation === "STOP" && Math.abs(minLate.best) < 0.05;
88
+ // economics: cost in → spentSoFar = n*cost, and never invented when cost absent
89
+ const econ = stoppingAdvice(conv, "maximize", 500);
90
+ const econOK = econ.spentSoFar === 40 * 500 && stoppingAdvice(conv, "maximize").spentSoFar === null;
91
+ // deterministic
92
+ const det = JSON.stringify(stoppingAdvice(conv, "maximize", 10)) === JSON.stringify(stoppingAdvice(conv, "maximize", 10));
93
+ // total: never throws on junk
94
+ const total = (() => { try {
95
+ stoppingAdvice(null);
96
+ stoppingAdvice([], "maximize");
97
+ stoppingAdvice([{ experiment: {}, value: NaN }], "maximize");
98
+ return true;
99
+ }
100
+ catch {
101
+ return false;
102
+ } })();
103
+ // expected gain is non-negative + finite when decided
104
+ const sane = early.expectedGainNext >= 0 && Number.isFinite(early.expectedGainNext);
105
+ const checks = [
106
+ { name: "CONTINUE-WHEN-CLIMBING", pass: earlyOK, detail: `early in a converging run it recommends CONTINUE (got ${early.recommendation})` },
107
+ { name: "STOP-WHEN-PLATEAUED", pass: lateOK, detail: `after convergence it recommends STOP + flags plateau (got ${late.recommendation})` },
108
+ { name: "ABSTAIN-WHEN-THIN", pass: tinyOK, detail: "with too few experiments it returns UNKNOWN, never a confident STOP" },
109
+ { name: "MINIMIZE", pass: minOK, detail: "works symmetrically for a minimize goal" },
110
+ { name: "ECONOMICS-HONEST", pass: econOK, detail: "spentSoFar = n×cost only when a real cost is given; never fabricated otherwise" },
111
+ { name: "DETERMINISTIC", pass: det, detail: "same history → identical advice (reproducible + signable)" },
112
+ { name: "NON-NEGATIVE-GAIN", pass: sane, detail: "expected gain of the next experiment is finite + ≥ 0" },
113
+ { name: "TOTAL", pass: total, detail: "null / empty / NaN history never throws" },
114
+ ];
115
+ return { score: checks.every((c) => c.pass) ? 100 : 0, checks };
116
+ }
117
+ //# sourceMappingURL=frontier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontier.js","sourceRoot":"","sources":["../src/frontier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * GUARDIAN — the always-on guardrail that turns Melete from "tune it once" into "watches your system 24/7".
3
+ * A one-and-done optimizer creates value in bursts; a Guardian creates RECURRING value: it runs as a
4
+ * background loop beside a live system, watches a metric you care about (tokens/sec, latency, yield, error
5
+ * rate), and when conditions drift or breach a safe threshold it raises the alarm and proposes a fresh,
6
+ * ROBUST configuration to recover — instead of waiting for a human to notice at 2 a.m.
7
+ *
8
+ * guardianTick() is the heartbeat: feed it the recent metric history + your baseline, and it returns a
9
+ * status (STABLE / DEGRADING / BREACH) and, when warranted, a re-tune recommendation. It is deterministic
10
+ * and dependency-free, so it can run as a daemon anywhere.
11
+ *
12
+ * Honest by construction (DIAKRISIS): the Guardian DETECTS and RECOMMENDS — it proposes a re-tune and hands
13
+ * back the new config; APPLYING that to a production system is the customer's own integration, behind their
14
+ * own safety gate (we never silently push changes to live infrastructure, and we don't claim to). Drift /
15
+ * breach detection is a transparent statistical rule over the metric you supply, with a dead-band so noise
16
+ * alone never trips a false alarm.
17
+ */
18
+ export type GuardianStatus = "stable" | "degrading" | "breach" | "unknown";
19
+ export interface GuardianVerdict {
20
+ status: GuardianStatus;
21
+ current: number;
22
+ baseline: number;
23
+ driftPct: number;
24
+ recommendRetune: boolean;
25
+ note: string;
26
+ }
27
+ /**
28
+ * One heartbeat of the guardrail. `history` = recent metric samples (oldest→newest). `lowerIsBetter` for
29
+ * latency/error-rate. `breachFrac`: a drop worse than this fraction of baseline = BREACH (default 0.15).
30
+ */
31
+ export declare function guardianTick(history: ReadonlyArray<number>, opts?: {
32
+ baseline?: number;
33
+ lowerIsBetter?: boolean;
34
+ breachFrac?: number;
35
+ degradeFrac?: number;
36
+ window?: number;
37
+ }): GuardianVerdict;
38
+ export declare function guardianGauntlet(): {
39
+ score: 0 | 100;
40
+ checks: Array<{
41
+ name: string;
42
+ pass: boolean;
43
+ detail: string;
44
+ }>;
45
+ };
46
+ //# sourceMappingURL=guardian.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardian.d.ts","sourceRoot":"","sources":["../src/guardian.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC3E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CAuBnM;AAKD,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAyCrH"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * One heartbeat of the guardrail. `history` = recent metric samples (oldest→newest). `lowerIsBetter` for
3
+ * latency/error-rate. `breachFrac`: a drop worse than this fraction of baseline = BREACH (default 0.15).
4
+ */
5
+ export function guardianTick(history, opts = {}) {
6
+ const h = (history ?? []).filter((x) => Number.isFinite(x));
7
+ const n = h.length;
8
+ if (n < 4)
9
+ return { status: "unknown", current: NaN, baseline: NaN, driftPct: NaN, recommendRetune: false, note: `need ≈4+ metric samples to judge (have ${n})` };
10
+ const lower = !!opts.lowerIsBetter;
11
+ const breachFrac = opts.breachFrac ?? 0.15, degradeFrac = opts.degradeFrac ?? 0.07;
12
+ const W = Math.max(2, Math.min(n, opts.window ?? Math.max(3, Math.round(n * 0.3))));
13
+ const recent = h.slice(n - W);
14
+ const current = recent.reduce((a, b) => a + b, 0) / recent.length; // smoothed recent level
15
+ // baseline = supplied, else the early portion of the history (what the system used to do)
16
+ const early = h.slice(0, Math.max(2, n - W));
17
+ const baseline = Number.isFinite(opts.baseline) ? opts.baseline : early.reduce((a, b) => a + b, 0) / early.length;
18
+ // "worse" direction: for lowerIsBetter, worse = bigger; else worse = smaller
19
+ const worseDelta = lower ? (current - baseline) : (baseline - current); // >0 means it got worse
20
+ const driftFrac = worseDelta / Math.max(1e-9, Math.abs(baseline));
21
+ const driftPct = +(((lower ? -1 : 1) * (current - baseline)) / Math.max(1e-9, Math.abs(baseline)) * 100).toFixed(1);
22
+ let status, recommendRetune, note;
23
+ if (driftFrac >= breachFrac) {
24
+ status = "breach";
25
+ recommendRetune = true;
26
+ note = `🚨 BREACH — the metric is ${(driftFrac * 100).toFixed(0)}% worse than baseline; trigger a re-tune and recover`;
27
+ }
28
+ else if (driftFrac >= degradeFrac) {
29
+ status = "degrading";
30
+ recommendRetune = true;
31
+ note = `⚠ degrading — ${(driftFrac * 100).toFixed(0)}% off baseline and slipping; re-tune recommended before it breaches`;
32
+ }
33
+ else {
34
+ status = "stable";
35
+ recommendRetune = false;
36
+ note = "✓ stable — within the safe band of baseline; hold";
37
+ }
38
+ return { status, current: +current.toFixed(4), baseline: +baseline.toFixed(4), driftPct, recommendRetune, note };
39
+ }
40
+ // ── gauntlet ──────────────────────────────────────────────────────────────────
41
+ import { lcg } from "./space.js";
42
+ export function guardianGauntlet() {
43
+ const r = lcg(5);
44
+ // STABLE: noisy around 100 (higher-is-better, e.g. tokens/sec)
45
+ const stable = [];
46
+ for (let i = 0; i < 30; i++)
47
+ stable.push(100 + (r() - 0.5) * 4);
48
+ const sV = guardianTick(stable, { lowerIsBetter: false });
49
+ const stableOk = sV.status === "stable" && !sV.recommendRetune;
50
+ // BREACH: was ~100, recent samples crashed to ~70 (−30%)
51
+ const breach = [];
52
+ for (let i = 0; i < 22; i++)
53
+ breach.push(100 + (r() - 0.5) * 3);
54
+ for (let i = 0; i < 8; i++)
55
+ breach.push(70 + (r() - 0.5) * 3);
56
+ const bV = guardianTick(breach, { lowerIsBetter: false });
57
+ const breachOk = bV.status === "breach" && bV.recommendRetune && bV.driftPct < -10;
58
+ // DEGRADING: a gentle ~9% slip recently
59
+ const degr = [];
60
+ for (let i = 0; i < 22; i++)
61
+ degr.push(100 + (r() - 0.5) * 2);
62
+ for (let i = 0; i < 8; i++)
63
+ degr.push(91 + (r() - 0.5) * 2);
64
+ const dV = guardianTick(degr, { lowerIsBetter: false });
65
+ const degradeOk = dV.status === "degrading" && dV.recommendRetune;
66
+ // LOWER-IS-BETTER (latency): recent latency spiked up = worse
67
+ const lat = [];
68
+ for (let i = 0; i < 22; i++)
69
+ lat.push(50 + (r() - 0.5) * 2);
70
+ for (let i = 0; i < 8; i++)
71
+ lat.push(80 + (r() - 0.5) * 2);
72
+ const lV = guardianTick(lat, { lowerIsBetter: true });
73
+ const latencyOk = lV.status === "breach" && lV.recommendRetune;
74
+ // NO-FALSE-ALARM: pure noise, no real drift → stable
75
+ const noisy = [];
76
+ for (let i = 0; i < 40; i++)
77
+ noisy.push(200 + (r() - 0.5) * 10);
78
+ const noFalse = guardianTick(noisy, { lowerIsBetter: false }).status === "stable";
79
+ const det = JSON.stringify(guardianTick(stable, { lowerIsBetter: false })) === JSON.stringify(guardianTick(stable, { lowerIsBetter: false }));
80
+ const abstains = guardianTick([1, 2], {}).status === "unknown";
81
+ const total = (() => { try {
82
+ guardianTick([]);
83
+ guardianTick(null);
84
+ return true;
85
+ }
86
+ catch {
87
+ return false;
88
+ } })();
89
+ const checks = [
90
+ { name: "STABLE-HOLDS", pass: stableOk, detail: `noisy-but-flat → "${sV.status}", no re-tune` },
91
+ { name: "BREACH-TRIGGERS-RETUNE", pass: breachOk, detail: `−30% crash → "${bV.status}" (${bV.driftPct}%), re-tune recommended` },
92
+ { name: "DEGRADING-EARLY-WARNING", pass: degradeOk, detail: `~9% slip → "${dV.status}" before it breaches` },
93
+ { name: "LOWER-IS-BETTER (latency)", pass: latencyOk, detail: `latency spike → "${lV.status}"` },
94
+ { name: "NO-FALSE-ALARM-ON-NOISE", pass: noFalse, detail: "pure noise, no drift → stable (dead-band)" },
95
+ { name: "DETERMINISTIC", pass: det, detail: "same history → same verdict" },
96
+ { name: "ABSTAINS-WHEN-THIN", pass: abstains, detail: "too few samples → unknown" },
97
+ { name: "TOTAL", pass: total, detail: "empty / null never throws" },
98
+ ];
99
+ return { score: checks.every((c) => c.pass) ? 100 : 0, checks };
100
+ }
101
+ //# sourceMappingURL=guardian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardian.js","sourceRoot":"","sources":["../src/guardian.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * MELETE — the Self-Driving Discovery Brain.
3
+ *
4
+ * Mneme remembers; Melete discovers. A closed-loop engine that proposes the next best experiment, reads
5
+ * the result from ANY pluggable oracle (simulation, a lab robot over HTTP, a factory process, a
6
+ * hyperparameter trainer, an expensive A/B test), learns, and converges — recording every step as a
7
+ * signed, hash-chained, offline-verifiable DISCOVERY TRACE. Two engines: the classical Bayesian-lite, and
8
+ * the original MELETE RESONANCE FIELD (a non-Bayesian wave-interference optimiser).
9
+ */
10
+ export * from "./space.js";
11
+ export * from "./oracle.js";
12
+ export * from "./engine.js";
13
+ export * from "./resonance.js";
14
+ export * from "./arms.js";
15
+ export * from "./portfolio.js";
16
+ export * from "./cortex.js";
17
+ export * from "./trace.js";
18
+ export * from "./bench.js";
19
+ export * from "./replicate.js";
20
+ export * from "./interactive.js";
21
+ export * from "./frontier.js";
22
+ export * from "./reliability.js";
23
+ export * from "./certify.js";
24
+ export * from "./poopt.js";
25
+ export * from "./federated.js";
26
+ export * from "./multiobjective.js";
27
+ export * from "./sensitivity.js";
28
+ export * from "./noise.js";
29
+ export * from "./interaction.js";
30
+ export * from "./territory.js";
31
+ export * from "./costaware.js";
32
+ export * from "./confidence.js";
33
+ export * from "./drift.js";
34
+ export * from "./achievability.js";
35
+ export * from "./inverse.js";
36
+ export * from "./efficiency.js";
37
+ export * from "./prescription.js";
38
+ export * from "./batch.js";
39
+ export * from "./twin.js";
40
+ export * from "./constrained.js";
41
+ export * from "./lineage.js";
42
+ export * from "./sloppiness.js";
43
+ export * from "./cliff.js";
44
+ export * from "./prime.js";
45
+ export * from "./surprise.js";
46
+ export * from "./rashomon.js";
47
+ export * from "./shape.js";
48
+ export * from "./transfer.js";
49
+ export * from "./aegis.js";
50
+ export * from "./noiserobust.js";
51
+ export * from "./mixedspace.js";
52
+ export * from "./provenance.js";
53
+ export * from "./sovereign.js";
54
+ export * from "./replay.js";
55
+ export * from "./metabrain.js";
56
+ export * from "./ipshield.js";
57
+ export * from "./guardian.js";
58
+ export * from "./journalist.js";
59
+ export * from "./server.js";
60
+ import { type DiscoverOpts, type DiscoveryResult } from "./engine.js";
61
+ import { type ResonanceOpts } from "./resonance.js";
62
+ import { type PortfolioOpts } from "./portfolio.js";
63
+ import { Tracer, type SignedTrace } from "./trace.js";
64
+ export type EngineName = "portfolio" | "resonance" | "bayes";
65
+ export interface SignedDiscovery {
66
+ result: DiscoveryResult;
67
+ trace: SignedTrace;
68
+ engine: EngineName;
69
+ }
70
+ /**
71
+ * Run a discovery AND emit a signed, offline-verifiable trace of how it was made. Every proposed
72
+ * experiment (hypothesis + rationale) and its observation is recorded into a tamper-evident chain.
73
+ */
74
+ export declare function discoverSigned(opts: (DiscoverOpts | ResonanceOpts | PortfolioOpts) & {
75
+ engine?: EngineName;
76
+ tracer?: Tracer;
77
+ }): Promise<SignedDiscovery>;
78
+ export interface MeleteGauntlet {
79
+ score: 0 | 100;
80
+ modules: Array<{
81
+ name: string;
82
+ score: number;
83
+ checks: Array<{
84
+ name: string;
85
+ pass: boolean;
86
+ }>;
87
+ }>;
88
+ }
89
+ export declare function meleteGauntlet(): Promise<MeleteGauntlet>;
90
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAuB,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;AAC7D,MAAM,WAAW,eAAe;IAAG,MAAM,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE;AAEpG;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,CAAC,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAa9J;AAsDD,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAAE;AACnJ,wBAAsB,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,CAuD9D"}
package/dist/index.js ADDED
@@ -0,0 +1,189 @@
1
+ /**
2
+ * MELETE — the Self-Driving Discovery Brain.
3
+ *
4
+ * Mneme remembers; Melete discovers. A closed-loop engine that proposes the next best experiment, reads
5
+ * the result from ANY pluggable oracle (simulation, a lab robot over HTTP, a factory process, a
6
+ * hyperparameter trainer, an expensive A/B test), learns, and converges — recording every step as a
7
+ * signed, hash-chained, offline-verifiable DISCOVERY TRACE. Two engines: the classical Bayesian-lite, and
8
+ * the original MELETE RESONANCE FIELD (a non-Bayesian wave-interference optimiser).
9
+ */
10
+ export * from "./space.js";
11
+ export * from "./oracle.js";
12
+ export * from "./engine.js";
13
+ export * from "./resonance.js";
14
+ export * from "./arms.js";
15
+ export * from "./portfolio.js";
16
+ export * from "./cortex.js";
17
+ export * from "./trace.js";
18
+ export * from "./bench.js";
19
+ export * from "./replicate.js";
20
+ export * from "./interactive.js";
21
+ export * from "./frontier.js";
22
+ export * from "./reliability.js";
23
+ export * from "./certify.js";
24
+ export * from "./poopt.js";
25
+ export * from "./federated.js";
26
+ export * from "./multiobjective.js";
27
+ export * from "./sensitivity.js";
28
+ export * from "./noise.js";
29
+ export * from "./interaction.js";
30
+ export * from "./territory.js";
31
+ export * from "./costaware.js";
32
+ export * from "./confidence.js";
33
+ export * from "./drift.js";
34
+ export * from "./achievability.js";
35
+ export * from "./inverse.js";
36
+ export * from "./efficiency.js";
37
+ export * from "./prescription.js";
38
+ export * from "./batch.js";
39
+ export * from "./twin.js";
40
+ export * from "./constrained.js";
41
+ export * from "./lineage.js";
42
+ export * from "./sloppiness.js";
43
+ export * from "./cliff.js";
44
+ export * from "./prime.js";
45
+ export * from "./surprise.js";
46
+ export * from "./rashomon.js";
47
+ export * from "./shape.js";
48
+ export * from "./transfer.js";
49
+ export * from "./aegis.js";
50
+ export * from "./noiserobust.js";
51
+ export * from "./mixedspace.js";
52
+ export * from "./provenance.js";
53
+ export * from "./sovereign.js";
54
+ export * from "./replay.js";
55
+ export * from "./metabrain.js";
56
+ export * from "./ipshield.js";
57
+ export * from "./guardian.js";
58
+ export * from "./journalist.js";
59
+ export * from "./server.js";
60
+ import { discover } from "./engine.js";
61
+ import { resonanceDiscover } from "./resonance.js";
62
+ import { portfolioDiscover } from "./portfolio.js";
63
+ import { Tracer } from "./trace.js";
64
+ /**
65
+ * Run a discovery AND emit a signed, offline-verifiable trace of how it was made. Every proposed
66
+ * experiment (hypothesis + rationale) and its observation is recorded into a tamper-evident chain.
67
+ */
68
+ export async function discoverSigned(opts) {
69
+ const engine = opts.engine ?? "portfolio"; // portfolio is the production default; bayes = proven single core; resonance = experimental
70
+ const tracer = opts.tracer ?? new Tracer();
71
+ tracer.record("result", { phase: "config", engine, goal: opts.goal ?? "maximize", budget: opts.budget, seed: opts.seed ?? 1, dims: opts.space?.dims?.map((d) => d.name) });
72
+ const onStep = async (s) => {
73
+ tracer.record("hypothesis", { n: s.n, experiment: s.experiment, rationale: s.rationale, acquisition: s.acquisition });
74
+ tracer.record("observation", { n: s.n, experiment: s.experiment, value: s.value });
75
+ };
76
+ const result = engine === "portfolio" ? await portfolioDiscover({ ...opts, onStep })
77
+ : engine === "resonance" ? await resonanceDiscover({ ...opts, onStep })
78
+ : await discover({ ...opts, onStep });
79
+ tracer.record("result", { phase: "final", best: result.best, evaluations: result.evaluations, converged: result.converged });
80
+ return { result, trace: tracer.export(), engine };
81
+ }
82
+ // ── aggregate gauntlet — every module must score 100 (Mneme-grade discipline) ──────────────────
83
+ import { spaceGauntlet } from "./space.js";
84
+ import { oracleGauntlet } from "./oracle.js";
85
+ import { engineGauntlet } from "./engine.js";
86
+ import { resonanceGauntlet } from "./resonance.js";
87
+ import { armsGauntlet } from "./arms.js";
88
+ import { portfolioGauntlet } from "./portfolio.js";
89
+ import { traceGauntlet } from "./trace.js";
90
+ import { benchGauntlet } from "./bench.js";
91
+ import { cortexGauntlet } from "./cortex.js";
92
+ import { replicateGauntlet } from "./replicate.js";
93
+ import { interactiveGauntlet } from "./interactive.js";
94
+ import { frontierGauntlet } from "./frontier.js";
95
+ import { reliabilityGauntlet } from "./reliability.js";
96
+ import { certifyGauntlet } from "./certify.js";
97
+ import { pooptGauntlet } from "./poopt.js";
98
+ import { federatedGauntlet } from "./federated.js";
99
+ import { multiObjectiveGauntlet } from "./multiobjective.js";
100
+ import { sensitivityGauntlet } from "./sensitivity.js";
101
+ import { noiseGauntlet } from "./noise.js";
102
+ import { interactionGauntlet } from "./interaction.js";
103
+ import { territoryGauntlet } from "./territory.js";
104
+ import { costAwareGauntlet } from "./costaware.js";
105
+ import { confidenceGauntlet } from "./confidence.js";
106
+ import { driftGauntlet } from "./drift.js";
107
+ import { achievabilityGauntlet } from "./achievability.js";
108
+ import { inverseGauntlet } from "./inverse.js";
109
+ import { efficiencyGauntlet } from "./efficiency.js";
110
+ import { prescriptionGauntlet } from "./prescription.js";
111
+ import { batchGauntlet } from "./batch.js";
112
+ import { twinGauntlet } from "./twin.js";
113
+ import { constrainedGauntlet } from "./constrained.js";
114
+ import { lineageGauntlet } from "./lineage.js";
115
+ import { sloppinessGauntlet } from "./sloppiness.js";
116
+ import { cliffGauntlet } from "./cliff.js";
117
+ import { primeGauntlet } from "./prime.js";
118
+ import { surpriseGauntlet } from "./surprise.js";
119
+ import { rashomonGauntlet } from "./rashomon.js";
120
+ import { shapeGauntlet } from "./shape.js";
121
+ import { transferGauntlet } from "./transfer.js";
122
+ import { aegisGauntlet } from "./aegis.js";
123
+ import { noiseRobustGauntlet } from "./noiserobust.js";
124
+ import { mixedGauntlet } from "./mixedspace.js";
125
+ import { provenanceGauntlet } from "./provenance.js";
126
+ import { sovereignGauntlet } from "./sovereign.js";
127
+ import { replayGauntlet } from "./replay.js";
128
+ import { metabrainGauntlet } from "./metabrain.js";
129
+ import { ipShieldGauntlet } from "./ipshield.js";
130
+ import { guardianGauntlet } from "./guardian.js";
131
+ import { journalistGauntlet } from "./journalist.js";
132
+ import { serverGauntlet } from "./server.js";
133
+ export async function meleteGauntlet() {
134
+ const mods = [
135
+ { name: "space", g: spaceGauntlet() },
136
+ { name: "oracle", g: oracleGauntlet() },
137
+ { name: "engine", g: await engineGauntlet() },
138
+ { name: "resonance", g: await resonanceGauntlet() },
139
+ { name: "arms", g: armsGauntlet() },
140
+ { name: "portfolio", g: await portfolioGauntlet() },
141
+ { name: "cortex", g: cortexGauntlet() },
142
+ { name: "replicate", g: await replicateGauntlet() },
143
+ { name: "interactive", g: interactiveGauntlet() },
144
+ { name: "frontier", g: frontierGauntlet() },
145
+ { name: "reliability", g: await reliabilityGauntlet() },
146
+ { name: "certify", g: await certifyGauntlet() },
147
+ { name: "poopt", g: pooptGauntlet() },
148
+ { name: "federated", g: federatedGauntlet() },
149
+ { name: "multiobjective", g: multiObjectiveGauntlet() },
150
+ { name: "sensitivity", g: sensitivityGauntlet() },
151
+ { name: "noise", g: noiseGauntlet() },
152
+ { name: "interaction", g: interactionGauntlet() },
153
+ { name: "territory", g: territoryGauntlet() },
154
+ { name: "costaware", g: costAwareGauntlet() },
155
+ { name: "confidence", g: confidenceGauntlet() },
156
+ { name: "drift", g: driftGauntlet() },
157
+ { name: "achievability", g: achievabilityGauntlet() },
158
+ { name: "inverse", g: inverseGauntlet() },
159
+ { name: "efficiency", g: efficiencyGauntlet() },
160
+ { name: "prescription", g: prescriptionGauntlet() },
161
+ { name: "batch", g: batchGauntlet() },
162
+ { name: "twin", g: twinGauntlet() },
163
+ { name: "constrained", g: constrainedGauntlet() },
164
+ { name: "lineage", g: lineageGauntlet() },
165
+ { name: "sloppiness", g: sloppinessGauntlet() },
166
+ { name: "cliff", g: cliffGauntlet() },
167
+ { name: "prime", g: primeGauntlet() },
168
+ { name: "surprise", g: surpriseGauntlet() },
169
+ { name: "rashomon", g: rashomonGauntlet() },
170
+ { name: "shape", g: shapeGauntlet() },
171
+ { name: "transfer", g: transferGauntlet() },
172
+ { name: "aegis", g: aegisGauntlet() },
173
+ { name: "noiserobust", g: noiseRobustGauntlet() },
174
+ { name: "mixedspace", g: mixedGauntlet() },
175
+ { name: "provenance", g: provenanceGauntlet() },
176
+ { name: "sovereign", g: sovereignGauntlet() },
177
+ { name: "replay", g: replayGauntlet() },
178
+ { name: "metabrain", g: metabrainGauntlet() },
179
+ { name: "ipshield", g: ipShieldGauntlet() },
180
+ { name: "guardian", g: guardianGauntlet() },
181
+ { name: "journalist", g: journalistGauntlet() },
182
+ { name: "trace", g: traceGauntlet() },
183
+ { name: "bench", g: await benchGauntlet() },
184
+ { name: "server", g: serverGauntlet() },
185
+ ];
186
+ const modules = mods.map((m) => ({ name: m.name, score: m.g.score, checks: m.g.checks }));
187
+ return { score: modules.every((m) => m.score === 100) ? 100 : 0, modules };
188
+ }
189
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}