uneven-ai 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/CHANGELOG.md +94 -1
  2. package/LICENSE +6 -2
  3. package/README.md +227 -133
  4. package/dist/application/analysis/active/context.d.ts +32 -0
  5. package/dist/application/analysis/active/context.d.ts.map +1 -0
  6. package/dist/application/analysis/active/context.js +60 -0
  7. package/dist/application/analysis/active/helpers.d.ts +22 -0
  8. package/dist/application/analysis/active/helpers.d.ts.map +1 -0
  9. package/dist/application/analysis/active/helpers.js +75 -0
  10. package/dist/application/analysis/active/http.d.ts +6 -0
  11. package/dist/application/analysis/active/http.d.ts.map +1 -0
  12. package/dist/application/analysis/active/http.js +137 -0
  13. package/dist/application/analysis/active/index.d.ts +19 -0
  14. package/dist/application/analysis/active/index.d.ts.map +1 -0
  15. package/dist/application/analysis/active/index.js +48 -0
  16. package/dist/application/analysis/active/network.d.ts +5 -0
  17. package/dist/application/analysis/active/network.d.ts.map +1 -0
  18. package/dist/application/analysis/active/network.js +104 -0
  19. package/dist/application/analysis/dashboard-generator.d.ts +1 -1
  20. package/dist/application/analysis/dashboard-generator.d.ts.map +1 -1
  21. package/dist/application/analysis/dashboard-generator.js +8 -6
  22. package/dist/application/analysis/data-analyst/analyzer.d.ts +29 -0
  23. package/dist/application/analysis/data-analyst/analyzer.d.ts.map +1 -0
  24. package/dist/application/analysis/data-analyst/analyzer.js +205 -0
  25. package/dist/application/analysis/data-analyst/constants.d.ts +6 -0
  26. package/dist/application/analysis/data-analyst/constants.d.ts.map +1 -0
  27. package/dist/application/analysis/data-analyst/constants.js +8 -0
  28. package/dist/application/analysis/data-analyst/index.d.ts +4 -0
  29. package/dist/application/analysis/data-analyst/index.d.ts.map +1 -0
  30. package/dist/application/analysis/data-analyst/index.js +3 -0
  31. package/dist/application/analysis/data-analyst/introspection.d.ts +6 -0
  32. package/dist/application/analysis/data-analyst/introspection.d.ts.map +1 -0
  33. package/dist/application/analysis/data-analyst/introspection.js +86 -0
  34. package/dist/application/analysis/data-analyst/query-gen.d.ts +12 -0
  35. package/dist/application/analysis/data-analyst/query-gen.d.ts.map +1 -0
  36. package/dist/application/analysis/data-analyst/query-gen.js +87 -0
  37. package/dist/application/analysis/data-analyst/types.d.ts +25 -0
  38. package/dist/application/analysis/data-analyst/types.d.ts.map +1 -0
  39. package/dist/application/analysis/data-analyst/types.js +1 -0
  40. package/dist/application/analysis/data-analyst/utils.d.ts +11 -0
  41. package/dist/application/analysis/data-analyst/utils.d.ts.map +1 -0
  42. package/dist/application/analysis/data-analyst/utils.js +73 -0
  43. package/dist/application/analysis/data-security/context.d.ts +34 -0
  44. package/dist/application/analysis/data-security/context.d.ts.map +1 -0
  45. package/dist/application/analysis/{data-security-context.js → data-security/context.js} +6 -101
  46. package/dist/application/analysis/data-security/defaults.d.ts +7 -0
  47. package/dist/application/analysis/data-security/defaults.d.ts.map +1 -0
  48. package/dist/application/analysis/data-security/defaults.js +51 -0
  49. package/dist/application/analysis/data-security/index.d.ts +4 -0
  50. package/dist/application/analysis/data-security/index.d.ts.map +1 -0
  51. package/dist/application/analysis/data-security/index.js +3 -0
  52. package/dist/application/analysis/data-security/types.d.ts +26 -0
  53. package/dist/application/analysis/data-security/types.d.ts.map +1 -0
  54. package/dist/application/analysis/data-security/types.js +1 -0
  55. package/dist/application/analysis/data-security/utils.d.ts +2 -0
  56. package/dist/application/analysis/data-security/utils.d.ts.map +1 -0
  57. package/dist/application/analysis/data-security/utils.js +3 -0
  58. package/dist/application/analysis/dep-auditor.d.ts +45 -0
  59. package/dist/application/analysis/dep-auditor.d.ts.map +1 -0
  60. package/dist/application/analysis/dep-auditor.js +105 -0
  61. package/dist/application/analysis/excel-exporter.d.ts +1 -1
  62. package/dist/application/analysis/excel-exporter.d.ts.map +1 -1
  63. package/dist/application/analysis/excel-exporter.js +8 -4
  64. package/dist/application/analysis/llm-security-reviewer.d.ts +1 -1
  65. package/dist/application/analysis/llm-security-reviewer.d.ts.map +1 -1
  66. package/dist/application/analysis/llm-security-reviewer.js +4 -1
  67. package/dist/application/analysis/malware/analyzer.d.ts +17 -0
  68. package/dist/application/analysis/malware/analyzer.d.ts.map +1 -0
  69. package/dist/application/analysis/malware/analyzer.js +55 -0
  70. package/dist/application/analysis/malware/dep-scanner.d.ts +16 -0
  71. package/dist/application/analysis/malware/dep-scanner.d.ts.map +1 -0
  72. package/dist/application/analysis/malware/dep-scanner.js +128 -0
  73. package/dist/application/analysis/malware/file-scanner.d.ts +10 -0
  74. package/dist/application/analysis/malware/file-scanner.d.ts.map +1 -0
  75. package/dist/application/analysis/malware/file-scanner.js +80 -0
  76. package/dist/application/analysis/malware/index.d.ts +4 -0
  77. package/dist/application/analysis/malware/index.d.ts.map +1 -0
  78. package/dist/application/analysis/malware/index.js +3 -0
  79. package/dist/application/analysis/malware/rules.d.ts +3 -0
  80. package/dist/application/analysis/malware/rules.d.ts.map +1 -0
  81. package/dist/application/analysis/malware/rules.js +125 -0
  82. package/dist/application/analysis/malware/semantic.d.ts +5 -0
  83. package/dist/application/analysis/malware/semantic.d.ts.map +1 -0
  84. package/dist/application/analysis/malware/semantic.js +35 -0
  85. package/dist/application/analysis/malware/types.d.ts +36 -0
  86. package/dist/application/analysis/malware/types.d.ts.map +1 -0
  87. package/dist/application/analysis/malware/types.js +1 -0
  88. package/dist/application/analysis/malware/utils.d.ts +14 -0
  89. package/dist/application/analysis/malware/utils.d.ts.map +1 -0
  90. package/dist/application/analysis/malware/utils.js +75 -0
  91. package/dist/application/analysis/pentest-security-context.js +2 -2
  92. package/dist/application/analysis/report-packager.d.ts.map +1 -1
  93. package/dist/application/analysis/report-packager.js +21 -17
  94. package/dist/application/analysis/sbom-generator.d.ts +1 -1
  95. package/dist/application/analysis/sbom-generator.d.ts.map +1 -1
  96. package/dist/application/analysis/sbom-generator.js +1 -1
  97. package/dist/application/analysis/security/analyzer.d.ts +27 -0
  98. package/dist/application/analysis/security/analyzer.d.ts.map +1 -0
  99. package/dist/application/analysis/security/analyzer.js +89 -0
  100. package/dist/application/analysis/security/config-scanner.d.ts +7 -0
  101. package/dist/application/analysis/security/config-scanner.d.ts.map +1 -0
  102. package/dist/application/analysis/security/config-scanner.js +168 -0
  103. package/dist/application/analysis/security/dependency-scanner.d.ts +11 -0
  104. package/dist/application/analysis/security/dependency-scanner.d.ts.map +1 -0
  105. package/dist/application/analysis/security/dependency-scanner.js +219 -0
  106. package/dist/application/analysis/security/header-scanner.d.ts +7 -0
  107. package/dist/application/analysis/security/header-scanner.d.ts.map +1 -0
  108. package/dist/application/analysis/security/header-scanner.js +111 -0
  109. package/dist/application/analysis/security/index.d.ts +3 -0
  110. package/dist/application/analysis/security/index.d.ts.map +1 -0
  111. package/dist/application/analysis/security/index.js +3 -0
  112. package/dist/application/analysis/security/owasp-scanner.d.ts +11 -0
  113. package/dist/application/analysis/security/owasp-scanner.d.ts.map +1 -0
  114. package/dist/application/analysis/security/owasp-scanner.js +234 -0
  115. package/dist/application/analysis/security/secrets-scanner.d.ts +11 -0
  116. package/dist/application/analysis/security/secrets-scanner.d.ts.map +1 -0
  117. package/dist/application/analysis/security/secrets-scanner.js +185 -0
  118. package/dist/application/analysis/security/types.d.ts +21 -0
  119. package/dist/application/analysis/security/types.d.ts.map +1 -0
  120. package/dist/application/analysis/security/types.js +15 -0
  121. package/dist/application/analysis/security/utils.d.ts +26 -0
  122. package/dist/application/analysis/security/utils.d.ts.map +1 -0
  123. package/dist/application/analysis/security/utils.js +97 -0
  124. package/dist/application/analysis/security-reporter.d.ts +1 -1
  125. package/dist/application/analysis/security-reporter.d.ts.map +1 -1
  126. package/dist/application/analysis/security-reporter.js +1 -1
  127. package/dist/application/analysis/supply-chain-auditor.d.ts +1 -1
  128. package/dist/application/analysis/supply-chain-auditor.d.ts.map +1 -1
  129. package/dist/application/development/analyst-job-manager.d.ts +3 -1
  130. package/dist/application/development/analyst-job-manager.d.ts.map +1 -1
  131. package/dist/application/development/analyst-job-manager.js +23 -6
  132. package/dist/application/development/fix/apply.d.ts +3 -0
  133. package/dist/application/development/fix/apply.d.ts.map +1 -0
  134. package/dist/application/development/fix/apply.js +169 -0
  135. package/dist/application/development/fix/context.d.ts +50 -0
  136. package/dist/application/development/fix/context.d.ts.map +1 -0
  137. package/dist/application/development/fix/context.js +1 -0
  138. package/dist/application/development/fix/helpers.d.ts +10 -0
  139. package/dist/application/development/fix/helpers.d.ts.map +1 -0
  140. package/dist/application/development/fix/helpers.js +13 -0
  141. package/dist/application/development/fix/index.d.ts +25 -0
  142. package/dist/application/development/fix/index.d.ts.map +1 -0
  143. package/dist/application/development/fix/index.js +34 -0
  144. package/dist/application/development/fix/patterns-compiled.d.ts +6 -0
  145. package/dist/application/development/fix/patterns-compiled.d.ts.map +1 -0
  146. package/dist/application/development/fix/patterns-compiled.js +123 -0
  147. package/dist/application/development/fix/patterns-runtime.d.ts +8 -0
  148. package/dist/application/development/fix/patterns-runtime.d.ts.map +1 -0
  149. package/dist/application/development/fix/patterns-runtime.js +255 -0
  150. package/dist/application/development/fix/suggest.d.ts +4 -0
  151. package/dist/application/development/fix/suggest.d.ts.map +1 -0
  152. package/dist/application/development/fix/suggest.js +151 -0
  153. package/dist/application/development/test-runner.d.ts.map +1 -1
  154. package/dist/application/development/test-runner.js +20 -6
  155. package/dist/application/index.d.ts +9 -7
  156. package/dist/application/index.d.ts.map +1 -1
  157. package/dist/application/index.js +9 -7
  158. package/dist/application/notifications/webhook-notifier.d.ts +46 -0
  159. package/dist/application/notifications/webhook-notifier.d.ts.map +1 -0
  160. package/dist/application/notifications/webhook-notifier.js +138 -0
  161. package/dist/application/orchestration/engine/ask.d.ts +13 -0
  162. package/dist/application/orchestration/engine/ask.d.ts.map +1 -0
  163. package/dist/application/orchestration/engine/ask.js +155 -0
  164. package/dist/application/orchestration/engine/context.d.ts +30 -0
  165. package/dist/application/orchestration/engine/context.d.ts.map +1 -0
  166. package/dist/application/orchestration/engine/context.js +13 -0
  167. package/dist/application/orchestration/engine/error-handler.d.ts +7 -0
  168. package/dist/application/orchestration/engine/error-handler.d.ts.map +1 -0
  169. package/dist/application/orchestration/engine/error-handler.js +204 -0
  170. package/dist/application/orchestration/engine/file-reader.d.ts +16 -0
  171. package/dist/application/orchestration/engine/file-reader.d.ts.map +1 -0
  172. package/dist/application/orchestration/engine/file-reader.js +141 -0
  173. package/dist/application/orchestration/engine/format-readers.d.ts +6 -0
  174. package/dist/application/orchestration/engine/format-readers.d.ts.map +1 -0
  175. package/dist/application/orchestration/engine/format-readers.js +143 -0
  176. package/dist/application/orchestration/engine/index.d.ts +45 -0
  177. package/dist/application/orchestration/engine/index.d.ts.map +1 -0
  178. package/dist/application/orchestration/engine/index.js +60 -0
  179. package/dist/application/orchestration/engine/indexer.d.ts +4 -0
  180. package/dist/application/orchestration/engine/indexer.d.ts.map +1 -0
  181. package/dist/application/orchestration/engine/indexer.js +223 -0
  182. package/dist/application/orchestration/engine/lifecycle.d.ts +6 -0
  183. package/dist/application/orchestration/engine/lifecycle.d.ts.map +1 -0
  184. package/dist/application/orchestration/engine/lifecycle.js +114 -0
  185. package/dist/application/orchestration/engine/pentest.d.ts +3 -0
  186. package/dist/application/orchestration/engine/pentest.d.ts.map +1 -0
  187. package/dist/application/orchestration/engine/pentest.js +126 -0
  188. package/dist/application/orchestration/engine/watcher.d.ts +3 -0
  189. package/dist/application/orchestration/engine/watcher.d.ts.map +1 -0
  190. package/dist/application/orchestration/engine/watcher.js +135 -0
  191. package/dist/application/orchestration/incremental-index.d.ts +7 -2
  192. package/dist/application/orchestration/incremental-index.d.ts.map +1 -1
  193. package/dist/application/orchestration/incremental-index.js +29 -5
  194. package/dist/application/orchestration/knowledge-retriever.d.ts.map +1 -1
  195. package/dist/application/orchestration/knowledge-retriever.js +10 -4
  196. package/dist/application/remote-shell/server.d.ts +27 -0
  197. package/dist/application/remote-shell/server.d.ts.map +1 -0
  198. package/dist/application/remote-shell/server.js +221 -0
  199. package/dist/cli/commands/analyze/batch.d.ts +5 -0
  200. package/dist/cli/commands/analyze/batch.d.ts.map +1 -0
  201. package/dist/cli/commands/analyze/batch.js +78 -0
  202. package/dist/cli/commands/analyze/command.d.ts +3 -0
  203. package/dist/cli/commands/analyze/command.d.ts.map +1 -0
  204. package/dist/cli/commands/analyze/command.js +167 -0
  205. package/dist/cli/commands/analyze/index.d.ts +3 -0
  206. package/dist/cli/commands/analyze/index.d.ts.map +1 -0
  207. package/dist/cli/commands/analyze/index.js +2 -0
  208. package/dist/cli/commands/analyze/prompts.d.ts +6 -0
  209. package/dist/cli/commands/analyze/prompts.d.ts.map +1 -0
  210. package/dist/cli/commands/analyze/prompts.js +28 -0
  211. package/dist/cli/commands/analyze/types.d.ts +6 -0
  212. package/dist/cli/commands/analyze/types.d.ts.map +1 -0
  213. package/dist/cli/commands/analyze/types.js +1 -0
  214. package/dist/cli/commands/analyze/ui.d.ts +5 -0
  215. package/dist/cli/commands/analyze/ui.d.ts.map +1 -0
  216. package/dist/cli/commands/analyze/ui.js +51 -0
  217. package/dist/cli/commands/ask.js +3 -2
  218. package/dist/cli/commands/askf.d.ts +22 -0
  219. package/dist/cli/commands/askf.d.ts.map +1 -1
  220. package/dist/cli/commands/askf.js +36 -22
  221. package/dist/cli/commands/chat.d.ts +23 -0
  222. package/dist/cli/commands/chat.d.ts.map +1 -0
  223. package/dist/cli/commands/chat.js +134 -0
  224. package/dist/cli/commands/ci.d.ts.map +1 -1
  225. package/dist/cli/commands/ci.js +9 -4
  226. package/dist/cli/commands/diff.d.ts +2 -2
  227. package/dist/cli/commands/diff.d.ts.map +1 -1
  228. package/dist/cli/commands/diff.js +1 -1
  229. package/dist/cli/commands/docs.d.ts +34 -0
  230. package/dist/cli/commands/docs.d.ts.map +1 -0
  231. package/dist/cli/commands/docs.js +149 -0
  232. package/dist/cli/commands/explain.d.ts +28 -0
  233. package/dist/cli/commands/explain.d.ts.map +1 -0
  234. package/dist/cli/commands/explain.js +115 -0
  235. package/dist/cli/commands/info.d.ts.map +1 -1
  236. package/dist/cli/commands/init/command.d.ts +2 -0
  237. package/dist/cli/commands/init/command.d.ts.map +1 -0
  238. package/dist/cli/commands/init/command.js +161 -0
  239. package/dist/cli/commands/init/config-builder.d.ts +3 -0
  240. package/dist/cli/commands/init/config-builder.d.ts.map +1 -0
  241. package/dist/cli/commands/init/config-builder.js +71 -0
  242. package/dist/cli/commands/init/constants.d.ts +15 -0
  243. package/dist/cli/commands/init/constants.d.ts.map +1 -0
  244. package/dist/cli/commands/init/constants.js +34 -0
  245. package/dist/cli/commands/init/downloader.d.ts +4 -0
  246. package/dist/cli/commands/init/downloader.d.ts.map +1 -0
  247. package/dist/cli/commands/init/downloader.js +124 -0
  248. package/dist/cli/commands/init/index.d.ts +2 -0
  249. package/dist/cli/commands/init/index.d.ts.map +1 -0
  250. package/dist/cli/commands/init/index.js +1 -0
  251. package/dist/cli/commands/log.d.ts.map +1 -1
  252. package/dist/cli/commands/log.js +7 -2
  253. package/dist/cli/commands/pentest.d.ts +1 -0
  254. package/dist/cli/commands/pentest.d.ts.map +1 -1
  255. package/dist/cli/commands/pentest.js +4 -3
  256. package/dist/cli/commands/remote-shell.d.ts +12 -0
  257. package/dist/cli/commands/remote-shell.d.ts.map +1 -0
  258. package/dist/cli/commands/remote-shell.js +71 -0
  259. package/dist/cli/commands/review.d.ts +34 -0
  260. package/dist/cli/commands/review.d.ts.map +1 -0
  261. package/dist/cli/commands/review.js +183 -0
  262. package/dist/cli/commands/scan.d.ts.map +1 -1
  263. package/dist/cli/commands/scan.js +66 -2
  264. package/dist/cli/commands/shell.d.ts +16 -0
  265. package/dist/cli/commands/shell.d.ts.map +1 -0
  266. package/dist/cli/commands/shell.js +295 -0
  267. package/dist/cli/commands/start.d.ts.map +1 -1
  268. package/dist/cli/commands/start.js +7 -0
  269. package/dist/cli/commands/watch.d.ts +29 -2
  270. package/dist/cli/commands/watch.d.ts.map +1 -1
  271. package/dist/cli/commands/watch.js +121 -9
  272. package/dist/cli/errors.d.ts +5 -0
  273. package/dist/cli/errors.d.ts.map +1 -0
  274. package/dist/cli/errors.js +21 -0
  275. package/dist/cli/help.d.ts +3 -0
  276. package/dist/cli/help.d.ts.map +1 -0
  277. package/dist/cli/help.js +73 -0
  278. package/dist/cli/index.js +35 -328
  279. package/dist/cli/registry/index.d.ts +6 -0
  280. package/dist/cli/registry/index.d.ts.map +1 -0
  281. package/dist/cli/registry/index.js +9 -0
  282. package/dist/cli/registry/setup.d.ts +3 -0
  283. package/dist/cli/registry/setup.d.ts.map +1 -0
  284. package/dist/cli/registry/setup.js +138 -0
  285. package/dist/cli/registry/tools.d.ts +3 -0
  286. package/dist/cli/registry/tools.d.ts.map +1 -0
  287. package/dist/cli/registry/tools.js +124 -0
  288. package/dist/cli/shell/brain-classifier.d.ts +33 -0
  289. package/dist/cli/shell/brain-classifier.d.ts.map +1 -0
  290. package/dist/cli/shell/brain-classifier.js +149 -0
  291. package/dist/cli/shell/intent-classifier.d.ts +19 -0
  292. package/dist/cli/shell/intent-classifier.d.ts.map +1 -0
  293. package/dist/cli/shell/intent-classifier.js +64 -0
  294. package/dist/cli/theme.js +1 -1
  295. package/dist/domain/entities/session/constants.d.ts +8 -0
  296. package/dist/domain/entities/session/constants.d.ts.map +1 -0
  297. package/dist/domain/entities/session/constants.js +7 -0
  298. package/dist/domain/entities/session/index.d.ts +4 -0
  299. package/dist/domain/entities/session/index.d.ts.map +1 -0
  300. package/dist/domain/entities/session/index.js +3 -0
  301. package/dist/domain/entities/session/lock-manager.d.ts +14 -0
  302. package/dist/domain/entities/session/lock-manager.d.ts.map +1 -0
  303. package/dist/domain/entities/session/lock-manager.js +107 -0
  304. package/dist/domain/entities/session/manager.d.ts +66 -0
  305. package/dist/domain/entities/session/manager.d.ts.map +1 -0
  306. package/dist/domain/entities/session/manager.js +241 -0
  307. package/dist/domain/entities/session/types.d.ts +62 -0
  308. package/dist/domain/entities/session/types.d.ts.map +1 -0
  309. package/dist/domain/entities/session/types.js +1 -0
  310. package/dist/domain/entities/session/utils.d.ts +3 -0
  311. package/dist/domain/entities/session/utils.d.ts.map +1 -0
  312. package/dist/domain/entities/session/utils.js +19 -0
  313. package/dist/domain/entities/snapshot.d.ts.map +1 -1
  314. package/dist/domain/entities/snapshot.js +8 -2
  315. package/dist/domain/index.d.ts +1 -1
  316. package/dist/domain/index.d.ts.map +1 -1
  317. package/dist/domain/index.js +1 -1
  318. package/dist/domain/services/resource-guardian.d.ts.map +1 -1
  319. package/dist/domain/services/resource-guardian.js +10 -2
  320. package/dist/domain/services/safety-guard.d.ts.map +1 -1
  321. package/dist/domain/services/safety-guard.js +28 -8
  322. package/dist/infrastructure/adapters/bridge.d.ts +3 -0
  323. package/dist/infrastructure/adapters/bridge.d.ts.map +1 -1
  324. package/dist/infrastructure/adapters/bridge.js +33 -24
  325. package/dist/infrastructure/adapters/providers/claude.d.ts +4 -0
  326. package/dist/infrastructure/adapters/providers/claude.d.ts.map +1 -0
  327. package/dist/infrastructure/adapters/providers/claude.js +65 -0
  328. package/dist/infrastructure/adapters/providers/gemini.d.ts +4 -0
  329. package/dist/infrastructure/adapters/providers/gemini.d.ts.map +1 -0
  330. package/dist/infrastructure/adapters/providers/gemini.js +62 -0
  331. package/dist/infrastructure/adapters/providers/helpers.d.ts +4 -0
  332. package/dist/infrastructure/adapters/providers/helpers.d.ts.map +1 -0
  333. package/dist/infrastructure/adapters/providers/helpers.js +34 -0
  334. package/dist/infrastructure/adapters/providers/index.d.ts +11 -0
  335. package/dist/infrastructure/adapters/providers/index.d.ts.map +1 -0
  336. package/dist/infrastructure/adapters/providers/index.js +55 -0
  337. package/dist/infrastructure/adapters/providers/ollama.d.ts +4 -0
  338. package/dist/infrastructure/adapters/providers/ollama.d.ts.map +1 -0
  339. package/dist/infrastructure/adapters/providers/ollama.js +56 -0
  340. package/dist/infrastructure/adapters/providers/openai.d.ts +4 -0
  341. package/dist/infrastructure/adapters/providers/openai.d.ts.map +1 -0
  342. package/dist/infrastructure/adapters/providers/openai.js +65 -0
  343. package/dist/infrastructure/adapters/providers/types.d.ts +48 -0
  344. package/dist/infrastructure/adapters/providers/types.d.ts.map +1 -0
  345. package/dist/infrastructure/adapters/providers/types.js +1 -0
  346. package/dist/infrastructure/index.d.ts +3 -3
  347. package/dist/infrastructure/index.d.ts.map +1 -1
  348. package/dist/infrastructure/index.js +3 -3
  349. package/dist/infrastructure/io/db-loader.d.ts.map +1 -1
  350. package/dist/infrastructure/io/db-loader.js +23 -5
  351. package/dist/infrastructure/io/file-watcher.d.ts.map +1 -1
  352. package/dist/infrastructure/io/file-watcher.js +26 -7
  353. package/dist/infrastructure/io/git-manager.d.ts +22 -0
  354. package/dist/infrastructure/io/git-manager.d.ts.map +1 -1
  355. package/dist/infrastructure/io/git-manager.js +67 -39
  356. package/dist/infrastructure/io/logger/index.d.ts +5 -2
  357. package/dist/infrastructure/io/logger/index.d.ts.map +1 -1
  358. package/dist/infrastructure/io/logger/index.js +13 -9
  359. package/dist/infrastructure/io/process-watcher.d.ts +4 -0
  360. package/dist/infrastructure/io/process-watcher.d.ts.map +1 -1
  361. package/dist/infrastructure/io/process-watcher.js +32 -3
  362. package/dist/infrastructure/io/web-scraper.d.ts +13 -3
  363. package/dist/infrastructure/io/web-scraper.d.ts.map +1 -1
  364. package/dist/infrastructure/io/web-scraper.js +43 -21
  365. package/dist/infrastructure/license/gate.d.ts +2 -0
  366. package/dist/infrastructure/license/gate.d.ts.map +1 -1
  367. package/dist/infrastructure/license/gate.js +8 -3
  368. package/dist/infrastructure/license/index.d.ts +2 -2
  369. package/dist/infrastructure/license/index.d.ts.map +1 -1
  370. package/dist/infrastructure/license/index.js +2 -2
  371. package/dist/infrastructure/license/manager.d.ts.map +1 -1
  372. package/dist/infrastructure/license/manager.js +35 -10
  373. package/dist/infrastructure/license/storage.d.ts.map +1 -1
  374. package/dist/infrastructure/license/storage.js +29 -5
  375. package/dist/infrastructure/license/verifier.d.ts.map +1 -1
  376. package/dist/infrastructure/license/verifier.js +9 -3
  377. package/dist/infrastructure/utils/config-loader.d.ts +5 -0
  378. package/dist/infrastructure/utils/config-loader.d.ts.map +1 -1
  379. package/dist/infrastructure/utils/config-loader.js +118 -16
  380. package/dist/infrastructure/utils/error-parser/helpers.d.ts +24 -0
  381. package/dist/infrastructure/utils/error-parser/helpers.d.ts.map +1 -0
  382. package/dist/infrastructure/utils/error-parser/helpers.js +94 -0
  383. package/dist/infrastructure/utils/error-parser/index.d.ts +13 -0
  384. package/dist/infrastructure/utils/error-parser/index.d.ts.map +1 -0
  385. package/dist/infrastructure/utils/error-parser/index.js +46 -0
  386. package/dist/infrastructure/utils/error-parser/parsers-compiled.d.ts +6 -0
  387. package/dist/infrastructure/utils/error-parser/parsers-compiled.d.ts.map +1 -0
  388. package/dist/infrastructure/utils/error-parser/parsers-compiled.js +171 -0
  389. package/dist/infrastructure/utils/error-parser/parsers-dynamic.d.ts +8 -0
  390. package/dist/infrastructure/utils/error-parser/parsers-dynamic.d.ts.map +1 -0
  391. package/dist/infrastructure/utils/error-parser/parsers-dynamic.js +182 -0
  392. package/dist/infrastructure/utils/error-parser/types.d.ts +12 -0
  393. package/dist/infrastructure/utils/error-parser/types.d.ts.map +1 -0
  394. package/dist/infrastructure/utils/error-parser/types.js +1 -0
  395. package/dist/infrastructure/utils/migration.d.ts.map +1 -1
  396. package/dist/infrastructure/utils/migration.js +26 -11
  397. package/dist/infrastructure/utils/process-lock.d.ts.map +1 -1
  398. package/dist/infrastructure/utils/process-lock.js +15 -0
  399. package/examples/demo.sh +13 -6
  400. package/examples/demo.ts +50 -45
  401. package/examples/knowledge/bugs.md +71 -0
  402. package/package.json +4 -3
  403. package/prebuilds/darwin-arm64/uneven_core.node +0 -0
  404. package/prebuilds/linux-arm64/uneven_core.node +0 -0
  405. package/prebuilds/linux-x64/uneven_core.node +0 -0
  406. package/prebuilds/win32-x64/uneven_core.node +0 -0
  407. package/types/index.d.ts +45 -0
  408. package/dist/application/analysis/active-scanner.d.ts +0 -34
  409. package/dist/application/analysis/active-scanner.d.ts.map +0 -1
  410. package/dist/application/analysis/active-scanner.js +0 -454
  411. package/dist/application/analysis/data-analyst.d.ts +0 -86
  412. package/dist/application/analysis/data-analyst.d.ts.map +0 -1
  413. package/dist/application/analysis/data-analyst.js +0 -530
  414. package/dist/application/analysis/data-security-context.d.ts +0 -94
  415. package/dist/application/analysis/data-security-context.d.ts.map +0 -1
  416. package/dist/application/analysis/malware-scanner.d.ts +0 -64
  417. package/dist/application/analysis/malware-scanner.d.ts.map +0 -1
  418. package/dist/application/analysis/malware-scanner.js +0 -526
  419. package/dist/application/analysis/security-analyzer.d.ts +0 -37
  420. package/dist/application/analysis/security-analyzer.d.ts.map +0 -1
  421. package/dist/application/analysis/security-analyzer.js +0 -1083
  422. package/dist/application/development/fix-engine.d.ts +0 -123
  423. package/dist/application/development/fix-engine.d.ts.map +0 -1
  424. package/dist/application/development/fix-engine.js +0 -792
  425. package/dist/application/orchestration/engine.d.ts +0 -169
  426. package/dist/application/orchestration/engine.d.ts.map +0 -1
  427. package/dist/application/orchestration/engine.js +0 -1329
  428. package/dist/cli/commands/analyze.d.ts +0 -19
  429. package/dist/cli/commands/analyze.d.ts.map +0 -1
  430. package/dist/cli/commands/analyze.js +0 -447
  431. package/dist/cli/commands/init.d.ts +0 -5
  432. package/dist/cli/commands/init.d.ts.map +0 -1
  433. package/dist/cli/commands/init.js +0 -374
  434. package/dist/domain/entities/session.d.ts +0 -188
  435. package/dist/domain/entities/session.d.ts.map +0 -1
  436. package/dist/domain/entities/session.js +0 -396
  437. package/dist/infrastructure/adapters/external-providers.d.ts +0 -34
  438. package/dist/infrastructure/adapters/external-providers.d.ts.map +0 -1
  439. package/dist/infrastructure/adapters/external-providers.js +0 -392
  440. package/dist/infrastructure/utils/error-parser.d.ts +0 -47
  441. package/dist/infrastructure/utils/error-parser.d.ts.map +0 -1
  442. package/dist/infrastructure/utils/error-parser.js +0 -586
package/CHANGELOG.md CHANGED
@@ -5,6 +5,99 @@ All notable changes to Uneven AI will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.1.0] - 2026-04-20
9
+
10
+ ### Added
11
+
12
+ - **Privacy Hardening**: Enhanced protection for development environment privacy. Absolute paths from the host machine are now automatically stripped from distribution binaries.
13
+ - **Scalability**: New memory-optimized indexing architecture for massive codebases, allowing the engine to scale to millions of lines with a minimal RAM footprint.
14
+ - **Project Integrity**: Real-time configuration schema validation to prevent malformed settings from affecting system stability.
15
+
16
+ ### Fixed
17
+
18
+ - **Stability**: Improved sub-process management to ensure clean termination of development servers and dependent tasks, preventing orphan processes and resource leaks.
19
+ - **Reliability**: Advanced loop protection and binary-header identification in the knowledge indexing engine for safer directory traversal.
20
+ - **Error Propagation**: Enriched internal error system for more precise diagnostics and user feedback during AI inference.
21
+
22
+ ## [1.0.8] - 2026-04-19
23
+
24
+ ### Fixed
25
+
26
+ - **watcher/terminal**: `start()` now returns `Ok(None)` for non-zero exit codes instead of silently returning `Ok(())`; `Send + 'static` bound removed from `stream_output` callback; `&mut self` corrected to `&self`; I/O errors on reader tasks now emit warning instead of silent EOF
27
+ - **watcher/error_parser**: `message` now extracts the line containing the regex match instead of always returning the first line of output (fixes preamble cases like Rust panics)
28
+ - **watcher/mod**: path traversal guard added to `watch_directory` — `../` paths are now rejected
29
+ - **retrieval**: cosine similarity clamped to `max(0.0)` before `to_bits()` ordering — negative scores were ranking semantically opposite documents above similar ones
30
+ - **retrieval**: `write_hnsw` index save now uses atomic tmp+rename — SIGKILL during save no longer corrupts the index permanently
31
+ - **retrieval**: `stats()` now returns distinct values for documents and embeddings — both fields were identical before, making diagnostics useless
32
+ - **retrieval**: `clear()` now uses `tokio::fs::remove_file` — was blocking the Tokio executor with synchronous `std::fs` calls
33
+ - **retrieval**: lock poisoning in `hnsw_backend` handled via `unwrap_or_else(|e| e.into_inner())` in 6 locations
34
+ - **pentester/static_analysis**: `scan_secrets` was a no-op — fully reimplemented with BFS file walk, static `Lazy<Regex>` and minimum-length filter on API key patterns
35
+ - **pentester/port_scanner**: empty host now rejected with `PentesterError`; scan concurrency capped at 50 via batching; non-ECONNREFUSED errors propagated instead of swallowed
36
+ - **pentester/mod**: `static_analysis()` and `active_testing()` were stubs returning empty results — now delegate to their submodules; `SecurityFinding.severity` promoted from unvalidated `String` to typed `enum Severity`; CIDR `/0` now rejected
37
+ - **llm/inference**: stale `INTERRUPT` flag from a previous call no longer silences the next generation; race condition in `unload_model` between `LLAMA` and `LOADED_MODEL` closed; `is_model_loaded` uses `AtomicBool` — no longer returns `false` while writer holds the lock
38
+ - **llm/inference**: `run_inference` now returns real token count and real model name instead of hardcoded values
39
+ - **llm/embeddings**: double-init race fixed with `AtomicBool::compare_exchange`; lock poisoning handled via `unwrap_or_else(|e| e.into_inner())`
40
+ - **knowledge/indexer**: `index_directory` was checking path type but never traversing the filesystem — BFS walk now implemented; symlink cycle protection via `entry.file_type()`; path traversal guard added
41
+ - **knowledge/file_loader**: TOCTOU `exists()` check removed; extension check now runs before filesystem access
42
+ - **agent/fix**: `generate_patch` now produces valid unified diff with headers; `apply_patch` uses atomic write-then-rename; path traversal guard and stale-snapshot guard added
43
+ - **agent/mod**: `apply_fix` always returned `Ok(true)` without touching files — now delegates to `fix::apply_patch`; `diagnose` now delegates to `diagnose::diagnose_error`
44
+ - **napi**: `store_documents_batch` validates that all five input slices have equal length — `zip` was silently truncating to the shortest; `load_file_content` path traversal guard added
45
+ - **application/engine_service**: `initialize` now validates `brain.provider` and `brain.model`; concurrent-init race closed with `AtomicBool`; `UnevenEngine` singleton wired to NAPI via `OnceLock`
46
+ - **utils/config-loader**: partial `brain` override no longer overwrites config defaults with `undefined`; `syncConfigFromTs` uses atomic write-then-rename; backslash-escaped quote detection corrected
47
+ - **utils/migration**: `ENOTEMPTY` on already-migrated destination no longer stalls migration on every startup; per-file rename errors now tracked individually
48
+ - **utils/process-lock**: `release()` removes SIGINT/SIGTERM/exit listeners — prevented `MaxListenersExceededWarning` accumulation in test suites
49
+ - **utils/error-parser**: `extractStackTrace` now captures the exception message line preceding the first stack frame
50
+ - **license/gate**: expired pro license (`active: false`) no longer granted access; `process.exit(0)` on blocked feature corrected to `process.exit(1)`
51
+ - **license/manager**: `status()` now reflects real expiry; HTTP error responses no longer silently extend grace period; `writeLicense` failures inside `.catch()` no longer produce unhandled rejections
52
+ - **license/storage**: `readLicense()` validates all required fields at runtime — partial/corrupt cache no longer propagates `undefined`; `writeLicense` uses atomic write-then-rename
53
+ - **io/git-manager**: shell injection in `checkout`, `deleteBranch`, `revertCommit`, `commitFix` fixed — migrated to `execFileSync`/`execFile` with argument arrays
54
+ - **io/web-scraper**: concurrent fetch capped at 10; `undici` Agent reused via singleton instead of instantiated per request
55
+ - **io/process-watcher**: SIGKILL fallback added after 5s if process ignores SIGTERM; `off()` method added for listener removal
56
+ - **io/file-watcher**: `start()` no longer hangs indefinitely — error handler and 30s timeout added
57
+ - **io/logger**: UTC fields used consistently in `getTimestamp()`; `debug()` now writes to log file
58
+ - **io/db-loader**: empty `tables: []` now warns instead of silently loading 0 documents; DB type detection migrated from substring match to `URL.protocol`; `sanitizeUrl` redacts username in addition to password
59
+ - **adapters/external-providers**: Gemini safety-filter responses no longer throw TypeError; streaming readers closed in `finally` across all four providers; Gemini NDJSON parser uses proper `JSON.parse` instead of string-match heuristic
60
+ - **domain/resource-guardian**: uncaught callback exceptions in `setInterval` no longer crash the process; CPU hot-plug length mismatch guarded
61
+ - **domain/snapshot**: `restore()` validates that target path is inside project root before writing
62
+ - **domain/session**: `lockTimeoutHandle` nullified before `forceReleaseLock` — prevented new lock from being cancelled by expired-timeout cleanup
63
+ - **cli/analyze**: double-disconnect race in `runBatchDashboard` fixed; spinner interval leak on thrown error fixed
64
+ - **cli/askf**: `isSafeFilename()` guard added — LLM-supplied filenames with path traversal or absolute paths now rejected
65
+ - **cli/ci**: `__UNEVEN_GH_LINES` env var replaced with module-level array; external `Promise.race` deadline added to prevent indefinite CI hang
66
+ - **cli/log**: `readFileSync` replaced with `createReadStream` — large log files no longer risk OOM
67
+ - **orchestration/engine**: `unloadTimer`, `saveProgress` and `activeFixes` race conditions fixed; `promptUserConfirmFix` and `llmInfer` now have timeouts; `docType` inconsistency between index phases corrected
68
+ - **orchestration/incremental-index**: `markIndexedWithHash` rejects empty hash, negative size, or non-array `chunkIds`
69
+ - **orchestration/knowledge-retriever**: ReDoS in `extractSource` fixed (`\S+` → `\S{1,500}`)
70
+ - **development/fix-engine**: snapshot-before-lock race fixed; prompt injection via `error.message` sanitized; path traversal guard added; `fixAttempts` memory leak fixed
71
+ - **development/test-runner**: SIGKILL flag logic corrected; output buffer capped at 2 MB
72
+ - **development/analyst-job-manager**: concurrent `saveJobState` race serialized per job-id; task ID collision on same millisecond fixed
73
+
74
+ ## [1.0.7] - 2026-04-17
75
+
76
+ ### Fixed
77
+
78
+ - **license**: `parseKey` now correctly validates `UNVN-PRO-*` / `UNVN-TEAM-*` keys — 1.0.6 was published with a stale build that still rejected these keys as malformed (`TMR` prefix check)
79
+ - **license**: gate message now shows correct command `uneven-ai license activate` — 1.0.6 stale build showed `uneven license activate`
80
+
81
+ ## [1.0.6] - 2026-04-16
82
+
83
+ ### Fixed
84
+
85
+ - **askf**: parser no longer creates spurious `output.*` files from unlabelled code blocks in LLM explanation sections (Pattern 3)
86
+ - **askf**: `parseFilesWithId` now tolerates optional whitespace/blank line between filename and opening code fence — silent parse failures eliminated
87
+ - **license**: `parseKey` no longer rejects all `UNVN-PRO-*` / `UNVN-TEAM-*` keys as malformed (wrong prefix `TMR` → `UNVN`)
88
+ - **license**: gate message now shows correct command `uneven-ai license activate` (was missing `-ai`)
89
+ - **analyze**: `--package-exe` flag now works in batch mode — packager was instantiated but never called
90
+ - **packager**: replaced `execFile` + `stdio: inherit` (unsupported) with `spawn` for real-time pkg output streaming
91
+ - **dashboard**: chart gridline colors corrected for light theme (`#1e293b` → `#e2e8f0`)
92
+ - **engine**: `readExcelFile` row cap guard moved before `rows.push` (was accumulating rows past the 500-row limit)
93
+ - **engine**: formula cells now resolved via `v.result` instead of rendering as `[object Object]`
94
+ - **engine**: `.xls` (legacy BIFF format) now detected early with a clear warning instead of silently returning empty string
95
+
96
+ ### Added
97
+
98
+ - **test**: unit tests for `isValidTarget` — IPv4, CIDR, hostname, wildcard, localhost, edge cases (12 tests)
99
+ - **test**: unit tests for `parseFiles` and `parseFilesWithId` — all patterns including spurious-file regression (11 tests)
100
+
8
101
  ## [1.0.5] - 2026-04-16
9
102
 
10
103
  ### Fixed
@@ -481,7 +574,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
481
574
 
482
575
  - `src/core/license/` module: machine fingerprinting (SHA256 of platform+arch+hostname+homedir), encrypted local cache (`~/.config/uneven-ai/license.json`), offline grace period (7-day extension, max 30 days cumulative)
483
576
  - License key format: `TMR-{TIER}-{payload_b64}-{hmac}` — payload parsed locally, HMAC verified server-side
484
- - `uneven-ai license activate <key>` — activates key against `api.uneven-ai.dev`, caches result locally
577
+ - `uneven-ai license activate <key>` — activates key against `api.uneven.dev`, caches result locally
485
578
  - `uneven-ai license status` — shows tier, seats, expiry, machine ID
486
579
  - `uneven-ai license deactivate` — removes machine from seat count
487
580
  - Pro feature gate (`src/core/license/gate.ts`): commands blocked on free tier show upgrade message and exit cleanly
package/LICENSE CHANGED
@@ -3,7 +3,7 @@ Business Source License 1.1
3
3
  Licensor: KR Riley Soluções
4
4
  Licensed Work: Uneven AI
5
5
  Additional Use Grant: Personal, educational and non-commercial use is free.
6
- Change Date: 2029-01-01
6
+ Change Date: 2056-04-19
7
7
  Change License: Apache License 2.0
8
8
 
9
9
  Use Limitation: Production commercial use — including SaaS products,
@@ -24,6 +24,10 @@ contato@rileysolucoes.com.br
24
24
 
25
25
  ---
26
26
 
27
+ Uneven AI's "Maria" agent is powered by Llama 3.2. Llama 3.2 is licensed under the Llama 3.2 Community License, Copyright © Meta Platforms, Inc. All Rights Reserved.
28
+
29
+ ---
30
+
27
31
  BUSINESS SOURCE LICENSE 1.1 SUMMARY:
28
32
 
29
33
  What's free?
@@ -36,5 +40,5 @@ What requires a license?
36
40
  ❌ Commercial production use (SaaS, paid services, internal company use)
37
41
 
38
42
  Automatic conversion:
39
- - On 2029-01-01, this license converts to Apache 2.0
43
+ - On 2056-04-19, this license converts to Apache 2.0
40
44
  - At that point, all commercial uses become freely allowed