circle-ir-ai 2.31.0 → 2.32.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.
@@ -8,6 +8,7 @@ import * as path from 'path';
8
8
  import * as fs from 'fs';
9
9
  import PQueue from 'p-queue';
10
10
  import { analyzeFile } from './workflow.js';
11
+ import { resetLLMCallLimiter, markSwarmStart, markSwarmEnd, } from '../../llm/call-limiter.js';
11
12
  /**
12
13
  * Detect language from file extension
13
14
  */
@@ -270,227 +271,301 @@ async function analyzeFileWithErrorHandling(file, options) {
270
271
  * Supports streaming results to disk for memory efficiency
271
272
  */
272
273
  export async function analyzeFilesSwarm(files, options) {
273
- const startTime = Date.now();
274
- const opts = {
275
- language: options?.language ?? 'java',
276
- enableEnrichment: options?.enableEnrichment ?? false, // Disabled by default for swarm (faster)
277
- enableVerification: options?.enableVerification ?? false,
278
- maxConcurrency: options?.maxConcurrency ?? 10,
279
- cacheEnabled: options?.cacheEnabled ?? true,
280
- memoryEfficient: options?.memoryEfficient ?? false,
281
- ...options,
282
- };
283
- // Memory-efficient mode requires streamToFile
284
- const memoryEfficient = opts.memoryEfficient && opts.streamToFile;
285
- const results = memoryEfficient ? [] : new Array(files.length);
286
- const concurrency = opts.maxConcurrency || 10;
287
- const cache = opts.cache;
288
- const cacheEnabled = opts.cacheEnabled && cache?.isEnabled();
289
- // #50: cache scope = LLM model so switching models doesn't return
290
- // stale results from a previous run. Same model → same cache key →
291
- // hit. Different model → different key → fresh analysis. The cache
292
- // benefits both models independently (no eviction).
293
- const cacheScope = opts.llmConfig?.phases?.enrichment?.model
294
- ?? process.env.LLM_ENRICHMENT_MODEL
295
- ?? 'default';
296
- let cacheHits = 0;
297
- let cacheMisses = 0;
298
- // Streaming stats (tracked even in memory-efficient mode)
299
- let totalVulnerabilities = 0;
300
- let totalSources = 0;
301
- let totalSinks = 0;
302
- let filesWithVulnerabilities = 0;
303
- // Setup file streaming if enabled
304
- let writeStream = null;
305
- let writeQueue = Promise.resolve();
306
- if (opts.streamToFile) {
307
- // Ensure directory exists
308
- const dir = path.dirname(opts.streamToFile);
309
- if (dir && dir !== '.') {
310
- fs.mkdirSync(dir, { recursive: true });
274
+ // cognium-ai#160 reset the LLM call-limiter at the top of every
275
+ // scan so `LLM_MAX_CALLS_PER_SCAN` is a per-run budget, not a
276
+ // process-lifetime budget. `markSwarmStart` sets the flag that
277
+ // suppresses re-resets from nested `analyzeFile` calls. The
278
+ // matching `markSwarmEnd` in the `finally` block restores
279
+ // single-file reset semantics for subsequent standalone runs.
280
+ resetLLMCallLimiter(true);
281
+ markSwarmStart();
282
+ try {
283
+ const startTime = Date.now();
284
+ const opts = {
285
+ language: options?.language ?? 'java',
286
+ enableEnrichment: options?.enableEnrichment ?? false, // Disabled by default for swarm (faster)
287
+ enableVerification: options?.enableVerification ?? false,
288
+ maxConcurrency: options?.maxConcurrency ?? 10,
289
+ cacheEnabled: options?.cacheEnabled ?? true,
290
+ memoryEfficient: options?.memoryEfficient ?? false,
291
+ ...options,
292
+ };
293
+ // Memory-efficient mode requires streamToFile
294
+ const memoryEfficient = opts.memoryEfficient && opts.streamToFile;
295
+ const results = memoryEfficient ? [] : new Array(files.length);
296
+ const concurrency = opts.maxConcurrency || 10;
297
+ const cache = opts.cache;
298
+ const cacheEnabled = opts.cacheEnabled && cache?.isEnabled();
299
+ // #50: cache scope = LLM model so switching models doesn't return
300
+ // stale results from a previous run. Same model → same cache key →
301
+ // hit. Different model → different key → fresh analysis. The cache
302
+ // benefits both models independently (no eviction).
303
+ const cacheScope = opts.llmConfig?.phases?.enrichment?.model
304
+ ?? process.env.LLM_ENRICHMENT_MODEL
305
+ ?? 'default';
306
+ let cacheHits = 0;
307
+ let cacheMisses = 0;
308
+ // Streaming stats (tracked even in memory-efficient mode)
309
+ let totalVulnerabilities = 0;
310
+ let totalSources = 0;
311
+ let totalSinks = 0;
312
+ let filesWithVulnerabilities = 0;
313
+ // Setup file streaming if enabled
314
+ let writeStream = null;
315
+ let writeQueue = Promise.resolve();
316
+ if (opts.streamToFile) {
317
+ // Ensure directory exists
318
+ const dir = path.dirname(opts.streamToFile);
319
+ if (dir && dir !== '.') {
320
+ fs.mkdirSync(dir, { recursive: true });
321
+ }
322
+ writeStream = fs.createWriteStream(opts.streamToFile, { flags: 'w' });
311
323
  }
312
- writeStream = fs.createWriteStream(opts.streamToFile, { flags: 'w' });
313
- }
314
- // Helper to write result to stream (serialized to avoid interleaving)
315
- const writeResult = (result, index) => {
316
- if (!writeStream)
317
- return;
318
- writeQueue = writeQueue.then(() => {
319
- return new Promise((resolve, reject) => {
320
- const line = JSON.stringify(result) + '\n';
321
- const canContinue = writeStream.write(line);
322
- if (canContinue) {
323
- opts.onResultWritten?.(result.file, index);
324
- resolve();
325
- }
326
- else {
327
- writeStream.once('drain', () => {
324
+ // Helper to write result to stream (serialized to avoid interleaving)
325
+ const writeResult = (result, index) => {
326
+ if (!writeStream)
327
+ return;
328
+ writeQueue = writeQueue.then(() => {
329
+ return new Promise((resolve, reject) => {
330
+ const line = JSON.stringify(result) + '\n';
331
+ const canContinue = writeStream.write(line);
332
+ if (canContinue) {
328
333
  opts.onResultWritten?.(result.file, index);
329
334
  resolve();
330
- });
331
- }
335
+ }
336
+ else {
337
+ writeStream.once('drain', () => {
338
+ opts.onResultWritten?.(result.file, index);
339
+ resolve();
340
+ });
341
+ }
342
+ });
332
343
  });
333
- });
334
- };
335
- // Use p-queue for true concurrent processing with backpressure
336
- const queue = new PQueue({ concurrency });
337
- // Add all files to queue - they start immediately as slots become available
338
- const promises = files.map((file, index) => queue.add(async () => {
339
- opts.onFileStart?.(file.path, index, files.length);
340
- let result;
341
- // Load content for cache check (lazy or eager)
342
- // Note: We load content here for cache key, but memory is still bounded
343
- // by concurrency since only 'concurrency' files are in-flight at once
344
- const content = await resolveFileContent(file);
345
- // Check cache first. #50: scope by LLM model so we don't return
346
- // qwen-coder's results to a llama3.2 run.
347
- if (cacheEnabled && cache) {
348
- const cached = cache.get(file.path, content, cacheScope);
349
- if (cached) {
350
- cacheHits++;
351
- result = cached;
344
+ };
345
+ // Use p-queue for true concurrent processing with backpressure
346
+ const queue = new PQueue({ concurrency });
347
+ // Add all files to queue - they start immediately as slots become available
348
+ const promises = files.map((file, index) => queue.add(async () => {
349
+ opts.onFileStart?.(file.path, index, files.length);
350
+ let result;
351
+ // Load content for cache check (lazy or eager)
352
+ // Note: We load content here for cache key, but memory is still bounded
353
+ // by concurrency since only 'concurrency' files are in-flight at once
354
+ const content = await resolveFileContent(file);
355
+ // Check cache first. #50: scope by LLM model so we don't return
356
+ // qwen-coder's results to a llama3.2 run.
357
+ if (cacheEnabled && cache) {
358
+ const cached = cache.get(file.path, content, cacheScope);
359
+ if (cached) {
360
+ cacheHits++;
361
+ result = cached;
362
+ }
363
+ else {
364
+ cacheMisses++;
365
+ // Pass file with resolved content to avoid double-loading
366
+ result = await analyzeFileWithErrorHandling({ path: file.path, content }, opts);
367
+ // Store in cache (only if no error)
368
+ if (!result.error) {
369
+ cache.set(file.path, content, result, cacheScope);
370
+ }
371
+ }
352
372
  }
353
373
  else {
354
- cacheMisses++;
355
374
  // Pass file with resolved content to avoid double-loading
356
375
  result = await analyzeFileWithErrorHandling({ path: file.path, content }, opts);
357
- // Store in cache (only if no error)
358
- if (!result.error) {
359
- cache.set(file.path, content, result, cacheScope);
360
- }
361
376
  }
362
- }
363
- else {
364
- // Pass file with resolved content to avoid double-loading
365
- result = await analyzeFileWithErrorHandling({ path: file.path, content }, opts);
366
- }
367
- // Update streaming stats
368
- totalVulnerabilities += result.vulnerabilities.length;
369
- totalSources += result.stats.totalSources;
370
- totalSinks += result.stats.totalSinks;
371
- if (result.vulnerabilities.length > 0)
372
- filesWithVulnerabilities++;
373
- // Write to stream if enabled
377
+ // Update streaming stats
378
+ totalVulnerabilities += result.vulnerabilities.length;
379
+ totalSources += result.stats.totalSources;
380
+ totalSinks += result.stats.totalSinks;
381
+ if (result.vulnerabilities.length > 0)
382
+ filesWithVulnerabilities++;
383
+ // Write to stream if enabled
384
+ if (writeStream) {
385
+ writeResult(result, index);
386
+ }
387
+ opts.onFileComplete?.(file.path, index, files.length);
388
+ // Store result in memory only if not in memory-efficient mode
389
+ if (!memoryEfficient) {
390
+ results[index] = result;
391
+ }
392
+ return result;
393
+ }));
394
+ // Wait for all analysis to complete
395
+ await Promise.all(promises);
396
+ // Wait for all writes to complete
397
+ await writeQueue;
398
+ // Close write stream
374
399
  if (writeStream) {
375
- writeResult(result, index);
376
- }
377
- opts.onFileComplete?.(file.path, index, files.length);
378
- // Store result in memory only if not in memory-efficient mode
379
- if (!memoryEfficient) {
380
- results[index] = result;
400
+ await new Promise((resolve, reject) => {
401
+ writeStream.end(() => resolve());
402
+ });
381
403
  }
382
- return result;
383
- }));
384
- // Wait for all analysis to complete
385
- await Promise.all(promises);
386
- // Wait for all writes to complete
387
- await writeQueue;
388
- // Close write stream
389
- if (writeStream) {
390
- await new Promise((resolve, reject) => {
391
- writeStream.end(() => resolve());
392
- });
404
+ const totalTimeMs = Date.now() - startTime;
405
+ return {
406
+ results,
407
+ summary: {
408
+ totalFiles: files.length,
409
+ totalVulnerabilities,
410
+ totalSources,
411
+ totalSinks,
412
+ filesWithVulnerabilities,
413
+ totalTimeMs,
414
+ avgTimePerFile: files.length > 0 ? totalTimeMs / files.length : 0,
415
+ cacheHits: cacheEnabled ? cacheHits : undefined,
416
+ cacheMisses: cacheEnabled ? cacheMisses : undefined,
417
+ },
418
+ streamFile: opts.streamToFile,
419
+ };
420
+ }
421
+ finally {
422
+ // cognium-ai#160 — restore single-file reset semantics even if
423
+ // the swarm threw; leaving `runningSwarm=true` would cause
424
+ // subsequent standalone `analyzeFile` calls to inherit a stale
425
+ // counter.
426
+ markSwarmEnd();
393
427
  }
394
- const totalTimeMs = Date.now() - startTime;
395
- return {
396
- results,
397
- summary: {
398
- totalFiles: files.length,
399
- totalVulnerabilities,
400
- totalSources,
401
- totalSinks,
402
- filesWithVulnerabilities,
403
- totalTimeMs,
404
- avgTimePerFile: files.length > 0 ? totalTimeMs / files.length : 0,
405
- cacheHits: cacheEnabled ? cacheHits : undefined,
406
- cacheMisses: cacheEnabled ? cacheMisses : undefined,
407
- },
408
- streamFile: opts.streamToFile,
409
- };
410
428
  }
411
429
  /**
412
430
  * Stream swarm analysis with progress updates
413
431
  * Uses p-queue for true concurrent processing without batch blocking
414
432
  */
415
433
  export async function* analyzeFilesSwarmStream(files, options) {
416
- const startTime = Date.now();
417
- const opts = {
418
- language: options?.language ?? 'java',
419
- enableEnrichment: options?.enableEnrichment ?? false,
420
- enableVerification: options?.enableVerification ?? false,
421
- maxConcurrency: options?.maxConcurrency ?? 10,
422
- ...options,
423
- };
424
- const results = new Array(files.length);
425
- const concurrency = opts.maxConcurrency || 10;
426
- const total = files.length;
427
- const eventQueue = [];
428
- let completedCount = 0;
429
- let resolveWaiting = null;
430
- const notifyWaiting = () => {
431
- if (resolveWaiting) {
432
- const resolve = resolveWaiting;
433
- resolveWaiting = null;
434
- resolve();
434
+ // cognium-ai#160 same reset semantics as `analyzeFilesSwarm`.
435
+ // The `try…finally` block handles both normal completion and the
436
+ // consumer aborting the generator early (`.return()` triggers
437
+ // `finally`).
438
+ resetLLMCallLimiter(true);
439
+ markSwarmStart();
440
+ try {
441
+ const startTime = Date.now();
442
+ const opts = {
443
+ language: options?.language ?? 'java',
444
+ enableEnrichment: options?.enableEnrichment ?? false,
445
+ enableVerification: options?.enableVerification ?? false,
446
+ maxConcurrency: options?.maxConcurrency ?? 10,
447
+ ...options,
448
+ };
449
+ const results = new Array(files.length);
450
+ const concurrency = opts.maxConcurrency || 10;
451
+ const total = files.length;
452
+ const eventQueue = [];
453
+ let completedCount = 0;
454
+ let resolveWaiting = null;
455
+ const notifyWaiting = () => {
456
+ if (resolveWaiting) {
457
+ const resolve = resolveWaiting;
458
+ resolveWaiting = null;
459
+ resolve();
460
+ }
461
+ };
462
+ const queue = new PQueue({ concurrency });
463
+ // Add all files to queue
464
+ const promises = files.map((file, index) => queue.add(async () => {
465
+ // Push start event
466
+ eventQueue.push({
467
+ type: 'file-start',
468
+ file: file.path,
469
+ index,
470
+ total,
471
+ });
472
+ notifyWaiting();
473
+ const result = await analyzeFileWithErrorHandling(file, opts);
474
+ results[index] = result;
475
+ completedCount++;
476
+ // Push completion event
477
+ eventQueue.push({
478
+ type: 'file-complete',
479
+ file: result.file,
480
+ index,
481
+ total,
482
+ result,
483
+ });
484
+ // Push progress event
485
+ eventQueue.push({
486
+ type: 'progress',
487
+ index: completedCount,
488
+ total,
489
+ });
490
+ notifyWaiting();
491
+ return result;
492
+ }));
493
+ // Yield events as they come in
494
+ const allDone = Promise.all(promises);
495
+ while (completedCount < files.length) {
496
+ // Drain event queue
497
+ while (eventQueue.length > 0) {
498
+ yield eventQueue.shift();
499
+ }
500
+ // Wait for more events or completion
501
+ if (completedCount < files.length) {
502
+ await Promise.race([
503
+ allDone,
504
+ new Promise(resolve => {
505
+ resolveWaiting = resolve;
506
+ }),
507
+ ]);
508
+ }
435
509
  }
436
- };
437
- const queue = new PQueue({ concurrency });
438
- // Add all files to queue
439
- const promises = files.map((file, index) => queue.add(async () => {
440
- // Push start event
441
- eventQueue.push({
442
- type: 'file-start',
443
- file: file.path,
444
- index,
445
- total,
446
- });
447
- notifyWaiting();
448
- const result = await analyzeFileWithErrorHandling(file, opts);
449
- results[index] = result;
450
- completedCount++;
451
- // Push completion event
452
- eventQueue.push({
453
- type: 'file-complete',
454
- file: result.file,
455
- index,
456
- total,
457
- result,
458
- });
459
- // Push progress event
460
- eventQueue.push({
461
- type: 'progress',
462
- index: completedCount,
463
- total,
464
- });
465
- notifyWaiting();
466
- return result;
467
- }));
468
- // Yield events as they come in
469
- const allDone = Promise.all(promises);
470
- while (completedCount < files.length) {
471
- // Drain event queue
510
+ // Drain remaining events
472
511
  while (eventQueue.length > 0) {
473
512
  yield eventQueue.shift();
474
513
  }
475
- // Wait for more events or completion
476
- if (completedCount < files.length) {
477
- await Promise.race([
478
- allDone,
479
- new Promise(resolve => {
480
- resolveWaiting = resolve;
481
- }),
482
- ]);
483
- }
514
+ await allDone;
515
+ const totalTimeMs = Date.now() - startTime;
516
+ yield {
517
+ type: 'done',
518
+ result: {
519
+ results,
520
+ summary: {
521
+ totalFiles: results.length,
522
+ totalVulnerabilities: results.reduce((sum, r) => sum + r.vulnerabilities.length, 0),
523
+ totalSources: results.reduce((sum, r) => sum + r.stats.totalSources, 0),
524
+ totalSinks: results.reduce((sum, r) => sum + r.stats.totalSinks, 0),
525
+ filesWithVulnerabilities: results.filter(r => r.vulnerabilities.length > 0).length,
526
+ totalTimeMs,
527
+ avgTimePerFile: results.length > 0 ? totalTimeMs / results.length : 0,
528
+ },
529
+ },
530
+ };
484
531
  }
485
- // Drain remaining events
486
- while (eventQueue.length > 0) {
487
- yield eventQueue.shift();
532
+ finally {
533
+ // cognium-ai#160 mirror `analyzeFilesSwarm` cleanup.
534
+ markSwarmEnd();
488
535
  }
489
- await allDone;
490
- const totalTimeMs = Date.now() - startTime;
491
- yield {
492
- type: 'done',
493
- result: {
536
+ }
537
+ /**
538
+ * Process files in batches with controlled concurrency
539
+ * (Alternative function for direct batch control)
540
+ */
541
+ export async function analyzeFilesInBatches(files, options) {
542
+ // cognium-ai#160 — same reset semantics as `analyzeFilesSwarm`.
543
+ resetLLMCallLimiter(true);
544
+ markSwarmStart();
545
+ try {
546
+ const batchSize = options?.batchSize ?? options?.maxConcurrency ?? 10;
547
+ const results = [];
548
+ const startTime = Date.now();
549
+ const opts = {
550
+ language: options?.language ?? 'java',
551
+ enableEnrichment: options?.enableEnrichment ?? false,
552
+ enableVerification: options?.enableVerification ?? false,
553
+ ...options,
554
+ };
555
+ for (let i = 0; i < files.length; i += batchSize) {
556
+ const batch = files.slice(i, i + batchSize);
557
+ // Process batch in parallel
558
+ const batchResults = await Promise.all(batch.map(async (file, batchIndex) => {
559
+ const globalIndex = i + batchIndex;
560
+ opts.onFileStart?.(file.path, globalIndex, files.length);
561
+ const result = await analyzeFileWithErrorHandling(file, opts);
562
+ opts.onFileComplete?.(file.path, globalIndex, files.length);
563
+ return result;
564
+ }));
565
+ results.push(...batchResults);
566
+ }
567
+ const totalTimeMs = Date.now() - startTime;
568
+ return {
494
569
  results,
495
570
  summary: {
496
571
  totalFiles: results.length,
@@ -501,48 +576,12 @@ export async function* analyzeFilesSwarmStream(files, options) {
501
576
  totalTimeMs,
502
577
  avgTimePerFile: results.length > 0 ? totalTimeMs / results.length : 0,
503
578
  },
504
- },
505
- };
506
- }
507
- /**
508
- * Process files in batches with controlled concurrency
509
- * (Alternative function for direct batch control)
510
- */
511
- export async function analyzeFilesInBatches(files, options) {
512
- const batchSize = options?.batchSize ?? options?.maxConcurrency ?? 10;
513
- const results = [];
514
- const startTime = Date.now();
515
- const opts = {
516
- language: options?.language ?? 'java',
517
- enableEnrichment: options?.enableEnrichment ?? false,
518
- enableVerification: options?.enableVerification ?? false,
519
- ...options,
520
- };
521
- for (let i = 0; i < files.length; i += batchSize) {
522
- const batch = files.slice(i, i + batchSize);
523
- // Process batch in parallel
524
- const batchResults = await Promise.all(batch.map(async (file, batchIndex) => {
525
- const globalIndex = i + batchIndex;
526
- opts.onFileStart?.(file.path, globalIndex, files.length);
527
- const result = await analyzeFileWithErrorHandling(file, opts);
528
- opts.onFileComplete?.(file.path, globalIndex, files.length);
529
- return result;
530
- }));
531
- results.push(...batchResults);
579
+ };
580
+ }
581
+ finally {
582
+ // cognium-ai#160 — mirror `analyzeFilesSwarm` cleanup.
583
+ markSwarmEnd();
532
584
  }
533
- const totalTimeMs = Date.now() - startTime;
534
- return {
535
- results,
536
- summary: {
537
- totalFiles: results.length,
538
- totalVulnerabilities: results.reduce((sum, r) => sum + r.vulnerabilities.length, 0),
539
- totalSources: results.reduce((sum, r) => sum + r.stats.totalSources, 0),
540
- totalSinks: results.reduce((sum, r) => sum + r.stats.totalSinks, 0),
541
- filesWithVulnerabilities: results.filter(r => r.vulnerabilities.length > 0).length,
542
- totalTimeMs,
543
- avgTimePerFile: results.length > 0 ? totalTimeMs / results.length : 0,
544
- },
545
- };
546
585
  }
547
586
  // Legacy export for compatibility
548
587
  export const swarmAnalysisWorkflow = {
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../../src/agents/mastra/swarm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../../src/agents/mastra/swarm.ts"],"names":[],"mappings":"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"}