@mmnto/totem 1.27.0 → 1.28.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/compile-manifest.d.ts +2 -2
- package/dist/config-schema.d.ts +12 -12
- 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 +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/pack-discovery.d.ts +26 -0
- package/dist/pack-discovery.d.ts.map +1 -1
- package/dist/pack-discovery.js +22 -1
- package/dist/pack-discovery.js.map +1 -1
- package/dist/pack-manifest-writer.d.ts +5 -0
- package/dist/pack-manifest-writer.d.ts.map +1 -1
- package/dist/pack-manifest-writer.js +12 -1
- package/dist/pack-manifest-writer.js.map +1 -1
- package/dist/pack-manifest-writer.test.js +41 -0
- package/dist/pack-manifest-writer.test.js.map +1 -1
- package/dist/rule-engine.d.ts.map +1 -1
- package/dist/rule-engine.js +17 -0
- package/dist/rule-engine.js.map +1 -1
- package/dist/rule-engine.test.js +101 -1
- package/dist/rule-engine.test.js.map +1 -1
- package/dist/stale-manifest.d.ts +72 -0
- package/dist/stale-manifest.d.ts.map +1 -0
- package/dist/stale-manifest.js +119 -0
- package/dist/stale-manifest.js.map +1 -0
- package/dist/stale-manifest.test.d.ts +15 -0
- package/dist/stale-manifest.test.d.ts.map +1 -0
- package/dist/stale-manifest.test.js +164 -0
- package/dist/stale-manifest.test.js.map +1 -0
- package/dist/store/lance-schema.d.ts +2 -2
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for `detectStaleManifest` + `staleManifestError`
|
|
3
|
+
* (mmnto-ai/totem#1811, ADR-101).
|
|
4
|
+
*
|
|
5
|
+
* Two parallel paths drive the design:
|
|
6
|
+
* - Tree-sitter miss + cohort matches (semver-minor) → null detection,
|
|
7
|
+
* caller falls through to the original `TotemParseError`.
|
|
8
|
+
* - Tree-sitter miss + cohort missing/mismatched → detection object,
|
|
9
|
+
* caller surfaces a structured `STALE_MANIFEST` nudge.
|
|
10
|
+
*
|
|
11
|
+
* Both paths use a stubbed engine version + manifest reader so the
|
|
12
|
+
* test does not depend on the real package.json or filesystem.
|
|
13
|
+
*/
|
|
14
|
+
import { describe, expect, it } from 'vitest';
|
|
15
|
+
import { detectStaleManifest, staleManifestError } from './stale-manifest.js';
|
|
16
|
+
const STUB_ENGINE = '1.27.0';
|
|
17
|
+
const stubResolve = () => STUB_ENGINE;
|
|
18
|
+
function makeReader(manifest) {
|
|
19
|
+
if (manifest === null)
|
|
20
|
+
return () => null;
|
|
21
|
+
if (typeof manifest === 'string')
|
|
22
|
+
return () => manifest;
|
|
23
|
+
return () => JSON.stringify(manifest);
|
|
24
|
+
}
|
|
25
|
+
describe('detectStaleManifest', () => {
|
|
26
|
+
it('returns null when cohort major.minor matches the engine (happy path)', () => {
|
|
27
|
+
const result = detectStaleManifest({
|
|
28
|
+
workingDirectory: '/fake',
|
|
29
|
+
resolveVersion: stubResolve,
|
|
30
|
+
readManifest: makeReader({ version: 1, cohort: '1.27.0', packs: [] }),
|
|
31
|
+
});
|
|
32
|
+
expect(result).toBeNull();
|
|
33
|
+
});
|
|
34
|
+
it('tolerates patch drift (1.27.0 manifest vs 1.27.5 engine)', () => {
|
|
35
|
+
const result = detectStaleManifest({
|
|
36
|
+
workingDirectory: '/fake',
|
|
37
|
+
resolveVersion: () => '1.27.5',
|
|
38
|
+
readManifest: makeReader({ version: 1, cohort: '1.27.0', packs: [] }),
|
|
39
|
+
});
|
|
40
|
+
expect(result).toBeNull();
|
|
41
|
+
});
|
|
42
|
+
it('flags minor bump (1.26.x → 1.27.x)', () => {
|
|
43
|
+
const result = detectStaleManifest({
|
|
44
|
+
workingDirectory: '/fake',
|
|
45
|
+
resolveVersion: stubResolve,
|
|
46
|
+
readManifest: makeReader({ version: 1, cohort: '1.26.5', packs: [] }),
|
|
47
|
+
});
|
|
48
|
+
expect(result).toEqual({
|
|
49
|
+
reason: 'cohort-mismatch',
|
|
50
|
+
manifestCohort: '1.26.5',
|
|
51
|
+
engineVersion: STUB_ENGINE,
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
it('flags major bump (1.x → 2.x)', () => {
|
|
55
|
+
const result = detectStaleManifest({
|
|
56
|
+
workingDirectory: '/fake',
|
|
57
|
+
resolveVersion: () => '2.0.0',
|
|
58
|
+
readManifest: makeReader({ version: 1, cohort: '1.27.0', packs: [] }),
|
|
59
|
+
});
|
|
60
|
+
expect(result).toEqual({
|
|
61
|
+
reason: 'cohort-mismatch',
|
|
62
|
+
manifestCohort: '1.27.0',
|
|
63
|
+
engineVersion: '2.0.0',
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
it('flags missing manifest (ENOENT path)', () => {
|
|
67
|
+
const result = detectStaleManifest({
|
|
68
|
+
workingDirectory: '/fake',
|
|
69
|
+
resolveVersion: stubResolve,
|
|
70
|
+
readManifest: makeReader(null),
|
|
71
|
+
});
|
|
72
|
+
expect(result).toEqual({ reason: 'no-manifest', engineVersion: STUB_ENGINE });
|
|
73
|
+
});
|
|
74
|
+
it('flags pre-1.27.0 manifest without cohort field', () => {
|
|
75
|
+
const result = detectStaleManifest({
|
|
76
|
+
workingDirectory: '/fake',
|
|
77
|
+
resolveVersion: stubResolve,
|
|
78
|
+
readManifest: makeReader({ version: 1, packs: [] }),
|
|
79
|
+
});
|
|
80
|
+
expect(result).toEqual({ reason: 'no-cohort', engineVersion: STUB_ENGINE });
|
|
81
|
+
});
|
|
82
|
+
it('flags malformed cohort (not semver) as no-cohort with the malformed value preserved', () => {
|
|
83
|
+
const result = detectStaleManifest({
|
|
84
|
+
workingDirectory: '/fake',
|
|
85
|
+
resolveVersion: stubResolve,
|
|
86
|
+
readManifest: makeReader({ version: 1, cohort: 'not-a-semver', packs: [] }),
|
|
87
|
+
});
|
|
88
|
+
expect(result).toEqual({
|
|
89
|
+
reason: 'no-cohort',
|
|
90
|
+
manifestCohort: 'not-a-semver',
|
|
91
|
+
engineVersion: STUB_ENGINE,
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
it('treats unparseable JSON as no-manifest (defensive fallback)', () => {
|
|
95
|
+
const result = detectStaleManifest({
|
|
96
|
+
workingDirectory: '/fake',
|
|
97
|
+
resolveVersion: stubResolve,
|
|
98
|
+
readManifest: () => '{ not valid json',
|
|
99
|
+
});
|
|
100
|
+
expect(result).toEqual({ reason: 'no-manifest', engineVersion: STUB_ENGINE });
|
|
101
|
+
});
|
|
102
|
+
it('treats schema-invalid manifest as no-manifest (defensive fallback)', () => {
|
|
103
|
+
// Wrong type for `version` → fails schema, treated as missing.
|
|
104
|
+
const result = detectStaleManifest({
|
|
105
|
+
workingDirectory: '/fake',
|
|
106
|
+
resolveVersion: stubResolve,
|
|
107
|
+
readManifest: makeReader({ version: '1', packs: [] }),
|
|
108
|
+
});
|
|
109
|
+
expect(result).toEqual({ reason: 'no-manifest', engineVersion: STUB_ENGINE });
|
|
110
|
+
});
|
|
111
|
+
it('returns null when engineVersion is not semver-valid (defensive fallback; mmnto-ai/totem#1829)', () => {
|
|
112
|
+
// Defensive against a malformed `@mmnto/totem` package.json that
|
|
113
|
+
// somehow escapes `resolveEngineVersion`'s sentinel fallback.
|
|
114
|
+
// Without this guard, `semver.major(engineVersion)` would throw
|
|
115
|
+
// when the cohort comparison ran. Caller falls through to the
|
|
116
|
+
// original TotemParseError unmasked. Source-level validation in
|
|
117
|
+
// resolveEngineVersion is tracked as mmnto-ai/totem#1829.
|
|
118
|
+
const result = detectStaleManifest({
|
|
119
|
+
workingDirectory: '/fake',
|
|
120
|
+
resolveVersion: () => 'not-a-semver',
|
|
121
|
+
readManifest: makeReader({ version: 1, cohort: '1.26.0', packs: [] }),
|
|
122
|
+
});
|
|
123
|
+
expect(result).toBeNull();
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
describe('staleManifestError', () => {
|
|
127
|
+
it('wraps every detection class in a STALE_MANIFEST TotemError pointing at --packs-only', () => {
|
|
128
|
+
const detection = {
|
|
129
|
+
reason: 'cohort-mismatch',
|
|
130
|
+
manifestCohort: '1.26.0',
|
|
131
|
+
engineVersion: '1.27.0',
|
|
132
|
+
};
|
|
133
|
+
const err = staleManifestError(detection, {
|
|
134
|
+
file: 'src/main.rs',
|
|
135
|
+
extension: '.rs',
|
|
136
|
+
ruleHash: 'abc123',
|
|
137
|
+
});
|
|
138
|
+
expect(err.code).toBe('STALE_MANIFEST');
|
|
139
|
+
expect(err.message).toMatch(/1\.26\.0/);
|
|
140
|
+
expect(err.message).toMatch(/1\.27\.0/);
|
|
141
|
+
expect(err.message).toMatch(/main\.rs/);
|
|
142
|
+
expect(err.recoveryHint).toMatch(/--packs-only/);
|
|
143
|
+
});
|
|
144
|
+
it('reports no-manifest cleanly when cohort is absent from the message', () => {
|
|
145
|
+
const detection = { reason: 'no-manifest', engineVersion: '1.27.0' };
|
|
146
|
+
const err = staleManifestError(detection, {
|
|
147
|
+
file: 'lib.rs',
|
|
148
|
+
extension: '.rs',
|
|
149
|
+
ruleHash: 'def456',
|
|
150
|
+
});
|
|
151
|
+
expect(err.message).toMatch(/missing or unreadable/);
|
|
152
|
+
expect(err.message).toMatch(/def456/);
|
|
153
|
+
});
|
|
154
|
+
it('reports no-cohort with the pre-1.27.0 framing', () => {
|
|
155
|
+
const detection = { reason: 'no-cohort', engineVersion: '1.27.0' };
|
|
156
|
+
const err = staleManifestError(detection, {
|
|
157
|
+
file: 'a.rs',
|
|
158
|
+
extension: '.rs',
|
|
159
|
+
ruleHash: 'xyz789',
|
|
160
|
+
});
|
|
161
|
+
expect(err.message).toMatch(/pre-1\.27\.0/);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
//# sourceMappingURL=stale-manifest.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stale-manifest.test.js","sourceRoot":"","sources":["../src/stale-manifest.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,10 +16,10 @@ export declare const StoredChunkSchema: z.ZodObject<{
|
|
|
16
16
|
metadata: z.ZodString;
|
|
17
17
|
}, "strip", z.ZodTypeAny, {
|
|
18
18
|
type: "code" | "session_log" | "spec" | "lesson";
|
|
19
|
-
filePath: string;
|
|
20
19
|
strategy: string;
|
|
21
20
|
content: string;
|
|
22
21
|
contextPrefix: string;
|
|
22
|
+
filePath: string;
|
|
23
23
|
label: string;
|
|
24
24
|
startLine: number;
|
|
25
25
|
endLine: number;
|
|
@@ -27,10 +27,10 @@ export declare const StoredChunkSchema: z.ZodObject<{
|
|
|
27
27
|
metadata: string;
|
|
28
28
|
}, {
|
|
29
29
|
type: "code" | "session_log" | "spec" | "lesson";
|
|
30
|
-
filePath: string;
|
|
31
30
|
strategy: string;
|
|
32
31
|
content: string;
|
|
33
32
|
contextPrefix: string;
|
|
33
|
+
filePath: string;
|
|
34
34
|
label: string;
|
|
35
35
|
startLine: number;
|
|
36
36
|
endLine: number;
|
package/dist/types.d.ts
CHANGED
|
@@ -161,7 +161,7 @@ export declare const LessonFrontmatterSchema: z.ZodObject<{
|
|
|
161
161
|
}, {
|
|
162
162
|
globs?: string[] | undefined;
|
|
163
163
|
}>>;
|
|
164
|
-
appliesTo: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodEnum<["mutator", "boundary", "aggregator", "hot-path", "boundary-test", "infrastructure", "presentation", "any"]>, "many">, ("
|
|
164
|
+
appliesTo: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodEnum<["mutator", "boundary", "aggregator", "hot-path", "boundary-test", "infrastructure", "presentation", "any"]>, "many">, ("mutator" | "boundary" | "aggregator" | "hot-path" | "boundary-test" | "infrastructure" | "presentation" | "any")[], unknown>>;
|
|
165
165
|
ecosystem: z.ZodOptional<z.ZodObject<{
|
|
166
166
|
frameworks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
167
167
|
version: z.ZodOptional<z.ZodString>;
|
|
@@ -188,7 +188,7 @@ export declare const LessonFrontmatterSchema: z.ZodObject<{
|
|
|
188
188
|
type: "trap";
|
|
189
189
|
severity: "error" | "warning";
|
|
190
190
|
tags: string[];
|
|
191
|
-
appliesTo: ("
|
|
191
|
+
appliesTo: ("mutator" | "boundary" | "aggregator" | "hot-path" | "boundary-test" | "infrastructure" | "presentation" | "any")[];
|
|
192
192
|
lifecycle: "nursery" | "stable" | "deprecated";
|
|
193
193
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
194
194
|
scope?: {
|