skannr 0.1.4 → 0.1.5
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/cli.d.ts +11 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +204 -130
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +535 -461
- package/uca-landing/src/App.jsx +2 -0
- package/uca-landing/src/components/CliReference.jsx +49 -18
- package/uca-landing/src/components/Features.jsx +6 -0
- package/uca-landing/src/components/Hero.jsx +1 -1
- package/uca-landing/src/components/HowItWorks.jsx +6 -1
- package/uca-landing/src/components/Install.jsx +17 -17
- package/uca-landing/src/components/TokenSavings.jsx +126 -0
package/dist/cli.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* CLI entry point for skannr
|
|
3
|
+
* CLI entry point for skannr.
|
|
4
|
+
*
|
|
5
|
+
* Simplified command surface:
|
|
6
|
+
* skannr "how does auth work?" → ask a question (positional)
|
|
7
|
+
* skannr risk → impact of working tree changes
|
|
8
|
+
* skannr risk --json → JSON output for CI
|
|
9
|
+
* skannr report → repo health report
|
|
10
|
+
* skannr agent → interactive agent mode
|
|
11
|
+
* skannr cache stats | clear → cache management
|
|
12
|
+
*
|
|
13
|
+
* All legacy flags (--question, --root, blast-radius, etc.) remain supported.
|
|
4
14
|
*/
|
|
5
15
|
export {};
|
|
6
16
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
/**
|
|
4
|
-
* CLI entry point for skannr
|
|
4
|
+
* CLI entry point for skannr.
|
|
5
|
+
*
|
|
6
|
+
* Simplified command surface:
|
|
7
|
+
* skannr "how does auth work?" → ask a question (positional)
|
|
8
|
+
* skannr risk → impact of working tree changes
|
|
9
|
+
* skannr risk --json → JSON output for CI
|
|
10
|
+
* skannr report → repo health report
|
|
11
|
+
* skannr agent → interactive agent mode
|
|
12
|
+
* skannr cache stats | clear → cache management
|
|
13
|
+
*
|
|
14
|
+
* All legacy flags (--question, --root, blast-radius, etc.) remain supported.
|
|
5
15
|
*/
|
|
6
16
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
17
|
if (k2 === undefined) k2 = k;
|
|
@@ -46,7 +56,7 @@ const config_1 = require("./config");
|
|
|
46
56
|
const scanner_1 = require("./scanner");
|
|
47
57
|
const registry_1 = require("./languages/registry");
|
|
48
58
|
const telemetry_1 = require("./telemetry");
|
|
49
|
-
const VERSION = '0.1.
|
|
59
|
+
const VERSION = '0.1.4';
|
|
50
60
|
const VALID_LANGS = ['typescript', 'javascript', 'python', 'auto'];
|
|
51
61
|
function resolveExtensionsForLanguage(lang) {
|
|
52
62
|
switch (lang) {
|
|
@@ -70,8 +80,8 @@ function printNoFilesError() {
|
|
|
70
80
|
' · All files are excluded by .gitignore or default excludes',
|
|
71
81
|
' · --lang filter is too restrictive for this repo',
|
|
72
82
|
'',
|
|
73
|
-
' Try: skannr
|
|
74
|
-
' skannr
|
|
83
|
+
' Try: skannr "your question" --root /path/to/repo',
|
|
84
|
+
' skannr "your question" --lang auto',
|
|
75
85
|
'',
|
|
76
86
|
].join('\n'));
|
|
77
87
|
}
|
|
@@ -91,6 +101,30 @@ function assertRootExists(absoluteRoot) {
|
|
|
91
101
|
process.exit(1);
|
|
92
102
|
}
|
|
93
103
|
}
|
|
104
|
+
function resolveLangFlag(raw) {
|
|
105
|
+
const value = (raw ?? 'auto').toLowerCase();
|
|
106
|
+
if (!VALID_LANGS.includes(value)) {
|
|
107
|
+
const display = raw === undefined || raw === '' ? '(empty)' : raw;
|
|
108
|
+
console.error('');
|
|
109
|
+
console.error(` ✗ Invalid --lang "${display}". Valid values: ${VALID_LANGS.join(', ')}`);
|
|
110
|
+
console.error('');
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
function resolveFormatFlag(raw, jsonShortcut) {
|
|
116
|
+
if (jsonShortcut)
|
|
117
|
+
return 'json';
|
|
118
|
+
const fmt = (raw ?? 'human').toLowerCase();
|
|
119
|
+
if (fmt === 'json' || fmt === 'markdown' || fmt === 'human') {
|
|
120
|
+
return fmt;
|
|
121
|
+
}
|
|
122
|
+
const display = raw === undefined || raw === '' ? '(empty)' : raw;
|
|
123
|
+
console.error('');
|
|
124
|
+
console.error(` ✗ Invalid --format "${display}". Use human, markdown, or json.`);
|
|
125
|
+
console.error('');
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
94
128
|
function runReport(root, lang) {
|
|
95
129
|
const absoluteRoot = path.resolve(root);
|
|
96
130
|
assertRootExists(absoluteRoot);
|
|
@@ -115,19 +149,27 @@ function runReport(root, lang) {
|
|
|
115
149
|
};
|
|
116
150
|
console.log(JSON.stringify(report, null, 2));
|
|
117
151
|
}
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
// Build CLI
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
118
155
|
const program = new commander_1.Command();
|
|
119
156
|
program
|
|
120
157
|
.name('skannr')
|
|
121
158
|
.description([
|
|
122
159
|
'Analyze any codebase. Ask questions. Get ranked, compressed file skeletons.',
|
|
123
|
-
'Powered by hybrid retrieval: lexical + structural + dependency-graph.',
|
|
124
160
|
'',
|
|
125
|
-
'
|
|
161
|
+
'Usage:',
|
|
162
|
+
' skannr "how does auth work?" Ask about the codebase',
|
|
163
|
+
' skannr risk Check impact of current changes',
|
|
164
|
+
' skannr report Repo health summary',
|
|
165
|
+
' skannr agent Interactive exploration',
|
|
126
166
|
].join('\n'))
|
|
127
167
|
.version(VERSION)
|
|
168
|
+
.enablePositionalOptions()
|
|
169
|
+
.argument('[question]', 'natural language question about the codebase')
|
|
128
170
|
.option('--root <path>', 'project root directory', process.cwd())
|
|
129
|
-
.option('--question <text>', '
|
|
130
|
-
.option('--limit <number>', 'number of top files to
|
|
171
|
+
.option('--question <text>', 'question (alternative to positional argument)')
|
|
172
|
+
.option('-n, --limit <number>', 'number of top files to return', (value) => {
|
|
131
173
|
const n = parseInt(value, 10);
|
|
132
174
|
if (Number.isNaN(n) || n < 1) {
|
|
133
175
|
throw new commander_1.InvalidArgumentError('must be a positive number');
|
|
@@ -141,113 +183,25 @@ program
|
|
|
141
183
|
.option('--skip-cache', 'skip cache and force full analysis')
|
|
142
184
|
.option('--cache-clear', 'clear all cached analysis results')
|
|
143
185
|
.option('--cache-stats', 'show cache statistics')
|
|
144
|
-
.option('--report', 'print repository health report (JSON)
|
|
145
|
-
.option('--diff <ref>', 'limit analysis to files changed vs git ref (not available yet)')
|
|
186
|
+
.option('--report', 'print repository health report (JSON)')
|
|
146
187
|
.option('--format <format>', 'output format: human, markdown, or json', 'human')
|
|
188
|
+
.option('--json', 'shortcut for --format json')
|
|
147
189
|
.option('--watch', 'watch for file changes and re-analyze automatically')
|
|
148
190
|
.option('--telemetry-on', 'enable anonymous usage telemetry (flags only)')
|
|
149
191
|
.option('--telemetry-off', 'disable anonymous usage telemetry')
|
|
150
|
-
.option('--mcp', 'run as Model Context Protocol stdio server
|
|
192
|
+
.option('--mcp', 'run as Model Context Protocol stdio server');
|
|
151
193
|
// ---------------------------------------------------------------------------
|
|
152
|
-
//
|
|
194
|
+
// Root command action (question flow)
|
|
153
195
|
// ---------------------------------------------------------------------------
|
|
154
|
-
program
|
|
155
|
-
.command('blast-radius')
|
|
156
|
-
.description('Analyze downstream impact and risk of a git diff')
|
|
157
|
-
.option('--root <path>', 'project root directory', process.cwd())
|
|
158
|
-
.option('--diff <path>', 'path to a diff file (default: working tree vs HEAD)')
|
|
159
|
-
.option('--hops <n>', 'max traversal hops (default: 2)', (v) => {
|
|
160
|
-
const n = parseInt(v, 10);
|
|
161
|
-
if (Number.isNaN(n) || n < 1) {
|
|
162
|
-
throw new commander_1.InvalidArgumentError('must be a positive integer');
|
|
163
|
-
}
|
|
164
|
-
return n;
|
|
165
|
-
})
|
|
166
|
-
.option('--json', 'output as JSON instead of plain text')
|
|
167
|
-
.action(async (cmdOpts) => {
|
|
168
|
-
try {
|
|
169
|
-
const { computeBlastRadius, formatBlastRadiusText, formatBlastRadiusJson } = await Promise.resolve().then(() => __importStar(require('./blast-radius')));
|
|
170
|
-
const absoluteRoot = path.resolve(cmdOpts.root);
|
|
171
|
-
assertRootExists(absoluteRoot);
|
|
172
|
-
const result = computeBlastRadius({
|
|
173
|
-
root: absoluteRoot,
|
|
174
|
-
diffPath: cmdOpts.diff,
|
|
175
|
-
hops: cmdOpts.hops ?? 2,
|
|
176
|
-
});
|
|
177
|
-
const output = cmdOpts.json
|
|
178
|
-
? formatBlastRadiusJson(result)
|
|
179
|
-
: formatBlastRadiusText(result);
|
|
180
|
-
process.stdout.write(output + (output.endsWith('\n') ? '' : '\n'));
|
|
181
|
-
}
|
|
182
|
-
catch (error) {
|
|
183
|
-
console.error('Error computing blast radius:', error instanceof Error ? error.message : error);
|
|
184
|
-
process.exit(1);
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
program.addHelpText('after', `
|
|
188
|
-
Examples:
|
|
189
|
-
skannr --question "how does auth work?" --root .
|
|
190
|
-
skannr --question "database setup" --root /path/to/repo --limit 5
|
|
191
|
-
skannr --question "class structure" --root . --lang python
|
|
192
|
-
skannr --question "changed files" --root . --diff HEAD~1
|
|
193
|
-
skannr --report --root . # health report
|
|
194
|
-
skannr --question "..." --root . --format markdown
|
|
195
|
-
skannr --question "..." --root . --format json
|
|
196
|
-
skannr --question "..." --root . --watch # re-run on file changes
|
|
197
|
-
skannr-agent --root . # interactive mode
|
|
198
|
-
skannr blast-radius --root . --hops 3 # blast radius analysis
|
|
199
|
-
skannr blast-radius --diff changes.patch --json
|
|
200
|
-
|
|
201
|
-
Monorepo tip:
|
|
202
|
-
skannr --question "..." --root packages/my-package
|
|
203
|
-
|
|
204
|
-
MCP (stdio): npx -y skannr --mcp (or: skannr-mcp)
|
|
205
|
-
Cursor: { "mcpServers": { "skannr": { "command": "npx", "args": ["-y", "skannr", "--mcp"] } } }
|
|
206
|
-
`);
|
|
207
|
-
program.parse(process.argv);
|
|
208
|
-
const opts = program.opts();
|
|
209
|
-
function buildAnalyzeTelemetryFlags(o, outputFormat, lang, limit) {
|
|
210
|
-
return {
|
|
211
|
-
hasModules: Boolean(o.modules),
|
|
212
|
-
hasDiff: o.diff !== undefined,
|
|
213
|
-
hasWatch: Boolean(o.watch),
|
|
214
|
-
hasReport: Boolean(o.report),
|
|
215
|
-
hasMapping: Boolean(o.withMapping || o.mappingOutput),
|
|
216
|
-
skipCache: Boolean(o.skipCache),
|
|
217
|
-
format: outputFormat,
|
|
218
|
-
lang,
|
|
219
|
-
limit,
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
function resolveLangFlag(raw) {
|
|
223
|
-
const value = (raw ?? 'auto').toLowerCase();
|
|
224
|
-
if (!VALID_LANGS.includes(value)) {
|
|
225
|
-
const display = raw === undefined || raw === '' ? '(empty)' : raw;
|
|
226
|
-
console.error('');
|
|
227
|
-
console.error(` ✗ Invalid --lang "${display}". Valid values: ${VALID_LANGS.join(', ')}`);
|
|
228
|
-
console.error('');
|
|
229
|
-
process.exit(1);
|
|
230
|
-
}
|
|
231
|
-
return value;
|
|
232
|
-
}
|
|
233
|
-
function resolveFormatFlag(raw) {
|
|
234
|
-
const fmt = (raw ?? 'human').toLowerCase();
|
|
235
|
-
if (fmt === 'json' || fmt === 'markdown' || fmt === 'human') {
|
|
236
|
-
return fmt;
|
|
237
|
-
}
|
|
238
|
-
const display = raw === undefined || raw === '' ? '(empty)' : raw;
|
|
239
|
-
console.error('');
|
|
240
|
-
console.error(` ✗ Invalid --format "${display}". Use human, markdown, or json.`);
|
|
241
|
-
console.error('');
|
|
242
|
-
process.exit(1);
|
|
243
|
-
}
|
|
244
|
-
void (async () => {
|
|
196
|
+
program.action(async (questionArg, opts) => {
|
|
245
197
|
try {
|
|
198
|
+
// MCP mode
|
|
246
199
|
if (opts.mcp || process.argv.includes('--mcp')) {
|
|
247
200
|
const { startMcpServer } = await Promise.resolve().then(() => __importStar(require('./mcp-server')));
|
|
248
201
|
await startMcpServer();
|
|
249
202
|
return;
|
|
250
203
|
}
|
|
204
|
+
// Telemetry toggles
|
|
251
205
|
if (opts.telemetryOn) {
|
|
252
206
|
(0, telemetry_1.setTelemetryExplicit)(true);
|
|
253
207
|
console.log('Telemetry enabled. Thank you!');
|
|
@@ -258,46 +212,35 @@ void (async () => {
|
|
|
258
212
|
console.log('Telemetry disabled.');
|
|
259
213
|
process.exit(0);
|
|
260
214
|
}
|
|
215
|
+
// Legacy cache flags
|
|
261
216
|
if (opts.cacheClear) {
|
|
262
217
|
const cacheManager = (0, index_1.getCacheManager)();
|
|
263
218
|
cacheManager.clear();
|
|
264
|
-
console.log('
|
|
219
|
+
console.log('Cache cleared.');
|
|
265
220
|
process.exit(0);
|
|
266
221
|
}
|
|
267
222
|
if (opts.cacheStats) {
|
|
268
223
|
const cacheManager = (0, index_1.getCacheManager)();
|
|
269
224
|
const stats = cacheManager.getStats();
|
|
270
|
-
console.log('\n
|
|
271
|
-
console.log(`
|
|
272
|
-
console.log(`
|
|
273
|
-
console.log(`
|
|
274
|
-
console.log(`
|
|
275
|
-
console.log(`
|
|
225
|
+
console.log('\n Cache Statistics:');
|
|
226
|
+
console.log(` Hits: ${stats.hits}`);
|
|
227
|
+
console.log(` Misses: ${stats.misses}`);
|
|
228
|
+
console.log(` Hit Rate: ${stats.hitRate}%`);
|
|
229
|
+
console.log(` Size: ${(stats.cacheSize / 1024).toFixed(2)} KB`);
|
|
230
|
+
console.log(` Dir: ${cacheManager.getCacheDir()}\n`);
|
|
276
231
|
process.exit(0);
|
|
277
232
|
}
|
|
278
233
|
const lang = resolveLangFlag(opts.lang);
|
|
234
|
+
// Legacy --report flag
|
|
279
235
|
if (opts.report) {
|
|
280
236
|
runReport(opts.root, lang);
|
|
281
237
|
process.exit(0);
|
|
282
238
|
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
console.error(' ✗ --diff is not available in this release.');
|
|
286
|
-
console.error(' Remove --diff or watch the changelog for git-scoped analysis.');
|
|
287
|
-
console.error('');
|
|
288
|
-
process.exit(1);
|
|
289
|
-
}
|
|
290
|
-
const question = opts.question?.trim() ?? '';
|
|
239
|
+
// Resolve question: positional arg takes precedence over --question flag
|
|
240
|
+
const question = (questionArg || opts.question || '').trim();
|
|
291
241
|
if (!question) {
|
|
292
|
-
console.error('');
|
|
293
|
-
console.error(' ✗ Missing --question.');
|
|
294
|
-
console.error('');
|
|
295
|
-
console.error(' Example: skannr --question "how does auth work?" --root .');
|
|
296
|
-
console.error(' Cache only: skannr --cache-stats | skannr --cache-clear');
|
|
297
|
-
console.error(' Report: skannr --report --root .');
|
|
298
|
-
console.error('');
|
|
299
242
|
program.outputHelp();
|
|
300
|
-
process.exit(
|
|
243
|
+
process.exit(0);
|
|
301
244
|
}
|
|
302
245
|
const absoluteRoot = path.resolve(opts.root);
|
|
303
246
|
assertRootExists(absoluteRoot);
|
|
@@ -317,7 +260,7 @@ void (async () => {
|
|
|
317
260
|
const mappingOutputPath = opts.mappingOutput;
|
|
318
261
|
const langExtensions = resolveExtensionsForLanguage(lang);
|
|
319
262
|
const extensions = langExtensions ?? config.extensions;
|
|
320
|
-
const outputFormat = resolveFormatFlag(opts.format);
|
|
263
|
+
const outputFormat = resolveFormatFlag(opts.format, opts.json);
|
|
321
264
|
const analyzeOptions = {
|
|
322
265
|
root: absoluteRoot,
|
|
323
266
|
question,
|
|
@@ -344,7 +287,7 @@ void (async () => {
|
|
|
344
287
|
process.stdout.write(formatted + (formatted.endsWith('\n') ? '' : '\n'));
|
|
345
288
|
if (!watchTelemetrySent) {
|
|
346
289
|
watchTelemetrySent = true;
|
|
347
|
-
(0, telemetry_1.track)('analyze',
|
|
290
|
+
(0, telemetry_1.track)('analyze', buildTelemetryFlags(opts, outputFormat, lang, limit));
|
|
348
291
|
}
|
|
349
292
|
});
|
|
350
293
|
}
|
|
@@ -373,11 +316,142 @@ void (async () => {
|
|
|
373
316
|
? (0, formatter_1.formatMarkdown)(result)
|
|
374
317
|
: (0, formatter_1.formatHuman)(result);
|
|
375
318
|
process.stdout.write(formatted + (formatted.endsWith('\n') ? '' : '\n'));
|
|
376
|
-
(0, telemetry_1.track)('analyze',
|
|
319
|
+
(0, telemetry_1.track)('analyze', buildTelemetryFlags(opts, outputFormat, lang, limit));
|
|
377
320
|
}
|
|
378
321
|
catch (error) {
|
|
379
322
|
console.error('Error analyzing project:', error instanceof Error ? error.message : error);
|
|
380
323
|
process.exit(1);
|
|
381
324
|
}
|
|
382
|
-
})
|
|
325
|
+
});
|
|
326
|
+
// ---------------------------------------------------------------------------
|
|
327
|
+
// Subcommand: risk
|
|
328
|
+
// ---------------------------------------------------------------------------
|
|
329
|
+
async function runRisk(cmdOpts) {
|
|
330
|
+
try {
|
|
331
|
+
const { computeBlastRadius, formatBlastRadiusText, formatBlastRadiusJson } = await Promise.resolve().then(() => __importStar(require('./blast-radius')));
|
|
332
|
+
const absoluteRoot = path.resolve(cmdOpts.root);
|
|
333
|
+
assertRootExists(absoluteRoot);
|
|
334
|
+
const result = computeBlastRadius({
|
|
335
|
+
root: absoluteRoot,
|
|
336
|
+
diffPath: cmdOpts.diff,
|
|
337
|
+
hops: cmdOpts.hops ?? 2,
|
|
338
|
+
});
|
|
339
|
+
const output = cmdOpts.json
|
|
340
|
+
? formatBlastRadiusJson(result)
|
|
341
|
+
: formatBlastRadiusText(result);
|
|
342
|
+
process.stdout.write(output + (output.endsWith('\n') ? '' : '\n'));
|
|
343
|
+
}
|
|
344
|
+
catch (error) {
|
|
345
|
+
console.error('Error computing risk:', error instanceof Error ? error.message : error);
|
|
346
|
+
process.exit(1);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
function riskOptions(cmd) {
|
|
350
|
+
return cmd
|
|
351
|
+
.option('--root <path>', 'project root directory', process.cwd())
|
|
352
|
+
.option('--diff <path>', 'path to a diff file (default: working tree vs HEAD)')
|
|
353
|
+
.option('-n, --hops <n>', 'max traversal hops (default: 2)', (v) => {
|
|
354
|
+
const n = parseInt(v, 10);
|
|
355
|
+
if (Number.isNaN(n) || n < 1) {
|
|
356
|
+
throw new commander_1.InvalidArgumentError('must be a positive integer');
|
|
357
|
+
}
|
|
358
|
+
return n;
|
|
359
|
+
})
|
|
360
|
+
.option('--json', 'output as JSON instead of plain text');
|
|
361
|
+
}
|
|
362
|
+
riskOptions(program.command('risk').description('Check downstream impact and risk of your current changes'))
|
|
363
|
+
.action(runRisk);
|
|
364
|
+
// Backward compat alias
|
|
365
|
+
riskOptions(program.command('blast-radius').description('Alias for "risk"'))
|
|
366
|
+
.action(runRisk);
|
|
367
|
+
// ---------------------------------------------------------------------------
|
|
368
|
+
// Subcommand: report
|
|
369
|
+
// ---------------------------------------------------------------------------
|
|
370
|
+
program
|
|
371
|
+
.command('report')
|
|
372
|
+
.description('Print repository health summary (JSON)')
|
|
373
|
+
.option('--root <path>', 'project root directory', process.cwd())
|
|
374
|
+
.option('--lang <mode>', 'language filter', 'auto')
|
|
375
|
+
.action((cmdOpts) => {
|
|
376
|
+
const lang = resolveLangFlag(cmdOpts.lang);
|
|
377
|
+
runReport(cmdOpts.root, lang);
|
|
378
|
+
});
|
|
379
|
+
// ---------------------------------------------------------------------------
|
|
380
|
+
// Subcommand: agent
|
|
381
|
+
// ---------------------------------------------------------------------------
|
|
382
|
+
program
|
|
383
|
+
.command('agent')
|
|
384
|
+
.description('Interactive exploration mode')
|
|
385
|
+
.option('--root <path>', 'project root directory', process.cwd())
|
|
386
|
+
.action(async (cmdOpts) => {
|
|
387
|
+
process.argv = ['node', 'skannr-agent', '--root', cmdOpts.root];
|
|
388
|
+
await Promise.resolve().then(() => __importStar(require('./agent-cli')));
|
|
389
|
+
});
|
|
390
|
+
// ---------------------------------------------------------------------------
|
|
391
|
+
// Subcommand: cache
|
|
392
|
+
// ---------------------------------------------------------------------------
|
|
393
|
+
const cacheCommand = program
|
|
394
|
+
.command('cache')
|
|
395
|
+
.description('Manage analysis cache');
|
|
396
|
+
cacheCommand
|
|
397
|
+
.command('clear')
|
|
398
|
+
.description('Clear all cached analysis results')
|
|
399
|
+
.action(() => {
|
|
400
|
+
const cacheManager = (0, index_1.getCacheManager)();
|
|
401
|
+
cacheManager.clear();
|
|
402
|
+
console.log('Cache cleared.');
|
|
403
|
+
});
|
|
404
|
+
cacheCommand
|
|
405
|
+
.command('stats')
|
|
406
|
+
.description('Show cache statistics')
|
|
407
|
+
.action(() => {
|
|
408
|
+
const cacheManager = (0, index_1.getCacheManager)();
|
|
409
|
+
const stats = cacheManager.getStats();
|
|
410
|
+
console.log('\n Cache Statistics:');
|
|
411
|
+
console.log(` Hits: ${stats.hits}`);
|
|
412
|
+
console.log(` Misses: ${stats.misses}`);
|
|
413
|
+
console.log(` Hit Rate: ${stats.hitRate}%`);
|
|
414
|
+
console.log(` Size: ${(stats.cacheSize / 1024).toFixed(2)} KB`);
|
|
415
|
+
console.log(` Dir: ${cacheManager.getCacheDir()}\n`);
|
|
416
|
+
});
|
|
417
|
+
// ---------------------------------------------------------------------------
|
|
418
|
+
// Help
|
|
419
|
+
// ---------------------------------------------------------------------------
|
|
420
|
+
program.addHelpText('after', `
|
|
421
|
+
Examples:
|
|
422
|
+
skannr "how does auth work?" Ask about the codebase
|
|
423
|
+
skannr "database queries" -n 5 Limit to 5 results
|
|
424
|
+
skannr "endpoints" --json JSON output
|
|
425
|
+
skannr "class structure" --lang python Force language
|
|
426
|
+
|
|
427
|
+
skannr risk Impact of uncommitted changes
|
|
428
|
+
skannr risk --diff feature.patch Impact of a patch file
|
|
429
|
+
skannr risk -n 3 --json 3 hops, JSON for CI
|
|
430
|
+
|
|
431
|
+
skannr report Repo health summary
|
|
432
|
+
skannr agent Interactive mode
|
|
433
|
+
skannr cache stats Cache hit rate
|
|
434
|
+
skannr cache clear Wipe cache
|
|
435
|
+
|
|
436
|
+
MCP: npx -y skannr --mcp
|
|
437
|
+
`);
|
|
438
|
+
// ---------------------------------------------------------------------------
|
|
439
|
+
// Parse
|
|
440
|
+
// ---------------------------------------------------------------------------
|
|
441
|
+
program.parse(process.argv);
|
|
442
|
+
// ---------------------------------------------------------------------------
|
|
443
|
+
// Helpers
|
|
444
|
+
// ---------------------------------------------------------------------------
|
|
445
|
+
function buildTelemetryFlags(o, outputFormat, lang, limit) {
|
|
446
|
+
return {
|
|
447
|
+
hasModules: Boolean(o.modules),
|
|
448
|
+
hasWatch: Boolean(o.watch),
|
|
449
|
+
hasReport: Boolean(o.report),
|
|
450
|
+
hasMapping: Boolean(o.withMapping || o.mappingOutput),
|
|
451
|
+
skipCache: Boolean(o.skipCache),
|
|
452
|
+
format: outputFormat,
|
|
453
|
+
lang,
|
|
454
|
+
limit,
|
|
455
|
+
};
|
|
456
|
+
}
|
|
383
457
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|