@opencodereview/core 1.9.1

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 (453) hide show
  1. package/dist/ai/anthropic-provider.d.ts +41 -0
  2. package/dist/ai/anthropic-provider.d.ts.map +1 -0
  3. package/dist/ai/anthropic-provider.js +139 -0
  4. package/dist/ai/anthropic-provider.js.map +1 -0
  5. package/dist/ai/index.d.ts +39 -0
  6. package/dist/ai/index.d.ts.map +1 -0
  7. package/dist/ai/index.js +41 -0
  8. package/dist/ai/index.js.map +1 -0
  9. package/dist/ai/ollama-provider.d.ts +46 -0
  10. package/dist/ai/ollama-provider.d.ts.map +1 -0
  11. package/dist/ai/ollama-provider.js +149 -0
  12. package/dist/ai/ollama-provider.js.map +1 -0
  13. package/dist/ai/openai-provider.d.ts +44 -0
  14. package/dist/ai/openai-provider.d.ts.map +1 -0
  15. package/dist/ai/openai-provider.js +137 -0
  16. package/dist/ai/openai-provider.js.map +1 -0
  17. package/dist/ai/orchestrator.d.ts +60 -0
  18. package/dist/ai/orchestrator.d.ts.map +1 -0
  19. package/dist/ai/orchestrator.js +188 -0
  20. package/dist/ai/orchestrator.js.map +1 -0
  21. package/dist/ai/prompts.d.ts +27 -0
  22. package/dist/ai/prompts.d.ts.map +1 -0
  23. package/dist/ai/prompts.js +112 -0
  24. package/dist/ai/prompts.js.map +1 -0
  25. package/dist/ai/types.d.ts +75 -0
  26. package/dist/ai/types.d.ts.map +1 -0
  27. package/dist/ai/types.js +10 -0
  28. package/dist/ai/types.js.map +1 -0
  29. package/dist/ai/v4/embedding/index.d.ts +10 -0
  30. package/dist/ai/v4/embedding/index.d.ts.map +1 -0
  31. package/dist/ai/v4/embedding/index.js +10 -0
  32. package/dist/ai/v4/embedding/index.js.map +1 -0
  33. package/dist/ai/v4/embedding/local.d.ts +68 -0
  34. package/dist/ai/v4/embedding/local.d.ts.map +1 -0
  35. package/dist/ai/v4/embedding/local.js +167 -0
  36. package/dist/ai/v4/embedding/local.js.map +1 -0
  37. package/dist/ai/v4/embedding/ollama.d.ts +58 -0
  38. package/dist/ai/v4/embedding/ollama.d.ts.map +1 -0
  39. package/dist/ai/v4/embedding/ollama.js +101 -0
  40. package/dist/ai/v4/embedding/ollama.js.map +1 -0
  41. package/dist/ai/v4/embedding/openai.d.ts +36 -0
  42. package/dist/ai/v4/embedding/openai.d.ts.map +1 -0
  43. package/dist/ai/v4/embedding/openai.js +76 -0
  44. package/dist/ai/v4/embedding/openai.js.map +1 -0
  45. package/dist/ai/v4/embedding/similarity.d.ts +36 -0
  46. package/dist/ai/v4/embedding/similarity.d.ts.map +1 -0
  47. package/dist/ai/v4/embedding/similarity.js +60 -0
  48. package/dist/ai/v4/embedding/similarity.js.map +1 -0
  49. package/dist/ai/v4/index.d.ts +51 -0
  50. package/dist/ai/v4/index.d.ts.map +1 -0
  51. package/dist/ai/v4/index.js +54 -0
  52. package/dist/ai/v4/index.js.map +1 -0
  53. package/dist/ai/v4/llm/anthropic.d.ts +38 -0
  54. package/dist/ai/v4/llm/anthropic.d.ts.map +1 -0
  55. package/dist/ai/v4/llm/anthropic.js +86 -0
  56. package/dist/ai/v4/llm/anthropic.js.map +1 -0
  57. package/dist/ai/v4/llm/index.d.ts +9 -0
  58. package/dist/ai/v4/llm/index.d.ts.map +1 -0
  59. package/dist/ai/v4/llm/index.js +9 -0
  60. package/dist/ai/v4/llm/index.js.map +1 -0
  61. package/dist/ai/v4/llm/ollama.d.ts +39 -0
  62. package/dist/ai/v4/llm/ollama.d.ts.map +1 -0
  63. package/dist/ai/v4/llm/ollama.js +95 -0
  64. package/dist/ai/v4/llm/ollama.js.map +1 -0
  65. package/dist/ai/v4/llm/openai.d.ts +38 -0
  66. package/dist/ai/v4/llm/openai.d.ts.map +1 -0
  67. package/dist/ai/v4/llm/openai.js +88 -0
  68. package/dist/ai/v4/llm/openai.js.map +1 -0
  69. package/dist/ai/v4/patterns/defect-patterns.d.ts +57 -0
  70. package/dist/ai/v4/patterns/defect-patterns.d.ts.map +1 -0
  71. package/dist/ai/v4/patterns/defect-patterns.js +331 -0
  72. package/dist/ai/v4/patterns/defect-patterns.js.map +1 -0
  73. package/dist/ai/v4/patterns/index.d.ts +8 -0
  74. package/dist/ai/v4/patterns/index.d.ts.map +1 -0
  75. package/dist/ai/v4/patterns/index.js +7 -0
  76. package/dist/ai/v4/patterns/index.js.map +1 -0
  77. package/dist/ai/v4/pipeline.d.ts +74 -0
  78. package/dist/ai/v4/pipeline.d.ts.map +1 -0
  79. package/dist/ai/v4/pipeline.js +381 -0
  80. package/dist/ai/v4/pipeline.js.map +1 -0
  81. package/dist/ai/v4/sla.d.ts +62 -0
  82. package/dist/ai/v4/sla.d.ts.map +1 -0
  83. package/dist/ai/v4/sla.js +136 -0
  84. package/dist/ai/v4/sla.js.map +1 -0
  85. package/dist/ai/v4/types.d.ts +117 -0
  86. package/dist/ai/v4/types.d.ts.map +1 -0
  87. package/dist/ai/v4/types.js +16 -0
  88. package/dist/ai/v4/types.js.map +1 -0
  89. package/dist/ai-healer/prompt-builder.d.ts +33 -0
  90. package/dist/ai-healer/prompt-builder.d.ts.map +1 -0
  91. package/dist/ai-healer/prompt-builder.js +89 -0
  92. package/dist/ai-healer/prompt-builder.js.map +1 -0
  93. package/dist/config/defaults.d.ts +14 -0
  94. package/dist/config/defaults.d.ts.map +1 -0
  95. package/dist/config/defaults.js +57 -0
  96. package/dist/config/defaults.js.map +1 -0
  97. package/dist/config/index.d.ts +8 -0
  98. package/dist/config/index.d.ts.map +1 -0
  99. package/dist/config/index.js +6 -0
  100. package/dist/config/index.js.map +1 -0
  101. package/dist/config/loader.d.ts +33 -0
  102. package/dist/config/loader.d.ts.map +1 -0
  103. package/dist/config/loader.js +245 -0
  104. package/dist/config/loader.js.map +1 -0
  105. package/dist/config/types.d.ts +58 -0
  106. package/dist/config/types.d.ts.map +1 -0
  107. package/dist/config/types.js +7 -0
  108. package/dist/config/types.js.map +1 -0
  109. package/dist/config/v4-config.d.ts +77 -0
  110. package/dist/config/v4-config.d.ts.map +1 -0
  111. package/dist/config/v4-config.js +336 -0
  112. package/dist/config/v4-config.js.map +1 -0
  113. package/dist/detectors/ai-detector.d.ts +38 -0
  114. package/dist/detectors/ai-detector.d.ts.map +1 -0
  115. package/dist/detectors/ai-detector.js +62 -0
  116. package/dist/detectors/ai-detector.js.map +1 -0
  117. package/dist/detectors/context-break.d.ts +57 -0
  118. package/dist/detectors/context-break.d.ts.map +1 -0
  119. package/dist/detectors/context-break.js +199 -0
  120. package/dist/detectors/context-break.js.map +1 -0
  121. package/dist/detectors/deep-hallucination.d.ts +42 -0
  122. package/dist/detectors/deep-hallucination.d.ts.map +1 -0
  123. package/dist/detectors/deep-hallucination.js +297 -0
  124. package/dist/detectors/deep-hallucination.js.map +1 -0
  125. package/dist/detectors/duplication.d.ts +61 -0
  126. package/dist/detectors/duplication.d.ts.map +1 -0
  127. package/dist/detectors/duplication.js +204 -0
  128. package/dist/detectors/duplication.js.map +1 -0
  129. package/dist/detectors/hallucination.d.ts +80 -0
  130. package/dist/detectors/hallucination.d.ts.map +1 -0
  131. package/dist/detectors/hallucination.js +350 -0
  132. package/dist/detectors/hallucination.js.map +1 -0
  133. package/dist/detectors/index.d.ts +35 -0
  134. package/dist/detectors/index.d.ts.map +1 -0
  135. package/dist/detectors/index.js +33 -0
  136. package/dist/detectors/index.js.map +1 -0
  137. package/dist/detectors/logic-gap.d.ts +58 -0
  138. package/dist/detectors/logic-gap.d.ts.map +1 -0
  139. package/dist/detectors/logic-gap.js +284 -0
  140. package/dist/detectors/logic-gap.js.map +1 -0
  141. package/dist/detectors/over-engineering.d.ts +44 -0
  142. package/dist/detectors/over-engineering.d.ts.map +1 -0
  143. package/dist/detectors/over-engineering.js +257 -0
  144. package/dist/detectors/over-engineering.js.map +1 -0
  145. package/dist/detectors/security-pattern.d.ts +43 -0
  146. package/dist/detectors/security-pattern.d.ts.map +1 -0
  147. package/dist/detectors/security-pattern.js +235 -0
  148. package/dist/detectors/security-pattern.js.map +1 -0
  149. package/dist/detectors/stale-api.d.ts +44 -0
  150. package/dist/detectors/stale-api.d.ts.map +1 -0
  151. package/dist/detectors/stale-api.js +160 -0
  152. package/dist/detectors/stale-api.js.map +1 -0
  153. package/dist/detectors/type-safety.d.ts +41 -0
  154. package/dist/detectors/type-safety.d.ts.map +1 -0
  155. package/dist/detectors/type-safety.js +306 -0
  156. package/dist/detectors/type-safety.js.map +1 -0
  157. package/dist/detectors/v4/context-coherence.d.ts +67 -0
  158. package/dist/detectors/v4/context-coherence.d.ts.map +1 -0
  159. package/dist/detectors/v4/context-coherence.js +319 -0
  160. package/dist/detectors/v4/context-coherence.js.map +1 -0
  161. package/dist/detectors/v4/hallucinated-import.d.ts +52 -0
  162. package/dist/detectors/v4/hallucinated-import.d.ts.map +1 -0
  163. package/dist/detectors/v4/hallucinated-import.js +206 -0
  164. package/dist/detectors/v4/hallucinated-import.js.map +1 -0
  165. package/dist/detectors/v4/index.d.ts +28 -0
  166. package/dist/detectors/v4/index.d.ts.map +1 -0
  167. package/dist/detectors/v4/index.js +40 -0
  168. package/dist/detectors/v4/index.js.map +1 -0
  169. package/dist/detectors/v4/over-engineering.d.ts +69 -0
  170. package/dist/detectors/v4/over-engineering.d.ts.map +1 -0
  171. package/dist/detectors/v4/over-engineering.js +234 -0
  172. package/dist/detectors/v4/over-engineering.js.map +1 -0
  173. package/dist/detectors/v4/security-pattern.d.ts +46 -0
  174. package/dist/detectors/v4/security-pattern.d.ts.map +1 -0
  175. package/dist/detectors/v4/security-pattern.js +233 -0
  176. package/dist/detectors/v4/security-pattern.js.map +1 -0
  177. package/dist/detectors/v4/stale-api.d.ts +59 -0
  178. package/dist/detectors/v4/stale-api.d.ts.map +1 -0
  179. package/dist/detectors/v4/stale-api.js +470 -0
  180. package/dist/detectors/v4/stale-api.js.map +1 -0
  181. package/dist/detectors/v4/types.d.ts +74 -0
  182. package/dist/detectors/v4/types.d.ts.map +1 -0
  183. package/dist/detectors/v4/types.js +10 -0
  184. package/dist/detectors/v4/types.js.map +1 -0
  185. package/dist/diff/filter.d.ts +35 -0
  186. package/dist/diff/filter.d.ts.map +1 -0
  187. package/dist/diff/filter.js +65 -0
  188. package/dist/diff/filter.js.map +1 -0
  189. package/dist/diff/index.d.ts +9 -0
  190. package/dist/diff/index.d.ts.map +1 -0
  191. package/dist/diff/index.js +8 -0
  192. package/dist/diff/index.js.map +1 -0
  193. package/dist/diff/parser.d.ts +61 -0
  194. package/dist/diff/parser.d.ts.map +1 -0
  195. package/dist/diff/parser.js +203 -0
  196. package/dist/diff/parser.js.map +1 -0
  197. package/dist/i18n/en.d.ts +18 -0
  198. package/dist/i18n/en.d.ts.map +1 -0
  199. package/dist/i18n/en.js +83 -0
  200. package/dist/i18n/en.js.map +1 -0
  201. package/dist/i18n/index.d.ts +13 -0
  202. package/dist/i18n/index.d.ts.map +1 -0
  203. package/dist/i18n/index.js +14 -0
  204. package/dist/i18n/index.js.map +1 -0
  205. package/dist/i18n/provider.d.ts +54 -0
  206. package/dist/i18n/provider.d.ts.map +1 -0
  207. package/dist/i18n/provider.js +88 -0
  208. package/dist/i18n/provider.js.map +1 -0
  209. package/dist/i18n/types.d.ts +37 -0
  210. package/dist/i18n/types.d.ts.map +1 -0
  211. package/dist/i18n/types.js +10 -0
  212. package/dist/i18n/types.js.map +1 -0
  213. package/dist/i18n/zh.d.ts +14 -0
  214. package/dist/i18n/zh.d.ts.map +1 -0
  215. package/dist/i18n/zh.js +83 -0
  216. package/dist/i18n/zh.js.map +1 -0
  217. package/dist/index.d.ts +113 -0
  218. package/dist/index.d.ts.map +1 -0
  219. package/dist/index.js +106 -0
  220. package/dist/index.js.map +1 -0
  221. package/dist/ir/index.d.ts +10 -0
  222. package/dist/ir/index.d.ts.map +1 -0
  223. package/dist/ir/index.js +9 -0
  224. package/dist/ir/index.js.map +1 -0
  225. package/dist/ir/types.d.ts +126 -0
  226. package/dist/ir/types.d.ts.map +1 -0
  227. package/dist/ir/types.js +33 -0
  228. package/dist/ir/types.js.map +1 -0
  229. package/dist/languages/go/index.d.ts +7 -0
  230. package/dist/languages/go/index.d.ts.map +1 -0
  231. package/dist/languages/go/index.js +7 -0
  232. package/dist/languages/go/index.js.map +1 -0
  233. package/dist/languages/go/parser.d.ts +89 -0
  234. package/dist/languages/go/parser.d.ts.map +1 -0
  235. package/dist/languages/go/parser.js +509 -0
  236. package/dist/languages/go/parser.js.map +1 -0
  237. package/dist/languages/index.d.ts +13 -0
  238. package/dist/languages/index.d.ts.map +1 -0
  239. package/dist/languages/index.js +14 -0
  240. package/dist/languages/index.js.map +1 -0
  241. package/dist/languages/java/index.d.ts +7 -0
  242. package/dist/languages/java/index.d.ts.map +1 -0
  243. package/dist/languages/java/index.js +7 -0
  244. package/dist/languages/java/index.js.map +1 -0
  245. package/dist/languages/java/parser.d.ts +82 -0
  246. package/dist/languages/java/parser.d.ts.map +1 -0
  247. package/dist/languages/java/parser.js +492 -0
  248. package/dist/languages/java/parser.js.map +1 -0
  249. package/dist/languages/kotlin/index.d.ts +7 -0
  250. package/dist/languages/kotlin/index.d.ts.map +1 -0
  251. package/dist/languages/kotlin/index.js +7 -0
  252. package/dist/languages/kotlin/index.js.map +1 -0
  253. package/dist/languages/kotlin/parser.d.ts +84 -0
  254. package/dist/languages/kotlin/parser.d.ts.map +1 -0
  255. package/dist/languages/kotlin/parser.js +507 -0
  256. package/dist/languages/kotlin/parser.js.map +1 -0
  257. package/dist/languages/python/index.d.ts +7 -0
  258. package/dist/languages/python/index.d.ts.map +1 -0
  259. package/dist/languages/python/index.js +7 -0
  260. package/dist/languages/python/index.js.map +1 -0
  261. package/dist/languages/python/parser.d.ts +91 -0
  262. package/dist/languages/python/parser.d.ts.map +1 -0
  263. package/dist/languages/python/parser.js +375 -0
  264. package/dist/languages/python/parser.js.map +1 -0
  265. package/dist/languages/registry.d.ts +81 -0
  266. package/dist/languages/registry.d.ts.map +1 -0
  267. package/dist/languages/registry.js +150 -0
  268. package/dist/languages/registry.js.map +1 -0
  269. package/dist/languages/types.d.ts +137 -0
  270. package/dist/languages/types.d.ts.map +1 -0
  271. package/dist/languages/types.js +10 -0
  272. package/dist/languages/types.js.map +1 -0
  273. package/dist/languages/typescript/index.d.ts +7 -0
  274. package/dist/languages/typescript/index.d.ts.map +1 -0
  275. package/dist/languages/typescript/index.js +7 -0
  276. package/dist/languages/typescript/index.js.map +1 -0
  277. package/dist/languages/typescript/parser.d.ts +51 -0
  278. package/dist/languages/typescript/parser.d.ts.map +1 -0
  279. package/dist/languages/typescript/parser.js +286 -0
  280. package/dist/languages/typescript/parser.js.map +1 -0
  281. package/dist/license/generator.d.ts +43 -0
  282. package/dist/license/generator.d.ts.map +1 -0
  283. package/dist/license/generator.js +72 -0
  284. package/dist/license/generator.js.map +1 -0
  285. package/dist/license/index.d.ts +11 -0
  286. package/dist/license/index.d.ts.map +1 -0
  287. package/dist/license/index.js +12 -0
  288. package/dist/license/index.js.map +1 -0
  289. package/dist/license/types.d.ts +85 -0
  290. package/dist/license/types.d.ts.map +1 -0
  291. package/dist/license/types.js +10 -0
  292. package/dist/license/types.js.map +1 -0
  293. package/dist/license/validator.d.ts +77 -0
  294. package/dist/license/validator.d.ts.map +1 -0
  295. package/dist/license/validator.js +275 -0
  296. package/dist/license/validator.js.map +1 -0
  297. package/dist/parser/extractor.d.ts +31 -0
  298. package/dist/parser/extractor.d.ts.map +1 -0
  299. package/dist/parser/extractor.js +10 -0
  300. package/dist/parser/extractor.js.map +1 -0
  301. package/dist/parser/extractors/go.d.ts +21 -0
  302. package/dist/parser/extractors/go.d.ts.map +1 -0
  303. package/dist/parser/extractors/go.js +569 -0
  304. package/dist/parser/extractors/go.js.map +1 -0
  305. package/dist/parser/extractors/index.d.ts +13 -0
  306. package/dist/parser/extractors/index.d.ts.map +1 -0
  307. package/dist/parser/extractors/index.js +13 -0
  308. package/dist/parser/extractors/index.js.map +1 -0
  309. package/dist/parser/extractors/java.d.ts +24 -0
  310. package/dist/parser/extractors/java.d.ts.map +1 -0
  311. package/dist/parser/extractors/java.js +611 -0
  312. package/dist/parser/extractors/java.js.map +1 -0
  313. package/dist/parser/extractors/kotlin.d.ts +25 -0
  314. package/dist/parser/extractors/kotlin.d.ts.map +1 -0
  315. package/dist/parser/extractors/kotlin.js +665 -0
  316. package/dist/parser/extractors/kotlin.js.map +1 -0
  317. package/dist/parser/extractors/python.d.ts +21 -0
  318. package/dist/parser/extractors/python.d.ts.map +1 -0
  319. package/dist/parser/extractors/python.js +514 -0
  320. package/dist/parser/extractors/python.js.map +1 -0
  321. package/dist/parser/extractors/typescript.d.ts +23 -0
  322. package/dist/parser/extractors/typescript.d.ts.map +1 -0
  323. package/dist/parser/extractors/typescript.js +664 -0
  324. package/dist/parser/extractors/typescript.js.map +1 -0
  325. package/dist/parser/index.d.ts +15 -0
  326. package/dist/parser/index.d.ts.map +1 -0
  327. package/dist/parser/index.js +14 -0
  328. package/dist/parser/index.js.map +1 -0
  329. package/dist/parser/manager.d.ts +50 -0
  330. package/dist/parser/manager.d.ts.map +1 -0
  331. package/dist/parser/manager.js +159 -0
  332. package/dist/parser/manager.js.map +1 -0
  333. package/dist/registry/builtins/go-builtins.d.ts +13 -0
  334. package/dist/registry/builtins/go-builtins.d.ts.map +1 -0
  335. package/dist/registry/builtins/go-builtins.js +63 -0
  336. package/dist/registry/builtins/go-builtins.js.map +1 -0
  337. package/dist/registry/builtins/java-builtins.d.ts +10 -0
  338. package/dist/registry/builtins/java-builtins.d.ts.map +1 -0
  339. package/dist/registry/builtins/java-builtins.js +59 -0
  340. package/dist/registry/builtins/java-builtins.js.map +1 -0
  341. package/dist/registry/builtins/kotlin-builtins.d.ts +10 -0
  342. package/dist/registry/builtins/kotlin-builtins.d.ts.map +1 -0
  343. package/dist/registry/builtins/kotlin-builtins.js +38 -0
  344. package/dist/registry/builtins/kotlin-builtins.js.map +1 -0
  345. package/dist/registry/builtins/node-builtins.d.ts +10 -0
  346. package/dist/registry/builtins/node-builtins.d.ts.map +1 -0
  347. package/dist/registry/builtins/node-builtins.js +36 -0
  348. package/dist/registry/builtins/node-builtins.js.map +1 -0
  349. package/dist/registry/builtins/python-builtins.d.ts +10 -0
  350. package/dist/registry/builtins/python-builtins.d.ts.map +1 -0
  351. package/dist/registry/builtins/python-builtins.js +43 -0
  352. package/dist/registry/builtins/python-builtins.js.map +1 -0
  353. package/dist/registry/cache.d.ts +53 -0
  354. package/dist/registry/cache.d.ts.map +1 -0
  355. package/dist/registry/cache.js +147 -0
  356. package/dist/registry/cache.js.map +1 -0
  357. package/dist/registry/go-registry.d.ts +52 -0
  358. package/dist/registry/go-registry.d.ts.map +1 -0
  359. package/dist/registry/go-registry.js +148 -0
  360. package/dist/registry/go-registry.js.map +1 -0
  361. package/dist/registry/index.d.ts +18 -0
  362. package/dist/registry/index.d.ts.map +1 -0
  363. package/dist/registry/index.js +21 -0
  364. package/dist/registry/index.js.map +1 -0
  365. package/dist/registry/maven-registry.d.ts +57 -0
  366. package/dist/registry/maven-registry.d.ts.map +1 -0
  367. package/dist/registry/maven-registry.js +155 -0
  368. package/dist/registry/maven-registry.js.map +1 -0
  369. package/dist/registry/npm-registry.d.ts +40 -0
  370. package/dist/registry/npm-registry.d.ts.map +1 -0
  371. package/dist/registry/npm-registry.js +155 -0
  372. package/dist/registry/npm-registry.js.map +1 -0
  373. package/dist/registry/pypi-registry.d.ts +49 -0
  374. package/dist/registry/pypi-registry.d.ts.map +1 -0
  375. package/dist/registry/pypi-registry.js +175 -0
  376. package/dist/registry/pypi-registry.js.map +1 -0
  377. package/dist/registry/registry-manager.d.ts +45 -0
  378. package/dist/registry/registry-manager.d.ts.map +1 -0
  379. package/dist/registry/registry-manager.js +107 -0
  380. package/dist/registry/registry-manager.js.map +1 -0
  381. package/dist/registry/types.d.ts +83 -0
  382. package/dist/registry/types.d.ts.map +1 -0
  383. package/dist/registry/types.js +12 -0
  384. package/dist/registry/types.js.map +1 -0
  385. package/dist/reporter/html-reporter.d.ts +20 -0
  386. package/dist/reporter/html-reporter.d.ts.map +1 -0
  387. package/dist/reporter/html-reporter.js +612 -0
  388. package/dist/reporter/html-reporter.js.map +1 -0
  389. package/dist/reporter/index.d.ts +28 -0
  390. package/dist/reporter/index.d.ts.map +1 -0
  391. package/dist/reporter/index.js +48 -0
  392. package/dist/reporter/index.js.map +1 -0
  393. package/dist/reporter/markdown-reporter.d.ts +16 -0
  394. package/dist/reporter/markdown-reporter.d.ts.map +1 -0
  395. package/dist/reporter/markdown-reporter.js +182 -0
  396. package/dist/reporter/markdown-reporter.js.map +1 -0
  397. package/dist/reporter/sarif-reporter.d.ts +67 -0
  398. package/dist/reporter/sarif-reporter.d.ts.map +1 -0
  399. package/dist/reporter/sarif-reporter.js +73 -0
  400. package/dist/reporter/sarif-reporter.js.map +1 -0
  401. package/dist/reporter/terminal-reporter.d.ts +14 -0
  402. package/dist/reporter/terminal-reporter.d.ts.map +1 -0
  403. package/dist/reporter/terminal-reporter.js +126 -0
  404. package/dist/reporter/terminal-reporter.js.map +1 -0
  405. package/dist/reporter/types.d.ts +43 -0
  406. package/dist/reporter/types.d.ts.map +1 -0
  407. package/dist/reporter/types.js +10 -0
  408. package/dist/reporter/types.js.map +1 -0
  409. package/dist/reporter/v4-html.d.ts +24 -0
  410. package/dist/reporter/v4-html.d.ts.map +1 -0
  411. package/dist/reporter/v4-html.js +359 -0
  412. package/dist/reporter/v4-html.js.map +1 -0
  413. package/dist/reporter/v4-terminal.d.ts +55 -0
  414. package/dist/reporter/v4-terminal.d.ts.map +1 -0
  415. package/dist/reporter/v4-terminal.js +199 -0
  416. package/dist/reporter/v4-terminal.js.map +1 -0
  417. package/dist/scanner/index.d.ts +9 -0
  418. package/dist/scanner/index.d.ts.map +1 -0
  419. package/dist/scanner/index.js +9 -0
  420. package/dist/scanner/index.js.map +1 -0
  421. package/dist/scanner/v4-scanner.d.ts +162 -0
  422. package/dist/scanner/v4-scanner.d.ts.map +1 -0
  423. package/dist/scanner/v4-scanner.js +327 -0
  424. package/dist/scanner/v4-scanner.js.map +1 -0
  425. package/dist/scorer/report.d.ts +52 -0
  426. package/dist/scorer/report.d.ts.map +1 -0
  427. package/dist/scorer/report.js +347 -0
  428. package/dist/scorer/report.js.map +1 -0
  429. package/dist/scorer/scoring-engine.d.ts +170 -0
  430. package/dist/scorer/scoring-engine.d.ts.map +1 -0
  431. package/dist/scorer/scoring-engine.js +308 -0
  432. package/dist/scorer/scoring-engine.js.map +1 -0
  433. package/dist/scorer/v4-adapter.d.ts +87 -0
  434. package/dist/scorer/v4-adapter.d.ts.map +1 -0
  435. package/dist/scorer/v4-adapter.js +145 -0
  436. package/dist/scorer/v4-adapter.js.map +1 -0
  437. package/dist/sla/index.d.ts +7 -0
  438. package/dist/sla/index.d.ts.map +1 -0
  439. package/dist/sla/index.js +6 -0
  440. package/dist/sla/index.js.map +1 -0
  441. package/dist/sla/tracker.d.ts +70 -0
  442. package/dist/sla/tracker.d.ts.map +1 -0
  443. package/dist/sla/tracker.js +151 -0
  444. package/dist/sla/tracker.js.map +1 -0
  445. package/dist/sla/types.d.ts +67 -0
  446. package/dist/sla/types.d.ts.map +1 -0
  447. package/dist/sla/types.js +42 -0
  448. package/dist/sla/types.js.map +1 -0
  449. package/dist/types.d.ts +172 -0
  450. package/dist/types.d.ts.map +1 -0
  451. package/dist/types.js +69 -0
  452. package/dist/types.js.map +1 -0
  453. package/package.json +97 -0
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Context Break Detector (V3)
3
+ *
4
+ * Detects architectural inconsistencies in AI-generated code:
5
+ * 1. Mixed coding styles (camelCase vs snake_case)
6
+ * 2. Inconsistent error handling patterns
7
+ * 3. Mixed module systems (import vs require in same file)
8
+ * 4. Inconsistent async patterns (callbacks vs promises vs async/await)
9
+ * 5. Style breaks that indicate context window switches
10
+ *
11
+ * Implements the unified Detector interface.
12
+ *
13
+ * @since 0.2.0 (original)
14
+ * @since 0.3.0 (V3 unified interface)
15
+ */
16
+ import type { Detector, UnifiedIssue, FileAnalysis } from '../types.js';
17
+ /**
18
+ * @deprecated Use UnifiedIssue instead. Will be removed in v0.4.0.
19
+ */
20
+ export interface ContextBreakIssue {
21
+ type: 'naming-inconsistency' | 'module-system-mix' | 'async-pattern-mix' | 'style-break' | 'error-handling-inconsistency';
22
+ severity: 'warning' | 'error';
23
+ file: string;
24
+ line: number;
25
+ message: string;
26
+ suggestion?: string;
27
+ }
28
+ /**
29
+ * @deprecated Use UnifiedIssue[] instead. Will be removed in v0.4.0.
30
+ */
31
+ export interface ContextBreakResult {
32
+ file: string;
33
+ issues: ContextBreakIssue[];
34
+ score: number;
35
+ }
36
+ /**
37
+ * ContextBreakDetector — detects AI context window inconsistencies.
38
+ *
39
+ * V3: Implements the unified Detector interface.
40
+ * V2 (deprecated): Old analyze() signature still works.
41
+ */
42
+ export declare class ContextBreakDetector implements Detector {
43
+ readonly name = "context-break";
44
+ readonly version = "2.0.0";
45
+ readonly tier: 1;
46
+ /**
47
+ * V3 unified detect method.
48
+ */
49
+ detect(files: FileAnalysis[]): Promise<UnifiedIssue[]>;
50
+ /**
51
+ * Analyze a single file.
52
+ * @deprecated Use detect(files) instead. Will be removed in v0.4.0.
53
+ */
54
+ analyze(filePath: string, source: string): ContextBreakResult;
55
+ }
56
+ export default ContextBreakDetector;
57
+ //# sourceMappingURL=context-break.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-break.d.ts","sourceRoot":"","sources":["../../src/detectors/context-break.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAY,MAAM,aAAa,CAAC;AAKlF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EACA,sBAAsB,GACtB,mBAAmB,GACnB,mBAAmB,GACnB,aAAa,GACb,8BAA8B,CAAC;IACnC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAkJD;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAG,CAAC,CAAU;IAI3B;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAgB5D;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB;CAqB9D;AAED,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Context Break Detector (V3)
3
+ *
4
+ * Detects architectural inconsistencies in AI-generated code:
5
+ * 1. Mixed coding styles (camelCase vs snake_case)
6
+ * 2. Inconsistent error handling patterns
7
+ * 3. Mixed module systems (import vs require in same file)
8
+ * 4. Inconsistent async patterns (callbacks vs promises vs async/await)
9
+ * 5. Style breaks that indicate context window switches
10
+ *
11
+ * Implements the unified Detector interface.
12
+ *
13
+ * @since 0.2.0 (original)
14
+ * @since 0.3.0 (V3 unified interface)
15
+ */
16
+ import { AIDefectCategory } from '../types.js';
17
+ // ─── Internal Detection Functions ───
18
+ function detectNamingInconsistency(lines, filePath) {
19
+ const issues = [];
20
+ let camelCaseCount = 0;
21
+ let snakeCaseCount = 0;
22
+ const snakeCaseLines = [];
23
+ const camelCaseLines = [];
24
+ for (let i = 0; i < lines.length; i++) {
25
+ const line = lines[i];
26
+ const declMatch = line.match(/(?:const|let|var|function)\s+(\w+)/);
27
+ if (declMatch) {
28
+ const name = declMatch[1];
29
+ if (name.includes('_') && name !== name.toUpperCase()) {
30
+ snakeCaseCount++;
31
+ snakeCaseLines.push(i + 1);
32
+ }
33
+ else if (/[a-z][A-Z]/.test(name)) {
34
+ camelCaseCount++;
35
+ camelCaseLines.push(i + 1);
36
+ }
37
+ }
38
+ }
39
+ if (camelCaseCount > 0 && snakeCaseCount > 0) {
40
+ const minority = camelCaseCount < snakeCaseCount ? camelCaseLines : snakeCaseLines;
41
+ const majorStyle = camelCaseCount >= snakeCaseCount ? 'camelCase' : 'snake_case';
42
+ for (const lineNum of minority.slice(0, 5)) {
43
+ issues.push({
44
+ type: 'naming-inconsistency',
45
+ severity: 'warning',
46
+ file: filePath,
47
+ line: lineNum,
48
+ message: `Naming convention inconsistency: file predominantly uses ${majorStyle}`,
49
+ suggestion: 'AI context switches often cause naming style changes. Standardize to one convention.',
50
+ });
51
+ }
52
+ }
53
+ return issues;
54
+ }
55
+ function detectModuleSystemMix(lines, filePath) {
56
+ const issues = [];
57
+ let hasESMImport = false;
58
+ let hasCJSRequire = false;
59
+ let esmLine = 0;
60
+ let cjsLine = 0;
61
+ for (let i = 0; i < lines.length; i++) {
62
+ const line = lines[i].trim();
63
+ if (/^import\s/.test(line) && !line.includes('import(')) {
64
+ if (!hasESMImport) {
65
+ hasESMImport = true;
66
+ esmLine = i + 1;
67
+ }
68
+ }
69
+ if (/\brequire\s*\(/.test(line) && !line.includes('// eslint')) {
70
+ if (!hasCJSRequire) {
71
+ hasCJSRequire = true;
72
+ cjsLine = i + 1;
73
+ }
74
+ }
75
+ }
76
+ if (hasESMImport && hasCJSRequire) {
77
+ issues.push({
78
+ type: 'module-system-mix',
79
+ severity: 'warning',
80
+ file: filePath,
81
+ line: cjsLine,
82
+ message: 'Mixed module systems: both ESM import and CommonJS require() found',
83
+ suggestion: 'Standardize to one module system. AI often mixes import and require in the same file.',
84
+ });
85
+ }
86
+ return issues;
87
+ }
88
+ function detectAsyncPatternMix(lines, filePath) {
89
+ const issues = [];
90
+ const source = lines.join('\n');
91
+ let hasAsyncAwait = false;
92
+ let hasThenChain = false;
93
+ let hasCallback = false;
94
+ if (/\bawait\s/.test(source))
95
+ hasAsyncAwait = true;
96
+ if (/\.then\s*\(/.test(source))
97
+ hasThenChain = true;
98
+ const callbackPattern = /function\s*\(\s*err(?:or)?\s*,/g;
99
+ if (callbackPattern.test(source))
100
+ hasCallback = true;
101
+ const patterns = [hasAsyncAwait && 'async/await', hasThenChain && '.then()', hasCallback && 'callbacks']
102
+ .filter(Boolean);
103
+ if (patterns.length >= 2) {
104
+ issues.push({
105
+ type: 'async-pattern-mix',
106
+ severity: 'warning',
107
+ file: filePath,
108
+ line: 1,
109
+ message: `Mixed async patterns detected: ${patterns.join(', ')}`,
110
+ suggestion: 'Standardize to async/await for consistency. AI-generated code often mixes patterns.',
111
+ });
112
+ }
113
+ return issues;
114
+ }
115
+ // ─── Severity & Category Mapping ───
116
+ function mapSeverity(type) {
117
+ switch (type) {
118
+ case 'naming-inconsistency':
119
+ return 'low';
120
+ case 'module-system-mix':
121
+ return 'medium';
122
+ case 'async-pattern-mix':
123
+ return 'low';
124
+ case 'style-break':
125
+ return 'low';
126
+ case 'error-handling-inconsistency':
127
+ return 'medium';
128
+ default:
129
+ return 'low';
130
+ }
131
+ }
132
+ function toUnifiedIssue(issue, index) {
133
+ return {
134
+ id: `context-break:${index}`,
135
+ detector: 'context-break',
136
+ category: AIDefectCategory.CONTEXT_LOSS,
137
+ severity: mapSeverity(issue.type),
138
+ message: issue.message,
139
+ file: issue.file,
140
+ line: issue.line,
141
+ fix: issue.suggestion ? {
142
+ description: issue.suggestion,
143
+ autoFixable: false,
144
+ } : undefined,
145
+ };
146
+ }
147
+ // ─── Main Detector ───
148
+ /**
149
+ * ContextBreakDetector — detects AI context window inconsistencies.
150
+ *
151
+ * V3: Implements the unified Detector interface.
152
+ * V2 (deprecated): Old analyze() signature still works.
153
+ */
154
+ export class ContextBreakDetector {
155
+ name = 'context-break';
156
+ version = '2.0.0';
157
+ tier = 1;
158
+ // ─── V3 Unified Interface ───
159
+ /**
160
+ * V3 unified detect method.
161
+ */
162
+ async detect(files) {
163
+ const allIssues = [];
164
+ let globalIndex = 0;
165
+ for (const file of files) {
166
+ const result = this.analyze(file.path, file.content);
167
+ for (const issue of result.issues) {
168
+ allIssues.push(toUnifiedIssue(issue, globalIndex++));
169
+ }
170
+ }
171
+ return allIssues;
172
+ }
173
+ // ─── V2 Legacy Interface (Deprecated) ───
174
+ /**
175
+ * Analyze a single file.
176
+ * @deprecated Use detect(files) instead. Will be removed in v0.4.0.
177
+ */
178
+ analyze(filePath, source) {
179
+ const lines = source.split('\n');
180
+ const rawIssues = [
181
+ ...detectNamingInconsistency(lines, filePath),
182
+ ...detectModuleSystemMix(lines, filePath),
183
+ ...detectAsyncPatternMix(lines, filePath),
184
+ ];
185
+ const issues = rawIssues.filter(issue => {
186
+ if (issue.line <= 0)
187
+ return true;
188
+ const prevLine = lines[issue.line - 2] || '';
189
+ return !prevLine.includes('// ai-validator-ignore') && !prevLine.includes('// ai-validator-disable');
190
+ });
191
+ const errorCount = issues.filter(i => i.severity === 'error').length;
192
+ const warningCount = issues.filter(i => i.severity === 'warning').length;
193
+ const deductions = (errorCount * 15) + (warningCount * 5);
194
+ const score = Math.max(0, 100 - deductions);
195
+ return { file: filePath, issues, score };
196
+ }
197
+ }
198
+ export default ContextBreakDetector;
199
+ //# sourceMappingURL=context-break.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-break.js","sourceRoot":"","sources":["../../src/detectors/context-break.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Deep Hallucination Detector (V3)
3
+ *
4
+ * Validates that imported packages actually exist by checking:
5
+ * 1. Whether the package is in node_modules/
6
+ * 2. Whether the package is listed in package.json dependencies
7
+ *
8
+ * This goes beyond the basic HallucinationDetector by focusing specifically
9
+ * on package existence verification (without network requests).
10
+ *
11
+ * AI models frequently hallucinate package names that sound plausible
12
+ * but don't actually exist on npm.
13
+ *
14
+ * Implements the unified Detector interface.
15
+ *
16
+ * @since 0.3.0
17
+ */
18
+ import type { Detector, UnifiedIssue, FileAnalysis } from '../types.js';
19
+ /**
20
+ * DeepHallucinationDetector — verifies imported packages actually exist.
21
+ *
22
+ * Checks imports against:
23
+ * 1. Node.js built-in modules whitelist
24
+ * 2. Well-known packages whitelist (50+ common packages)
25
+ * 3. package.json dependencies
26
+ * 4. node_modules/ directory
27
+ *
28
+ * Does NOT make network requests (kept for speed; npm registry checks
29
+ * can be added in AI Tier or future versions).
30
+ */
31
+ export declare class DeepHallucinationDetector implements Detector {
32
+ readonly name = "deep-hallucination";
33
+ readonly version = "1.0.0";
34
+ readonly tier: 1;
35
+ private projectRoot;
36
+ private projectDeps;
37
+ constructor(projectRoot?: string);
38
+ detect(files: FileAnalysis[]): Promise<UnifiedIssue[]>;
39
+ private analyzeFile;
40
+ }
41
+ export default DeepHallucinationDetector;
42
+ //# sourceMappingURL=deep-hallucination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-hallucination.d.ts","sourceRoot":"","sources":["../../src/detectors/deep-hallucination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsNxE;;;;;;;;;;;GAWG;AACH,qBAAa,yBAA0B,YAAW,QAAQ;IACxD,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAG,CAAC,CAAU;IAE3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,GAAE,MAAsB;IAOzC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAiB5D,OAAO,CAAC,WAAW;CAqDpB;AAED,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,297 @@
1
+ /**
2
+ * Deep Hallucination Detector (V3)
3
+ *
4
+ * Validates that imported packages actually exist by checking:
5
+ * 1. Whether the package is in node_modules/
6
+ * 2. Whether the package is listed in package.json dependencies
7
+ *
8
+ * This goes beyond the basic HallucinationDetector by focusing specifically
9
+ * on package existence verification (without network requests).
10
+ *
11
+ * AI models frequently hallucinate package names that sound plausible
12
+ * but don't actually exist on npm.
13
+ *
14
+ * Implements the unified Detector interface.
15
+ *
16
+ * @since 0.3.0
17
+ */
18
+ import { existsSync, readFileSync } from 'node:fs';
19
+ import { join, dirname } from 'node:path';
20
+ import { AIDefectCategory } from '../types.js';
21
+ // ─── Built-in Module Whitelist ───
22
+ const NODE_BUILTINS = new Set([
23
+ 'fs', 'path', 'os', 'crypto', 'http', 'https', 'url', 'util',
24
+ 'stream', 'events', 'child_process', 'cluster', 'dns', 'net',
25
+ 'tls', 'zlib', 'readline', 'querystring', 'assert', 'buffer',
26
+ 'console', 'process', 'timers', 'worker_threads', 'perf_hooks',
27
+ 'async_hooks', 'v8', 'vm', 'string_decoder', 'punycode', 'dgram',
28
+ 'http2', 'inspector', 'module', 'repl', 'constants', 'sys',
29
+ 'domain', 'wasi', 'diagnostics_channel', 'trace_events', 'test',
30
+ // node: prefixed
31
+ 'node:fs', 'node:path', 'node:os', 'node:crypto', 'node:http',
32
+ 'node:https', 'node:url', 'node:util', 'node:stream', 'node:events',
33
+ 'node:child_process', 'node:cluster', 'node:dns', 'node:net',
34
+ 'node:tls', 'node:zlib', 'node:readline', 'node:querystring',
35
+ 'node:assert', 'node:buffer', 'node:console', 'node:process',
36
+ 'node:timers', 'node:worker_threads', 'node:perf_hooks',
37
+ 'node:async_hooks', 'node:v8', 'node:vm', 'node:test',
38
+ 'node:string_decoder', 'node:punycode', 'node:dgram', 'node:http2',
39
+ 'node:inspector', 'node:module', 'node:repl',
40
+ // Sub-paths
41
+ 'fs/promises', 'timers/promises', 'stream/promises', 'stream/web',
42
+ 'stream/consumers', 'node:fs/promises', 'node:timers/promises',
43
+ 'node:stream/promises', 'node:stream/web',
44
+ ]);
45
+ // ─── Well-known Package Whitelist ───
46
+ const WELL_KNOWN_PACKAGES = new Set([
47
+ // Frameworks
48
+ 'react', 'react-dom', 'react-native', 'vue', 'angular', 'svelte',
49
+ 'next', 'nuxt', 'gatsby', 'remix', 'astro', 'solid-js', 'preact',
50
+ 'express', 'fastify', 'koa', 'hapi', 'nest', '@nestjs/core',
51
+ '@nestjs/common', '@nestjs/platform-express', '@nestjs/testing',
52
+ // Build tools
53
+ 'typescript', 'webpack', 'vite', 'rollup', 'esbuild', 'swc',
54
+ 'parcel', 'turbo', 'tsup', 'unbuild', 'tsc', 'babel',
55
+ '@swc/core', '@swc/cli',
56
+ // Testing
57
+ 'jest', 'vitest', 'mocha', 'chai', 'jasmine', 'cypress',
58
+ 'playwright', '@playwright/test', 'puppeteer', 'supertest',
59
+ '@testing-library/react', '@testing-library/jest-dom',
60
+ '@testing-library/user-event', 'sinon', 'nock', 'msw', 'ava',
61
+ 'tap', 'nyc', 'c8', 'istanbul',
62
+ // Linting & Formatting
63
+ 'eslint', 'prettier', 'stylelint', 'markdownlint',
64
+ '@typescript-eslint/parser', '@typescript-eslint/eslint-plugin',
65
+ 'eslint-config-prettier', 'eslint-plugin-import',
66
+ // Database
67
+ 'prisma', '@prisma/client', 'typeorm', 'sequelize', 'knex',
68
+ 'mongoose', 'mongodb', 'pg', 'mysql', 'mysql2', 'sqlite3',
69
+ 'better-sqlite3', 'redis', 'ioredis', 'drizzle-orm',
70
+ // Utilities
71
+ 'lodash', 'underscore', 'ramda', 'rxjs', 'date-fns', 'dayjs',
72
+ 'moment', 'uuid', 'nanoid', 'chalk', 'debug', 'dotenv',
73
+ 'commander', 'yargs', 'inquirer', 'ora', 'glob', 'minimatch',
74
+ 'semver', 'yaml', 'toml', 'ini', 'ajv', 'joi', 'zod',
75
+ 'class-validator', 'class-transformer',
76
+ // HTTP
77
+ 'axios', 'node-fetch', 'got', 'undici', 'ky', 'cross-fetch',
78
+ 'superagent', 'request',
79
+ // Auth
80
+ 'jsonwebtoken', 'passport', 'bcrypt', 'bcryptjs', 'argon2',
81
+ 'helmet', 'cors', 'csurf', 'express-rate-limit',
82
+ // File/Process
83
+ 'fs-extra', 'chokidar', 'rimraf', 'mkdirp', 'execa', 'cross-env',
84
+ 'concurrently', 'pm2', 'nodemon', 'ts-node', 'tsx',
85
+ // UI libraries
86
+ '@mui/material', '@chakra-ui/react', 'antd', 'tailwindcss',
87
+ '@tailwindcss/forms', '@headlessui/react', '@radix-ui/react-dialog',
88
+ 'styled-components', '@emotion/react', '@emotion/styled',
89
+ 'framer-motion', 'clsx', 'classnames',
90
+ // State management
91
+ 'zustand', 'jotai', 'recoil', 'mobx', 'redux', '@reduxjs/toolkit',
92
+ 'react-redux', 'vuex', 'pinia',
93
+ // Types
94
+ '@types/node', '@types/react', '@types/react-dom', '@types/express',
95
+ '@types/jest', '@types/lodash', '@types/uuid',
96
+ // Monorepo
97
+ 'lerna', 'changesets', '@changesets/cli', 'nx',
98
+ // Cloud / Infra
99
+ 'aws-sdk', '@aws-sdk/client-s3', 'firebase', 'firebase-admin',
100
+ '@google-cloud/storage', 'azure-storage',
101
+ // Logging
102
+ 'winston', 'pino', 'bunyan', 'morgan', 'log4js',
103
+ // Misc
104
+ 'sharp', 'jimp', 'multer', 'formidable', 'busboy',
105
+ 'socket.io', 'ws', 'graphql', '@apollo/server', '@apollo/client',
106
+ 'openai', '@anthropic-ai/sdk', 'langchain',
107
+ 'puppeteer-core', 'cheerio', 'jsdom',
108
+ ]);
109
+ function extractImports(source) {
110
+ const imports = [];
111
+ const lines = source.split('\n');
112
+ for (let i = 0; i < lines.length; i++) {
113
+ const line = lines[i];
114
+ const lineNum = i + 1;
115
+ // ES module imports
116
+ const esMatch = line.match(/import\s+.*?\s+from\s+['"]([^'"]+)['"]/);
117
+ if (esMatch) {
118
+ imports.push({ module: esMatch[1], line: lineNum });
119
+ continue;
120
+ }
121
+ // Side-effect imports
122
+ const sideEffectMatch = line.match(/import\s+['"]([^'"]+)['"]/);
123
+ if (sideEffectMatch) {
124
+ imports.push({ module: sideEffectMatch[1], line: lineNum });
125
+ continue;
126
+ }
127
+ // Dynamic imports
128
+ const dynamicMatch = line.match(/import\s*\(\s*['"]([^'"]+)['"]\s*\)/);
129
+ if (dynamicMatch) {
130
+ imports.push({ module: dynamicMatch[1], line: lineNum });
131
+ continue;
132
+ }
133
+ // CommonJS require
134
+ const requireMatch = line.match(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/);
135
+ if (requireMatch) {
136
+ imports.push({ module: requireMatch[1], line: lineNum });
137
+ }
138
+ }
139
+ return imports;
140
+ }
141
+ /**
142
+ * Extract the base package name from an import specifier.
143
+ * Returns null for relative imports.
144
+ */
145
+ function getPackageName(specifier) {
146
+ // Skip relative imports
147
+ if (specifier.startsWith('.') || specifier.startsWith('/'))
148
+ return null;
149
+ // Skip path aliases
150
+ if (specifier.startsWith('@/') || specifier.startsWith('~/') || specifier.startsWith('#'))
151
+ return null;
152
+ // Scoped packages: @scope/pkg
153
+ if (specifier.startsWith('@')) {
154
+ const parts = specifier.split('/');
155
+ if (parts.length >= 2)
156
+ return `${parts[0]}/${parts[1]}`;
157
+ return specifier;
158
+ }
159
+ // Regular packages
160
+ return specifier.split('/')[0];
161
+ }
162
+ // ─── Package Verification ───
163
+ function loadProjectDependencies(projectRoot) {
164
+ const deps = new Set();
165
+ let dir = projectRoot;
166
+ while (dir !== dirname(dir)) {
167
+ const pkgPath = join(dir, 'package.json');
168
+ if (existsSync(pkgPath)) {
169
+ try {
170
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
171
+ const allDeps = {
172
+ ...pkg.dependencies,
173
+ ...pkg.devDependencies,
174
+ ...pkg.peerDependencies,
175
+ ...pkg.optionalDependencies,
176
+ };
177
+ for (const name of Object.keys(allDeps)) {
178
+ deps.add(name);
179
+ }
180
+ // Check for workspace root
181
+ if (pkg.workspaces) {
182
+ break; // Found workspace root, stop
183
+ }
184
+ // If inside packages/, also check parent
185
+ if (dir.includes('/packages/') || dir.includes('/apps/')) {
186
+ dir = dirname(dir);
187
+ continue;
188
+ }
189
+ }
190
+ catch { /* ignore */ }
191
+ break;
192
+ }
193
+ dir = dirname(dir);
194
+ }
195
+ return deps;
196
+ }
197
+ function packageExistsInNodeModules(packageName, projectRoot) {
198
+ // Check in project's node_modules
199
+ let dir = projectRoot;
200
+ while (dir !== dirname(dir)) {
201
+ const nmPath = join(dir, 'node_modules', packageName);
202
+ if (existsSync(nmPath))
203
+ return true;
204
+ dir = dirname(dir);
205
+ }
206
+ return false;
207
+ }
208
+ // ─── Main Detector ───
209
+ /**
210
+ * DeepHallucinationDetector — verifies imported packages actually exist.
211
+ *
212
+ * Checks imports against:
213
+ * 1. Node.js built-in modules whitelist
214
+ * 2. Well-known packages whitelist (50+ common packages)
215
+ * 3. package.json dependencies
216
+ * 4. node_modules/ directory
217
+ *
218
+ * Does NOT make network requests (kept for speed; npm registry checks
219
+ * can be added in AI Tier or future versions).
220
+ */
221
+ export class DeepHallucinationDetector {
222
+ name = 'deep-hallucination';
223
+ version = '1.0.0';
224
+ tier = 1;
225
+ projectRoot;
226
+ projectDeps;
227
+ constructor(projectRoot = process.cwd()) {
228
+ this.projectRoot = projectRoot;
229
+ this.projectDeps = loadProjectDependencies(projectRoot);
230
+ }
231
+ // ─── V3 Unified Interface ───
232
+ async detect(files) {
233
+ const allIssues = [];
234
+ let globalIndex = 0;
235
+ for (const file of files) {
236
+ const issues = this.analyzeFile(file.path, file.content);
237
+ for (const issue of issues) {
238
+ issue.id = `deep-hallucination:${globalIndex++}`;
239
+ allIssues.push(issue);
240
+ }
241
+ }
242
+ return allIssues;
243
+ }
244
+ // ─── Internal Analysis ───
245
+ analyzeFile(filePath, source) {
246
+ const issues = [];
247
+ const imports = extractImports(source);
248
+ const lines = source.split('\n');
249
+ for (const imp of imports) {
250
+ const pkgName = getPackageName(imp.module);
251
+ if (!pkgName)
252
+ continue; // relative import
253
+ // Skip suppressed lines
254
+ const prevLine = imp.line > 1 ? lines[imp.line - 2] : '';
255
+ if (prevLine.includes('// ai-validator-ignore') || prevLine.includes('// ai-validator-disable')) {
256
+ continue;
257
+ }
258
+ // Skip builtins
259
+ if (NODE_BUILTINS.has(imp.module) || NODE_BUILTINS.has(pkgName))
260
+ continue;
261
+ // Skip well-known packages
262
+ if (WELL_KNOWN_PACKAGES.has(pkgName))
263
+ continue;
264
+ // Check project dependencies
265
+ if (this.projectDeps.has(pkgName))
266
+ continue;
267
+ // Check node_modules
268
+ if (packageExistsInNodeModules(pkgName, this.projectRoot))
269
+ continue;
270
+ // Package not found — potential hallucination
271
+ issues.push({
272
+ id: '', // set in detect()
273
+ detector: this.name,
274
+ type: 'phantom-package',
275
+ category: AIDefectCategory.HALLUCINATION,
276
+ severity: 'critical',
277
+ message: `Potentially hallucinated package: '${pkgName}' is not found in dependencies or node_modules`,
278
+ file: filePath,
279
+ line: imp.line,
280
+ suggestion: `Verify that '${pkgName}' is a real npm package. If it exists, run 'npm install ${pkgName}'. If not, it may be an AI hallucination.`,
281
+ fix: {
282
+ description: `Install the package or replace with a real alternative`,
283
+ autoFixable: false,
284
+ },
285
+ confidence: 0.8,
286
+ detectionSource: 'static',
287
+ attribution: {
288
+ rootCause: 'AI models sometimes generate imports for packages that sound plausible but do not exist on npm',
289
+ frequency: 'occasional',
290
+ },
291
+ });
292
+ }
293
+ return issues;
294
+ }
295
+ }
296
+ export default DeepHallucinationDetector;
297
+ //# sourceMappingURL=deep-hallucination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-hallucination.js","sourceRoot":"","sources":["../../src/detectors/deep-hallucination.ts"],"names":[],"mappings":"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"}