@mmnto/cli 2.3.0 → 2.5.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 (33) hide show
  1. package/dist/commands/agents-floor-sterility.test.d.ts +25 -0
  2. package/dist/commands/agents-floor-sterility.test.d.ts.map +1 -0
  3. package/dist/commands/agents-floor-sterility.test.js +217 -0
  4. package/dist/commands/agents-floor-sterility.test.js.map +1 -0
  5. package/dist/commands/config-drift.test.js +5 -3
  6. package/dist/commands/config-drift.test.js.map +1 -1
  7. package/dist/commands/eject.d.ts +20 -0
  8. package/dist/commands/eject.d.ts.map +1 -1
  9. package/dist/commands/eject.js +131 -0
  10. package/dist/commands/eject.js.map +1 -1
  11. package/dist/commands/eject.test.js +280 -2
  12. package/dist/commands/eject.test.js.map +1 -1
  13. package/dist/commands/gate-install.test.js +50 -0
  14. package/dist/commands/gate-install.test.js.map +1 -1
  15. package/dist/commands/init-templates.d.ts +75 -3
  16. package/dist/commands/init-templates.d.ts.map +1 -1
  17. package/dist/commands/init-templates.js +316 -2
  18. package/dist/commands/init-templates.js.map +1 -1
  19. package/dist/commands/init.d.ts +36 -0
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +172 -1
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/init.test.js +373 -2
  24. package/dist/commands/init.test.js.map +1 -1
  25. package/dist/commands/resolve-threads.d.ts +8 -4
  26. package/dist/commands/resolve-threads.d.ts.map +1 -1
  27. package/dist/commands/resolve-threads.js +4 -5
  28. package/dist/commands/resolve-threads.js.map +1 -1
  29. package/dist/commands/resolve-threads.test.js +4 -2
  30. package/dist/commands/resolve-threads.test.js.map +1 -1
  31. package/dist/parsers/bot-identity-parity.test.js +64 -10
  32. package/dist/parsers/bot-identity-parity.test.js.map +1 -1
  33. package/package.json +2 -2
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The public AGENTS.md floor stays sterile (mmnto-ai/totem-strategy#619 —
3
+ * the T0 floor / T1 overlay split; the sterility sensor of design v1 § 3).
4
+ *
5
+ * Three claims, each mechanical:
6
+ *
7
+ * 1. This repository's committed AGENTS.md carries the `totem init` managed
8
+ * span byte-identically — the "sterile floor IS the init scaffold" product
9
+ * test the issue names (design § 3(a), the managed-block == template check).
10
+ * 2. Neither the template nor any public agent-instruction surface of this
11
+ * repository carries a private repository path, a deployment name, an
12
+ * operator fingerprint or a doctrine tag from the ENUMERATED lexicon below
13
+ * (design § 3(c) T1-creep lexicon — a deny-list, never class coverage), an
14
+ * unqualified issue reference, or a relative link that does not resolve
15
+ * case-exactly on disk (design § 3(b) offline half; class 5 acceptance).
16
+ * 3. The one declared exception is the `totem:agent-bus` marker line
17
+ * (inventory ruling row 20; the move is mmnto-ai/totem#2866): no other line
18
+ * of the floor, and no line of the template, names an agent identifier.
19
+ *
20
+ * The network half of the acceptance test (every URL resolves unauthenticated)
21
+ * is `tools/public-refs-resolve.mjs`, run by the floor's author before posting;
22
+ * it needs the network, so it is not a test.
23
+ */
24
+ export {};
25
+ //# sourceMappingURL=agents-floor-sterility.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-floor-sterility.test.d.ts","sourceRoot":"","sources":["../../src/commands/agents-floor-sterility.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * The public AGENTS.md floor stays sterile (mmnto-ai/totem-strategy#619 —
3
+ * the T0 floor / T1 overlay split; the sterility sensor of design v1 § 3).
4
+ *
5
+ * Three claims, each mechanical:
6
+ *
7
+ * 1. This repository's committed AGENTS.md carries the `totem init` managed
8
+ * span byte-identically — the "sterile floor IS the init scaffold" product
9
+ * test the issue names (design § 3(a), the managed-block == template check).
10
+ * 2. Neither the template nor any public agent-instruction surface of this
11
+ * repository carries a private repository path, a deployment name, an
12
+ * operator fingerprint or a doctrine tag from the ENUMERATED lexicon below
13
+ * (design § 3(c) T1-creep lexicon — a deny-list, never class coverage), an
14
+ * unqualified issue reference, or a relative link that does not resolve
15
+ * case-exactly on disk (design § 3(b) offline half; class 5 acceptance).
16
+ * 3. The one declared exception is the `totem:agent-bus` marker line
17
+ * (inventory ruling row 20; the move is mmnto-ai/totem#2866): no other line
18
+ * of the floor, and no line of the template, names an agent identifier.
19
+ *
20
+ * The network half of the acceptance test (every URL resolves unauthenticated)
21
+ * is `tools/public-refs-resolve.mjs`, run by the floor's author before posting;
22
+ * it needs the network, so it is not a test.
23
+ */
24
+ import * as fs from 'node:fs';
25
+ import * as path from 'node:path';
26
+ import { describe, expect, it } from 'vitest';
27
+ import { AGENTS_FLOOR_BLOCK, AGENTS_FLOOR_END, AGENTS_FLOOR_START, BARE_REF_REGEX_SOURCE, renderAgentsFloorScaffold, } from './init-templates.js';
28
+ const ROOT = path.resolve(__dirname, '..', '..', '..', '..');
29
+ function readRoot(rel) {
30
+ return fs.readFileSync(path.join(ROOT, rel), 'utf-8');
31
+ }
32
+ /**
33
+ * The public agent-instruction surfaces of this repository: the floor, the
34
+ * per-tool redirects, the self-contained Junie twin, and the docs the floor
35
+ * links. The Gemini styleguide and the distributed skills are deliberately NOT
36
+ * here — the styleguide's doctrine links are the review bot's rationale and
37
+ * the skills are managed text; both are the owed follow-up sweep, not this
38
+ * sensor's claim.
39
+ */
40
+ const PUBLIC_SURFACES = [
41
+ 'AGENTS.md',
42
+ 'CLAUDE.md',
43
+ 'GEMINI.md',
44
+ '.junie/guidelines.md',
45
+ '.claude/docs/architecture.md',
46
+ '.claude/docs/contributing.md',
47
+ '.claude/docs/agent-workflow.md',
48
+ ];
49
+ /**
50
+ * An ENUMERATED lexicon, not class coverage: the private repositories and
51
+ * doctrine paths that 404 publicly (class 5), the deployment names (class 2)
52
+ * and the operator fingerprints (class 3) this cohort's surfaces have carried.
53
+ * A new private name has to be added here to be caught; the network script
54
+ * catches the resolvable-URL half regardless.
55
+ */
56
+ const DENY_SUBSTRINGS = [
57
+ 'totem-strategy',
58
+ 'strategy#',
59
+ 'totem-playground',
60
+ 'liquid-city',
61
+ 'satur8d',
62
+ 'skynet',
63
+ 'arhgap',
64
+ 'solo-operator',
65
+ ];
66
+ /**
67
+ * Doctrine tags a public reader cannot follow, and the internal review
68
+ * vocabulary — hyphen or space or nothing between the word and the number, and
69
+ * case-insensitive for ADR and Tenet (so `adr-105`, `ADR 105`, `tenet 20` and
70
+ * `Tenet-16` all fire); the Proposal pattern keeps its case, see its comment.
71
+ */
72
+ const DENY_PATTERNS = [
73
+ { name: 'an ADR tag', re: /\badr[- ]?\d+/i },
74
+ // `Prop 305` / `PROP 305` (the abbreviation is capitalized in doctrine prose)
75
+ // or `proposal 213` in any case, an optional period after either — never a
76
+ // lowercase `prop 1` in ordinary prose.
77
+ { name: 'a Proposal tag', re: /\b(?:Prop|PROP|[Pp]roposal|PROPOSAL)\.?[- ]?\d+/ },
78
+ { name: 'a Tenet tag', re: /\btenet[- ]?\d+/i },
79
+ { name: 'internal review vocabulary', re: /\b(?:review-leg|cohort|falsification)\b/i },
80
+ ];
81
+ /** The seat roster's shape: `<repo>-<vendor>`. */
82
+ const AGENT_ID = /\b(?:totem|strategy|status|lc)-(?:claude|gemini|agy|codex|kimi)\b/;
83
+ const AGENT_BUS_MARKER = 'totem:agent-bus';
84
+ /** Vendor names never appear in the template (the register rule: standards and layers, not vendor lists). */
85
+ const VENDOR_TOKENS = /\b(?:Claude|Gemini|Cursor|Copilot|Codex|Junie|Windsurf|Kimi)\b/;
86
+ const BARE_REF = new RegExp(BARE_REF_REGEX_SOURCE);
87
+ /**
88
+ * Inline link destinations, the two CommonMark spellings: bare (`](path)`, no
89
+ * spaces) and angle-bracketed (`](<path with spaces>)`). A fragment is dropped
90
+ * either way. The same two spellings are the extractor's in
91
+ * `tools/public-refs-resolve.mjs`; the two live in different runtimes (a
92
+ * vitest module and a bare ESM script) and stay in step by this comment and
93
+ * the round that added the angle form to both.
94
+ */
95
+ const MD_LINK = /\]\((?:<([^>\r\n]*)>|([^)\s#]+))(?:#[^)\s]*)?(?:\s+(?:"[^"]*"|'[^']*'|\([^)]*\)))?\)/g;
96
+ /** The destination without its fragment; `''` for an anchor-only or empty angle-bracketed destination, which the callers skip. */
97
+ const linkTarget = (match) => (match[1] ?? match[2] ?? '').replace(/#.*$/, '');
98
+ /**
99
+ * Case-exact existence: `fs.existsSync` answers case-insensitively on NTFS and
100
+ * on a default macOS volume, while github.com does not, so a link that differs
101
+ * from the tracked file only by case would pass here and 404 there. Each path
102
+ * segment is matched against the directory listing byte-for-byte.
103
+ */
104
+ function existsExact(absPath) {
105
+ const relative = path.relative(ROOT, absPath);
106
+ if (relative.startsWith('..') || path.isAbsolute(relative))
107
+ return false;
108
+ let cursor = ROOT;
109
+ for (const segment of relative.split(/[\\/]+/).filter((s) => s !== '')) {
110
+ let entries;
111
+ try {
112
+ entries = fs.readdirSync(cursor);
113
+ // totem-context: a missing or unreadable directory means the link does not resolve — the false answer is the finding
114
+ }
115
+ catch {
116
+ return false;
117
+ }
118
+ if (!entries.includes(segment))
119
+ return false;
120
+ cursor = path.join(cursor, segment);
121
+ }
122
+ return true;
123
+ }
124
+ function expectSterile(label, content) {
125
+ for (const needle of DENY_SUBSTRINGS) {
126
+ expect(content, `${label} carries "${needle}"`).not.toContain(needle);
127
+ }
128
+ for (const { name, re } of DENY_PATTERNS) {
129
+ expect(content, `${label} carries ${name}`).not.toMatch(re);
130
+ }
131
+ expect(content, `${label} carries an unqualified issue reference`).not.toMatch(BARE_REF);
132
+ }
133
+ // ─── 1. The committed floor carries the managed span byte-identically ─
134
+ describe('this repository AGENTS.md carries the totem init floor span', () => {
135
+ const agentsMd = readRoot('AGENTS.md');
136
+ it('carries exactly one managed span, byte-identical to AGENTS_FLOOR_BLOCK', () => {
137
+ const start = agentsMd.indexOf(AGENTS_FLOOR_START);
138
+ const end = agentsMd.indexOf(AGENTS_FLOOR_END);
139
+ expect(start).toBeGreaterThan(-1);
140
+ expect(end).toBeGreaterThan(start);
141
+ expect(agentsMd.lastIndexOf(AGENTS_FLOOR_START)).toBe(start);
142
+ expect(agentsMd.lastIndexOf(AGENTS_FLOOR_END)).toBe(end);
143
+ expect(agentsMd.slice(start, end + AGENTS_FLOOR_END.length)).toBe(AGENTS_FLOOR_BLOCK);
144
+ });
145
+ });
146
+ // ─── 2. Sterility: the template and every public surface ────────────
147
+ describe('the floor template is sterile', () => {
148
+ it.each([
149
+ ['AGENTS_FLOOR_BLOCK', AGENTS_FLOOR_BLOCK],
150
+ ['the rendered scaffold', renderAgentsFloorScaffold('example')],
151
+ ])('%s carries no private path, deployment, operator, doctrine tag or bare reference', (label, content) => {
152
+ expectSterile(label, content);
153
+ });
154
+ it.each([
155
+ ['AGENTS_FLOOR_BLOCK', AGENTS_FLOOR_BLOCK],
156
+ ['the rendered scaffold', renderAgentsFloorScaffold('example')],
157
+ ])('%s names no agent identifier and no agent vendor', (label, content) => {
158
+ expect(content, `${label} names an agent identifier`).not.toMatch(AGENT_ID);
159
+ expect(content, `${label} names a vendor`).not.toMatch(VENDOR_TOKENS);
160
+ });
161
+ it('the scaffold title carries the project name and the span exactly once', () => {
162
+ const rendered = renderAgentsFloorScaffold('widgets');
163
+ expect(rendered.startsWith('# widgets: Agent Instructions\n')).toBe(true);
164
+ expect(rendered.indexOf(AGENTS_FLOOR_BLOCK)).toBe(rendered.lastIndexOf(AGENTS_FLOOR_BLOCK));
165
+ expect(rendered.indexOf(AGENTS_FLOOR_BLOCK)).toBeGreaterThan(-1);
166
+ });
167
+ });
168
+ describe('the inline-link extractor reads both CommonMark destination spellings', () => {
169
+ const extract = (text) => [...text.matchAll(MD_LINK)].map(linkTarget);
170
+ it('bare, angle-bracketed, fragment-bearing and anchor-only destinations', () => {
171
+ expect(extract('[a](docs/x.md) and [b](<docs/with space.md>) and [c](docs/y.md#frag)')).toEqual(['docs/x.md', 'docs/with space.md', 'docs/y.md']);
172
+ // A bare anchor-only destination is not a link the extractor sees at all
173
+ // (the bare spelling requires a path); the angle form extracts as empty.
174
+ expect(extract('[d](<docs/z.md#frag>) [e](#anchor-only) [f](<#anchor-only>)')).toEqual([
175
+ 'docs/z.md',
176
+ '',
177
+ ]);
178
+ // A link title after the destination (any of the three CommonMark title
179
+ // spellings) never hides the link.
180
+ expect(extract('[t](docs/t.md "a title") [u](<docs/u v.md> \'quoted\') [w](docs/w.md (paren))')).toEqual(['docs/t.md', 'docs/u v.md', 'docs/w.md']);
181
+ });
182
+ });
183
+ describe('every public agent-instruction surface of this repository is sterile', () => {
184
+ it.each(PUBLIC_SURFACES)('%s carries no private path, deployment, operator, doctrine tag or bare reference', (rel) => {
185
+ expectSterile(rel, readRoot(rel));
186
+ });
187
+ it.each(PUBLIC_SURFACES)('%s: every relative link resolves to a file in the tree', (rel) => {
188
+ const content = readRoot(rel);
189
+ const dir = path.dirname(path.join(ROOT, rel));
190
+ for (const match of content.matchAll(MD_LINK)) {
191
+ const target = linkTarget(match);
192
+ if (target === '')
193
+ continue; // an anchor-only destination — a heading question, not a resolvability one
194
+ if (/^[a-z][a-z0-9+.-]*:/i.test(target))
195
+ continue; // an absolute URL or mailto: — the network script's half
196
+ expect(existsExact(path.resolve(dir, target)), `${rel} links ${target}`).toBe(true);
197
+ }
198
+ });
199
+ });
200
+ // ─── 3. The one declared exception ──────────────────────────────────
201
+ describe('agent identifiers in the floor', () => {
202
+ const lines = readRoot('AGENTS.md').split(/\r?\n/);
203
+ it('appear on the totem:agent-bus marker line and nowhere else', () => {
204
+ const markerLines = lines.filter((line) => line.includes(AGENT_BUS_MARKER));
205
+ expect(markerLines).toHaveLength(1);
206
+ expect(markerLines[0]).toMatch(AGENT_ID);
207
+ for (const line of lines) {
208
+ if (line.includes(AGENT_BUS_MARKER))
209
+ continue;
210
+ expect(line, `floor line names an agent identifier: ${line}`).not.toMatch(AGENT_ID);
211
+ }
212
+ });
213
+ it.each(PUBLIC_SURFACES.filter((rel) => rel !== 'AGENTS.md'))('%s names no agent identifier at all', (rel) => {
214
+ expect(readRoot(rel)).not.toMatch(AGENT_ID);
215
+ });
216
+ });
217
+ //# sourceMappingURL=agents-floor-sterility.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-floor-sterility.test.js","sourceRoot":"","sources":["../../src/commands/agents-floor-sterility.test.ts"],"names":[],"mappings":"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"}
@@ -297,9 +297,11 @@ describe('all agent instruction files share the same project rules', () => {
297
297
  'NEVER use `git push --no-verify`',
298
298
  // Publishing
299
299
  '`pnpm run version`',
300
- // Contributor Principles
301
- 'Update `AI_PROMPT_BLOCK` in `init.ts`',
302
- 'GCA decline',
300
+ // Contributor Principles (the pointer names the file the constant lives in —
301
+ // `init-templates.ts` since the extraction; the sterilization pass of
302
+ // mmnto-ai/totem-strategy#619 row 11 cured the dead `init.ts` pointer)
303
+ 'Update `AI_PROMPT_BLOCK` in `init-templates.ts`',
304
+ 'Gemini Code Assist (GCA) decline',
303
305
  'without a ticket',
304
306
  ];
305
307
  for (const rule of SHARED_RULES) {
@@ -1 +1 @@
1
- {"version":3,"file":"config-drift.test.js","sourceRoot":"","sources":["../../src/commands/config-drift.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-drift.test.js","sourceRoot":"","sources":["../../src/commands/config-drift.test.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,26 @@ export declare function scrubPostCheckoutHook(hooksDir: string, summary: EjectSu
104
104
  * GEMINI.md when the tool table landed): init no longer injects there, but an
105
105
  * old block can still be sitting in it, so eject still visits it. */
106
106
  export declare const LEGACY_REFLEX_FILES: string[];
107
+ /**
108
+ * Remove the managed AGENTS.md floor span `totem init` scaffolds
109
+ * (mmnto-ai/totem-strategy#619). Removes every complete span the forward scan
110
+ * finds — each paired END-anchored like the reflex scrub's
111
+ * (mmnto-ai/totem#2602): the first end marker with the last start marker before
112
+ * it, the scan resuming at the seam after each removal, so an orphan start
113
+ * marker above a span never widens the removal and never re-pairs with an
114
+ * orphan end marker below it in this run. The repository's own content on
115
+ * either side is kept, the seam normalized as the reflex scrub normalizes its
116
+ * own — one blank line where the span sat, in the line terminator the bytes
117
+ * outside the span use. A file that is nothing but the span (and whitespace) is
118
+ * removed outright — it was the scaffold and nothing more. Stray markers are
119
+ * never attributed and never scrubbed; they are named beside the scrubbed line
120
+ * (with the warning that a start marker followed by an end marker is a span by
121
+ * definition, so the text they now bracket would be read as one next time), or
122
+ * as the skip reason when nothing else was there to scrub.
123
+ *
124
+ * Exported for the summary-contract tests beside `scrubReflexFiles`.
125
+ */
126
+ export declare function scrubAgentsFloor(cwd: string, summary: EjectSummary): Promise<void>;
107
127
  /**
108
128
  * Remove the AI Integration block appended by `totem init` to reflex files.
109
129
  *
@@ -1 +1 @@
1
- {"version":3,"file":"eject.d.ts","sourceRoot":"","sources":["../../src/commands/eject.ts"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU/D;AASD,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuCvE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,0NAgBpB,CAAC;AAEX,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED;;;iEAGiE;AACjE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB/D;AAED;;;;oEAIoE;AACpE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AACD,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AACxE,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAI5D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyBtF;AA6GD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAEnF;AA+TD;;;;;;sEAMsE;AACtE,eAAO,MAAM,mBAAmB,UAAqD,CAAC;AAKtF;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8KxF;AAmED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yFAAyF;IACzF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAA0B,GACnC,OAAO,CAAC,cAAc,CAAC,CAsFzB;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmJvE"}
1
+ {"version":3,"file":"eject.d.ts","sourceRoot":"","sources":["../../src/commands/eject.ts"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU/D;AAWD,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuCvE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,0NAgBpB,CAAC;AAEX,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED;;;iEAGiE;AACjE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB/D;AAED;;;;oEAIoE;AACpE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AACD,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AACxE,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAI5D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyBtF;AA6GD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAEnF;AA+TD;;;;;;sEAMsE;AACtE,eAAO,MAAM,mBAAmB,UAAqD,CAAC;AAKtF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHxF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8KxF;AAmED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yFAAyF;IACzF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAA0B,GACnC,OAAO,CAAC,cAAc,CAAC,CAsFzB;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJvE"}
@@ -34,6 +34,8 @@ const TOTEM_CHECKOUT_END = '[totem] end post-checkout';
34
34
  // Comment-shape-agnostic: hooks open `// [totem] auto-generated …`, markdown
35
35
  // skills `<!-- [totem] auto-generated … -->` — the first-line gate matches both.
36
36
  const TOTEM_FILE_MARKER = '[totem] auto-generated';
37
+ /** The code point of the byte-order mark a UTF-8 editor may leave at byte 0. */
38
+ const BOM_CODE_POINT = 0xfeff;
37
39
  /** The Totem directory when the repo configures none. */
38
40
  export const DEFAULT_TOTEM_DIR = '.totem';
39
41
  /**
@@ -611,6 +613,132 @@ async function scrubClaudeSkills(cwd, summary) {
611
613
  export const LEGACY_REFLEX_FILES = ['CLAUDE.md', '.gemini/gemini.md', '.cursorrules'];
612
614
  /** The alt heading of the oldest legacy block shape (pre-LEGACY_SENTINEL). */
613
615
  const LEGACY_ALT_HEADING = '## Totem Memory Reflexes';
616
+ /**
617
+ * Remove the managed AGENTS.md floor span `totem init` scaffolds
618
+ * (mmnto-ai/totem-strategy#619). Removes every complete span the forward scan
619
+ * finds — each paired END-anchored like the reflex scrub's
620
+ * (mmnto-ai/totem#2602): the first end marker with the last start marker before
621
+ * it, the scan resuming at the seam after each removal, so an orphan start
622
+ * marker above a span never widens the removal and never re-pairs with an
623
+ * orphan end marker below it in this run. The repository's own content on
624
+ * either side is kept, the seam normalized as the reflex scrub normalizes its
625
+ * own — one blank line where the span sat, in the line terminator the bytes
626
+ * outside the span use. A file that is nothing but the span (and whitespace) is
627
+ * removed outright — it was the scaffold and nothing more. Stray markers are
628
+ * never attributed and never scrubbed; they are named beside the scrubbed line
629
+ * (with the warning that a start marker followed by an end marker is a span by
630
+ * definition, so the text they now bracket would be read as one next time), or
631
+ * as the skip reason when nothing else was there to scrub.
632
+ *
633
+ * Exported for the summary-contract tests beside `scrubReflexFiles`.
634
+ */
635
+ export async function scrubAgentsFloor(cwd, summary) {
636
+ const { AGENTS_FLOOR_END, AGENTS_FLOOR_REL, AGENTS_FLOOR_START, agentsFloorAmbiguousFenceLine, agentsFloorMarkerPositions, eolOutsideSpan, locateAgentsFloorSpan, } = await import('./init-templates.js');
637
+ const filePath = path.join(cwd, AGENTS_FLOOR_REL);
638
+ const realMarkers = (text) => agentsFloorMarkerPositions(text, AGENTS_FLOOR_START).length +
639
+ agentsFloorMarkerPositions(text, AGENTS_FLOOR_END).length;
640
+ // The contract every stray-marker line carries: a start marker followed by
641
+ // an end marker IS a managed span by definition.
642
+ const contract = 'a start marker followed by an end marker is a managed span by definition, and a later eject or init would treat the text between them as one';
643
+ try {
644
+ if (!fs.existsSync(filePath))
645
+ return;
646
+ const rawContent = fs.readFileSync(filePath);
647
+ const content = rawContent.toString('utf-8');
648
+ // Markers below an unclosed fence opener are ambiguous (a quotation never
649
+ // closed, or a real span under a stray fence line): nothing below it is
650
+ // touched, and the fence is named so the maintainer can close it. The note
651
+ // is computed on the text left on disk, so its line is right after a scrub
652
+ // above the fence moved it.
653
+ const fenceNoteFor = (text) => {
654
+ const line = agentsFloorAmbiguousFenceLine(text);
655
+ return line === null
656
+ ? ''
657
+ : `an unclosed code fence or an HTML comment opened at line ${line} makes the floor markers inside or below it ambiguous; nothing from that line on was touched — close it, then re-run \`totem eject\``;
658
+ };
659
+ // A marker quoted inside a closed fenced code block is prose, not a block.
660
+ if (realMarkers(content) === 0) {
661
+ const note = fenceNoteFor(content);
662
+ summary.skipped.push(note === ''
663
+ ? `${AGENTS_FLOOR_REL} (no Totem block)`
664
+ : `${AGENTS_FLOOR_REL} (not scrubbed: ${note})`);
665
+ return;
666
+ }
667
+ // Same guard as scrubReflexFiles: a file that does not round-trip through
668
+ // UTF-8 cannot be rewritten without substituting U+FFFD into kept content.
669
+ if (Buffer.compare(Buffer.from(content, 'utf-8'), rawContent) !== 0) {
670
+ summary.skipped.push(`${AGENTS_FLOOR_REL} (non-UTF-8 content — not scrubbed; remove the Totem block manually)`);
671
+ return;
672
+ }
673
+ let out = content;
674
+ let removedSpans = 0;
675
+ // The cursor only ever moves forward: after a span is removed the scan
676
+ // resumes at the seam, so an orphan start marker the pairing left behind
677
+ // above the seam can never re-pair with an orphan end marker below it on a
678
+ // later pass (the two-orphan shape the re-armed leg found).
679
+ let cursor = 0;
680
+ for (;;) {
681
+ const span = locateAgentsFloorSpan(out, cursor);
682
+ if (span === null)
683
+ break;
684
+ // The line terminator is read from the bytes OUTSIDE the span being
685
+ // removed: a span that is the file's only CRLF source must not decide
686
+ // the seam of an otherwise-LF file.
687
+ const eol = eolOutsideSpan(out, span);
688
+ // Single-owner seams, mirroring the reflex scrub: the prefix keeps at
689
+ // most one trailing terminator (the blank line above the span was the
690
+ // scaffold's), and the end marker's own terminator leaves with the span,
691
+ // so one blank line remains where the span sat — never two, never zero.
692
+ // A tolerated byte-order mark on line 1 is not a prefix the seam owns.
693
+ const rawBefore = out.slice(0, span.start);
694
+ const lead = rawBefore.charCodeAt(0) === BOM_CODE_POINT ? rawBefore.slice(0, 1) : '';
695
+ let core = rawBefore.slice(lead.length).replace(/(?:\r?\n)*$/, eol);
696
+ if (core === eol)
697
+ core = '';
698
+ let after = out.slice(span.end);
699
+ if (/^[ \t\r\n]*$/.test(after)) {
700
+ after = '';
701
+ }
702
+ else if (after.startsWith('\r\n')) {
703
+ after = after.slice(2);
704
+ }
705
+ else if (after.startsWith('\n')) {
706
+ after = after.slice(1);
707
+ }
708
+ // A span at byte 0 must not leave a leading blank line behind it.
709
+ if (core === '')
710
+ after = after.replace(/^(?:\r?\n)+/, '');
711
+ const before = lead + core;
712
+ out = before + after;
713
+ cursor = before.length;
714
+ removedSpans++;
715
+ }
716
+ const residue = realMarkers(out) > 0;
717
+ if (removedSpans === 0) {
718
+ const note = fenceNoteFor(out);
719
+ summary.skipped.push(`${AGENTS_FLOOR_REL} (stray floor markers, no complete span — not scrubbed; remove them: ${contract}${note === '' ? '' : `; ${note}`})`);
720
+ return;
721
+ }
722
+ if (/^[ \t\r\n]*$/.test(out.charCodeAt(0) === BOM_CODE_POINT ? out.slice(1) : out)) {
723
+ fs.unlinkSync(filePath);
724
+ summary.removed.push(AGENTS_FLOOR_REL);
725
+ return;
726
+ }
727
+ writeFileAtomicSync(filePath, out);
728
+ const note = fenceNoteFor(out);
729
+ if (residue) {
730
+ summary.scrubbed.push(`${AGENTS_FLOOR_REL} (stray floor markers remain — remove them now: ${contract}${note === '' ? '' : `; ${note}`})`);
731
+ }
732
+ else {
733
+ summary.scrubbed.push(note === '' ? AGENTS_FLOOR_REL : `${AGENTS_FLOOR_REL} (scrubbed; ${note})`);
734
+ }
735
+ // totem-context: intentional cleanup — per-file best-effort like scrubReflexFiles; a locked or unreadable AGENTS.md degrades to a reported skip, never an abort that strands the remaining eject steps
736
+ }
737
+ catch (err) {
738
+ const message = err instanceof Error ? err.message : String(err);
739
+ summary.skipped.push(`${AGENTS_FLOOR_REL} (${message})`);
740
+ }
741
+ }
614
742
  /**
615
743
  * Remove the AI Integration block appended by `totem init` to reflex files.
616
744
  *
@@ -1002,6 +1130,9 @@ export async function ejectCommand(options) {
1002
1130
  scrubCommittedClaudeSettings(cwd, summary);
1003
1131
  // 5. Scrub distributed Claude session-utility skills (Phase C slice 3)
1004
1132
  await scrubClaudeSkills(cwd, summary);
1133
+ // 5b. Scrub the managed AGENTS.md floor span (mmnto-ai/totem-strategy#619);
1134
+ // the repository's own content around it stays byte-exact.
1135
+ await scrubAgentsFloor(cwd, summary);
1005
1136
  // 6. Scrub AI reflex blocks from markdown files. An EJECT_FAILED throw here
1006
1137
  // (the Tenet-4 backstop — and ONLY it, round 2 F1) is DEFERRED past step 7
1007
1138
  // and the summary print, then rethrown: a backstop that fires before the summary