@mmnto/cli 1.117.0 → 1.118.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.
- package/dist/adapters/github-cli-project.d.ts +4 -2
- package/dist/adapters/github-cli-project.d.ts.map +1 -1
- package/dist/adapters/github-cli-project.js +26 -3
- package/dist/adapters/github-cli-project.js.map +1 -1
- package/dist/adapters/github-cli-project.test.d.ts +2 -0
- package/dist/adapters/github-cli-project.test.d.ts.map +1 -0
- package/dist/adapters/github-cli-project.test.js +80 -0
- package/dist/adapters/github-cli-project.test.js.map +1 -0
- package/dist/commands/bootstrap-wiring.test.js +28 -0
- package/dist/commands/bootstrap-wiring.test.js.map +1 -1
- package/dist/commands/init-templates.d.ts +6 -6
- package/dist/commands/init-templates.d.ts.map +1 -1
- package/dist/commands/init-templates.js +11 -8
- package/dist/commands/init-templates.js.map +1 -1
- package/dist/commands/init.test.js +54 -6
- package/dist/commands/init.test.js.map +1 -1
- package/dist/commands/install-hooks.d.ts.map +1 -1
- package/dist/commands/install-hooks.js +12 -1
- package/dist/commands/install-hooks.js.map +1 -1
- package/dist/commands/lint.js +1 -1
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/orient.test.js +21 -0
- package/dist/commands/orient.test.js.map +1 -1
- package/dist/commands/pre-push-gate-matrix.test.d.ts +17 -0
- package/dist/commands/pre-push-gate-matrix.test.d.ts.map +1 -0
- package/dist/commands/pre-push-gate-matrix.test.js +135 -0
- package/dist/commands/pre-push-gate-matrix.test.js.map +1 -0
- package/dist/commands/shield-admission.test.d.ts +14 -0
- package/dist/commands/shield-admission.test.d.ts.map +1 -0
- package/dist/commands/shield-admission.test.js +301 -0
- package/dist/commands/shield-admission.test.js.map +1 -0
- package/dist/commands/shield-classify.d.ts +10 -0
- package/dist/commands/shield-classify.d.ts.map +1 -1
- package/dist/commands/shield-classify.js +19 -1
- package/dist/commands/shield-classify.js.map +1 -1
- package/dist/commands/shield-covariate.test.js +3 -0
- package/dist/commands/shield-covariate.test.js.map +1 -1
- package/dist/commands/shield-estimate.js +5 -5
- package/dist/commands/shield-estimate.js.map +1 -1
- package/dist/commands/shield-estimate.test.js +7 -3
- package/dist/commands/shield-estimate.test.js.map +1 -1
- package/dist/commands/shield-nonreview.test.d.ts +12 -14
- package/dist/commands/shield-nonreview.test.d.ts.map +1 -1
- package/dist/commands/shield-nonreview.test.js +228 -42
- package/dist/commands/shield-nonreview.test.js.map +1 -1
- package/dist/commands/shield.d.ts +116 -1
- package/dist/commands/shield.d.ts.map +1 -1
- package/dist/commands/shield.js +439 -116
- package/dist/commands/shield.js.map +1 -1
- package/dist/git.d.ts +20 -2
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +11 -4
- package/dist/git.js.map +1 -1
- package/dist/git.test.js +58 -18
- package/dist/git.test.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -2911,13 +2911,61 @@ describe('Distributed skill constants match source-of-truth (mmnto-ai/totem#1890
|
|
|
2911
2911
|
const expected = DISTRIBUTED_CLAUDE_SKILLS.map((s) => `!.agents/skills/${s.name}/`).sort();
|
|
2912
2912
|
expect(actual).toEqual(expected);
|
|
2913
2913
|
});
|
|
2914
|
-
// The covariate PR-line is a versioned contract
|
|
2915
|
-
//
|
|
2916
|
-
//
|
|
2917
|
-
// + the
|
|
2918
|
-
|
|
2914
|
+
// The covariate PR-line is a versioned contract consumed by a measurement
|
|
2915
|
+
// pilot (Prop 304 R2, mmnto-ai/totem#2106). Its shapes are grep-able and
|
|
2916
|
+
// MUST NOT drift without a spec amendment — lock the exact template strings
|
|
2917
|
+
// + the do-not-alter marker into the canonical skill content. v1.1 added the
|
|
2918
|
+
// additive ADMISSION form under the mmnto-ai/totem#2473 design (operator-
|
|
2919
|
+
// approved 2026-08-14) — this pin fired on that amendment exactly as
|
|
2920
|
+
// intended, and was updated WITH the spec amendment, never around it.
|
|
2921
|
+
it('REVIEW_LOOP_SKILL_CONTENT carries the exact covariate line format v1.1 contract (both shapes)', () => {
|
|
2919
2922
|
expect(REVIEW_LOOP_SKILL_CONTENT).toContain('local-lane: <verdictHash8> round=<n> settled=<true|false> lanes=<completed>/<attempted>');
|
|
2920
|
-
expect(REVIEW_LOOP_SKILL_CONTENT).toContain('
|
|
2923
|
+
expect(REVIEW_LOOP_SKILL_CONTENT).toContain('local-lane: not-applicable (<reason>) recorded=<recordHash8> at=<createdAt>');
|
|
2924
|
+
expect(REVIEW_LOOP_SKILL_CONTENT).toContain('covariate line format v1.1 — do not alter without a spec amendment');
|
|
2925
|
+
});
|
|
2926
|
+
// The crown-gate + S0 fold (strategy#488 R-table, operator-ruled 2026-08-13/14)
|
|
2927
|
+
// is load-bearing distributed procedure — pin its tokens + ordering the same
|
|
2928
|
+
// way the ecl-gc step is pinned (a byte-lock alone lets both sides reword
|
|
2929
|
+
// together; falsification-leg MINOR-9 on the fold round).
|
|
2930
|
+
it('SIGNOFF/SIGNON constants carry the crown-gate + S0 fold (tokens + ordering)', () => {
|
|
2931
|
+
// Signoff: the gate derives FIRST (step 0 precedes step 1), distinguishes
|
|
2932
|
+
// un-bussed from vacant, crown-scopes step 4 by name, and carries the
|
|
2933
|
+
// own-owed-edges journal rule with the self-held→live asymmetry.
|
|
2934
|
+
expect(SIGNOFF_SKILL_CONTENT).toContain('Crown gate — derive FIRST');
|
|
2935
|
+
// Pin the NORMATIVE arms, not just tokens (re-arm MINOR-4: a token pin
|
|
2936
|
+
// lets a later edit keep the word and invert the rule under green CI).
|
|
2937
|
+
expect(SIGNOFF_SKILL_CONTENT).toContain('**non-cohort consumer**: the crown gate does not apply');
|
|
2938
|
+
expect(SIGNOFF_SKILL_CONTENT).toContain('crown **vacant** (fail-closed — the ruled default)');
|
|
2939
|
+
expect(SIGNOFF_SKILL_CONTENT).toContain('CROWN ONLY where the crown gate applies');
|
|
2940
|
+
expect(SIGNOFF_SKILL_CONTENT).toContain('every OTHER managed step (1–3, 5–6) still runs');
|
|
2941
|
+
expect(SIGNOFF_SKILL_CONTENT).toContain('a skipped note-to-self THERE and a LIVE edge in yours');
|
|
2942
|
+
// Step 0 is the FIRST numbered step (not a demotable preamble) and
|
|
2943
|
+
// precedes step 1.
|
|
2944
|
+
expect(SIGNOFF_SKILL_CONTENT).toMatch(/\n0\. \*\*Crown gate — derive FIRST/);
|
|
2945
|
+
expect(SIGNOFF_SKILL_CONTENT.indexOf('Crown gate — derive FIRST')).toBeLessThan(SIGNOFF_SKILL_CONTENT.indexOf('1. **Update memory.**'));
|
|
2946
|
+
// Signon: seat-anchored poll + the S0 residual check, truthful about what
|
|
2947
|
+
// the 1.117.0 gate mechanized and what the hook actually guarantees.
|
|
2948
|
+
expect(SIGNON_SKILL_CONTENT).toContain('seat-anchored');
|
|
2949
|
+
expect(SIGNON_SKILL_CONTENT).toContain('S0 identity check');
|
|
2950
|
+
expect(SIGNON_SKILL_CONTENT).toContain('Self agents:');
|
|
2951
|
+
// Pin the exact-seat wording and the foreign-seat STOP arm verbatim (CR on
|
|
2952
|
+
// #2643: label pins alone let the safety branch vanish under green CI).
|
|
2953
|
+
expect(SIGNON_SKILL_CONTENT).toContain("the banner's `Self agents:` line must name exactly your seat");
|
|
2954
|
+
expect(SIGNON_SKILL_CONTENT).toContain('A banner naming a FOREIGN seat = STOP: act on nothing served, propagate nothing from it, fix the identity, re-poll.');
|
|
2955
|
+
// Hook-seat mismatch fail-closed + the signoff-side identity check (CR
|
|
2956
|
+
// majors 1-2 on #2643).
|
|
2957
|
+
expect(SIGNON_SKILL_CONTENT).toContain('On a hook-seat MISMATCH');
|
|
2958
|
+
expect(SIGNON_SKILL_CONTENT).toContain('consume NONE of the injected material');
|
|
2959
|
+
expect(SIGNOFF_SKILL_CONTENT).toContain('the signon S0 check applies at signoff too');
|
|
2960
|
+
expect(SIGNOFF_SKILL_CONTENT).toContain('must not make this session the crown');
|
|
2961
|
+
expect(SIGNON_SKILL_CONTENT).toContain('exit 2');
|
|
2962
|
+
expect(SIGNON_SKILL_CONTENT).toContain('--as <your-seat>');
|
|
2963
|
+
expect(SIGNON_SKILL_CONTENT).toContain('the seat it is CONFIGURED for');
|
|
2964
|
+
// The gated-poll claim is scoped to the LISTING with the warning-line
|
|
2965
|
+
// limit named (re-arm MATERIAL-B: an unqualified "not an exposure" was
|
|
2966
|
+
// falsified by the CLI's own named unclassifiable-file limit).
|
|
2967
|
+
expect(SIGNON_SKILL_CONTENT).toContain("A GATED poll's LISTING is broadcast-only");
|
|
2968
|
+
expect(SIGNON_SKILL_CONTENT).toContain('propagate nothing from a gated poll');
|
|
2921
2969
|
});
|
|
2922
2970
|
// rev-6 item 4: the consolidated round-disposition comment is a CONCRETE, executable
|
|
2923
2971
|
// step — it EXECUTES `totem review --covariate` inside the comment-assembly flow, so the
|