@oddessentials/odd-ai-reviewers 1.0.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 (370) hide show
  1. package/README.md +190 -0
  2. package/dist/__tests__/hermetic-setup.d.ts +55 -0
  3. package/dist/__tests__/hermetic-setup.d.ts.map +1 -0
  4. package/dist/__tests__/hermetic-setup.js +62 -0
  5. package/dist/__tests__/hermetic-setup.js.map +1 -0
  6. package/dist/__tests__/test-utils/hermetic.d.ts +84 -0
  7. package/dist/__tests__/test-utils/hermetic.d.ts.map +1 -0
  8. package/dist/__tests__/test-utils/hermetic.js +147 -0
  9. package/dist/__tests__/test-utils/hermetic.js.map +1 -0
  10. package/dist/agents/ai_semantic_review.d.ts +12 -0
  11. package/dist/agents/ai_semantic_review.d.ts.map +1 -0
  12. package/dist/agents/ai_semantic_review.js +317 -0
  13. package/dist/agents/ai_semantic_review.js.map +1 -0
  14. package/dist/agents/control_flow/budget.d.ts +162 -0
  15. package/dist/agents/control_flow/budget.d.ts.map +1 -0
  16. package/dist/agents/control_flow/budget.js +331 -0
  17. package/dist/agents/control_flow/budget.js.map +1 -0
  18. package/dist/agents/control_flow/cfg-builder.d.ts +26 -0
  19. package/dist/agents/control_flow/cfg-builder.d.ts.map +1 -0
  20. package/dist/agents/control_flow/cfg-builder.js +776 -0
  21. package/dist/agents/control_flow/cfg-builder.js.map +1 -0
  22. package/dist/agents/control_flow/cfg-types.d.ts +186 -0
  23. package/dist/agents/control_flow/cfg-types.d.ts.map +1 -0
  24. package/dist/agents/control_flow/cfg-types.js +114 -0
  25. package/dist/agents/control_flow/cfg-types.js.map +1 -0
  26. package/dist/agents/control_flow/finding-generator.d.ts +118 -0
  27. package/dist/agents/control_flow/finding-generator.d.ts.map +1 -0
  28. package/dist/agents/control_flow/finding-generator.js +354 -0
  29. package/dist/agents/control_flow/finding-generator.js.map +1 -0
  30. package/dist/agents/control_flow/index.d.ts +39 -0
  31. package/dist/agents/control_flow/index.d.ts.map +1 -0
  32. package/dist/agents/control_flow/index.js +270 -0
  33. package/dist/agents/control_flow/index.js.map +1 -0
  34. package/dist/agents/control_flow/logger.d.ts +333 -0
  35. package/dist/agents/control_flow/logger.d.ts.map +1 -0
  36. package/dist/agents/control_flow/logger.js +607 -0
  37. package/dist/agents/control_flow/logger.js.map +1 -0
  38. package/dist/agents/control_flow/mitigation-detector.d.ts +207 -0
  39. package/dist/agents/control_flow/mitigation-detector.d.ts.map +1 -0
  40. package/dist/agents/control_flow/mitigation-detector.js +625 -0
  41. package/dist/agents/control_flow/mitigation-detector.js.map +1 -0
  42. package/dist/agents/control_flow/mitigation-patterns.d.ts +53 -0
  43. package/dist/agents/control_flow/mitigation-patterns.d.ts.map +1 -0
  44. package/dist/agents/control_flow/mitigation-patterns.js +620 -0
  45. package/dist/agents/control_flow/mitigation-patterns.js.map +1 -0
  46. package/dist/agents/control_flow/path-analyzer.d.ts +287 -0
  47. package/dist/agents/control_flow/path-analyzer.d.ts.map +1 -0
  48. package/dist/agents/control_flow/path-analyzer.js +695 -0
  49. package/dist/agents/control_flow/path-analyzer.js.map +1 -0
  50. package/dist/agents/control_flow/pattern-validator.d.ts +132 -0
  51. package/dist/agents/control_flow/pattern-validator.d.ts.map +1 -0
  52. package/dist/agents/control_flow/pattern-validator.js +420 -0
  53. package/dist/agents/control_flow/pattern-validator.js.map +1 -0
  54. package/dist/agents/control_flow/timeout-regex.d.ts +144 -0
  55. package/dist/agents/control_flow/timeout-regex.d.ts.map +1 -0
  56. package/dist/agents/control_flow/timeout-regex.js +339 -0
  57. package/dist/agents/control_flow/timeout-regex.js.map +1 -0
  58. package/dist/agents/control_flow/types.d.ts +782 -0
  59. package/dist/agents/control_flow/types.d.ts.map +1 -0
  60. package/dist/agents/control_flow/types.js +428 -0
  61. package/dist/agents/control_flow/types.js.map +1 -0
  62. package/dist/agents/control_flow/vulnerability-detector.d.ts +85 -0
  63. package/dist/agents/control_flow/vulnerability-detector.d.ts.map +1 -0
  64. package/dist/agents/control_flow/vulnerability-detector.js +493 -0
  65. package/dist/agents/control_flow/vulnerability-detector.js.map +1 -0
  66. package/dist/agents/date-utils.d.ts +19 -0
  67. package/dist/agents/date-utils.d.ts.map +1 -0
  68. package/dist/agents/date-utils.js +29 -0
  69. package/dist/agents/date-utils.js.map +1 -0
  70. package/dist/agents/index.d.ts +25 -0
  71. package/dist/agents/index.d.ts.map +1 -0
  72. package/dist/agents/index.js +50 -0
  73. package/dist/agents/index.js.map +1 -0
  74. package/dist/agents/json-utils.d.ts +34 -0
  75. package/dist/agents/json-utils.d.ts.map +1 -0
  76. package/dist/agents/json-utils.js +62 -0
  77. package/dist/agents/json-utils.js.map +1 -0
  78. package/dist/agents/local_llm.d.ts +24 -0
  79. package/dist/agents/local_llm.d.ts.map +1 -0
  80. package/dist/agents/local_llm.js +566 -0
  81. package/dist/agents/local_llm.js.map +1 -0
  82. package/dist/agents/metadata.d.ts +57 -0
  83. package/dist/agents/metadata.d.ts.map +1 -0
  84. package/dist/agents/metadata.js +45 -0
  85. package/dist/agents/metadata.js.map +1 -0
  86. package/dist/agents/opencode.d.ts +18 -0
  87. package/dist/agents/opencode.d.ts.map +1 -0
  88. package/dist/agents/opencode.js +364 -0
  89. package/dist/agents/opencode.js.map +1 -0
  90. package/dist/agents/path-filter.d.ts +25 -0
  91. package/dist/agents/path-filter.d.ts.map +1 -0
  92. package/dist/agents/path-filter.js +43 -0
  93. package/dist/agents/path-filter.js.map +1 -0
  94. package/dist/agents/pr_agent.d.ts +3 -0
  95. package/dist/agents/pr_agent.d.ts.map +1 -0
  96. package/dist/agents/pr_agent.js +312 -0
  97. package/dist/agents/pr_agent.js.map +1 -0
  98. package/dist/agents/retry.d.ts +12 -0
  99. package/dist/agents/retry.d.ts.map +1 -0
  100. package/dist/agents/retry.js +65 -0
  101. package/dist/agents/retry.js.map +1 -0
  102. package/dist/agents/reviewdog.d.ts +24 -0
  103. package/dist/agents/reviewdog.d.ts.map +1 -0
  104. package/dist/agents/reviewdog.js +259 -0
  105. package/dist/agents/reviewdog.js.map +1 -0
  106. package/dist/agents/security.d.ts +49 -0
  107. package/dist/agents/security.d.ts.map +1 -0
  108. package/dist/agents/security.js +302 -0
  109. package/dist/agents/security.js.map +1 -0
  110. package/dist/agents/semgrep.d.ts +8 -0
  111. package/dist/agents/semgrep.d.ts.map +1 -0
  112. package/dist/agents/semgrep.js +157 -0
  113. package/dist/agents/semgrep.js.map +1 -0
  114. package/dist/agents/types.d.ts +450 -0
  115. package/dist/agents/types.d.ts.map +1 -0
  116. package/dist/agents/types.js +127 -0
  117. package/dist/agents/types.js.map +1 -0
  118. package/dist/budget.d.ts +59 -0
  119. package/dist/budget.d.ts.map +1 -0
  120. package/dist/budget.js +82 -0
  121. package/dist/budget.js.map +1 -0
  122. package/dist/cache/key.d.ts +49 -0
  123. package/dist/cache/key.d.ts.map +1 -0
  124. package/dist/cache/key.js +71 -0
  125. package/dist/cache/key.js.map +1 -0
  126. package/dist/cache/store.d.ts +47 -0
  127. package/dist/cache/store.d.ts.map +1 -0
  128. package/dist/cache/store.js +328 -0
  129. package/dist/cache/store.js.map +1 -0
  130. package/dist/cli/commands/check.d.ts +60 -0
  131. package/dist/cli/commands/check.d.ts.map +1 -0
  132. package/dist/cli/commands/check.js +163 -0
  133. package/dist/cli/commands/check.js.map +1 -0
  134. package/dist/cli/commands/index.d.ts +12 -0
  135. package/dist/cli/commands/index.d.ts.map +1 -0
  136. package/dist/cli/commands/index.js +12 -0
  137. package/dist/cli/commands/index.js.map +1 -0
  138. package/dist/cli/commands/local-review.d.ts +149 -0
  139. package/dist/cli/commands/local-review.d.ts.map +1 -0
  140. package/dist/cli/commands/local-review.js +755 -0
  141. package/dist/cli/commands/local-review.js.map +1 -0
  142. package/dist/cli/config-wizard.d.ts +87 -0
  143. package/dist/cli/config-wizard.d.ts.map +1 -0
  144. package/dist/cli/config-wizard.js +240 -0
  145. package/dist/cli/config-wizard.js.map +1 -0
  146. package/dist/cli/dependencies/catalog.d.ts +44 -0
  147. package/dist/cli/dependencies/catalog.d.ts.map +1 -0
  148. package/dist/cli/dependencies/catalog.js +89 -0
  149. package/dist/cli/dependencies/catalog.js.map +1 -0
  150. package/dist/cli/dependencies/checker.d.ts +42 -0
  151. package/dist/cli/dependencies/checker.d.ts.map +1 -0
  152. package/dist/cli/dependencies/checker.js +240 -0
  153. package/dist/cli/dependencies/checker.js.map +1 -0
  154. package/dist/cli/dependencies/index.d.ts +16 -0
  155. package/dist/cli/dependencies/index.d.ts.map +1 -0
  156. package/dist/cli/dependencies/index.js +16 -0
  157. package/dist/cli/dependencies/index.js.map +1 -0
  158. package/dist/cli/dependencies/messages.d.ts +58 -0
  159. package/dist/cli/dependencies/messages.d.ts.map +1 -0
  160. package/dist/cli/dependencies/messages.js +183 -0
  161. package/dist/cli/dependencies/messages.js.map +1 -0
  162. package/dist/cli/dependencies/platform.d.ts +25 -0
  163. package/dist/cli/dependencies/platform.d.ts.map +1 -0
  164. package/dist/cli/dependencies/platform.js +42 -0
  165. package/dist/cli/dependencies/platform.js.map +1 -0
  166. package/dist/cli/dependencies/schemas.d.ts +65 -0
  167. package/dist/cli/dependencies/schemas.d.ts.map +1 -0
  168. package/dist/cli/dependencies/schemas.js +42 -0
  169. package/dist/cli/dependencies/schemas.js.map +1 -0
  170. package/dist/cli/dependencies/types.d.ts +112 -0
  171. package/dist/cli/dependencies/types.d.ts.map +1 -0
  172. package/dist/cli/dependencies/types.js +6 -0
  173. package/dist/cli/dependencies/types.js.map +1 -0
  174. package/dist/cli/dependencies/version.d.ts +67 -0
  175. package/dist/cli/dependencies/version.d.ts.map +1 -0
  176. package/dist/cli/dependencies/version.js +125 -0
  177. package/dist/cli/dependencies/version.js.map +1 -0
  178. package/dist/cli/git-context.d.ts +105 -0
  179. package/dist/cli/git-context.d.ts.map +1 -0
  180. package/dist/cli/git-context.js +313 -0
  181. package/dist/cli/git-context.js.map +1 -0
  182. package/dist/cli/interactive-prompts.d.ts +126 -0
  183. package/dist/cli/interactive-prompts.d.ts.map +1 -0
  184. package/dist/cli/interactive-prompts.js +128 -0
  185. package/dist/cli/interactive-prompts.js.map +1 -0
  186. package/dist/cli/options/index.d.ts +7 -0
  187. package/dist/cli/options/index.d.ts.map +1 -0
  188. package/dist/cli/options/index.js +11 -0
  189. package/dist/cli/options/index.js.map +1 -0
  190. package/dist/cli/options/local-review-options.d.ts +221 -0
  191. package/dist/cli/options/local-review-options.d.ts.map +1 -0
  192. package/dist/cli/options/local-review-options.js +332 -0
  193. package/dist/cli/options/local-review-options.js.map +1 -0
  194. package/dist/cli/output/colors.d.ts +154 -0
  195. package/dist/cli/output/colors.d.ts.map +1 -0
  196. package/dist/cli/output/colors.js +255 -0
  197. package/dist/cli/output/colors.js.map +1 -0
  198. package/dist/cli/output/errors.d.ts +157 -0
  199. package/dist/cli/output/errors.d.ts.map +1 -0
  200. package/dist/cli/output/errors.js +266 -0
  201. package/dist/cli/output/errors.js.map +1 -0
  202. package/dist/cli/output/index.d.ts +12 -0
  203. package/dist/cli/output/index.d.ts.map +1 -0
  204. package/dist/cli/output/index.js +15 -0
  205. package/dist/cli/output/index.js.map +1 -0
  206. package/dist/cli/output/progress.d.ts +237 -0
  207. package/dist/cli/output/progress.d.ts.map +1 -0
  208. package/dist/cli/output/progress.js +405 -0
  209. package/dist/cli/output/progress.js.map +1 -0
  210. package/dist/cli/signals.d.ts +145 -0
  211. package/dist/cli/signals.d.ts.map +1 -0
  212. package/dist/cli/signals.js +223 -0
  213. package/dist/cli/signals.js.map +1 -0
  214. package/dist/cli/validation-report.d.ts +106 -0
  215. package/dist/cli/validation-report.d.ts.map +1 -0
  216. package/dist/cli/validation-report.js +108 -0
  217. package/dist/cli/validation-report.js.map +1 -0
  218. package/dist/config/index.d.ts +9 -0
  219. package/dist/config/index.d.ts.map +1 -0
  220. package/dist/config/index.js +12 -0
  221. package/dist/config/index.js.map +1 -0
  222. package/dist/config/mitigation-config.d.ts +94 -0
  223. package/dist/config/mitigation-config.d.ts.map +1 -0
  224. package/dist/config/mitigation-config.js +430 -0
  225. package/dist/config/mitigation-config.js.map +1 -0
  226. package/dist/config/providers.d.ts +118 -0
  227. package/dist/config/providers.d.ts.map +1 -0
  228. package/dist/config/providers.js +229 -0
  229. package/dist/config/providers.js.map +1 -0
  230. package/dist/config/schemas.d.ts +278 -0
  231. package/dist/config/schemas.d.ts.map +1 -0
  232. package/dist/config/schemas.js +111 -0
  233. package/dist/config/schemas.js.map +1 -0
  234. package/dist/config/zero-config.d.ts +126 -0
  235. package/dist/config/zero-config.d.ts.map +1 -0
  236. package/dist/config/zero-config.js +243 -0
  237. package/dist/config/zero-config.js.map +1 -0
  238. package/dist/config.d.ts +110 -0
  239. package/dist/config.d.ts.map +1 -0
  240. package/dist/config.js +302 -0
  241. package/dist/config.js.map +1 -0
  242. package/dist/diff.d.ts +224 -0
  243. package/dist/diff.d.ts.map +1 -0
  244. package/dist/diff.js +832 -0
  245. package/dist/diff.js.map +1 -0
  246. package/dist/git-validators.d.ts +106 -0
  247. package/dist/git-validators.d.ts.map +1 -0
  248. package/dist/git-validators.js +224 -0
  249. package/dist/git-validators.js.map +1 -0
  250. package/dist/main.d.ts +61 -0
  251. package/dist/main.d.ts.map +1 -0
  252. package/dist/main.js +704 -0
  253. package/dist/main.js.map +1 -0
  254. package/dist/phases/execute.d.ts +60 -0
  255. package/dist/phases/execute.d.ts.map +1 -0
  256. package/dist/phases/execute.js +168 -0
  257. package/dist/phases/execute.js.map +1 -0
  258. package/dist/phases/index.d.ts +9 -0
  259. package/dist/phases/index.d.ts.map +1 -0
  260. package/dist/phases/index.js +9 -0
  261. package/dist/phases/index.js.map +1 -0
  262. package/dist/phases/preflight.d.ts +40 -0
  263. package/dist/phases/preflight.d.ts.map +1 -0
  264. package/dist/phases/preflight.js +122 -0
  265. package/dist/phases/preflight.js.map +1 -0
  266. package/dist/phases/report.d.ts +51 -0
  267. package/dist/phases/report.d.ts.map +1 -0
  268. package/dist/phases/report.js +152 -0
  269. package/dist/phases/report.js.map +1 -0
  270. package/dist/policy.d.ts +33 -0
  271. package/dist/policy.d.ts.map +1 -0
  272. package/dist/policy.js +34 -0
  273. package/dist/policy.js.map +1 -0
  274. package/dist/preflight.d.ts +181 -0
  275. package/dist/preflight.d.ts.map +1 -0
  276. package/dist/preflight.js +627 -0
  277. package/dist/preflight.js.map +1 -0
  278. package/dist/report/ado.d.ts +53 -0
  279. package/dist/report/ado.d.ts.map +1 -0
  280. package/dist/report/ado.js +411 -0
  281. package/dist/report/ado.js.map +1 -0
  282. package/dist/report/agent-icons.d.ts +36 -0
  283. package/dist/report/agent-icons.d.ts.map +1 -0
  284. package/dist/report/agent-icons.js +46 -0
  285. package/dist/report/agent-icons.js.map +1 -0
  286. package/dist/report/base.d.ts +30 -0
  287. package/dist/report/base.d.ts.map +1 -0
  288. package/dist/report/base.js +64 -0
  289. package/dist/report/base.js.map +1 -0
  290. package/dist/report/formats.d.ts +206 -0
  291. package/dist/report/formats.d.ts.map +1 -0
  292. package/dist/report/formats.js +481 -0
  293. package/dist/report/formats.js.map +1 -0
  294. package/dist/report/github.d.ts +44 -0
  295. package/dist/report/github.d.ts.map +1 -0
  296. package/dist/report/github.js +409 -0
  297. package/dist/report/github.js.map +1 -0
  298. package/dist/report/line-resolver.d.ts +208 -0
  299. package/dist/report/line-resolver.d.ts.map +1 -0
  300. package/dist/report/line-resolver.js +578 -0
  301. package/dist/report/line-resolver.js.map +1 -0
  302. package/dist/report/resolution.d.ts +158 -0
  303. package/dist/report/resolution.d.ts.map +1 -0
  304. package/dist/report/resolution.js +272 -0
  305. package/dist/report/resolution.js.map +1 -0
  306. package/dist/report/sanitize.d.ts +32 -0
  307. package/dist/report/sanitize.d.ts.map +1 -0
  308. package/dist/report/sanitize.js +84 -0
  309. package/dist/report/sanitize.js.map +1 -0
  310. package/dist/report/terminal.d.ts +440 -0
  311. package/dist/report/terminal.d.ts.map +1 -0
  312. package/dist/report/terminal.js +840 -0
  313. package/dist/report/terminal.js.map +1 -0
  314. package/dist/reviewignore.d.ts +125 -0
  315. package/dist/reviewignore.d.ts.map +1 -0
  316. package/dist/reviewignore.js +335 -0
  317. package/dist/reviewignore.js.map +1 -0
  318. package/dist/security-logger.d.ts +178 -0
  319. package/dist/security-logger.d.ts.map +1 -0
  320. package/dist/security-logger.js +256 -0
  321. package/dist/security-logger.js.map +1 -0
  322. package/dist/telemetry/backends/console.d.ts +24 -0
  323. package/dist/telemetry/backends/console.d.ts.map +1 -0
  324. package/dist/telemetry/backends/console.js +54 -0
  325. package/dist/telemetry/backends/console.js.map +1 -0
  326. package/dist/telemetry/backends/jsonl.d.ts +31 -0
  327. package/dist/telemetry/backends/jsonl.d.ts.map +1 -0
  328. package/dist/telemetry/backends/jsonl.js +121 -0
  329. package/dist/telemetry/backends/jsonl.js.map +1 -0
  330. package/dist/telemetry/emitter.d.ts +43 -0
  331. package/dist/telemetry/emitter.d.ts.map +1 -0
  332. package/dist/telemetry/emitter.js +83 -0
  333. package/dist/telemetry/emitter.js.map +1 -0
  334. package/dist/telemetry/hook.d.ts +53 -0
  335. package/dist/telemetry/hook.d.ts.map +1 -0
  336. package/dist/telemetry/hook.js +118 -0
  337. package/dist/telemetry/hook.js.map +1 -0
  338. package/dist/telemetry/index.d.ts +58 -0
  339. package/dist/telemetry/index.d.ts.map +1 -0
  340. package/dist/telemetry/index.js +143 -0
  341. package/dist/telemetry/index.js.map +1 -0
  342. package/dist/telemetry/types.d.ts +139 -0
  343. package/dist/telemetry/types.d.ts.map +1 -0
  344. package/dist/telemetry/types.js +133 -0
  345. package/dist/telemetry/types.js.map +1 -0
  346. package/dist/trust.d.ts +65 -0
  347. package/dist/trust.d.ts.map +1 -0
  348. package/dist/trust.js +78 -0
  349. package/dist/trust.js.map +1 -0
  350. package/dist/types/assert-never.d.ts +30 -0
  351. package/dist/types/assert-never.d.ts.map +1 -0
  352. package/dist/types/assert-never.js +32 -0
  353. package/dist/types/assert-never.js.map +1 -0
  354. package/dist/types/branded.d.ts +172 -0
  355. package/dist/types/branded.d.ts.map +1 -0
  356. package/dist/types/branded.js +262 -0
  357. package/dist/types/branded.js.map +1 -0
  358. package/dist/types/errors.d.ts +320 -0
  359. package/dist/types/errors.d.ts.map +1 -0
  360. package/dist/types/errors.js +551 -0
  361. package/dist/types/errors.js.map +1 -0
  362. package/dist/types/index.d.ts +37 -0
  363. package/dist/types/index.d.ts.map +1 -0
  364. package/dist/types/index.js +77 -0
  365. package/dist/types/index.js.map +1 -0
  366. package/dist/types/result.d.ts +323 -0
  367. package/dist/types/result.d.ts.map +1 -0
  368. package/dist/types/result.js +423 -0
  369. package/dist/types/result.js.map +1 -0
  370. package/package.json +63 -0
@@ -0,0 +1,782 @@
1
+ /**
2
+ * Control Flow Analysis Types
3
+ *
4
+ * Type definitions for the control flow analysis agent.
5
+ * Based on specs/001-control-flow-analysis/contracts/control-flow-types.ts
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const VulnerabilityTypeSchema: z.ZodEnum<{
9
+ injection: "injection";
10
+ null_deref: "null_deref";
11
+ auth_bypass: "auth_bypass";
12
+ xss: "xss";
13
+ path_traversal: "path_traversal";
14
+ prototype_pollution: "prototype_pollution";
15
+ ssrf: "ssrf";
16
+ }>;
17
+ export type VulnerabilityType = z.infer<typeof VulnerabilityTypeSchema>;
18
+ export declare const SeveritySchema: z.ZodEnum<{
19
+ error: "error";
20
+ warning: "warning";
21
+ info: "info";
22
+ }>;
23
+ export type Severity = z.infer<typeof SeveritySchema>;
24
+ export declare const MitigationStatusSchema: z.ZodEnum<{
25
+ none: "none";
26
+ partial: "partial";
27
+ full: "full";
28
+ }>;
29
+ export type MitigationStatus = z.infer<typeof MitigationStatusSchema>;
30
+ export declare const ConfidenceSchema: z.ZodEnum<{
31
+ high: "high";
32
+ medium: "medium";
33
+ low: "low";
34
+ }>;
35
+ export type Confidence = z.infer<typeof ConfidenceSchema>;
36
+ export declare const BudgetStatusSchema: z.ZodEnum<{
37
+ ok: "ok";
38
+ warning: "warning";
39
+ exceeded: "exceeded";
40
+ terminated: "terminated";
41
+ }>;
42
+ export type BudgetStatus = z.infer<typeof BudgetStatusSchema>;
43
+ export declare const CFGNodeTypeSchema: z.ZodEnum<{
44
+ entry: "entry";
45
+ exit: "exit";
46
+ throw: "throw";
47
+ basic: "basic";
48
+ branch: "branch";
49
+ merge: "merge";
50
+ loop_header: "loop_header";
51
+ loop_body: "loop_body";
52
+ call: "call";
53
+ await: "await";
54
+ }>;
55
+ export type CFGNodeType = z.infer<typeof CFGNodeTypeSchema>;
56
+ export declare const CFGEdgeTypeSchema: z.ZodEnum<{
57
+ await: "await";
58
+ sequential: "sequential";
59
+ branch_true: "branch_true";
60
+ branch_false: "branch_false";
61
+ loop_back: "loop_back";
62
+ loop_exit: "loop_exit";
63
+ exception: "exception";
64
+ return: "return";
65
+ }>;
66
+ export type CFGEdgeType = z.infer<typeof CFGEdgeTypeSchema>;
67
+ export declare const MatchTypeSchema: z.ZodEnum<{
68
+ function_call: "function_call";
69
+ method_call: "method_call";
70
+ type_guard: "type_guard";
71
+ assignment: "assignment";
72
+ typeof_check: "typeof_check";
73
+ instanceof_check: "instanceof_check";
74
+ }>;
75
+ export type MatchType = z.infer<typeof MatchTypeSchema>;
76
+ export declare const MitigationScopeSchema: z.ZodEnum<{
77
+ function: "function";
78
+ block: "block";
79
+ module: "module";
80
+ }>;
81
+ export type MitigationScope = z.infer<typeof MitigationScopeSchema>;
82
+ export declare const SourceLocationSchema: z.ZodObject<{
83
+ file: z.ZodString;
84
+ line: z.ZodNumber;
85
+ column: z.ZodOptional<z.ZodNumber>;
86
+ endLine: z.ZodOptional<z.ZodNumber>;
87
+ endColumn: z.ZodOptional<z.ZodNumber>;
88
+ }, z.core.$strip>;
89
+ export type SourceLocation = z.infer<typeof SourceLocationSchema>;
90
+ export declare const ParameterConstraintSchema: z.ZodObject<{
91
+ index: z.ZodNumber;
92
+ constraint: z.ZodEnum<{
93
+ string: "string";
94
+ any: "any";
95
+ tainted_source: "tainted_source";
96
+ }>;
97
+ }, z.core.$strip>;
98
+ export type ParameterConstraint = z.infer<typeof ParameterConstraintSchema>;
99
+ export declare const ReturnConstraintSchema: z.ZodEnum<{
100
+ truthy: "truthy";
101
+ defined: "defined";
102
+ sanitized: "sanitized";
103
+ }>;
104
+ export type ReturnConstraint = z.infer<typeof ReturnConstraintSchema>;
105
+ export declare const MatchCriteriaSchema: z.ZodObject<{
106
+ type: z.ZodEnum<{
107
+ function_call: "function_call";
108
+ method_call: "method_call";
109
+ type_guard: "type_guard";
110
+ assignment: "assignment";
111
+ typeof_check: "typeof_check";
112
+ instanceof_check: "instanceof_check";
113
+ }>;
114
+ name: z.ZodOptional<z.ZodString>;
115
+ namePattern: z.ZodOptional<z.ZodString>;
116
+ module: z.ZodOptional<z.ZodString>;
117
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
118
+ index: z.ZodNumber;
119
+ constraint: z.ZodEnum<{
120
+ string: "string";
121
+ any: "any";
122
+ tainted_source: "tainted_source";
123
+ }>;
124
+ }, z.core.$strip>>>;
125
+ returnConstraint: z.ZodOptional<z.ZodEnum<{
126
+ truthy: "truthy";
127
+ defined: "defined";
128
+ sanitized: "sanitized";
129
+ }>>;
130
+ }, z.core.$strip>;
131
+ export type MatchCriteria = z.infer<typeof MatchCriteriaSchema>;
132
+ export declare const MitigationPatternSchema: z.ZodObject<{
133
+ id: z.ZodString;
134
+ name: z.ZodString;
135
+ description: z.ZodString;
136
+ mitigates: z.ZodArray<z.ZodEnum<{
137
+ injection: "injection";
138
+ null_deref: "null_deref";
139
+ auth_bypass: "auth_bypass";
140
+ xss: "xss";
141
+ path_traversal: "path_traversal";
142
+ prototype_pollution: "prototype_pollution";
143
+ ssrf: "ssrf";
144
+ }>>;
145
+ match: z.ZodObject<{
146
+ type: z.ZodEnum<{
147
+ function_call: "function_call";
148
+ method_call: "method_call";
149
+ type_guard: "type_guard";
150
+ assignment: "assignment";
151
+ typeof_check: "typeof_check";
152
+ instanceof_check: "instanceof_check";
153
+ }>;
154
+ name: z.ZodOptional<z.ZodString>;
155
+ namePattern: z.ZodOptional<z.ZodString>;
156
+ module: z.ZodOptional<z.ZodString>;
157
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
158
+ index: z.ZodNumber;
159
+ constraint: z.ZodEnum<{
160
+ string: "string";
161
+ any: "any";
162
+ tainted_source: "tainted_source";
163
+ }>;
164
+ }, z.core.$strip>>>;
165
+ returnConstraint: z.ZodOptional<z.ZodEnum<{
166
+ truthy: "truthy";
167
+ defined: "defined";
168
+ sanitized: "sanitized";
169
+ }>>;
170
+ }, z.core.$strip>;
171
+ confidence: z.ZodEnum<{
172
+ high: "high";
173
+ medium: "medium";
174
+ low: "low";
175
+ }>;
176
+ isBuiltIn: z.ZodOptional<z.ZodBoolean>;
177
+ deprecated: z.ZodOptional<z.ZodBoolean>;
178
+ deprecationReason: z.ZodOptional<z.ZodString>;
179
+ }, z.core.$strip>;
180
+ export type MitigationPattern = z.infer<typeof MitigationPatternSchema>;
181
+ /**
182
+ * A single entry in the call chain from vulnerability to mitigation.
183
+ * Used to track how mitigations in other files are reached.
184
+ */
185
+ export declare const CallChainEntrySchema: z.ZodObject<{
186
+ file: z.ZodString;
187
+ functionName: z.ZodString;
188
+ line: z.ZodNumber;
189
+ }, z.core.$strip>;
190
+ export type CallChainEntry = z.infer<typeof CallChainEntrySchema>;
191
+ /**
192
+ * Result of evaluating a single regex pattern with timeout protection.
193
+ */
194
+ export declare const PatternEvaluationResultSchema: z.ZodObject<{
195
+ patternId: z.ZodString;
196
+ matched: z.ZodBoolean;
197
+ timedOut: z.ZodBoolean;
198
+ elapsedMs: z.ZodNumber;
199
+ inputLength: z.ZodNumber;
200
+ }, z.core.$strip>;
201
+ export type PatternEvaluationResult = z.infer<typeof PatternEvaluationResultSchema>;
202
+ /**
203
+ * Summary information about a cross-file mitigation for finding metadata.
204
+ * Used in finding messages to report mitigation locations.
205
+ */
206
+ export declare const CrossFileMitigationInfoSchema: z.ZodObject<{
207
+ patternId: z.ZodString;
208
+ file: z.ZodString;
209
+ line: z.ZodNumber;
210
+ depth: z.ZodNumber;
211
+ functionName: z.ZodOptional<z.ZodString>;
212
+ }, z.core.$strip>;
213
+ export type CrossFileMitigationInfo = z.infer<typeof CrossFileMitigationInfoSchema>;
214
+ /**
215
+ * Summary information about a pattern that timed out during evaluation.
216
+ * Used in finding metadata to indicate conservative results.
217
+ */
218
+ export declare const PatternTimeoutInfoSchema: z.ZodObject<{
219
+ patternId: z.ZodString;
220
+ elapsedMs: z.ZodNumber;
221
+ }, z.core.$strip>;
222
+ export type PatternTimeoutInfo = z.infer<typeof PatternTimeoutInfoSchema>;
223
+ export declare const MitigationInstanceSchema: z.ZodObject<{
224
+ patternId: z.ZodString;
225
+ location: z.ZodObject<{
226
+ file: z.ZodString;
227
+ line: z.ZodNumber;
228
+ column: z.ZodOptional<z.ZodNumber>;
229
+ endLine: z.ZodOptional<z.ZodNumber>;
230
+ endColumn: z.ZodOptional<z.ZodNumber>;
231
+ }, z.core.$strip>;
232
+ protectedVariables: z.ZodArray<z.ZodString>;
233
+ protectedPaths: z.ZodArray<z.ZodString>;
234
+ scope: z.ZodEnum<{
235
+ function: "function";
236
+ block: "block";
237
+ module: "module";
238
+ }>;
239
+ confidence: z.ZodEnum<{
240
+ high: "high";
241
+ medium: "medium";
242
+ low: "low";
243
+ }>;
244
+ callChain: z.ZodOptional<z.ZodArray<z.ZodObject<{
245
+ file: z.ZodString;
246
+ functionName: z.ZodString;
247
+ line: z.ZodNumber;
248
+ }, z.core.$strip>>>;
249
+ discoveryDepth: z.ZodOptional<z.ZodNumber>;
250
+ }, z.core.$strip>;
251
+ export type MitigationInstance = z.infer<typeof MitigationInstanceSchema>;
252
+ export declare const CFGNodeSchema: z.ZodObject<{
253
+ id: z.ZodString;
254
+ type: z.ZodEnum<{
255
+ entry: "entry";
256
+ exit: "exit";
257
+ throw: "throw";
258
+ basic: "basic";
259
+ branch: "branch";
260
+ merge: "merge";
261
+ loop_header: "loop_header";
262
+ loop_body: "loop_body";
263
+ call: "call";
264
+ await: "await";
265
+ }>;
266
+ lineStart: z.ZodNumber;
267
+ lineEnd: z.ZodNumber;
268
+ mitigations: z.ZodArray<z.ZodObject<{
269
+ patternId: z.ZodString;
270
+ location: z.ZodObject<{
271
+ file: z.ZodString;
272
+ line: z.ZodNumber;
273
+ column: z.ZodOptional<z.ZodNumber>;
274
+ endLine: z.ZodOptional<z.ZodNumber>;
275
+ endColumn: z.ZodOptional<z.ZodNumber>;
276
+ }, z.core.$strip>;
277
+ protectedVariables: z.ZodArray<z.ZodString>;
278
+ protectedPaths: z.ZodArray<z.ZodString>;
279
+ scope: z.ZodEnum<{
280
+ function: "function";
281
+ block: "block";
282
+ module: "module";
283
+ }>;
284
+ confidence: z.ZodEnum<{
285
+ high: "high";
286
+ medium: "medium";
287
+ low: "low";
288
+ }>;
289
+ callChain: z.ZodOptional<z.ZodArray<z.ZodObject<{
290
+ file: z.ZodString;
291
+ functionName: z.ZodString;
292
+ line: z.ZodNumber;
293
+ }, z.core.$strip>>>;
294
+ discoveryDepth: z.ZodOptional<z.ZodNumber>;
295
+ }, z.core.$strip>>;
296
+ taintedVariables: z.ZodArray<z.ZodString>;
297
+ }, z.core.$strip>;
298
+ export type CFGNode = z.infer<typeof CFGNodeSchema>;
299
+ export declare const CFGEdgeSchema: z.ZodObject<{
300
+ from: z.ZodString;
301
+ to: z.ZodString;
302
+ type: z.ZodEnum<{
303
+ await: "await";
304
+ sequential: "sequential";
305
+ branch_true: "branch_true";
306
+ branch_false: "branch_false";
307
+ loop_back: "loop_back";
308
+ loop_exit: "loop_exit";
309
+ exception: "exception";
310
+ return: "return";
311
+ }>;
312
+ conditionValue: z.ZodOptional<z.ZodBoolean>;
313
+ }, z.core.$strip>;
314
+ export type CFGEdge = z.infer<typeof CFGEdgeSchema>;
315
+ export declare const CallSiteSchema: z.ZodObject<{
316
+ nodeId: z.ZodString;
317
+ calleeName: z.ZodString;
318
+ calleeFile: z.ZodOptional<z.ZodString>;
319
+ isResolved: z.ZodBoolean;
320
+ isDynamic: z.ZodBoolean;
321
+ location: z.ZodObject<{
322
+ file: z.ZodString;
323
+ line: z.ZodNumber;
324
+ column: z.ZodOptional<z.ZodNumber>;
325
+ endLine: z.ZodOptional<z.ZodNumber>;
326
+ endColumn: z.ZodOptional<z.ZodNumber>;
327
+ }, z.core.$strip>;
328
+ }, z.core.$strip>;
329
+ export type CallSite = z.infer<typeof CallSiteSchema>;
330
+ export declare const ControlFlowGraphSchema: z.ZodObject<{
331
+ functionId: z.ZodString;
332
+ functionName: z.ZodString;
333
+ filePath: z.ZodString;
334
+ startLine: z.ZodNumber;
335
+ endLine: z.ZodNumber;
336
+ nodes: z.ZodRecord<z.ZodString, z.ZodObject<{
337
+ id: z.ZodString;
338
+ type: z.ZodEnum<{
339
+ entry: "entry";
340
+ exit: "exit";
341
+ throw: "throw";
342
+ basic: "basic";
343
+ branch: "branch";
344
+ merge: "merge";
345
+ loop_header: "loop_header";
346
+ loop_body: "loop_body";
347
+ call: "call";
348
+ await: "await";
349
+ }>;
350
+ lineStart: z.ZodNumber;
351
+ lineEnd: z.ZodNumber;
352
+ mitigations: z.ZodArray<z.ZodObject<{
353
+ patternId: z.ZodString;
354
+ location: z.ZodObject<{
355
+ file: z.ZodString;
356
+ line: z.ZodNumber;
357
+ column: z.ZodOptional<z.ZodNumber>;
358
+ endLine: z.ZodOptional<z.ZodNumber>;
359
+ endColumn: z.ZodOptional<z.ZodNumber>;
360
+ }, z.core.$strip>;
361
+ protectedVariables: z.ZodArray<z.ZodString>;
362
+ protectedPaths: z.ZodArray<z.ZodString>;
363
+ scope: z.ZodEnum<{
364
+ function: "function";
365
+ block: "block";
366
+ module: "module";
367
+ }>;
368
+ confidence: z.ZodEnum<{
369
+ high: "high";
370
+ medium: "medium";
371
+ low: "low";
372
+ }>;
373
+ callChain: z.ZodOptional<z.ZodArray<z.ZodObject<{
374
+ file: z.ZodString;
375
+ functionName: z.ZodString;
376
+ line: z.ZodNumber;
377
+ }, z.core.$strip>>>;
378
+ discoveryDepth: z.ZodOptional<z.ZodNumber>;
379
+ }, z.core.$strip>>;
380
+ taintedVariables: z.ZodArray<z.ZodString>;
381
+ }, z.core.$strip>>;
382
+ edges: z.ZodArray<z.ZodObject<{
383
+ from: z.ZodString;
384
+ to: z.ZodString;
385
+ type: z.ZodEnum<{
386
+ await: "await";
387
+ sequential: "sequential";
388
+ branch_true: "branch_true";
389
+ branch_false: "branch_false";
390
+ loop_back: "loop_back";
391
+ loop_exit: "loop_exit";
392
+ exception: "exception";
393
+ return: "return";
394
+ }>;
395
+ conditionValue: z.ZodOptional<z.ZodBoolean>;
396
+ }, z.core.$strip>>;
397
+ entryNode: z.ZodString;
398
+ exitNodes: z.ZodArray<z.ZodString>;
399
+ callSites: z.ZodArray<z.ZodObject<{
400
+ nodeId: z.ZodString;
401
+ calleeName: z.ZodString;
402
+ calleeFile: z.ZodOptional<z.ZodString>;
403
+ isResolved: z.ZodBoolean;
404
+ isDynamic: z.ZodBoolean;
405
+ location: z.ZodObject<{
406
+ file: z.ZodString;
407
+ line: z.ZodNumber;
408
+ column: z.ZodOptional<z.ZodNumber>;
409
+ endLine: z.ZodOptional<z.ZodNumber>;
410
+ endColumn: z.ZodOptional<z.ZodNumber>;
411
+ }, z.core.$strip>;
412
+ }, z.core.$strip>>;
413
+ }, z.core.$strip>;
414
+ export type ControlFlowGraph = z.infer<typeof ControlFlowGraphSchema>;
415
+ export declare const PotentialVulnerabilitySchema: z.ZodObject<{
416
+ id: z.ZodString;
417
+ type: z.ZodEnum<{
418
+ injection: "injection";
419
+ null_deref: "null_deref";
420
+ auth_bypass: "auth_bypass";
421
+ xss: "xss";
422
+ path_traversal: "path_traversal";
423
+ prototype_pollution: "prototype_pollution";
424
+ ssrf: "ssrf";
425
+ }>;
426
+ sinkLocation: z.ZodObject<{
427
+ file: z.ZodString;
428
+ line: z.ZodNumber;
429
+ column: z.ZodOptional<z.ZodNumber>;
430
+ endLine: z.ZodOptional<z.ZodNumber>;
431
+ endColumn: z.ZodOptional<z.ZodNumber>;
432
+ }, z.core.$strip>;
433
+ taintedSource: z.ZodOptional<z.ZodObject<{
434
+ file: z.ZodString;
435
+ line: z.ZodNumber;
436
+ column: z.ZodOptional<z.ZodNumber>;
437
+ endLine: z.ZodOptional<z.ZodNumber>;
438
+ endColumn: z.ZodOptional<z.ZodNumber>;
439
+ }, z.core.$strip>>;
440
+ affectedVariable: z.ZodString;
441
+ requiredMitigations: z.ZodArray<z.ZodEnum<{
442
+ injection: "injection";
443
+ null_deref: "null_deref";
444
+ auth_bypass: "auth_bypass";
445
+ xss: "xss";
446
+ path_traversal: "path_traversal";
447
+ prototype_pollution: "prototype_pollution";
448
+ ssrf: "ssrf";
449
+ }>>;
450
+ description: z.ZodString;
451
+ }, z.core.$strip>;
452
+ export type PotentialVulnerability = z.infer<typeof PotentialVulnerabilitySchema>;
453
+ export declare const FindingMetadataSchema: z.ZodObject<{
454
+ mitigationStatus: z.ZodEnum<{
455
+ none: "none";
456
+ partial: "partial";
457
+ full: "full";
458
+ }>;
459
+ originalSeverity: z.ZodOptional<z.ZodEnum<{
460
+ error: "error";
461
+ warning: "warning";
462
+ info: "info";
463
+ }>>;
464
+ pathsCovered: z.ZodNumber;
465
+ pathsTotal: z.ZodNumber;
466
+ unprotectedPaths: z.ZodArray<z.ZodString>;
467
+ mitigationsDetected: z.ZodArray<z.ZodString>;
468
+ analysisDepth: z.ZodNumber;
469
+ degraded: z.ZodBoolean;
470
+ degradedReason: z.ZodOptional<z.ZodString>;
471
+ crossFileMitigations: z.ZodOptional<z.ZodArray<z.ZodObject<{
472
+ patternId: z.ZodString;
473
+ file: z.ZodString;
474
+ line: z.ZodNumber;
475
+ depth: z.ZodNumber;
476
+ functionName: z.ZodOptional<z.ZodString>;
477
+ }, z.core.$strip>>>;
478
+ patternTimeouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
479
+ patternId: z.ZodString;
480
+ elapsedMs: z.ZodNumber;
481
+ }, z.core.$strip>>>;
482
+ }, z.core.$strip>;
483
+ export type FindingMetadata = z.infer<typeof FindingMetadataSchema>;
484
+ export declare const ControlFlowFindingSchema: z.ZodObject<{
485
+ severity: z.ZodEnum<{
486
+ error: "error";
487
+ warning: "warning";
488
+ info: "info";
489
+ }>;
490
+ file: z.ZodString;
491
+ line: z.ZodNumber;
492
+ endLine: z.ZodOptional<z.ZodNumber>;
493
+ message: z.ZodString;
494
+ suggestion: z.ZodOptional<z.ZodString>;
495
+ ruleId: z.ZodString;
496
+ sourceAgent: z.ZodLiteral<"control_flow">;
497
+ fingerprint: z.ZodString;
498
+ metadata: z.ZodObject<{
499
+ mitigationStatus: z.ZodEnum<{
500
+ none: "none";
501
+ partial: "partial";
502
+ full: "full";
503
+ }>;
504
+ originalSeverity: z.ZodOptional<z.ZodEnum<{
505
+ error: "error";
506
+ warning: "warning";
507
+ info: "info";
508
+ }>>;
509
+ pathsCovered: z.ZodNumber;
510
+ pathsTotal: z.ZodNumber;
511
+ unprotectedPaths: z.ZodArray<z.ZodString>;
512
+ mitigationsDetected: z.ZodArray<z.ZodString>;
513
+ analysisDepth: z.ZodNumber;
514
+ degraded: z.ZodBoolean;
515
+ degradedReason: z.ZodOptional<z.ZodString>;
516
+ crossFileMitigations: z.ZodOptional<z.ZodArray<z.ZodObject<{
517
+ patternId: z.ZodString;
518
+ file: z.ZodString;
519
+ line: z.ZodNumber;
520
+ depth: z.ZodNumber;
521
+ functionName: z.ZodOptional<z.ZodString>;
522
+ }, z.core.$strip>>>;
523
+ patternTimeouts: z.ZodOptional<z.ZodArray<z.ZodObject<{
524
+ patternId: z.ZodString;
525
+ elapsedMs: z.ZodNumber;
526
+ }, z.core.$strip>>>;
527
+ }, z.core.$strip>;
528
+ }, z.core.$strip>;
529
+ export type ControlFlowFinding = z.infer<typeof ControlFlowFindingSchema>;
530
+ export declare const AnalysisBudgetConfigSchema: z.ZodObject<{
531
+ maxDurationMs: z.ZodDefault<z.ZodNumber>;
532
+ maxLinesChanged: z.ZodDefault<z.ZodNumber>;
533
+ maxCallDepth: z.ZodDefault<z.ZodNumber>;
534
+ maxNodesVisited: z.ZodDefault<z.ZodNumber>;
535
+ }, z.core.$strip>;
536
+ export type AnalysisBudgetConfig = z.infer<typeof AnalysisBudgetConfigSchema>;
537
+ /**
538
+ * Risk level for ReDoS vulnerability assessment.
539
+ */
540
+ export declare const ReDoSRiskLevelSchema: z.ZodEnum<{
541
+ none: "none";
542
+ high: "high";
543
+ medium: "medium";
544
+ low: "low";
545
+ }>;
546
+ export type ReDoSRiskLevel = z.infer<typeof ReDoSRiskLevelSchema>;
547
+ /**
548
+ * Result of checking a pattern for ReDoS vulnerability patterns.
549
+ * Internal result from static pattern analysis.
550
+ */
551
+ export declare const ReDoSDetectionResultSchema: z.ZodObject<{
552
+ hasNestedQuantifiers: z.ZodBoolean;
553
+ hasOverlappingAlternation: z.ZodBoolean;
554
+ hasQuantifiedOverlap: z.ZodBoolean;
555
+ starHeight: z.ZodNumber;
556
+ vulnerabilityScore: z.ZodNumber;
557
+ detectedPatterns: z.ZodArray<z.ZodString>;
558
+ }, z.core.$strip>;
559
+ export type ReDoSDetectionResult = z.infer<typeof ReDoSDetectionResultSchema>;
560
+ /**
561
+ * Result of validating a regex pattern for ReDoS vulnerabilities.
562
+ * Captures validation status and details for audit logging and error reporting.
563
+ */
564
+ export declare const PatternValidationResultSchema: z.ZodObject<{
565
+ pattern: z.ZodString;
566
+ patternId: z.ZodString;
567
+ isValid: z.ZodBoolean;
568
+ rejectionReasons: z.ZodDefault<z.ZodArray<z.ZodString>>;
569
+ redosRisk: z.ZodEnum<{
570
+ none: "none";
571
+ high: "high";
572
+ medium: "medium";
573
+ low: "low";
574
+ }>;
575
+ validationTimeMs: z.ZodNumber;
576
+ whitelisted: z.ZodOptional<z.ZodBoolean>;
577
+ }, z.core.$strip>;
578
+ export type PatternValidationResult = z.infer<typeof PatternValidationResultSchema>;
579
+ /**
580
+ * Error type categories for validation errors.
581
+ */
582
+ export declare const ValidationErrorTypeSchema: z.ZodEnum<{
583
+ compilation: "compilation";
584
+ validation: "validation";
585
+ timeout: "timeout";
586
+ resource: "resource";
587
+ }>;
588
+ export type ValidationErrorType = z.infer<typeof ValidationErrorTypeSchema>;
589
+ /**
590
+ * Represents an error encountered during pattern validation or execution.
591
+ * Structured error information for logging and recovery decisions.
592
+ */
593
+ export declare const ValidationErrorSchema: z.ZodObject<{
594
+ errorType: z.ZodEnum<{
595
+ compilation: "compilation";
596
+ validation: "validation";
597
+ timeout: "timeout";
598
+ resource: "resource";
599
+ }>;
600
+ patternId: z.ZodString;
601
+ message: z.ZodString;
602
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
603
+ recoverable: z.ZodBoolean;
604
+ timestamp: z.ZodNumber;
605
+ }, z.core.$strip>;
606
+ export type ValidationError = z.infer<typeof ValidationErrorSchema>;
607
+ export declare const PatternOverrideSchema: z.ZodObject<{
608
+ patternId: z.ZodString;
609
+ confidence: z.ZodOptional<z.ZodEnum<{
610
+ high: "high";
611
+ medium: "medium";
612
+ low: "low";
613
+ }>>;
614
+ deprecated: z.ZodOptional<z.ZodBoolean>;
615
+ deprecationReason: z.ZodOptional<z.ZodString>;
616
+ }, z.core.$strip>;
617
+ export type PatternOverride = z.infer<typeof PatternOverrideSchema>;
618
+ export declare const ControlFlowConfigSchema: z.ZodObject<{
619
+ enabled: z.ZodDefault<z.ZodBoolean>;
620
+ maxCallDepth: z.ZodDefault<z.ZodNumber>;
621
+ timeBudgetMs: z.ZodDefault<z.ZodNumber>;
622
+ sizeBudgetLines: z.ZodDefault<z.ZodNumber>;
623
+ mitigationPatterns: z.ZodDefault<z.ZodArray<z.ZodObject<{
624
+ id: z.ZodString;
625
+ name: z.ZodString;
626
+ description: z.ZodString;
627
+ mitigates: z.ZodArray<z.ZodEnum<{
628
+ injection: "injection";
629
+ null_deref: "null_deref";
630
+ auth_bypass: "auth_bypass";
631
+ xss: "xss";
632
+ path_traversal: "path_traversal";
633
+ prototype_pollution: "prototype_pollution";
634
+ ssrf: "ssrf";
635
+ }>>;
636
+ match: z.ZodObject<{
637
+ type: z.ZodEnum<{
638
+ function_call: "function_call";
639
+ method_call: "method_call";
640
+ type_guard: "type_guard";
641
+ assignment: "assignment";
642
+ typeof_check: "typeof_check";
643
+ instanceof_check: "instanceof_check";
644
+ }>;
645
+ name: z.ZodOptional<z.ZodString>;
646
+ namePattern: z.ZodOptional<z.ZodString>;
647
+ module: z.ZodOptional<z.ZodString>;
648
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
649
+ index: z.ZodNumber;
650
+ constraint: z.ZodEnum<{
651
+ string: "string";
652
+ any: "any";
653
+ tainted_source: "tainted_source";
654
+ }>;
655
+ }, z.core.$strip>>>;
656
+ returnConstraint: z.ZodOptional<z.ZodEnum<{
657
+ truthy: "truthy";
658
+ defined: "defined";
659
+ sanitized: "sanitized";
660
+ }>>;
661
+ }, z.core.$strip>;
662
+ confidence: z.ZodEnum<{
663
+ high: "high";
664
+ medium: "medium";
665
+ low: "low";
666
+ }>;
667
+ isBuiltIn: z.ZodOptional<z.ZodBoolean>;
668
+ deprecated: z.ZodOptional<z.ZodBoolean>;
669
+ deprecationReason: z.ZodOptional<z.ZodString>;
670
+ }, z.core.$strip>>>;
671
+ patternOverrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
672
+ patternId: z.ZodString;
673
+ confidence: z.ZodOptional<z.ZodEnum<{
674
+ high: "high";
675
+ medium: "medium";
676
+ low: "low";
677
+ }>>;
678
+ deprecated: z.ZodOptional<z.ZodBoolean>;
679
+ deprecationReason: z.ZodOptional<z.ZodString>;
680
+ }, z.core.$strip>>>;
681
+ disabledPatterns: z.ZodDefault<z.ZodArray<z.ZodString>>;
682
+ patternTimeoutMs: z.ZodDefault<z.ZodNumber>;
683
+ whitelistedPatterns: z.ZodDefault<z.ZodArray<z.ZodString>>;
684
+ validationTimeoutMs: z.ZodDefault<z.ZodNumber>;
685
+ rejectionThreshold: z.ZodDefault<z.ZodEnum<{
686
+ none: "none";
687
+ high: "high";
688
+ medium: "medium";
689
+ low: "low";
690
+ }>>;
691
+ }, z.core.$strip>;
692
+ export type ControlFlowConfig = z.infer<typeof ControlFlowConfigSchema>;
693
+ export interface AnalysisLogEntry {
694
+ timestamp: number;
695
+ level: 'debug' | 'info' | 'warn' | 'error';
696
+ message: string;
697
+ context?: Record<string, unknown>;
698
+ }
699
+ /**
700
+ * Result classification when node limit is exceeded.
701
+ * Uses 'unknown' to indicate incomplete analysis - NOT a safety assertion.
702
+ */
703
+ export declare const NodeLimitClassificationSchema: z.ZodEnum<{
704
+ unknown: "unknown";
705
+ }>;
706
+ export type NodeLimitClassification = z.infer<typeof NodeLimitClassificationSchema>;
707
+ /**
708
+ * Reason codes for traversal termination.
709
+ */
710
+ export declare const TraversalTerminationReasonSchema: z.ZodEnum<{
711
+ node_limit_exceeded: "node_limit_exceeded";
712
+ completed: "completed";
713
+ }>;
714
+ export type TraversalTerminationReason = z.infer<typeof TraversalTerminationReasonSchema>;
715
+ /**
716
+ * State maintained during a single CFG traversal.
717
+ *
718
+ * IMPORTANT: This state is per-traversal, not shared across traversals.
719
+ * Each new traversal should create a fresh TraversalState instance.
720
+ *
721
+ * Canonical field names for logging:
722
+ * - nodesVisited: Current count of nodes visited
723
+ * - maxNodesVisited: Configured limit from budget
724
+ * - classification: Result classification if limit reached ('unknown')
725
+ * - reason: Why traversal terminated ('node_limit_exceeded' or 'completed')
726
+ */
727
+ export interface TraversalState {
728
+ /** Current count of nodes visited in this traversal */
729
+ nodesVisited: number;
730
+ /** Maximum nodes allowed (from budget config) */
731
+ maxNodesVisited: number;
732
+ /** Whether the node limit was reached */
733
+ limitReached: boolean;
734
+ /** Classification assigned when limit is reached */
735
+ classification?: NodeLimitClassification;
736
+ /** Reason for traversal termination */
737
+ reason?: TraversalTerminationReason;
738
+ }
739
+ /**
740
+ * Result of visiting a node during traversal.
741
+ */
742
+ export interface NodeVisitResult {
743
+ /** Whether the node limit was reached on this visit */
744
+ limitReached: boolean;
745
+ /** Classification if limit was reached ('unknown' = analysis incomplete) */
746
+ classification?: NodeLimitClassification;
747
+ /** Reason for the result */
748
+ reason?: TraversalTerminationReason;
749
+ }
750
+ /**
751
+ * Create a fresh traversal state for a new traversal.
752
+ *
753
+ * @param maxNodesVisited - Maximum nodes to visit (from budget config)
754
+ * @returns Fresh traversal state with counters reset
755
+ */
756
+ export declare function createTraversalState(maxNodesVisited: number): TraversalState;
757
+ /**
758
+ * Validate a custom mitigation pattern configuration.
759
+ * Ensures patterns are declarative and side-effect-free (FR-015).
760
+ *
761
+ * Note: This validates syntax only. For ReDoS protection, use
762
+ * `validateMitigationPatternWithReDoSCheck` from pattern-validator.ts
763
+ * or ensure patterns are used through `createValidatedTimeoutRegex`.
764
+ */
765
+ export declare function validateMitigationPattern(pattern: unknown): {
766
+ success: true;
767
+ data: MitigationPattern;
768
+ } | {
769
+ success: false;
770
+ error: z.ZodError;
771
+ };
772
+ /**
773
+ * Validate control flow configuration.
774
+ */
775
+ export declare function validateControlFlowConfig(config: unknown): {
776
+ success: true;
777
+ data: ControlFlowConfig;
778
+ } | {
779
+ success: false;
780
+ error: z.ZodError;
781
+ };
782
+ //# sourceMappingURL=types.d.ts.map