@mmnto/cli 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/agents-floor-sterility.test.d.ts +25 -0
- package/dist/commands/agents-floor-sterility.test.d.ts.map +1 -0
- package/dist/commands/agents-floor-sterility.test.js +217 -0
- package/dist/commands/agents-floor-sterility.test.js.map +1 -0
- package/dist/commands/config-drift.test.js +5 -3
- package/dist/commands/config-drift.test.js.map +1 -1
- package/dist/commands/eject.d.ts +20 -0
- package/dist/commands/eject.d.ts.map +1 -1
- package/dist/commands/eject.js +131 -0
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/eject.test.js +280 -2
- package/dist/commands/eject.test.js.map +1 -1
- package/dist/commands/init-templates.d.ts +74 -2
- package/dist/commands/init-templates.d.ts.map +1 -1
- package/dist/commands/init-templates.js +298 -6
- package/dist/commands/init-templates.js.map +1 -1
- package/dist/commands/init.d.ts +36 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +172 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.test.js +380 -3
- package/dist/commands/init.test.js.map +1 -1
- package/dist/commands/signoff-table-sync.test.d.ts +2 -0
- package/dist/commands/signoff-table-sync.test.d.ts.map +1 -0
- package/dist/commands/signoff-table-sync.test.js +126 -0
- package/dist/commands/signoff-table-sync.test.js.map +1 -0
- 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
|
-
|
|
302
|
-
|
|
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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"}
|
package/dist/commands/eject.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/commands/eject.js
CHANGED
|
@@ -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
|