@mmnto/totem 1.77.0 → 1.79.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifacts/panel.d.ts +48 -48
- package/dist/artifacts/schema.d.ts +40 -40
- package/dist/compiler-schema.d.ts +1048 -7
- package/dist/compiler-schema.d.ts.map +1 -1
- package/dist/compiler-schema.js +129 -1
- package/dist/compiler-schema.js.map +1 -1
- package/dist/compiler-schema.test.js +92 -2
- package/dist/compiler-schema.test.js.map +1 -1
- package/dist/compiler.d.ts +2 -2
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +1 -1
- package/dist/compiler.js.map +1 -1
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/parity-detect.d.ts +127 -0
- package/dist/parity-detect.d.ts.map +1 -1
- package/dist/parity-detect.js +425 -1
- package/dist/parity-detect.js.map +1 -1
- package/dist/parity-lock-content.test.d.ts +9 -0
- package/dist/parity-lock-content.test.d.ts.map +1 -0
- package/dist/parity-lock-content.test.js +432 -0
- package/dist/parity-lock-content.test.js.map +1 -0
- package/dist/parity-manifest.d.ts +1 -1
- package/dist/parity-manifest.d.ts.map +1 -1
- package/dist/parity-manifest.js +6 -0
- package/dist/parity-manifest.js.map +1 -1
- package/dist/spine/authored-rule.d.ts +360 -0
- package/dist/spine/authored-rule.d.ts.map +1 -0
- package/dist/spine/authored-rule.js +199 -0
- package/dist/spine/authored-rule.js.map +1 -0
- package/dist/spine/authored-rule.test.d.ts +2 -0
- package/dist/spine/authored-rule.test.d.ts.map +1 -0
- package/dist/spine/authored-rule.test.js +220 -0
- package/dist/spine/authored-rule.test.js.map +1 -0
- package/dist/spine/candidate-rule.d.ts +32 -0
- package/dist/spine/candidate-rule.d.ts.map +1 -1
- package/dist/spine/candidate-rule.js +2 -2
- package/dist/spine/candidate-rule.js.map +1 -1
- package/dist/spine/classify.d.ts +5 -5
- package/dist/spine/compile.d.ts +16 -4
- package/dist/spine/compile.d.ts.map +1 -1
- package/dist/spine/compile.js +23 -0
- package/dist/spine/compile.js.map +1 -1
- package/dist/spine/compile.test.js +69 -0
- package/dist/spine/compile.test.js.map +1 -1
- package/dist/spine/corpus-dispositions.d.ts +18 -18
- package/dist/spine/extract.d.ts +2 -2
- package/dist/spine/extract.d.ts.map +1 -1
- package/dist/spine/extract.js +5 -4
- package/dist/spine/extract.js.map +1 -1
- package/dist/spine/ledgers.d.ts +46 -21
- package/dist/spine/ledgers.d.ts.map +1 -1
- package/dist/spine/ledgers.js +16 -8
- package/dist/spine/ledgers.js.map +1 -1
- package/dist/spine/rule-policy.d.ts +27 -0
- package/dist/spine/rule-policy.d.ts.map +1 -0
- package/dist/spine/rule-policy.js +43 -0
- package/dist/spine/rule-policy.js.map +1 -0
- package/dist/spine/rule-policy.test.d.ts +2 -0
- package/dist/spine/rule-policy.test.d.ts.map +1 -0
- package/dist/spine/rule-policy.test.js +31 -0
- package/dist/spine/rule-policy.test.js.map +1 -0
- package/dist/spine/windtunnel-lock.d.ts +8 -8
- package/package.json +1 -1
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for the strategy-doctrine lock-content parity detector (mmnto-ai/totem#2107,
|
|
3
|
+
* strategy#754). Covers the §6 normalizer's byte-for-byte parity with the publisher,
|
|
4
|
+
* the lock-schema boundary parser, the two-layer (self-consistency + vs-canonical)
|
|
5
|
+
* honest-absent taxonomy via injected seams, plus a real-lock integration check + the
|
|
6
|
+
* current-local-drift exhibit when a `../totem-strategy` sibling resolves.
|
|
7
|
+
*/
|
|
8
|
+
import * as crypto from 'node:crypto';
|
|
9
|
+
import * as fs from 'node:fs';
|
|
10
|
+
import * as path from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
import { describe, expect, it } from 'vitest';
|
|
13
|
+
import { detectLockContentContract, hashLockArtifact, normalizeLockArtifact, parseStrategyDoctrineLock, } from './parity-detect.js';
|
|
14
|
+
import { resolveStrategyRoot } from './strategy-resolver.js';
|
|
15
|
+
// ─── Fixtures ───────────────────────────────────────────
|
|
16
|
+
const CONTRACT_ID = 'strategy-doctrine-lock-content';
|
|
17
|
+
function makeContract(overrides = {}) {
|
|
18
|
+
return {
|
|
19
|
+
id: CONTRACT_ID,
|
|
20
|
+
dimension: 'doctrine-distribution',
|
|
21
|
+
canonicalSource: 'mmnto-ai/totem-strategy',
|
|
22
|
+
detectionMethod: 'sha256(normalize(content)) == lock content-hash',
|
|
23
|
+
expectedValueOrDerivation: 'every artifact recompute equals its lock content-hash',
|
|
24
|
+
tractability: 'mechanical',
|
|
25
|
+
trackingIssue: 'mmnto-ai/totem#2107',
|
|
26
|
+
package: '@mmnto/strategy-doctrine',
|
|
27
|
+
manifestation: 'content-hash',
|
|
28
|
+
consumers: ['totem', 'totem-status', 'liquid-city'],
|
|
29
|
+
...overrides,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const PKG_DIR = path.resolve('lock-content-test-pkg');
|
|
33
|
+
const STRATEGY_DIR = path.resolve('lock-content-test-strategy');
|
|
34
|
+
const LOCK_PATH = path.join(PKG_DIR, 'strategy-doctrine.lock');
|
|
35
|
+
/** Build a content-hash lock JSON string from artifact specs. */
|
|
36
|
+
function buildLockJson(artifacts) {
|
|
37
|
+
return JSON.stringify({
|
|
38
|
+
'schema-version': 1,
|
|
39
|
+
package: '@mmnto/strategy-doctrine',
|
|
40
|
+
version: '0.1.13',
|
|
41
|
+
published: '2026-06-25T22:18:55.324Z',
|
|
42
|
+
artifacts: artifacts.map((a) => ({
|
|
43
|
+
path: a.path,
|
|
44
|
+
'canonical-source': a.canonicalSource,
|
|
45
|
+
'content-hash': a.contentHash,
|
|
46
|
+
'last-published-sha': a.sha ?? '74816d869922d847680dd956896c47388e9833d6',
|
|
47
|
+
})),
|
|
48
|
+
}, null, 2);
|
|
49
|
+
}
|
|
50
|
+
/** A context whose every fs/git seam is injected (no disk, no git). */
|
|
51
|
+
function seamCtx(files, opts = {}) {
|
|
52
|
+
const dirSet = new Set(opts.dirs ?? [PKG_DIR]);
|
|
53
|
+
return {
|
|
54
|
+
repoId: opts.repoId ?? 'totem',
|
|
55
|
+
packageDir: PKG_DIR,
|
|
56
|
+
gitRoot: path.resolve('lock-content-test-root'),
|
|
57
|
+
readFile: (p) => (p in files ? files[p] : undefined),
|
|
58
|
+
dirExists: (p) => dirSet.has(p),
|
|
59
|
+
// Default identity realpath — no symlink redirection, so the lexical guard governs
|
|
60
|
+
// (the production default fs.realpathSync would honest-absent on these synthetic paths).
|
|
61
|
+
realpath: opts.realpath ?? ((p) => p),
|
|
62
|
+
resolveStrategyRootFn: () => opts.sibling ?? { resolved: false, reason: 'no sibling (test default)' },
|
|
63
|
+
gitObjectExists: () => opts.gitObjectExists ?? false,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// ─── normalizeLockArtifact + hashLockArtifact (golden) ──
|
|
67
|
+
describe('normalizeLockArtifact — §6 byte-for-byte parity', () => {
|
|
68
|
+
it('golden: trailing tabs/spaces + MULTIPLE trailing blanks + CRLF → fixed hash', () => {
|
|
69
|
+
const raw = 'line one \t\r\nline two\t \r\n\r\n\r\n';
|
|
70
|
+
const normalized = normalizeLockArtifact(raw);
|
|
71
|
+
expect(normalized).toBe('line one\nline two\n');
|
|
72
|
+
// Hard-pasted precomputed digest — drift in the normalizer flips this.
|
|
73
|
+
expect(hashLockArtifact(normalized)).toBe('sha256:e9024f1a07d29d52ad3aa5e1a18e94db1f3a9fd32b89e39d47c472cd99071e13');
|
|
74
|
+
});
|
|
75
|
+
it('pops ALL trailing blank lines and adds EXACTLY one terminal LF', () => {
|
|
76
|
+
expect(normalizeLockArtifact('a\n\n\n\n')).toBe('a\n');
|
|
77
|
+
expect(normalizeLockArtifact('a')).toBe('a\n');
|
|
78
|
+
expect(normalizeLockArtifact('a\n')).toBe('a\n');
|
|
79
|
+
// An all-blank input collapses to a single terminal LF (never empty).
|
|
80
|
+
expect(normalizeLockArtifact('\r\n \n\t\n')).toBe('\n');
|
|
81
|
+
});
|
|
82
|
+
it('preserves LEADING blank lines (DISTINCT from normalizeManagedBlock)', () => {
|
|
83
|
+
expect(normalizeLockArtifact('\n\nbody\n')).toBe('\n\nbody\n');
|
|
84
|
+
});
|
|
85
|
+
it('CRLF determinism: LF / CRLF / mixed CR produce identical digests', () => {
|
|
86
|
+
const lf = 'alpha\nbeta\ngamma\n';
|
|
87
|
+
const crlf = 'alpha\r\nbeta\r\ngamma\r\n';
|
|
88
|
+
const mixed = 'alpha\r\nbeta\ngamma\r';
|
|
89
|
+
const h = (s) => hashLockArtifact(normalizeLockArtifact(s));
|
|
90
|
+
expect(h(crlf)).toBe(h(lf));
|
|
91
|
+
expect(h(mixed)).toBe(h(lf));
|
|
92
|
+
});
|
|
93
|
+
it('is idempotent — re-normalizing an already-normalized string is a no-op', () => {
|
|
94
|
+
const once = normalizeLockArtifact('x \ny\t\n\n');
|
|
95
|
+
expect(normalizeLockArtifact(once)).toBe(once);
|
|
96
|
+
});
|
|
97
|
+
it('matches Node crypto directly (no hidden encoding)', () => {
|
|
98
|
+
const norm = normalizeLockArtifact('hello\n');
|
|
99
|
+
const expected = 'sha256:' + crypto.createHash('sha256').update(norm, 'utf-8').digest('hex');
|
|
100
|
+
expect(hashLockArtifact(norm)).toBe(expected);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
// ─── parseStrategyDoctrineLock ──────────────────────────
|
|
104
|
+
describe('parseStrategyDoctrineLock', () => {
|
|
105
|
+
it('parses a valid lock → ok with camelCase artifacts', () => {
|
|
106
|
+
const json = buildLockJson([
|
|
107
|
+
{
|
|
108
|
+
path: 'a.yaml',
|
|
109
|
+
canonicalSource: 'mmnto-ai/totem-strategy:doctrine/a.yaml',
|
|
110
|
+
contentHash: 'sha256:aa',
|
|
111
|
+
},
|
|
112
|
+
]);
|
|
113
|
+
const r = parseStrategyDoctrineLock(json);
|
|
114
|
+
expect(r.status).toBe('ok');
|
|
115
|
+
if (r.status !== 'ok')
|
|
116
|
+
return;
|
|
117
|
+
const lock = r.lock;
|
|
118
|
+
expect(lock.artifacts[0]).toEqual({
|
|
119
|
+
path: 'a.yaml',
|
|
120
|
+
canonicalSource: 'mmnto-ai/totem-strategy:doctrine/a.yaml',
|
|
121
|
+
contentHash: 'sha256:aa',
|
|
122
|
+
lastPublishedSha: '74816d869922d847680dd956896c47388e9833d6',
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
it('invalid JSON → unparseable (never throws)', () => {
|
|
126
|
+
const r = parseStrategyDoctrineLock('{not json');
|
|
127
|
+
expect(r.status).toBe('unparseable');
|
|
128
|
+
});
|
|
129
|
+
it('non-1 schema-version → unsupported-schema', () => {
|
|
130
|
+
const r = parseStrategyDoctrineLock(JSON.stringify({ 'schema-version': 2, artifacts: [] }));
|
|
131
|
+
expect(r).toEqual({ status: 'unsupported-schema', schemaVersion: 2 });
|
|
132
|
+
});
|
|
133
|
+
it('missing numeric schema-version → unparseable', () => {
|
|
134
|
+
const r = parseStrategyDoctrineLock(JSON.stringify({ package: 'x', artifacts: [] }));
|
|
135
|
+
expect(r.status).toBe('unparseable');
|
|
136
|
+
});
|
|
137
|
+
it('malformed artifact row → unparseable (Zod boundary)', () => {
|
|
138
|
+
const r = parseStrategyDoctrineLock(JSON.stringify({
|
|
139
|
+
'schema-version': 1,
|
|
140
|
+
package: 'x',
|
|
141
|
+
version: '1',
|
|
142
|
+
published: 't',
|
|
143
|
+
artifacts: [{ path: 'a' }],
|
|
144
|
+
}));
|
|
145
|
+
expect(r.status).toBe('unparseable');
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
// ─── detectLockContentContract — applicability + top-level honest-absent ──
|
|
149
|
+
describe('detectLockContentContract — applicability / top-level', () => {
|
|
150
|
+
it('not a consumer → single skip line', () => {
|
|
151
|
+
const lines = detectLockContentContract(makeContract(), seamCtx({}, { repoId: 'other-repo' }));
|
|
152
|
+
expect(lines).toHaveLength(1);
|
|
153
|
+
expect(lines[0].verdict.status).toBe('skip');
|
|
154
|
+
expect(lines[0].verdict.message).toContain('cohort permits absence');
|
|
155
|
+
});
|
|
156
|
+
it('repo id unresolvable under a scoped contract → skip', () => {
|
|
157
|
+
const ctx = seamCtx({});
|
|
158
|
+
delete ctx.repoId;
|
|
159
|
+
const lines = detectLockContentContract(makeContract(), ctx);
|
|
160
|
+
expect(lines[0].verdict.status).toBe('skip');
|
|
161
|
+
expect(lines[0].verdict.message).toContain('repo id unresolvable');
|
|
162
|
+
});
|
|
163
|
+
it('package not installed → skip (the currency row senses the pin)', () => {
|
|
164
|
+
const lines = detectLockContentContract(makeContract(), seamCtx({}, { dirs: [] }));
|
|
165
|
+
expect(lines).toHaveLength(1);
|
|
166
|
+
expect(lines[0].verdict.status).toBe('skip');
|
|
167
|
+
expect(lines[0].verdict.message).toContain('not installed');
|
|
168
|
+
});
|
|
169
|
+
it('package present but lock absent → warn (structurally incomplete)', () => {
|
|
170
|
+
const lines = detectLockContentContract(makeContract(), seamCtx({}));
|
|
171
|
+
expect(lines).toHaveLength(1);
|
|
172
|
+
expect(lines[0].verdict.status).toBe('warn');
|
|
173
|
+
expect(lines[0].verdict.message).toContain('structurally incomplete');
|
|
174
|
+
});
|
|
175
|
+
it('lock unparseable → warn', () => {
|
|
176
|
+
const lines = detectLockContentContract(makeContract(), seamCtx({ [LOCK_PATH]: '{broken' }));
|
|
177
|
+
expect(lines[0].verdict.status).toBe('warn');
|
|
178
|
+
expect(lines[0].verdict.message).toContain('unparseable');
|
|
179
|
+
});
|
|
180
|
+
it('a path-escaping lockFileName seam is refused (CR outside-diff #2256)', () => {
|
|
181
|
+
const lines = detectLockContentContract(makeContract(), {
|
|
182
|
+
...seamCtx({}),
|
|
183
|
+
lockFileName: '../../evil.lock',
|
|
184
|
+
});
|
|
185
|
+
expect(lines).toHaveLength(1);
|
|
186
|
+
expect(lines[0].verdict.status).toBe('warn');
|
|
187
|
+
expect(lines[0].verdict.message).toContain('escapes the package dir');
|
|
188
|
+
});
|
|
189
|
+
it('lock unsupported-schema → warn', () => {
|
|
190
|
+
const lines = detectLockContentContract(makeContract(), seamCtx({ [LOCK_PATH]: JSON.stringify({ 'schema-version': 99, artifacts: [] }) }));
|
|
191
|
+
expect(lines[0].verdict.status).toBe('warn');
|
|
192
|
+
expect(lines[0].verdict.message).toContain('schema-version 99');
|
|
193
|
+
});
|
|
194
|
+
it('lock with empty artifacts[] → warn', () => {
|
|
195
|
+
const lines = detectLockContentContract(makeContract(), seamCtx({ [LOCK_PATH]: buildLockJson([]) }));
|
|
196
|
+
expect(lines[0].verdict.status).toBe('warn');
|
|
197
|
+
expect(lines[0].verdict.message).toContain('no artifacts');
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
// ─── detectLockContentContract — the two layers ──
|
|
201
|
+
describe('detectLockContentContract — self-consistency + vs-canonical layers', () => {
|
|
202
|
+
const artifactPath = 'parity-manifest.yaml';
|
|
203
|
+
const canonicalSource = 'mmnto-ai/totem-strategy:doctrine/parity-manifest.yaml';
|
|
204
|
+
const goodContent = 'reviews:\n profile: assertive\n';
|
|
205
|
+
const goodHash = hashLockArtifact(normalizeLockArtifact(goodContent));
|
|
206
|
+
const artFile = path.resolve(PKG_DIR, artifactPath);
|
|
207
|
+
it('self pass + vs-canonical skip when no sibling resolves', () => {
|
|
208
|
+
const files = {
|
|
209
|
+
[LOCK_PATH]: buildLockJson([{ path: artifactPath, canonicalSource, contentHash: goodHash }]),
|
|
210
|
+
[artFile]: goodContent,
|
|
211
|
+
};
|
|
212
|
+
const lines = detectLockContentContract(makeContract(), seamCtx(files));
|
|
213
|
+
expect(lines).toHaveLength(2);
|
|
214
|
+
const self = lines.find((l) => l.lineName.includes('· self'));
|
|
215
|
+
const vs = lines.find((l) => l.lineName.includes('· vs-canonical'));
|
|
216
|
+
expect(self.verdict.status).toBe('pass');
|
|
217
|
+
expect(self.verdict.message).toContain('intact');
|
|
218
|
+
expect(self.verdict.message).toContain('last-published-sha');
|
|
219
|
+
expect(vs.verdict.status).toBe('skip');
|
|
220
|
+
expect(vs.verdict.message).toContain('never a fetch');
|
|
221
|
+
});
|
|
222
|
+
it('self warn on hash mismatch (integrity drift)', () => {
|
|
223
|
+
const files = {
|
|
224
|
+
[LOCK_PATH]: buildLockJson([
|
|
225
|
+
{ path: artifactPath, canonicalSource, contentHash: 'sha256:deadbeef' },
|
|
226
|
+
]),
|
|
227
|
+
[artFile]: goodContent,
|
|
228
|
+
};
|
|
229
|
+
const self = detectLockContentContract(makeContract(), seamCtx(files)).find((l) => l.lineName.includes('· self'));
|
|
230
|
+
expect(self.verdict.status).toBe('warn');
|
|
231
|
+
expect(self.verdict.message).toContain('integrity drift');
|
|
232
|
+
});
|
|
233
|
+
it('self warn when the packaged artifact file is absent', () => {
|
|
234
|
+
const files = {
|
|
235
|
+
[LOCK_PATH]: buildLockJson([{ path: artifactPath, canonicalSource, contentHash: goodHash }]),
|
|
236
|
+
};
|
|
237
|
+
const self = detectLockContentContract(makeContract(), seamCtx(files)).find((l) => l.lineName.includes('· self'));
|
|
238
|
+
expect(self.verdict.status).toBe('warn');
|
|
239
|
+
expect(self.verdict.message).toContain('absent');
|
|
240
|
+
});
|
|
241
|
+
it('vs-canonical pass when the sibling canonical matches', () => {
|
|
242
|
+
const canonFile = path.resolve(STRATEGY_DIR, 'doctrine/parity-manifest.yaml');
|
|
243
|
+
const files = {
|
|
244
|
+
[LOCK_PATH]: buildLockJson([{ path: artifactPath, canonicalSource, contentHash: goodHash }]),
|
|
245
|
+
[artFile]: goodContent,
|
|
246
|
+
[canonFile]: goodContent,
|
|
247
|
+
};
|
|
248
|
+
const vs = detectLockContentContract(makeContract(), seamCtx(files, {
|
|
249
|
+
sibling: { resolved: true, path: STRATEGY_DIR, source: 'sibling' },
|
|
250
|
+
gitObjectExists: true,
|
|
251
|
+
})).find((l) => l.lineName.includes('· vs-canonical'));
|
|
252
|
+
expect(vs.verdict.status).toBe('pass');
|
|
253
|
+
expect(vs.verdict.message).toContain('strategy-canonical');
|
|
254
|
+
expect(vs.verdict.message).toContain('resolvable in sibling');
|
|
255
|
+
});
|
|
256
|
+
it('vs-canonical warn (currency drift) when the sibling canonical advanced', () => {
|
|
257
|
+
const canonFile = path.resolve(STRATEGY_DIR, 'doctrine/parity-manifest.yaml');
|
|
258
|
+
const files = {
|
|
259
|
+
[LOCK_PATH]: buildLockJson([{ path: artifactPath, canonicalSource, contentHash: goodHash }]),
|
|
260
|
+
[artFile]: goodContent,
|
|
261
|
+
[canonFile]: 'reviews:\n profile: chill\n', // advanced canonical
|
|
262
|
+
};
|
|
263
|
+
const vs = detectLockContentContract(makeContract(), seamCtx(files, { sibling: { resolved: true, path: STRATEGY_DIR, source: 'sibling' } })).find((l) => l.lineName.includes('· vs-canonical'));
|
|
264
|
+
expect(vs.verdict.status).toBe('warn');
|
|
265
|
+
expect(vs.verdict.message).toContain('currency drift');
|
|
266
|
+
});
|
|
267
|
+
it('vs-canonical warn when the canonical-source path is absent in the sibling', () => {
|
|
268
|
+
const files = {
|
|
269
|
+
[LOCK_PATH]: buildLockJson([{ path: artifactPath, canonicalSource, contentHash: goodHash }]),
|
|
270
|
+
[artFile]: goodContent,
|
|
271
|
+
};
|
|
272
|
+
const vs = detectLockContentContract(makeContract(), seamCtx(files, { sibling: { resolved: true, path: STRATEGY_DIR, source: 'sibling' } })).find((l) => l.lineName.includes('· vs-canonical'));
|
|
273
|
+
expect(vs.verdict.status).toBe('warn');
|
|
274
|
+
expect(vs.verdict.message).toContain('absent under the resolved sibling');
|
|
275
|
+
});
|
|
276
|
+
it('vs-canonical skip when canonical-source is not a totem-strategy ref', () => {
|
|
277
|
+
const files = {
|
|
278
|
+
[LOCK_PATH]: buildLockJson([
|
|
279
|
+
{ path: artifactPath, canonicalSource: 'some-other/repo:x.yaml', contentHash: goodHash },
|
|
280
|
+
]),
|
|
281
|
+
[artFile]: goodContent,
|
|
282
|
+
};
|
|
283
|
+
const vs = detectLockContentContract(makeContract(), seamCtx(files, { sibling: { resolved: true, path: STRATEGY_DIR, source: 'sibling' } })).find((l) => l.lineName.includes('· vs-canonical'));
|
|
284
|
+
expect(vs.verdict.status).toBe('skip');
|
|
285
|
+
expect(vs.verdict.message).toContain('unprovable this slice');
|
|
286
|
+
});
|
|
287
|
+
it('emits one line per artifact × per layer; never fail/throw', () => {
|
|
288
|
+
const a2 = 'freeze.json';
|
|
289
|
+
const c2 = 'mmnto-ai/totem-strategy:.totem/freeze.json';
|
|
290
|
+
const body2 = '{"frozen":[]}\n';
|
|
291
|
+
const files = {
|
|
292
|
+
[LOCK_PATH]: buildLockJson([
|
|
293
|
+
{ path: artifactPath, canonicalSource, contentHash: goodHash },
|
|
294
|
+
{
|
|
295
|
+
path: a2,
|
|
296
|
+
canonicalSource: c2,
|
|
297
|
+
contentHash: hashLockArtifact(normalizeLockArtifact(body2)),
|
|
298
|
+
},
|
|
299
|
+
]),
|
|
300
|
+
[artFile]: goodContent,
|
|
301
|
+
[path.resolve(PKG_DIR, a2)]: body2,
|
|
302
|
+
};
|
|
303
|
+
const lines = detectLockContentContract(makeContract(), seamCtx(files));
|
|
304
|
+
expect(lines).toHaveLength(4); // 2 artifacts × 2 layers
|
|
305
|
+
expect(lines.every((l) => l.verdict.status !== 'fail')).toBe(true);
|
|
306
|
+
});
|
|
307
|
+
it('a path-escaping artifact entry is refused, never read out of dir', () => {
|
|
308
|
+
const files = {
|
|
309
|
+
[LOCK_PATH]: buildLockJson([
|
|
310
|
+
{ path: '../../escape.txt', canonicalSource, contentHash: goodHash },
|
|
311
|
+
]),
|
|
312
|
+
};
|
|
313
|
+
const self = detectLockContentContract(makeContract(), seamCtx(files)).find((l) => l.lineName.includes('· self'));
|
|
314
|
+
expect(self.verdict.status).toBe('warn');
|
|
315
|
+
expect(self.verdict.message).toContain('escapes the package dir');
|
|
316
|
+
});
|
|
317
|
+
it('refuses an artifact that symlinks OUTSIDE the package real-root (CR/greptile #2256)', () => {
|
|
318
|
+
const outside = path.resolve('outside-the-pkg/evil.yaml');
|
|
319
|
+
const files = {
|
|
320
|
+
[LOCK_PATH]: buildLockJson([{ path: artifactPath, canonicalSource, contentHash: goodHash }]),
|
|
321
|
+
[artFile]: goodContent, // lexically inside the pkg dir…
|
|
322
|
+
};
|
|
323
|
+
const self = detectLockContentContract(makeContract(),
|
|
324
|
+
// …but its REAL target resolves outside the package real-root.
|
|
325
|
+
seamCtx(files, { realpath: (p) => (p === artFile ? outside : p) })).find((l) => l.lineName.includes('· self'));
|
|
326
|
+
expect(self.verdict.status).toBe('warn');
|
|
327
|
+
expect(self.verdict.message).toContain('escapes the package dir');
|
|
328
|
+
});
|
|
329
|
+
it('allows an inner symlink that stays within the package real-root (pnpm-style)', () => {
|
|
330
|
+
// pnpm symlinks node_modules/@mmnto/x → .pnpm/…; realpath of BOTH base and target
|
|
331
|
+
// resolves into the same real root, so a legitimate install stays contained.
|
|
332
|
+
const realBase = path.resolve('.pnpm-real/pkg');
|
|
333
|
+
const realArt = path.join(realBase, artifactPath);
|
|
334
|
+
const realLock = path.join(realBase, 'strategy-doctrine.lock');
|
|
335
|
+
const files = {
|
|
336
|
+
[LOCK_PATH]: buildLockJson([{ path: artifactPath, canonicalSource, contentHash: goodHash }]),
|
|
337
|
+
[artFile]: goodContent,
|
|
338
|
+
};
|
|
339
|
+
// A real pnpm install resolves the package dir AND every file within it (lock +
|
|
340
|
+
// artifacts) into the same .pnpm real root — so the containment guard holds for both.
|
|
341
|
+
const self = detectLockContentContract(makeContract(), seamCtx(files, {
|
|
342
|
+
realpath: (p) => p === PKG_DIR ? realBase : p === artFile ? realArt : p === LOCK_PATH ? realLock : p,
|
|
343
|
+
})).find((l) => l.lineName.includes('· self'));
|
|
344
|
+
expect(self.verdict.status).toBe('pass');
|
|
345
|
+
});
|
|
346
|
+
it('warns when the lock declares a DIFFERENT package than it was loaded from (CR #2256)', () => {
|
|
347
|
+
const wrongPkgLock = JSON.stringify({
|
|
348
|
+
'schema-version': 1,
|
|
349
|
+
package: '@mmnto/some-other-doctrine',
|
|
350
|
+
version: '0.1.13',
|
|
351
|
+
published: '2026-06-25T22:18:55.324Z',
|
|
352
|
+
artifacts: [
|
|
353
|
+
{
|
|
354
|
+
path: artifactPath,
|
|
355
|
+
'canonical-source': canonicalSource,
|
|
356
|
+
'content-hash': goodHash,
|
|
357
|
+
'last-published-sha': '74816d869922d847680dd956896c47388e9833d6',
|
|
358
|
+
},
|
|
359
|
+
],
|
|
360
|
+
});
|
|
361
|
+
const lines = detectLockContentContract(makeContract(), seamCtx({ [LOCK_PATH]: wrongPkgLock }));
|
|
362
|
+
expect(lines).toHaveLength(1); // short-circuits before per-artifact lines
|
|
363
|
+
expect(lines[0].verdict.status).toBe('warn');
|
|
364
|
+
expect(lines[0].verdict.message).toContain('structurally inconsistent');
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
// ─── Real-lock integration + current-local-drift exhibit ──
|
|
368
|
+
/** Walk up from this test file to locate the installed @mmnto/strategy-doctrine dir. */
|
|
369
|
+
function findStrategyDoctrineDir() {
|
|
370
|
+
let dir = path.dirname(fileURLToPath(import.meta.url));
|
|
371
|
+
for (let i = 0; i < 8; i++) {
|
|
372
|
+
const candidate = path.join(dir, 'node_modules', '@mmnto', 'strategy-doctrine');
|
|
373
|
+
if (fs.existsSync(path.join(candidate, 'strategy-doctrine.lock')))
|
|
374
|
+
return candidate;
|
|
375
|
+
const parent = path.dirname(dir);
|
|
376
|
+
if (parent === dir)
|
|
377
|
+
break;
|
|
378
|
+
dir = parent;
|
|
379
|
+
}
|
|
380
|
+
return undefined;
|
|
381
|
+
}
|
|
382
|
+
describe('detectLockContentContract — real installed lock (integration)', () => {
|
|
383
|
+
const pkgDir = findStrategyDoctrineDir();
|
|
384
|
+
it.skipIf(pkgDir === undefined)('every packaged artifact self-consistently matches its own lock content-hash', () => {
|
|
385
|
+
const lockText = fs.readFileSync(path.join(pkgDir, 'strategy-doctrine.lock'), 'utf-8');
|
|
386
|
+
const parsed = parseStrategyDoctrineLock(lockText);
|
|
387
|
+
expect(parsed.status).toBe('ok');
|
|
388
|
+
if (parsed.status !== 'ok')
|
|
389
|
+
return;
|
|
390
|
+
for (const artifact of parsed.lock.artifacts) {
|
|
391
|
+
const raw = fs.readFileSync(path.join(pkgDir, artifact.path), 'utf-8');
|
|
392
|
+
expect(hashLockArtifact(normalizeLockArtifact(raw))).toBe(artifact.contentHash);
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
it.skipIf(pkgDir === undefined)('self layer all-pass against the real package', () => {
|
|
396
|
+
const lines = detectLockContentContract(makeContract(), {
|
|
397
|
+
repoId: 'totem',
|
|
398
|
+
packageDir: pkgDir,
|
|
399
|
+
gitRoot: path.resolve('.'),
|
|
400
|
+
// Keep this hermetic: no sibling resolution, no git shell-out.
|
|
401
|
+
resolveStrategyRootFn: () => ({ resolved: false, reason: 'pinned off for integration test' }),
|
|
402
|
+
gitObjectExists: () => false,
|
|
403
|
+
});
|
|
404
|
+
const selfLines = lines.filter((l) => l.lineName.includes('· self'));
|
|
405
|
+
expect(selfLines.length).toBeGreaterThanOrEqual(3);
|
|
406
|
+
expect(selfLines.every((l) => l.verdict.status === 'pass')).toBe(true);
|
|
407
|
+
});
|
|
408
|
+
it.skipIf(pkgDir === undefined)('current-local-drift exhibit: when a ../totem-strategy sibling resolves, self all-pass + vs-canonical ran (no skip, pass|warn only)', () => {
|
|
409
|
+
// The repo root is the parent of node_modules/@mmnto/strategy-doctrine.
|
|
410
|
+
const repoRoot = path.resolve(pkgDir, '..', '..', '..');
|
|
411
|
+
const sibling = resolveStrategyRoot(repoRoot, { gitRoot: repoRoot });
|
|
412
|
+
if (!sibling.resolved)
|
|
413
|
+
return; // no local sibling in this environment → exhibit n/a
|
|
414
|
+
const lines = detectLockContentContract(makeContract(), {
|
|
415
|
+
repoId: 'totem',
|
|
416
|
+
packageDir: pkgDir,
|
|
417
|
+
gitRoot: repoRoot,
|
|
418
|
+
gitObjectExists: () => true, // pin the provenance note so a git shell-out can't flake the assert
|
|
419
|
+
});
|
|
420
|
+
const selfLines = lines.filter((l) => l.lineName.includes('· self'));
|
|
421
|
+
const vsLines = lines.filter((l) => l.lineName.includes('· vs-canonical'));
|
|
422
|
+
// Self-consistency is environment-independent: the shipped snapshot is intact.
|
|
423
|
+
expect(selfLines.every((l) => l.verdict.status === 'pass')).toBe(true);
|
|
424
|
+
// The sibling resolved, so vs-canonical actually RAN — never skip. A `warn` is the
|
|
425
|
+
// expected current-local-drift exhibit (the local canonical advanced past the pin);
|
|
426
|
+
// a `pass` is a freshly-published bundle. Both are legitimate; `skip` would mean the
|
|
427
|
+
// honest-absent branch fired despite a resolved sibling (a bug).
|
|
428
|
+
expect(vsLines.length).toBe(selfLines.length);
|
|
429
|
+
expect(vsLines.every((l) => l.verdict.status === 'pass' || l.verdict.status === 'warn')).toBe(true);
|
|
430
|
+
});
|
|
431
|
+
});
|
|
432
|
+
//# sourceMappingURL=parity-lock-content.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parity-lock-content.test.js","sourceRoot":"","sources":["../src/parity-lock-content.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ export type ParityTractability = z.infer<typeof ParityTractabilitySchema>;
|
|
|
53
53
|
* narrows against this list; an unrecognized value stays verbatim on the row
|
|
54
54
|
* and surfaces as a per-row line, never a dark manifest.
|
|
55
55
|
*/
|
|
56
|
-
export declare const PARITY_MANIFESTATIONS: readonly ["correct-by-construction", "managed-block", "version-pin", "value-equality", "attestation", "capability-probe"];
|
|
56
|
+
export declare const PARITY_MANIFESTATIONS: readonly ["correct-by-construction", "managed-block", "version-pin", "value-equality", "content-hash", "attestation", "capability-probe"];
|
|
57
57
|
export type ParityManifestation = (typeof PARITY_MANIFESTATIONS)[number];
|
|
58
58
|
/**
|
|
59
59
|
* The §6(a)3 sensed-state scale (post-#605: `declared` is the floor — the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity-manifest.d.ts","sourceRoot":"","sources":["../src/parity-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAIjD;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,mEAInC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"parity-manifest.d.ts","sourceRoot":"","sources":["../src/parity-manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/parity-manifest.js
CHANGED
|
@@ -72,6 +72,12 @@ export const PARITY_MANIFESTATIONS = [
|
|
|
72
72
|
// narrows on membership, not index), but kept ahead of `attestation` to read as
|
|
73
73
|
// the promotion target.
|
|
74
74
|
'value-equality',
|
|
75
|
+
// `content-hash` (mmnto-ai/totem#2107, strategy#754): byte-for-byte
|
|
76
|
+
// sha256(normalize(content)) equality of a DISTRIBUTED artifact vs its lock —
|
|
77
|
+
// stronger than `value-equality` (a single typed scalar) / `attestation`; distinct
|
|
78
|
+
// from `version-pin` (pin currency, NOT content). The detector is the lock reader
|
|
79
|
+
// (`detectLockContentContract`). Order is cosmetic (routing narrows on membership).
|
|
80
|
+
'content-hash',
|
|
75
81
|
'attestation',
|
|
76
82
|
'capability-probe',
|
|
77
83
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity-manifest.js","sourceRoot":"","sources":["../src/parity-manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parity-manifest.js","sourceRoot":"","sources":["../src/parity-manifest.ts"],"names":[],"mappings":"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"}
|