uneven-ai 0.11.1 → 0.12.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.

Potentially problematic release.


This version of uneven-ai might be problematic. Click here for more details.

Files changed (229) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +31 -18
  3. package/dist/{core → application/analysis}/active-scanner.d.ts +1 -1
  4. package/dist/application/analysis/active-scanner.d.ts.map +1 -0
  5. package/dist/application/analysis/dashboard-generator.d.ts.map +1 -0
  6. package/dist/{core → application/analysis}/data-analyst.d.ts +1 -1
  7. package/dist/application/analysis/data-analyst.d.ts.map +1 -0
  8. package/dist/{core → application/analysis}/data-analyst.js +2 -2
  9. package/dist/application/analysis/data-security-context.d.ts.map +1 -0
  10. package/dist/application/analysis/excel-exporter.d.ts.map +1 -0
  11. package/dist/{core → application/analysis}/llm-security-reviewer.d.ts +1 -1
  12. package/dist/application/analysis/llm-security-reviewer.d.ts.map +1 -0
  13. package/dist/{core → application/analysis}/malware-scanner.d.ts +1 -1
  14. package/dist/application/analysis/malware-scanner.d.ts.map +1 -0
  15. package/dist/{core → application/analysis}/malware-scanner.js +1 -1
  16. package/dist/application/analysis/pentest-security-context.d.ts.map +1 -0
  17. package/dist/application/analysis/report-packager.d.ts.map +1 -0
  18. package/dist/{core → application/analysis}/sbom-generator.d.ts +1 -1
  19. package/dist/application/analysis/sbom-generator.d.ts.map +1 -0
  20. package/dist/{core → application/analysis}/security-analyzer.d.ts +1 -1
  21. package/dist/application/analysis/security-analyzer.d.ts.map +1 -0
  22. package/dist/{core → application/analysis}/security-analyzer.js +1 -1
  23. package/dist/application/analysis/security-reporter.d.ts.map +1 -0
  24. package/dist/{core → application/analysis}/supply-chain-auditor.d.ts +1 -1
  25. package/dist/application/analysis/supply-chain-auditor.d.ts.map +1 -0
  26. package/dist/{core → application/development}/analyst-job-manager.d.ts +1 -1
  27. package/dist/application/development/analyst-job-manager.d.ts.map +1 -0
  28. package/dist/{core → application/development}/fix-engine.d.ts +3 -3
  29. package/dist/application/development/fix-engine.d.ts.map +1 -0
  30. package/dist/{core → application/development}/fix-engine.js +5 -5
  31. package/dist/{core → application/development}/test-runner.d.ts +1 -1
  32. package/dist/application/development/test-runner.d.ts.map +1 -0
  33. package/dist/application/index.d.ts +20 -0
  34. package/dist/application/index.d.ts.map +1 -0
  35. package/dist/application/index.js +19 -0
  36. package/dist/{core → application/orchestration}/engine.d.ts +3 -3
  37. package/dist/application/orchestration/engine.d.ts.map +1 -0
  38. package/dist/{core → application/orchestration}/engine.js +36 -28
  39. package/dist/application/orchestration/incremental-index.d.ts.map +1 -0
  40. package/dist/{core → application/orchestration}/knowledge-retriever.d.ts +2 -2
  41. package/dist/application/orchestration/knowledge-retriever.d.ts.map +1 -0
  42. package/dist/{core → application/orchestration}/knowledge-retriever.js +1 -1
  43. package/dist/cli/commands/analyze.js +14 -14
  44. package/dist/cli/commands/ask.d.ts.map +1 -1
  45. package/dist/cli/commands/ask.js +26 -7
  46. package/dist/cli/commands/askf.d.ts.map +1 -1
  47. package/dist/cli/commands/askf.js +16 -13
  48. package/dist/cli/commands/ci.js +9 -9
  49. package/dist/cli/commands/index.js +4 -4
  50. package/dist/cli/commands/info.js +3 -3
  51. package/dist/cli/commands/init.d.ts.map +1 -1
  52. package/dist/cli/commands/init.js +40 -19
  53. package/dist/cli/commands/license.d.ts.map +1 -1
  54. package/dist/cli/commands/license.js +2 -1
  55. package/dist/cli/commands/pentest.d.ts.map +1 -1
  56. package/dist/cli/commands/pentest.js +10 -8
  57. package/dist/cli/commands/reset.js +3 -3
  58. package/dist/cli/commands/restore.js +1 -1
  59. package/dist/cli/commands/scan.d.ts.map +1 -1
  60. package/dist/cli/commands/scan.js +9 -7
  61. package/dist/cli/commands/start.js +1 -1
  62. package/dist/cli/commands/test-cmd.js +2 -2
  63. package/dist/cli/commands/undo.js +2 -2
  64. package/dist/cli/commands/watch.d.ts.map +1 -1
  65. package/dist/cli/commands/watch.js +7 -8
  66. package/dist/cli/index.js +6 -2
  67. package/dist/cli/theme.js +1 -1
  68. package/dist/core/index.d.ts +10 -0
  69. package/dist/core/index.d.ts.map +1 -0
  70. package/dist/core/index.js +9 -0
  71. package/dist/domain/entities/session.d.ts.map +1 -0
  72. package/dist/domain/entities/snapshot.d.ts.map +1 -0
  73. package/dist/domain/index.d.ts +8 -0
  74. package/dist/domain/index.d.ts.map +1 -0
  75. package/dist/domain/index.js +8 -0
  76. package/dist/domain/services/chunker.d.ts.map +1 -0
  77. package/dist/domain/services/hardware-detector.d.ts +34 -0
  78. package/dist/domain/services/hardware-detector.d.ts.map +1 -0
  79. package/dist/{core → domain/services}/hardware-detector.js +37 -5
  80. package/dist/{core → domain/services}/index-planner.d.ts +1 -1
  81. package/dist/domain/services/index-planner.d.ts.map +1 -0
  82. package/dist/domain/services/resource-guardian.d.ts +39 -0
  83. package/dist/domain/services/resource-guardian.d.ts.map +1 -0
  84. package/dist/domain/services/resource-guardian.js +105 -0
  85. package/dist/{core → domain/services}/safety-guard.d.ts +1 -1
  86. package/dist/domain/services/safety-guard.d.ts.map +1 -0
  87. package/dist/index.d.ts +6 -5
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +5 -5
  90. package/dist/{core → infrastructure/adapters}/bridge.d.ts +10 -7
  91. package/dist/infrastructure/adapters/bridge.d.ts.map +1 -0
  92. package/dist/{core → infrastructure/adapters}/bridge.js +24 -12
  93. package/dist/{core → infrastructure/adapters}/external-providers.d.ts +2 -2
  94. package/dist/infrastructure/adapters/external-providers.d.ts.map +1 -0
  95. package/dist/{core → infrastructure/adapters}/external-providers.js +38 -16
  96. package/dist/infrastructure/index.d.ts +15 -0
  97. package/dist/infrastructure/index.d.ts.map +1 -0
  98. package/dist/infrastructure/index.js +15 -0
  99. package/dist/{core → infrastructure/io}/db-loader.d.ts +1 -1
  100. package/dist/infrastructure/io/db-loader.d.ts.map +1 -0
  101. package/dist/infrastructure/io/file-watcher.d.ts.map +1 -0
  102. package/dist/infrastructure/io/git-manager.d.ts.map +1 -0
  103. package/dist/{core → infrastructure/io}/logger/index.d.ts +1 -1
  104. package/dist/infrastructure/io/logger/index.d.ts.map +1 -0
  105. package/dist/{core → infrastructure/io}/logger/index.js +2 -2
  106. package/dist/{core → infrastructure/io}/process-watcher.d.ts +1 -1
  107. package/dist/infrastructure/io/process-watcher.d.ts.map +1 -0
  108. package/dist/{core → infrastructure/io}/process-watcher.js +1 -1
  109. package/dist/infrastructure/io/web-scraper.d.ts.map +1 -0
  110. package/dist/infrastructure/license/fingerprint.d.ts.map +1 -0
  111. package/dist/infrastructure/license/gate.d.ts.map +1 -0
  112. package/dist/{core → infrastructure}/license/index.d.ts +2 -0
  113. package/dist/infrastructure/license/index.d.ts.map +1 -0
  114. package/dist/{core → infrastructure}/license/index.js +2 -0
  115. package/dist/infrastructure/license/manager.d.ts.map +1 -0
  116. package/dist/{core → infrastructure}/license/manager.js +7 -17
  117. package/dist/infrastructure/license/storage.d.ts.map +1 -0
  118. package/dist/infrastructure/license/verifier.d.ts.map +1 -0
  119. package/dist/{core → infrastructure/utils}/config-loader.d.ts +1 -1
  120. package/dist/infrastructure/utils/config-loader.d.ts.map +1 -0
  121. package/dist/infrastructure/utils/error-parser.d.ts.map +1 -0
  122. package/dist/{core → infrastructure/utils}/error-parser.js +55 -0
  123. package/dist/infrastructure/utils/migration.d.ts +10 -0
  124. package/dist/infrastructure/utils/migration.d.ts.map +1 -0
  125. package/dist/infrastructure/utils/migration.js +63 -0
  126. package/dist/infrastructure/utils/process-lock.d.ts.map +1 -0
  127. package/dist/infrastructure/utils/timeout.d.ts.map +1 -0
  128. package/examples/demo.sh +10 -10
  129. package/examples/demo.ts +17 -17
  130. package/package.json +1 -1
  131. package/prebuilds/darwin-arm64/uneven_core.node +0 -0
  132. package/prebuilds/darwin-x64/uneven_core.node +0 -0
  133. package/prebuilds/linux-arm64/uneven_core.node +0 -0
  134. package/prebuilds/linux-x64/uneven_core.node +0 -0
  135. package/prebuilds/win32-x64/uneven_core.node +0 -0
  136. package/dist/core/active-scanner.d.ts.map +0 -1
  137. package/dist/core/analyst-job-manager.d.ts.map +0 -1
  138. package/dist/core/bridge.d.ts.map +0 -1
  139. package/dist/core/chunker.d.ts.map +0 -1
  140. package/dist/core/config-loader.d.ts.map +0 -1
  141. package/dist/core/dashboard-generator.d.ts.map +0 -1
  142. package/dist/core/data-analyst.d.ts.map +0 -1
  143. package/dist/core/data-security-context.d.ts.map +0 -1
  144. package/dist/core/db-loader.d.ts.map +0 -1
  145. package/dist/core/engine.d.ts.map +0 -1
  146. package/dist/core/error-parser.d.ts.map +0 -1
  147. package/dist/core/excel-exporter.d.ts.map +0 -1
  148. package/dist/core/external-providers.d.ts.map +0 -1
  149. package/dist/core/file-watcher.d.ts.map +0 -1
  150. package/dist/core/fix-engine.d.ts.map +0 -1
  151. package/dist/core/git-manager.d.ts.map +0 -1
  152. package/dist/core/hardware-detector.d.ts +0 -23
  153. package/dist/core/hardware-detector.d.ts.map +0 -1
  154. package/dist/core/incremental-index.d.ts.map +0 -1
  155. package/dist/core/index-planner.d.ts.map +0 -1
  156. package/dist/core/knowledge-retriever.d.ts.map +0 -1
  157. package/dist/core/license/fingerprint.d.ts.map +0 -1
  158. package/dist/core/license/gate.d.ts.map +0 -1
  159. package/dist/core/license/index.d.ts.map +0 -1
  160. package/dist/core/license/manager.d.ts.map +0 -1
  161. package/dist/core/license/storage.d.ts.map +0 -1
  162. package/dist/core/license/verifier.d.ts.map +0 -1
  163. package/dist/core/llm-security-reviewer.d.ts.map +0 -1
  164. package/dist/core/logger/index.d.ts.map +0 -1
  165. package/dist/core/malware-scanner.d.ts.map +0 -1
  166. package/dist/core/pentest-security-context.d.ts.map +0 -1
  167. package/dist/core/process-lock.d.ts.map +0 -1
  168. package/dist/core/process-watcher.d.ts.map +0 -1
  169. package/dist/core/report-packager.d.ts.map +0 -1
  170. package/dist/core/safety-guard.d.ts.map +0 -1
  171. package/dist/core/sbom-generator.d.ts.map +0 -1
  172. package/dist/core/security-analyzer.d.ts.map +0 -1
  173. package/dist/core/security-reporter.d.ts.map +0 -1
  174. package/dist/core/session.d.ts.map +0 -1
  175. package/dist/core/snapshot.d.ts.map +0 -1
  176. package/dist/core/supply-chain-auditor.d.ts.map +0 -1
  177. package/dist/core/test-runner.d.ts.map +0 -1
  178. package/dist/core/timeout.d.ts.map +0 -1
  179. package/dist/core/web-scraper.d.ts.map +0 -1
  180. /package/dist/{core → application/analysis}/active-scanner.js +0 -0
  181. /package/dist/{core → application/analysis}/dashboard-generator.d.ts +0 -0
  182. /package/dist/{core → application/analysis}/dashboard-generator.js +0 -0
  183. /package/dist/{core → application/analysis}/data-security-context.d.ts +0 -0
  184. /package/dist/{core → application/analysis}/data-security-context.js +0 -0
  185. /package/dist/{core → application/analysis}/excel-exporter.d.ts +0 -0
  186. /package/dist/{core → application/analysis}/excel-exporter.js +0 -0
  187. /package/dist/{core → application/analysis}/llm-security-reviewer.js +0 -0
  188. /package/dist/{core → application/analysis}/pentest-security-context.d.ts +0 -0
  189. /package/dist/{core → application/analysis}/pentest-security-context.js +0 -0
  190. /package/dist/{core → application/analysis}/report-packager.d.ts +0 -0
  191. /package/dist/{core → application/analysis}/report-packager.js +0 -0
  192. /package/dist/{core → application/analysis}/sbom-generator.js +0 -0
  193. /package/dist/{core → application/analysis}/security-reporter.d.ts +0 -0
  194. /package/dist/{core → application/analysis}/security-reporter.js +0 -0
  195. /package/dist/{core → application/analysis}/supply-chain-auditor.js +0 -0
  196. /package/dist/{core → application/development}/analyst-job-manager.js +0 -0
  197. /package/dist/{core → application/development}/test-runner.js +0 -0
  198. /package/dist/{core → application/orchestration}/incremental-index.d.ts +0 -0
  199. /package/dist/{core → application/orchestration}/incremental-index.js +0 -0
  200. /package/dist/{core → domain/entities}/session.d.ts +0 -0
  201. /package/dist/{core → domain/entities}/session.js +0 -0
  202. /package/dist/{core → domain/entities}/snapshot.d.ts +0 -0
  203. /package/dist/{core → domain/entities}/snapshot.js +0 -0
  204. /package/dist/{core → domain/services}/chunker.d.ts +0 -0
  205. /package/dist/{core → domain/services}/chunker.js +0 -0
  206. /package/dist/{core → domain/services}/index-planner.js +0 -0
  207. /package/dist/{core → domain/services}/safety-guard.js +0 -0
  208. /package/dist/{core → infrastructure/io}/db-loader.js +0 -0
  209. /package/dist/{core → infrastructure/io}/file-watcher.d.ts +0 -0
  210. /package/dist/{core → infrastructure/io}/file-watcher.js +0 -0
  211. /package/dist/{core → infrastructure/io}/git-manager.d.ts +0 -0
  212. /package/dist/{core → infrastructure/io}/git-manager.js +0 -0
  213. /package/dist/{core → infrastructure/io}/web-scraper.d.ts +0 -0
  214. /package/dist/{core → infrastructure/io}/web-scraper.js +0 -0
  215. /package/dist/{core → infrastructure}/license/fingerprint.d.ts +0 -0
  216. /package/dist/{core → infrastructure}/license/fingerprint.js +0 -0
  217. /package/dist/{core → infrastructure}/license/gate.d.ts +0 -0
  218. /package/dist/{core → infrastructure}/license/gate.js +0 -0
  219. /package/dist/{core → infrastructure}/license/manager.d.ts +0 -0
  220. /package/dist/{core → infrastructure}/license/storage.d.ts +0 -0
  221. /package/dist/{core → infrastructure}/license/storage.js +0 -0
  222. /package/dist/{core → infrastructure}/license/verifier.d.ts +0 -0
  223. /package/dist/{core → infrastructure}/license/verifier.js +0 -0
  224. /package/dist/{core → infrastructure/utils}/config-loader.js +0 -0
  225. /package/dist/{core → infrastructure/utils}/error-parser.d.ts +0 -0
  226. /package/dist/{core → infrastructure/utils}/process-lock.d.ts +0 -0
  227. /package/dist/{core → infrastructure/utils}/process-lock.js +0 -0
  228. /package/dist/{core → infrastructure/utils}/timeout.d.ts +0 -0
  229. /package/dist/{core → infrastructure/utils}/timeout.js +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,20 @@ 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
+ ## [0.12.0] - 2026-04-12
9
+
10
+ ### Changed — Pure Clean Architecture Refactor (Stages 1 & 2)
11
+
12
+ - **TypeScript Layer**: Complete migration of `src/core` to a modular 3-layer architecture:
13
+ - `src/domain/`: Core business entities, index planners, and safety guards.
14
+ - `src/application/`: High-level orchestration, security analyzers, and fix engines.
15
+ - `src/infrastructure/`: Low-level adapters including IO, DB loaders, terminal watchers, and the native bridge.
16
+ - **Rust Core**: Refactored `crates/uneven-core` into modular domain, application, and infrastructure modules for enhanced maintainability and feature isolation.
17
+ - **Barrels**: Introduced central entry points (`index.ts`) for each layer to standardize internal imports and discourage deep module coupling.
18
+ - **Licensing**: Refined the license gate with refined error reporting and direct exports for core verification functions.
19
+ - **Stability**: Fixed over 100 broken relative imports across the CLI and core engine caused by the directory structure changes.
20
+ - **Build System**: Standardized on absolute paths for internal tooling stability across various Node.js environments.
21
+
8
22
  ## [0.7.3] - 2026-04-09
9
23
 
10
24
  ### Fixed — complete audit of unreviewed modules
package/README.md CHANGED
@@ -11,7 +11,18 @@
11
11
  >
12
12
  > Embeds a **local LLM**, indexes your entire codebase, watches running terminals in real time, **autonomously fixes errors**, scans for **malicious code and compromised dependencies**, runs a built-in **AI data analyst**, performs **scoped security testing**, and generates **shareable reports** — all from a single CLI.
13
13
  >
14
- > **Rust-powered high-performance engine** with **TypeScript public API**. Zero network dependencies.
14
+ > **Rust-powered high-performance engine** with **Modular Clean Architecture**. Zero network dependencies.
15
+
16
+ ## 🏗️ Architecture
17
+
18
+ Starting with **v0.12.1**, Uneven AI is built on a robust modular architecture that ensures stability, privacy, and performance. The system is divided into clear layers of responsibility:
19
+
20
+ - **🌍 Domain**: Pure business logic and safety rules (the "Brain").
21
+ - **⚙️ Application**: Orchestrates analysis, terminal watching, and fix application.
22
+ - **🔌 Infrastructure**: High-performance adapters for local vector search, Rust core bridge, and I/O.
23
+ - **🖥️ CLI Layer**: Premium terminal user experience with rich visual feedback.
24
+
25
+ This design ensures that your code and credentials stay strictly local, only interacting with the necessary technical adapters in a controlled, auditable way.
15
26
 
16
27
  ## Features
17
28
 
@@ -37,7 +48,7 @@ Requirements vary significantly depending on the **brain provider** you choose.
37
48
  | Node.js | v18 (ESM required) | v20+ recommended |
38
49
  | RAM | 256 MB | Only embeddings model loaded (~300 MB peak) |
39
50
  | Disk | 200 MB | Embeddings model only |
40
- | OS | Linux, macOS, Windows (WSL2) | |
51
+ | OS | Linux, macOS, Windows 11 (Native) | |
41
52
 
42
53
  > API providers delegate processing to verified cloud endpoints. Uneven AI maintains a local semantic index for lightning-fast search while the core intelligence runs remotely. This is the optimal mode for low-resource environments.
43
54
 
@@ -48,7 +59,7 @@ Requirements vary significantly depending on the **brain provider** you choose.
48
59
  | Node.js | v18 (ESM required) | v20+ recommended |
49
60
  | RAM | 512 MB (Uneven AI) | Ollama manages model memory separately |
50
61
  | Disk | 200 MB + model size | Ollama stores models in its own directory |
51
- | OS | Linux, macOS, Windows (WSL2) | |
62
+ | OS | Linux, macOS, Windows 11 (Native) | |
52
63
 
53
64
  > Uneven AI itself uses ~512 MB. The Ollama daemon handles model memory independently — RAM required depends on the model you pull (e.g. `llama3.2` ~2 GB).
54
65
 
@@ -59,7 +70,7 @@ Requirements vary significantly depending on the **brain provider** you choose.
59
70
  | Node.js | v18 (ESM required) | v20+ |
60
71
  | RAM | 4 GB | 8 GB+ |
61
72
  | Disk | 200 MB (embeddings) | 2 GB+ (local LLM) |
62
- | OS | Linux, macOS, Windows (WSL2) | Linux / macOS |
73
+ | OS | Linux, macOS, Windows 11 (Native) | Linux / macOS |
63
74
 
64
75
  > The independent local mode loads a high-precision neural model directly into system memory. This ensures 100% offline operation and absolute data sovereignty with zero external dependencies.
65
76
 
@@ -125,8 +136,8 @@ uneven-ai ci
125
136
  If you are on a machine with limited RAM (VPS, CI, container, low-end laptop), use an API provider. Uneven AI in API mode loads only the embeddings model and stays well under 512 MB:
126
137
 
127
138
  ```typescript
128
- // uneven-ai.config.ts — optimized for API + low memory
129
- const config: Uneven AIConfig = {
139
+ // uneven.config.ts — optimized for API + low memory
140
+ const config: UnevenConfig = {
130
141
  brain: {
131
142
  provider: 'claude', // or 'openai' / 'gemini'
132
143
  model: 'claude-haiku-4-5-20251001', // smaller/cheaper model = lower latency
@@ -153,7 +164,7 @@ const config: Uneven AIConfig = {
153
164
 
154
165
  ## Configuration
155
166
 
156
- Create `uneven-ai.config.ts` in your project root:
167
+ Create `uneven.config.ts` in your project root:
157
168
 
158
169
  ```typescript
159
170
  import { UnevenConfig } from 'uneven-ai'
@@ -186,7 +197,7 @@ const config: UnevenConfig = {
186
197
  target: 'http://localhost:3000',
187
198
  },
188
199
  log: {
189
- path: './.uneven-ai/log.md',
200
+ path: './.uneven/log.md',
190
201
  },
191
202
  }
192
203
 
@@ -298,14 +309,14 @@ Pipeline steps:
298
309
  2. **Malware scan** — `uneven-ai scan --json`
299
310
  3. **Test suite** — `npm test`
300
311
 
301
- Exit code 0 = pass, exit code 1 = fail. Writes `.uneven-ai/ci-summary.json`.
312
+ Exit code 0 = pass, exit code 1 = fail. Writes `.uneven/ci-summary.json`.
302
313
 
303
314
  ## Programmatic API
304
315
 
305
316
  ```typescript
306
- import { Uneven AI } from 'uneven-ai'
317
+ import { Uneven } from 'uneven-ai'
307
318
 
308
- const ai = new Uneven AI({
319
+ const ai = new Uneven({
309
320
  brain: { provider: 'local', model: 'llama-3.2-1b-q8' },
310
321
  knowledge: { dirs: ['./src'] },
311
322
  watch: { terminal: 'npm run dev', autoFix: true },
@@ -335,6 +346,8 @@ await ai.stop()
335
346
  | Java | ✅ | ✅ |
336
347
  | PHP | ✅ | ✅ |
337
348
  | Ruby | ✅ | ✅ |
349
+ | COBOL | ✅ | ✅ |
350
+ | Assembly (x86/ARM) | ✅ | ✅ |
338
351
 
339
352
  ## Knowledge Sources
340
353
 
@@ -379,7 +392,7 @@ Privacy is not a feature; it's our foundation.
379
392
  ## Production Mode
380
393
 
381
394
  ```typescript
382
- const config: Uneven AIConfig = {
395
+ const config: UnevenConfig = {
383
396
  watch: {
384
397
  terminal: 'node dist/server.js',
385
398
  autoFix: false, // NEVER auto-fix in production
@@ -396,7 +409,7 @@ Uneven AI becomes a **monitoring agent** — detects issues but never modifies c
396
409
 
397
410
  ## Log Format
398
411
 
399
- All findings are logged to `.uneven-ai/log.md`:
412
+ All findings are logged to `.uneven/log.md`:
400
413
 
401
414
  ```markdown
402
415
  ## [10:32:14] Error Detected
@@ -446,8 +459,8 @@ New to Uneven AI? Follow the step-by-step guide to verify each feature works cor
446
459
  ## Contributing
447
460
 
448
461
  ```bash
449
- git clone https://github.com/kreivesler/uneven-ai-ai
450
- cd uneven-ai-ai
462
+ git clone https://github.com/kreivesler/uneven
463
+ cd uneven
451
464
  npm install
452
465
  npm run build
453
466
  npm test
@@ -457,15 +470,15 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md) for the full guide.
457
470
 
458
471
  ## Support & Issues
459
472
 
460
- - 🐛 [Report issues](https://github.com/kreivesler/uneven-ai-ai/issues)
473
+ - 🐛 [Report issues](https://github.com/kreivesler/uneven/issues)
461
474
  - 📧 [Email support](mailto:contato@rileysolucoes.com.br)
462
- - 💬 [Discussions](https://github.com/kreivesler/uneven-ai-ai/discussions)
475
+ - 💬 [Discussions](https://github.com/kreivesler/uneven/discussions)
463
476
 
464
477
  ---
465
478
 
466
479
  Built by **KR Riley Soluções** — a software engineering consultancy in Brazil.
467
480
 
468
- - 🌐 [uneven-ai.dev](https://uneven-ai.dev)
481
+ - 🌐 [uneven.dev](https://uneven.dev)
469
482
  - 📧 [contact@rileysolucoes.com.br](mailto:contato@rileysolucoes.com.br)
470
483
  - 🐙 [GitHub](https://github.com/kreivesler)
471
484
 
@@ -14,7 +14,7 @@
14
14
  * Every probe is guarded by PentestSecurityContext.checkTarget() before execution.
15
15
  * All results are written to .uneven/pentest-audit.log.
16
16
  */
17
- import { Logger } from './logger/index.js';
17
+ import { Logger } from '../../infrastructure/index.js';
18
18
  import { PentestSecurityContext } from './pentest-security-context.js';
19
19
  import { type SecurityFinding } from './security-analyzer.js';
20
20
  export declare class ActiveScanner {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-scanner.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/active-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAyI7D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,QAAQ,CAAe;gBAEnB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB;IAOjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA8CrD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA8GxD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA4EpD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAoEpD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA0ChE,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAwBlE,OAAO,CAAC,KAAK;YAKC,aAAa;CAQ5B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-generator.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/dashboard-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAA;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4DAA4D;IAC5D,cAAc,CAAC,EAAE,SAAS,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,qBAAa,kBAAkB;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAazF"}
@@ -8,7 +8,7 @@
8
8
  * - Credentials are never logged (sanitized URLs only)
9
9
  * - All destructive SQL is blocked even if user manually edits the query
10
10
  */
11
- import { Logger } from './logger/index.js';
11
+ import { Logger } from '../../infrastructure/index.js';
12
12
  import { DataSecurityContext, SecurityPolicy } from './data-security-context.js';
13
13
  export type DbType = 'postgresql' | 'mysql' | 'sqlite' | 'mongodb';
14
14
  export interface ColumnInfo {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-analyst.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/data-analyst.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEtD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAUhF,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;AAElE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,cAAc,EAAE,OAAO,CAAA;CACxB;AAOD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAoB;IAClC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;gBAE1B,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAO9D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+CrC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;;;;;;OAOG;IACG,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoDxE;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAqC7C;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YA2B5B,kBAAkB;YAqBlB,eAAe;YAqBf,gBAAgB;YA4BhB,eAAe;IAwB7B;;;OAGG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgE/D;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAiFpF,SAAS,IAAI,WAAW,EAAE;IAC1B,SAAS,IAAI,MAAM,GAAG,IAAI;CAC3B;AAID,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOhD"}
@@ -8,9 +8,9 @@
8
8
  * - Credentials are never logged (sanitized URLs only)
9
9
  * - All destructive SQL is blocked even if user manually edits the query
10
10
  */
11
- import { llmInfer, isNativeAvailable } from './bridge.js';
11
+ import { llmInfer, isNativeAvailable } from '../../infrastructure/index.js';
12
12
  import { DataSecurityContext } from './data-security-context.js';
13
- import { withTimeout, TimeoutError } from './timeout.js';
13
+ import { withTimeout, TimeoutError } from '../../infrastructure/index.js';
14
14
  // ─── Timeout budgets ──────────────────────────────────────────────────────────
15
15
  const DB_CONNECT_TIMEOUT_MS = 10_000; // initial connection + ping
16
16
  const DB_QUERY_TIMEOUT_MS = 30_000; // any single SELECT
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-security-context.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/data-security-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAIjE,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IAEzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IAExB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IAEjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAA;IACnB,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAID;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,cAAc,CAmDnD,CAAA;AAID,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAA0B;IACxC,kEAAkE;IAClE,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,aAAa,CAA2C;gBAEpD,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAiChD;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE;IA6BpF;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAuClC;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE;IA8C5E;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAiB1B,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC;IAIrC,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,cAAc;CAGvB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-exporter.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/excel-exporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAIpD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wCAAwC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,aAAa;IACxB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBtF;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,EAC1D,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC;IA2BxB,OAAO,CAAC,UAAU;CAwEnB"}
@@ -13,7 +13,7 @@
13
13
  * Skips review if no brain is configured or inference fails.
14
14
  */
15
15
  import { type SecurityFinding } from './security-analyzer.js';
16
- import { Logger } from './logger/index.js';
16
+ import { Logger } from '../../infrastructure/index.js';
17
17
  export interface ReviewedFinding extends SecurityFinding {
18
18
  llmVerdict?: 'confirmed' | 'false_positive' | 'uncertain';
19
19
  llmNote?: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-security-reviewer.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/llm-security-reviewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEtD,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,UAAU,CAAC,EAAE,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAAA;IACzD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAgBD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAqC;IAEpD;;OAEG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;IAKlE,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAiD/D,cAAc;IAe5B;;OAEG;IACH,OAAO,CAAC,eAAe;YAqBT,MAAM;IA+BpB,OAAO,CAAC,YAAY;CASrB"}
@@ -12,7 +12,7 @@
12
12
  * The LLM layer only activates for findings that pass static filters but have
13
13
  * a confidence < SEMANTIC_THRESHOLD. This keeps scan time low for clean projects.
14
14
  */
15
- import { Logger } from './logger/index.js';
15
+ import { Logger } from '../../infrastructure/index.js';
16
16
  export type MalwareCategory = 'remote-shell' | 'data-exfiltration' | 'obfuscation' | 'supply-chain' | 'credential-theft' | 'persistence' | 'crypto-mining' | 'typosquatting';
17
17
  export interface MaliciousFinding {
18
18
  severity: 'critical' | 'high' | 'medium' | 'low';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"malware-scanner.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/malware-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAKtD,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,mBAAmB,GACnB,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,aAAa,GACb,eAAe,GACf,eAAe,CAAA;AAEnB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;IAChD,QAAQ,EAAE,eAAe,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,WAAW,EAAE,OAAO,CAAA;IACpB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;CAC3D;AA8KD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAI1B;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAgCpF,OAAO,CAAC,aAAa,CAAI;YAEX,eAAe;YAkBf,eAAe;IA8E7B,OAAO,CAAC,YAAY,CAAI;YAEV,gBAAgB;YAmFhB,oBAAoB;IAwDlC;;;;;;OAMG;YACW,kBAAkB;YAmClB,YAAY;IAkC1B,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import * as fs from 'fs/promises';
16
16
  import * as path from 'path';
17
- import { llmInfer, isNativeAvailable } from './bridge.js';
17
+ import { llmInfer, isNativeAvailable } from '../../infrastructure/index.js';
18
18
  const STATIC_RULES = [
19
19
  // ── Remote shell / RCE ─────────────────────────────────────────────────────
20
20
  {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pentest-security-context.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/pentest-security-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAA;IACpB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAA;IACjB,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,yBAAyB;IACzB,YAAY,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAA;IACxC,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,IAAI,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,KAAK,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,SAAS,CAAA;AAuFnD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,KAAK,CAA4B;gBAE7B,WAAW,GAAE,MAAsB;IAO/C;;;OAGG;IACG,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,YAAY,GAAE,YAAY,CAAC,cAAc,CAAc,EACvD,YAAY,GAAE,MAAiB,GAC9B,OAAO,CAAC,YAAY,CAAC;IAqBxB;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA0B/C,mCAAmC;IAC7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiDtD;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBhF;;;OAGG;IACH,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM;IAkCzD,QAAQ,IAAI,YAAY,GAAG,IAAI;IAE/B,cAAc,IAAI;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;YAajF,KAAK;IASnB,OAAO,CAAC,WAAW;CAIpB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-packager.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/report-packager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AASH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,CAAA;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,GAAE,MAAqD;IAI3E;;OAEG;IACG,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAqCpF;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAgC5E,OAAO,CAAC,iBAAiB;IA4FzB,OAAO,CAAC,MAAM;YAoCA,YAAY;CAyB3B"}
@@ -13,7 +13,7 @@
13
13
  * - Linked vulnerabilities from SecurityFinding list
14
14
  * - Metadata: project name, timestamp, Uneven version, component counts
15
15
  */
16
- import { Logger } from './logger/index.js';
16
+ import { Logger } from '../../infrastructure/index.js';
17
17
  import { type SecurityFinding } from './security-analyzer.js';
18
18
  export declare class SBOMGenerator {
19
19
  private logger;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sbom-generator.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/sbom-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAoE7D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,EAAE,SAAS,GAAE,MAAkB;IAMhF,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAqK9C,YAAY;CAG3B"}
@@ -8,7 +8,7 @@
8
8
  * - Expanded CVE database: +20 entries, Python requirements.txt, Cargo.toml support
9
9
  * - npm audit integration already in Phase 1
10
10
  */
11
- import { Logger } from './logger/index.js';
11
+ import { Logger } from '../../infrastructure/index.js';
12
12
  export interface SecurityFinding {
13
13
  severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
14
14
  type: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-analyzer.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/security-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAItD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAmFD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAMpB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA4IvD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA2LrD,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAoJ9C,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAyHzC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAoE1D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA2E9D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAgL9D,wBAAwB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAmFtD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YA2BhD,YAAY;CAe3B"}
@@ -483,7 +483,7 @@ export class SecurityAnalyzer {
483
483
  // If npm audit --json is available, also surface its findings
484
484
  try {
485
485
  const { execSync } = await import('child_process');
486
- const auditOutput = execSync('npm audit --json 2>/dev/null', {
486
+ const auditOutput = execSync('npm audit --json', {
487
487
  cwd: process.cwd(),
488
488
  timeout: 15000,
489
489
  encoding: 'utf-8',
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-reporter.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/security-reporter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;AAEjD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA0BD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAQ;gBAEb,SAAS,GAAE,MAAkB;IAInC,QAAQ,CACZ,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC;IAkCxB,OAAO,CAAC,aAAa;IA4FrB,OAAO,CAAC,SAAS;IAgJjB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,GAAG;CAQZ"}
@@ -9,7 +9,7 @@
9
9
  * 4. Integrity mismatch — package-lock.json integrity hash vs installed package hash
10
10
  * 5. Typosquatting — package names within edit-distance 2 of popular packages
11
11
  */
12
- import { Logger } from './logger/index.js';
12
+ import { Logger } from '../../infrastructure/index.js';
13
13
  import { type SecurityFinding } from './security-analyzer.js';
14
14
  export declare class SupplyChainAuditor {
15
15
  private logger;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supply-chain-auditor.d.ts","sourceRoot":"","sources":["../../../src/application/analysis/supply-chain-auditor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AA2D7D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,GAAG,CAAQ;gBAEP,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB;IAKjD,KAAK,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAwD3B,YAAY;CAuG3B"}
@@ -1,4 +1,4 @@
1
- import { Logger } from './logger/index.js';
1
+ import { Logger } from '../../infrastructure/index.js';
2
2
  export interface AnalystTask {
3
3
  id: string;
4
4
  tableName: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyst-job-manager.d.ts","sourceRoot":"","sources":["../../../src/application/development/analyst-job-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAsB;IAK3D;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqB/F;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAQpF;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAU7D;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAY7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;YAerB,cAAc;CAG7B"}
@@ -3,10 +3,10 @@
3
3
  *
4
4
  * Generates and applies fixes for detected errors
5
5
  */
6
- import { Logger } from './logger/index.js';
7
- import { ParsedError } from './error-parser.js';
6
+ import { Logger } from '../../infrastructure/io/logger/index.js';
7
+ import { ParsedError } from '../../infrastructure/utils/error-parser.js';
8
8
  import { TestResult } from './test-runner.js';
9
- import { KnowledgeRetriever } from './knowledge-retriever.js';
9
+ import { KnowledgeRetriever } from '../orchestration/knowledge-retriever.js';
10
10
  export interface FixSuggestion {
11
11
  error: ParsedError;
12
12
  explanation: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-engine.d.ts","sourceRoot":"","sources":["../../../src/application/development/fix-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAA;AAChE,OAAO,EAAE,WAAW,EAAyB,MAAM,4CAA4C,CAAA;AAG/F,OAAO,EAAc,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAoB,MAAM,yCAAyC,CAAA;AAI9F,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,aAAa,EAAE,OAAO,CAAA;IACtB,oBAAoB,EAAE,OAAO,CAAA;CAC9B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAI;IAChC,OAAO,CAAC,WAAW,CAAa;gBAEpB,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,kBAAkB;IAS1D;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA2CnE;;;;;;;;;;OAUG;YACW,aAAa;IA4F3B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAoBlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4C5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqEpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgFtB;;OAEG;IACH,OAAO,CAAC,aAAa;IA8DrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuEtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0CzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;;OAGG;IACG,QAAQ,CACZ,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,cAAc,CAAC;YAyIZ,cAAc;IAe5B,OAAO,CAAC,aAAa;CAYtB"}
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * Generates and applies fixes for detected errors
5
5
  */
6
- import { readCodeBlockFromFile } from './error-parser.js';
7
- import { SnapshotManager } from './snapshot.js';
8
- import { GitManager } from './git-manager.js';
6
+ import { readCodeBlockFromFile } from '../../infrastructure/utils/error-parser.js';
7
+ import { SnapshotManager } from '../../domain/entities/snapshot.js';
8
+ import { GitManager } from '../../infrastructure/io/git-manager.js';
9
9
  import { TestRunner } from './test-runner.js';
10
- import { llmInfer, isNativeAvailable } from './bridge.js';
11
- import { SafetyGuard } from './safety-guard.js';
10
+ import { llmInfer, isNativeAvailable } from '../../infrastructure/adapters/bridge.js';
11
+ import { SafetyGuard } from '../../domain/services/safety-guard.js';
12
12
  export class FixEngine {
13
13
  logger;
14
14
  snapshots;
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Used by the fix engine to confirm fixes don't break existing tests.
9
9
  */
10
- import { Logger } from './logger/index.js';
10
+ import { Logger } from '../../infrastructure/index.js';
11
11
  export type TestFramework = 'jest' | 'vitest' | 'mocha' | 'jasmine' | 'pytest' | 'cargo-test' | 'go-test' | 'phpunit' | 'rspec' | 'unknown';
12
12
  export interface TestResult {
13
13
  framework: TestFramework;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../../src/application/development/test-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAItD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,CAAA;AAEb,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,aAAa,CAAA;IACxB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AA6FD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAQ;gBAEf,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAAsB;IAK/D;;OAEG;IACH,MAAM,IAAI;QAAE,SAAS,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAUvD;;OAEG;IACG,GAAG,CAAC,MAAM,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmF7D;;;OAGG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,gBAAqB,GAC5B,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BvE,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,aAAa;CAatB"}
@@ -0,0 +1,20 @@
1
+ export * from './orchestration/engine.js';
2
+ export * from './orchestration/incremental-index.js';
3
+ export * from './orchestration/knowledge-retriever.js';
4
+ export * from './analysis/security-analyzer.js';
5
+ export * from './analysis/active-scanner.js';
6
+ export * from './analysis/malware-scanner.js';
7
+ export * from './analysis/data-analyst.js';
8
+ export * from './analysis/data-security-context.js';
9
+ export * from './analysis/pentest-security-context.js';
10
+ export * from './analysis/llm-security-reviewer.js';
11
+ export * from './analysis/supply-chain-auditor.js';
12
+ export * from './analysis/sbom-generator.js';
13
+ export * from './analysis/dashboard-generator.js';
14
+ export * from './analysis/excel-exporter.js';
15
+ export * from './analysis/report-packager.js';
16
+ export * from './analysis/security-reporter.js';
17
+ export * from './development/fix-engine.js';
18
+ export * from './development/test-runner.js';
19
+ export * from './development/analyst-job-manager.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,sCAAsC,CAAA;AACpD,cAAc,wCAAwC,CAAA;AACtD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qCAAqC,CAAA;AACnD,cAAc,wCAAwC,CAAA;AACtD,cAAc,qCAAqC,CAAA;AACnD,cAAc,oCAAoC,CAAA;AAClD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sCAAsC,CAAA"}
@@ -0,0 +1,19 @@
1
+ export * from './orchestration/engine.js';
2
+ export * from './orchestration/incremental-index.js';
3
+ export * from './orchestration/knowledge-retriever.js';
4
+ export * from './analysis/security-analyzer.js';
5
+ export * from './analysis/active-scanner.js';
6
+ export * from './analysis/malware-scanner.js';
7
+ export * from './analysis/data-analyst.js';
8
+ export * from './analysis/data-security-context.js';
9
+ export * from './analysis/pentest-security-context.js';
10
+ export * from './analysis/llm-security-reviewer.js';
11
+ export * from './analysis/supply-chain-auditor.js';
12
+ export * from './analysis/sbom-generator.js';
13
+ export * from './analysis/dashboard-generator.js';
14
+ export * from './analysis/excel-exporter.js';
15
+ export * from './analysis/report-packager.js';
16
+ export * from './analysis/security-reporter.js';
17
+ export * from './development/fix-engine.js';
18
+ export * from './development/test-runner.js';
19
+ export * from './development/analyst-job-manager.js';
@@ -4,8 +4,8 @@
4
4
  * Coordinates all components: LLM, knowledge base, watchers, pentester
5
5
  */
6
6
  import { EventEmitter } from 'events';
7
- import type { UnevenConfig, UnevenEventHandler, EventType } from '../../types/index.js';
8
- import { Logger } from './logger/index.js';
7
+ import type { UnevenConfig, UnevenEventHandler, EventType } from '../../../types/index.js';
8
+ import { Logger } from '../../infrastructure/io/logger/index.js';
9
9
  export declare class Uneven extends EventEmitter {
10
10
  private config;
11
11
  private logger;
@@ -40,7 +40,7 @@ export declare class Uneven extends EventEmitter {
40
40
  * Does NOT read or embed anything — pure stat() calls.
41
41
  * Use this to show a cost/time preview before running index().
42
42
  */
43
- planIndex(maxFileBytes?: number): Promise<import("./index-planner.js").IndexPlan>;
43
+ planIndex(maxFileBytes?: number): Promise<import("../../domain/services/index-planner.js").IndexPlan>;
44
44
  /**
45
45
  * Index all knowledge sources
46
46
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/application/orchestration/engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,KAAK,EAAE,YAAY,EAAe,kBAAkB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAgBvG,OAAO,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAA;AAsBhE,qBAAa,MAAO,SAAQ,YAAY;IACtC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,OAAO,CAAiB;IAChC,yEAAyE;IACzE,OAAO,CAAC,WAAW,CAAyB;IAC5C,4DAA4D;IAC5D,OAAO,CAAC,WAAW,CAA8B;IACjD,8EAA8E;IAC9E,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAkB;gBAE9B,MAAM,EAAE,YAAY;IAUhC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+E3B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;;;OAIG;IACG,SAAS,CAAC,YAAY,SAAyB;IAiBrD;;OAEG;IACG,KAAK,CAAC,SAAS,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkS9D;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;YACW,YAAY;IAgB1B;;;;;;OAMG;YACW,aAAa;IAsF3B;;OAEG;YACW,YAAY;IAyB1B;;OAEG;YACW,WAAW;IAyBzB;;OAEG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAmF/E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6G5B;;;;;;;OAOG;YACW,cAAc;IAwF5B;;;;;OAKG;YACW,oBAAoB;IAkDlC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyJ9B;;OAEG;IACH,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,EAAE,CACA,KAAK,EAAE,SAAS,GAAG,MAAM,EACzB,OAAO,EAAE,kBAAkB,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GACvD,IAAI;IAIP;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;YACW,QAAQ;IAItB;;OAEG;IACH,OAAO,CAAC,QAAQ;CASjB"}
@@ -4,29 +4,30 @@
4
4
  * Coordinates all components: LLM, knowledge base, watchers, pentester
5
5
  */
6
6
  import { EventEmitter } from 'events';
7
- import { initNativeEngine, getNativeVersion, isNativeAvailable, initLlmEngine, unloadLocalModel, llmEmbed, llmInfer, retrievalSearch, storeDocument, flushVectorStore, } from './bridge.js';
7
+ import { initNativeEngine, getNativeVersion, isNativeAvailable, initLlmEngine, unloadLocalModel, llmEmbed, llmInfer, retrievalSearch, storeDocument, flushVectorStore, } from '../../infrastructure/adapters/bridge.js';
8
8
  import * as path from 'path';
9
9
  import * as fs from 'fs/promises';
10
- import { Logger } from './logger/index.js';
11
- import { chunkDocument } from './chunker.js';
12
- import { DatabaseLoader } from './db-loader.js';
13
- import { WebScraper } from './web-scraper.js';
14
- import { ProcessWatcher } from './process-watcher.js';
15
- import { FileWatcher } from './file-watcher.js';
16
- import { FixEngine } from './fix-engine.js';
17
- import { SecurityAnalyzer } from './security-analyzer.js';
18
- import { ActiveScanner } from './active-scanner.js';
19
- import { PentestSecurityContext } from './pentest-security-context.js';
20
- import { LLMSecurityReviewer } from './llm-security-reviewer.js';
21
- import { SupplyChainAuditor } from './supply-chain-auditor.js';
22
- import { SBOMGenerator } from './sbom-generator.js';
23
- import { ExternalProviders } from './external-providers.js';
24
- import { SessionManager } from './session.js';
10
+ import { Logger } from '../../infrastructure/io/logger/index.js';
11
+ import { chunkDocument } from '../../domain/services/chunker.js';
12
+ import { DatabaseLoader } from '../../infrastructure/io/db-loader.js';
13
+ import { WebScraper } from '../../infrastructure/io/web-scraper.js';
14
+ import { ProcessWatcher } from '../../infrastructure/io/process-watcher.js';
15
+ import { FileWatcher } from '../../infrastructure/io/file-watcher.js';
16
+ import { FixEngine } from '../development/fix-engine.js';
17
+ import { SecurityAnalyzer } from '../analysis/security-analyzer.js';
18
+ import { ActiveScanner } from '../analysis/active-scanner.js';
19
+ import { PentestSecurityContext } from '../analysis/pentest-security-context.js';
20
+ import { LLMSecurityReviewer } from '../analysis/llm-security-reviewer.js';
21
+ import { SupplyChainAuditor } from '../analysis/supply-chain-auditor.js';
22
+ import { SBOMGenerator } from '../analysis/sbom-generator.js';
23
+ import { ExternalProviders } from '../../infrastructure/adapters/external-providers.js';
24
+ import { SessionManager } from '../../domain/entities/session.js';
25
25
  import { IncrementalIndex } from './incremental-index.js';
26
26
  import { KnowledgeRetriever } from './knowledge-retriever.js';
27
- import { IndexPlanner, DEFAULT_MAX_FILE_BYTES, formatBytes } from './index-planner.js';
28
- import { SafetyGuard } from './safety-guard.js';
29
- import { HardwareDetector } from './hardware-detector.js';
27
+ import { IndexPlanner, DEFAULT_MAX_FILE_BYTES, HARD_SKIP_BYTES, formatBytes } from '../../domain/services/index-planner.js';
28
+ import { SafetyGuard } from '../../domain/services/safety-guard.js';
29
+ import { HardwareDetector } from '../../domain/services/hardware-detector.js';
30
+ import { migrateLegacyStructure } from '../../infrastructure/utils/migration.js';
30
31
  export class Uneven extends EventEmitter {
31
32
  config;
32
33
  logger;
@@ -45,7 +46,7 @@ export class Uneven extends EventEmitter {
45
46
  constructor(config) {
46
47
  super();
47
48
  this.config = config;
48
- this.logger = new Logger(config.log?.path || './.uneven/log.md');
49
+ this.logger = new Logger(config.log?.path || './.uneven/logs/main.md');
49
50
  this.session = new SessionManager();
50
51
  this.incrementalIndex = new IncrementalIndex();
51
52
  this.safetyGuard = new SafetyGuard(this.logger);
@@ -59,13 +60,17 @@ export class Uneven extends EventEmitter {
59
60
  throw new Error('Uneven already initialized');
60
61
  }
61
62
  try {
62
- this.logger.info('Initializing Uneven engine...');
63
+ // 🚀 Clean up legacy structure before doing anything else
64
+ await migrateLegacyStructure();
65
+ this.logger.info('Initializing native engine...');
66
+ const threads = this.config.brain?.local?.threads ?? 4;
67
+ await initNativeEngine(this.config, threads);
68
+ this.logger.info('Engine initialized. Checking brain configuration...');
63
69
  this.logger.info(`Native binding available: ${isNativeAvailable()}`);
64
70
  this.logger.info(`Engine version: ${getNativeVersion()}`);
65
71
  const provider = this.config.brain?.provider ?? 'local';
66
72
  const model = this.config.brain?.model ?? 'llama3.2';
67
73
  if (isNativeAvailable()) {
68
- await initNativeEngine(this.config);
69
74
  // 🚀 Hardware Acceleration: Detect GPU if using local brain
70
75
  if (provider === 'local') {
71
76
  const gpuInfo = await this.hardwareDetector.detectGPU();
@@ -86,7 +91,8 @@ export class Uneven extends EventEmitter {
86
91
  // Pass provider so local model is only loaded when explicitly configured.
87
92
  // API providers (claude, openai, gemini, ollama) skip local model loading
88
93
  // and stay under 512 MB RAM — only the embeddings model is loaded.
89
- await initLlmEngine(provider);
94
+ const threads = this.config.brain?.local?.threads ?? 4;
95
+ await initLlmEngine(provider, threads);
90
96
  }
91
97
  this.logger.info('Uneven engine initialized successfully');
92
98
  this.initialized = true;
@@ -225,9 +231,8 @@ export class Uneven extends EventEmitter {
225
231
  const stats = await fs.stat(filePath).catch(() => null);
226
232
  if (!stats)
227
233
  return;
228
- const { HARD_SKIP_BYTES } = await import('./index-planner.js');
229
234
  if (stats.size >= HARD_SKIP_BYTES) {
230
- this.logger.warning(`Files: skipping ${filePath} — ${formatBytes(stats.size)} exceeds hard limit`);
235
+ await this.logger.warning(`Files: skipping ${filePath} — ${formatBytes(stats.size)} exceeds hard limit`);
231
236
  this.emitEvent('warning', {
232
237
  message: `Skipped oversized file: ${filePath}`,
233
238
  });
@@ -468,7 +473,8 @@ export class Uneven extends EventEmitter {
468
473
  '.ts', '.tsx', '.js', '.jsx',
469
474
  '.json', '.md', '.txt', '.yaml', '.yml',
470
475
  '.rs', '.py', '.go', '.java', '.cpp', '.c', '.toml',
471
- '.xls', '.xlsx', '.csv', '.docx', '.pdf'
476
+ '.xls', '.xlsx', '.csv', '.docx', '.pdf',
477
+ '.cbl', '.cob', '.asm', '.s'
472
478
  ];
473
479
  // Privacy: skip sensitive files even if extension matches
474
480
  const ignoredFiles = ['.env', '.pem', '.key', '.crt', '.pfx', '.db-shm', '.db-wal'];
@@ -687,12 +693,14 @@ export class Uneven extends EventEmitter {
687
693
  const maxTokens = this.config.brain?.maxTokens || 512;
688
694
  let response;
689
695
  if (provider === 'local') {
690
- const result = await llmInfer(fullPrompt, maxTokens);
696
+ const threads = this.config.brain?.local?.threads ?? 4;
697
+ const result = await llmInfer(fullPrompt, maxTokens, threads);
691
698
  response = result.content;
692
699
  }
693
700
  else {
694
701
  const extProviders = new ExternalProviders(this.logger);
695
- const result = await extProviders.infer(fullPrompt, provider, model, maxTokens, onToken);
702
+ const apiKey = this.config.brain?.apiKey;
703
+ const result = await extProviders.infer(fullPrompt, provider, model, maxTokens, onToken, apiKey);
696
704
  response = result.content;
697
705
  }
698
706
  // 🛡️ Safety Guard Phase 3: Sanitize AI Output