@mmnto/totem 1.53.3 → 1.53.4
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/config-schema.d.ts +28 -0
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config-schema.js +11 -0
- package/dist/config-schema.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/parity-detect.d.ts +182 -0
- package/dist/parity-detect.d.ts.map +1 -0
- package/dist/parity-detect.js +478 -0
- package/dist/parity-detect.js.map +1 -0
- package/dist/parity-detect.test.d.ts +18 -0
- package/dist/parity-detect.test.d.ts.map +1 -0
- package/dist/parity-detect.test.js +274 -0
- package/dist/parity-detect.test.js.map +1 -0
- package/dist/parity-manifest.d.ts +177 -0
- package/dist/parity-manifest.d.ts.map +1 -0
- package/dist/parity-manifest.js +233 -0
- package/dist/parity-manifest.js.map +1 -0
- package/dist/parity-manifest.test.d.ts +12 -0
- package/dist/parity-manifest.test.d.ts.map +1 -0
- package/dist/parity-manifest.test.js +228 -0
- package/dist/parity-manifest.test.js.map +1 -0
- package/dist/sys/git.d.ts.map +1 -1
- package/dist/sys/git.js +12 -3
- package/dist/sys/git.js.map +1 -1
- package/dist/sys/git.test.js +71 -1
- package/dist/sys/git.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parity-manifest parser + config-path resolver (mmnto-ai/totem-strategy#448).
|
|
3
|
+
*
|
|
4
|
+
* The strategy repo owns `doctrine/parity-manifest.yaml` — the canonical,
|
|
5
|
+
* machine-readable enumeration of cohort parity dimensions the `totem doctor
|
|
6
|
+
* --parity` sensor checks for drift. This module is the SKELETON foundation:
|
|
7
|
+
* it resolves the consumer-configured config-path to the manifest, parses +
|
|
8
|
+
* Zod-validates the manifest at the system boundary, and maps the YAML
|
|
9
|
+
* kebab-case keys to camelCase type fields. Per-contract drift detection
|
|
10
|
+
* (per-dimension semantics against populated deps contracts) is OUT OF SCOPE
|
|
11
|
+
* for this skeleton and lives in a follow-on.
|
|
12
|
+
*
|
|
13
|
+
* Design invariants:
|
|
14
|
+
* - **Honest-absent (Tenet 14):** absence is never an error. Unconfigured →
|
|
15
|
+
* a `not-configured` signal; configured-but-missing → a distinct
|
|
16
|
+
* `not-found` signal. The resolver and parser NEVER throw for absence.
|
|
17
|
+
* - **Zod at the boundary only:** the manifest is untrusted on-disk input;
|
|
18
|
+
* Zod validates it once at the parse boundary, then callers work with
|
|
19
|
+
* typed values.
|
|
20
|
+
* - **schema-version gate:** the supported schema version is `1`. An
|
|
21
|
+
* unsupported version does NOT parse contracts — the parser returns an
|
|
22
|
+
* `unsupported-schema` signal so the doctor can refuse an incompatible
|
|
23
|
+
* future shape (per the manifest's own header contract).
|
|
24
|
+
* - **Pure:** no caching, no logging, no process state. Each call reads from
|
|
25
|
+
* scratch.
|
|
26
|
+
*/
|
|
27
|
+
import * as fs from 'node:fs';
|
|
28
|
+
import * as path from 'node:path';
|
|
29
|
+
import { parse as parseYaml } from 'yaml';
|
|
30
|
+
import { z } from 'zod';
|
|
31
|
+
// ─── Constants ──────────────────────────────────────────
|
|
32
|
+
/**
|
|
33
|
+
* The single parity-manifest schema version this doctor build understands.
|
|
34
|
+
* The manifest carries `schema-version: 1` as top-level lifecycle DATA so the
|
|
35
|
+
* doctor can refuse to parse an incompatible future shape rather than
|
|
36
|
+
* silently misread it. Bump in lockstep with a schema migration.
|
|
37
|
+
*/
|
|
38
|
+
export const SUPPORTED_PARITY_SCHEMA_VERSION = 1;
|
|
39
|
+
// ─── Tractability claim-class ───────────────────────────
|
|
40
|
+
/**
|
|
41
|
+
* Tractability bounds what the doctor may assert about a contract (the
|
|
42
|
+
* honest-absent rule):
|
|
43
|
+
* - `mechanical` file-content / structural equality; doctor may
|
|
44
|
+
* pass/warn/fail.
|
|
45
|
+
* - `version-pinned` consumer pins a canonical version/SHA; doctor checks
|
|
46
|
+
* pin currency only, never semantic content.
|
|
47
|
+
* - `manual-attestation` genuinely semantic, no mechanical sensor; doctor
|
|
48
|
+
* surfaces staleness only, NEVER fails.
|
|
49
|
+
*/
|
|
50
|
+
export const ParityTractabilitySchema = z.enum([
|
|
51
|
+
'mechanical',
|
|
52
|
+
'version-pinned',
|
|
53
|
+
'manual-attestation',
|
|
54
|
+
]);
|
|
55
|
+
// ─── Contract + manifest types ──────────────────────────
|
|
56
|
+
/**
|
|
57
|
+
* Internal Zod schema for one raw manifest contract entry, keyed by the YAML
|
|
58
|
+
* kebab-case field names. Mapped to the camelCase `ParityContract` after
|
|
59
|
+
* validation. `.passthrough()` is intentionally NOT used — unknown keys are
|
|
60
|
+
* dropped rather than carried, keeping the parsed shape bounded.
|
|
61
|
+
*
|
|
62
|
+
* `canonical-source` is `string | null` (null = no external canonical source);
|
|
63
|
+
* it is the ONLY ref the resolver will ever touch. `source-note` is a
|
|
64
|
+
* human-only context field and is NEVER parsed as a ref (per the schema
|
|
65
|
+
* refinement in the manifest header).
|
|
66
|
+
*/
|
|
67
|
+
const RawParityContractSchema = z.object({
|
|
68
|
+
id: z.string(),
|
|
69
|
+
dimension: z.string(),
|
|
70
|
+
'canonical-source': z.string().nullable(),
|
|
71
|
+
'source-note': z.string().optional(),
|
|
72
|
+
'detection-method': z.string(),
|
|
73
|
+
'expected-value-or-derivation': z.string(),
|
|
74
|
+
tractability: ParityTractabilitySchema,
|
|
75
|
+
'tracking-issue': z.string(),
|
|
76
|
+
// Optional schema-against fields raised by totem-claude per the manifest
|
|
77
|
+
// header (raised AGAINST the schema rather than diverging silently).
|
|
78
|
+
title: z.string().optional(),
|
|
79
|
+
blocking: z.boolean().optional(),
|
|
80
|
+
consumers: z.array(z.string()).optional(),
|
|
81
|
+
// Explicit package identifier (mmnto-ai/totem-strategy#517) — the machine-
|
|
82
|
+
// parseable name for version/vendor contracts, so the detector derives the
|
|
83
|
+
// package rather than guessing it from the id convention.
|
|
84
|
+
package: z.string().optional(),
|
|
85
|
+
});
|
|
86
|
+
/**
|
|
87
|
+
* Internal Zod schema for the top-level manifest document. `schema-version`
|
|
88
|
+
* and `status` are lifecycle DATA the doctor reads before trusting the
|
|
89
|
+
* contracts array.
|
|
90
|
+
*/
|
|
91
|
+
const RawParityManifestSchema = z.object({
|
|
92
|
+
'schema-version': z.number(),
|
|
93
|
+
status: z.string(),
|
|
94
|
+
contracts: z.array(RawParityContractSchema),
|
|
95
|
+
});
|
|
96
|
+
/**
|
|
97
|
+
* Resolve the configured `orient.parityManifest` config-path to an absolute
|
|
98
|
+
* manifest path. Relative values anchor at `root` (the config/repo root);
|
|
99
|
+
* absolute values are normalized as-is. Mirrors `resolveStrategyRoot`'s
|
|
100
|
+
* relative-anchoring behavior so a deep cwd doesn't mis-anchor the value.
|
|
101
|
+
*
|
|
102
|
+
* @param configValue The raw `orient.parityManifest` config string (or undefined).
|
|
103
|
+
* @param root The config/repo root to anchor relative values against.
|
|
104
|
+
*/
|
|
105
|
+
export function resolveParityManifestPath(configValue, root) {
|
|
106
|
+
// Honest-absent: unset (or whitespace-only) → not configured, not an error.
|
|
107
|
+
if (typeof configValue !== 'string' || configValue.trim().length === 0) {
|
|
108
|
+
return { status: 'not-configured' };
|
|
109
|
+
}
|
|
110
|
+
const trimmed = configValue.trim();
|
|
111
|
+
// path.resolve (not join) so a relative `root` still yields an ABSOLUTE path —
|
|
112
|
+
// the not-found / resolved branches document `path` as absolute.
|
|
113
|
+
const absolute = path.isAbsolute(trimmed) ? path.normalize(trimmed) : path.resolve(root, trimmed);
|
|
114
|
+
if (!fileExists(absolute)) {
|
|
115
|
+
return { status: 'not-found', path: absolute };
|
|
116
|
+
}
|
|
117
|
+
return { status: 'resolved', path: absolute };
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* `fs.statSync` raises on missing paths and on EACCES/ENOTDIR; treat any stat
|
|
121
|
+
* failure (or a non-file) as "not present" so the resolver returns the
|
|
122
|
+
* `not-found` signal rather than throwing.
|
|
123
|
+
*/
|
|
124
|
+
function fileExists(p) {
|
|
125
|
+
try {
|
|
126
|
+
return fs.statSync(p).isFile();
|
|
127
|
+
// totem-context: intentional fall-through — a stat failure (ENOENT/EACCES/ENOTDIR) is the honest-absent "not found" signal the resolver returns as data; rethrowing would force every caller to wrap a routine absence in try/catch.
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Parse raw YAML manifest text into a validated `ParityManifest`.
|
|
135
|
+
*
|
|
136
|
+
* Order of operations matters: the `schema-version` gate runs BEFORE the full
|
|
137
|
+
* contract validation so an unsupported future shape is rejected with a clear
|
|
138
|
+
* `unsupported-schema` signal rather than a confusing Zod failure against a
|
|
139
|
+
* v1-shaped schema. Within v1, contracts are Zod-validated and the kebab-case
|
|
140
|
+
* YAML keys are mapped to the camelCase `ParityContract` fields.
|
|
141
|
+
*/
|
|
142
|
+
export function parseParityManifest(yamlText) {
|
|
143
|
+
// ── YAML parse ──
|
|
144
|
+
let doc;
|
|
145
|
+
try {
|
|
146
|
+
doc = parseYaml(yamlText);
|
|
147
|
+
// totem-context: invalid YAML is returned as an `unparseable` signal (sensor degrades to warn), not rethrown — the doctor pipeline must not crash on a malformed strategy-owned manifest.
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
151
|
+
return { status: 'unparseable', reason: `Invalid YAML: ${reason}` };
|
|
152
|
+
}
|
|
153
|
+
// ── schema-version gate (BEFORE full validation) ──
|
|
154
|
+
// Probe `schema-version` with a minimal Zod schema (NOT a type assertion) so
|
|
155
|
+
// an unsupported version short-circuits before the v1-shaped contract schema
|
|
156
|
+
// rejects an incompatible future shape with a misleading error. A non-mapping
|
|
157
|
+
// doc or a missing / non-numeric version fails the probe → unparseable.
|
|
158
|
+
const versionProbe = z.object({ 'schema-version': z.number() }).safeParse(doc);
|
|
159
|
+
if (!versionProbe.success) {
|
|
160
|
+
return {
|
|
161
|
+
status: 'unparseable',
|
|
162
|
+
reason: 'Manifest is not a mapping with a numeric `schema-version`',
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
const rawVersion = versionProbe.data['schema-version'];
|
|
166
|
+
if (rawVersion !== SUPPORTED_PARITY_SCHEMA_VERSION) {
|
|
167
|
+
return { status: 'unsupported-schema', schemaVersion: rawVersion };
|
|
168
|
+
}
|
|
169
|
+
// ── Full Zod validation of the v1 shape ──
|
|
170
|
+
const parsed = RawParityManifestSchema.safeParse(doc);
|
|
171
|
+
if (!parsed.success) {
|
|
172
|
+
return {
|
|
173
|
+
status: 'unparseable',
|
|
174
|
+
reason: `Manifest failed schema validation: ${parsed.error.issues
|
|
175
|
+
.map((i) => `${i.path.join('.') || '(root)'}: ${i.message}`)
|
|
176
|
+
.join('; ')}`,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// ── Map kebab-case → camelCase ──
|
|
180
|
+
const manifest = {
|
|
181
|
+
schemaVersion: parsed.data['schema-version'],
|
|
182
|
+
status: parsed.data.status,
|
|
183
|
+
contracts: parsed.data.contracts.map(mapContract),
|
|
184
|
+
};
|
|
185
|
+
return { status: 'ok', manifest };
|
|
186
|
+
}
|
|
187
|
+
/** Map one validated raw contract to the camelCase public `ParityContract`. */
|
|
188
|
+
function mapContract(raw) {
|
|
189
|
+
return {
|
|
190
|
+
id: raw.id,
|
|
191
|
+
dimension: raw.dimension,
|
|
192
|
+
canonicalSource: raw['canonical-source'],
|
|
193
|
+
...(raw['source-note'] !== undefined ? { sourceNote: raw['source-note'] } : {}),
|
|
194
|
+
detectionMethod: raw['detection-method'],
|
|
195
|
+
expectedValueOrDerivation: raw['expected-value-or-derivation'],
|
|
196
|
+
tractability: raw.tractability,
|
|
197
|
+
trackingIssue: raw['tracking-issue'],
|
|
198
|
+
...(raw.title !== undefined ? { title: raw.title } : {}),
|
|
199
|
+
...(raw.blocking !== undefined ? { blocking: raw.blocking } : {}),
|
|
200
|
+
...(raw.consumers !== undefined ? { consumers: raw.consumers } : {}),
|
|
201
|
+
...(raw.package !== undefined ? { package: raw.package } : {}),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
export function loadParityManifest(configValue, root) {
|
|
205
|
+
const resolved = resolveParityManifestPath(configValue, root);
|
|
206
|
+
if (resolved.status === 'not-configured')
|
|
207
|
+
return { status: 'not-configured' };
|
|
208
|
+
if (resolved.status === 'not-found') {
|
|
209
|
+
return { status: 'not-found', path: resolved.path };
|
|
210
|
+
}
|
|
211
|
+
let text;
|
|
212
|
+
try {
|
|
213
|
+
text = fs.readFileSync(resolved.path, 'utf-8');
|
|
214
|
+
// totem-context: a read failure on a path that existSync'd a moment ago (race / permission flip) degrades to an `unparseable` warn, not a throw — the sensor must never crash the doctor pipeline.
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
218
|
+
return { status: 'unparseable', reason: `Unreadable: ${reason}`, path: resolved.path };
|
|
219
|
+
}
|
|
220
|
+
const result = parseParityManifest(text);
|
|
221
|
+
if (result.status === 'ok') {
|
|
222
|
+
return { status: 'ok', manifest: result.manifest, path: resolved.path };
|
|
223
|
+
}
|
|
224
|
+
if (result.status === 'unsupported-schema') {
|
|
225
|
+
return {
|
|
226
|
+
status: 'unsupported-schema',
|
|
227
|
+
schemaVersion: result.schemaVersion,
|
|
228
|
+
path: resolved.path,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
return { status: 'unparseable', reason: result.reason, path: resolved.path };
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=parity-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parity-manifest.js","sourceRoot":"","sources":["../src/parity-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for the parity-manifest parser + config-path resolver
|
|
3
|
+
* (mmnto-ai/totem-strategy#448).
|
|
4
|
+
*
|
|
5
|
+
* The resolver is filesystem-driven, so tests construct real temp files. The
|
|
6
|
+
* parser is pure-text and exercised directly. The round-trip fixture is built
|
|
7
|
+
* from the real `doctrine/parity-manifest.yaml` shape — including a
|
|
8
|
+
* `version-pinned` contract, a `null` canonical-source with a `source-note`,
|
|
9
|
+
* and an entry carrying the optional `title`/`blocking`/`consumers` fields.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=parity-manifest.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parity-manifest.test.d.ts","sourceRoot":"","sources":["../src/parity-manifest.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for the parity-manifest parser + config-path resolver
|
|
3
|
+
* (mmnto-ai/totem-strategy#448).
|
|
4
|
+
*
|
|
5
|
+
* The resolver is filesystem-driven, so tests construct real temp files. The
|
|
6
|
+
* parser is pure-text and exercised directly. The round-trip fixture is built
|
|
7
|
+
* from the real `doctrine/parity-manifest.yaml` shape — including a
|
|
8
|
+
* `version-pinned` contract, a `null` canonical-source with a `source-note`,
|
|
9
|
+
* and an entry carrying the optional `title`/`blocking`/`consumers` fields.
|
|
10
|
+
*/
|
|
11
|
+
import * as fs from 'node:fs';
|
|
12
|
+
import * as os from 'node:os';
|
|
13
|
+
import * as path from 'node:path';
|
|
14
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
15
|
+
import { loadParityManifest, parseParityManifest, resolveParityManifestPath, SUPPORTED_PARITY_SCHEMA_VERSION, } from './parity-manifest.js';
|
|
16
|
+
import { cleanTmpDir } from './test-utils.js';
|
|
17
|
+
let tmpRoot;
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
tmpRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-parity-manifest-'));
|
|
20
|
+
});
|
|
21
|
+
afterEach(() => {
|
|
22
|
+
cleanTmpDir(tmpRoot);
|
|
23
|
+
});
|
|
24
|
+
// A fixture mirroring the real parity-manifest.yaml shape: a `mechanical`
|
|
25
|
+
// contract with a repo:path canonical-source, a `version-pinned` contract, a
|
|
26
|
+
// `null` canonical-source + `source-note`, and one entry carrying the optional
|
|
27
|
+
// `title`/`blocking`/`consumers` fields.
|
|
28
|
+
const VALID_MANIFEST_YAML = `schema-version: 1
|
|
29
|
+
status: scaffold
|
|
30
|
+
|
|
31
|
+
contracts:
|
|
32
|
+
- id: session-start-orientation
|
|
33
|
+
dimension: orientation
|
|
34
|
+
canonical-source: mmnto-ai/totem:packages/cli/src/commands/init-templates.ts#SessionStart
|
|
35
|
+
detection-method: SessionStart hook present and invokes \`totem orient --session\`
|
|
36
|
+
expected-value-or-derivation: hook managed-block matches distributed template
|
|
37
|
+
tractability: mechanical
|
|
38
|
+
tracking-issue: mmnto-ai/totem-strategy#438
|
|
39
|
+
|
|
40
|
+
- id: mmnto-cli-version
|
|
41
|
+
dimension: toolchain-version
|
|
42
|
+
canonical-source: mmnto-ai/totem:packages/cli/package.json#version
|
|
43
|
+
detection-method: consumer package.json caret range + resolved install
|
|
44
|
+
expected-value-or-derivation: consumer pin resolves to the current published @mmnto/cli
|
|
45
|
+
tractability: version-pinned
|
|
46
|
+
tracking-issue: mmnto-ai/totem-strategy#482
|
|
47
|
+
|
|
48
|
+
- id: mcp-corpus-indexing
|
|
49
|
+
dimension: knowledge-index
|
|
50
|
+
canonical-source: null
|
|
51
|
+
source-note: consumer-local capability; no external canonical source
|
|
52
|
+
detection-method: .lancedb index present + search responds
|
|
53
|
+
expected-value-or-derivation: index present + fresh + search responsive
|
|
54
|
+
tractability: mechanical
|
|
55
|
+
tracking-issue: mmnto-ai/totem#2018
|
|
56
|
+
|
|
57
|
+
- id: gate-config
|
|
58
|
+
dimension: enforcement
|
|
59
|
+
title: Canonical gate set
|
|
60
|
+
canonical-source: mmnto-ai/totem
|
|
61
|
+
detection-method: installed gates vs the expected canonical gate set
|
|
62
|
+
expected-value-or-derivation: consumer installed gates == canonical gate set
|
|
63
|
+
tractability: mechanical
|
|
64
|
+
tracking-issue: mmnto-ai/totem-strategy#482
|
|
65
|
+
blocking: false
|
|
66
|
+
consumers:
|
|
67
|
+
- mmnto-ai/totem
|
|
68
|
+
- mmnto-ai/totem-strategy
|
|
69
|
+
`;
|
|
70
|
+
// ─── resolveParityManifestPath ──────────────────────────
|
|
71
|
+
describe('resolveParityManifestPath', () => {
|
|
72
|
+
it('returns not-configured when the config value is undefined (honest-absent, no throw)', () => {
|
|
73
|
+
expect(resolveParityManifestPath(undefined, tmpRoot)).toEqual({ status: 'not-configured' });
|
|
74
|
+
});
|
|
75
|
+
it('returns not-configured for a whitespace-only config value', () => {
|
|
76
|
+
expect(resolveParityManifestPath(' ', tmpRoot)).toEqual({ status: 'not-configured' });
|
|
77
|
+
});
|
|
78
|
+
it('returns not-found (distinct signal) when configured path does not exist', () => {
|
|
79
|
+
const result = resolveParityManifestPath('does/not/exist.yaml', tmpRoot);
|
|
80
|
+
expect(result.status).toBe('not-found');
|
|
81
|
+
if (result.status === 'not-found') {
|
|
82
|
+
expect(result.path).toBe(path.normalize(path.join(tmpRoot, 'does/not/exist.yaml')));
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
it('resolves a relative path against the config/repo root', () => {
|
|
86
|
+
const rel = 'doctrine/parity-manifest.yaml';
|
|
87
|
+
const abs = path.join(tmpRoot, rel);
|
|
88
|
+
fs.mkdirSync(path.dirname(abs), { recursive: true });
|
|
89
|
+
fs.writeFileSync(abs, VALID_MANIFEST_YAML, 'utf-8');
|
|
90
|
+
const result = resolveParityManifestPath(rel, tmpRoot);
|
|
91
|
+
expect(result.status).toBe('resolved');
|
|
92
|
+
if (result.status === 'resolved') {
|
|
93
|
+
expect(result.path).toBe(path.normalize(abs));
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
it('honors an absolute path verbatim', () => {
|
|
97
|
+
const abs = path.join(tmpRoot, 'manifest.yaml');
|
|
98
|
+
fs.writeFileSync(abs, VALID_MANIFEST_YAML, 'utf-8');
|
|
99
|
+
const result = resolveParityManifestPath(abs, tmpRoot);
|
|
100
|
+
expect(result.status).toBe('resolved');
|
|
101
|
+
if (result.status === 'resolved') {
|
|
102
|
+
expect(result.path).toBe(path.normalize(abs));
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
it('returns not-found (not resolved) when the path points at a directory', () => {
|
|
106
|
+
const dir = path.join(tmpRoot, 'a-dir');
|
|
107
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
108
|
+
expect(resolveParityManifestPath('a-dir', tmpRoot).status).toBe('not-found');
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
// ─── parseParityManifest ────────────────────────────────
|
|
112
|
+
describe('parseParityManifest', () => {
|
|
113
|
+
it('round-trips the full manifest shape, mapping kebab-case → camelCase', () => {
|
|
114
|
+
const result = parseParityManifest(VALID_MANIFEST_YAML);
|
|
115
|
+
expect(result.status).toBe('ok');
|
|
116
|
+
if (result.status !== 'ok')
|
|
117
|
+
return;
|
|
118
|
+
const { manifest } = result;
|
|
119
|
+
expect(manifest.schemaVersion).toBe(SUPPORTED_PARITY_SCHEMA_VERSION);
|
|
120
|
+
expect(manifest.status).toBe('scaffold');
|
|
121
|
+
expect(manifest.contracts).toHaveLength(4);
|
|
122
|
+
// mechanical contract with a repo:path canonical-source.
|
|
123
|
+
const orientation = manifest.contracts[0];
|
|
124
|
+
expect(orientation.id).toBe('session-start-orientation');
|
|
125
|
+
expect(orientation.dimension).toBe('orientation');
|
|
126
|
+
expect(orientation.canonicalSource).toBe('mmnto-ai/totem:packages/cli/src/commands/init-templates.ts#SessionStart');
|
|
127
|
+
expect(orientation.detectionMethod).toContain('SessionStart hook present');
|
|
128
|
+
expect(orientation.expectedValueOrDerivation).toContain('managed-block');
|
|
129
|
+
expect(orientation.tractability).toBe('mechanical');
|
|
130
|
+
expect(orientation.trackingIssue).toBe('mmnto-ai/totem-strategy#438');
|
|
131
|
+
// version-pinned contract.
|
|
132
|
+
const cliVersion = manifest.contracts[1];
|
|
133
|
+
expect(cliVersion.id).toBe('mmnto-cli-version');
|
|
134
|
+
expect(cliVersion.tractability).toBe('version-pinned');
|
|
135
|
+
// null canonical-source + source-note.
|
|
136
|
+
const corpus = manifest.contracts[2];
|
|
137
|
+
expect(corpus.canonicalSource).toBeNull();
|
|
138
|
+
expect(corpus.sourceNote).toBe('consumer-local capability; no external canonical source');
|
|
139
|
+
// title / blocking / consumers optional fields.
|
|
140
|
+
const gate = manifest.contracts[3];
|
|
141
|
+
expect(gate.title).toBe('Canonical gate set');
|
|
142
|
+
expect(gate.blocking).toBe(false);
|
|
143
|
+
expect(gate.consumers).toEqual(['mmnto-ai/totem', 'mmnto-ai/totem-strategy']);
|
|
144
|
+
});
|
|
145
|
+
it('omits optional fields that are absent (no undefined keys leak through)', () => {
|
|
146
|
+
const result = parseParityManifest(VALID_MANIFEST_YAML);
|
|
147
|
+
expect(result.status).toBe('ok');
|
|
148
|
+
if (result.status !== 'ok')
|
|
149
|
+
return;
|
|
150
|
+
const orientation = result.manifest.contracts[0];
|
|
151
|
+
expect('sourceNote' in orientation).toBe(false);
|
|
152
|
+
expect('title' in orientation).toBe(false);
|
|
153
|
+
expect('blocking' in orientation).toBe(false);
|
|
154
|
+
expect('consumers' in orientation).toBe(false);
|
|
155
|
+
});
|
|
156
|
+
it('returns unparseable on invalid YAML (no throw)', () => {
|
|
157
|
+
const result = parseParityManifest('schema-version: 1\ncontracts: [unclosed');
|
|
158
|
+
expect(result.status).toBe('unparseable');
|
|
159
|
+
});
|
|
160
|
+
it('returns unparseable on a Zod-invalid contract (missing required field)', () => {
|
|
161
|
+
const bad = `schema-version: 1
|
|
162
|
+
status: scaffold
|
|
163
|
+
contracts:
|
|
164
|
+
- id: broken
|
|
165
|
+
dimension: orientation
|
|
166
|
+
canonical-source: null
|
|
167
|
+
detection-method: something
|
|
168
|
+
tractability: mechanical
|
|
169
|
+
`; // missing expected-value-or-derivation + tracking-issue
|
|
170
|
+
const result = parseParityManifest(bad);
|
|
171
|
+
expect(result.status).toBe('unparseable');
|
|
172
|
+
});
|
|
173
|
+
it('returns unparseable on an invalid tractability claim-class', () => {
|
|
174
|
+
const bad = VALID_MANIFEST_YAML.replace('tractability: mechanical', 'tractability: bogus');
|
|
175
|
+
const result = parseParityManifest(bad);
|
|
176
|
+
expect(result.status).toBe('unparseable');
|
|
177
|
+
});
|
|
178
|
+
it('does NOT parse contracts when schema-version is unsupported', () => {
|
|
179
|
+
const future = VALID_MANIFEST_YAML.replace('schema-version: 1', 'schema-version: 2');
|
|
180
|
+
const result = parseParityManifest(future);
|
|
181
|
+
expect(result.status).toBe('unsupported-schema');
|
|
182
|
+
if (result.status === 'unsupported-schema') {
|
|
183
|
+
expect(result.schemaVersion).toBe(2);
|
|
184
|
+
}
|
|
185
|
+
// The discriminated union has no `manifest` on the unsupported branch.
|
|
186
|
+
expect('manifest' in result).toBe(false);
|
|
187
|
+
});
|
|
188
|
+
it('returns unparseable when schema-version is missing entirely', () => {
|
|
189
|
+
const noVersion = VALID_MANIFEST_YAML.replace('schema-version: 1\n', '');
|
|
190
|
+
expect(parseParityManifest(noVersion).status).toBe('unparseable');
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
// ─── loadParityManifest (resolve + read + parse) ────────
|
|
194
|
+
describe('loadParityManifest', () => {
|
|
195
|
+
it('returns not-configured when unset', () => {
|
|
196
|
+
expect(loadParityManifest(undefined, tmpRoot)).toEqual({ status: 'not-configured' });
|
|
197
|
+
});
|
|
198
|
+
it('returns not-found when configured path is missing', () => {
|
|
199
|
+
const result = loadParityManifest('missing.yaml', tmpRoot);
|
|
200
|
+
expect(result.status).toBe('not-found');
|
|
201
|
+
});
|
|
202
|
+
it('loads + parses a valid manifest end-to-end', () => {
|
|
203
|
+
const rel = 'parity-manifest.yaml';
|
|
204
|
+
fs.writeFileSync(path.join(tmpRoot, rel), VALID_MANIFEST_YAML, 'utf-8');
|
|
205
|
+
const result = loadParityManifest(rel, tmpRoot);
|
|
206
|
+
expect(result.status).toBe('ok');
|
|
207
|
+
if (result.status === 'ok') {
|
|
208
|
+
expect(result.manifest.contracts).toHaveLength(4);
|
|
209
|
+
expect(result.path).toBe(path.normalize(path.join(tmpRoot, rel)));
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
it('surfaces unsupported-schema with the offending version + path', () => {
|
|
213
|
+
const rel = 'parity-manifest.yaml';
|
|
214
|
+
fs.writeFileSync(path.join(tmpRoot, rel), VALID_MANIFEST_YAML.replace('schema-version: 1', 'schema-version: 99'), 'utf-8');
|
|
215
|
+
const result = loadParityManifest(rel, tmpRoot);
|
|
216
|
+
expect(result.status).toBe('unsupported-schema');
|
|
217
|
+
if (result.status === 'unsupported-schema') {
|
|
218
|
+
expect(result.schemaVersion).toBe(99);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
it('degrades unparseable YAML to a warn-class signal (never throws)', () => {
|
|
222
|
+
const rel = 'parity-manifest.yaml';
|
|
223
|
+
fs.writeFileSync(path.join(tmpRoot, rel), 'schema-version: 1\ncontracts: [oops', 'utf-8');
|
|
224
|
+
const result = loadParityManifest(rel, tmpRoot);
|
|
225
|
+
expect(result.status).toBe('unparseable');
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
//# sourceMappingURL=parity-manifest.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parity-manifest.test.js","sourceRoot":"","sources":["../src/parity-manifest.test.ts"],"names":[],"mappings":"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"}
|
package/dist/sys/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/sys/git.ts"],"names":[],"mappings":"AAgCA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgCpD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/sys/git.ts"],"names":[],"mappings":"AAgCA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgCpD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAmCnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA4BlE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYvD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,MAAM,CAanF;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmBlE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CA2BzF;AAED;;;;;;;GAOG;AACH;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY7D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBzD;AAiBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAe7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB1D;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA8C7D"}
|
package/dist/sys/git.js
CHANGED
|
@@ -100,8 +100,17 @@ export function getDefaultBranch(cwd) {
|
|
|
100
100
|
}
|
|
101
101
|
export function getGitBranchDiff(cwd, base) {
|
|
102
102
|
const baseBranch = base ?? getDefaultBranch(cwd);
|
|
103
|
-
//
|
|
104
|
-
|
|
103
|
+
// Prefer the remote-tracking ref over the local branch (mmnto-ai/totem#2054).
|
|
104
|
+
// On a feature-branch workflow the local <base> is never checked out → stale,
|
|
105
|
+
// so `<base>...HEAD` re-includes already-merged code as "new" (false-CRITICALs
|
|
106
|
+
// in review/lint). `origin/<base>` is the current merged base and is a local
|
|
107
|
+
// ref (no network); three-dot `...HEAD` resolves merge-base = the true fork
|
|
108
|
+
// point. Falls back to local <base> when origin is absent (offline / no-remote).
|
|
109
|
+
// This audit (mmnto-ai/totem#2054) supersedes lesson-8d9946e1's "local before remote" default.
|
|
110
|
+
// Normalize off any `origin/` prefix first so an already-remote-prefixed base
|
|
111
|
+
// can't become `origin/origin/<base>` — an invalid ref + wasted spawn (mmnto-ai/totem#2074).
|
|
112
|
+
const localRef = baseBranch.replace(/^origin\//, '');
|
|
113
|
+
const refs = [`origin/${localRef}`, localRef];
|
|
105
114
|
for (const ref of refs) {
|
|
106
115
|
try {
|
|
107
116
|
return safeExec('git', ['diff', `${ref}...HEAD`], {
|
|
@@ -115,7 +124,7 @@ export function getGitBranchDiff(cwd, base) {
|
|
|
115
124
|
// If this was the last ref, throw
|
|
116
125
|
if (ref === refs[refs.length - 1]) {
|
|
117
126
|
const msg = err instanceof Error ? err.message : String(err);
|
|
118
|
-
throw new TotemGitError(`Failed to get branch diff (${
|
|
127
|
+
throw new TotemGitError(`Failed to get branch diff (${localRef}...HEAD): ${msg}`, `Ensure the base branch '${localRef}' exists locally or as a remote ref. Try 'git fetch origin ${localRef}'.`, err);
|
|
119
128
|
}
|
|
120
129
|
}
|
|
121
130
|
}
|
package/dist/sys/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/sys/git.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/sys/git.ts"],"names":[],"mappings":"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"}
|