@oculum/cli 1.0.3 → 1.0.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/index.js +11 -8
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -43540,19 +43540,22 @@ async function runScanOnce(targetPath, options) {
|
|
|
43540
43540
|
}
|
|
43541
43541
|
spinner.succeed(`Found ${files.length} files to scan`);
|
|
43542
43542
|
const onProgress = (progress) => {
|
|
43543
|
-
|
|
43543
|
+
if (options.verbose) {
|
|
43544
|
+
console.log(`[Progress] ${progress.status}: ${progress.filesProcessed}/${progress.totalFiles} files, ${progress.vulnerabilitiesFound} findings`);
|
|
43545
|
+
}
|
|
43546
|
+
const fileProgress = progress.filesProcessed && progress.filesProcessed < progress.totalFiles ? ` \u2022 ${progress.filesProcessed}/${progress.totalFiles} files` : ` (${progress.totalFiles} files)`;
|
|
43544
43547
|
switch (progress.status) {
|
|
43545
43548
|
case "layer1":
|
|
43546
|
-
spinner.text = `Layer 1: Pattern matching
|
|
43549
|
+
spinner.text = `Layer 1: Pattern matching${fileProgress} ${source_default.dim(`\u2192 ${progress.vulnerabilitiesFound} candidates`)}`;
|
|
43547
43550
|
break;
|
|
43548
43551
|
case "layer2":
|
|
43549
|
-
spinner.text = `Layer 2: Code structure analysis
|
|
43552
|
+
spinner.text = `Layer 2: Code structure analysis${fileProgress} ${source_default.dim(`\u2192 ${progress.vulnerabilitiesFound} findings`)}`;
|
|
43550
43553
|
break;
|
|
43551
43554
|
case "validating":
|
|
43552
|
-
spinner.text = `AI validation ${source_default.dim(`\u2192 reviewing ${progress.vulnerabilitiesFound} candidates`)}`;
|
|
43555
|
+
spinner.text = `AI validation${fileProgress} ${source_default.dim(`\u2192 reviewing ${progress.vulnerabilitiesFound} candidates`)}`;
|
|
43553
43556
|
break;
|
|
43554
43557
|
case "layer3":
|
|
43555
|
-
spinner.text = `Layer 3: Deep AI analysis ${source_default.dim(`\u2192 semantic security check`)}`;
|
|
43558
|
+
spinner.text = `Layer 3: Deep AI analysis${fileProgress} ${source_default.dim(`\u2192 semantic security check`)}`;
|
|
43556
43559
|
break;
|
|
43557
43560
|
case "complete":
|
|
43558
43561
|
const issueText = progress.vulnerabilitiesFound === 1 ? "issue" : "issues";
|
|
@@ -43572,7 +43575,7 @@ async function runScanOnce(targetPath, options) {
|
|
|
43572
43575
|
spinner.start("Starting scan...");
|
|
43573
43576
|
const hasLocalAI = !!process.env.ANTHROPIC_API_KEY;
|
|
43574
43577
|
if (options.depth !== "cheap" && isAuthenticated() && !hasLocalAI) {
|
|
43575
|
-
spinner.text = `
|
|
43578
|
+
spinner.text = `Backend ${options.depth} scan analyzing ${files.length} files...`;
|
|
43576
43579
|
result = await callBackendAPI(
|
|
43577
43580
|
files,
|
|
43578
43581
|
options.depth,
|
|
@@ -43583,7 +43586,7 @@ async function runScanOnce(targetPath, options) {
|
|
|
43583
43586
|
branch: "local"
|
|
43584
43587
|
}
|
|
43585
43588
|
);
|
|
43586
|
-
spinner.succeed(`Backend scan complete`);
|
|
43589
|
+
spinner.succeed(`Backend ${options.depth} scan complete`);
|
|
43587
43590
|
} else {
|
|
43588
43591
|
const enableAI = options.depth !== "cheap" && hasLocalAI;
|
|
43589
43592
|
const shouldBeQuiet = options.quiet ?? !options.verbose;
|
|
@@ -47869,7 +47872,7 @@ var usageCommand = new Command("usage").description("Show current usage and quot
|
|
|
47869
47872
|
|
|
47870
47873
|
// src/index.ts
|
|
47871
47874
|
var program2 = new Command();
|
|
47872
|
-
program2.name("oculum").description("AI-native security scanner for detecting vulnerabilities in LLM-generated code").version("1.0.
|
|
47875
|
+
program2.name("oculum").description("AI-native security scanner for detecting vulnerabilities in LLM-generated code").version("1.0.4").addHelpText("after", `
|
|
47873
47876
|
Quick Start:
|
|
47874
47877
|
$ oculum scan . Scan current directory (free)
|
|
47875
47878
|
$ oculum ui Interactive mode with guided setup
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oculum/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "AI-native security scanner CLI for detecting vulnerabilities in AI-generated code, BYOK patterns, and modern web applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
"url": "https://github.com/flexipie/oculum/issues"
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
|
-
"build": "esbuild src/index.ts --bundle --platform=node --target=node18 --outfile=dist/index.js --banner:js=\"#!/usr/bin/env node\" --define:process.env.OCULUM_API_URL='undefined'",
|
|
21
|
+
"build": "esbuild src/index.ts --bundle --platform=node --target=node18 --outfile=dist/index.js --banner:js=\"#!/usr/bin/env node\" --define:process.env.OCULUM_API_URL='undefined' --define:VERSION='\"1.0.4\"'",
|
|
22
22
|
"dev": "npm run build -- --watch",
|
|
23
23
|
"test": "echo \"No tests configured yet\"",
|
|
24
24
|
"lint": "eslint src/"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@oculum/scanner": "^1.0.
|
|
27
|
+
"@oculum/scanner": "^1.0.2",
|
|
28
28
|
"@oculum/shared": "^1.0.0",
|
|
29
29
|
"commander": "^12.1.0",
|
|
30
30
|
"chalk": "^5.3.0",
|