@mmnto/cli 1.5.1 → 1.5.3
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/add-lesson.d.ts.map +1 -1
- package/dist/commands/add-lesson.js +21 -18
- package/dist/commands/add-lesson.js.map +1 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +4 -4
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/bridge.d.ts +1 -1
- package/dist/commands/bridge.d.ts.map +1 -1
- package/dist/commands/bridge.js +7 -7
- package/dist/commands/bridge.js.map +1 -1
- package/dist/commands/briefing.d.ts.map +1 -1
- package/dist/commands/briefing.js +8 -6
- package/dist/commands/briefing.js.map +1 -1
- package/dist/commands/compile-templates.d.ts +1 -1
- package/dist/commands/compile-templates.d.ts.map +1 -1
- package/dist/commands/compile-templates.js +4 -3
- package/dist/commands/compile-templates.js.map +1 -1
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +2 -2
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +22 -14
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/drift.d.ts.map +1 -1
- package/dist/commands/drift.js +3 -3
- package/dist/commands/drift.js.map +1 -1
- package/dist/commands/eject.d.ts.map +1 -1
- package/dist/commands/eject.js +3 -3
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/explain.d.ts.map +1 -1
- package/dist/commands/explain.js +4 -4
- package/dist/commands/explain.js.map +1 -1
- package/dist/commands/extract.d.ts.map +1 -1
- package/dist/commands/extract.js +4 -4
- package/dist/commands/extract.js.map +1 -1
- package/dist/commands/handoff.d.ts.map +1 -1
- package/dist/commands/handoff.js +4 -3
- package/dist/commands/handoff.js.map +1 -1
- package/dist/commands/init.d.ts +1 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +8 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-hooks.d.ts.map +1 -1
- package/dist/commands/install-hooks.js +15 -0
- package/dist/commands/install-hooks.js.map +1 -1
- package/dist/commands/install-hooks.test.js +20 -0
- package/dist/commands/install-hooks.test.js.map +1 -1
- package/dist/commands/link.d.ts.map +1 -1
- package/dist/commands/link.js +1 -1
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +22 -1
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/lint.test.d.ts +2 -0
- package/dist/commands/lint.test.d.ts.map +1 -0
- package/dist/commands/lint.test.js +107 -0
- package/dist/commands/lint.test.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/migrate-lessons.d.ts.map +1 -1
- package/dist/commands/migrate-lessons.js +6 -6
- package/dist/commands/migrate-lessons.js.map +1 -1
- package/dist/commands/run-compiled-rules.d.ts +2 -0
- package/dist/commands/run-compiled-rules.d.ts.map +1 -1
- package/dist/commands/run-compiled-rules.js +4 -3
- package/dist/commands/run-compiled-rules.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +3 -3
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/shield-classify.d.ts +10 -0
- package/dist/commands/shield-classify.d.ts.map +1 -0
- package/dist/commands/shield-classify.js +137 -0
- package/dist/commands/shield-classify.js.map +1 -0
- package/dist/commands/shield-classify.test.d.ts +2 -0
- package/dist/commands/shield-classify.test.d.ts.map +1 -0
- package/dist/commands/shield-classify.test.js +180 -0
- package/dist/commands/shield-classify.test.js.map +1 -0
- package/dist/commands/shield-templates.d.ts +66 -0
- package/dist/commands/shield-templates.d.ts.map +1 -1
- package/dist/commands/shield-templates.js +122 -0
- package/dist/commands/shield-templates.js.map +1 -1
- package/dist/commands/shield.d.ts +23 -4
- package/dist/commands/shield.d.ts.map +1 -1
- package/dist/commands/shield.js +213 -65
- package/dist/commands/shield.js.map +1 -1
- package/dist/commands/shield.test.js +225 -1
- package/dist/commands/shield.test.js.map +1 -1
- package/dist/commands/spec.d.ts +2 -3
- package/dist/commands/spec.d.ts.map +1 -1
- package/dist/commands/spec.js +11 -8
- package/dist/commands/spec.js.map +1 -1
- package/dist/commands/spec.test.js +18 -18
- package/dist/commands/spec.test.js.map +1 -1
- package/dist/commands/stats.d.ts.map +1 -1
- package/dist/commands/stats.js +3 -3
- package/dist/commands/stats.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +14 -8
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/triage.d.ts.map +1 -1
- package/dist/commands/triage.js +5 -4
- package/dist/commands/triage.js.map +1 -1
- package/dist/commands/wrap.d.ts.map +1 -1
- package/dist/commands/wrap.js +1 -1
- package/dist/commands/wrap.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -2
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
package/dist/commands/shield.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import * as path from 'node:path';
|
|
2
|
-
import { getDiffForReview } from '../git.js';
|
|
3
1
|
import { bold, errorColor, log, success as successColor } from '../ui.js';
|
|
4
2
|
import { formatLessonSection, formatResults, getSystemPrompt, loadConfig, loadEnv, partitionLessons, requireEmbedding, resolveConfigPath, runOrchestrator, sanitize, wrapXml, writeOutput, } from '../utils.js';
|
|
5
|
-
import {
|
|
6
|
-
import { extractShieldHints } from './shield-hints.js';
|
|
7
|
-
import { MAX_CODE_RESULTS, MAX_DIFF_CHARS, MAX_LESSONS, MAX_SESSION_RESULTS, MAX_SPEC_RESULTS, QUERY_DIFF_TRUNCATE, SHIELD_LEARN_SYSTEM_PROMPT, SPEC_SEARCH_POOL, STRUCTURAL_SYSTEM_PROMPT, SYSTEM_PROMPT, TAG, VERDICT_RE, } from './shield-templates.js';
|
|
3
|
+
import { MAX_CODE_RESULTS, MAX_DIFF_CHARS, MAX_LESSONS, MAX_SESSION_RESULTS, MAX_SPEC_RESULTS, QUERY_DIFF_TRUNCATE, SHIELD_LEARN_SYSTEM_PROMPT, ShieldStructuredVerdictSchema, SPEC_SEARCH_POOL, STRUCTURAL_SYSTEM_PROMPT_V2, SYSTEM_PROMPT_V2, TAG, VERDICT_RE, } from './shield-templates.js';
|
|
8
4
|
// Re-export constants & prompts so existing consumers are not broken
|
|
9
5
|
export { MAX_DIFF_CHARS, SHIELD_LEARN_SYSTEM_PROMPT, STRUCTURAL_SYSTEM_PROMPT, } from './shield-templates.js';
|
|
10
6
|
async function retrieveContext(query, store) {
|
|
@@ -17,7 +13,8 @@ async function retrieveContext(query, store) {
|
|
|
17
13
|
const { lessons, specs } = partitionLessons(allSpecs, MAX_LESSONS, MAX_SPEC_RESULTS);
|
|
18
14
|
return { specs, sessions, code, lessons };
|
|
19
15
|
}
|
|
20
|
-
function buildSearchQuery(changedFiles, diff) {
|
|
16
|
+
async function buildSearchQuery(changedFiles, diff) {
|
|
17
|
+
const path = await import('node:path');
|
|
21
18
|
const fileNames = changedFiles.map((f) => path.basename(f)).join(' ');
|
|
22
19
|
const diffSnippet = diff.slice(0, QUERY_DIFF_TRUNCATE);
|
|
23
20
|
return `${fileNames} ${diffSnippet}`.trim();
|
|
@@ -93,15 +90,126 @@ export function parseVerdict(content) {
|
|
|
93
90
|
return null;
|
|
94
91
|
return { pass: match[1] === 'PASS', reason: match[2].trim() };
|
|
95
92
|
}
|
|
93
|
+
// ─── V2 Structured verdict parsing ───────────────────
|
|
94
|
+
/**
|
|
95
|
+
* Three-layer JSON extraction from LLM plain-text response.
|
|
96
|
+
* Layer 1: XML tags, Layer 2: markdown code fences, Layer 3: bare JSON.
|
|
97
|
+
* Returns null if all layers fail (caller falls back to V1 regex parseVerdict).
|
|
98
|
+
*/
|
|
99
|
+
export function extractStructuredVerdict(content) {
|
|
100
|
+
// Layer 1 — XML tags (primary)
|
|
101
|
+
const xmlMatch = content.match(/<shield_verdict>([\s\S]*?)<\/shield_verdict>/);
|
|
102
|
+
if (xmlMatch) {
|
|
103
|
+
try {
|
|
104
|
+
const parsed = JSON.parse(xmlMatch[1]);
|
|
105
|
+
const result = ShieldStructuredVerdictSchema.safeParse(parsed);
|
|
106
|
+
if (result.success)
|
|
107
|
+
return result.data;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// Move to next layer
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Layer 2 — Markdown code fences (fallback)
|
|
114
|
+
const fenceMatch = content.match(/(?:```|~~~)(?:json)?\s*\n([\s\S]*?)\n\s*(?:```|~~~)/);
|
|
115
|
+
if (fenceMatch) {
|
|
116
|
+
try {
|
|
117
|
+
const parsed = JSON.parse(fenceMatch[1]);
|
|
118
|
+
const result = ShieldStructuredVerdictSchema.safeParse(parsed);
|
|
119
|
+
if (result.success)
|
|
120
|
+
return result.data;
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// Move to next layer
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Layer 3 — Bare JSON (last resort, guarded by "findings" keyword)
|
|
127
|
+
const firstBrace = content.indexOf('{');
|
|
128
|
+
const lastBrace = content.lastIndexOf('}');
|
|
129
|
+
if (firstBrace !== -1 && lastBrace > firstBrace && content.includes('"findings"')) {
|
|
130
|
+
try {
|
|
131
|
+
const parsed = JSON.parse(content.slice(firstBrace, lastBrace + 1));
|
|
132
|
+
const result = ShieldStructuredVerdictSchema.safeParse(parsed);
|
|
133
|
+
if (result.success)
|
|
134
|
+
return result.data;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// All layers exhausted
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Deterministic pass/fail based on findings.
|
|
144
|
+
* CRITICAL = fail, WARN/INFO = pass with advisory.
|
|
145
|
+
*/
|
|
146
|
+
export function computeVerdict(verdict) {
|
|
147
|
+
const criticalCount = verdict.findings.filter((f) => f.severity === 'CRITICAL').length;
|
|
148
|
+
const warnCount = verdict.findings.filter((f) => f.severity === 'WARN').length;
|
|
149
|
+
const infoCount = verdict.findings.filter((f) => f.severity === 'INFO').length;
|
|
150
|
+
const pass = criticalCount === 0;
|
|
151
|
+
let reason;
|
|
152
|
+
if (pass && warnCount === 0 && infoCount === 0) {
|
|
153
|
+
reason = 'No issues found';
|
|
154
|
+
}
|
|
155
|
+
else if (pass) {
|
|
156
|
+
const parts = [];
|
|
157
|
+
if (warnCount > 0)
|
|
158
|
+
parts.push(`${warnCount} warning${warnCount !== 1 ? 's' : ''}`);
|
|
159
|
+
if (infoCount > 0)
|
|
160
|
+
parts.push(`${infoCount} info`);
|
|
161
|
+
reason = `No critical issues (${parts.join(', ')})`;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const parts = [];
|
|
165
|
+
parts.push(`${criticalCount} critical`);
|
|
166
|
+
if (warnCount > 0)
|
|
167
|
+
parts.push(`${warnCount} warning${warnCount !== 1 ? 's' : ''}`);
|
|
168
|
+
reason = `${parts.join(', ')} found`;
|
|
169
|
+
}
|
|
170
|
+
return { pass, reason };
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Human-readable output for stderr.
|
|
174
|
+
* Groups findings by severity (CRITICAL → WARN → INFO) with colored header.
|
|
175
|
+
*/
|
|
176
|
+
export function formatVerdictForDisplay(verdict, pass) {
|
|
177
|
+
const lines = [];
|
|
178
|
+
// Header
|
|
179
|
+
const verdictLabel = pass ? successColor(bold('PASS')) : errorColor(bold('FAIL'));
|
|
180
|
+
lines.push(`Shield Review — ${verdictLabel}`);
|
|
181
|
+
lines.push('');
|
|
182
|
+
// Summary
|
|
183
|
+
lines.push(`Summary: ${verdict.summary}`);
|
|
184
|
+
// Group findings by severity order
|
|
185
|
+
const severityOrder = ['CRITICAL', 'WARN', 'INFO'];
|
|
186
|
+
const sorted = [...verdict.findings].sort((a, b) => severityOrder.indexOf(a.severity) - severityOrder.indexOf(b.severity));
|
|
187
|
+
if (sorted.length > 0) {
|
|
188
|
+
lines.push('');
|
|
189
|
+
for (const finding of sorted) {
|
|
190
|
+
let location = '';
|
|
191
|
+
if (finding.file) {
|
|
192
|
+
location = finding.line ? `${finding.file}:${finding.line} ` : `${finding.file} `;
|
|
193
|
+
}
|
|
194
|
+
lines.push(` ${finding.severity} [${finding.confidence}] ${location}— ${finding.message}`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Reason line
|
|
198
|
+
lines.push('');
|
|
199
|
+
const { reason } = computeVerdict(verdict);
|
|
200
|
+
lines.push(reason);
|
|
201
|
+
return lines.join('\n');
|
|
202
|
+
}
|
|
96
203
|
/**
|
|
97
204
|
* Write the .shield-passed gate flag on PASS so pre-push hooks can verify.
|
|
98
205
|
*/
|
|
99
|
-
export async function writeShieldPassedFlag(cwd, totemDir) {
|
|
206
|
+
export async function writeShieldPassedFlag(cwd, totemDir, configRoot) {
|
|
100
207
|
try {
|
|
208
|
+
const path = await import('node:path');
|
|
101
209
|
const fs = await import('node:fs');
|
|
102
210
|
const { execSync } = await import('node:child_process');
|
|
103
211
|
const head = execSync('git rev-parse HEAD', { cwd, encoding: 'utf-8' }).trim();
|
|
104
|
-
const cacheDir = path.join(cwd, totemDir, 'cache');
|
|
212
|
+
const cacheDir = path.join(configRoot ?? cwd, totemDir, 'cache');
|
|
105
213
|
if (!fs.existsSync(cacheDir))
|
|
106
214
|
fs.mkdirSync(cacheDir, { recursive: true });
|
|
107
215
|
fs.writeFileSync(path.join(cacheDir, '.shield-passed'), head);
|
|
@@ -116,7 +224,9 @@ export async function writeShieldPassedFlag(cwd, totemDir) {
|
|
|
116
224
|
}
|
|
117
225
|
// ─── Deterministic mode (delegates to shared engine) ─
|
|
118
226
|
// ─── Learn: extract lessons from failed verdict ─────
|
|
119
|
-
export async function learnFromVerdict(verdictContent, diff, options, config, cwd) {
|
|
227
|
+
export async function learnFromVerdict(verdictContent, diff, options, config, cwd, configRoot) {
|
|
228
|
+
const path = await import('node:path');
|
|
229
|
+
const { appendLessons, flagSuspiciousLessons, parseLessons, selectLessons } = await import('./extract.js');
|
|
120
230
|
log.info(TAG, 'Extracting lessons from failed verdict...'); // totem-ignore: hardcoded string
|
|
121
231
|
// Assemble extraction prompt: shield verdict + diff as context
|
|
122
232
|
const systemPrompt = getSystemPrompt('shield-learn', SHIELD_LEARN_SYSTEM_PROMPT, cwd, config.totemDir);
|
|
@@ -155,7 +265,15 @@ export async function learnFromVerdict(verdictContent, diff, options, config, cw
|
|
|
155
265
|
}
|
|
156
266
|
const prompt = sections.join('\n');
|
|
157
267
|
log.dim(TAG, `Learn prompt: ${(prompt.length / 1024).toFixed(0)}KB`);
|
|
158
|
-
const content = await runOrchestrator({
|
|
268
|
+
const content = await runOrchestrator({
|
|
269
|
+
prompt,
|
|
270
|
+
tag: TAG,
|
|
271
|
+
options,
|
|
272
|
+
config,
|
|
273
|
+
cwd,
|
|
274
|
+
configRoot,
|
|
275
|
+
temperature: 0,
|
|
276
|
+
});
|
|
159
277
|
if (content == null)
|
|
160
278
|
return; // --raw mode
|
|
161
279
|
const lessons = parseLessons(content);
|
|
@@ -214,14 +332,63 @@ export async function learnFromVerdict(verdictContent, diff, options, config, cw
|
|
|
214
332
|
log.warn(TAG, `Sync failed (lessons saved but not yet indexed): ${msg}`); // totem-ignore: msg from Error.message
|
|
215
333
|
}
|
|
216
334
|
}
|
|
335
|
+
// ─── Shared verdict handler ─────────────────────────
|
|
336
|
+
async function handleVerdictResult(content, diff, options, config, cwd, configRoot, modeLabel) {
|
|
337
|
+
const { TotemError } = await import('@mmnto/totem');
|
|
338
|
+
writeOutput(content, options.out);
|
|
339
|
+
if (options.out)
|
|
340
|
+
log.success(TAG, `Written to ${options.out}`);
|
|
341
|
+
if (options.raw)
|
|
342
|
+
return;
|
|
343
|
+
// Try structured parsing first (V2)
|
|
344
|
+
const structured = extractStructuredVerdict(content);
|
|
345
|
+
if (structured) {
|
|
346
|
+
const verdict = computeVerdict(structured);
|
|
347
|
+
const display = formatVerdictForDisplay(structured, verdict.pass);
|
|
348
|
+
console.error(display);
|
|
349
|
+
if (verdict.pass) {
|
|
350
|
+
await writeShieldPassedFlag(cwd, config.totemDir, configRoot);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
if (options.learn) {
|
|
354
|
+
await learnFromVerdict(JSON.stringify(structured, null, 2), diff, options, config, cwd, configRoot);
|
|
355
|
+
}
|
|
356
|
+
throw new TotemError('SHIELD_FAILED', `Shield ${modeLabel} review failed: ${verdict.reason}`, 'Fix the issues identified in the review above, then re-run `totem shield`.');
|
|
357
|
+
}
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
// Fallback: V1 regex parsing (custom prompt overrides)
|
|
361
|
+
const verdict = parseVerdict(content);
|
|
362
|
+
if (verdict) {
|
|
363
|
+
const verdictLabel = verdict.pass ? successColor(bold('PASS')) : errorColor(bold('FAIL'));
|
|
364
|
+
const reason = verdict.reason ? ` — ${verdict.reason}` : '';
|
|
365
|
+
log.info(TAG, `Verdict: ${verdictLabel}${reason}`);
|
|
366
|
+
if (verdict.pass) {
|
|
367
|
+
await writeShieldPassedFlag(cwd, config.totemDir, configRoot);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
if (options.learn)
|
|
371
|
+
await learnFromVerdict(content, diff, options, config, cwd, configRoot);
|
|
372
|
+
throw new TotemError('SHIELD_FAILED', `Shield ${modeLabel} review failed: ${verdict.reason || 'no reason given'}`, 'Fix the issues identified in the review above, then re-run `totem shield`.');
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
throw new TotemError('SHIELD_FAILED', 'Verdict not found in LLM output (defaulting to FAIL).', 'Fix LLM output format — expected structured JSON or VERDICT: PASS/FAIL.');
|
|
377
|
+
}
|
|
378
|
+
}
|
|
217
379
|
// ─── Main command ───────────────────────────────────
|
|
218
380
|
export async function shieldCommand(options) {
|
|
381
|
+
const path = await import('node:path');
|
|
219
382
|
const { TotemConfigError, TotemError } = await import('@mmnto/totem');
|
|
383
|
+
const { filterDiffByPatterns, getDiffForReview } = await import('../git.js');
|
|
384
|
+
const { classifyChangedFiles } = await import('./shield-classify.js');
|
|
385
|
+
const { extractShieldHints } = await import('./shield-hints.js');
|
|
220
386
|
if (options.mode && options.mode !== 'standard' && options.mode !== 'structural') {
|
|
221
387
|
throw new TotemConfigError(`Invalid --mode "${options.mode}". Use "standard" or "structural".`, 'Check `totem shield --help` for valid options.', 'CONFIG_INVALID');
|
|
222
388
|
}
|
|
223
389
|
const cwd = process.cwd();
|
|
224
390
|
const configPath = resolveConfigPath(cwd);
|
|
391
|
+
const configRoot = path.dirname(configPath);
|
|
225
392
|
loadEnv(cwd);
|
|
226
393
|
const config = await loadConfig(configPath);
|
|
227
394
|
// Get git diff — shared helper merges ignore patterns, tries staged/all
|
|
@@ -229,20 +396,42 @@ export async function shieldCommand(options) {
|
|
|
229
396
|
const diffResult = await getDiffForReview(options, config, cwd, TAG);
|
|
230
397
|
if (!diffResult) {
|
|
231
398
|
// No changes = trivial pass — stamp so pre-push hooks don't block
|
|
232
|
-
await writeShieldPassedFlag(cwd, config.totemDir);
|
|
399
|
+
await writeShieldPassedFlag(cwd, config.totemDir, configRoot);
|
|
233
400
|
return;
|
|
234
401
|
}
|
|
235
402
|
const { diff, changedFiles } = diffResult;
|
|
236
|
-
//
|
|
237
|
-
const
|
|
403
|
+
// Stage 1: Classify files — fast-path for non-code-only diffs
|
|
404
|
+
const classification = classifyChangedFiles(changedFiles);
|
|
405
|
+
if (classification.allNonCode) {
|
|
406
|
+
log.info(TAG, 'Deterministic fast-path: all changed files are non-code');
|
|
407
|
+
log.dim(TAG, `Skipped: ${changedFiles.join(', ')}`);
|
|
408
|
+
await writeShieldPassedFlag(cwd, config.totemDir, configRoot);
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
// Stage 2: Filter diff to code-only files for mixed diffs
|
|
412
|
+
let filteredDiff = diff;
|
|
413
|
+
let filteredFiles = changedFiles;
|
|
414
|
+
if (!classification.allCode && classification.nonCodeFiles.length > 0) {
|
|
415
|
+
filteredDiff = await filterDiffByPatterns(diff, classification.nonCodeFiles);
|
|
416
|
+
filteredFiles = classification.codeFiles;
|
|
417
|
+
if (!filteredDiff.trim()) {
|
|
418
|
+
// After filtering, no code diff remains — fast-path PASS
|
|
419
|
+
log.info(TAG, 'Deterministic fast-path: no code changes after filtering non-code files');
|
|
420
|
+
await writeShieldPassedFlag(cwd, config.totemDir, configRoot);
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
423
|
+
log.dim(TAG, `Filtered ${classification.nonCodeFiles.length} non-code file(s) from diff`);
|
|
424
|
+
}
|
|
425
|
+
// Auto-detect smart review hints from the filtered diff
|
|
426
|
+
const smartHints = extractShieldHints(filteredDiff, filteredFiles, cwd);
|
|
238
427
|
if (smartHints.length > 0) {
|
|
239
428
|
log.dim(TAG, `${smartHints.length} smart hint(s) detected`);
|
|
240
429
|
}
|
|
241
430
|
// Structural mode — context-blind LLM review, no embeddings, no Totem knowledge
|
|
242
431
|
if (options.mode === 'structural') {
|
|
243
432
|
log.info(TAG, 'Running structural review (context-blind, no Totem knowledge)...');
|
|
244
|
-
const systemPrompt = getSystemPrompt('shield-structural',
|
|
245
|
-
const prompt = assembleStructuralPrompt(
|
|
433
|
+
const systemPrompt = getSystemPrompt('shield-structural', STRUCTURAL_SYSTEM_PROMPT_V2, cwd, config.totemDir);
|
|
434
|
+
const prompt = assembleStructuralPrompt(filteredDiff, filteredFiles, systemPrompt, smartHints);
|
|
246
435
|
log.dim(TAG, `Prompt: ${(prompt.length / 1024).toFixed(0)}KB`);
|
|
247
436
|
const content = await runOrchestrator({
|
|
248
437
|
prompt,
|
|
@@ -250,34 +439,14 @@ export async function shieldCommand(options) {
|
|
|
250
439
|
options,
|
|
251
440
|
config,
|
|
252
441
|
cwd,
|
|
442
|
+
configRoot,
|
|
253
443
|
temperature: 0,
|
|
254
444
|
});
|
|
255
445
|
if (content == null && !options.raw) {
|
|
256
446
|
throw new TotemError('SHIELD_FAILED', 'Orchestrator returned no content (defaulting to FAIL).', 'Check your orchestrator API key and model configuration.');
|
|
257
447
|
}
|
|
258
448
|
if (content != null) {
|
|
259
|
-
|
|
260
|
-
if (options.out)
|
|
261
|
-
log.success(TAG, `Written to ${options.out}`);
|
|
262
|
-
if (!options.raw) {
|
|
263
|
-
const verdict = parseVerdict(content);
|
|
264
|
-
if (verdict) {
|
|
265
|
-
const verdictLabel = verdict.pass ? successColor(bold('PASS')) : errorColor(bold('FAIL'));
|
|
266
|
-
const reason = verdict.reason ? ` — ${verdict.reason}` : '';
|
|
267
|
-
log.info(TAG, `Verdict: ${verdictLabel}${reason}`);
|
|
268
|
-
if (verdict.pass) {
|
|
269
|
-
await writeShieldPassedFlag(cwd, config.totemDir);
|
|
270
|
-
}
|
|
271
|
-
else {
|
|
272
|
-
if (options.learn)
|
|
273
|
-
await learnFromVerdict(content, diff, options, config, cwd);
|
|
274
|
-
throw new TotemError('SHIELD_FAILED', `Shield structural review failed: ${verdict.reason || 'no reason given'}`, 'Fix the issues identified in the review above, then re-run `totem shield`.');
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
throw new TotemError('SHIELD_FAILED', 'Verdict not found in LLM output (defaulting to FAIL).', 'Fix LLM output format — expected VERDICT: PASS/FAIL.');
|
|
279
|
-
}
|
|
280
|
-
}
|
|
449
|
+
await handleVerdictResult(content, diff, options, config, cwd, configRoot, 'structural');
|
|
281
450
|
}
|
|
282
451
|
return;
|
|
283
452
|
}
|
|
@@ -288,16 +457,16 @@ export async function shieldCommand(options) {
|
|
|
288
457
|
const embedder = createEmbedder(embedding);
|
|
289
458
|
const store = new Store(path.join(cwd, config.lanceDir), embedder);
|
|
290
459
|
await store.connect();
|
|
291
|
-
// Retrieve context from LanceDB
|
|
292
|
-
const query = buildSearchQuery(changedFiles, diff);
|
|
460
|
+
// Retrieve context from LanceDB — use original changedFiles for better search relevance
|
|
461
|
+
const query = await buildSearchQuery(changedFiles, diff);
|
|
293
462
|
log.info(TAG, 'Querying Totem index...');
|
|
294
463
|
const context = await retrieveContext(query, store);
|
|
295
464
|
const totalResults = context.specs.length + context.sessions.length + context.code.length + context.lessons.length;
|
|
296
465
|
log.info(TAG, `Found: ${context.specs.length} specs, ${context.sessions.length} sessions, ${context.code.length} code, ${context.lessons.length} lessons`);
|
|
297
466
|
// Resolve system prompt (allow .totem/prompts/shield.md override)
|
|
298
|
-
const systemPrompt = getSystemPrompt('shield',
|
|
299
|
-
// Assemble prompt
|
|
300
|
-
const prompt = assemblePrompt(
|
|
467
|
+
const systemPrompt = getSystemPrompt('shield', SYSTEM_PROMPT_V2, cwd, config.totemDir);
|
|
468
|
+
// Assemble prompt — use filtered diff/files for LLM review
|
|
469
|
+
const prompt = assemblePrompt(filteredDiff, filteredFiles, context, systemPrompt, smartHints);
|
|
301
470
|
log.dim(TAG, `Prompt: ${(prompt.length / 1024).toFixed(0)}KB`);
|
|
302
471
|
const content = await runOrchestrator({
|
|
303
472
|
prompt,
|
|
@@ -305,33 +474,12 @@ export async function shieldCommand(options) {
|
|
|
305
474
|
options,
|
|
306
475
|
config,
|
|
307
476
|
cwd,
|
|
477
|
+
configRoot,
|
|
308
478
|
totalResults,
|
|
309
479
|
temperature: 0,
|
|
310
480
|
});
|
|
311
481
|
if (content != null) {
|
|
312
|
-
|
|
313
|
-
if (options.out)
|
|
314
|
-
log.success(TAG, `Written to ${options.out}`);
|
|
315
|
-
// Parse verdict and gate on failure (skip in --raw mode — no LLM output)
|
|
316
|
-
if (!options.raw) {
|
|
317
|
-
const verdict = parseVerdict(content);
|
|
318
|
-
if (verdict) {
|
|
319
|
-
const verdictLabel = verdict.pass ? successColor(bold('PASS')) : errorColor(bold('FAIL'));
|
|
320
|
-
const reason = verdict.reason ? ` — ${verdict.reason}` : '';
|
|
321
|
-
log.info(TAG, `Verdict: ${verdictLabel}${reason}`);
|
|
322
|
-
if (verdict.pass) {
|
|
323
|
-
await writeShieldPassedFlag(cwd, config.totemDir);
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
if (options.learn)
|
|
327
|
-
await learnFromVerdict(content, diff, options, config, cwd);
|
|
328
|
-
throw new TotemError('SHIELD_FAILED', `Shield review failed: ${verdict.reason || 'no reason given'}`, 'Fix the issues identified in the review above, then re-run `totem shield`.');
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
else {
|
|
332
|
-
throw new TotemError('SHIELD_FAILED', 'Verdict not found in LLM output (defaulting to FAIL).', 'Fix LLM output format — expected VERDICT: PASS/FAIL.');
|
|
333
|
-
}
|
|
334
|
-
}
|
|
482
|
+
await handleVerdictResult(content, diff, options, config, cwd, configRoot, 'standard');
|
|
335
483
|
}
|
|
336
484
|
}
|
|
337
485
|
//# sourceMappingURL=shield.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../src/commands/shield.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../src/commands/shield.ts"],"names":[],"mappings":"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"}
|