@metaharness/flywheel 0.1.9 → 0.1.11
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/dist/cjs/run.js +11 -3
- package/dist/cjs/run.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/replay.d.ts +11 -0
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +142 -13
- package/dist/replay.js.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +31 -7
- package/dist/run.js.map +1 -1
- package/dist/types.d.ts +19 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/run.js
CHANGED
|
@@ -93,10 +93,16 @@ async function runFlywheelGenerations(cfg) {
|
|
|
93
93
|
const cands = [];
|
|
94
94
|
for (const target of targets) {
|
|
95
95
|
const proposed = await cfg.proposer(base, target);
|
|
96
|
-
|
|
96
|
+
// ADR-246 §2.1 (additive): normalize the proposer result — legacy bare string, or the object form
|
|
97
|
+
// carrying an evidence-citing summary + rollback inverse for the minted lineage commit.
|
|
98
|
+
const norm = typeof proposed === 'string' ? { value: proposed } : proposed;
|
|
99
|
+
const candPolicy = { ...policy, [target]: norm.value };
|
|
97
100
|
const candScore = await evaluate(candPolicy, cfg.holdout);
|
|
98
101
|
const decision = rule({ baseline: score, candidate: candScore });
|
|
99
|
-
cands.push({
|
|
102
|
+
cands.push({
|
|
103
|
+
target, policy: candPolicy, score: candScore, reasons: decision.reasons, promote: decision.promote,
|
|
104
|
+
summary: norm.summary, inverse: norm.inverse,
|
|
105
|
+
});
|
|
100
106
|
}
|
|
101
107
|
// winner = highest primary among the promotable; then verify it survives the FROZEN anchor.
|
|
102
108
|
const promotable = cands.filter((c) => c.promote).sort((a, b) => b.score.primary - a.score.primary);
|
|
@@ -111,7 +117,9 @@ async function runFlywheelGenerations(cfg) {
|
|
|
111
117
|
const primaryDelta = c.score.primary - score.primary;
|
|
112
118
|
const commit = {
|
|
113
119
|
id, generation: gen, parents: [parentId],
|
|
114
|
-
|
|
120
|
+
// ADR-246 §2.1: an object-form proposer's summary (and rollback inverse) reaches the lineage
|
|
121
|
+
// commit; a legacy string-form proposer keeps the exact `adapt <target>` summary, unchanged.
|
|
122
|
+
mutation: { target: c.target, summary: c.summary ?? `adapt ${c.target}`, ...(c.inverse ? { inverse: c.inverse } : {}) },
|
|
115
123
|
primaryDelta,
|
|
116
124
|
anchorScore: isWinner ? winnerAnchor : c === winner ? winnerAnchor : null,
|
|
117
125
|
verdict: isWinner ? 'PROMOTED' : 'REJECTED',
|
package/dist/cjs/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":";;AAkEA,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAgFD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAa1F"}
|
package/dist/cli.js
CHANGED
|
@@ -41,6 +41,8 @@ async function replay(args) {
|
|
|
41
41
|
` reconstructs to gen-0 root: ${v.checks.reachesRoot ? 'PASS' : 'FAIL'}`,
|
|
42
42
|
` each generation re-bases on the winner: ${v.checks.contiguousParents ? 'PASS' : 'FAIL'}`,
|
|
43
43
|
` every chain node is a promotion: ${v.checks.allPromoted ? 'PASS' : 'FAIL'}`,
|
|
44
|
+
` full diagnostic ledger receipts verify: ${v.checks.allCommitsReceipts ? 'PASS' : 'FAIL'}`,
|
|
45
|
+
` sealed score/id fields match live commit: ${v.checks.sealedFieldsAuthentic ? 'PASS' : 'FAIL'}`,
|
|
44
46
|
` gate UNCHANGED (fingerprint): ${flag(args, '--gate-fingerprint') ? (v.checks.gateUnchanged ? 'PASS' : 'FAIL') : 'skipped (no --gate-fingerprint)'}`,
|
|
45
47
|
` verified improvements: ${bundle.verified_improvements} | anchor-surviving: ${bundle.anchor_surviving_improvements} | milestone: ${bundle.milestone_reached}`,
|
|
46
48
|
'',
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ export { verifyReplayBundle } from './replay.js';
|
|
|
9
9
|
export type { ReplayVerdict } from './replay.js';
|
|
10
10
|
export { analyzeBundle, formatAnalysis } from './analyze.js';
|
|
11
11
|
export type { BundleAnalysis, TargetStat } from './analyze.js';
|
|
12
|
-
export type { Policy, PolicyGenome, CandidateMutation, Score, PromotionEvidence, PromotionDecision, PromotionRule, Suite, HoldoutSuite, AnchorSuite, Proposer, Evaluator, PromotionReceipt, Signer, LineageCommit, LineageStore, LiftPoint, LiftCurve, ReplayBundle, GenerationCheckpoint, ResumeState, } from './types.js';
|
|
12
|
+
export type { Policy, PolicyGenome, CandidateMutation, Score, PromotionEvidence, PromotionDecision, PromotionRule, Suite, HoldoutSuite, AnchorSuite, Proposer, ProposerResult, Evaluator, PromotionReceipt, Signer, LineageCommit, LineageStore, LiftPoint, LiftCurve, ReplayBundle, GenerationCheckpoint, ResumeState, } from './types.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/D,YAAY,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,KAAK,EACL,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/D,YAAY,EACV,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,KAAK,EACL,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/replay.d.ts
CHANGED
|
@@ -8,6 +8,17 @@ export interface ReplayVerdict {
|
|
|
8
8
|
allPromoted: boolean;
|
|
9
9
|
gateUnchanged: boolean;
|
|
10
10
|
gateReExecutes: boolean;
|
|
11
|
+
/** Every entry in `all_commits` — the full diagnostic ledger, PROMOTED *and* REJECTED — carries a
|
|
12
|
+
* receipt that both verifies AND attests to that commit's own id + verdict (see the file header's
|
|
13
|
+
* point (6)). `run.ts` signs every commit it mints, promoted or not, so this is always satisfiable
|
|
14
|
+
* by an honest producer; it exists to catch a receipt-splicing / verdict-flip forgery that
|
|
15
|
+
* `receipts` alone (chain-only) would miss. */
|
|
16
|
+
allCommitsReceipts: boolean;
|
|
17
|
+
/** See the file header's point (7): whichever sealed fields a receipt's signed payload carries must
|
|
18
|
+
* match the commit's own live fields, including `id` — catches post-signing tampering of unsigned
|
|
19
|
+
* fields AND receipt-cloning onto a fabricated commit, neither of which a bare signature check nor
|
|
20
|
+
* (6) alone can distinguish from an honest bundle. */
|
|
21
|
+
sealedFieldsAuthentic: boolean;
|
|
11
22
|
};
|
|
12
23
|
failures: string[];
|
|
13
24
|
chainSummary: string;
|
package/dist/replay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAwB,MAAM,YAAY,CAAC;AA6BpF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB;;;;wDAIgD;QAChD,kBAAkB,EAAE,OAAO,CAAC;QAC5B;;;+DAGuD;QACvD,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE;IAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,aAAa,CAAA;CAAO,GAC3E,aAAa,CAwIf"}
|
package/dist/replay.js
CHANGED
|
@@ -5,17 +5,75 @@
|
|
|
5
5
|
// (2) the promoted lineage reconstructs current → gen-0 immutable root, contiguously;
|
|
6
6
|
// (3) every commit on the promoted chain is actually PROMOTED (no rejected node smuggled in);
|
|
7
7
|
// (4) the gate fingerprint matches the pinned value ⇒ the promotion rule was UNCHANGED;
|
|
8
|
-
// (5) [ADR-235] if the reviewer supplies the (fingerprint-matched) rule, every
|
|
9
|
-
// RE-GATED on its sealed baseline+candidate scores and must STILL
|
|
10
|
-
// not the logged verdict. Catches a signed-but-forged promotion
|
|
11
|
-
|
|
8
|
+
// (5) [ADR-235, extended ADR-254] if the reviewer supplies the (fingerprint-matched) rule, every
|
|
9
|
+
// PROMOTED commit is RE-GATED on its sealed baseline+candidate+anchor scores and must STILL
|
|
10
|
+
// promote — trust the gate re-run, not the logged verdict. Catches a signed-but-forged promotion
|
|
11
|
+
// the fingerprint check cannot. A PROMOTED commit with no (complete, well-typed) sealed scores to
|
|
12
|
+
// re-gate FAILS this check, not passes by omission — including a root-pinned anchor bar with no
|
|
13
|
+
// matching anchorScore on the commit.
|
|
14
|
+
// (6) every entry in `all_commits` — the full diagnostic ledger of promoted AND rejected candidates —
|
|
15
|
+
// also carries a receipt that verifies AND actually attests to that commit's own id + verdict, not
|
|
16
|
+
// just the promoted `chain`. A signature is only as trustworthy as the fields it covers: `run.ts`
|
|
17
|
+
// signs {kind, id, target, verdict, primaryDelta, ...sealed scores} (root: {kind, root}), so
|
|
18
|
+
// `verifyReceipt` alone proves the PAYLOAD is internally consistent, not that it's attached to the
|
|
19
|
+
// RIGHT commit — without cross-checking id/verdict, a REJECTED commit's outer `verdict` field could
|
|
20
|
+
// be flipped to `PROMOTED` (or a receipt spliced onto a different id) and still "verify."
|
|
21
|
+
// (7) whichever of id/target/verdict/primaryDelta/baselineScore/candidateScore/anchorScore/
|
|
22
|
+
// failureReasons/parents/generation a commit's SIGNED receipt payload carries, the signed copy
|
|
23
|
+
// must match the commit's live (unsigned) fields. Binding 'id' matters as much as the score
|
|
24
|
+
// fields: without it, a bundle editor with no signing key can clone ONE genuine receipt across many
|
|
25
|
+
// fabricated commit ids/parents (copying the real receipt's baseline/candidate/anchor scores onto
|
|
26
|
+
// each fabricated commit too) to manufacture a fake multi-generation promoted lineage from a single
|
|
27
|
+
// real promotion — (6)'s id/verdict cross-check alone would not catch this, since the cloned
|
|
28
|
+
// receipt's sealed values still match the copied live fields. Binding 'parents'/'generation' closes
|
|
29
|
+
// a DIFFERENT bypass of point (2): an editor can take TWO genuinely-signed, self-consistent commits
|
|
30
|
+
// (each still correctly bound to its own id/scores) and splice them into a fabricated chain by
|
|
31
|
+
// rewriting only their unsigned `parents`/`generation` — every per-commit check still passes, but
|
|
32
|
+
// the reconstructed chain SHAPE was never actually signed by the producer. Checking whichever keys
|
|
33
|
+
// a payload happens to carry keeps this additive: a receipt whose payload predates this check
|
|
34
|
+
// (carries none of these keys) is left unchecked here — it does not retroactively secure old
|
|
35
|
+
// bundles, only binds every bundle produced after this check shipped.
|
|
36
|
+
import { verifyReceipt, canon } from './receipts.js';
|
|
12
37
|
import { gateFingerprint } from './gate.js';
|
|
38
|
+
// A bundle is untrusted external JSON — `baselineScore != null` only proves the field exists, not that
|
|
39
|
+
// its required sub-fields are present and well-typed. `meetsPromotionRule` compares them with `<`/`>` on
|
|
40
|
+
// possibly-`undefined` values, and JS comparison semantics make several of those clauses fail OPEN (e.g.
|
|
41
|
+
// `undefined > n` is false, so a missing `costPerWin` or `regressed` never trips its rejection reason).
|
|
42
|
+
// A Score with a missing/mistyped field is exactly as unusable as a missing Score for gate re-execution.
|
|
43
|
+
function isCompleteScore(s) {
|
|
44
|
+
return (!!s &&
|
|
45
|
+
typeof s.primary === 'number' &&
|
|
46
|
+
typeof s.noopRate === 'number' &&
|
|
47
|
+
typeof s.costPerWin === 'number' &&
|
|
48
|
+
typeof s.regressed === 'boolean');
|
|
49
|
+
}
|
|
50
|
+
/** A verified signature proves the PAYLOAD is internally consistent; it does not by itself prove the
|
|
51
|
+
* payload is attached to the RIGHT commit. `run.ts` signs `{kind:'candidate', id, target, verdict,
|
|
52
|
+
* primaryDelta, ...}` for every candidate (root: `{kind:'root', root}`) — cross-check `id`/`verdict`
|
|
53
|
+
* against the embedded payload so a receipt cannot be spliced onto a different id, and a REJECTED
|
|
54
|
+
* commit's outer `verdict` field cannot be flipped to `PROMOTED` (or vice versa) without invalidating
|
|
55
|
+
* the check. */
|
|
56
|
+
function receiptMatchesCommit(c) {
|
|
57
|
+
const p = c.receipt.payload;
|
|
58
|
+
if (c.verdict === 'ROOT')
|
|
59
|
+
return p.kind === 'root' && p.root === c.id;
|
|
60
|
+
return p.kind === 'candidate' && p.id === c.id && p.verdict === c.verdict;
|
|
61
|
+
}
|
|
13
62
|
export function verifyReplayBundle(bundle, opts = {}) {
|
|
14
63
|
const failures = [];
|
|
15
64
|
const chain = bundle.chain;
|
|
16
|
-
const receipts = chain.length > 0 && chain.every((c) => verifyReceipt(c.receipt));
|
|
65
|
+
const receipts = chain.length > 0 && chain.every((c) => verifyReceipt(c.receipt) && receiptMatchesCommit(c));
|
|
17
66
|
if (!receipts)
|
|
18
67
|
failures.push('receipts');
|
|
68
|
+
// `chain` proves the WINNING lineage; `all_commits` is the "full diagnostic ledger" (every candidate
|
|
69
|
+
// across every generation, promoted + rejected — see ReplayBundle) that analyzeBundle's
|
|
70
|
+
// rejection-reason / cost-per-win / mutation-effectiveness reporting reads. The producer already signs
|
|
71
|
+
// every commit it mints (run.ts: `receipt: cfg.signer.sign(...)` on both PROMOTED and REJECTED verdicts)
|
|
72
|
+
// — verifying only `chain`'s receipts left that ledger's signatures (and the id/verdict they attest to)
|
|
73
|
+
// unchecked, so a receipt-splicing or verdict-flip forgery on a REJECTED entry would not fail replay.
|
|
74
|
+
const allCommitsReceipts = bundle.all_commits.every((c) => verifyReceipt(c.receipt) && receiptMatchesCommit(c));
|
|
75
|
+
if (!allCommitsReceipts)
|
|
76
|
+
failures.push('allCommitsReceipts');
|
|
19
77
|
const root = chain[chain.length - 1];
|
|
20
78
|
const reachesRoot = !!root && root.parents.length === 0 && root.id === bundle.root_id;
|
|
21
79
|
if (!reachesRoot)
|
|
@@ -39,11 +97,20 @@ export function verifyReplayBundle(bundle, opts = {}) {
|
|
|
39
97
|
const gateUnchanged = opts.pinnedGateFingerprint ? bundle.gate_fingerprint === opts.pinnedGateFingerprint : true;
|
|
40
98
|
if (!gateUnchanged)
|
|
41
99
|
failures.push('gateUnchanged');
|
|
100
|
+
// The run's frozen anti-Goodhart bar is the ROOT commit's sealed `anchorScore` (set once at gen-0,
|
|
101
|
+
// run.ts — the same `rootAnchor` every live winner was compared against). Reading it off `root` here
|
|
102
|
+
// keeps the anchor re-check at the SAME sealed-field trust tier as the baseline/candidate re-execution
|
|
103
|
+
// below — not a new/stronger guarantee. (Hardening sealed fields against bundle-editing, as opposed to
|
|
104
|
+
// signature, forgery is (7) above — the anchor axis is covered there too via `sealedFieldsAuthentic`.)
|
|
105
|
+
const rootAnchorSealed = root && root.anchorScore != null ? root.anchorScore : null;
|
|
42
106
|
// (5) RE-EXECUTE the gate. Only when the reviewer supplies the rule (otherwise unchecked → true, so
|
|
43
107
|
// existing fingerprint-only callers are unaffected). The supplied rule must be the SAME one (its
|
|
44
108
|
// fingerprint must match the pinned/bundled value) or re-execution is meaningless. Then every PROMOTED
|
|
45
|
-
// commit that carries its sealed scores must RE-PASS the rule — a logged promotion the frozen gate
|
|
46
|
-
// NOT grant is a forgery.
|
|
109
|
+
// commit that carries its sealed scores must RE-PASS the rule — a logged promotion the frozen gate
|
|
110
|
+
// would NOT grant is a forgery. This includes the anti-Goodhart anchor clause: previously
|
|
111
|
+
// `evidence.anchor` was NEVER supplied here, so `anchor_regressed` was structurally unreachable during
|
|
112
|
+
// replay even though `run.ts` enforces it live — a promotion that regressed the frozen anchor replayed
|
|
113
|
+
// clean.
|
|
47
114
|
let gateReExecutes = true;
|
|
48
115
|
if (opts.promotionRule) {
|
|
49
116
|
const suppliedFp = gateFingerprint(opts.promotionRule);
|
|
@@ -57,20 +124,82 @@ export function verifyReplayBundle(bundle, opts = {}) {
|
|
|
57
124
|
if (seen.has(c.id))
|
|
58
125
|
continue;
|
|
59
126
|
seen.add(c.id);
|
|
60
|
-
if (c.verdict
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
127
|
+
if (c.verdict !== 'PROMOTED')
|
|
128
|
+
continue;
|
|
129
|
+
// Fail-closed: a PROMOTED commit missing (or carrying an incomplete/mistyped) sealed score this
|
|
130
|
+
// verification mode claims to re-execute is not "unchecked" — it cannot prove the gate re-run, so
|
|
131
|
+
// replay must not pass it. Previously a bare truthy check silently SKIPPED an unauditable
|
|
132
|
+
// promotion (neither pass nor fail); per ADR-235 ("trust the gate re-run, not the logged
|
|
133
|
+
// verdict"), an unauditable promotion must FAIL.
|
|
134
|
+
if (!isCompleteScore(c.baselineScore) || !isCompleteScore(c.candidateScore)) {
|
|
135
|
+
gateReExecutes = false;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
// Same fail-closed rule for the anchor axis: once the root pins an anchor bar, a promoted commit
|
|
139
|
+
// missing its own anchorScore must not silently drop out of the anti-Goodhart check (that was the
|
|
140
|
+
// original gap — anchor: undefined made the clause unreachable instead of failing).
|
|
141
|
+
if (rootAnchorSealed != null && c.anchorScore == null) {
|
|
142
|
+
gateReExecutes = false;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
const anchor = rootAnchorSealed != null ? { baseline: rootAnchorSealed, candidate: c.anchorScore } : undefined;
|
|
146
|
+
if (!opts.promotionRule({ baseline: c.baselineScore, candidate: c.candidateScore, anchor }).promote) {
|
|
147
|
+
gateReExecutes = false;
|
|
148
|
+
break;
|
|
65
149
|
}
|
|
66
150
|
}
|
|
67
151
|
}
|
|
68
152
|
}
|
|
69
153
|
if (!gateReExecutes)
|
|
70
154
|
failures.push('gateReExecutes');
|
|
155
|
+
// (7) RECEIPT-BOUND-TO-COMMIT (see header). 'id' binds the receipt to a specific commit — without it,
|
|
156
|
+
// whichever score/reason keys a payload carries can canon-match by cloning the whole receipt (sealed
|
|
157
|
+
// fields included) onto a different, fabricated commit that copies the same values live. 'parents' and
|
|
158
|
+
// 'generation' matter for a DIFFERENT reason: without them, an editor with no signing key can take TWO
|
|
159
|
+
// genuinely-signed, internally self-consistent commits (each still correctly bound to its own id/scores)
|
|
160
|
+
// and splice them into a fabricated multi-generation chain by rewriting only their unsigned
|
|
161
|
+
// `parents`/`generation` fields — every per-commit check above still passes, but `contiguousParents` and
|
|
162
|
+
// `reachesRoot` are then reconstructing a chain shape the producer never actually signed. Binding
|
|
163
|
+
// `parents`/`generation` closes that: a rewritten `parents` no longer canon-matches the signed value.
|
|
164
|
+
// Only receipts whose payload opts in (carries at least one of these keys) are checked — additive over
|
|
165
|
+
// every pre-existing bundle.
|
|
166
|
+
const BOUND_KEYS = {
|
|
167
|
+
id: (c) => c.id,
|
|
168
|
+
target: (c) => c.mutation?.target ?? null,
|
|
169
|
+
verdict: (c) => c.verdict,
|
|
170
|
+
primaryDelta: (c) => c.primaryDelta,
|
|
171
|
+
baselineScore: (c) => c.baselineScore ?? null,
|
|
172
|
+
candidateScore: (c) => c.candidateScore ?? null,
|
|
173
|
+
anchorScore: (c) => c.anchorScore,
|
|
174
|
+
failureReasons: (c) => c.failureReasons,
|
|
175
|
+
parents: (c) => c.parents,
|
|
176
|
+
generation: (c) => c.generation,
|
|
177
|
+
};
|
|
178
|
+
let sealedFieldsAuthentic = true;
|
|
179
|
+
{
|
|
180
|
+
const seen = new Set();
|
|
181
|
+
for (const c of [...chain, ...bundle.all_commits]) {
|
|
182
|
+
if (seen.has(c.id) || c.verdict === 'ROOT')
|
|
183
|
+
continue;
|
|
184
|
+
seen.add(c.id);
|
|
185
|
+
const payload = c.receipt.payload;
|
|
186
|
+
for (const [k, live] of Object.entries(BOUND_KEYS)) {
|
|
187
|
+
if (!(k in payload))
|
|
188
|
+
continue;
|
|
189
|
+
if (canon(payload[k]) !== canon(live(c))) {
|
|
190
|
+
sealedFieldsAuthentic = false;
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (!sealedFieldsAuthentic)
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (!sealedFieldsAuthentic)
|
|
199
|
+
failures.push('sealedFieldsAuthentic');
|
|
71
200
|
return {
|
|
72
201
|
pass: failures.length === 0,
|
|
73
|
-
checks: { receipts, reachesRoot, contiguousParents, allPromoted, gateUnchanged, gateReExecutes },
|
|
202
|
+
checks: { receipts, reachesRoot, contiguousParents, allPromoted, gateUnchanged, gateReExecutes, allCommitsReceipts, sealedFieldsAuthentic },
|
|
74
203
|
failures,
|
|
75
204
|
chainSummary: chain.map((c) => `gen${c.generation}${c.mutation ? `(${c.mutation.target})` : '(root)'}`).join(' → '),
|
|
76
205
|
};
|
package/dist/replay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,0GAA0G;AAC1G,YAAY;AACZ,yFAAyF;AACzF,wFAAwF;AACxF,gGAAgG;AAChG,0FAA0F;AAC1F,
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,MAAM,EAAgB,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAChE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAC/E,oBAAoB,EAAE,WAAW,EAClC,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,uGAAuG;IACvG,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,qGAAqG;IACrG,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;IAChD,sFAAsF;IACtF,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC;;;;;wDAKoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;gGAG4F;IAC5F,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE;;;8FAG0F;IAC1F,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,MAAM,EAAgB,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAChE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAC/E,oBAAoB,EAAE,WAAW,EAClC,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,uGAAuG;IACvG,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,qGAAqG;IACrG,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;IAChD,sFAAsF;IACtF,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC;;;;;wDAKoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;gGAG4F;IAC5F,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE;;;8FAG0F;IAC1F,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAiLzF"}
|
package/dist/run.js
CHANGED
|
@@ -90,10 +90,16 @@ export async function runFlywheelGenerations(cfg) {
|
|
|
90
90
|
const cands = [];
|
|
91
91
|
for (const target of targets) {
|
|
92
92
|
const proposed = await cfg.proposer(base, target);
|
|
93
|
-
|
|
93
|
+
// ADR-246 §2.1 (additive): normalize the proposer result — legacy bare string, or the object form
|
|
94
|
+
// carrying an evidence-citing summary + rollback inverse for the minted lineage commit.
|
|
95
|
+
const norm = typeof proposed === 'string' ? { value: proposed } : proposed;
|
|
96
|
+
const candPolicy = { ...policy, [target]: norm.value };
|
|
94
97
|
const candScore = await evaluate(candPolicy, cfg.holdout);
|
|
95
98
|
const decision = rule({ baseline: score, candidate: candScore });
|
|
96
|
-
cands.push({
|
|
99
|
+
cands.push({
|
|
100
|
+
target, policy: candPolicy, score: candScore, reasons: decision.reasons, promote: decision.promote,
|
|
101
|
+
summary: norm.summary, inverse: norm.inverse,
|
|
102
|
+
});
|
|
97
103
|
}
|
|
98
104
|
// winner = highest primary among the promotable; then verify it survives the FROZEN anchor.
|
|
99
105
|
const promotable = cands.filter((c) => c.promote).sort((a, b) => b.score.primary - a.score.primary);
|
|
@@ -106,14 +112,32 @@ export async function runFlywheelGenerations(cfg) {
|
|
|
106
112
|
const isWinner = c === promotedWinner;
|
|
107
113
|
const id = `${parentId}__${c.target}_gen${gen}`;
|
|
108
114
|
const primaryDelta = c.score.primary - score.primary;
|
|
115
|
+
const anchorScore = isWinner ? winnerAnchor : c === winner ? winnerAnchor : null;
|
|
116
|
+
const verdict = isWinner ? 'PROMOTED' : 'REJECTED';
|
|
117
|
+
const failureReasons = isWinner ? [] : c === winner && !anchorSurvives ? ['anchor_regressed'] : c.reasons;
|
|
109
118
|
const commit = {
|
|
110
119
|
id, generation: gen, parents: [parentId],
|
|
111
|
-
|
|
120
|
+
// ADR-246 §2.1: an object-form proposer's summary (and rollback inverse) reaches the lineage
|
|
121
|
+
// commit; a legacy string-form proposer keeps the exact `adapt <target>` summary, unchanged.
|
|
122
|
+
mutation: { target: c.target, summary: c.summary ?? `adapt ${c.target}`, ...(c.inverse ? { inverse: c.inverse } : {}) },
|
|
112
123
|
primaryDelta,
|
|
113
|
-
anchorScore
|
|
114
|
-
verdict
|
|
115
|
-
failureReasons
|
|
116
|
-
|
|
124
|
+
anchorScore,
|
|
125
|
+
verdict,
|
|
126
|
+
failureReasons,
|
|
127
|
+
// Sealed-field binding (ADR-254 addendum): baseline/candidate/anchor scores + failureReasons
|
|
128
|
+
// enter the SIGNED payload too, not just the commit's unsigned fields below — otherwise a bundle
|
|
129
|
+
// editor with no signing key can splice favorable scores onto a PROMOTED commit and
|
|
130
|
+
// gateReExecutes (replay.ts, ADR-235) would re-run the frozen rule on forged input and still
|
|
131
|
+
// pass. `parents`/`generation` are sealed too: without them, an editor with no signing key could
|
|
132
|
+
// reattach two genuinely-signed, self-consistent commits into a fabricated multi-generation chain
|
|
133
|
+
// by rewriting only their unsigned `parents`/`generation` — every per-commit check (id binding,
|
|
134
|
+
// score re-gate) still passes because each commit is still bound to itself, but the CHAIN
|
|
135
|
+
// structure itself is undefended. See replay.ts's `sealedFieldsAuthentic` check.
|
|
136
|
+
receipt: cfg.signer.sign({
|
|
137
|
+
kind: 'candidate', id, target: c.target, verdict, primaryDelta,
|
|
138
|
+
baselineScore: score, candidateScore: c.score, anchorScore, failureReasons,
|
|
139
|
+
parents: [parentId], generation: gen,
|
|
140
|
+
}),
|
|
117
141
|
createdAt: now(gen),
|
|
118
142
|
baselineScore: score, // ADR-235 — sealed so the gate can be re-run in replay
|
|
119
143
|
candidateScore: c.score,
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -13,6 +13,14 @@ export interface PolicyGenome {
|
|
|
13
13
|
export interface CandidateMutation {
|
|
14
14
|
target: string;
|
|
15
15
|
summary: string;
|
|
16
|
+
/** ADR-246 §2.1 rollback-by-construction: the inverse of the applied edit — the parent bytes for the
|
|
17
|
+
* touched surface (plus its path and a content hash), so any refine step reverts byte-identically.
|
|
18
|
+
* OPTIONAL and additive (precedent: ADR-235 additive fields) — legacy commits simply omit it. */
|
|
19
|
+
inverse?: {
|
|
20
|
+
path: string;
|
|
21
|
+
parentBytes: string;
|
|
22
|
+
hash: string;
|
|
23
|
+
};
|
|
16
24
|
}
|
|
17
25
|
/** The abstract quality of a policy on a suite. All host/benchmark meaning is projected onto these four
|
|
18
26
|
* axes by the Evaluator. Higher `primary` is better; lower `noopRate`/`costPerWin` is better;
|
|
@@ -52,8 +60,17 @@ export interface Suite {
|
|
|
52
60
|
}
|
|
53
61
|
export type HoldoutSuite = Suite;
|
|
54
62
|
export type AnchorSuite = Suite;
|
|
55
|
-
/**
|
|
56
|
-
|
|
63
|
+
/** A proposer's return: either the bare improved lever value (the legacy shape, unchanged), or — ADR-246
|
|
64
|
+
* §2.1, additive — an object carrying the value plus an optional evidence-citing `summary` and an
|
|
65
|
+
* optional rollback `inverse` to be recorded on the minted lineage commit. */
|
|
66
|
+
export type ProposerResult = string | {
|
|
67
|
+
value: string;
|
|
68
|
+
summary?: string;
|
|
69
|
+
inverse?: CandidateMutation['inverse'];
|
|
70
|
+
};
|
|
71
|
+
/** Proposes an improved value for ONE policy lever. The ONLY seam where a model/host enters propose.
|
|
72
|
+
* May return the legacy bare string OR the richer {@link ProposerResult} object form. */
|
|
73
|
+
export type Proposer = (base: PolicyGenome, target: string) => Promise<ProposerResult>;
|
|
57
74
|
/** Scores a policy on a suite. The ONLY seam where a host/benchmark enters evaluate. Everything
|
|
58
75
|
* Claude-Code-, SWE-bench-, or trading-specific lives HERE, in the caller — never in the flywheel. */
|
|
59
76
|
export type Evaluator = (policy: Policy, suite: Suite) => Promise<Score>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAQA;iEACiE;AACjE,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5C;2EAC2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaharness/flywheel",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "A verifiable self-improvement loop for agent harnesses. Freeze the model. Evolve the harness. Promote only what proves lift.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|