cognium-ai 1.10.18 → 1.20.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # cognium-ai
2
2
 
3
- AI-powered static analysis CLI with LLM-enhanced vulnerability detection. Built on [circle-ir](https://github.com/cogniumhq/circle-ir) and [circle-ir-ai](https://www.npmjs.com/package/circle-ir-ai).
3
+ AI-powered static analysis CLI with LLM-enhanced vulnerability detection.
4
4
 
5
5
  ## Installation
6
6
 
@@ -137,11 +137,6 @@ jobs:
137
137
 
138
138
  CWE-Bench-Java reference: CodeQL 22.5%, IRIS+GPT-4 45.8%.
139
139
 
140
- ## Related Packages
141
-
142
- - **[circle-ir](https://github.com/cogniumhq/circle-ir)** -- Core SAST library (open source, MIT)
143
- - **[circle-ir-ai](https://www.npmjs.com/package/circle-ir-ai)** -- LLM enrichment layer and programmatic API
144
-
145
140
  ## License
146
141
 
147
142
  MIT
package/dist/cli.d.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * cognium-ai CLI - AI-powered static analysis with LLM-enhanced vulnerability detection
3
+ * cognium-ai CLI AI-powered static analysis with LLM-enhanced vulnerability detection.
4
4
  *
5
- * This is a thin wrapper around circle-ir-ai's CLI commands that:
6
- * - Provides the cognium-ai branding and UX (spinner, colors)
7
- * - Manages cognium.config.json configuration
8
- * - Delegates all analysis commands to circle-ir-ai
5
+ * Builds the Commander program (per-command help, LLM-by-default,
6
+ * --exclude/--config/--include global) and layers cognium-ai-specific
7
+ * subcommands on top: `init`, `version`, `doctor`.
9
8
  */
10
9
  export {};
11
10
  //# 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":";AACA;;;;;;;GAOG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
package/dist/cli.js CHANGED
@@ -1,38 +1,110 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * cognium-ai CLI - AI-powered static analysis with LLM-enhanced vulnerability detection
3
+ * cognium-ai CLI AI-powered static analysis with LLM-enhanced vulnerability detection.
4
4
  *
5
- * This is a thin wrapper around circle-ir-ai's CLI commands that:
6
- * - Provides the cognium-ai branding and UX (spinner, colors)
7
- * - Manages cognium.config.json configuration
8
- * - Delegates all analysis commands to circle-ir-ai
5
+ * Builds the Commander program (per-command help, LLM-by-default,
6
+ * --exclude/--config/--include global) and layers cognium-ai-specific
7
+ * subcommands on top: `init`, `version`, `doctor`.
9
8
  */
10
- import { writeFileSync, existsSync } from 'fs';
11
- // Import all commands from circle-ir-ai
12
- import {
13
- // Arg parser and types
14
- parseArgs,
15
- // Config utilities
16
- loadCogniumConfig, convertCogniumConfigToPassOptions,
17
- // Commands
18
- executeScan, executeTrust, executeCompare, executeQuality, executeHealth, executeSecrets, executeDeadCode, executeMetrics, executeUnderstand, executeSpecDiff, executeCluster, executeGenerateSpec, executeBenchmark, executeAnalyzeSkill, } from 'circle-ir-ai/commands';
19
- // Local utilities
9
+ import { writeFileSync, existsSync, statSync, readFileSync } from 'fs';
10
+ import * as fs from 'fs';
11
+ import * as path from 'path';
12
+ import { createRequire } from 'node:module';
13
+ import { buildProgram,
14
+ // Command handlers
15
+ executeAnalyze, executeScan, executeTrust, executeCompare, executeQuality, executeHealth, executeSecrets, executeDeadCode, executeMetrics, executeUnderstand, executeSpecDiff, executeCluster, executeGenerateSpec, executeBenchmark, executeAnalyzeSkill, } from 'circle-ir-ai/commands';
20
16
  import { version } from './version.js';
21
- import { showHelp, showVersion } from './utils/args.js';
22
17
  import { colors } from './utils/colors.js';
23
18
  // ---------------------------------------------------------------------------
24
- // Init command (cognium-ai specific)
19
+ // init language-aware starter cognium.config.json
25
20
  // ---------------------------------------------------------------------------
21
+ const LANG_EXTS = {
22
+ java: ['.java'],
23
+ typescript: ['.ts', '.tsx'],
24
+ javascript: ['.js', '.jsx', '.mjs'],
25
+ python: ['.py'],
26
+ rust: ['.rs'],
27
+ c: ['.c', '.h'],
28
+ cpp: ['.cpp', '.cc', '.cxx', '.hpp', '.hxx'],
29
+ bash: ['.sh', '.bash'],
30
+ html: ['.html', '.htm'],
31
+ };
32
+ const SKIP_DIRS = new Set([
33
+ 'node_modules', '.git', 'dist', 'build', 'target', '__pycache__',
34
+ 'vendor', 'coverage', '.specifica',
35
+ ]);
36
+ /**
37
+ * Walk a directory (one level deep, max 1000 files) and detect which
38
+ * languages are present. Returns languages sorted by file count, descending.
39
+ */
40
+ function detectLanguages(root) {
41
+ const counts = {};
42
+ let scanned = 0;
43
+ const maxFiles = 1000;
44
+ const walk = (dir, depth) => {
45
+ if (scanned >= maxFiles || depth > 6)
46
+ return;
47
+ let entries;
48
+ try {
49
+ entries = fs.readdirSync(dir, { withFileTypes: true });
50
+ }
51
+ catch {
52
+ return;
53
+ }
54
+ for (const entry of entries) {
55
+ if (scanned >= maxFiles)
56
+ return;
57
+ if (entry.name.startsWith('.') && entry.isDirectory())
58
+ continue;
59
+ if (SKIP_DIRS.has(entry.name))
60
+ continue;
61
+ const full = path.join(dir, entry.name);
62
+ if (entry.isDirectory()) {
63
+ walk(full, depth + 1);
64
+ }
65
+ else if (entry.isFile()) {
66
+ const ext = path.extname(entry.name).toLowerCase();
67
+ for (const [lang, exts] of Object.entries(LANG_EXTS)) {
68
+ if (exts.includes(ext)) {
69
+ counts[lang] = (counts[lang] || 0) + 1;
70
+ scanned++;
71
+ break;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ };
77
+ walk(root, 0);
78
+ return Object.entries(counts)
79
+ .sort((a, b) => b[1] - a[1])
80
+ .filter(([, n]) => n > 0)
81
+ .map(([lang]) => lang);
82
+ }
83
+ function buildIncludeGlobs(languages) {
84
+ if (languages.length === 0) {
85
+ // No source detected — leave include empty so all supported langs are scanned.
86
+ return [];
87
+ }
88
+ const globs = [];
89
+ for (const lang of languages) {
90
+ for (const ext of LANG_EXTS[lang]) {
91
+ globs.push(`**/*${ext}`);
92
+ }
93
+ }
94
+ return globs;
95
+ }
26
96
  function handleInit() {
27
97
  const configPath = 'cognium.config.json';
28
98
  if (existsSync(configPath)) {
29
- console.log(colors.yellow('Configuration file already exists: cognium.config.json'));
99
+ console.log(colors.yellow(`${configPath} already exists; not overwriting.`));
30
100
  return;
31
101
  }
102
+ const langs = detectLanguages(process.cwd());
103
+ const include = buildIncludeGlobs(langs);
32
104
  const config = {
33
105
  version: '1.0',
34
- include: ['src/**/*.java', 'src/**/*.ts', 'src/**/*.py'],
35
- exclude: ['**/test/**', '**/node_modules/**', '**/dist/**'],
106
+ include,
107
+ exclude: ['**/test/**', '**/tests/**', '**/node_modules/**', '**/dist/**', '**/build/**'],
36
108
  passes: {},
37
109
  trust: {
38
110
  disabledPasses: [],
@@ -41,169 +113,255 @@ function handleInit() {
41
113
  severity: 'low',
42
114
  categories: ['security', 'reliability', 'performance', 'maintainability', 'architecture'],
43
115
  };
44
- writeFileSync(configPath, JSON.stringify(config, null, 2));
116
+ writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
45
117
  console.log(colors.green(`Created ${configPath}`));
46
- console.log('Edit this file to configure pass options, suppressions, and trust pass filtering.');
118
+ if (langs.length > 0) {
119
+ console.log(colors.dim(` Detected languages: ${langs.join(', ')}`));
120
+ }
121
+ else {
122
+ console.log(colors.dim(' No source files detected — include globs left empty (all supported languages will be scanned).'));
123
+ }
124
+ console.log('');
125
+ console.log('Next steps:');
126
+ console.log(` ${colors.cyan('cognium-ai scan .')} # security scan`);
127
+ console.log(` ${colors.cyan('cognium-ai trust .')} # trust score across 30+ passes`);
128
+ console.log(` ${colors.cyan('cognium-ai doctor')} # check environment + LLM config`);
47
129
  }
48
- // ---------------------------------------------------------------------------
49
- // Main
50
- // ---------------------------------------------------------------------------
51
- async function main() {
52
- // Parse args using circle-ir-ai's parser
53
- const args = parseArgs(process.argv.slice(2));
54
- // Apply CLI LLM overrides to process.env so getDefaultLLMConfig() picks them up
55
- if (args.llmBaseUrl) {
56
- process.env.LLM_BASE_URL = args.llmBaseUrl;
130
+ function readPackageVersion(pkg) {
131
+ // Direct `<pkg>/package.json` is blocked by the package's `exports` map.
132
+ // Resolve the package's main entry from any nearby anchor, then walk up
133
+ // the file tree to find its package.json. Try cognium-ai first; if that
134
+ // fails (e.g. for transitive deps like circle-ir), retry from circle-ir-ai.
135
+ const anchors = [import.meta.url];
136
+ try {
137
+ const cir = createRequire(import.meta.url).resolve('circle-ir-ai');
138
+ anchors.push(`file://${cir}`);
57
139
  }
58
- if (args.llmApiKey) {
59
- process.env.LLM_API_KEY = args.llmApiKey;
140
+ catch { /* not installed; only try local anchor */ }
141
+ for (const anchor of anchors) {
142
+ try {
143
+ const req = createRequire(anchor);
144
+ let p = req.resolve(pkg);
145
+ for (let i = 0; i < 12; i++) {
146
+ const dir = path.dirname(p);
147
+ if (dir === p)
148
+ break; // hit fs root
149
+ const candidate = path.join(dir, 'package.json');
150
+ if (existsSync(candidate)) {
151
+ const json = JSON.parse(readFileSync(candidate, 'utf-8'));
152
+ if (json.name === pkg)
153
+ return json.version ?? null;
154
+ }
155
+ p = dir;
156
+ }
157
+ }
158
+ catch {
159
+ /* try next anchor */
160
+ }
60
161
  }
61
- if (args.llmModel) {
62
- process.env.LLM_ENRICHMENT_MODEL = args.llmModel;
63
- process.env.LLM_VERIFICATION_MODEL = args.llmModel;
64
- process.env.LLM_COMPONENT_MODEL = args.llmModel;
162
+ return null;
163
+ }
164
+ function runDoctor() {
165
+ const checks = [];
166
+ // Node version (engines: >=18)
167
+ const nodeMajor = parseInt(process.versions.node.split('.')[0], 10);
168
+ checks.push({
169
+ name: 'Node.js',
170
+ status: nodeMajor >= 18 ? 'ok' : 'error',
171
+ detail: `v${process.versions.node}${nodeMajor < 18 ? ' (need >= 18)' : ''}`,
172
+ });
173
+ // Package versions
174
+ const circleIrAi = readPackageVersion('circle-ir-ai');
175
+ checks.push({
176
+ name: 'circle-ir-ai',
177
+ status: circleIrAi ? 'ok' : 'error',
178
+ detail: circleIrAi ? `v${circleIrAi}` : 'not installed',
179
+ });
180
+ const circleIr = readPackageVersion('circle-ir');
181
+ checks.push({
182
+ name: 'circle-ir',
183
+ status: circleIr ? 'ok' : 'warn',
184
+ detail: circleIr ? `v${circleIr}` : 'not resolvable',
185
+ });
186
+ // LLM config
187
+ const apiKey = process.env.LLM_API_KEY;
188
+ const baseUrl = process.env.LLM_BASE_URL || 'http://localhost:4000/v1';
189
+ const model = process.env.LLM_ENRICHMENT_MODEL || 'cognium/gpt-oss-120b';
190
+ checks.push({
191
+ name: 'LLM_API_KEY',
192
+ status: apiKey ? 'ok' : 'warn',
193
+ detail: apiKey ? `set (${apiKey.length} chars)` : 'not set — LLM features will fall back to static analysis',
194
+ });
195
+ checks.push({
196
+ name: 'LLM_BASE_URL',
197
+ status: 'ok',
198
+ detail: baseUrl,
199
+ });
200
+ checks.push({
201
+ name: 'LLM_ENRICHMENT_MODEL',
202
+ status: 'ok',
203
+ detail: model,
204
+ });
205
+ // Project config
206
+ const cogniumCfg = path.resolve('cognium.config.json');
207
+ if (existsSync(cogniumCfg)) {
208
+ let parsed = false;
209
+ try {
210
+ JSON.parse(readFileSync(cogniumCfg, 'utf-8'));
211
+ parsed = true;
212
+ }
213
+ catch { /* parse failed */ }
214
+ checks.push({
215
+ name: 'cognium.config.json',
216
+ status: parsed ? 'ok' : 'error',
217
+ detail: parsed ? cogniumCfg : `${cogniumCfg} (invalid JSON)`,
218
+ });
65
219
  }
66
- // Handle help/version
67
- if (args.help) {
68
- showHelp();
69
- return;
220
+ else {
221
+ checks.push({
222
+ name: 'cognium.config.json',
223
+ status: 'warn',
224
+ detail: `not found in ${process.cwd()} — run \`cognium-ai init\` to create one`,
225
+ });
70
226
  }
71
- if (args.version) {
72
- showVersion(version);
73
- return;
227
+ // WASM grammars (circle-ir loads tree-sitter wasm files)
228
+ const wasmLink = path.resolve('wasm');
229
+ const hasWasm = existsSync(wasmLink) && statSync(wasmLink).isDirectory();
230
+ checks.push({
231
+ name: 'WASM grammars',
232
+ status: hasWasm ? 'ok' : 'warn',
233
+ detail: hasWasm ? wasmLink : 'no ./wasm symlink (circle-ir bundles its own; usually fine)',
234
+ });
235
+ // Print
236
+ const symbol = (s) => s === 'ok' ? colors.green('✓') : s === 'warn' ? colors.yellow('!') : colors.red('✗');
237
+ const labelWidth = checks.reduce((m, c) => Math.max(m, c.name.length), 0);
238
+ console.log(colors.bold('cognium-ai doctor'));
239
+ console.log('');
240
+ for (const c of checks) {
241
+ console.log(` ${symbol(c.status)} ${c.name.padEnd(labelWidth)} ${c.detail}`);
74
242
  }
75
- // Handle init command (cognium-ai specific)
76
- if (args.command === 'analyze' && !args.file && !args.directory) {
77
- // No command specified, show help
78
- showHelp();
79
- return;
243
+ console.log('');
244
+ const errors = checks.filter(c => c.status === 'error').length;
245
+ const warnings = checks.filter(c => c.status === 'warn').length;
246
+ if (errors > 0) {
247
+ console.log(colors.red(`${errors} error(s), ${warnings} warning(s)`));
248
+ return 1;
80
249
  }
81
- // Load cognium.config.json
82
- const config = loadCogniumConfig(args.config || undefined, args.directory || args.file || process.cwd());
83
- // Merge config options into args
84
- if (config) {
85
- const { disabledPasses } = convertCogniumConfigToPassOptions(config);
86
- // Merge config disabled passes with CLI --disable-pass
87
- if (disabledPasses.length > 0) {
88
- args.disablePass = [...new Set([...args.disablePass, ...disabledPasses])];
89
- }
90
- // Merge trust disabled passes
91
- if (config.trust?.disabledPasses) {
92
- args.disablePass = [...new Set([...args.disablePass, ...config.trust.disabledPasses])];
93
- }
250
+ if (warnings > 0) {
251
+ console.log(colors.yellow(`${warnings} warning(s) non-blocking`));
94
252
  }
95
- // Route to appropriate command
96
- let exitCode = 0;
97
- try {
98
- switch (args.command) {
99
- case 'scan':
100
- exitCode = await executeScan(args);
101
- break;
102
- case 'trust':
103
- exitCode = await executeTrust(args);
104
- break;
105
- case 'compare':
106
- exitCode = await executeCompare(args);
107
- break;
108
- case 'quality':
109
- exitCode = await executeQuality(args);
110
- break;
111
- case 'health':
112
- exitCode = await executeHealth(args);
113
- break;
114
- case 'secrets':
115
- exitCode = await executeSecrets(args);
116
- break;
117
- case 'dead-code':
118
- exitCode = await executeDeadCode(args);
119
- break;
120
- case 'metrics':
121
- exitCode = await executeMetrics(args);
122
- break;
123
- case 'understand':
124
- exitCode = await executeUnderstand(args);
125
- break;
126
- case 'spec-diff':
127
- exitCode = await executeSpecDiff(args);
128
- break;
129
- case 'cluster':
130
- exitCode = await executeCluster(args);
131
- break;
132
- case 'generate-spec':
133
- exitCode = await executeGenerateSpec(args);
134
- break;
135
- case 'benchmark':
136
- exitCode = await executeBenchmark(args);
137
- break;
138
- case 'analyze-skill':
139
- // analyze-skill has a different signature
140
- const skillPath = args.file || args.directory;
141
- if (!skillPath) {
142
- console.error(colors.red('Error: analyze-skill command requires a path argument'));
143
- process.exit(1);
144
- }
145
- await executeAnalyzeSkill(skillPath, {
146
- format: args.format === 'json' ? 'json' : args.format === 'markdown' ? 'markdown' : 'text',
147
- output: args.output || undefined,
148
- crossArtifact: args.crossArtifact !== false,
149
- verification: args.verification !== false,
150
- minConfidence: args.minConfidence,
151
- minSeverity: args.minSeverity,
152
- verbose: !args.quiet,
153
- });
154
- break;
155
- // Cognium-ai specific commands
156
- case 'analyze':
157
- // 'analyze' is the default command when no subcommand is given
158
- // For cognium-ai, we treat it as 'scan' when a path is given
159
- if (args.file || args.directory) {
160
- // Redirect to scan
161
- args.command = 'scan';
162
- exitCode = await executeScan(args);
163
- }
164
- else {
165
- showHelp();
166
- }
167
- break;
168
- default:
169
- // Check for init command (not in circle-ir-ai's command enum)
170
- if (process.argv[2] === 'init') {
171
- handleInit();
172
- return;
173
- }
174
- // Check for skill command (alias for analyze-skill)
175
- if (process.argv[2] === 'skill') {
176
- const skillPath = process.argv[3];
177
- if (!skillPath || skillPath.startsWith('-')) {
178
- console.error(colors.red('Error: skill command requires a path argument'));
179
- console.log('\nUsage: cognium-ai skill <path> [options]');
180
- process.exit(1);
181
- }
182
- await executeAnalyzeSkill(skillPath, {
183
- format: args.format === 'json' ? 'json' : args.format === 'markdown' ? 'markdown' : 'text',
184
- output: args.output || undefined,
185
- verbose: !args.quiet,
186
- });
187
- return;
188
- }
189
- // Check for version command
190
- if (process.argv[2] === 'version') {
191
- showVersion(version);
192
- return;
193
- }
194
- console.error(colors.red(`Error: Unknown command '${args.command}'`));
195
- console.log("\nRun 'cognium-ai --help' for usage information");
196
- process.exit(1);
197
- }
253
+ else {
254
+ console.log(colors.green('All checks passed.'));
198
255
  }
199
- catch (error) {
200
- console.error(colors.red('Fatal error:'), error instanceof Error ? error.message : error);
201
- process.exit(2);
256
+ return 0;
257
+ }
258
+ // ---------------------------------------------------------------------------
259
+ // version — show all components
260
+ // ---------------------------------------------------------------------------
261
+ function showFullVersion() {
262
+ const circleIrAi = readPackageVersion('circle-ir-ai') ?? 'unknown';
263
+ const circleIr = readPackageVersion('circle-ir') ?? 'unknown';
264
+ console.log(`cognium-ai v${version}`);
265
+ console.log(`circle-ir-ai v${circleIrAi}`);
266
+ console.log(`circle-ir v${circleIr}`);
267
+ console.log(`node ${process.versions.node}`);
268
+ console.log('');
269
+ console.log(colors.dim('Powered by Cognium Labs · https://cognium.net'));
270
+ }
271
+ // ---------------------------------------------------------------------------
272
+ // Skill format adapter
273
+ // ---------------------------------------------------------------------------
274
+ function skillFormatFromArgs(args) {
275
+ if (args.format === 'json')
276
+ return 'json';
277
+ if (args.format === 'markdown')
278
+ return 'markdown';
279
+ return 'text';
280
+ }
281
+ // ---------------------------------------------------------------------------
282
+ // Main
283
+ // ---------------------------------------------------------------------------
284
+ async function main() {
285
+ const program = buildProgram({
286
+ analyze: executeAnalyze,
287
+ scan: executeScan,
288
+ health: executeHealth,
289
+ secrets: executeSecrets,
290
+ deadCode: executeDeadCode,
291
+ generateSpec: executeGenerateSpec,
292
+ analyzeSkill: async (skillPath, args) => {
293
+ await executeAnalyzeSkill(skillPath, {
294
+ format: skillFormatFromArgs(args),
295
+ output: args.output || undefined,
296
+ crossArtifact: args.crossArtifact !== false,
297
+ verification: args.verification !== false,
298
+ minConfidence: args.minConfidence,
299
+ minSeverity: args.minSeverity,
300
+ verbose: !args.quiet,
301
+ });
302
+ },
303
+ metrics: executeMetrics,
304
+ trust: executeTrust,
305
+ compare: executeCompare,
306
+ quality: executeQuality,
307
+ understand: executeUnderstand,
308
+ specDiff: executeSpecDiff,
309
+ cluster: executeCluster,
310
+ benchmark: executeBenchmark,
311
+ }, {
312
+ name: 'cognium-ai',
313
+ version,
314
+ description: 'AI-powered static analysis CLI — LLM-enhanced vulnerability detection, trust scoring, and code understanding.',
315
+ });
316
+ // Hide commands that haven't passed the CLI polish review yet. They remain
317
+ // callable for users who already rely on them, but are kept out of the
318
+ // headline `--help` to avoid signalling a level of polish they don't yet
319
+ // have. See circle-ir-ai/TODO.md "CLI Commands — Review Backlog".
320
+ //
321
+ // Commander has no public API to hide a command after construction; the
322
+ // underlying flag is `_hidden`, which `command(name, { hidden: true })`
323
+ // sets at registration time. We set it directly here.
324
+ const HIDDEN_COMMANDS = new Set([
325
+ 'health',
326
+ 'secrets',
327
+ 'dead-code',
328
+ 'analyze-skill',
329
+ 'metrics',
330
+ 'compare',
331
+ 'understand',
332
+ 'cluster',
333
+ 'benchmark',
334
+ ]);
335
+ for (const cmd of program.commands) {
336
+ if (HIDDEN_COMMANDS.has(cmd.name())) {
337
+ cmd._hidden = true;
338
+ }
202
339
  }
203
- process.exit(exitCode);
340
+ // Layer cognium-ai-specific subcommands on top of the inherited program.
341
+ program
342
+ .command('init')
343
+ .description('Create a starter cognium.config.json (auto-detects project languages)')
344
+ .action(() => {
345
+ handleInit();
346
+ process.exit(0);
347
+ });
348
+ program
349
+ .command('doctor')
350
+ .description('Check environment, LLM config, and project setup')
351
+ .action(() => {
352
+ process.exit(runDoctor());
353
+ });
354
+ program
355
+ .command('version')
356
+ .description('Show all component versions')
357
+ .action(() => {
358
+ showFullVersion();
359
+ process.exit(0);
360
+ });
361
+ await program.parseAsync(process.argv);
204
362
  }
205
363
  main().catch((error) => {
206
- console.error(colors.red('Fatal error:'), error.message);
364
+ console.error(colors.red('Fatal error:'), error instanceof Error ? error.message : error);
207
365
  process.exit(2);
208
366
  });
209
367
  //# 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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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  /**
2
- * cognium-ai - AI-powered static analysis
2
+ * cognium-ai AI-powered static analysis (programmatic API).
3
3
  *
4
- * Re-exports circle-ir-ai APIs for programmatic use.
5
4
  * For CLI usage, run `cognium-ai` directly.
6
5
  */
7
6
  export { version } from './version.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,OAAO,EAEP,qBAAqB,EACrB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,OAAO,EAEP,qBAAqB,EACrB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,9 @@
1
1
  /**
2
- * cognium-ai - AI-powered static analysis
2
+ * cognium-ai AI-powered static analysis (programmatic API).
3
3
  *
4
- * Re-exports circle-ir-ai APIs for programmatic use.
5
4
  * For CLI usage, run `cognium-ai` directly.
6
5
  */
7
6
  export { version } from './version.js';
8
- // Re-export key circle-ir-ai APIs
9
7
  export { analyzeFile, scanDirectory, detectDeadCode, scanForSecrets, calculateHealthScore, analyzeSkillBundle, initAnalyzer, analyze,
10
8
  // Understand (Phase 5)
11
9
  summarizeAllFunctions, summarizeModule,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,kCAAkC;AAClC,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,OAAO;AACP,uBAAuB;AACvB,qBAAqB,EACrB,eAAe;AAIf,qBAAqB;AACrB,cAAc,GAGf,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,OAAO;AACP,uBAAuB;AACvB,qBAAqB,EACrB,eAAe;AAIf,qBAAqB;AACrB,cAAc,GAGf,MAAM,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cognium-ai",
3
- "version": "1.10.18",
3
+ "version": "1.20.0",
4
4
  "description": "AI-powered static analysis CLI with LLM-enhanced vulnerability detection",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "author": {
31
31
  "name": "Cognium Labs",
32
- "url": "https://cognium.dev"
32
+ "url": "https://cognium.net"
33
33
  },
34
34
  "license": "MIT",
35
35
  "engines": {
@@ -41,7 +41,7 @@
41
41
  "LICENSE"
42
42
  ],
43
43
  "dependencies": {
44
- "circle-ir-ai": "^1.19.5"
44
+ "circle-ir-ai": "^1.20.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^25.5.0",