@rigour-labs/cli 4.3.2 → 4.3.4
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.js
CHANGED
|
@@ -64,8 +64,8 @@ program
|
|
|
64
64
|
.option('--json', 'Output report in JSON format')
|
|
65
65
|
.option('-i, --interactive', 'Run in interactive mode with rich output')
|
|
66
66
|
.option('-c, --config <path>', 'Path to custom rigour.yml configuration')
|
|
67
|
-
.option('--deep', 'Enable deep LLM-powered analysis (local,
|
|
68
|
-
.option('--pro', 'Use
|
|
67
|
+
.option('--deep', 'Enable deep LLM-powered analysis (local lite model, 500MB one-time download)')
|
|
68
|
+
.option('--pro', 'Use full deep model for analysis (Qwen2.5-Coder-1.5B, 900MB)')
|
|
69
69
|
.option('-k, --api-key <key>', 'Use cloud API key instead of local model (BYOK)')
|
|
70
70
|
.option('--provider <name>', 'Cloud provider: claude, openai, gemini, groq, mistral, together, deepseek, ollama, or any OpenAI-compatible')
|
|
71
71
|
.option('--api-base-url <url>', 'Custom API base URL (for self-hosted or proxy endpoints)')
|
|
@@ -74,8 +74,8 @@ program
|
|
|
74
74
|
.addHelpText('after', `
|
|
75
75
|
Examples:
|
|
76
76
|
$ rigour check # AST only. Instant. Free.
|
|
77
|
-
$ rigour check --deep # AST + local LLM (
|
|
78
|
-
$ rigour check --deep --pro # AST +
|
|
77
|
+
$ rigour check --deep # AST + local LLM (lite, 500MB one-time)
|
|
78
|
+
$ rigour check --deep --pro # AST + full deep model (900MB)
|
|
79
79
|
$ rigour check --deep -k sk-ant-xxx # AST + Claude API (BYOK)
|
|
80
80
|
$ rigour check --deep -k gsk_xxx --provider groq # Use Groq
|
|
81
81
|
$ rigour check --deep -k xxx --provider ollama # Use local Ollama
|
|
@@ -93,8 +93,8 @@ program
|
|
|
93
93
|
.option('--ci', 'CI mode (minimal output, non-zero exit on fail)')
|
|
94
94
|
.option('--json', 'Output report in JSON format')
|
|
95
95
|
.option('-c, --config <path>', 'Path to custom rigour.yml configuration (optional)')
|
|
96
|
-
.option('--deep', 'Enable deep LLM-powered analysis (local,
|
|
97
|
-
.option('--pro', 'Use
|
|
96
|
+
.option('--deep', 'Enable deep LLM-powered analysis (local lite model, 500MB one-time download)')
|
|
97
|
+
.option('--pro', 'Use full deep model for analysis (Qwen2.5-Coder-1.5B, 900MB)')
|
|
98
98
|
.option('-k, --api-key <key>', 'Use cloud API key instead of local model (BYOK)')
|
|
99
99
|
.option('--provider <name>', 'Cloud provider: claude, openai, gemini, groq, mistral, together, deepseek, ollama')
|
|
100
100
|
.option('--api-base-url <url>', 'Custom API base URL')
|
package/dist/commands/check.js
CHANGED
|
@@ -118,7 +118,7 @@ export async function checkCommand(cwd, files = [], options = {}) {
|
|
|
118
118
|
if (db) {
|
|
119
119
|
const repoName = path.basename(cwd);
|
|
120
120
|
const scanId = insertScan(db, repoName, report, {
|
|
121
|
-
deepTier: report.stats.deep?.tier || (options.pro ? '
|
|
121
|
+
deepTier: report.stats.deep?.tier || (options.pro ? 'deep' : (resolvedDeepMode?.isLocal ? 'lite' : 'cloud')),
|
|
122
122
|
deepModel: report.stats.deep?.model,
|
|
123
123
|
});
|
|
124
124
|
insertFindings(db, scanId, report.failures);
|
package/dist/commands/doctor.js
CHANGED
|
@@ -109,12 +109,12 @@ export async function doctorCommand() {
|
|
|
109
109
|
const provider = createProvider({ enabled: true, provider: 'local' });
|
|
110
110
|
const sidecarAvailable = await provider.isAvailable();
|
|
111
111
|
provider.dispose();
|
|
112
|
+
const liteModelCached = await isModelCached('lite');
|
|
112
113
|
const deepModelCached = await isModelCached('deep');
|
|
113
|
-
const proModelCached = await isModelCached('pro');
|
|
114
114
|
console.log(` - Local inference binary: ${sidecarAvailable ? chalk.green('ready') : chalk.yellow('missing')}`);
|
|
115
|
-
console.log(` - Local
|
|
116
|
-
console.log(` - Local
|
|
117
|
-
if (!sidecarAvailable || !
|
|
115
|
+
console.log(` - Local lite model cache: ${liteModelCached ? chalk.green('ready') : chalk.yellow('not cached')}`);
|
|
116
|
+
console.log(` - Local deep model cache: ${deepModelCached ? chalk.green('ready') : chalk.dim('not cached')}`);
|
|
117
|
+
if (!sidecarAvailable || !liteModelCached) {
|
|
118
118
|
console.log(chalk.dim('\n Local bootstrap command: rigour check --deep --provider local'));
|
|
119
119
|
}
|
|
120
120
|
const rigourHome = path.join(os.homedir(), '.rigour');
|
package/dist/commands/init.js
CHANGED
|
@@ -393,14 +393,14 @@ async function checkPrerequisites() {
|
|
|
393
393
|
console.log(chalk.yellow(' ○ No API keys configured'));
|
|
394
394
|
}
|
|
395
395
|
// Check 2: Local model availability
|
|
396
|
+
const hasLiteModel = await isModelCached('lite');
|
|
396
397
|
const hasDeepModel = await isModelCached('deep');
|
|
397
|
-
|
|
398
|
-
if (hasDeepModel || hasProModel) {
|
|
398
|
+
if (hasLiteModel || hasDeepModel) {
|
|
399
399
|
const models = [];
|
|
400
|
+
if (hasLiteModel)
|
|
401
|
+
models.push('lite (500MB)');
|
|
400
402
|
if (hasDeepModel)
|
|
401
|
-
models.push('deep (
|
|
402
|
-
if (hasProModel)
|
|
403
|
-
models.push('pro (900MB)');
|
|
403
|
+
models.push('deep (900MB)');
|
|
404
404
|
console.log(chalk.green(` ✔ Local models cached: ${models.join(', ')}`));
|
|
405
405
|
}
|
|
406
406
|
else {
|
|
@@ -425,7 +425,7 @@ async function checkPrerequisites() {
|
|
|
425
425
|
console.log(chalk.yellow(' ○ No local inference binary found'));
|
|
426
426
|
}
|
|
427
427
|
// Summary: what can the user do?
|
|
428
|
-
const isReady = hasApiKey || (hasSidecar && (hasDeepModel ||
|
|
428
|
+
const isReady = hasApiKey || (hasSidecar && (hasDeepModel || hasLiteModel));
|
|
429
429
|
if (isReady) {
|
|
430
430
|
console.log(chalk.green('\n ✓ Deep analysis is ready!'));
|
|
431
431
|
if (hasApiKey) {
|
|
@@ -33,7 +33,7 @@ export function persistDeepResults(cwd, report, isDeep, options) {
|
|
|
33
33
|
return;
|
|
34
34
|
const repoName = require('path').basename(cwd);
|
|
35
35
|
const scanId = insertScan(db, repoName, report, {
|
|
36
|
-
deepTier: report.stats.deep?.tier || (options.pro ? '
|
|
36
|
+
deepTier: report.stats.deep?.tier || (options.pro ? 'deep' : 'lite'),
|
|
37
37
|
deepModel: report.stats.deep?.model,
|
|
38
38
|
});
|
|
39
39
|
insertFindings(db, scanId, report.failures);
|
package/dist/commands/setup.js
CHANGED
|
@@ -44,12 +44,12 @@ export async function setupCommand() {
|
|
|
44
44
|
console.log(chalk.bold('\n Deep Analysis'));
|
|
45
45
|
// Check local models
|
|
46
46
|
const hasDeep = await isModelCached('deep');
|
|
47
|
-
const
|
|
47
|
+
const hasLite = await isModelCached('lite');
|
|
48
48
|
if (hasDeep)
|
|
49
|
-
console.log(chalk.green(' ✔ Local model: deep (Qwen2.5-Coder-
|
|
50
|
-
if (
|
|
51
|
-
console.log(chalk.green(' ✔ Local model:
|
|
52
|
-
if (!hasDeep && !
|
|
49
|
+
console.log(chalk.green(' ✔ Local model: deep (Qwen2.5-Coder-1.5B, 900MB)'));
|
|
50
|
+
if (hasLite)
|
|
51
|
+
console.log(chalk.green(' ✔ Local model: lite (Qwen3.5-0.8B, 500MB)'));
|
|
52
|
+
if (!hasDeep && !hasLite) {
|
|
53
53
|
console.log(chalk.yellow(' ○ No local models cached'));
|
|
54
54
|
console.log(chalk.dim(` Models dir: ${getModelsDir()}`));
|
|
55
55
|
}
|
|
@@ -78,7 +78,7 @@ export async function setupCommand() {
|
|
|
78
78
|
}
|
|
79
79
|
// Cloud readiness
|
|
80
80
|
const hasCloudKey = configuredKeys.length > 0;
|
|
81
|
-
const hasLocalReady = hasSidecar && (hasDeep ||
|
|
81
|
+
const hasLocalReady = hasSidecar && (hasDeep || hasLite);
|
|
82
82
|
if (hasCloudKey || hasLocalReady) {
|
|
83
83
|
console.log(chalk.green.bold('\n ✓ Deep analysis is ready'));
|
|
84
84
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rigour-labs/cli",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.4",
|
|
4
4
|
"description": "CLI quality gates for AI-generated code. Forces AI agents (Claude, Cursor, Copilot) to meet strict engineering standards with PASS/FAIL enforcement.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://rigour.run",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"inquirer": "9.2.16",
|
|
45
45
|
"ora": "^8.0.1",
|
|
46
46
|
"yaml": "^2.8.2",
|
|
47
|
-
"@rigour-labs/core": "4.3.
|
|
47
|
+
"@rigour-labs/core": "4.3.4"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/fs-extra": "^11.0.4",
|