@mmnto/cli 1.4.2 → 1.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.
- package/dist/adapters/gh-utils.d.ts.map +1 -1
- package/dist/adapters/gh-utils.js +14 -11
- package/dist/adapters/gh-utils.js.map +1 -1
- package/dist/adapters/gh-utils.test.js +22 -1
- package/dist/adapters/gh-utils.test.js.map +1 -1
- package/dist/assets/baseline-packs.d.ts +16 -0
- package/dist/assets/baseline-packs.d.ts.map +1 -0
- package/dist/assets/baseline-packs.js +137 -0
- package/dist/assets/baseline-packs.js.map +1 -0
- package/dist/commands/compile.d.ts +1 -0
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +153 -179
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/config-drift.test.js +5 -4
- package/dist/commands/config-drift.test.js.map +1 -1
- package/dist/commands/docs.d.ts +7 -0
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +16 -5
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/docs.test.js +53 -1
- package/dist/commands/docs.test.js.map +1 -1
- package/dist/commands/doctor.d.ts +15 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +409 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/doctor.test.d.ts +2 -0
- package/dist/commands/doctor.test.d.ts.map +1 -0
- package/dist/commands/doctor.test.js +269 -0
- package/dist/commands/doctor.test.js.map +1 -0
- package/dist/commands/extract.d.ts.map +1 -1
- package/dist/commands/extract.js +8 -1
- package/dist/commands/extract.js.map +1 -1
- package/dist/commands/init-detect.d.ts +5 -0
- package/dist/commands/init-detect.d.ts.map +1 -1
- package/dist/commands/init-detect.js +52 -0
- package/dist/commands/init-detect.js.map +1 -1
- package/dist/commands/init-templates.d.ts +16 -1
- package/dist/commands/init-templates.d.ts.map +1 -1
- package/dist/commands/init-templates.js +80 -0
- package/dist/commands/init-templates.js.map +1 -1
- package/dist/commands/init.d.ts +3 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +52 -14
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.test.js +112 -0
- package/dist/commands/init.test.js.map +1 -1
- package/dist/commands/install-hooks.d.ts +24 -3
- package/dist/commands/install-hooks.d.ts.map +1 -1
- package/dist/commands/install-hooks.js +105 -57
- package/dist/commands/install-hooks.js.map +1 -1
- package/dist/commands/install-hooks.test.js +137 -20
- package/dist/commands/install-hooks.test.js.map +1 -1
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +44 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/list.test.d.ts +2 -0
- package/dist/commands/list.test.d.ts.map +1 -0
- package/dist/commands/list.test.js +131 -0
- package/dist/commands/list.test.js.map +1 -0
- package/dist/commands/run-compiled-rules.d.ts +1 -2
- package/dist/commands/run-compiled-rules.d.ts.map +1 -1
- package/dist/commands/run-compiled-rules.js +1 -2
- package/dist/commands/run-compiled-rules.js.map +1 -1
- package/dist/commands/shield-hints.d.ts +6 -0
- package/dist/commands/shield-hints.d.ts.map +1 -0
- package/dist/commands/shield-hints.js +44 -0
- package/dist/commands/shield-hints.js.map +1 -0
- package/dist/commands/shield-hints.test.d.ts +2 -0
- package/dist/commands/shield-hints.test.d.ts.map +1 -0
- package/dist/commands/shield-hints.test.js +151 -0
- package/dist/commands/shield-hints.test.js.map +1 -0
- package/dist/commands/shield.d.ts +6 -4
- package/dist/commands/shield.d.ts.map +1 -1
- package/dist/commands/shield.js +72 -33
- package/dist/commands/shield.js.map +1 -1
- package/dist/commands/shield.test.js +34 -3
- package/dist/commands/shield.test.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +18 -1
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/sync.test.js +17 -1
- package/dist/commands/sync.test.js.map +1 -1
- package/dist/index.js +32 -5
- package/dist/index.js.map +1 -1
- package/dist/orchestrators/anthropic-orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/anthropic-orchestrator.js +1 -0
- package/dist/orchestrators/anthropic-orchestrator.js.map +1 -1
- package/dist/orchestrators/gemini-orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/gemini-orchestrator.js +4 -1
- package/dist/orchestrators/gemini-orchestrator.js.map +1 -1
- package/dist/orchestrators/ollama-orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/ollama-orchestrator.js +8 -4
- package/dist/orchestrators/ollama-orchestrator.js.map +1 -1
- package/dist/orchestrators/openai-orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/openai-orchestrator.js +1 -0
- package/dist/orchestrators/openai-orchestrator.js.map +1 -1
- package/dist/orchestrators/orchestrator.d.ts +2 -0
- package/dist/orchestrators/orchestrator.d.ts.map +1 -1
- package/dist/orchestrators/orchestrator.js.map +1 -1
- package/dist/ui.js +2 -2
- package/dist/ui.js.map +1 -1
- package/dist/utils.d.ts +11 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +68 -14
- package/dist/utils.js.map +1 -1
- package/dist/utils.test.js +52 -3
- package/dist/utils.test.js.map +1 -1
- package/package.json +5 -3
package/dist/commands/compile.js
CHANGED
|
@@ -5,138 +5,8 @@ const TAG = 'Compile';
|
|
|
5
5
|
const COMPILED_RULES_FILE = 'compiled-rules.json';
|
|
6
6
|
const DEFAULT_CONCURRENCY = 5;
|
|
7
7
|
const MAX_CONCURRENCY = 20;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const { extractManualPattern, validateRegex, parseCompilerResponse, sanitizeFileGlobs, engineFields, runOrchestrator, log, existingByHash, options, config, cwd, } = deps;
|
|
11
|
-
// ── Pipeline 1: Manual pattern (zero LLM) ────────
|
|
12
|
-
const manual = extractManualPattern(lesson.body);
|
|
13
|
-
if (manual) {
|
|
14
|
-
// Validate the manually provided pattern
|
|
15
|
-
if (manual.engine === 'regex') {
|
|
16
|
-
const validation = validateRegex(manual.pattern);
|
|
17
|
-
if (!validation.valid) {
|
|
18
|
-
log.warn(TAG, `[${lesson.heading}] Manual pattern rejected: ${validation.reason} — skipping`); // totem-ignore
|
|
19
|
-
return { status: 'failed' };
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
const now = new Date().toISOString();
|
|
23
|
-
const existing = existingByHash.get(lesson.hash);
|
|
24
|
-
const sanitizedGlobs = manual.fileGlobs ? sanitizeFileGlobs(manual.fileGlobs) : undefined;
|
|
25
|
-
return {
|
|
26
|
-
status: 'compiled',
|
|
27
|
-
rule: {
|
|
28
|
-
lessonHash: lesson.hash,
|
|
29
|
-
lessonHeading: lesson.heading,
|
|
30
|
-
message: lesson.heading,
|
|
31
|
-
engine: manual.engine,
|
|
32
|
-
severity: manual.severity,
|
|
33
|
-
...engineFields(manual.engine, manual.pattern),
|
|
34
|
-
compiledAt: now,
|
|
35
|
-
createdAt: existing?.createdAt ?? now,
|
|
36
|
-
...(sanitizedGlobs && sanitizedGlobs.length > 0 ? { fileGlobs: sanitizedGlobs } : {}),
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
// ── Pipeline 2: LLM compilation ──────────────────
|
|
41
|
-
const prompt = `${COMPILER_SYSTEM_PROMPT}\n\n## Lesson to Compile\n\nHeading: ${lesson.heading}\n\n${lesson.body}`;
|
|
42
|
-
const response = await runOrchestrator({
|
|
43
|
-
prompt,
|
|
44
|
-
tag: TAG,
|
|
45
|
-
options,
|
|
46
|
-
config,
|
|
47
|
-
cwd,
|
|
48
|
-
});
|
|
49
|
-
if (response == null) {
|
|
50
|
-
return { status: 'noop' };
|
|
51
|
-
}
|
|
52
|
-
const parsed = parseCompilerResponse(response);
|
|
53
|
-
if (!parsed) {
|
|
54
|
-
log.warn(TAG, `[${lesson.heading}] Failed to parse LLM response — skipping`); // totem-ignore
|
|
55
|
-
return { status: 'failed' };
|
|
56
|
-
}
|
|
57
|
-
if (!parsed.compilable) {
|
|
58
|
-
log.dim(TAG, `[${lesson.heading}] Not compilable (conceptual/architectural) — skipping`); // totem-ignore
|
|
59
|
-
return { status: 'skipped', hash: lesson.hash };
|
|
60
|
-
}
|
|
61
|
-
// ── Gate 1: Severity validation (Proposal 184) ──
|
|
62
|
-
const severity = parsed.severity ?? 'warning';
|
|
63
|
-
const engine = parsed.engine ?? 'regex';
|
|
64
|
-
// ── ast-grep engine ───────────────────────────
|
|
65
|
-
if (engine === 'ast-grep') {
|
|
66
|
-
if (!parsed.astGrepPattern || !parsed.message) {
|
|
67
|
-
log.warn(TAG, `[${lesson.heading}] Missing astGrepPattern or message — skipping`); // totem-ignore
|
|
68
|
-
return { status: 'failed' };
|
|
69
|
-
}
|
|
70
|
-
const now = new Date().toISOString();
|
|
71
|
-
const existing = existingByHash.get(lesson.hash);
|
|
72
|
-
const sanitizedGlobs = parsed.fileGlobs ? sanitizeFileGlobs(parsed.fileGlobs) : undefined;
|
|
73
|
-
return {
|
|
74
|
-
status: 'compiled',
|
|
75
|
-
rule: {
|
|
76
|
-
lessonHash: lesson.hash,
|
|
77
|
-
lessonHeading: lesson.heading,
|
|
78
|
-
message: parsed.message,
|
|
79
|
-
engine: 'ast-grep',
|
|
80
|
-
severity,
|
|
81
|
-
...engineFields('ast-grep', parsed.astGrepPattern),
|
|
82
|
-
compiledAt: now,
|
|
83
|
-
createdAt: existing?.createdAt ?? now,
|
|
84
|
-
...(sanitizedGlobs && sanitizedGlobs.length > 0 ? { fileGlobs: sanitizedGlobs } : {}),
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
// ── Tree-sitter AST engine ────────────────────
|
|
89
|
-
if (engine === 'ast') {
|
|
90
|
-
if (!parsed.astQuery || !parsed.message) {
|
|
91
|
-
log.warn(TAG, `[${lesson.heading}] Missing astQuery or message — skipping`); // totem-ignore
|
|
92
|
-
return { status: 'failed' };
|
|
93
|
-
}
|
|
94
|
-
const now = new Date().toISOString();
|
|
95
|
-
const existing = existingByHash.get(lesson.hash);
|
|
96
|
-
const sanitizedGlobs = parsed.fileGlobs ? sanitizeFileGlobs(parsed.fileGlobs) : undefined;
|
|
97
|
-
return {
|
|
98
|
-
status: 'compiled',
|
|
99
|
-
rule: {
|
|
100
|
-
lessonHash: lesson.hash,
|
|
101
|
-
lessonHeading: lesson.heading,
|
|
102
|
-
message: parsed.message,
|
|
103
|
-
engine: 'ast',
|
|
104
|
-
severity,
|
|
105
|
-
...engineFields('ast', parsed.astQuery),
|
|
106
|
-
compiledAt: now,
|
|
107
|
-
createdAt: existing?.createdAt ?? now,
|
|
108
|
-
...(sanitizedGlobs && sanitizedGlobs.length > 0 ? { fileGlobs: sanitizedGlobs } : {}),
|
|
109
|
-
},
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
// ── Regex engine (default) ────────────────────
|
|
113
|
-
if (!parsed.pattern || !parsed.message) {
|
|
114
|
-
log.warn(TAG, `[${lesson.heading}] Missing pattern or message — skipping`); // totem-ignore
|
|
115
|
-
return { status: 'failed' };
|
|
116
|
-
}
|
|
117
|
-
const validation = validateRegex(parsed.pattern);
|
|
118
|
-
if (!validation.valid) {
|
|
119
|
-
log.warn(TAG, `[${lesson.heading}] Rejected regex: ${validation.reason} — skipping`); // totem-ignore
|
|
120
|
-
return { status: 'failed' };
|
|
121
|
-
}
|
|
122
|
-
const now = new Date().toISOString();
|
|
123
|
-
const existing = existingByHash.get(lesson.hash);
|
|
124
|
-
const sanitizedGlobs = parsed.fileGlobs ? sanitizeFileGlobs(parsed.fileGlobs) : undefined;
|
|
125
|
-
return {
|
|
126
|
-
status: 'compiled',
|
|
127
|
-
rule: {
|
|
128
|
-
lessonHash: lesson.hash,
|
|
129
|
-
lessonHeading: lesson.heading,
|
|
130
|
-
message: parsed.message,
|
|
131
|
-
engine: 'regex',
|
|
132
|
-
severity,
|
|
133
|
-
...engineFields('regex', parsed.pattern),
|
|
134
|
-
compiledAt: now,
|
|
135
|
-
createdAt: existing?.createdAt ?? now,
|
|
136
|
-
...(sanitizedGlobs && sanitizedGlobs.length > 0 ? { fileGlobs: sanitizedGlobs } : {}),
|
|
137
|
-
},
|
|
138
|
-
};
|
|
139
|
-
}
|
|
8
|
+
const CLOUD_CONCURRENCY = 50;
|
|
9
|
+
// ─── Logging helpers ────────────────────────────────
|
|
140
10
|
function logCompiledRule(log, lesson, rule) {
|
|
141
11
|
const engine = rule.engine;
|
|
142
12
|
const severity = rule.severity ?? 'warning';
|
|
@@ -181,7 +51,7 @@ export async function compileCommand(options) {
|
|
|
181
51
|
const path = await import('node:path');
|
|
182
52
|
const { log } = await import('../ui.js');
|
|
183
53
|
const { loadConfig, loadEnv, resolveConfigPath, runOrchestrator } = await import('../utils.js');
|
|
184
|
-
const {
|
|
54
|
+
const { buildCompiledRule, buildManualRule, compileLesson: compileLessonCore, exportLessons, extractManualPattern, hashLesson, loadCompiledRulesFile, parseCompilerResponse, readAllLessons, saveCompiledRulesFile, } = await import('@mmnto/totem');
|
|
185
55
|
const cwd = process.cwd();
|
|
186
56
|
const configPath = resolveConfigPath(cwd);
|
|
187
57
|
loadEnv(cwd);
|
|
@@ -255,10 +125,13 @@ export async function compileCommand(options) {
|
|
|
255
125
|
log.success(TAG, `All ${lessons.length} lessons already processed (${existingRules.length} compiled, ${nonCompilableSet.size} non-compilable). Use --force to recompile.`); // totem-ignore
|
|
256
126
|
}
|
|
257
127
|
else {
|
|
258
|
-
|
|
128
|
+
const { createSpinner } = await import('../ui.js');
|
|
129
|
+
const spinner = await createSpinner(TAG);
|
|
259
130
|
let compiled = 0;
|
|
260
131
|
let skipped = 0;
|
|
261
132
|
let failed = 0;
|
|
133
|
+
let processed = 0;
|
|
134
|
+
const total = toCompile.length;
|
|
262
135
|
const newRules = [...existingRules];
|
|
263
136
|
const currentHashes = new Set(lessons.map((l) => hashLesson(l.heading, l.body)));
|
|
264
137
|
const freshRules = newRules.filter((r) => currentHashes.has(r.lessonHash));
|
|
@@ -268,57 +141,159 @@ export async function compileCommand(options) {
|
|
|
268
141
|
}
|
|
269
142
|
newRules.length = 0;
|
|
270
143
|
newRules.push(...freshRules);
|
|
271
|
-
const
|
|
272
|
-
extractManualPattern,
|
|
273
|
-
validateRegex,
|
|
144
|
+
const coreDeps = {
|
|
274
145
|
parseCompilerResponse,
|
|
275
|
-
|
|
276
|
-
engineFields,
|
|
277
|
-
runOrchestrator,
|
|
278
|
-
log,
|
|
146
|
+
runOrchestrator: (prompt) => runOrchestrator({ prompt, tag: TAG, options, config, cwd, temperature: 0 }),
|
|
279
147
|
existingByHash,
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
148
|
+
callbacks: {
|
|
149
|
+
onWarn: (heading, msg) => log.warn(TAG, `[${heading}] ${msg}`),
|
|
150
|
+
onDim: (heading, msg) => log.dim(TAG, `[${heading}] ${msg}`),
|
|
151
|
+
},
|
|
283
152
|
};
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
const
|
|
289
|
-
const
|
|
290
|
-
|
|
291
|
-
.
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
153
|
+
// ─── Cloud compilation (Proposal 188 Phase 2) ───
|
|
154
|
+
if (options.cloud) {
|
|
155
|
+
const cloudUrl = options.cloud;
|
|
156
|
+
// Compile manual patterns locally first (zero LLM, instant)
|
|
157
|
+
const cloudLessons = [];
|
|
158
|
+
for (const lesson of toCompile) {
|
|
159
|
+
const manualResult = buildManualRule(lesson, existingByHash);
|
|
160
|
+
if (manualResult.rule) {
|
|
161
|
+
// ADR-065: Pipeline 1 error rules require a test fixture
|
|
162
|
+
if (manualResult.rule.severity === 'error' && !testedHashes.has(lesson.hash)) {
|
|
163
|
+
manualResult.rule.severity = 'warning';
|
|
164
|
+
log.warn(TAG, `[${lesson.heading}] Downgraded to warning — no test fixture in .totem/tests/ (ADR-065)`);
|
|
165
|
+
}
|
|
166
|
+
newRules.push(manualResult.rule);
|
|
167
|
+
compiled++;
|
|
168
|
+
logCompiledRule(log, lesson, manualResult.rule);
|
|
169
|
+
}
|
|
170
|
+
else if (manualResult.rejectReason) {
|
|
171
|
+
log.warn(TAG, `[${lesson.heading}] ${manualResult.rejectReason}`);
|
|
172
|
+
failed++;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
cloudLessons.push(lesson);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Skip cloud call if all lessons were manual
|
|
179
|
+
if (cloudLessons.length === 0) {
|
|
180
|
+
spinner.succeed(`${newRules.length} rules — ${compiled} compiled (all manual, no cloud call needed)`);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
log.info(TAG, `Cloud compile: ${cloudLessons.length} lessons → ${cloudUrl}`);
|
|
184
|
+
// Resolve auth token for Cloud Run (uses gcloud identity token or TOTEM_CLOUD_TOKEN env)
|
|
185
|
+
const cloudToken = process.env['TOTEM_CLOUD_TOKEN'] ??
|
|
186
|
+
(await (async () => {
|
|
187
|
+
try {
|
|
188
|
+
const { execSync } = await import('node:child_process');
|
|
189
|
+
return execSync('gcloud auth print-identity-token', { encoding: 'utf-8' }).trim();
|
|
305
190
|
}
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
191
|
+
catch {
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
})());
|
|
195
|
+
// DLP: scrub secrets from lesson content before sending off-machine
|
|
196
|
+
const { maskSecrets } = await import('@mmnto/totem');
|
|
197
|
+
const scrubbedLessons = cloudLessons.map((l) => ({
|
|
198
|
+
heading: maskSecrets(l.heading),
|
|
199
|
+
body: maskSecrets(l.body),
|
|
200
|
+
hash: l.hash,
|
|
201
|
+
}));
|
|
202
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
203
|
+
if (cloudToken)
|
|
204
|
+
headers['Authorization'] = `Bearer ${cloudToken}`;
|
|
205
|
+
const response = await fetch(`${cloudUrl}/compile`, {
|
|
206
|
+
method: 'POST',
|
|
207
|
+
headers,
|
|
208
|
+
body: JSON.stringify({
|
|
209
|
+
lessons: scrubbedLessons,
|
|
210
|
+
prompt: COMPILER_SYSTEM_PROMPT,
|
|
211
|
+
model: options.model ?? config.orchestrator?.defaultModel ?? 'gemini-3-flash-preview',
|
|
212
|
+
concurrency: CLOUD_CONCURRENCY,
|
|
213
|
+
}),
|
|
214
|
+
});
|
|
215
|
+
if (!response.ok) {
|
|
216
|
+
const text = await response.text();
|
|
217
|
+
throw new TotemError('COMPILE_FAILED', `Cloud compile failed: ${text}`, 'Check the cloud endpoint.');
|
|
218
|
+
}
|
|
219
|
+
const data = (await response.json());
|
|
220
|
+
log.info(TAG, `Cloud: ${data.stats.succeeded} succeeded, ${data.stats.failed} failed in ${data.stats.elapsed_seconds}s`);
|
|
221
|
+
for (const cloudResult of data.results) {
|
|
222
|
+
if (!cloudResult.response) {
|
|
223
|
+
failed++;
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
const lesson = toCompile.find((l) => l.hash === cloudResult.hash);
|
|
227
|
+
if (!lesson)
|
|
228
|
+
continue;
|
|
229
|
+
const parsed = parseCompilerResponse(cloudResult.response);
|
|
230
|
+
if (!parsed) {
|
|
231
|
+
failed++;
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
if (!parsed.compilable) {
|
|
235
|
+
nonCompilableSet.add(lesson.hash);
|
|
312
236
|
skipped++;
|
|
313
|
-
|
|
314
|
-
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
const ruleResult = buildCompiledRule(parsed, lesson, existingByHash);
|
|
240
|
+
if (ruleResult.rule) {
|
|
241
|
+
newRules.push(ruleResult.rule);
|
|
242
|
+
compiled++;
|
|
243
|
+
logCompiledRule(log, lesson, ruleResult.rule);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
if (ruleResult.rejectReason) {
|
|
247
|
+
log.warn(TAG, `[${lesson.heading}] ${ruleResult.rejectReason} — skipping`);
|
|
248
|
+
}
|
|
315
249
|
failed++;
|
|
316
|
-
|
|
317
|
-
case 'noop':
|
|
318
|
-
break;
|
|
250
|
+
}
|
|
319
251
|
}
|
|
320
|
-
|
|
252
|
+
spinner.succeed(`${newRules.length} rules — ${compiled} compiled, ${skipped} skipped, ${failed} failed (cloud: ${data.stats.elapsed_seconds}s)`);
|
|
253
|
+
} // end cloudLessons.length > 0
|
|
321
254
|
}
|
|
255
|
+
else {
|
|
256
|
+
// Compile lessons in parallel batches (Proposal 188 Phase 1)
|
|
257
|
+
const parsed = Number(options.concurrency ?? DEFAULT_CONCURRENCY);
|
|
258
|
+
const CONCURRENCY = Math.min(MAX_CONCURRENCY, Math.max(1, Number.isNaN(parsed) ? DEFAULT_CONCURRENCY : parsed));
|
|
259
|
+
for (let i = 0; i < toCompile.length; i += CONCURRENCY) {
|
|
260
|
+
const batch = toCompile.slice(i, i + CONCURRENCY);
|
|
261
|
+
const results = await Promise.all(batch.map((lesson) => compileLessonCore(lesson, COMPILER_SYSTEM_PROMPT, coreDeps)
|
|
262
|
+
.then((result) => ({ lesson, result }))
|
|
263
|
+
.catch((err) => {
|
|
264
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
265
|
+
log.warn(TAG, `[${lesson.heading}] ${message} — skipping`);
|
|
266
|
+
return { lesson, result: { status: 'failed' } };
|
|
267
|
+
})));
|
|
268
|
+
processed += batch.length;
|
|
269
|
+
spinner.update(`${processed}/${total} lessons (${Math.round((processed / total) * 100)}%)`);
|
|
270
|
+
for (const { lesson, result } of results) {
|
|
271
|
+
switch (result.status) {
|
|
272
|
+
case 'compiled':
|
|
273
|
+
// ADR-065: Pipeline 1 error rules require a test fixture
|
|
274
|
+
if (extractManualPattern(lesson.body) &&
|
|
275
|
+
result.rule.severity === 'error' &&
|
|
276
|
+
!testedHashes.has(lesson.hash)) {
|
|
277
|
+
result.rule.severity = 'warning';
|
|
278
|
+
log.warn(TAG, `[${lesson.heading}] Downgraded to warning — no test fixture in .totem/tests/ (ADR-065)`);
|
|
279
|
+
}
|
|
280
|
+
newRules.push(result.rule);
|
|
281
|
+
compiled++;
|
|
282
|
+
logCompiledRule(log, lesson, result.rule);
|
|
283
|
+
break;
|
|
284
|
+
case 'skipped':
|
|
285
|
+
nonCompilableSet.add(result.hash);
|
|
286
|
+
skipped++;
|
|
287
|
+
break;
|
|
288
|
+
case 'failed':
|
|
289
|
+
failed++;
|
|
290
|
+
break;
|
|
291
|
+
case 'noop':
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
} // end cloud/local else
|
|
322
297
|
if (!options.raw) {
|
|
323
298
|
// Prune stale non-compilable hashes (lesson was edited or removed)
|
|
324
299
|
const freshNonCompilable = [...nonCompilableSet].filter((h) => currentHashes.has(h));
|
|
@@ -341,8 +316,7 @@ export async function compileCommand(options) {
|
|
|
341
316
|
rule_count: newRules.length,
|
|
342
317
|
});
|
|
343
318
|
log.dim(TAG, `Manifest: ${inputHash.slice(0, 8)}…→${outputHash.slice(0, 8)}…`);
|
|
344
|
-
|
|
345
|
-
log.success(TAG, `${newRules.length} total rules saved to ${config.totemDir}/${COMPILED_RULES_FILE}`);
|
|
319
|
+
spinner.succeed(`${newRules.length} rules — ${compiled} compiled, ${skipped} skipped, ${failed} failed`);
|
|
346
320
|
}
|
|
347
321
|
}
|
|
348
322
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,uDAAuD;AAEvD,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAgB7B,uDAAuD;AAEvD,SAAS,eAAe,CACtB,GAAoD,EACpD,MAAmB,EACnB,IAAkB;IAElB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC5C,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,GAAG,CAAC,OAAO,CACT,GAAG,EACH,IAAI,MAAM,CAAC,OAAO,yBAAyB,QAAQ,MAAM,IAAI,CAAC,cAAc,EAAE,CAC/E,CAAC,CAAC,eAAe;IACpB,CAAC;SAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,oBAAoB,QAAQ,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,eAAe;IACxG,CAAC;SAAM,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,0CAA0C;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,GAAG,CAAC,OAAO,CACT,GAAG,EACH,IAAI,MAAM,CAAC,OAAO,sBAAsB,YAAY,KAAK,QAAQ,MAAM,IAAI,CAAC,OAAO,EAAE,CACtF,CAAC,CAAC,eAAe;IACpB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,sBAAsB,QAAQ,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe;IAC3G,CAAC;AACH,CAAC;AAED,uDAAuD;AAEvD,SAAS,eAAe,CACtB,QAAgB,EAChB,EAA4B,EAC5B,IAAgC;IAEhC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,MAAM,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/C,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uDAAuD;AAEvD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAuB;IAC1D,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAChG,MAAM,EACJ,iBAAiB,EACjB,eAAe,EACf,aAAa,EAAE,iBAAiB,EAChC,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,qBAAqB,GACtB,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEzC,8CAA8C;IAC9C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,kBAAkB,CAAC,MAAM,wBAAwB,CAAC,CAAC,CAAC,eAAe;YAC1F,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3F,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,OAAO,EAAE,YAAY,KAAK,CAAC,OAAO,EAAE;oBACpC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;oBAC5B,IAAI;oBACJ,GAAG,EAAE,wBAAwB,KAAK,CAAC,OAAO,qCAAqC,IAAI,EAAE;oBACrF,UAAU,EAAE,KAAK,CAAC,MAAM;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,qDAAqD,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAClB,YAAY,EACZ,uCAAuC,EACvC,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,eAAe;IAEjE,4DAA4D;IAC5D,CAAC;QACC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAChF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,aAAa,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,aAAa,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,IAAI,UAAU,CAClB,qBAAqB,EACrB,GAAG,MAAM,CAAC,MAAM,8DAA8D,EAC9E,uCAAuC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAEzD,4DAA4D;IAC5D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,YAAY,GAAsB,OAAO,CAAC,KAAK;YACnD,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;YAC9C,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;QACzC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QAEnE,MAAM,SAAS,GAAkB,EAAE,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,mBAAmB;YAC3D,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,2BAA2B;YACrE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,CACT,GAAG,EACH,OAAO,OAAO,CAAC,MAAM,+BAA+B,aAAa,CAAC,MAAM,cAAc,gBAAgB,CAAC,IAAI,6CAA6C,CACzJ,CAAC,CAAC,eAAe;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;YAC/B,MAAM,QAAQ,GAAmB,CAAC,GAAG,aAAa,CAAC,CAAC;YAEpD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACnD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACf,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,MAAM,0CAA0C,CAAC,CAAC,CAAC,eAAe;YAC3F,CAAC;YACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;YAE7B,MAAM,QAAQ,GAAG;gBACf,qBAAqB;gBACrB,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAClC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC7E,cAAc;gBACd,SAAS,EAAE;oBACT,MAAM,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;oBAC9E,KAAK,EAAE,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;iBAC7E;aACF,CAAC;YAEF,mDAAmD;YACnD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;gBAE/B,4DAA4D;gBAC5D,MAAM,YAAY,GAAkB,EAAE,CAAC;gBACvC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;oBAC/B,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;oBAC7D,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;wBACtB,yDAAyD;wBACzD,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC7E,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;4BACvC,GAAG,CAAC,IAAI,CACN,GAAG,EACH,IAAI,MAAM,CAAC,OAAO,sEAAsE,CACzF,CAAC;wBACJ,CAAC;wBACD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACjC,QAAQ,EAAE,CAAC;wBACX,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC;yBAAM,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;wBACrC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;wBAClE,MAAM,EAAE,CAAC;oBACX,CAAC;yBAAM,CAAC;wBACN,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAED,6CAA6C;gBAC7C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,OAAO,CACb,GAAG,QAAQ,CAAC,MAAM,YAAY,QAAQ,8CAA8C,CACrF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,YAAY,CAAC,MAAM,cAAc,QAAQ,EAAE,CAAC,CAAC;oBAE7E,yFAAyF;oBACzF,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;wBAChC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;4BACjB,IAAI,CAAC;gCACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gCACxD,OAAO,QAAQ,CAAC,kCAAkC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;4BACpF,CAAC;4BAAC,MAAM,CAAC;gCACP,OAAO,SAAS,CAAC;4BACnB,CAAC;wBACH,CAAC,CAAC,EAAE,CAAC,CAAC;oBAER,oEAAoE;oBACpE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;oBACrD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC/C,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC/B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;wBACzB,IAAI,EAAE,CAAC,CAAC,IAAI;qBACb,CAAC,CAAC,CAAC;oBAEJ,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;oBAC/E,IAAI,UAAU;wBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,UAAU,EAAE,CAAC;oBAElE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,UAAU,EAAE;wBAClD,MAAM,EAAE,MAAM;wBACd,OAAO;wBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,eAAe;4BACxB,MAAM,EAAE,sBAAsB;4BAC9B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,EAAE,YAAY,IAAI,wBAAwB;4BACrF,WAAW,EAAE,iBAAiB;yBAC/B,CAAC;qBACH,CAAC,CAAC;oBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;wBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACnC,MAAM,IAAI,UAAU,CAClB,gBAAgB,EAChB,yBAAyB,IAAI,EAAE,EAC/B,2BAA2B,CAC5B,CAAC;oBACJ,CAAC;oBAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGlC,CAAC;oBAEF,GAAG,CAAC,IAAI,CACN,GAAG,EACH,UAAU,IAAI,CAAC,KAAK,CAAC,SAAS,eAAe,IAAI,CAAC,KAAK,CAAC,MAAM,cAAc,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAC1G,CAAC;oBAEF,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;4BAC1B,MAAM,EAAE,CAAC;4BACT,SAAS;wBACX,CAAC;wBAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC;wBAClE,IAAI,CAAC,MAAM;4BAAE,SAAS;wBAEtB,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,QAAS,CAAC,CAAC;wBAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,SAAS;wBACX,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;4BACvB,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAClC,OAAO,EAAE,CAAC;4BACV,SAAS;wBACX,CAAC;wBAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBACrE,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;4BACpB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BAC/B,QAAQ,EAAE,CAAC;4BACX,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;wBAChD,CAAC;6BAAM,CAAC;4BACN,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gCAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,YAAY,aAAa,CAAC,CAAC;4BAC7E,CAAC;4BACD,MAAM,EAAE,CAAC;wBACX,CAAC;oBACH,CAAC;oBAED,OAAO,CAAC,OAAO,CACb,GAAG,QAAQ,CAAC,MAAM,YAAY,QAAQ,cAAc,OAAO,aAAa,MAAM,mBAAmB,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAChI,CAAC;gBACJ,CAAC,CAAC,8BAA8B;YAClC,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,mBAAmB,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,eAAe,EACf,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CACjE,CAAC;gBACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;oBACvD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;oBAClD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACnB,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,CAAC;yBACxD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;yBACtC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACjE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,aAAa,CAAC,CAAC;wBAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAiB,EAAE,EAAE,CAAC;oBAC3D,CAAC,CAAC,CACL,CACF,CAAC;oBAEF,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;oBAC1B,OAAO,CAAC,MAAM,CACZ,GAAG,SAAS,IAAI,KAAK,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAC5E,CAAC;oBAEF,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;wBACzC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;4BACtB,KAAK,UAAU;gCACb,yDAAyD;gCACzD,IACE,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;oCACjC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO;oCAChC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAC9B,CAAC;oCACD,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;oCACjC,GAAG,CAAC,IAAI,CACN,GAAG,EACH,IAAI,MAAM,CAAC,OAAO,sEAAsE,CACzF,CAAC;gCACJ,CAAC;gCACD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gCAC3B,QAAQ,EAAE,CAAC;gCACX,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gCAC1C,MAAM;4BACR,KAAK,SAAS;gCACZ,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gCAClC,OAAO,EAAE,CAAC;gCACV,MAAM;4BACR,KAAK,QAAQ;gCACX,MAAM,EAAE,CAAC;gCACT,MAAM;4BACR,KAAK,MAAM;gCACT,MAAM;wBACV,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,uBAAuB;YAEzB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjB,mEAAmE;gBACnE,MAAM,kBAAkB,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrF,qBAAqB,CAAC,SAAS,EAAE;oBAC/B,OAAO,EAAE,CAAC;oBACV,KAAK,EAAE,QAAQ;oBACf,aAAa,EAAE,kBAAkB;iBAClC,CAAC,CAAC;gBAEH,oDAAoD;gBACpD,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,GACnE,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBACjD,oBAAoB,CAAC,YAAY,EAAE;oBACjC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACrC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,EAAE,YAAY,IAAI,SAAS;oBACtE,UAAU,EAAE,SAAS;oBACrB,WAAW,EAAE,UAAU;oBACvB,UAAU,EAAE,QAAQ,CAAC,MAAM;iBAC5B,CAAC,CAAC;gBACH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAE/E,OAAO,CAAC,OAAO,CACb,GAAG,QAAQ,CAAC,MAAM,YAAY,QAAQ,cAAc,OAAO,aAAa,MAAM,SAAS,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,gBAAgB,CACxB,4EAA4E,EAC5E,4EAA4E,EAC5E,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,0EAA0E,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACzC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,OAAO,CAAC,MAAM,aAAa,QAAQ,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe;QAChG,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -33,10 +33,11 @@ describe('dev hooks match consumer templates', () => {
|
|
|
33
33
|
expect(consumerHook).toContain('"main"');
|
|
34
34
|
expect(consumerHook).toContain('"master"');
|
|
35
35
|
});
|
|
36
|
-
it('dev pre-push runs
|
|
37
|
-
const consumerHook = buildPrePushHook('pnpm
|
|
38
|
-
expect(devPrePush).toContain('
|
|
39
|
-
|
|
36
|
+
it('dev pre-push runs totem lint like consumer template', () => {
|
|
37
|
+
const consumerHook = buildPrePushHook('pnpm dlx @mmnto/cli');
|
|
38
|
+
expect(devPrePush).toContain('totem lint');
|
|
39
|
+
// Consumer hook uses dynamic resolution: $TOTEM_CMD lint (unquoted for word splitting)
|
|
40
|
+
expect(consumerHook).toContain('$TOTEM_CMD lint');
|
|
40
41
|
});
|
|
41
42
|
it('dev post-merge runs totem sync like consumer template', () => {
|
|
42
43
|
expect(devPostMerge).toContain('totem sync');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-drift.test.js","sourceRoot":"","sources":["../../src/commands/config-drift.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7D,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,wDAAwD;AAExD,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAElD,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,kCAAkC;QAClC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC
|
|
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/docs.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import type { DocTarget } from '@mmnto/totem';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve whether a doc target should receive user-facing post-processing
|
|
4
|
+
* (issue ref stripping, manual content injection, live metrics).
|
|
5
|
+
* Explicit `userFacing` flag wins; otherwise falls back to readme.md detection.
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveIsUserFacing(doc: DocTarget): boolean;
|
|
1
8
|
export declare const DOCS_SYSTEM_PROMPT = "# Docs System Prompt \u2014 Automated Documentation Sync\n\n## Identity & Role\nYou are a meticulous Technical Writer responsible for keeping project documentation accurate and up-to-date. You rewrite documentation files to reflect the latest project state.\n\n## Core Mission\nGiven a documentation file, its purpose, and recent project changes (git log, closed issues), produce an updated version of the entire file that accurately reflects the current state.\n\n## Critical Rules\n- **Full Rewrite:** Output the ENTIRE updated file content \u2014 not a diff, not a patch, the complete file.\n- **Preserve Structure:** Maintain the existing document's structure, tone, and formatting conventions unless changes require restructuring.\n- **Evidence-Based:** Only update information that is supported by the provided git log, closed issues, or active work context. Do NOT invent features or status changes.\n- **Phase Numbering:** If the document references phases, use ONLY the phase numbering from the provided active_work.md context. Do NOT change or renumber phases.\n- **Conservative Updates:** When in doubt, keep the existing text. Only change what the evidence supports.\n- **Manual Content:** If `<manual_content>` blocks are provided, include them VERBATIM in the appropriate section of the document. Do NOT rewrite, summarize, or omit any part of manual content. These are hand-written by the maintainer and must survive regeneration.\n- **Checkbox Integrity:** NEVER change the checked/unchecked state of markdown checkboxes (`[x]` / `[ ]`) unless the commit history explicitly contains a revert, deprecation, or re-opening of the referenced item. Priority rankings in active_work.md are NOT evidence of completion status.\n- **XML Wrapper (MANDATORY):** Wrap your ENTIRE output inside `<updated_document>` and `</updated_document>` tags. No text before or after the tags. No markdown code fences. Example:\n\n```\n<updated_document>\n# My Document\nUpdated content here...\n</updated_document>\n```\n\n## Pinned Content (DO NOT change)\n- **README hero**: The tagline is: \"Stop repeating yourself to your AI.\" followed by the goldfish subtitle: \"AI coding agents are brilliant goldfish. Totem gives them a memory.\" Do not replace, rephrase, or revert these lines.\n- **README identity**: \"Totem doesn't ship with your app. It lives in your workflow.\" Do not remove this line.\n- **3-Layer pitch**: \"Your AI doesn't have to be obedient. It just has to push code.\" Do not remove or rephrase this line.\n- **Performance claim**: The rule count changes with each compile. Read the current count from `.totem/compiled-rules.json` if available in context, otherwise keep the existing number. The \"under 2 seconds\" benchmark is stable.\n- **Why Totem pillars**: The three pillars are: (1) Zero-LLM enforcement, (2) Shared memory across repos, (3) Works with any AI agent. These must appear near the top of the README.\n- **Works Without AI**: Totem's enforcement layer requires no AI/API keys/network. The AI helps write rules; the rules enforce themselves. Do not remove this distinction.\n- **Totem Mesh**: The \"totem link\" command connects repos into a shared knowledge mesh. Do not remove or bury this section.\n\n## Command Glossary (DO NOT confuse these)\n- **`totem lint`**: Runs compiled AST/regex rules against a diff. Zero LLM. Fast (~2s). No API keys needed. Used in pre-push hooks and CI. Lives in the Lite configuration tier.\n- **`totem shield`**: AI-powered code review. Queries LanceDB for context, sends diff + knowledge to an LLM. Slow (~18s). Requires API keys. Used before opening PRs. Lives in the Full configuration tier.\n- These are DIFFERENT commands with DIFFERENT purposes. Never describe `shield` as \"deterministic\" or `lint` as \"AI-powered.\"\n\n## Writing Style (MANDATORY)\n- **No Marketing Language:** NEVER use marketing-centric terms: \"comprehensive\", \"robust\", \"seamless\", \"cutting-edge\", \"state-of-the-art\", \"revolutionary\", \"guarantee\", \"guarantees\". Use objective, factual descriptions instead. Say what the feature does, not how impressive it is.\n\n## Formatting Rules\n- **Sub-Bullet Threshold:** When a feature list exceeds 3 items, use nested sub-bullets instead of comma-separated inline lists. Group related items into named categories (e.g., \"Security:\", \"DX:\", \"Orchestration:\").\n- **Completed Phase Summary:** Phases marked `[x]` should be summarized in 1-2 sentences max. Do NOT expand completed phases with every PR number \u2014 use categorized sub-bullets for the key capability areas only.\n- **Line Length:** No single bullet point should exceed two short sentences. If it does, break it into sub-bullets or summarize. Readability is more important than completeness.\n- **No Issue/PR References:** NEVER include GitHub issue or PR references (e.g., `#714`, `(#801)`, `(#714, #801)`) in user-facing documentation. These are internal tracking artifacts. Describe features by what they do, not by which ticket shipped them.\n- **No Internal Jargon:** Do not use internal terms like \"Pipeline 1\", \"Pipeline 2\", \"ADR-058\", or \"Proposal 186\" in user-facing copy. Use plain language that a new user would understand.\n- **No Maintenance Comments:** Do not include comments about how documentation is maintained, generated, or structured. The output is the final document, not a template.\n";
|
|
2
9
|
/**
|
|
3
10
|
* Extract the file content from the LLM's `<updated_document>` wrapper.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAkB7D;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAG3D;AAWD,eAAO,MAAM,kBAAkB,kxKAiD9B,CAAC;AA8JF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAetD;AA8BD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAe3D;AAiCD,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6OvF"}
|
package/dist/commands/docs.js
CHANGED
|
@@ -5,6 +5,17 @@ import { GitHubCliAdapter } from '../adapters/github-cli.js';
|
|
|
5
5
|
import { getGitLogSince, getLatestTag, isFileDirty } from '../git.js';
|
|
6
6
|
import { log } from '../ui.js';
|
|
7
7
|
import { getSystemPrompt, loadConfig, loadEnv, resolveConfigPath, runOrchestrator, wrapXml, writeOutput, } from '../utils.js';
|
|
8
|
+
// ─── Helpers ─────────────────────────────────────────────
|
|
9
|
+
/**
|
|
10
|
+
* Resolve whether a doc target should receive user-facing post-processing
|
|
11
|
+
* (issue ref stripping, manual content injection, live metrics).
|
|
12
|
+
* Explicit `userFacing` flag wins; otherwise falls back to readme.md detection.
|
|
13
|
+
*/
|
|
14
|
+
export function resolveIsUserFacing(doc) {
|
|
15
|
+
if (typeof doc.userFacing === 'boolean')
|
|
16
|
+
return doc.userFacing;
|
|
17
|
+
return path.basename(doc.path).toLowerCase() === 'readme.md';
|
|
18
|
+
}
|
|
8
19
|
// ─── Constants ──────────────────────────────────────────
|
|
9
20
|
const TAG = 'Docs';
|
|
10
21
|
const MAX_DOC_CHARS = 80_000;
|
|
@@ -117,8 +128,8 @@ function assemblePrompt(doc, currentContent, releaseContext, activeWork, systemP
|
|
|
117
128
|
sections.push('\n=== ACTIVE WORK (SOURCE OF TRUTH FOR PHASES & PRIORITIES) ===');
|
|
118
129
|
sections.push(wrapXml('active_work', activeWork));
|
|
119
130
|
}
|
|
120
|
-
// Manual content — only inject into user-facing docs
|
|
121
|
-
const isUserFacing =
|
|
131
|
+
// Manual content — only inject into user-facing docs, not internal docs
|
|
132
|
+
const isUserFacing = resolveIsUserFacing(doc);
|
|
122
133
|
if (isUserFacing) {
|
|
123
134
|
try {
|
|
124
135
|
const manualPath = path.resolve('docs', 'manual');
|
|
@@ -234,8 +245,8 @@ function casePreservingReplace(original, replacement) {
|
|
|
234
245
|
return replacement;
|
|
235
246
|
}
|
|
236
247
|
export function stripMarketingTerms(content) {
|
|
237
|
-
// Split on
|
|
238
|
-
const parts = content.split(/(
|
|
248
|
+
// Split on protected spans: manual_content blocks, fenced code, inline code, URLs/link targets
|
|
249
|
+
const parts = content.split(/(<manual_content\b[^>]*>[\s\S]*?<\/manual_content>|```[\s\S]*?```|`[^`]+`|https?:\/\/[^\s)]+|\]\([^)]+\))/g);
|
|
239
250
|
return parts
|
|
240
251
|
.map((part, i) => {
|
|
241
252
|
// Odd-indexed parts are protected spans — leave them alone
|
|
@@ -392,7 +403,7 @@ export async function docsCommand(inputs, options) {
|
|
|
392
403
|
continue;
|
|
393
404
|
}
|
|
394
405
|
// Post-process: deterministic sanitization of LLM output
|
|
395
|
-
const isUserFacingDoc =
|
|
406
|
+
const isUserFacingDoc = resolveIsUserFacing(doc);
|
|
396
407
|
const withoutRefs = isUserFacingDoc ? stripIssueRefs(extracted) : extracted;
|
|
397
408
|
const cleaned = stripMarketingTerms(withoutRefs);
|
|
398
409
|
const trimmedContent = cleaned.trimEnd() + '\n';
|