circle-ir-ai 1.1.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.
Files changed (420) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/LICENSE +15 -0
  3. package/README.md +336 -0
  4. package/dist/action-queue/aggregator.d.ts +40 -0
  5. package/dist/action-queue/aggregator.d.ts.map +1 -0
  6. package/dist/action-queue/aggregator.js +375 -0
  7. package/dist/action-queue/aggregator.js.map +1 -0
  8. package/dist/action-queue/index.d.ts +14 -0
  9. package/dist/action-queue/index.d.ts.map +1 -0
  10. package/dist/action-queue/index.js +17 -0
  11. package/dist/action-queue/index.js.map +1 -0
  12. package/dist/action-queue/queue.d.ts +74 -0
  13. package/dist/action-queue/queue.d.ts.map +1 -0
  14. package/dist/action-queue/queue.js +433 -0
  15. package/dist/action-queue/queue.js.map +1 -0
  16. package/dist/action-queue/types.d.ts +162 -0
  17. package/dist/action-queue/types.d.ts.map +1 -0
  18. package/dist/action-queue/types.js +44 -0
  19. package/dist/action-queue/types.js.map +1 -0
  20. package/dist/agents/enrichment-agent.d.ts +16 -0
  21. package/dist/agents/enrichment-agent.d.ts.map +1 -0
  22. package/dist/agents/enrichment-agent.js +102 -0
  23. package/dist/agents/enrichment-agent.js.map +1 -0
  24. package/dist/agents/index.d.ts +12 -0
  25. package/dist/agents/index.d.ts.map +1 -0
  26. package/dist/agents/index.js +15 -0
  27. package/dist/agents/index.js.map +1 -0
  28. package/dist/agents/mastra/agents.d.ts +373 -0
  29. package/dist/agents/mastra/agents.d.ts.map +1 -0
  30. package/dist/agents/mastra/agents.js +347 -0
  31. package/dist/agents/mastra/agents.js.map +1 -0
  32. package/dist/agents/mastra/index.d.ts +12 -0
  33. package/dist/agents/mastra/index.d.ts.map +1 -0
  34. package/dist/agents/mastra/index.js +17 -0
  35. package/dist/agents/mastra/index.js.map +1 -0
  36. package/dist/agents/mastra/instance.d.ts +383 -0
  37. package/dist/agents/mastra/instance.d.ts.map +1 -0
  38. package/dist/agents/mastra/instance.js +37 -0
  39. package/dist/agents/mastra/instance.js.map +1 -0
  40. package/dist/agents/mastra/steps.d.ts +300 -0
  41. package/dist/agents/mastra/steps.d.ts.map +1 -0
  42. package/dist/agents/mastra/steps.js +468 -0
  43. package/dist/agents/mastra/steps.js.map +1 -0
  44. package/dist/agents/mastra/swarm.d.ts +106 -0
  45. package/dist/agents/mastra/swarm.d.ts.map +1 -0
  46. package/dist/agents/mastra/swarm.js +501 -0
  47. package/dist/agents/mastra/swarm.js.map +1 -0
  48. package/dist/agents/mastra/workflow.d.ts +81 -0
  49. package/dist/agents/mastra/workflow.d.ts.map +1 -0
  50. package/dist/agents/mastra/workflow.js +460 -0
  51. package/dist/agents/mastra/workflow.js.map +1 -0
  52. package/dist/agents/multi/agents/security.d.ts +29 -0
  53. package/dist/agents/multi/agents/security.d.ts.map +1 -0
  54. package/dist/agents/multi/agents/security.js +830 -0
  55. package/dist/agents/multi/agents/security.js.map +1 -0
  56. package/dist/agents/multi/extractor.d.ts +21 -0
  57. package/dist/agents/multi/extractor.d.ts.map +1 -0
  58. package/dist/agents/multi/extractor.js +483 -0
  59. package/dist/agents/multi/extractor.js.map +1 -0
  60. package/dist/agents/multi/index.d.ts +32 -0
  61. package/dist/agents/multi/index.d.ts.map +1 -0
  62. package/dist/agents/multi/index.js +34 -0
  63. package/dist/agents/multi/index.js.map +1 -0
  64. package/dist/agents/multi/runner.d.ts +79 -0
  65. package/dist/agents/multi/runner.d.ts.map +1 -0
  66. package/dist/agents/multi/runner.js +323 -0
  67. package/dist/agents/multi/runner.js.map +1 -0
  68. package/dist/agents/security-agent.d.ts +16 -0
  69. package/dist/agents/security-agent.d.ts.map +1 -0
  70. package/dist/agents/security-agent.js +299 -0
  71. package/dist/agents/security-agent.js.map +1 -0
  72. package/dist/agents/types.d.ts +373 -0
  73. package/dist/agents/types.d.ts.map +1 -0
  74. package/dist/agents/types.js +14 -0
  75. package/dist/agents/types.js.map +1 -0
  76. package/dist/agents/verification-agent.d.ts +23 -0
  77. package/dist/agents/verification-agent.d.ts.map +1 -0
  78. package/dist/agents/verification-agent.js +217 -0
  79. package/dist/agents/verification-agent.js.map +1 -0
  80. package/dist/agents/workflow.d.ts +30 -0
  81. package/dist/agents/workflow.d.ts.map +1 -0
  82. package/dist/agents/workflow.js +79 -0
  83. package/dist/agents/workflow.js.map +1 -0
  84. package/dist/analysis/enriched.d.ts +16 -0
  85. package/dist/analysis/enriched.d.ts.map +1 -0
  86. package/dist/analysis/enriched.js +297 -0
  87. package/dist/analysis/enriched.js.map +1 -0
  88. package/dist/analysis/llm-correlated-predicates.d.ts +80 -0
  89. package/dist/analysis/llm-correlated-predicates.d.ts.map +1 -0
  90. package/dist/analysis/llm-correlated-predicates.js +255 -0
  91. package/dist/analysis/llm-correlated-predicates.js.map +1 -0
  92. package/dist/analysis/llm-cross-file-taint.d.ts +86 -0
  93. package/dist/analysis/llm-cross-file-taint.d.ts.map +1 -0
  94. package/dist/analysis/llm-cross-file-taint.js +264 -0
  95. package/dist/analysis/llm-cross-file-taint.js.map +1 -0
  96. package/dist/analysis/pattern-discovery.d.ts +79 -0
  97. package/dist/analysis/pattern-discovery.d.ts.map +1 -0
  98. package/dist/analysis/pattern-discovery.js +447 -0
  99. package/dist/analysis/pattern-discovery.js.map +1 -0
  100. package/dist/cache/file-cache.d.ts +89 -0
  101. package/dist/cache/file-cache.d.ts.map +1 -0
  102. package/dist/cache/file-cache.js +208 -0
  103. package/dist/cache/file-cache.js.map +1 -0
  104. package/dist/cache/index.d.ts +6 -0
  105. package/dist/cache/index.d.ts.map +1 -0
  106. package/dist/cache/index.js +5 -0
  107. package/dist/cache/index.js.map +1 -0
  108. package/dist/cli/args.d.ts +52 -0
  109. package/dist/cli/args.d.ts.map +1 -0
  110. package/dist/cli/args.js +422 -0
  111. package/dist/cli/args.js.map +1 -0
  112. package/dist/cli/colors.d.ts +31 -0
  113. package/dist/cli/colors.d.ts.map +1 -0
  114. package/dist/cli/colors.js +80 -0
  115. package/dist/cli/colors.js.map +1 -0
  116. package/dist/cli/commands/analyze-skill.d.ts +33 -0
  117. package/dist/cli/commands/analyze-skill.d.ts.map +1 -0
  118. package/dist/cli/commands/analyze-skill.js +217 -0
  119. package/dist/cli/commands/analyze-skill.js.map +1 -0
  120. package/dist/cli/commands/analyze.d.ts +18 -0
  121. package/dist/cli/commands/analyze.d.ts.map +1 -0
  122. package/dist/cli/commands/analyze.js +30 -0
  123. package/dist/cli/commands/analyze.js.map +1 -0
  124. package/dist/cli/commands/benchmark-runner.d.ts +42 -0
  125. package/dist/cli/commands/benchmark-runner.d.ts.map +1 -0
  126. package/dist/cli/commands/benchmark-runner.js +18 -0
  127. package/dist/cli/commands/benchmark-runner.js.map +1 -0
  128. package/dist/cli/commands/benchmark.d.ts +11 -0
  129. package/dist/cli/commands/benchmark.d.ts.map +1 -0
  130. package/dist/cli/commands/benchmark.js +90 -0
  131. package/dist/cli/commands/benchmark.js.map +1 -0
  132. package/dist/cli/commands/dead-code.d.ts +11 -0
  133. package/dist/cli/commands/dead-code.d.ts.map +1 -0
  134. package/dist/cli/commands/dead-code.js +65 -0
  135. package/dist/cli/commands/dead-code.js.map +1 -0
  136. package/dist/cli/commands/generate-spec.d.ts +11 -0
  137. package/dist/cli/commands/generate-spec.d.ts.map +1 -0
  138. package/dist/cli/commands/generate-spec.js +67 -0
  139. package/dist/cli/commands/generate-spec.js.map +1 -0
  140. package/dist/cli/commands/health.d.ts +11 -0
  141. package/dist/cli/commands/health.d.ts.map +1 -0
  142. package/dist/cli/commands/health.js +67 -0
  143. package/dist/cli/commands/health.js.map +1 -0
  144. package/dist/cli/commands/project.d.ts +21 -0
  145. package/dist/cli/commands/project.d.ts.map +1 -0
  146. package/dist/cli/commands/project.js +92 -0
  147. package/dist/cli/commands/project.js.map +1 -0
  148. package/dist/cli/commands/scan.d.ts +11 -0
  149. package/dist/cli/commands/scan.d.ts.map +1 -0
  150. package/dist/cli/commands/scan.js +68 -0
  151. package/dist/cli/commands/scan.js.map +1 -0
  152. package/dist/cli/commands/secrets.d.ts +11 -0
  153. package/dist/cli/commands/secrets.d.ts.map +1 -0
  154. package/dist/cli/commands/secrets.js +71 -0
  155. package/dist/cli/commands/secrets.js.map +1 -0
  156. package/dist/cli/commands/swarm.d.ts +20 -0
  157. package/dist/cli/commands/swarm.d.ts.map +1 -0
  158. package/dist/cli/commands/swarm.js +174 -0
  159. package/dist/cli/commands/swarm.js.map +1 -0
  160. package/dist/cli/config.d.ts +103 -0
  161. package/dist/cli/config.d.ts.map +1 -0
  162. package/dist/cli/config.js +307 -0
  163. package/dist/cli/config.js.map +1 -0
  164. package/dist/cli/discovery.d.ts +31 -0
  165. package/dist/cli/discovery.d.ts.map +1 -0
  166. package/dist/cli/discovery.js +212 -0
  167. package/dist/cli/discovery.js.map +1 -0
  168. package/dist/cli/formatters/index.d.ts +15 -0
  169. package/dist/cli/formatters/index.d.ts.map +1 -0
  170. package/dist/cli/formatters/index.js +51 -0
  171. package/dist/cli/formatters/index.js.map +1 -0
  172. package/dist/cli/formatters/json.d.ts +11 -0
  173. package/dist/cli/formatters/json.d.ts.map +1 -0
  174. package/dist/cli/formatters/json.js +12 -0
  175. package/dist/cli/formatters/json.js.map +1 -0
  176. package/dist/cli/formatters/project-json.d.ts +11 -0
  177. package/dist/cli/formatters/project-json.d.ts.map +1 -0
  178. package/dist/cli/formatters/project-json.js +12 -0
  179. package/dist/cli/formatters/project-json.js.map +1 -0
  180. package/dist/cli/formatters/project-sarif.d.ts +11 -0
  181. package/dist/cli/formatters/project-sarif.d.ts.map +1 -0
  182. package/dist/cli/formatters/project-sarif.js +127 -0
  183. package/dist/cli/formatters/project-sarif.js.map +1 -0
  184. package/dist/cli/formatters/project-summary.d.ts +11 -0
  185. package/dist/cli/formatters/project-summary.d.ts.map +1 -0
  186. package/dist/cli/formatters/project-summary.js +202 -0
  187. package/dist/cli/formatters/project-summary.js.map +1 -0
  188. package/dist/cli/formatters/sarif-shared.d.ts +101 -0
  189. package/dist/cli/formatters/sarif-shared.d.ts.map +1 -0
  190. package/dist/cli/formatters/sarif-shared.js +57 -0
  191. package/dist/cli/formatters/sarif-shared.js.map +1 -0
  192. package/dist/cli/formatters/sarif.d.ts +12 -0
  193. package/dist/cli/formatters/sarif.d.ts.map +1 -0
  194. package/dist/cli/formatters/sarif.js +92 -0
  195. package/dist/cli/formatters/sarif.js.map +1 -0
  196. package/dist/cli/formatters/summary.d.ts +11 -0
  197. package/dist/cli/formatters/summary.d.ts.map +1 -0
  198. package/dist/cli/formatters/summary.js +240 -0
  199. package/dist/cli/formatters/summary.js.map +1 -0
  200. package/dist/cli/formatters/two-phase-summary.d.ts +11 -0
  201. package/dist/cli/formatters/two-phase-summary.d.ts.map +1 -0
  202. package/dist/cli/formatters/two-phase-summary.js +188 -0
  203. package/dist/cli/formatters/two-phase-summary.js.map +1 -0
  204. package/dist/cli/index.d.ts +15 -0
  205. package/dist/cli/index.d.ts.map +1 -0
  206. package/dist/cli/index.js +555 -0
  207. package/dist/cli/index.js.map +1 -0
  208. package/dist/components/clustering.d.ts +60 -0
  209. package/dist/components/clustering.d.ts.map +1 -0
  210. package/dist/components/clustering.js +129 -0
  211. package/dist/components/clustering.js.map +1 -0
  212. package/dist/components/enrichment.d.ts +45 -0
  213. package/dist/components/enrichment.d.ts.map +1 -0
  214. package/dist/components/enrichment.js +193 -0
  215. package/dist/components/enrichment.js.map +1 -0
  216. package/dist/components/index.d.ts +29 -0
  217. package/dist/components/index.d.ts.map +1 -0
  218. package/dist/components/index.js +56 -0
  219. package/dist/components/index.js.map +1 -0
  220. package/dist/dead-code/detector.d.ts +200 -0
  221. package/dist/dead-code/detector.d.ts.map +1 -0
  222. package/dist/dead-code/detector.js +1003 -0
  223. package/dist/dead-code/detector.js.map +1 -0
  224. package/dist/dead-code/index.d.ts +7 -0
  225. package/dist/dead-code/index.d.ts.map +1 -0
  226. package/dist/dead-code/index.js +7 -0
  227. package/dist/dead-code/index.js.map +1 -0
  228. package/dist/extractors/index.d.ts +15 -0
  229. package/dist/extractors/index.d.ts.map +1 -0
  230. package/dist/extractors/index.js +14 -0
  231. package/dist/extractors/index.js.map +1 -0
  232. package/dist/extractors/natural-language.d.ts +46 -0
  233. package/dist/extractors/natural-language.d.ts.map +1 -0
  234. package/dist/extractors/natural-language.js +228 -0
  235. package/dist/extractors/natural-language.js.map +1 -0
  236. package/dist/extractors/tree-sitter.d.ts +33 -0
  237. package/dist/extractors/tree-sitter.d.ts.map +1 -0
  238. package/dist/extractors/tree-sitter.js +69 -0
  239. package/dist/extractors/tree-sitter.js.map +1 -0
  240. package/dist/extractors/types.d.ts +62 -0
  241. package/dist/extractors/types.d.ts.map +1 -0
  242. package/dist/extractors/types.js +54 -0
  243. package/dist/extractors/types.js.map +1 -0
  244. package/dist/health-score/calculator.d.ts +123 -0
  245. package/dist/health-score/calculator.d.ts.map +1 -0
  246. package/dist/health-score/calculator.js +444 -0
  247. package/dist/health-score/calculator.js.map +1 -0
  248. package/dist/health-score/index.d.ts +12 -0
  249. package/dist/health-score/index.d.ts.map +1 -0
  250. package/dist/health-score/index.js +14 -0
  251. package/dist/health-score/index.js.map +1 -0
  252. package/dist/health-score/metrics.d.ts +142 -0
  253. package/dist/health-score/metrics.d.ts.map +1 -0
  254. package/dist/health-score/metrics.js +332 -0
  255. package/dist/health-score/metrics.js.map +1 -0
  256. package/dist/index.d.ts +26 -0
  257. package/dist/index.d.ts.map +1 -0
  258. package/dist/index.js +43 -0
  259. package/dist/index.js.map +1 -0
  260. package/dist/llm/ax-client.d.ts +477 -0
  261. package/dist/llm/ax-client.d.ts.map +1 -0
  262. package/dist/llm/ax-client.js +1641 -0
  263. package/dist/llm/ax-client.js.map +1 -0
  264. package/dist/llm/config.d.ts +58 -0
  265. package/dist/llm/config.d.ts.map +1 -0
  266. package/dist/llm/config.js +97 -0
  267. package/dist/llm/config.js.map +1 -0
  268. package/dist/llm/discovery.d.ts +123 -0
  269. package/dist/llm/discovery.d.ts.map +1 -0
  270. package/dist/llm/discovery.js +505 -0
  271. package/dist/llm/discovery.js.map +1 -0
  272. package/dist/llm/enrichment.d.ts +108 -0
  273. package/dist/llm/enrichment.d.ts.map +1 -0
  274. package/dist/llm/enrichment.js +312 -0
  275. package/dist/llm/enrichment.js.map +1 -0
  276. package/dist/llm/index.d.ts +13 -0
  277. package/dist/llm/index.d.ts.map +1 -0
  278. package/dist/llm/index.js +22 -0
  279. package/dist/llm/index.js.map +1 -0
  280. package/dist/llm/language-context.d.ts +64 -0
  281. package/dist/llm/language-context.d.ts.map +1 -0
  282. package/dist/llm/language-context.js +492 -0
  283. package/dist/llm/language-context.js.map +1 -0
  284. package/dist/llm/pattern-verification.d.ts +39 -0
  285. package/dist/llm/pattern-verification.d.ts.map +1 -0
  286. package/dist/llm/pattern-verification.js +127 -0
  287. package/dist/llm/pattern-verification.js.map +1 -0
  288. package/dist/llm/prompt-security.d.ts +120 -0
  289. package/dist/llm/prompt-security.d.ts.map +1 -0
  290. package/dist/llm/prompt-security.js +301 -0
  291. package/dist/llm/prompt-security.js.map +1 -0
  292. package/dist/llm/prompts/index.d.ts +31 -0
  293. package/dist/llm/prompts/index.d.ts.map +1 -0
  294. package/dist/llm/prompts/index.js +92 -0
  295. package/dist/llm/prompts/index.js.map +1 -0
  296. package/dist/llm/prompts/rust.d.ts +30 -0
  297. package/dist/llm/prompts/rust.d.ts.map +1 -0
  298. package/dist/llm/prompts/rust.js +121 -0
  299. package/dist/llm/prompts/rust.js.map +1 -0
  300. package/dist/llm/schemas.d.ts +892 -0
  301. package/dist/llm/schemas.d.ts.map +1 -0
  302. package/dist/llm/schemas.js +258 -0
  303. package/dist/llm/schemas.js.map +1 -0
  304. package/dist/llm/verification.d.ts +127 -0
  305. package/dist/llm/verification.d.ts.map +1 -0
  306. package/dist/llm/verification.js +394 -0
  307. package/dist/llm/verification.js.map +1 -0
  308. package/dist/project/analyzer.d.ts +30 -0
  309. package/dist/project/analyzer.d.ts.map +1 -0
  310. package/dist/project/analyzer.js +358 -0
  311. package/dist/project/analyzer.js.map +1 -0
  312. package/dist/project/call-graph.d.ts +22 -0
  313. package/dist/project/call-graph.d.ts.map +1 -0
  314. package/dist/project/call-graph.js +246 -0
  315. package/dist/project/call-graph.js.map +1 -0
  316. package/dist/project/index.d.ts +18 -0
  317. package/dist/project/index.d.ts.map +1 -0
  318. package/dist/project/index.js +20 -0
  319. package/dist/project/index.js.map +1 -0
  320. package/dist/project/taint-paths.d.ts +22 -0
  321. package/dist/project/taint-paths.d.ts.map +1 -0
  322. package/dist/project/taint-paths.js +265 -0
  323. package/dist/project/taint-paths.js.map +1 -0
  324. package/dist/project/two-phase-analyzer.d.ts +143 -0
  325. package/dist/project/two-phase-analyzer.d.ts.map +1 -0
  326. package/dist/project/two-phase-analyzer.js +646 -0
  327. package/dist/project/two-phase-analyzer.js.map +1 -0
  328. package/dist/project/type-hierarchy.d.ts +28 -0
  329. package/dist/project/type-hierarchy.d.ts.map +1 -0
  330. package/dist/project/type-hierarchy.js +218 -0
  331. package/dist/project/type-hierarchy.js.map +1 -0
  332. package/dist/secret-scan/index.d.ts +12 -0
  333. package/dist/secret-scan/index.d.ts.map +1 -0
  334. package/dist/secret-scan/index.js +14 -0
  335. package/dist/secret-scan/index.js.map +1 -0
  336. package/dist/secret-scan/patterns.d.ts +38 -0
  337. package/dist/secret-scan/patterns.d.ts.map +1 -0
  338. package/dist/secret-scan/patterns.js +473 -0
  339. package/dist/secret-scan/patterns.js.map +1 -0
  340. package/dist/secret-scan/scanner.d.ts +162 -0
  341. package/dist/secret-scan/scanner.d.ts.map +1 -0
  342. package/dist/secret-scan/scanner.js +511 -0
  343. package/dist/secret-scan/scanner.js.map +1 -0
  344. package/dist/security-scan/index.d.ts +12 -0
  345. package/dist/security-scan/index.d.ts.map +1 -0
  346. package/dist/security-scan/index.js +15 -0
  347. package/dist/security-scan/index.js.map +1 -0
  348. package/dist/security-scan/owasp-mapping.d.ts +29 -0
  349. package/dist/security-scan/owasp-mapping.d.ts.map +1 -0
  350. package/dist/security-scan/owasp-mapping.js +246 -0
  351. package/dist/security-scan/owasp-mapping.js.map +1 -0
  352. package/dist/security-scan/scanner.d.ts +204 -0
  353. package/dist/security-scan/scanner.d.ts.map +1 -0
  354. package/dist/security-scan/scanner.js +693 -0
  355. package/dist/security-scan/scanner.js.map +1 -0
  356. package/dist/security-scan/trend-tracker.d.ts +150 -0
  357. package/dist/security-scan/trend-tracker.d.ts.map +1 -0
  358. package/dist/security-scan/trend-tracker.js +299 -0
  359. package/dist/security-scan/trend-tracker.js.map +1 -0
  360. package/dist/skills/bundle-loader.d.ts +26 -0
  361. package/dist/skills/bundle-loader.d.ts.map +1 -0
  362. package/dist/skills/bundle-loader.js +284 -0
  363. package/dist/skills/bundle-loader.js.map +1 -0
  364. package/dist/skills/capability-mismatch.d.ts +21 -0
  365. package/dist/skills/capability-mismatch.d.ts.map +1 -0
  366. package/dist/skills/capability-mismatch.js +188 -0
  367. package/dist/skills/capability-mismatch.js.map +1 -0
  368. package/dist/skills/index.d.ts +10 -0
  369. package/dist/skills/index.d.ts.map +1 -0
  370. package/dist/skills/index.js +9 -0
  371. package/dist/skills/index.js.map +1 -0
  372. package/dist/skills/skill-analyzer.d.ts +16 -0
  373. package/dist/skills/skill-analyzer.d.ts.map +1 -0
  374. package/dist/skills/skill-analyzer.js +361 -0
  375. package/dist/skills/skill-analyzer.js.map +1 -0
  376. package/dist/skills/types.d.ts +195 -0
  377. package/dist/skills/types.d.ts.map +1 -0
  378. package/dist/skills/types.js +7 -0
  379. package/dist/skills/types.js.map +1 -0
  380. package/dist/specifica/conflict-resolver.d.ts +23 -0
  381. package/dist/specifica/conflict-resolver.d.ts.map +1 -0
  382. package/dist/specifica/conflict-resolver.js +129 -0
  383. package/dist/specifica/conflict-resolver.js.map +1 -0
  384. package/dist/specifica/evidence-aggregator.d.ts +33 -0
  385. package/dist/specifica/evidence-aggregator.d.ts.map +1 -0
  386. package/dist/specifica/evidence-aggregator.js +236 -0
  387. package/dist/specifica/evidence-aggregator.js.map +1 -0
  388. package/dist/specifica/evidence-extractor.d.ts +13 -0
  389. package/dist/specifica/evidence-extractor.d.ts.map +1 -0
  390. package/dist/specifica/evidence-extractor.js +431 -0
  391. package/dist/specifica/evidence-extractor.js.map +1 -0
  392. package/dist/specifica/feature-clustering.d.ts +19 -0
  393. package/dist/specifica/feature-clustering.d.ts.map +1 -0
  394. package/dist/specifica/feature-clustering.js +231 -0
  395. package/dist/specifica/feature-clustering.js.map +1 -0
  396. package/dist/specifica/generator.d.ts +16 -0
  397. package/dist/specifica/generator.d.ts.map +1 -0
  398. package/dist/specifica/generator.js +277 -0
  399. package/dist/specifica/generator.js.map +1 -0
  400. package/dist/specifica/index.d.ts +15 -0
  401. package/dist/specifica/index.d.ts.map +1 -0
  402. package/dist/specifica/index.js +18 -0
  403. package/dist/specifica/index.js.map +1 -0
  404. package/dist/specifica/prompts.d.ts +21 -0
  405. package/dist/specifica/prompts.d.ts.map +1 -0
  406. package/dist/specifica/prompts.js +196 -0
  407. package/dist/specifica/prompts.js.map +1 -0
  408. package/dist/specifica/spec-generator.d.ts +22 -0
  409. package/dist/specifica/spec-generator.d.ts.map +1 -0
  410. package/dist/specifica/spec-generator.js +229 -0
  411. package/dist/specifica/spec-generator.js.map +1 -0
  412. package/dist/specifica/types.d.ts +213 -0
  413. package/dist/specifica/types.d.ts.map +1 -0
  414. package/dist/specifica/types.js +7 -0
  415. package/dist/specifica/types.js.map +1 -0
  416. package/dist/utils/logger.d.ts +17 -0
  417. package/dist/utils/logger.d.ts.map +1 -0
  418. package/dist/utils/logger.js +51 -0
  419. package/dist/utils/logger.js.map +1 -0
  420. package/package.json +99 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,105 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.1.0] - 2026-03-05
9
+
10
+ ### Added
11
+
12
+ - **AI Skills Analysis**: Complete security analysis framework for AI agent skills (OpenClaw, MCP servers)
13
+ - `analyze-skill` CLI command for skill directory analysis
14
+ - Multi-artifact analysis: SKILL.md (natural language) + code files + MCP config
15
+ - LLM-based capability mismatch detection using semantic comparison
16
+ - Trust score calculation (0-100%) based on severity-weighted findings
17
+ - Test file exclusion to eliminate false positives (74% FP reduction overall)
18
+ - Validation utility recognition (normalizePath, isPathWithin, etc.)
19
+ - Safe utility methods whitelist for external_taint_escape detection
20
+ - JSON and markdown output formats
21
+ - Real-world validated on official MCP servers (fetch: 84% trust score)
22
+
23
+ ### Changed
24
+
25
+ - **LLM Timeout Configuration**: Increased enrichment phase timeout from 15s to 60s to support large SKILL.md files (10KB+)
26
+ - **Sanitizer Patterns**: Added path validation and normalization methods (normalizePath, isPathWithinAllowedDirectories, relative, join)
27
+ - **Bundle Loader**: Added comprehensive test file exclusion (\__tests__/, *.test.ts, *.spec.js, vitest.config.ts, etc.)
28
+
29
+ ### Fixed
30
+
31
+ - **external_taint_escape False Positives**: Eliminated 10 false positives by excluding validation utilities (tailFile, headFile, readFileContent, minimatch, etc.)
32
+ - **SKILL.md Extraction Timeouts**: Large documentation files now extract successfully without timing out
33
+ - **Test Contamination**: Test files no longer analyzed as production code (61% FP reduction on filesystem server)
34
+
35
+ ### Performance
36
+
37
+ - **Analysis Speed**: 50% faster on typical skills due to timeout fixes (50.44s → 25.20s on filesystem server)
38
+ - **False Positive Reduction**: 74% overall (91 → 24 findings on filesystem server)
39
+
40
+ ## [3.4.0] - 2026-02-23
41
+
42
+ ### Changed
43
+
44
+ - **Discovery Mode Validated**: Tested 8 LLM models in discovery mode - 7 of 8 improved 31-92% over static baseline
45
+ - **Default Model Updated**: Changed default from `gemini-pro-latest` to `gpt-oss-120b` (FREE, 73/120, beats CodeQL and IRIS+GPT-4)
46
+ - **Documentation Consolidated**: Comprehensive discovery mode guide added to MODEL_SCORECARD.md with usage examples and troubleshooting
47
+
48
+ ### Removed
49
+
50
+ - **Verification Mode Removed**: ALL models failed in verification mode (≤51/120, at or below static baseline)
51
+ - Removed `--llm` flag from benchmark runner
52
+ - Removed `verifyWithLLM()` function and all verification code paths
53
+ - Verification mode asked LLMs to judge sanitizer effectiveness (requires deep security expertise) - models pattern-matched instead
54
+
55
+ ### Added
56
+
57
+ - **Research Documentation**: "Why Discovery Works" section explaining task difficulty differences
58
+ - **Model Rankings**: Complete performance comparison of 8 models across 120 real-world CVEs
59
+
60
+ ### Discovery Mode Results
61
+
62
+ | Model | Score | vs Static | Tier |
63
+ |-------|-------|-----------|------|
64
+ | Claude Opus 4.6 | 98/120 (81.7%) | +92% | Premium |
65
+ | Grok-Code | 94/120 (78.3%) | +84% | Budget |
66
+ | DeepSeek V3.2 | 91/120 (75.8%) | +78% | Budget |
67
+ | Claude Haiku 4.5 | 85/120 (70.8%) | +67% | Budget |
68
+ | GPT-5.2 | 82/120 (68.3%) | +61% | Premium |
69
+ | **gpt-oss-120b (FREE)** | **73/120 (60.8%)** | **+43%** | **FREE** |
70
+ | Gemini Pro | 67/120 (55.8%) | +31% | Premium |
71
+
72
+ **Key Finding**: Discovery mode (trace taint flows) works universally better than verification mode (judge sanitizers) because it matches LLM strengths (code flow analysis) rather than weaknesses (security domain expertise).
73
+
74
+ ### Breaking Changes
75
+
76
+ - `--llm` flag removed (use `--llm-discovery` instead)
77
+ - Verification mode API removed from codebase
78
+
79
+ ## [1.0.0] - 2025-02-19
80
+
81
+ ### Added
82
+
83
+ - **LLM Integration**: ax-llm client with DSPy-style typed signatures for enrichment, verification, and discovery
84
+ - **Mastra Agents**: AI agent orchestration (enrichment, verification, cross-file, orchestrator)
85
+ - **Swarm Analysis**: Parallel multi-file analysis with configurable concurrency
86
+ - **Security Scan**: Continuous scanning with OWASP Top 10 mapping and trend tracking
87
+ - **Dead Code Detection**: Entry point analysis, call graph construction, reachability checks
88
+ - **Secret Scanning**: Pattern-based detection (AWS, GitHub, Stripe, etc.) in code and Git history
89
+ - **Health Score**: Weighted codebase health scoring (security, maintainability, quality, performance)
90
+ - **Action Queue**: Aggregate findings into prioritized action items with sprint planning and export (CSV, Jira, Markdown)
91
+ - **CLI**: Command-line interface for file/directory analysis, benchmarks, scanning, and reporting
92
+ - **Two-Phase Project Analyzer**: Per-file LLM enrichment + cross-file LLM analysis
93
+ - **File Cache**: Caching layer for analysis results
94
+
95
+ ### Benchmark Results
96
+
97
+ - **OWASP Benchmark**: +100% (1415/1415 test cases)
98
+ - **Juliet Test Suite**: +100% (156/156 test cases)
99
+ - **SecuriBench Micro**: 97.7% TPR, 6.7% FPR (105/108 vulns detected)
100
+ - **CWE-Bench-Java**: 42.5% static, 80.8% with Claude hybrid (vs CodeQL 22.5%, IRIS+GPT-4 45.8%)
101
+ - **NodeJS Synthetic**: 100% TPR, 94.1% Precision (25 test cases)
102
+ - **OWASP NodeGoat**: +100% (14 tests)
103
+ - **CWE-Bench-Rust**: +100% (30 test cases)
104
+
105
+ [1.0.0]: https://github.com/cogniumhq/circle-ir/releases/tag/circle-ir-ai-v1.0.0
package/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ ISC License
2
+
3
+ Copyright (c) 2025 Cognium Labs
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ PERFORMANCE OF THIS SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,336 @@
1
+ # circle-ir-ai
2
+
3
+ LLM-enhanced static analysis built on [circle-ir](https://github.com/cognitim/circle-ir). Provides CLI tools, AI-powered vulnerability verification, and comprehensive security analysis.
4
+
5
+ ## Features
6
+
7
+ - **Multi-Language Support**: Java, JavaScript/TypeScript, Python, Rust
8
+ - **LLM Verification**: Verify exploitability of detected vulnerabilities
9
+ - **Pattern Discovery**: Discover sources/sinks beyond YAML patterns
10
+ - **Cross-File Analysis**: Track taint across file boundaries
11
+ - **AI Skills Analysis**: Security analysis for AI agent skills (OpenClaw, MCP servers)
12
+ - **Security Scanning**: OWASP Top 10 mapping with trend tracking
13
+ - **Dead Code Detection**: Find unreachable code via call graph analysis
14
+ - **Secret Scanning**: Detect secrets in code and Git history
15
+ - **Health Scoring**: Calculate overall codebase health
16
+ - **Benchmark Suite**: OWASP, Juliet, SecuriBench, CWE-Bench test runners
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install circle-ir-ai circle-ir
22
+ ```
23
+
24
+ ## Quick Start
25
+
26
+ ### CLI
27
+
28
+ ```bash
29
+ # Analyze a single file
30
+ circle-ir-ai src/App.java
31
+
32
+ # Analyze with LLM verification
33
+ circle-ir-ai src/App.java --llm
34
+
35
+ # Analyze a directory (auto-parallelized)
36
+ circle-ir-ai ./src --threads 20
37
+
38
+ # Security scan with OWASP Top 10 mapping
39
+ circle-ir-ai scan ./src
40
+
41
+ # Detect dead/unreachable code
42
+ circle-ir-ai dead-code ./src
43
+
44
+ # Scan for secrets
45
+ circle-ir-ai secrets ./src
46
+
47
+ # Calculate codebase health score
48
+ circle-ir-ai health ./src
49
+
50
+ # Run OWASP Benchmark
51
+ circle-ir-ai benchmark ./testcode --expected ./expected.csv
52
+
53
+ # Analyze AI Skills (OpenClaw, MCP servers)
54
+ circle-ir-ai analyze-skill ./my-skill
55
+ circle-ir-ai analyze-skill ./my-skill --format json -o report.json
56
+ ```
57
+
58
+ ### AI Skills Analysis
59
+
60
+ Analyze AI agent skills for security issues and capability mismatches. Supports OpenClaw skills and MCP servers.
61
+
62
+ **CLI Usage:**
63
+
64
+ ```bash
65
+ # Analyze a skill directory
66
+ circle-ir-ai analyze-skill ./my-skill
67
+
68
+ # With JSON output
69
+ circle-ir-ai analyze-skill ./my-skill --format json -o report.json
70
+
71
+ # With markdown report
72
+ circle-ir-ai analyze-skill ./my-skill --format markdown -o SECURITY.md
73
+
74
+ # Filter by severity and confidence
75
+ circle-ir-ai analyze-skill ./my-skill --min-severity high --min-confidence 0.8
76
+ ```
77
+
78
+ **What it analyzes:**
79
+
80
+ - `SKILL.md` - Natural language instructions (extracts declared capabilities)
81
+ - Code files (`.ts`, `.js`, `.py`, `.java`, `.rs`) - Actual implementation
82
+ - `mcp-server.json` - MCP server configuration (if present)
83
+ - Cross-artifact analysis - Detects capability mismatches between documentation and code
84
+
85
+ **Output:**
86
+
87
+ ```
88
+ ================================================================================
89
+ SKILL ANALYSIS REPORT: github-reader
90
+ ================================================================================
91
+
92
+ Skill ID: github-reader-001
93
+ Version: 1.0.0
94
+ Trust Score: 22.0% 🚨
95
+ Findings: 13
96
+ Analysis Time: 21.84s
97
+
98
+ CRITICAL FINDINGS (1)
99
+ ────────────────────────────────────────────────────────────────────────────────
100
+
101
+ 1. Server-Side Request Forgery (CWE-918) not declared
102
+ Type: capability_mismatch
103
+ Artifact: src/index.ts
104
+ Confidence: 90%
105
+ Description: The code performs outbound HTTP requests via `https.request()`
106
+ but SKILL.md does not list any such sink.
107
+
108
+ RECOMMENDATIONS
109
+ ────────────────────────────────────────────────────────────────────────────────
110
+
111
+ 1. Update SKILL.md to accurately describe all capabilities
112
+ 2. Add input validation and sanitization
113
+ ```
114
+
115
+ **Trust Score Interpretation:**
116
+
117
+ - `90-100%` ✅ - High trust, minimal issues
118
+ - `70-89%` ⚠️ - Medium trust, some concerns
119
+ - `50-69%` ❌ - Low trust, significant issues
120
+ - `<50%` 🚨 - Critical issues, do not deploy
121
+
122
+ **Programmatic API:**
123
+
124
+ ```typescript
125
+ import { analyzeSkillBundle } from 'circle-ir-ai/skills';
126
+
127
+ const result = await analyzeSkillBundle('./my-skill', {
128
+ enableCrossArtifact: true, // Detect capability mismatches
129
+ enableVerification: true, // LLM verification
130
+ minConfidence: 0.7,
131
+ minSeverity: 'medium',
132
+ onProgress: (status) => console.log(status.message),
133
+ });
134
+
135
+ console.log(`Trust Score: ${result.score}`);
136
+ console.log(`Findings: ${result.findings.length}`);
137
+ console.log(`Recommendations: ${result.recommendations.join('\n')}`);
138
+ ```
139
+
140
+ **Key Features:**
141
+
142
+ - **Multi-Artifact Analysis**: Analyzes SKILL.md + code + MCP config together
143
+ - **Capability Mismatch Detection**: LLM-based semantic comparison between declared and actual behavior
144
+ - **Vulnerability Detection**: Standard taint analysis on code files
145
+ - **Trust Score**: 0.0-1.0 score based on severity-weighted findings
146
+ - **Actionable Recommendations**: Specific guidance for remediation
147
+
148
+ **Production Quality:**
149
+
150
+ - ✅ **74% false positive reduction** through test file exclusion, validation utility recognition, and timeout fixes
151
+ - ✅ **Real-world validated** on official MCP servers (fetch: 84% trust, filesystem: accurate findings)
152
+ - ✅ **Fast analysis** (~25s for typical skills)
153
+ - ⚠️ Large SKILL.md files (>10KB) may take longer to extract
154
+
155
+ **Known Limitations:**
156
+
157
+ - Capability mismatch detection quality depends on LLM model used
158
+ - Trust score may be conservative for complex codebases with many filesystem operations
159
+
160
+ ### Programmatic API
161
+
162
+ ```typescript
163
+ import { analyze, initAnalyzer } from 'circle-ir';
164
+ import { runHybridAnalysis, applyLLMAnalysis } from 'circle-ir-ai';
165
+
166
+ // Initialize
167
+ await initAnalyzer();
168
+
169
+ // Run hybrid analysis with LLM
170
+ const result = await runHybridAnalysis(
171
+ 'MyClass.java',
172
+ code,
173
+ sources,
174
+ sinks,
175
+ types,
176
+ imports,
177
+ {
178
+ enableEnrichment: true,
179
+ enableVerification: true,
180
+ }
181
+ );
182
+
183
+ console.log('Verified vulnerabilities:', result.vulnerabilities);
184
+ ```
185
+
186
+ ### Project-Level Analysis
187
+
188
+ ```typescript
189
+ import { analyzeProjectTwoPhase } from 'circle-ir-ai';
190
+
191
+ const files = [
192
+ { path: 'src/Controller.java', content: controllerCode },
193
+ { path: 'src/Service.java', content: serviceCode },
194
+ ];
195
+
196
+ const result = await analyzeProjectTwoPhase(files, 'java', {
197
+ enableEnrichment: true,
198
+ parallelPhase1: true,
199
+ maxConcurrency: 10,
200
+ enablePhase2: true,
201
+ });
202
+
203
+ console.log('Cross-file taint flows:', result.crossFileFlows);
204
+ ```
205
+
206
+ ### Security Scanning
207
+
208
+ ```typescript
209
+ import { scanDirectory, formatScanReport } from 'circle-ir-ai';
210
+
211
+ const result = await scanDirectory('/path/to/project');
212
+ console.log(formatScanReport(result));
213
+ // Shows vulnerabilities mapped to OWASP Top 10 categories
214
+ ```
215
+
216
+ ### Dead Code Detection
217
+
218
+ ```typescript
219
+ import { detectDeadCode, formatDeadCodeReport } from 'circle-ir-ai';
220
+
221
+ const result = await detectDeadCode({
222
+ target: '/path/to/project',
223
+ languages: ['javascript', 'typescript'],
224
+ });
225
+
226
+ console.log(formatDeadCodeReport(result));
227
+ // Shows: dead methods, entry points, and LOC with reachability info
228
+ ```
229
+
230
+ ### Secret Scanning
231
+
232
+ ```typescript
233
+ import { scanForSecrets, formatSecretReport } from 'circle-ir-ai';
234
+
235
+ const result = await scanForSecrets('/path/to/project', {
236
+ scanHistory: true, // Scan Git history
237
+ maxCommits: 100,
238
+ minSeverity: 'medium',
239
+ });
240
+
241
+ console.log(formatSecretReport(result));
242
+ ```
243
+
244
+ ### Health Scoring
245
+
246
+ ```typescript
247
+ import { calculateHealthScore, formatHealthReport } from 'circle-ir-ai';
248
+
249
+ const result = await calculateHealthScore('/path/to/project', {
250
+ includeSecurity: true,
251
+ includeSecrets: true,
252
+ includeDeadCode: true,
253
+ });
254
+
255
+ console.log(formatHealthReport(result));
256
+ // Scores: Security 35%, Maintainability 25%, Quality 25%, Performance 15%
257
+ ```
258
+
259
+ ## LLM Configuration
260
+
261
+ Set environment variables or pass options:
262
+
263
+ ```bash
264
+ export LLM_API_KEY=your-api-key
265
+ export LLM_BASE_URL=http://localhost:4000/v1
266
+ ```
267
+
268
+ Or in code:
269
+
270
+ ```typescript
271
+ import { createLLMConfig } from 'circle-ir-ai';
272
+
273
+ const config = createLLMConfig({
274
+ baseUrl: 'http://localhost:4000/v1',
275
+ apiKey: 'your-api-key',
276
+ });
277
+ ```
278
+
279
+ ## CLI Options
280
+
281
+ ```
282
+ circle-ir-ai <file|dir> [options]
283
+
284
+ Commands:
285
+ <file|dir> Analyze file or directory
286
+ scan <dir> Security scan with OWASP mapping
287
+ dead-code <dir> Detect unreachable code
288
+ secrets <dir> Scan for secrets
289
+ health <dir> Calculate health score
290
+ benchmark <dir> Run benchmark suite
291
+
292
+ Options:
293
+ -f, --format <fmt> Output format: json, summary, sarif
294
+ -o, --output <file> Write output to file
295
+ --llm Enable LLM enrichment and verification
296
+ --llm-enrich Enable LLM enrichment only
297
+ --llm-verify Enable LLM verification only
298
+ --llm-base-url <url> LLM proxy URL
299
+ --llm-api-key <key> LLM API key
300
+ --threads <n> Parallel analysis threads (default: 10)
301
+ -d, --discover-patterns Enable dynamic pattern discovery
302
+ -q, --quiet Suppress progress messages
303
+ -h, --help Show help
304
+ ```
305
+
306
+ ## Benchmark Results
307
+
308
+ | Benchmark | Score | Details |
309
+ |-----------|-------|---------|
310
+ | **OWASP Benchmark** (Java) | +100% | 1415/1415 perfect |
311
+ | **OWASP BenchmarkPython** | 25.2% | 1230 test cases |
312
+ | **Juliet Test Suite** | +100% | 156/156 perfect |
313
+ | **SecuriBench Micro** | 97.7% TPR | 105/108 vulns, 6.7% FPR |
314
+ | **CWE-Bench-Java** | 81.7% (with LLM) | 98/120 projects (vs CodeQL 22.5%, IRIS+GPT-4 45.8%) |
315
+ | **NodeJS Synthetic** | 100% TPR | 25 test cases, 94.1% Precision |
316
+ | **OWASP NodeGoat** | +100% | 14 tests, 5 vulns detected |
317
+ | **CWE-Bench-Rust** | +100% | 30 test cases (6 CWEs) |
318
+
319
+ ## Supported Languages
320
+
321
+ | Language | Extensions | Frameworks |
322
+ |----------|-----------|------------|
323
+ | **Java** | .java | Spring, JAX-RS, Servlet API |
324
+ | **JavaScript** | .js, .jsx, .mjs, .cjs | Express, Fastify, Node.js |
325
+ | **TypeScript** | .ts, .tsx, .mts, .cts | Express, Fastify, Node.js |
326
+ | **Python** | .py | Flask, Django, FastAPI |
327
+ | **Rust** | .rs | Actix-web, Rocket, Axum |
328
+
329
+ ## Related Packages
330
+
331
+ - **[circle-ir](https://github.com/cognitim/circle-ir)**: Core SAST library
332
+ - **[circle-pack](https://github.com/cognitim/circle-pack)**: Cloudflare Workers API deployment
333
+
334
+ ## License
335
+
336
+ ISC
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Action Aggregator
3
+ *
4
+ * Collects findings from all analysis dimensions and converts them
5
+ * to unified action items.
6
+ */
7
+ import type { ScanResult } from '../security-scan/scanner.js';
8
+ import type { DeadCodeResult } from '../dead-code/detector.js';
9
+ import type { SecretScanResult } from '../secret-scan/scanner.js';
10
+ import type { HealthScoreResult } from '../health-score/calculator.js';
11
+ import { type ActionItem, type PriorityWeights } from './types.js';
12
+ /**
13
+ * Aggregation input - results from various scans
14
+ */
15
+ export interface AggregationInput {
16
+ /** Security scan result */
17
+ securityScan?: ScanResult;
18
+ /** Dead code detection result */
19
+ deadCode?: DeadCodeResult;
20
+ /** Secret scan result */
21
+ secretScan?: SecretScanResult;
22
+ /** Health score result */
23
+ healthScore?: HealthScoreResult;
24
+ }
25
+ /**
26
+ * Aggregator options
27
+ */
28
+ export interface AggregatorOptions {
29
+ /** Priority weights */
30
+ weights?: PriorityWeights;
31
+ /** Include info-level items */
32
+ includeInfo?: boolean;
33
+ /** Base path to strip from file paths */
34
+ basePath?: string;
35
+ }
36
+ /**
37
+ * Aggregate findings from all sources into unified action items
38
+ */
39
+ export declare function aggregateFindings(input: AggregationInput, options?: AggregatorOptions): ActionItem[];
40
+ //# sourceMappingURL=aggregator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../src/action-queue/aggregator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,2BAA2B,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,KAAK,UAAU,EAQf,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,yBAAyB;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,iBAAsB,GAC9B,UAAU,EAAE,CAqDd"}