cognium-ai 4.10.0 → 4.11.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
@@ -215,7 +215,7 @@ jobs:
215
215
  | OWASP Benchmark (Java) | 100% (1415/1415) |
216
216
  | Juliet Test Suite (14 CWEs) | 100% (243/243) |
217
217
  | SecuriBench Micro | 97.7% TPR, 6.7% FPR |
218
- | CWE-Bench-Java (120 CVEs) | 50.8% static (61/120), **86.7% +LLM Discovery** (104/120, Claude Opus) — IRIS-paper strict methodology |
218
+ | CWE-Bench-Java (120 CVEs) | mode `static` 50.8% (61/120) · mode `discovery` **86.7%** (104/120, Claude Opus; LLM told the CWE — research recall) · mode `product-verify` 20% (24/120, 4.0.1 / gpt-4o-mini; `cognium-ai scan --llm --llm-verify`) — IRIS-paper strict methodology |
219
219
  | OWASP NodeGoat / Juice Shop / DVJA | 100% |
220
220
  | NodeJS Synthetic (25 tests) | 92.9% Score (96.2% TPR, 11.1% FPR) |
221
221
  | CWE-Bench-Rust (30 tests) | 94.4% TPR, 0% FPR |
@@ -223,7 +223,7 @@ jobs:
223
223
  | Go Synthetic (29 tests) | 84.2% TPR, 30% FPR |
224
224
  | Vulnerability-goapp (13 tests) | cmdi/xss/pathtraver 100%; sqli pending [circle-ir#2](https://github.com/cogniumhq/circle-ir/issues/2) |
225
225
 
226
- CWE-Bench-Java reference: **CodeQL 22.5%**, IRIS+GPT-4 45.8% — cognium-ai with Claude Opus is **2.85× CodeQL**.
226
+ CWE-Bench-Java reference: **CodeQL 22.5%**, IRIS+GPT-4 45.8% — cognium-ai in discovery mode with Claude Opus is **2.85× CodeQL**. CWE-Bench-Java numbers carry a **mode label** (cognium-ai#303): `static` = no LLM; `discovery` = the built-in runner's `--llm-discovery`, where the LLM is *told the CWE* and asked where the fix is (a research recall metric); `product-verify` = what customers run, `cognium-ai scan --llm --llm-verify`, scored IRIS-strict by `npm run benchmark:cwe:product`. The three are not interchangeable — product-verify measured **24/120** on 4.0.1 / gpt-4o-mini (Aug 2026) against discovery's ~104/120.
227
227
 
228
228
  ## License
229
229
 
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { type CircleIR, type TaintConfig } from 'circle-ir';
7
7
  import type { CliArgs } from '../args.js';
8
+ import { type EffectiveOptions } from '../effective-options.js';
8
9
  export interface AnalysisOptions {
9
10
  taintConfig?: TaintConfig;
10
11
  discoverPatterns?: boolean;
@@ -15,5 +16,24 @@ export interface AnalysisOptions {
15
16
  llmApiKey?: string;
16
17
  }
17
18
  export declare function runAnalysis(filePath: string, options?: AnalysisOptions): Promise<CircleIR>;
19
+ export type AnalyzeLanguage = 'java' | 'csharp' | 'javascript' | 'typescript' | 'python' | 'rust' | 'c' | 'cpp' | 'go' | 'bash' | 'html';
20
+ /**
21
+ * Languages the multi-agent `--bundle` runner accepts. Anything else must fail
22
+ * loud rather than be coerced to `java` (cognium-ai#348 — `.cs` was silently
23
+ * parsed as Java).
24
+ */
25
+ export declare const BUNDLE_LANGUAGES: readonly AnalyzeLanguage[];
26
+ export declare function resolveBundleLanguage(filePath: string): 'java' | 'c' | 'cpp';
27
+ /**
28
+ * cognium-ai#348 — the default `cognium-ai <path>` action coupled LLM
29
+ * verification to `--no-llm` only, so `--no-llm-verify` (advertised via
30
+ * addCommonOptions and honored by `scan` / `trust`) still ran the verifier.
31
+ * Same resolution as scan.ts: verify follows `eff.llm.verify`, gated on --llm.
32
+ */
33
+ export declare function resolveAnalyzeLLMFlags(args: Pick<CliArgs, 'noLlm'>, eff: Pick<EffectiveOptions, 'llm'>): {
34
+ enableEnrichment: boolean;
35
+ enableVerification: boolean;
36
+ };
37
+ export declare function detectLanguageFromFile(filePath: string): AnalyzeLanguage;
18
38
  export declare function executeAnalyze(args: CliArgs): Promise<number>;
19
39
  //# sourceMappingURL=analyze.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAW,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AASrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAS1C,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,QAAQ,CAAC,CAQnB;AA0GD,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAuLnE"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAW,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AASrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQrF,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,QAAQ,CAAC,CAQnB;AAMD,MAAM,MAAM,eAAe,GACvB,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GACnE,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,eAAe,EAAyB,CAAC;AAEjF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAS5E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,GACjC;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAE,CAM5D;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAiBxE;AAqFD,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8LnE"}
@@ -8,6 +8,7 @@ import * as path from 'path';
8
8
  import { analyze } from 'circle-ir';
9
9
  import { ensureAnalyzerInitialized, analyzeFile, runBundle, runBundleOnFiles, registerSecurityAgents, } from 'circle-ir-ai';
10
10
  import { loadCogniumConfig, convertCogniumConfigToPassOptions } from '../config.js';
11
+ import { getEffectiveOptions } from '../effective-options.js';
11
12
  import { runSwarmAnalysis } from './swarm.js';
12
13
  import { formatOutput } from '../formatters/index.js';
13
14
  export async function runAnalysis(filePath, options = {}) {
@@ -21,10 +22,34 @@ export async function runAnalysis(filePath, options = {}) {
21
22
  language = 'cpp';
22
23
  return analyze(code, filePath, language, { taintConfig: options.taintConfig });
23
24
  }
24
- // ---------------------------------------------------------------------------
25
- // executeAnalyze CLI entry for `cognium-ai <path>` (no subcommand)
26
- // ---------------------------------------------------------------------------
27
- function detectLanguageFromFile(filePath) {
25
+ /**
26
+ * Languages the multi-agent `--bundle` runner accepts. Anything else must fail
27
+ * loud rather than be coerced to `java` (cognium-ai#348 — `.cs` was silently
28
+ * parsed as Java).
29
+ */
30
+ export const BUNDLE_LANGUAGES = ['java', 'c', 'cpp'];
31
+ export function resolveBundleLanguage(filePath) {
32
+ const detected = detectLanguageFromFile(filePath);
33
+ if (!BUNDLE_LANGUAGES.includes(detected)) {
34
+ throw new Error(`--bundle supports ${BUNDLE_LANGUAGES.join('|')} sources; ${path.basename(filePath)} ` +
35
+ `is ${detected}. Use \`cognium-ai scan\` for ${detected}.`);
36
+ }
37
+ return detected;
38
+ }
39
+ /**
40
+ * cognium-ai#348 — the default `cognium-ai <path>` action coupled LLM
41
+ * verification to `--no-llm` only, so `--no-llm-verify` (advertised via
42
+ * addCommonOptions and honored by `scan` / `trust`) still ran the verifier.
43
+ * Same resolution as scan.ts: verify follows `eff.llm.verify`, gated on --llm.
44
+ */
45
+ export function resolveAnalyzeLLMFlags(args, eff) {
46
+ const llmEnabled = !args.noLlm;
47
+ return {
48
+ enableEnrichment: llmEnabled,
49
+ enableVerification: llmEnabled ? eff.llm.verify : false,
50
+ };
51
+ }
52
+ export function detectLanguageFromFile(filePath) {
28
53
  const ext = path.extname(filePath).toLowerCase();
29
54
  switch (ext) {
30
55
  case '.java': return 'java';
@@ -39,6 +64,13 @@ function detectLanguageFromFile(filePath) {
39
64
  case '.py': return 'python';
40
65
  case '.rs': return 'rust';
41
66
  case '.go': return 'go';
67
+ // cognium-ai#348 — `.cs` fell through to `java` (no case); bash/html likewise.
68
+ case '.cs':
69
+ case '.csx': return 'csharp';
70
+ case '.sh':
71
+ case '.bash': return 'bash';
72
+ case '.html':
73
+ case '.htm': return 'html';
42
74
  case '.c':
43
75
  case '.h': return 'c';
44
76
  case '.cpp':
@@ -145,6 +177,10 @@ export async function executeAnalyze(args) {
145
177
  // Effective include/exclude (CLI overrides config)
146
178
  const include = args.include.length > 0 ? args.include : (cogniumConfig?.include ?? []);
147
179
  const exclude = args.exclude.length > 0 ? args.exclude : (cogniumConfig?.exclude ?? []);
180
+ // cognium-ai#348 — resolve --llm-verify/--no-llm-verify (CLI > config > on)
181
+ // exactly as scan/trust do, instead of coupling verification to --no-llm.
182
+ const eff = getEffectiveOptions(args, targetPath);
183
+ const llmFlags = resolveAnalyzeLLMFlags(args, eff);
148
184
  try {
149
185
  if (args.bundle) {
150
186
  registerSecurityAgents();
@@ -180,8 +216,8 @@ export async function executeAnalyze(args) {
180
216
  }
181
217
  else {
182
218
  const sourceCode = fs.readFileSync(targetPath, 'utf-8');
183
- const detectedLang = detectLanguageFromFile(targetPath);
184
- const bundleLang = (['java', 'c', 'cpp'].includes(detectedLang) ? detectedLang : 'java');
219
+ // cognium-ai#348 no silent coercion of non-Java sources to `java`.
220
+ const bundleLang = resolveBundleLanguage(targetPath);
185
221
  const bundleResult = await runBundle(args.bundle, sourceCode, targetPath, {
186
222
  language: bundleLang,
187
223
  });
@@ -212,8 +248,10 @@ export async function executeAnalyze(args) {
212
248
  exclude,
213
249
  quiet: args.quiet,
214
250
  maxConcurrency: args.threads,
215
- enableEnrichment: !args.noLlm,
216
- enableVerification: !args.noLlm,
251
+ enableEnrichment: llmFlags.enableEnrichment,
252
+ enableVerification: llmFlags.enableVerification,
253
+ // cognium-ai#348 — honor --language on the default action (was ignored).
254
+ language: args.language ?? undefined,
217
255
  cacheEnabled: args.cache,
218
256
  cacheDir: args.cacheDir ?? undefined,
219
257
  clearCache: args.clearCache,
@@ -237,9 +275,9 @@ export async function executeAnalyze(args) {
237
275
  const sourceCode = fs.readFileSync(targetPath, 'utf-8');
238
276
  const detectedLang = detectLanguageFromFile(targetPath);
239
277
  const mastraResult = await analyzeFile(targetPath, sourceCode, {
240
- language: detectedLang,
241
- enableEnrichment: !args.noLlm,
242
- enableVerification: !args.noLlm,
278
+ language: args.language ?? detectedLang,
279
+ enableEnrichment: llmFlags.enableEnrichment,
280
+ enableVerification: llmFlags.enableVerification,
243
281
  disabledPasses: mergedDisabledPasses.length > 0 ? mergedDisabledPasses : undefined,
244
282
  });
245
283
  const result = {
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/health.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqFlE"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/health.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAK1C;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8FlE"}
@@ -7,11 +7,15 @@ import * as fs from 'fs';
7
7
  import { calculateHealthScore, formatHealthReport, } from 'circle-ir-ai';
8
8
  import { getEffectiveOptions } from '../effective-options.js';
9
9
  import { resolveProjectProfileForEngine } from '../project-profile.js';
10
+ import { applyIsolateParseEnv, buildInnerScanOptions } from '../inner-scan-options.js';
10
11
  /**
11
12
  * Execute health score command.
12
13
  */
13
14
  export async function executeHealth(args) {
14
15
  const targetPath = args.directory || process.cwd();
16
+ // cognium-ai#348 — health advertises --isolate-parse (addCommonOptions
17
+ // discovery) but never read it. Same env handoff as scan/trust.
18
+ applyIsolateParseEnv(args);
15
19
  if (!fs.existsSync(targetPath)) {
16
20
  console.error(`Error: Path not found: ${targetPath}`);
17
21
  return 1;
@@ -25,7 +29,7 @@ export async function executeHealth(args) {
25
29
  // vulnerability counts match `cognium-ai scan --llm` on the same
26
30
  // repo. Without this the inner scan ran static-only regardless of
27
31
  // LLM configuration.
28
- const llmEnabled = !args.noLlm;
32
+ // (enableLLM itself is resolved inside buildInnerScanOptions.)
29
33
  // cognium-ai#130: thread projectProfile via the inner ScanOptions
30
34
  // since circle-ir-ai 2.19.0's HealthScoreOptions doesn't expose
31
35
  // projectProfile directly — it delegates to the security scanner.
@@ -38,10 +42,11 @@ export async function executeHealth(args) {
38
42
  includePerformance: args.healthPerformance,
39
43
  includePatterns: eff.include.length > 0 ? eff.include : undefined,
40
44
  excludePatterns: eff.exclude.length > 0 ? eff.exclude : undefined,
41
- scanOptions: {
42
- enableLLM: llmEnabled,
43
- projectProfile: projectProfile,
44
- },
45
+ // cognium-ai#348 — forward every advertised scan flag (--no-llm-verify,
46
+ // --language, --file-timeout, --max-scan-time, -t, include/exclude) into
47
+ // the inner security scan, matching scan.ts and post-#324 trust.ts. Before
48
+ // this only enableLLM + projectProfile reached the engine.
49
+ scanOptions: buildInnerScanOptions(args, eff, projectProfile),
45
50
  onProgress: args.quiet ? undefined : (phase, progress) => {
46
51
  console.error(`[${phase}] ${Math.round(progress * 100)}%`);
47
52
  },
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/cli/commands/health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/cli/commands/health.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAU1C,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0FnE"}
1
+ {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAW1C,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkGnE"}
@@ -14,6 +14,7 @@ import * as fs from 'fs';
14
14
  import { runQualityScore as calculateQualityScore, formatQualityReport, generateQualityBadge, } from 'circle-ir-ai';
15
15
  import { getEffectiveOptions } from '../effective-options.js';
16
16
  import { resolveProjectProfileForEngine } from '../project-profile.js';
17
+ import { applyIsolateParseEnv, buildInnerScanOptions } from '../inner-scan-options.js';
17
18
  export async function executeQuality(args) {
18
19
  const targetPath = args.directory || args.file;
19
20
  if (!targetPath) {
@@ -25,15 +26,17 @@ export async function executeQuality(args) {
25
26
  console.error(`Error: Path not found: ${targetPath}`);
26
27
  return 1;
27
28
  }
29
+ // cognium-ai#348 — quality advertises --isolate-parse but never read it.
30
+ applyIsolateParseEnv(args);
28
31
  // #56: honor cognium.config.json include/exclude (and CLI flags),
29
32
  // matching how scan / analyze / dead-code already do via
30
33
  // getEffectiveOptions(). Without this, the file walk only applied
31
34
  // built-in regex skips (node_modules, .git, etc.) and the reported
32
35
  // Files/LOC ignored user excludes entirely.
33
36
  const eff = getEffectiveOptions(args, targetPath);
34
- // #44: forward LLM enable through to the inner security scan via
35
- // QualityScoreOptions.scanOptions → HealthScoreOptions.scanOptions.
36
- const llmEnabled = !args.noLlm;
37
+ // #44: LLM enable is forwarded to the inner security scan via
38
+ // QualityScoreOptions.scanOptions → HealthScoreOptions.scanOptions
39
+ // (resolved inside buildInnerScanOptions below).
37
40
  // cognium-ai#130: thread projectProfile via inner ScanOptions (the
38
41
  // quality calculator delegates the security scan).
39
42
  const projectProfile = await resolveProjectProfileForEngine(targetPath, eff.profile);
@@ -46,10 +49,11 @@ export async function executeQuality(args) {
46
49
  },
47
50
  includePatterns: eff.include.length > 0 ? eff.include : undefined,
48
51
  excludePatterns: eff.exclude.length > 0 ? eff.exclude : undefined,
49
- scanOptions: {
50
- enableLLM: llmEnabled,
51
- projectProfile: projectProfile,
52
- },
52
+ // cognium-ai#348 — forward --language / --file-timeout / --max-scan-time
53
+ // / -t / include/exclude (and the LLM verify switch) into the inner
54
+ // security scan, matching scan.ts and trust.ts. Before this only
55
+ // enableLLM + projectProfile reached the engine.
56
+ scanOptions: buildInnerScanOptions(args, eff, projectProfile),
53
57
  });
54
58
  if (args.format === 'json') {
55
59
  const jsonOutput = JSON.stringify(result, null, 2);
@@ -1 +1 @@
1
- {"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../src/cli/commands/quality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../src/cli/commands/quality.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAanD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAU1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,iBAAiB,EAE9D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAGrE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAwYhE"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAanD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAW1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,iBAAiB,EAE9D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAGrE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAoZhE"}
@@ -14,6 +14,7 @@ import { applyFindingsCap } from '../findings-cap.js';
14
14
  import { capSeverityByExploitability, capVerifierInflation } from '../severity-policy.js';
15
15
  import { enrichScanSarif } from '../formatters/scan-sarif-enrich.js';
16
16
  import { resolveProjectProfileForEngine } from '../project-profile.js';
17
+ import { armScanWatchdog, watchdogEnabled } from '../scan-watchdog.js';
17
18
  /**
18
19
  * Languages `scan` collects by default (no explicit `--language`). These are the
19
20
  * languages circle-ir runs security passes on. `c` / `cpp` are supported by the
@@ -198,7 +199,20 @@ export async function executeScan(args) {
198
199
  // cognium-ai#166 L1 — zero the process-wide truncation counter so
199
200
  // the snapshot after the scan reflects only this run.
200
201
  resetTruncationCount();
201
- const rawResult = await scanDirectory(targetPath, options);
202
+ // cognium-ai#315 a worker-thread deadline that survives a wedged main loop:
203
+ // guarantees PARTIAL JSON + [DEGRADED] + exit at maxScanMs + grace even when
204
+ // the cooperative #252 budget never gets to run.
205
+ const watchdog = options.maxScanMs !== undefined && watchdogEnabled()
206
+ ? await armScanWatchdog({ target: targetPath, maxScanMs: options.maxScanMs, outputPath: args.output, format: args.format })
207
+ : null;
208
+ let rawResult;
209
+ try {
210
+ rawResult = await scanDirectory(targetPath, options);
211
+ }
212
+ finally {
213
+ if (watchdog)
214
+ await watchdog.disarm();
215
+ }
202
216
  const truncationCount = snapshotTruncationCount();
203
217
  // cognium-ai#217/#228 — surface a `degraded: llm-unavailable` signal when
204
218
  // the LLM breaker tripped during this scan, so the output (and the harness)
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,34 @@
2
2
  * Swarm Command - Parallel multi-file analysis using Mastra
3
3
  */
4
4
  import { type SwarmResult } from 'circle-ir-ai';
5
+ import { type SupportedLanguage } from '../file-collection.js';
6
+ /**
7
+ * cognium-ai#348 — languages the default `cognium-ai <path>` walk collects.
8
+ *
9
+ * The engine's `analyzeFilesSwarm` detects a file's language from its
10
+ * extension and only takes a *request-level* `language` override (no per-file
11
+ * field), and its detector knows java/js/ts/tsx/py/rs/go/c/cpp — any other
12
+ * extension falls back to `java`. So the default walk is restricted to the
13
+ * scanned languages the swarm can route on its own; `csharp` / `bash` / `html`
14
+ * are collected only when `--language` names one of them (the request-level
15
+ * override then routes them correctly). `c` / `cpp` are not walked at all:
16
+ * `scan` already rejects them (#312 — no tree-sitter-c/cpp WASM shipped) and
17
+ * the old default include list produced PARSER_FAIL on every `.c`/`.h`.
18
+ *
19
+ * Pinned against DEFAULT_SCAN_LANGUAGES by `autofix-348-default-action.test.ts`.
20
+ */
21
+ export declare const SWARM_AUTODETECT_LANGUAGES: readonly SupportedLanguage[];
22
+ /** Scanned languages that need an explicit `--language` on the default action. */
23
+ export declare const SWARM_EXPLICIT_ONLY_LANGUAGES: readonly SupportedLanguage[];
24
+ export declare function resolveSwarmLanguages(language: string | null | undefined): SupportedLanguage[];
25
+ /** Default exclude globs when the user passes none (pre-#348 behaviour, kept). */
26
+ export declare const SWARM_DEFAULT_EXCLUDES: readonly string[];
5
27
  export interface SwarmOptions {
6
28
  directory: string;
7
29
  include: string[];
8
30
  exclude: string[];
31
+ /** cognium-ai#348 — `--language`: restricts discovery and is forwarded to the engine. */
32
+ language?: string;
9
33
  quiet: boolean;
10
34
  maxConcurrency: number;
11
35
  enableEnrichment: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/swarm.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAuHlF"}
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/swarm.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAK7E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,iBAAiB,EAElE,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,EAAE,SAAS,iBAAiB,EAA+B,CAAC;AAEtG,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB,EAAE,CAG9F;AAED,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAGnD,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA2HlF"}
@@ -4,29 +4,60 @@
4
4
  import * as fs from 'fs';
5
5
  import * as path from 'path';
6
6
  import { analyzeFilesSwarm, FileCache, logger, } from 'circle-ir-ai';
7
- import { discoverFiles } from '../discovery.js';
7
+ import { collectFiles } from '../file-collection.js';
8
+ import { expandScanLanguages } from './scan.js';
8
9
  import { colors } from '../colors.js';
9
10
  const { cyan, green, yellow, red, dim, bold } = colors;
11
+ /**
12
+ * cognium-ai#348 — languages the default `cognium-ai <path>` walk collects.
13
+ *
14
+ * The engine's `analyzeFilesSwarm` detects a file's language from its
15
+ * extension and only takes a *request-level* `language` override (no per-file
16
+ * field), and its detector knows java/js/ts/tsx/py/rs/go/c/cpp — any other
17
+ * extension falls back to `java`. So the default walk is restricted to the
18
+ * scanned languages the swarm can route on its own; `csharp` / `bash` / `html`
19
+ * are collected only when `--language` names one of them (the request-level
20
+ * override then routes them correctly). `c` / `cpp` are not walked at all:
21
+ * `scan` already rejects them (#312 — no tree-sitter-c/cpp WASM shipped) and
22
+ * the old default include list produced PARSER_FAIL on every `.c`/`.h`.
23
+ *
24
+ * Pinned against DEFAULT_SCAN_LANGUAGES by `autofix-348-default-action.test.ts`.
25
+ */
26
+ export const SWARM_AUTODETECT_LANGUAGES = [
27
+ 'java', 'javascript', 'typescript', 'tsx', 'python', 'rust', 'go',
28
+ ];
29
+ /** Scanned languages that need an explicit `--language` on the default action. */
30
+ export const SWARM_EXPLICIT_ONLY_LANGUAGES = ['csharp', 'bash', 'html'];
31
+ export function resolveSwarmLanguages(language) {
32
+ if (language)
33
+ return expandScanLanguages(language);
34
+ return [...SWARM_AUTODETECT_LANGUAGES];
35
+ }
36
+ /** Default exclude globs when the user passes none (pre-#348 behaviour, kept). */
37
+ export const SWARM_DEFAULT_EXCLUDES = [
38
+ '**/test/**', '**/tests/**', '**/*Test.java', '**/*_test.rs',
39
+ '**/node_modules/**', '**/target/**', '**/build/**',
40
+ ];
10
41
  export async function runSwarmAnalysis(options) {
11
42
  const startTime = Date.now();
12
43
  // Discover files
13
44
  if (!options.quiet) {
14
45
  console.error(cyan(`Discovering files in ${options.directory}...`));
15
46
  }
16
- const discoveryOpts = {
17
- include: options.include.length > 0 ? options.include : [
18
- '**/*.java',
19
- '**/*.js', '**/*.ts', '**/*.jsx', '**/*.tsx',
20
- '**/*.py',
21
- '**/*.rs',
22
- '**/*.c', '**/*.cpp', '**/*.h', '**/*.hpp',
23
- ],
24
- exclude: options.exclude.length > 0 ? options.exclude : [
25
- '**/test/**', '**/tests/**', '**/*Test.java', '**/*_test.rs',
26
- '**/node_modules/**', '**/target/**', '**/build/**',
27
- ],
28
- };
29
- const discoveredFiles = discoverFiles(options.directory, discoveryOpts);
47
+ // cognium-ai#348 discover through the same minimatch-based collector
48
+ // `scan` uses (file-collection.ts) instead of a stale parallel walker with
49
+ // a hand-rolled glob translator (`**/*.py` → `.*/[^/]*\.py` never matched a
50
+ // root-level file) and a C/C++ include the engine cannot parse.
51
+ const languages = resolveSwarmLanguages(options.language);
52
+ const discoveredFiles = collectFiles(options.directory, {
53
+ include: options.include.length > 0 ? options.include : undefined,
54
+ exclude: options.exclude.length > 0 ? options.exclude : [...SWARM_DEFAULT_EXCLUDES],
55
+ languages,
56
+ });
57
+ if (!options.quiet && !options.language) {
58
+ console.error(dim(`Languages: ${languages.join(', ')} (pass --language <${SWARM_EXPLICIT_ONLY_LANGUAGES.join('|')}> ` +
59
+ 'to analyze those, or use `cognium-ai scan`)'));
60
+ }
30
61
  if (discoveredFiles.length === 0) {
31
62
  console.error(yellow('No files found to analyze.'));
32
63
  return {
@@ -79,8 +110,11 @@ export async function runSwarmAnalysis(options) {
79
110
  process.stderr.write(`\r${cyan(`Progress: ${completed}/${files.length} (${percent}%)`)}`);
80
111
  }, 500);
81
112
  try {
82
- // Run swarm analysis (language auto-detected per file from extension)
113
+ // Run swarm analysis (language auto-detected per file from extension;
114
+ // cognium-ai#348 — an explicit --language is forwarded as the engine's
115
+ // request-level override so csharp/bash/html files route correctly)
83
116
  const result = await analyzeFilesSwarm(files, {
117
+ language: options.language,
84
118
  enableEnrichment: options.enableEnrichment,
85
119
  enableVerification: options.enableVerification,
86
120
  maxConcurrency: options.maxConcurrency,
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../../src/cli/commands/swarm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../../src/cli/commands/swarm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * cognium-ai#348 — shared inner-scan option builder.
3
+ *
4
+ * `health` and `quality` register the same discovery / LLM / budget flags as
5
+ * `scan` (via `addCommonOptions`) and both delegate their security dimension to
6
+ * the engine's `scanDirectory()` through `scanOptions`. Until #348 those two
7
+ * handlers forwarded only `{ enableLLM, projectProfile }`, so every other
8
+ * advertised flag — `--no-llm-verify`, `--language`, `--file-timeout`,
9
+ * `--max-scan-time`, `--isolate-parse`, `-t` — was a silent no-op on the inner
10
+ * scan. `trust` got the same wiring under #321/#322/#324; this module lifts that
11
+ * block into one place so the three commands cannot drift apart again.
12
+ */
13
+ import type { ScanOptions } from 'circle-ir-ai';
14
+ import type { CliArgs } from './args.js';
15
+ import type { EffectiveOptions } from './effective-options.js';
16
+ /**
17
+ * #252 — `--isolate-parse` is communicated to the engine via env (same shape
18
+ * as the LLM knobs) so every engine entry point picks it up. Mirrors scan.ts /
19
+ * trust.ts; call before the first engine invocation.
20
+ */
21
+ export declare function applyIsolateParseEnv(args: Pick<CliArgs, 'isolateParse'>): void;
22
+ /**
23
+ * Resolve the language list the inner scan should walk — the same rule as
24
+ * `scan` / `trust`: an explicit `--language` (with the #311 typescript→tsx
25
+ * expansion), otherwise the full default scanned set.
26
+ */
27
+ export declare function resolveInnerScanLanguages(language: string | null | undefined): ScanOptions['languages'];
28
+ /**
29
+ * Build the `scanOptions` forwarded to the engine's inner security scan by
30
+ * `health` / `quality`. Field-for-field the contract `scan` and post-#324
31
+ * `trust` already honor:
32
+ *
33
+ * - `enableLLMVerify` follows `--llm-verify` / `--no-llm-verify` (#124/#324),
34
+ * gated on `--llm` so `--no-llm --llm-verify` is unambiguous.
35
+ * - `fileTimeoutMs` / `maxScanMs` / `maxConcurrency` follow `--file-timeout` /
36
+ * `--max-scan-time` / `-t` (#321).
37
+ * - `languages` follows `--language` (#322).
38
+ * - `includePatterns` / `excludePatterns` follow the effective include/exclude.
39
+ */
40
+ export declare function buildInnerScanOptions(args: Pick<CliArgs, 'noLlm' | 'fileTimeout' | 'maxScanTime' | 'threads' | 'language'>, eff: Pick<EffectiveOptions, 'llm' | 'include' | 'exclude'>, projectProfile: ScanOptions['projectProfile'] | undefined): Partial<ScanOptions>;
41
+ //# sourceMappingURL=inner-scan-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inner-scan-options.d.ts","sourceRoot":"","sources":["../../src/cli/inner-scan-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,IAAI,CAI9E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,WAAW,CAAC,WAAW,CAAC,CAI1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC,EACrF,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC,EAC1D,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,SAAS,GACxD,OAAO,CAAC,WAAW,CAAC,CAatB"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * cognium-ai#348 — shared inner-scan option builder.
3
+ *
4
+ * `health` and `quality` register the same discovery / LLM / budget flags as
5
+ * `scan` (via `addCommonOptions`) and both delegate their security dimension to
6
+ * the engine's `scanDirectory()` through `scanOptions`. Until #348 those two
7
+ * handlers forwarded only `{ enableLLM, projectProfile }`, so every other
8
+ * advertised flag — `--no-llm-verify`, `--language`, `--file-timeout`,
9
+ * `--max-scan-time`, `--isolate-parse`, `-t` — was a silent no-op on the inner
10
+ * scan. `trust` got the same wiring under #321/#322/#324; this module lifts that
11
+ * block into one place so the three commands cannot drift apart again.
12
+ */
13
+ import { DEFAULT_SCAN_LANGUAGES, expandScanLanguages } from './commands/scan.js';
14
+ /**
15
+ * #252 — `--isolate-parse` is communicated to the engine via env (same shape
16
+ * as the LLM knobs) so every engine entry point picks it up. Mirrors scan.ts /
17
+ * trust.ts; call before the first engine invocation.
18
+ */
19
+ export function applyIsolateParseEnv(args) {
20
+ if (args.isolateParse) {
21
+ process.env.SCAN_PARSE_ISOLATION = '1';
22
+ }
23
+ }
24
+ /**
25
+ * Resolve the language list the inner scan should walk — the same rule as
26
+ * `scan` / `trust`: an explicit `--language` (with the #311 typescript→tsx
27
+ * expansion), otherwise the full default scanned set.
28
+ */
29
+ export function resolveInnerScanLanguages(language) {
30
+ return (language
31
+ ? expandScanLanguages(language)
32
+ : [...DEFAULT_SCAN_LANGUAGES]);
33
+ }
34
+ /**
35
+ * Build the `scanOptions` forwarded to the engine's inner security scan by
36
+ * `health` / `quality`. Field-for-field the contract `scan` and post-#324
37
+ * `trust` already honor:
38
+ *
39
+ * - `enableLLMVerify` follows `--llm-verify` / `--no-llm-verify` (#124/#324),
40
+ * gated on `--llm` so `--no-llm --llm-verify` is unambiguous.
41
+ * - `fileTimeoutMs` / `maxScanMs` / `maxConcurrency` follow `--file-timeout` /
42
+ * `--max-scan-time` / `-t` (#321).
43
+ * - `languages` follows `--language` (#322).
44
+ * - `includePatterns` / `excludePatterns` follow the effective include/exclude.
45
+ */
46
+ export function buildInnerScanOptions(args, eff, projectProfile) {
47
+ const llmEnabled = !args.noLlm;
48
+ return {
49
+ enableLLM: llmEnabled,
50
+ enableLLMVerify: llmEnabled ? eff.llm.verify : false,
51
+ fileTimeoutMs: args.fileTimeout * 1000,
52
+ maxScanMs: args.maxScanTime ? args.maxScanTime * 1000 : undefined,
53
+ maxConcurrency: args.threads,
54
+ languages: resolveInnerScanLanguages(args.language),
55
+ includePatterns: eff.include.length > 0 ? eff.include : undefined,
56
+ excludePatterns: eff.exclude.length > 0 ? eff.exclude : undefined,
57
+ projectProfile,
58
+ };
59
+ }
60
+ //# sourceMappingURL=inner-scan-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inner-scan-options.js","sourceRoot":"","sources":["../../src/cli/inner-scan-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEjF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAmC;IACtE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAmC;IAEnC,OAAO,CAAC,QAAQ;QACd,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAA6B,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAqF,EACrF,GAA0D,EAC1D,cAAyD;IAEzD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B,OAAO;QACL,SAAS,EAAE,UAAU;QACrB,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;QACpD,aAAa,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI;QACtC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;QACjE,cAAc,EAAE,IAAI,CAAC,OAAO;QAC5B,SAAS,EAAE,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnD,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACjE,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACjE,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,68 @@
1
+ export interface WatchdogInfo {
2
+ target: string;
3
+ maxScanMs: number;
4
+ graceMs: number;
5
+ startedAt: number;
6
+ firedAt: number;
7
+ }
8
+ /** The PARTIAL result the watchdog emits — the scan JSON's top-level shape, empty. */
9
+ export declare function buildWatchdogPartialResult(info: WatchdogInfo): {
10
+ meta: {
11
+ target: string;
12
+ timestamp: string;
13
+ durationMs: number;
14
+ degraded: boolean;
15
+ degradedReason: string;
16
+ degradedDetail: string;
17
+ maxScanMs: number;
18
+ filesAnalyzed: number;
19
+ };
20
+ findings: never[];
21
+ byOWASP: {};
22
+ summary: {
23
+ totalFiles: number;
24
+ totalLOC: number;
25
+ totalFindings: number;
26
+ bySeverity: {
27
+ critical: number;
28
+ high: number;
29
+ medium: number;
30
+ low: number;
31
+ };
32
+ byType: {};
33
+ };
34
+ files: never[];
35
+ parseFailures: never[];
36
+ totalFindings: number;
37
+ tier: string;
38
+ tiers: {
39
+ static_high_confidence: never[];
40
+ llm_enriched: never[];
41
+ };
42
+ degraded: string;
43
+ };
44
+ export interface ArmOptions {
45
+ target: string;
46
+ maxScanMs: number;
47
+ /** Output file (`-o`); `null` writes to stdout (fd 1). */
48
+ outputPath: string | null;
49
+ /** Only JSON is emitted by the watchdog; other formats get the `[DEGRADED]` line + exit. */
50
+ format: string;
51
+ graceMs?: number;
52
+ /** Signal to send (default SIGKILL — the only signal a wedged main thread cannot swallow). */
53
+ signal?: NodeJS.Signals;
54
+ }
55
+ export interface ArmedWatchdog {
56
+ disarm(): Promise<void>;
57
+ readonly graceMs: number;
58
+ }
59
+ export declare function watchdogGraceMs(): number;
60
+ export declare function watchdogEnabled(): boolean;
61
+ /**
62
+ * Arm the watchdog. Resolves once the worker is actually running (`online`), bounded
63
+ * to 2 s: a worker only starts executing after the main loop yields once, so arming
64
+ * synchronously and then wedging immediately would leave it never started. The
65
+ * returned handle's `disarm()` must be awaited when the scan returns.
66
+ */
67
+ export declare function armScanWatchdog(opts: ArmOptions): Promise<ArmedWatchdog>;
68
+ //# sourceMappingURL=scan-watchdog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-watchdog.d.ts","sourceRoot":"","sources":["../../src/cli/scan-watchdog.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,sFAAsF;AACtF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB5D;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AA2BD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAiC9E"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * cognium-ai#315 — hard scan-deadline watchdog.
3
+ *
4
+ * `--max-scan-time` (#252) is enforced cooperatively: the engine checks the
5
+ * budget between files and `awaitWorkersWithDeadline` arms a `setTimeout`. Both
6
+ * live on the main event loop, so a synchronous wedge (a pathological parse, a
7
+ * sync read, a tight loop under 429 back-off) blocks the deadline itself and the
8
+ * process runs until the orchestrator SIGKILLs it — with **no JSON and no
9
+ * `[DEGRADED]` line** (markdown-preview.nvim, #315).
10
+ *
11
+ * A worker thread has its own event loop and is not blocked by the main thread.
12
+ * At `maxScanMs + graceMs` it writes a schema-compatible PARTIAL result straight
13
+ * to the output descriptor with `fs.writeSync` (an OS-level write — a worker's
14
+ * `process.stdout` would route through the wedged main thread, so it is not
15
+ * used), prints the `[DEGRADED]` line to fd 2, and terminates the process with
16
+ * SIGTERM. The contract "hitting the budget always yields PARTIAL JSON and
17
+ * exits" therefore holds even when the main loop cannot run.
18
+ *
19
+ * Disarmed (worker terminated) the moment the scan returns normally, so a
20
+ * healthy run never sees it. Kill switch: `SCAN_WATCHDOG=0`.
21
+ *
22
+ * Known non-case: under `node -e` (an eval'd main script) worker timers never
23
+ * fire while the main thread is wedged; the CLI always runs from a file
24
+ * (dist/cli.js), where they do — the integration test spawns a file for that reason.
25
+ * Grace: `SCAN_WATCHDOG_GRACE_MS` (default 30 000 ms) — the cooperative path
26
+ * gets that long to finish its own partial emit before the watchdog fires.
27
+ */
28
+ import { Worker } from 'node:worker_threads';
29
+ /** The PARTIAL result the watchdog emits — the scan JSON's top-level shape, empty. */
30
+ export function buildWatchdogPartialResult(info) {
31
+ return {
32
+ meta: {
33
+ target: info.target,
34
+ timestamp: new Date(info.firedAt).toISOString(),
35
+ durationMs: info.firedAt - info.startedAt,
36
+ degraded: true,
37
+ degradedReason: 'watchdog',
38
+ degradedDetail: `cognium-ai#315: scan budget (${info.maxScanMs}ms) exceeded by more than the ${info.graceMs}ms grace and the main thread did not yield; watchdog emitted this partial result and terminated the process. Findings gathered before the wedge are not available.`,
39
+ maxScanMs: info.maxScanMs,
40
+ filesAnalyzed: 0,
41
+ },
42
+ findings: [],
43
+ byOWASP: {},
44
+ summary: { totalFiles: 0, totalLOC: 0, totalFindings: 0, bySeverity: { critical: 0, high: 0, medium: 0, low: 0 }, byType: {} },
45
+ files: [],
46
+ parseFailures: [],
47
+ totalFindings: 0,
48
+ tier: 'static',
49
+ tiers: { static_high_confidence: [], llm_enriched: [] },
50
+ degraded: 'watchdog',
51
+ };
52
+ }
53
+ export function watchdogGraceMs() {
54
+ const v = Number(process.env.SCAN_WATCHDOG_GRACE_MS);
55
+ return Number.isFinite(v) && v >= 0 ? v : 30_000;
56
+ }
57
+ export function watchdogEnabled() {
58
+ return process.env.SCAN_WATCHDOG !== '0';
59
+ }
60
+ // Runs inside the worker (CommonJS eval context). Kept as a string so it needs no
61
+ // separate file to resolve in dev (tsx) and dist (compiled) alike.
62
+ const WORKER_SOURCE = `
63
+ const { workerData } = require('node:worker_threads');
64
+ const fs = require('node:fs');
65
+ const { maxScanMs, graceMs, outputPath, format, target, startedAt, signal, partialBuilder } = workerData;
66
+ const build = new Function('info', partialBuilder);
67
+ setTimeout(() => {
68
+ const firedAt = Date.now();
69
+ const info = { target, maxScanMs, graceMs, startedAt, firedAt };
70
+ let wrote = 'nothing';
71
+ try {
72
+ if (format === 'json') {
73
+ const json = JSON.stringify(build(info), null, 2) + '\\n';
74
+ if (outputPath) { fs.writeFileSync(outputPath, json); wrote = outputPath; }
75
+ else { fs.writeSync(1, json); wrote = 'stdout'; }
76
+ }
77
+ } catch (e) { wrote = 'FAILED: ' + (e && e.message ? e.message : String(e)); }
78
+ try {
79
+ fs.writeSync(2, '[DEGRADED] cognium-ai#315: scan budget (' + maxScanMs + 'ms) exceeded by >' + graceMs + 'ms grace with the main thread wedged; watchdog wrote PARTIAL result (' + wrote + ') and is terminating the process (' + signal + ').\\n');
80
+ } catch {}
81
+ try { process.kill(process.pid, signal); } catch {}
82
+ }, Math.max(0, maxScanMs + graceMs - (Date.now() - startedAt)));
83
+ `;
84
+ /**
85
+ * Arm the watchdog. Resolves once the worker is actually running (`online`), bounded
86
+ * to 2 s: a worker only starts executing after the main loop yields once, so arming
87
+ * synchronously and then wedging immediately would leave it never started. The
88
+ * returned handle's `disarm()` must be awaited when the scan returns.
89
+ */
90
+ export async function armScanWatchdog(opts) {
91
+ const graceMs = opts.graceMs ?? watchdogGraceMs();
92
+ const startedAt = Date.now();
93
+ // Ship the builder's body so the worker produces exactly `buildWatchdogPartialResult`.
94
+ const src = buildWatchdogPartialResult.toString();
95
+ const body = src.slice(src.indexOf('{') + 1, src.lastIndexOf('}'));
96
+ const worker = new Worker(WORKER_SOURCE, {
97
+ eval: true,
98
+ workerData: {
99
+ maxScanMs: opts.maxScanMs,
100
+ graceMs,
101
+ outputPath: opts.outputPath,
102
+ format: opts.format,
103
+ target: opts.target,
104
+ startedAt,
105
+ signal: opts.signal ?? 'SIGKILL',
106
+ partialBuilder: body,
107
+ },
108
+ });
109
+ worker.unref(); // never keeps a finished scan alive
110
+ worker.on('error', () => { });
111
+ await new Promise((resolve) => {
112
+ // The timer is deliberately ref'd: the worker is unref'd, so this bounded wait
113
+ // is the only thing keeping the loop alive until `online` (or the 2 s cap).
114
+ const t = setTimeout(resolve, 2_000);
115
+ worker.once('online', () => { clearTimeout(t); resolve(); });
116
+ });
117
+ return {
118
+ graceMs,
119
+ async disarm() {
120
+ try {
121
+ await worker.terminate();
122
+ }
123
+ catch { /* already gone */ }
124
+ },
125
+ };
126
+ }
127
+ //# sourceMappingURL=scan-watchdog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-watchdog.js","sourceRoot":"","sources":["../../src/cli/scan-watchdog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cognium-ai",
3
- "version": "4.10.0",
3
+ "version": "4.11.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",
@@ -42,8 +42,8 @@
42
42
  ],
43
43
  "dependencies": {
44
44
  "@cognium/project-profile-detect": "^1.1.0",
45
- "circle-ir": "4.9.9",
46
- "circle-ir-ai": "^4.10.0",
45
+ "circle-ir": "4.9.10",
46
+ "circle-ir-ai": "^4.11.0",
47
47
  "commander": "^14.0.3",
48
48
  "minimatch": "^10.2.5"
49
49
  },