@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, 350MB one-time download)')
68
- .option('--pro', 'Use larger model for deep analysis (900MB, higher quality)')
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 (350MB one-time)
78
- $ rigour check --deep --pro # AST + larger local LLM (900MB)
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, 350MB one-time download)')
97
- .option('--pro', 'Use larger model for deep analysis (900MB, higher quality)')
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')
@@ -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 ? 'pro' : (resolvedDeepMode?.isLocal ? 'deep' : 'cloud')),
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);
@@ -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 deep model cache: ${deepModelCached ? chalk.green('ready') : chalk.yellow('not cached')}`);
116
- console.log(` - Local pro model cache: ${proModelCached ? chalk.green('ready') : chalk.dim('not cached')}`);
117
- if (!sidecarAvailable || !deepModelCached) {
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');
@@ -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
- const hasProModel = await isModelCached('pro');
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 (350MB)');
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 || hasProModel));
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 ? 'pro' : 'deep'),
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);
@@ -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 hasPro = await isModelCached('pro');
47
+ const hasLite = await isModelCached('lite');
48
48
  if (hasDeep)
49
- console.log(chalk.green(' ✔ Local model: deep (Qwen2.5-Coder-0.5B, 350MB)'));
50
- if (hasPro)
51
- console.log(chalk.green(' ✔ Local model: pro (Qwen2.5-Coder-1.5B, 900MB)'));
52
- if (!hasDeep && !hasPro) {
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 || hasPro);
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.2",
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.2"
47
+ "@rigour-labs/core": "4.3.4"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/fs-extra": "^11.0.4",