@mmnto/totem 1.114.0 → 1.115.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.
Files changed (46) hide show
  1. package/dist/errors.d.ts +5 -1
  2. package/dist/errors.d.ts.map +1 -1
  3. package/dist/errors.js.map +1 -1
  4. package/dist/fs-atomic.d.ts +63 -0
  5. package/dist/fs-atomic.d.ts.map +1 -0
  6. package/dist/fs-atomic.js +114 -0
  7. package/dist/fs-atomic.js.map +1 -0
  8. package/dist/fs-atomic.test.d.ts +2 -0
  9. package/dist/fs-atomic.test.d.ts.map +1 -0
  10. package/dist/fs-atomic.test.js +162 -0
  11. package/dist/fs-atomic.test.js.map +1 -0
  12. package/dist/index.d.ts +6 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +7 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/ingest/pipeline.d.ts.map +1 -1
  17. package/dist/ingest/pipeline.js +5 -5
  18. package/dist/ingest/pipeline.js.map +1 -1
  19. package/dist/orchestration-resolver.d.ts +19 -0
  20. package/dist/orchestration-resolver.d.ts.map +1 -1
  21. package/dist/orchestration-resolver.js +5 -1
  22. package/dist/orchestration-resolver.js.map +1 -1
  23. package/dist/seat-lifecycle.d.ts +118 -0
  24. package/dist/seat-lifecycle.d.ts.map +1 -0
  25. package/dist/seat-lifecycle.js +197 -0
  26. package/dist/seat-lifecycle.js.map +1 -0
  27. package/dist/seat-lifecycle.test.d.ts +11 -0
  28. package/dist/seat-lifecycle.test.d.ts.map +1 -0
  29. package/dist/seat-lifecycle.test.js +210 -0
  30. package/dist/seat-lifecycle.test.js.map +1 -0
  31. package/dist/selection-manifest.d.ts +416 -0
  32. package/dist/selection-manifest.d.ts.map +1 -0
  33. package/dist/selection-manifest.js +444 -0
  34. package/dist/selection-manifest.js.map +1 -0
  35. package/dist/selection-manifest.test.d.ts +26 -0
  36. package/dist/selection-manifest.test.d.ts.map +1 -0
  37. package/dist/selection-manifest.test.js +331 -0
  38. package/dist/selection-manifest.test.js.map +1 -0
  39. package/dist/spine/ledgers.d.ts +12 -12
  40. package/dist/verification-outcomes.d.ts.map +1 -1
  41. package/dist/verification-outcomes.js +6 -12
  42. package/dist/verification-outcomes.js.map +1 -1
  43. package/dist/worktree-registry.d.ts.map +1 -1
  44. package/dist/worktree-registry.js +4 -4
  45. package/dist/worktree-registry.js.map +1 -1
  46. package/package.json +15 -11
@@ -0,0 +1,331 @@
1
+ /**
2
+ * Writer + schema tests for the selection-manifest instrument
3
+ * (mmnto-ai/totem#2468 — the Prop 308 / strategy#467 M1 emitter substrate).
4
+ *
5
+ * The invariants under test come verbatim from the design doc
6
+ * (.totem/specs/2468-selection-manifests.md):
7
+ *
8
+ * - the schema is strict at BOTH levels — the structural refute-condition
9
+ * guard (Prop 308 F1: no shared score field can appear silently);
10
+ * - a fingerprint covers exactly the considered bytes: stable on identical
11
+ * content, changed on changed content, ABSENT (with a named warning) on
12
+ * hash failure — never fabricated;
13
+ * - attribution is stamped absence: no env/seat/session → fields absent,
14
+ * never guessed;
15
+ * - emission is a pure sensor: a failed append leaves the caller unbroken
16
+ * and the failure named on the accounting channel; a schema-invalid row
17
+ * THROWS from the writer (emitter programming error) and is converted to
18
+ * a warning by the sense wrapper;
19
+ * - a `.totem`-less cwd is a silent normal-state skip that materialises no
20
+ * directory.
21
+ *
22
+ * The EACCES induced-failure uses vi.spyOn on `node:fs` (accounting-branch
23
+ * coverage, same scoping rationale as qbd/record.test.ts documents).
24
+ */
25
+ import * as os from 'node:os';
26
+ import * as path from 'node:path';
27
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
28
+ // Mock node:fs so spyOn works in ESM — same pattern as qbd/record.test.ts.
29
+ vi.mock('node:fs', async () => {
30
+ const actual = await vi.importActual('node:fs');
31
+ return { ...actual, default: actual };
32
+ });
33
+ import * as fs from 'node:fs';
34
+ import { TotemError } from './errors.js';
35
+ import { appendSelectionManifest, buildMeasuredCandidate, buildSelectionManifestRow, fingerprintContent, measureCandidateCost, readSelectionManifests, SELECTION_COST_BASIS, SELECTION_MANIFESTS_FILE, SelectionCandidateSchema, SelectionManifestRowSchema, senseSelectionManifest, } from './selection-manifest.js';
36
+ import { cleanTmpDir } from './test-utils.js';
37
+ const T0 = Date.parse('2026-08-10T03:00:00.000Z');
38
+ const SESSION_A = '550e8400-e29b-41d4-a716-446655440000';
39
+ let tmpDir;
40
+ let totemDir;
41
+ function baseCandidate(over = {}) {
42
+ return {
43
+ id: 'docs/example.md',
44
+ disposition: 'selected',
45
+ reason: 'test-policy: selected',
46
+ ...over,
47
+ };
48
+ }
49
+ function baseInput(over = {}) {
50
+ return {
51
+ totemDir,
52
+ emitter: 'search_knowledge',
53
+ context: { query: 'q' },
54
+ universe: 'test-pool',
55
+ candidates: [baseCandidate()],
56
+ nowMs: T0,
57
+ env: {},
58
+ ...over,
59
+ };
60
+ }
61
+ function manifestPath() {
62
+ return path.join(totemDir, 'ledger', SELECTION_MANIFESTS_FILE);
63
+ }
64
+ beforeEach(() => {
65
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'sel-manifest-'));
66
+ totemDir = path.join(tmpDir, '.totem');
67
+ fs.mkdirSync(totemDir, { recursive: true });
68
+ });
69
+ afterEach(() => {
70
+ vi.restoreAllMocks();
71
+ cleanTmpDir(tmpDir);
72
+ });
73
+ // ─── Measurement helpers ────────────────────────────────
74
+ describe('fingerprintContent / measureCandidateCost', () => {
75
+ it('is stable across identical content and changes when content changes', () => {
76
+ expect(fingerprintContent('same bytes')).toBe(fingerprintContent('same bytes'));
77
+ expect(fingerprintContent('same bytes')).not.toBe(fingerprintContent('same bytes!'));
78
+ expect(fingerprintContent('same bytes')).toMatch(/^[0-9a-f]{16}$/);
79
+ });
80
+ it('string and Buffer forms of the same bytes fingerprint identically', () => {
81
+ const s = 'café content';
82
+ expect(fingerprintContent(s)).toBe(fingerprintContent(Buffer.from(s, 'utf-8')));
83
+ });
84
+ it('measures UTF-8 bytes (not chars) and declares tokens as ceil(bytes/4)', () => {
85
+ const s = 'éé'; // 2 chars, 4 UTF-8 bytes
86
+ expect(measureCandidateCost(s)).toEqual({ bytes: 4, approxTokens: 1 });
87
+ expect(measureCandidateCost('12345')).toEqual({ bytes: 5, approxTokens: 2 });
88
+ expect(measureCandidateCost('')).toEqual({ bytes: 0, approxTokens: 0 });
89
+ });
90
+ });
91
+ describe('buildMeasuredCandidate', () => {
92
+ it('measures and fingerprints content the policy actually read', () => {
93
+ const { candidate, warning } = buildMeasuredCandidate({
94
+ id: 'a.md',
95
+ content: 'hello',
96
+ disposition: 'selected',
97
+ reason: 'r',
98
+ });
99
+ expect(warning).toBeUndefined();
100
+ expect(candidate).toMatchObject({
101
+ id: 'a.md',
102
+ bytes: 5,
103
+ approxTokens: 2,
104
+ fingerprint: fingerprintContent('hello'),
105
+ });
106
+ });
107
+ it('is TOTAL over bad content: non-string/non-Buffer degrades to an id-only row + warning, never a throw or a NaN (leg round 1, H-7)', () => {
108
+ for (const bad of [undefined, null, 42, {}]) {
109
+ const { candidate, warning } = buildMeasuredCandidate({
110
+ id: 'bad.md',
111
+ content: bad,
112
+ disposition: 'selected',
113
+ reason: 'r',
114
+ });
115
+ expect(warning).toContain('bad.md');
116
+ expect(candidate.bytes).toBeUndefined();
117
+ expect(candidate.approxTokens).toBeUndefined();
118
+ expect(candidate.fingerprint).toBeUndefined();
119
+ // The degraded row is still schema-valid inside a manifest — the whole
120
+ // point: one malformed hit must not cost the row (H-7's failure shape).
121
+ expect(SelectionCandidateSchema.safeParse(candidate).success).toBe(true);
122
+ }
123
+ });
124
+ });
125
+ // ─── Schema strictness (the refute-condition guard) ─────
126
+ describe('schema strictness', () => {
127
+ it('rejects an unknown top-level field (e.g. a shared score)', () => {
128
+ const row = buildSelectionManifestRow(baseInput());
129
+ const poisoned = { ...row, sharedRelevanceScore: 0.9 };
130
+ expect(SelectionManifestRowSchema.safeParse(poisoned).success).toBe(false);
131
+ });
132
+ it('rejects an unknown per-candidate field', () => {
133
+ const row = buildSelectionManifestRow(baseInput());
134
+ const poisoned = {
135
+ ...row,
136
+ candidates: [{ ...row.candidates[0], commonWeight: 1 }],
137
+ };
138
+ expect(SelectionManifestRowSchema.safeParse(poisoned).success).toBe(false);
139
+ });
140
+ it('rejects a row whose costBasis does not name the ruled aggregation', () => {
141
+ const row = buildSelectionManifestRow(baseInput());
142
+ const poisoned = { ...row, costBasis: { bytes: 'utf8-length', approxTokens: 'measured' } };
143
+ expect(SelectionManifestRowSchema.safeParse(poisoned).success).toBe(false);
144
+ });
145
+ it('rejects a shared score smuggled through CONTEXT — the key space is closed (PR #2625 CR round)', () => {
146
+ const row = buildSelectionManifestRow(baseInput());
147
+ const poisoned = { ...row, context: { ...row.context, sharedRelevanceScore: 0.9 } };
148
+ expect(SelectionManifestRowSchema.safeParse(poisoned).success).toBe(false);
149
+ const weighted = { ...row, context: { ...row.context, commonWeight: 1 } };
150
+ expect(SelectionManifestRowSchema.safeParse(weighted).success).toBe(false);
151
+ });
152
+ it('rejects partial measurement states — the trio travels together (PR #2625 CR round)', () => {
153
+ // bytes without fingerprint
154
+ expect(SelectionCandidateSchema.safeParse(baseCandidate({ bytes: 5, approxTokens: 2 })).success).toBe(false);
155
+ // fingerprint without cost
156
+ expect(SelectionCandidateSchema.safeParse(baseCandidate({ fingerprint: 'c'.repeat(16) })).success).toBe(false);
157
+ });
158
+ it('rejects deliveredBytes outside a truncated row, and a delivery larger than the measurement', () => {
159
+ expect(SelectionCandidateSchema.safeParse(baseCandidate({ disposition: 'excluded', deliveredBytes: 4 })).success).toBe(false);
160
+ expect(SelectionCandidateSchema.safeParse(baseCandidate({
161
+ disposition: 'truncated',
162
+ bytes: 10,
163
+ approxTokens: 3,
164
+ fingerprint: 'd'.repeat(16),
165
+ deliveredBytes: 11,
166
+ })).success).toBe(false);
167
+ });
168
+ it('accepts a fully-populated row round-trip', () => {
169
+ const row = buildSelectionManifestRow(baseInput({
170
+ finalTruncation: { cap: 10_000, totalChars: 12_345, applied: true },
171
+ candidates: [
172
+ baseCandidate({ bytes: 5, approxTokens: 2, fingerprint: 'a'.repeat(16) }),
173
+ baseCandidate({
174
+ id: 'b.md',
175
+ disposition: 'truncated',
176
+ reason: 'display-cap 250 lines',
177
+ bytes: 100,
178
+ approxTokens: 25,
179
+ fingerprint: 'b'.repeat(16),
180
+ deliveredBytes: 40,
181
+ }),
182
+ baseCandidate({ id: 'c.md', disposition: 'excluded', reason: 'recency-policy' }),
183
+ ],
184
+ }));
185
+ const parsed = SelectionManifestRowSchema.safeParse(JSON.parse(JSON.stringify(row)));
186
+ expect(parsed.success).toBe(true);
187
+ });
188
+ });
189
+ // ─── Attribution ────────────────────────────────────────
190
+ describe('attribution', () => {
191
+ it('stamps absence when env and session pointer are absent — never guesses', () => {
192
+ const row = buildSelectionManifestRow(baseInput());
193
+ expect(row.session_id).toBeUndefined();
194
+ expect(row.agent_source).toBeUndefined();
195
+ expect(row.costBasis).toEqual(SELECTION_COST_BASIS);
196
+ expect(row.timestamp).toBe(new Date(T0).toISOString());
197
+ });
198
+ it('stamps seat and session when both are present', () => {
199
+ fs.mkdirSync(path.join(totemDir, 'ledger'), { recursive: true });
200
+ fs.writeFileSync(path.join(totemDir, 'ledger', '.session-id'), SESSION_A, 'utf-8');
201
+ const row = buildSelectionManifestRow(baseInput({ env: { TOTEM_SELF_AGENT: 'totem-claude' } }));
202
+ expect(row.session_id).toBe(SESSION_A);
203
+ expect(row.agent_source).toBe('totem-claude');
204
+ });
205
+ });
206
+ // ─── Writer ─────────────────────────────────────────────
207
+ describe('appendSelectionManifest', () => {
208
+ it('writes a schema-valid NDJSON row that readSelectionManifests round-trips', () => {
209
+ const result = appendSelectionManifest(baseInput());
210
+ expect(result.written).toBe(true);
211
+ expect(result.warnings).toEqual([]);
212
+ const rows = readSelectionManifests(totemDir);
213
+ expect(rows).toHaveLength(1);
214
+ expect(rows[0]).toMatchObject({
215
+ schemaVersion: 1,
216
+ emitter: 'search_knowledge',
217
+ universe: 'test-pool',
218
+ });
219
+ });
220
+ it('skips silently (no directory materialised) outside an instrumented project', () => {
221
+ const bare = path.join(tmpDir, 'not-a-project', '.totem');
222
+ const result = appendSelectionManifest(baseInput({ totemDir: bare }));
223
+ expect(result).toMatchObject({ written: false, skipped: true, warnings: [] });
224
+ expect(fs.existsSync(bare)).toBe(false);
225
+ });
226
+ it('THROWS the contract error on a schema-invalid row instead of persisting it', () => {
227
+ const input = baseInput({
228
+ candidates: [baseCandidate({ reason: '' })], // violates min(1)
229
+ });
230
+ expect(() => appendSelectionManifest(input)).toThrowError(TotemError);
231
+ try {
232
+ appendSelectionManifest(input);
233
+ }
234
+ catch (err) {
235
+ expect(err.code).toBe('SELECTION_MANIFEST_CONTRACT');
236
+ }
237
+ expect(fs.existsSync(manifestPath())).toBe(false);
238
+ });
239
+ it('degrades to a NAMED warning when the append itself fails (EACCES)', () => {
240
+ const spy = vi.spyOn(fs, 'appendFileSync').mockImplementation(() => {
241
+ const err = new Error('EACCES: permission denied');
242
+ err.code = 'EACCES';
243
+ throw err;
244
+ });
245
+ const result = appendSelectionManifest(baseInput());
246
+ spy.mockRestore();
247
+ expect(result.written).toBe(false);
248
+ expect(result.warnings.some((w) => w.includes('append failed') && w.includes('EACCES'))).toBe(true);
249
+ });
250
+ });
251
+ // ─── Sensor wrapper (Tenet 13) ──────────────────────────
252
+ describe('senseSelectionManifest', () => {
253
+ it('converts the contract throw into a warning and never propagates', () => {
254
+ const warnings = [];
255
+ const result = senseSelectionManifest(baseInput({ candidates: [baseCandidate({ reason: '' })] }), (w) => warnings.push(w));
256
+ expect(result.written).toBe(false);
257
+ expect(warnings.some((w) => w.includes('selection-manifest sensor failed'))).toBe(true);
258
+ });
259
+ it('surfaces writer warnings through onWarn on the degraded path', () => {
260
+ const spy = vi.spyOn(fs, 'appendFileSync').mockImplementation(() => {
261
+ throw new Error('disk full');
262
+ });
263
+ const warnings = [];
264
+ const result = senseSelectionManifest(baseInput(), (w) => warnings.push(w));
265
+ spy.mockRestore();
266
+ expect(result.written).toBe(false);
267
+ expect(warnings.some((w) => w.includes('append failed'))).toBe(true);
268
+ });
269
+ it('healthy control: writes clean, no warnings surfaced', () => {
270
+ const warnings = [];
271
+ const result = senseSelectionManifest(baseInput(), (w) => warnings.push(w));
272
+ expect(result.written).toBe(true);
273
+ expect(warnings).toEqual([]);
274
+ });
275
+ it('contains a THROWING onWarn sink — the accounting channel can never fail the command (PR #2625 CR round)', () => {
276
+ const spy = vi.spyOn(fs, 'appendFileSync').mockImplementation(() => {
277
+ throw new Error('disk full');
278
+ });
279
+ const result = senseSelectionManifest(baseInput(), () => {
280
+ throw new Error('sink exploded');
281
+ });
282
+ spy.mockRestore();
283
+ // No throw escaped, and the warning survives in the returned array.
284
+ expect(result.written).toBe(false);
285
+ expect(result.warnings.some((w) => w.includes('append failed'))).toBe(true);
286
+ });
287
+ });
288
+ // ─── Probe failures (PR #2625 CR round) ─────────────────
289
+ describe('instrumented-project probe', () => {
290
+ it('a non-ENOENT probe failure (EACCES) is a NAMED skip, never a silent not-a-project', () => {
291
+ const spy = vi.spyOn(fs, 'statSync').mockImplementation(() => {
292
+ const err = new Error('EACCES: permission denied');
293
+ err.code = 'EACCES';
294
+ throw err;
295
+ });
296
+ const warnings = [];
297
+ const result = senseSelectionManifest(baseInput(), (w) => warnings.push(w));
298
+ spy.mockRestore();
299
+ expect(result).toMatchObject({ written: false, skipped: true });
300
+ expect(warnings.some((w) => w.includes('.totem probe failed'))).toBe(true);
301
+ });
302
+ });
303
+ // ─── Session override (PR #2625 CR round, partial) ──────
304
+ describe('sessionId override', () => {
305
+ it('a minting emitter stamps its own UUID instead of the shared pointer', () => {
306
+ fs.mkdirSync(path.join(totemDir, 'ledger'), { recursive: true });
307
+ fs.writeFileSync(path.join(totemDir, 'ledger', '.session-id'), SESSION_A, 'utf-8');
308
+ const other = '550e8400-e29b-41d4-a716-446655440009';
309
+ const row = buildSelectionManifestRow(baseInput({ sessionId: other }));
310
+ expect(row.session_id).toBe(other);
311
+ // Without the override the pointer still governs.
312
+ expect(buildSelectionManifestRow(baseInput()).session_id).toBe(SESSION_A);
313
+ });
314
+ });
315
+ // ─── Reader ─────────────────────────────────────────────
316
+ describe('readSelectionManifests', () => {
317
+ it('returns [] on ENOENT and skips malformed / schema-invalid lines, reporting the malformed count', () => {
318
+ expect(readSelectionManifests(totemDir)).toEqual([]);
319
+ appendSelectionManifest(baseInput());
320
+ fs.appendFileSync(manifestPath(), 'not json\n{"schemaVersion":99}\n', 'utf-8');
321
+ const warnings = [];
322
+ const rows = readSelectionManifests(totemDir, (w) => warnings.push(w));
323
+ expect(rows).toHaveLength(1);
324
+ // One AGGREGATE warning for the malformed-JSON line — never a firehose
325
+ // (PR #2625 CR round); the schema-invalid-but-parseable line stays under
326
+ // the generic-consumer skip contract.
327
+ expect(warnings.filter((w) => w.includes('malformed'))).toHaveLength(1);
328
+ expect(warnings[0]).toContain('1 malformed line(s)');
329
+ });
330
+ });
331
+ //# sourceMappingURL=selection-manifest.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-manifest.test.js","sourceRoot":"","sources":["../src/selection-manifest.test.ts"],"names":[],"mappings":"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"}
@@ -370,14 +370,14 @@ export declare const ClassifierLedgerEntrySchema: z.ZodObject<{
370
370
  */
371
371
  stage4Outcome: z.ZodOptional<z.ZodEnum<["confirmed", "untested-no-matches", "archived-out-of-scope", "compile-rejected"]>>;
372
372
  }, "strip", z.ZodTypeAny, {
373
- candidateRef: string;
374
373
  disposition: "structural" | "behavioral";
374
+ candidateRef: string;
375
375
  stage4Confirmed: boolean;
376
376
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
377
377
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
378
378
  }, {
379
- candidateRef: string;
380
379
  disposition: "structural" | "behavioral";
380
+ candidateRef: string;
381
381
  stage4Confirmed: boolean;
382
382
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
383
383
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
@@ -420,30 +420,30 @@ export declare const ClassifierLedgerSchema: z.ZodObject<{
420
420
  */
421
421
  stage4Outcome: z.ZodOptional<z.ZodEnum<["confirmed", "untested-no-matches", "archived-out-of-scope", "compile-rejected"]>>;
422
422
  }, "strip", z.ZodTypeAny, {
423
- candidateRef: string;
424
423
  disposition: "structural" | "behavioral";
424
+ candidateRef: string;
425
425
  stage4Confirmed: boolean;
426
426
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
427
427
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
428
428
  }, {
429
- candidateRef: string;
430
429
  disposition: "structural" | "behavioral";
430
+ candidateRef: string;
431
431
  stage4Confirmed: boolean;
432
432
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
433
433
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
434
434
  }>, "many">;
435
435
  }, "strip", z.ZodTypeAny, {
436
436
  entries: {
437
- candidateRef: string;
438
437
  disposition: "structural" | "behavioral";
438
+ candidateRef: string;
439
439
  stage4Confirmed: boolean;
440
440
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
441
441
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
442
442
  }[];
443
443
  }, {
444
444
  entries: {
445
- candidateRef: string;
446
445
  disposition: "structural" | "behavioral";
446
+ candidateRef: string;
447
447
  stage4Confirmed: boolean;
448
448
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
449
449
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
@@ -894,30 +894,30 @@ export declare const MinerLedgersSchema: z.ZodObject<{
894
894
  */
895
895
  stage4Outcome: z.ZodOptional<z.ZodEnum<["confirmed", "untested-no-matches", "archived-out-of-scope", "compile-rejected"]>>;
896
896
  }, "strip", z.ZodTypeAny, {
897
- candidateRef: string;
898
897
  disposition: "structural" | "behavioral";
898
+ candidateRef: string;
899
899
  stage4Confirmed: boolean;
900
900
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
901
901
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
902
902
  }, {
903
- candidateRef: string;
904
903
  disposition: "structural" | "behavioral";
904
+ candidateRef: string;
905
905
  stage4Confirmed: boolean;
906
906
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
907
907
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
908
908
  }>, "many">;
909
909
  }, "strip", z.ZodTypeAny, {
910
910
  entries: {
911
- candidateRef: string;
912
911
  disposition: "structural" | "behavioral";
912
+ candidateRef: string;
913
913
  stage4Confirmed: boolean;
914
914
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
915
915
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
916
916
  }[];
917
917
  }, {
918
918
  entries: {
919
- candidateRef: string;
920
919
  disposition: "structural" | "behavioral";
920
+ candidateRef: string;
921
921
  stage4Confirmed: boolean;
922
922
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
923
923
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
@@ -1201,8 +1201,8 @@ export declare const MinerLedgersSchema: z.ZodObject<{
1201
1201
  };
1202
1202
  classifier: {
1203
1203
  entries: {
1204
- candidateRef: string;
1205
1204
  disposition: "structural" | "behavioral";
1205
+ candidateRef: string;
1206
1206
  stage4Confirmed: boolean;
1207
1207
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
1208
1208
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
@@ -1267,8 +1267,8 @@ export declare const MinerLedgersSchema: z.ZodObject<{
1267
1267
  };
1268
1268
  classifier: {
1269
1269
  entries: {
1270
- candidateRef: string;
1271
1270
  disposition: "structural" | "behavioral";
1271
+ candidateRef: string;
1272
1272
  stage4Confirmed: boolean;
1273
1273
  dispositionSource: "classified" | "error-default" | "authored-whitelist";
1274
1274
  stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"verification-outcomes.d.ts","sourceRoot":"","sources":["../src/verification-outcomes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,qFAK9B,CAAC;AAYH;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;IACzC;;;;OAIG;;IAEH,oEAAoE;;IAEpE,sDAAsD;;IAEtD,yEAAyE;;IAEzE,kEAAkE;;IAElE;;;;OAIG;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;;QA7BzC;;;;WAIG;;QAEH,oEAAoE;;QAEpE,sDAAsD;;QAEtD,yEAAyE;;QAEzE,kEAAkE;;QAElE;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcH,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC3E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;;;;;;;;GAQG;AACH,MAAM,MAAM,yBAAyB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAI7E;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC7B,yBAAyB,CA8C3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,yBAAyB,GAClC,IAAI,CAiBN"}
1
+ {"version":3,"file":"verification-outcomes.d.ts","sourceRoot":"","sources":["../src/verification-outcomes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,qFAK9B,CAAC;AAYH;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;IACzC;;;;OAIG;;IAEH,oEAAoE;;IAEpE,sDAAsD;;IAEtD,yEAAyE;;IAEzE,kEAAkE;;IAElE;;;;OAIG;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;;QA7BzC;;;;WAIG;;QAEH,oEAAoE;;QAEpE,sDAAsD;;QAEtD,yEAAyE;;QAEzE,kEAAkE;;QAElE;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcH,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC3E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;;;;;;;;GAQG;AACH,MAAM,MAAM,yBAAyB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAI7E;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC7B,yBAAyB,CA8C3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,yBAAyB,GAClC,IAAI,CAYN"}
@@ -2,6 +2,7 @@ import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
3
  import { z } from 'zod';
4
4
  import { canonicalStringify } from './compile-manifest.js';
5
+ import { writeFileAtomicSync } from './fs-atomic.js';
5
6
  /**
6
7
  * Stage 4 outcome literals serialized into `.totem/verification-outcomes.json`
7
8
  * (mmnto-ai/totem#1684, ADR-091 § Bootstrap CI-first). Mirrors the
@@ -133,17 +134,10 @@ export function writeVerificationOutcomes(filePath, outcomes) {
133
134
  fs.mkdirSync(dir, { recursive: true });
134
135
  const file = { version: 1, outcomes };
135
136
  const json = `${canonicalStringify(file, 2)}\n`;
136
- // totem-context: per-write unique temp filename so two concurrent lint
137
- // processes can't clobber each other's in-flight write and trigger a
138
- // hard rename failure mid-pass (CR mmnto-ai/totem#1787 R1).
139
- const tmpPath = `${filePath}.${process.pid}.${Date.now().toString(36)}.tmp`;
140
- try {
141
- fs.writeFileSync(tmpPath, json, 'utf-8');
142
- fs.renameSync(tmpPath, filePath);
143
- }
144
- finally {
145
- if (fs.existsSync(tmpPath))
146
- fs.rmSync(tmpPath, { force: true });
147
- }
137
+ // Per-write unique temp naming (two concurrent lint processes must not
138
+ // clobber each other's in-flight write CR mmnto-ai/totem#1787 R1) and
139
+ // failure-path temp cleanup are the shared corollary helper's contract
140
+ // (mmnto-ai/totem#2620).
141
+ writeFileAtomicSync(filePath, json);
148
142
  }
149
143
  //# sourceMappingURL=verification-outcomes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification-outcomes.js","sourceRoot":"","sources":["../src/verification-outcomes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-outcomes.js","sourceRoot":"","sources":["../src/verification-outcomes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-registry.d.ts","sourceRoot":"","sources":["../src/worktree-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,wEAAwE;AACxE,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,eAAO,MAAM,mBAAmB;IAE5B,+DAA+D;;IAE/D,uEAAuE;;;IAGvE,iEAAiE;;IAEjE,8CAA8C;;;IAP9C,+DAA+D;;IAE/D,uEAAuE;;;IAGvE,iEAAiE;;IAEjE,8CAA8C;;;IAP9C,+DAA+D;;IAE/D,uEAAuE;;;IAGvE,iEAAiE;;IAEjE,8CAA8C;;gCAGlC,CAAC;AAEjB,eAAO,MAAM,kBAAkB;;IAE7B,6EAA6E;;IAE7E,sCAAsC;;QAhBpC,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;QAP9C,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;QAP9C,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;;;;QAP9C,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;;;;;QAP9C,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;;EAWhD,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAO9D,4EAA4E;AAC5E,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,IAAI,YAAY,CAEhD;AAWD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAgBrD;AAaD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,YAAY,CAejF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,GACnB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG,SAAS,CAMnD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAWlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IACvD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAQA;AA8BD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
1
+ {"version":3,"file":"worktree-registry.d.ts","sourceRoot":"","sources":["../src/worktree-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,wEAAwE;AACxE,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,eAAO,MAAM,mBAAmB;IAE5B,+DAA+D;;IAE/D,uEAAuE;;;IAGvE,iEAAiE;;IAEjE,8CAA8C;;;IAP9C,+DAA+D;;IAE/D,uEAAuE;;;IAGvE,iEAAiE;;IAEjE,8CAA8C;;;IAP9C,+DAA+D;;IAE/D,uEAAuE;;;IAGvE,iEAAiE;;IAEjE,8CAA8C;;gCAGlC,CAAC;AAEjB,eAAO,MAAM,kBAAkB;;IAE7B,6EAA6E;;IAE7E,sCAAsC;;QAhBpC,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;QAP9C,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;QAP9C,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;;;;QAP9C,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;;;;;QAP9C,+DAA+D;;QAE/D,uEAAuE;;;QAGvE,iEAAiE;;QAEjE,8CAA8C;;;;EAWhD,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAO9D,4EAA4E;AAC5E,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,IAAI,YAAY,CAEhD;AAWD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAgBrD;AAaD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,YAAY,CAejF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,GACnB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG,SAAS,CAMnD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAWlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IACvD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAQA;AA6BD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
@@ -29,6 +29,7 @@ import os from 'node:os';
29
29
  import path from 'node:path';
30
30
  import { z } from 'zod';
31
31
  import { TotemParseError } from './errors.js';
32
+ import { writeFileAtomicSync } from './fs-atomic.js';
32
33
  import { acquireLock } from './lock.js';
33
34
  import { readJsonSafe } from './sys/fs.js';
34
35
  /** The on-disk compatibility contract for `~/.totem/worktrees.json`. */
@@ -206,11 +207,10 @@ function loadForMutation(filePath) {
206
207
  throw err;
207
208
  }
208
209
  }
209
- /** PID-unique temp + rename: a concurrent reader never sees partial JSON. */
210
+ /** Unique temp + rename via the shared corollary helper (mmnto-ai/totem#2620):
211
+ * a concurrent reader never sees partial JSON. */
210
212
  function writeAtomic(filePath, file) {
211
- const tmpPath = `${filePath}.${process.pid}.tmp`;
212
- fs.writeFileSync(tmpPath, JSON.stringify(file, null, 2) + '\n');
213
- fs.renameSync(tmpPath, filePath);
213
+ writeFileAtomicSync(filePath, JSON.stringify(file, null, 2) + '\n');
214
214
  }
215
215
  /**
216
216
  * Record a worktree and the root it lives under, under the `~/.totem` lock.
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-registry.js","sourceRoot":"","sources":["../src/worktree-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-registry.js","sourceRoot":"","sources":["../src/worktree-registry.ts"],"names":[],"mappings":"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"}