agentic-qe 2.3.5 → 2.5.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 (326) hide show
  1. package/.claude/agents/qe-a11y-ally.md +751 -0
  2. package/.claude/agents/qx-partner.md +120 -4
  3. package/.claude/skills/testability-scoring/SKILL.md +107 -6
  4. package/CHANGELOG.md +133 -0
  5. package/README.md +7 -6
  6. package/dist/agents/AccessibilityAllyAgent.d.ts +168 -0
  7. package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -0
  8. package/dist/agents/AccessibilityAllyAgent.js +462 -0
  9. package/dist/agents/AccessibilityAllyAgent.js.map +1 -0
  10. package/dist/agents/BaseAgent.d.ts +56 -49
  11. package/dist/agents/BaseAgent.d.ts.map +1 -1
  12. package/dist/agents/BaseAgent.js +208 -604
  13. package/dist/agents/BaseAgent.js.map +1 -1
  14. package/dist/agents/FlakyTestHunterAgent.d.ts +2 -2
  15. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  16. package/dist/agents/FlakyTestHunterAgent.js +8 -104
  17. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  18. package/dist/agents/SONAIntegration.d.ts +109 -0
  19. package/dist/agents/SONAIntegration.d.ts.map +1 -0
  20. package/dist/agents/SONAIntegration.js +167 -0
  21. package/dist/agents/SONAIntegration.js.map +1 -0
  22. package/dist/agents/TestExecutorAgent.d.ts +1 -1
  23. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  24. package/dist/agents/TestExecutorAgent.js +4 -46
  25. package/dist/agents/TestExecutorAgent.js.map +1 -1
  26. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  27. package/dist/agents/TestGeneratorAgent.js +15 -35
  28. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  29. package/dist/agents/adapters/CoordinatorAdapter.d.ts +47 -0
  30. package/dist/agents/adapters/CoordinatorAdapter.d.ts.map +1 -0
  31. package/dist/agents/adapters/CoordinatorAdapter.js +266 -0
  32. package/dist/agents/adapters/CoordinatorAdapter.js.map +1 -0
  33. package/dist/agents/adapters/LearningEngineAdapter.d.ts +45 -0
  34. package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -0
  35. package/dist/agents/adapters/LearningEngineAdapter.js +279 -0
  36. package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -0
  37. package/dist/agents/adapters/LifecycleManagerAdapter.d.ts +45 -0
  38. package/dist/agents/adapters/LifecycleManagerAdapter.d.ts.map +1 -0
  39. package/dist/agents/adapters/LifecycleManagerAdapter.js +128 -0
  40. package/dist/agents/adapters/LifecycleManagerAdapter.js.map +1 -0
  41. package/dist/agents/adapters/MemoryServiceAdapter.d.ts +96 -0
  42. package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -0
  43. package/dist/agents/adapters/MemoryServiceAdapter.js +266 -0
  44. package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -0
  45. package/dist/agents/adapters/index.d.ts +14 -0
  46. package/dist/agents/adapters/index.d.ts.map +1 -0
  47. package/dist/agents/adapters/index.js +25 -0
  48. package/dist/agents/adapters/index.js.map +1 -0
  49. package/dist/agents/index.d.ts +3 -0
  50. package/dist/agents/index.d.ts.map +1 -1
  51. package/dist/agents/index.js +93 -2
  52. package/dist/agents/index.js.map +1 -1
  53. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  54. package/dist/agents/lifecycle/AgentLifecycleManager.js +12 -6
  55. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  56. package/dist/cli/init/agents.js +1 -1
  57. package/dist/cli/init/claude-config.js +2 -2
  58. package/dist/cli/init/database-init.js +1 -1
  59. package/dist/core/cache/BinaryCacheBuilder.d.ts +84 -0
  60. package/dist/core/cache/BinaryCacheBuilder.d.ts.map +1 -0
  61. package/dist/core/cache/BinaryCacheBuilder.js +225 -0
  62. package/dist/core/cache/BinaryCacheBuilder.js.map +1 -0
  63. package/dist/core/cache/BinaryCacheImpl.d.ts +161 -0
  64. package/dist/core/cache/BinaryCacheImpl.d.ts.map +1 -0
  65. package/dist/core/cache/BinaryCacheImpl.js +685 -0
  66. package/dist/core/cache/BinaryCacheImpl.js.map +1 -0
  67. package/dist/core/cache/BinaryCacheManager.d.ts +142 -0
  68. package/dist/core/cache/BinaryCacheManager.d.ts.map +1 -0
  69. package/dist/core/cache/BinaryCacheManager.js +354 -0
  70. package/dist/core/cache/BinaryCacheManager.js.map +1 -0
  71. package/dist/core/cache/BinaryCacheReader.d.ts +129 -0
  72. package/dist/core/cache/BinaryCacheReader.d.ts.map +1 -0
  73. package/dist/core/cache/BinaryCacheReader.js +243 -0
  74. package/dist/core/cache/BinaryCacheReader.js.map +1 -0
  75. package/dist/core/cache/BinaryMetadataCache.d.ts +777 -0
  76. package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -0
  77. package/dist/core/cache/BinaryMetadataCache.js +204 -0
  78. package/dist/core/cache/BinaryMetadataCache.js.map +1 -0
  79. package/dist/core/cache/CacheInvalidator.d.ts +103 -0
  80. package/dist/core/cache/CacheInvalidator.d.ts.map +1 -0
  81. package/dist/core/cache/CacheInvalidator.js +152 -0
  82. package/dist/core/cache/CacheInvalidator.js.map +1 -0
  83. package/dist/core/cache/CacheValidator.d.ts +69 -0
  84. package/dist/core/cache/CacheValidator.d.ts.map +1 -0
  85. package/dist/core/cache/CacheValidator.js +189 -0
  86. package/dist/core/cache/CacheValidator.js.map +1 -0
  87. package/dist/core/cache/MessagePackSerializer.d.ts +163 -0
  88. package/dist/core/cache/MessagePackSerializer.d.ts.map +1 -0
  89. package/dist/core/cache/MessagePackSerializer.js +274 -0
  90. package/dist/core/cache/MessagePackSerializer.js.map +1 -0
  91. package/dist/core/cache/index.d.ts +59 -0
  92. package/dist/core/cache/index.d.ts.map +1 -0
  93. package/dist/core/cache/index.js +111 -0
  94. package/dist/core/cache/index.js.map +1 -0
  95. package/dist/core/index.d.ts +2 -0
  96. package/dist/core/index.d.ts.map +1 -1
  97. package/dist/core/index.js +18 -0
  98. package/dist/core/index.js.map +1 -1
  99. package/dist/core/memory/AgentDBService.d.ts +30 -4
  100. package/dist/core/memory/AgentDBService.d.ts.map +1 -1
  101. package/dist/core/memory/AgentDBService.js +122 -12
  102. package/dist/core/memory/AgentDBService.js.map +1 -1
  103. package/dist/core/memory/CachedHNSWVectorMemory.d.ts +153 -0
  104. package/dist/core/memory/CachedHNSWVectorMemory.d.ts.map +1 -0
  105. package/dist/core/memory/CachedHNSWVectorMemory.js +329 -0
  106. package/dist/core/memory/CachedHNSWVectorMemory.js.map +1 -0
  107. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  108. package/dist/core/memory/PatternStoreFactory.d.ts +28 -0
  109. package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -1
  110. package/dist/core/memory/PatternStoreFactory.js +68 -3
  111. package/dist/core/memory/PatternStoreFactory.js.map +1 -1
  112. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
  113. package/dist/core/memory/RuVectorPatternStore.js +8 -2
  114. package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
  115. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +50 -0
  116. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -1
  117. package/dist/core/memory/UnifiedMemoryCoordinator.js +206 -0
  118. package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -1
  119. package/dist/core/memory/index.d.ts +2 -0
  120. package/dist/core/memory/index.d.ts.map +1 -1
  121. package/dist/core/memory/index.js +8 -1
  122. package/dist/core/memory/index.js.map +1 -1
  123. package/dist/core/optimization/RecursiveOptimizer.d.ts +233 -0
  124. package/dist/core/optimization/RecursiveOptimizer.d.ts.map +1 -0
  125. package/dist/core/optimization/RecursiveOptimizer.js +509 -0
  126. package/dist/core/optimization/RecursiveOptimizer.js.map +1 -0
  127. package/dist/core/platform/FileOperations.d.ts +124 -0
  128. package/dist/core/platform/FileOperations.d.ts.map +1 -0
  129. package/dist/core/platform/FileOperations.js +371 -0
  130. package/dist/core/platform/FileOperations.js.map +1 -0
  131. package/dist/core/platform/PlatformDetector.d.ts +53 -0
  132. package/dist/core/platform/PlatformDetector.d.ts.map +1 -0
  133. package/dist/core/platform/PlatformDetector.js +251 -0
  134. package/dist/core/platform/PlatformDetector.js.map +1 -0
  135. package/dist/core/platform/index.d.ts +12 -0
  136. package/dist/core/platform/index.d.ts.map +1 -0
  137. package/dist/core/platform/index.js +28 -0
  138. package/dist/core/platform/index.js.map +1 -0
  139. package/dist/core/strategies/AcceleratedLearningStrategy.d.ts +74 -0
  140. package/dist/core/strategies/AcceleratedLearningStrategy.d.ts.map +1 -0
  141. package/dist/core/strategies/AcceleratedLearningStrategy.js +200 -0
  142. package/dist/core/strategies/AcceleratedLearningStrategy.js.map +1 -0
  143. package/dist/core/strategies/AgentCoordinationStrategy.d.ts +157 -0
  144. package/dist/core/strategies/AgentCoordinationStrategy.d.ts.map +1 -0
  145. package/dist/core/strategies/AgentCoordinationStrategy.js +12 -0
  146. package/dist/core/strategies/AgentCoordinationStrategy.js.map +1 -0
  147. package/dist/core/strategies/AgentLearningStrategy.d.ts +200 -0
  148. package/dist/core/strategies/AgentLearningStrategy.d.ts.map +1 -0
  149. package/dist/core/strategies/AgentLearningStrategy.js +13 -0
  150. package/dist/core/strategies/AgentLearningStrategy.js.map +1 -0
  151. package/dist/core/strategies/AgentLifecycleStrategy.d.ts +116 -0
  152. package/dist/core/strategies/AgentLifecycleStrategy.d.ts.map +1 -0
  153. package/dist/core/strategies/AgentLifecycleStrategy.js +12 -0
  154. package/dist/core/strategies/AgentLifecycleStrategy.js.map +1 -0
  155. package/dist/core/strategies/AgentMemoryStrategy.d.ts +154 -0
  156. package/dist/core/strategies/AgentMemoryStrategy.d.ts.map +1 -0
  157. package/dist/core/strategies/AgentMemoryStrategy.js +13 -0
  158. package/dist/core/strategies/AgentMemoryStrategy.js.map +1 -0
  159. package/dist/core/strategies/DefaultCoordinationStrategy.d.ts +105 -0
  160. package/dist/core/strategies/DefaultCoordinationStrategy.d.ts.map +1 -0
  161. package/dist/core/strategies/DefaultCoordinationStrategy.js +332 -0
  162. package/dist/core/strategies/DefaultCoordinationStrategy.js.map +1 -0
  163. package/dist/core/strategies/DefaultLearningStrategy.d.ts +120 -0
  164. package/dist/core/strategies/DefaultLearningStrategy.d.ts.map +1 -0
  165. package/dist/core/strategies/DefaultLearningStrategy.js +365 -0
  166. package/dist/core/strategies/DefaultLearningStrategy.js.map +1 -0
  167. package/dist/core/strategies/DefaultLifecycleStrategy.d.ts +129 -0
  168. package/dist/core/strategies/DefaultLifecycleStrategy.d.ts.map +1 -0
  169. package/dist/core/strategies/DefaultLifecycleStrategy.js +297 -0
  170. package/dist/core/strategies/DefaultLifecycleStrategy.js.map +1 -0
  171. package/dist/core/strategies/DefaultMemoryStrategy.d.ts +91 -0
  172. package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -0
  173. package/dist/core/strategies/DefaultMemoryStrategy.js +257 -0
  174. package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -0
  175. package/dist/core/strategies/DistributedMemoryStrategy.d.ts +85 -0
  176. package/dist/core/strategies/DistributedMemoryStrategy.d.ts.map +1 -0
  177. package/dist/core/strategies/DistributedMemoryStrategy.js +126 -0
  178. package/dist/core/strategies/DistributedMemoryStrategy.js.map +1 -0
  179. package/dist/core/strategies/SONALearningStrategy.d.ts +115 -0
  180. package/dist/core/strategies/SONALearningStrategy.d.ts.map +1 -0
  181. package/dist/core/strategies/SONALearningStrategy.js +656 -0
  182. package/dist/core/strategies/SONALearningStrategy.js.map +1 -0
  183. package/dist/core/strategies/TRMLearningStrategy.d.ts +162 -0
  184. package/dist/core/strategies/TRMLearningStrategy.d.ts.map +1 -0
  185. package/dist/core/strategies/TRMLearningStrategy.js +670 -0
  186. package/dist/core/strategies/TRMLearningStrategy.js.map +1 -0
  187. package/dist/core/strategies/index.d.ts +104 -0
  188. package/dist/core/strategies/index.d.ts.map +1 -0
  189. package/dist/core/strategies/index.js +68 -0
  190. package/dist/core/strategies/index.js.map +1 -0
  191. package/dist/learning/PerformanceOptimizer.js +2 -2
  192. package/dist/learning/PerformanceOptimizer.js.map +1 -1
  193. package/dist/learning/SONAFeedbackLoop.d.ts +168 -0
  194. package/dist/learning/SONAFeedbackLoop.d.ts.map +1 -0
  195. package/dist/learning/SONAFeedbackLoop.js +344 -0
  196. package/dist/learning/SONAFeedbackLoop.js.map +1 -0
  197. package/dist/learning/baselines/BaselineCollector.d.ts +1 -1
  198. package/dist/learning/baselines/BaselineCollector.js +1 -1
  199. package/dist/learning/baselines/StandardTaskSuite.d.ts +1 -1
  200. package/dist/learning/baselines/StandardTaskSuite.js +1 -1
  201. package/dist/learning/index.d.ts +2 -0
  202. package/dist/learning/index.d.ts.map +1 -1
  203. package/dist/learning/index.js +6 -1
  204. package/dist/learning/index.js.map +1 -1
  205. package/dist/mcp/handlers/base-handler.d.ts +28 -1
  206. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  207. package/dist/mcp/handlers/base-handler.js +41 -0
  208. package/dist/mcp/handlers/base-handler.js.map +1 -1
  209. package/dist/mcp/server-instructions.d.ts +1 -1
  210. package/dist/mcp/server-instructions.js +1 -1
  211. package/dist/mcp/server.d.ts.map +1 -1
  212. package/dist/mcp/server.js +23 -16
  213. package/dist/mcp/server.js.map +1 -1
  214. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  215. package/dist/mcp/services/AgentRegistry.js +6 -1
  216. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  217. package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts +114 -0
  218. package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts.map +1 -0
  219. package/dist/mcp/tools/qe/accessibility/accname-computation.js +566 -0
  220. package/dist/mcp/tools/qe/accessibility/accname-computation.js.map +1 -0
  221. package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts +103 -0
  222. package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts.map +1 -0
  223. package/dist/mcp/tools/qe/accessibility/apg-patterns.js +1028 -0
  224. package/dist/mcp/tools/qe/accessibility/apg-patterns.js.map +1 -0
  225. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts +48 -0
  226. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts.map +1 -0
  227. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js +565 -0
  228. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js.map +1 -0
  229. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts +117 -0
  230. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts.map +1 -0
  231. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js +571 -0
  232. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js.map +1 -0
  233. package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts +23 -0
  234. package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts.map +1 -0
  235. package/dist/mcp/tools/qe/accessibility/html-report-generator.js +1152 -0
  236. package/dist/mcp/tools/qe/accessibility/html-report-generator.js.map +1 -0
  237. package/dist/mcp/tools/qe/accessibility/index.d.ts +22 -0
  238. package/dist/mcp/tools/qe/accessibility/index.d.ts.map +1 -0
  239. package/dist/mcp/tools/qe/accessibility/index.js +38 -0
  240. package/dist/mcp/tools/qe/accessibility/index.js.map +1 -0
  241. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts +18 -0
  242. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts.map +1 -0
  243. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js +549 -0
  244. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js.map +1 -0
  245. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts +139 -0
  246. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts.map +1 -0
  247. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js +1300 -0
  248. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js.map +1 -0
  249. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts +138 -0
  250. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts.map +1 -0
  251. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js +1326 -0
  252. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js.map +1 -0
  253. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts +50 -0
  254. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts.map +1 -0
  255. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js +469 -0
  256. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js.map +1 -0
  257. package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts +193 -0
  258. package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts.map +1 -0
  259. package/dist/mcp/tools/qe/accessibility/webvtt-generator.js +511 -0
  260. package/dist/mcp/tools/qe/accessibility/webvtt-generator.js.map +1 -0
  261. package/dist/mcp/tools.d.ts +1 -0
  262. package/dist/mcp/tools.d.ts.map +1 -1
  263. package/dist/mcp/tools.js +61 -0
  264. package/dist/mcp/tools.js.map +1 -1
  265. package/dist/output/AIActionSuggester.d.ts +98 -0
  266. package/dist/output/AIActionSuggester.d.ts.map +1 -0
  267. package/dist/output/AIActionSuggester.js +499 -0
  268. package/dist/output/AIActionSuggester.js.map +1 -0
  269. package/dist/output/CLIOutputHelper.d.ts +169 -0
  270. package/dist/output/CLIOutputHelper.d.ts.map +1 -0
  271. package/dist/output/CLIOutputHelper.js +320 -0
  272. package/dist/output/CLIOutputHelper.js.map +1 -0
  273. package/dist/output/OutputFormatter.d.ts +764 -0
  274. package/dist/output/OutputFormatter.d.ts.map +1 -0
  275. package/dist/output/OutputFormatter.js +125 -0
  276. package/dist/output/OutputFormatter.js.map +1 -0
  277. package/dist/output/OutputFormatterImpl.d.ts +131 -0
  278. package/dist/output/OutputFormatterImpl.d.ts.map +1 -0
  279. package/dist/output/OutputFormatterImpl.js +556 -0
  280. package/dist/output/OutputFormatterImpl.js.map +1 -0
  281. package/dist/output/examples.d.ts +38 -0
  282. package/dist/output/examples.d.ts.map +1 -0
  283. package/dist/output/examples.js +503 -0
  284. package/dist/output/examples.js.map +1 -0
  285. package/dist/output/index.d.ts +16 -0
  286. package/dist/output/index.d.ts.map +1 -0
  287. package/dist/output/index.js +58 -0
  288. package/dist/output/index.js.map +1 -0
  289. package/dist/providers/HybridRouter.d.ts +34 -3
  290. package/dist/providers/HybridRouter.d.ts.map +1 -1
  291. package/dist/providers/HybridRouter.js +69 -4
  292. package/dist/providers/HybridRouter.js.map +1 -1
  293. package/dist/providers/LLMProviderFactory.d.ts +68 -1
  294. package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
  295. package/dist/providers/LLMProviderFactory.js +173 -6
  296. package/dist/providers/LLMProviderFactory.js.map +1 -1
  297. package/dist/providers/OpenRouterProvider.d.ts +150 -0
  298. package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
  299. package/dist/providers/OpenRouterProvider.js +545 -0
  300. package/dist/providers/OpenRouterProvider.js.map +1 -0
  301. package/dist/providers/RuvllmProvider.d.ts +130 -16
  302. package/dist/providers/RuvllmProvider.d.ts.map +1 -1
  303. package/dist/providers/RuvllmProvider.js +399 -83
  304. package/dist/providers/RuvllmProvider.js.map +1 -1
  305. package/dist/providers/index.d.ts +33 -4
  306. package/dist/providers/index.d.ts.map +1 -1
  307. package/dist/providers/index.js +72 -21
  308. package/dist/providers/index.js.map +1 -1
  309. package/dist/telemetry/instrumentation/agent.d.ts +1 -1
  310. package/dist/telemetry/instrumentation/agent.js +1 -1
  311. package/dist/telemetry/instrumentation/index.d.ts +1 -1
  312. package/dist/telemetry/instrumentation/index.js +1 -1
  313. package/dist/types/index.d.ts +2 -1
  314. package/dist/types/index.d.ts.map +1 -1
  315. package/dist/types/index.js +2 -0
  316. package/dist/types/index.js.map +1 -1
  317. package/dist/types/ruvllm.d.ts +97 -0
  318. package/dist/types/ruvllm.d.ts.map +1 -0
  319. package/dist/types/ruvllm.js +46 -0
  320. package/dist/types/ruvllm.js.map +1 -0
  321. package/dist/utils/ruvllm-loader.d.ts +94 -0
  322. package/dist/utils/ruvllm-loader.d.ts.map +1 -0
  323. package/dist/utils/ruvllm-loader.js +87 -0
  324. package/dist/utils/ruvllm-loader.js.map +1 -0
  325. package/docs/reference/agents.md +36 -1
  326. package/package.json +7 -2
@@ -0,0 +1,509 @@
1
+ "use strict";
2
+ /**
3
+ * RecursiveOptimizer - TRM-based recursive optimization with binary cache
4
+ *
5
+ * Implements iterative refinement optimization using Test-time Reasoning
6
+ * & Metacognition (TRM) patterns. Features:
7
+ * - Recursive quality improvement with convergence detection
8
+ * - Binary cache for fast pattern retrieval
9
+ * - SONA integration for adaptive learning
10
+ * - EWC++ for preventing catastrophic forgetting
11
+ *
12
+ * @module core/optimization/RecursiveOptimizer
13
+ * @version 1.0.0
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.RecursiveOptimizer = void 0;
17
+ exports.createTestGenerationOptimizer = createTestGenerationOptimizer;
18
+ exports.createCodeAnalysisOptimizer = createCodeAnalysisOptimizer;
19
+ const BinaryMetadataCache_1 = require("../cache/BinaryMetadataCache");
20
+ const Logger_1 = require("../../utils/Logger");
21
+ const ruvllm_loader_1 = require("../../utils/ruvllm-loader");
22
+ /**
23
+ * RecursiveOptimizer - TRM-based recursive optimization
24
+ *
25
+ * Uses iterative refinement with convergence detection to optimize
26
+ * outputs. Patterns are cached for fast retrieval on similar inputs.
27
+ */
28
+ class RecursiveOptimizer {
29
+ constructor(config) {
30
+ this.cache = new Map();
31
+ this.initialized = false;
32
+ // Statistics
33
+ this.stats = {
34
+ totalOptimizations: 0,
35
+ cacheHits: 0,
36
+ cacheMisses: 0,
37
+ avgIterations: 0,
38
+ avgQuality: 0,
39
+ avgDuration: 0,
40
+ convergenceRate: 0,
41
+ };
42
+ /**
43
+ * Default text quality evaluator using heuristic metrics.
44
+ *
45
+ * @warning All metrics currently use PLACEHOLDER HEURISTICS.
46
+ * See individual measure* methods for details on what proper implementations
47
+ * would look like. These heuristics are sufficient for testing TRM iteration
48
+ * mechanics but should not be used for production quality assessment.
49
+ *
50
+ * Available metrics:
51
+ * - 'coherence': Sentence structure analysis (heuristic)
52
+ * - 'coverage': Unique word ratio (heuristic)
53
+ * - 'diversity': Vocabulary variety (heuristic)
54
+ * - 'composite': Weighted combination (40% coherence, 30% coverage, 30% diversity)
55
+ *
56
+ * @todo M4 milestone: Replace with ML-based evaluation using ruvLLM
57
+ */
58
+ this.defaultTextEvaluator = (text, metric) => {
59
+ switch (metric) {
60
+ case 'coherence':
61
+ return this.measureCoherence(text);
62
+ case 'coverage':
63
+ return this.measureCoverage(text);
64
+ case 'diversity':
65
+ return this.measureDiversity(text);
66
+ case 'composite':
67
+ return (this.measureCoherence(text) * 0.4 +
68
+ this.measureCoverage(text) * 0.3 +
69
+ this.measureDiversity(text) * 0.3);
70
+ default:
71
+ return this.measureCoherence(text);
72
+ }
73
+ };
74
+ this.logger = Logger_1.Logger.getInstance();
75
+ this.config = {
76
+ maxIterations: config?.maxIterations ?? 7,
77
+ convergenceThreshold: config?.convergenceThreshold ?? 0.95,
78
+ qualityMetric: config?.qualityMetric ?? 'coherence',
79
+ minQuality: config?.minQuality ?? 0.5,
80
+ enableCache: config?.enableCache ?? true,
81
+ cachePath: config?.cachePath ?? '.aqe/cache/optimizer.bin',
82
+ enableSONA: config?.enableSONA ?? true,
83
+ loraRank: config?.loraRank ?? 8,
84
+ similarityThreshold: config?.similarityThreshold ?? 0.85,
85
+ };
86
+ }
87
+ /**
88
+ * Initialize the optimizer
89
+ */
90
+ async initialize() {
91
+ if (this.initialized) {
92
+ this.logger.warn('RecursiveOptimizer already initialized');
93
+ return;
94
+ }
95
+ try {
96
+ // Load ruvLLM if SONA enabled
97
+ if (this.config.enableSONA) {
98
+ const ruvllmModule = (0, ruvllm_loader_1.loadRuvLLM)();
99
+ if (ruvllmModule) {
100
+ this.ruvllm = new ruvllmModule.RuvLLM({ learningEnabled: true });
101
+ this.sonaCoordinator = new ruvllmModule.SonaCoordinator();
102
+ this.logger.info('SONA components loaded for RecursiveOptimizer');
103
+ }
104
+ else {
105
+ this.logger.warn('RuvLLM not available, SONA disabled');
106
+ }
107
+ }
108
+ this.initialized = true;
109
+ this.logger.info('RecursiveOptimizer initialized', {
110
+ maxIterations: this.config.maxIterations,
111
+ convergenceThreshold: this.config.convergenceThreshold,
112
+ qualityMetric: this.config.qualityMetric,
113
+ enableCache: this.config.enableCache,
114
+ enableSONA: this.config.enableSONA,
115
+ });
116
+ }
117
+ catch (error) {
118
+ this.logger.warn('Failed to load ruvLLM, using fallback mode', {
119
+ error: error.message,
120
+ });
121
+ this.initialized = true;
122
+ }
123
+ }
124
+ /**
125
+ * Optimize an output using recursive refinement
126
+ *
127
+ * @param initial - Initial output to optimize
128
+ * @param refine - Function to refine the output in each iteration
129
+ * @param evaluate - Function to evaluate output quality
130
+ * @param options - Override configuration options
131
+ * @returns Optimization result
132
+ */
133
+ async optimize(initial, refine, evaluate, options) {
134
+ this.ensureInitialized();
135
+ const startTime = Date.now();
136
+ const effectiveConfig = { ...this.config, ...options };
137
+ const qualityHistory = [];
138
+ // Check cache first
139
+ if (effectiveConfig.enableCache) {
140
+ const cached = this.checkCache(initial);
141
+ if (cached) {
142
+ this.stats.cacheHits++;
143
+ this.logger.debug('Cache hit for optimization', { patternId: cached.result.patternId });
144
+ return cached.result;
145
+ }
146
+ this.stats.cacheMisses++;
147
+ }
148
+ // Initial quality evaluation
149
+ let current = initial;
150
+ let quality = evaluate(current, effectiveConfig.qualityMetric);
151
+ const initialQuality = quality;
152
+ qualityHistory.push(quality);
153
+ this.logger.debug('Starting optimization', {
154
+ initialQuality,
155
+ metric: effectiveConfig.qualityMetric,
156
+ maxIterations: effectiveConfig.maxIterations,
157
+ });
158
+ // Iterative refinement loop
159
+ let converged = false;
160
+ let iteration = 0;
161
+ for (iteration = 1; iteration < effectiveConfig.maxIterations; iteration++) {
162
+ // Refine the output
163
+ const refined = await refine(current, iteration, quality);
164
+ // Evaluate new quality
165
+ const newQuality = evaluate(refined, effectiveConfig.qualityMetric);
166
+ const improvement = newQuality - quality;
167
+ qualityHistory.push(newQuality);
168
+ this.logger.debug(`Iteration ${iteration}`, {
169
+ quality: newQuality,
170
+ improvement,
171
+ converged: improvement < (1 - effectiveConfig.convergenceThreshold),
172
+ });
173
+ // Check convergence
174
+ if (improvement < (1 - effectiveConfig.convergenceThreshold)) {
175
+ converged = true;
176
+ this.logger.info('Optimization converged', {
177
+ iterations: iteration,
178
+ finalQuality: newQuality,
179
+ improvement: newQuality - initialQuality,
180
+ });
181
+ break;
182
+ }
183
+ current = refined;
184
+ quality = newQuality;
185
+ }
186
+ const duration = Date.now() - startTime;
187
+ // Create result
188
+ const result = {
189
+ output: current,
190
+ quality,
191
+ iterations: iteration,
192
+ converged,
193
+ qualityHistory,
194
+ duration,
195
+ metadata: {
196
+ metric: effectiveConfig.qualityMetric,
197
+ initialQuality,
198
+ improvement: quality - initialQuality,
199
+ avgIterationTime: duration / iteration,
200
+ cacheHit: false,
201
+ },
202
+ };
203
+ // Cache the result
204
+ if (effectiveConfig.enableCache && quality >= effectiveConfig.minQuality) {
205
+ result.patternId = await this.cacheResult(initial, result);
206
+ }
207
+ // Track trajectory in SONA
208
+ if (this.sonaCoordinator && this.config.enableSONA) {
209
+ await this.trackOptimizationTrajectory(initial, result);
210
+ }
211
+ // Update statistics
212
+ this.updateStats(result);
213
+ return result;
214
+ }
215
+ /**
216
+ * Optimize with default text quality evaluation
217
+ */
218
+ async optimizeText(initial, refine, options) {
219
+ return this.optimize(initial, refine, this.defaultTextEvaluator, options);
220
+ }
221
+ /**
222
+ * Batch optimize multiple outputs
223
+ */
224
+ async optimizeBatch(items, refine, evaluate, options) {
225
+ this.ensureInitialized();
226
+ if (options?.parallel) {
227
+ // Parallel optimization
228
+ return Promise.all(items.map((item) => this.optimize(item, refine, evaluate, options)));
229
+ }
230
+ // Sequential optimization
231
+ const results = [];
232
+ for (const item of items) {
233
+ results.push(await this.optimize(item, refine, evaluate, options));
234
+ }
235
+ return results;
236
+ }
237
+ /**
238
+ * Get optimizer statistics
239
+ */
240
+ getStats() {
241
+ return { ...this.stats };
242
+ }
243
+ /**
244
+ * Get cache statistics
245
+ */
246
+ getCacheStats() {
247
+ const entries = Array.from(this.cache.values());
248
+ const now = Date.now();
249
+ return {
250
+ entries: this.cache.size,
251
+ hitRate: this.stats.cacheHits / Math.max(this.stats.cacheHits + this.stats.cacheMisses, 1),
252
+ avgAccessCount: entries.length > 0
253
+ ? entries.reduce((sum, e) => sum + e.accessCount, 0) / entries.length
254
+ : 0,
255
+ oldestEntry: entries.length > 0
256
+ ? now - Math.min(...entries.map((e) => e.createdAt))
257
+ : 0,
258
+ newestEntry: entries.length > 0
259
+ ? now - Math.max(...entries.map((e) => e.createdAt))
260
+ : 0,
261
+ };
262
+ }
263
+ /**
264
+ * Clear the optimization cache
265
+ */
266
+ clearCache() {
267
+ this.cache.clear();
268
+ this.logger.info('Optimization cache cleared');
269
+ }
270
+ /**
271
+ * Reset optimizer statistics
272
+ */
273
+ resetStats() {
274
+ this.stats = {
275
+ totalOptimizations: 0,
276
+ cacheHits: 0,
277
+ cacheMisses: 0,
278
+ avgIterations: 0,
279
+ avgQuality: 0,
280
+ avgDuration: 0,
281
+ convergenceRate: 0,
282
+ };
283
+ }
284
+ // === Private Helpers ===
285
+ ensureInitialized() {
286
+ if (!this.initialized) {
287
+ throw new Error('RecursiveOptimizer not initialized. Call initialize() first.');
288
+ }
289
+ }
290
+ checkCache(input) {
291
+ const hash = this.hashInput(input);
292
+ const entry = this.cache.get(hash);
293
+ if (entry) {
294
+ entry.accessCount++;
295
+ entry.lastAccessed = Date.now();
296
+ return entry;
297
+ }
298
+ return null;
299
+ }
300
+ async cacheResult(input, result) {
301
+ const hash = this.hashInput(input);
302
+ const inputText = typeof input === 'string' ? input : JSON.stringify(input);
303
+ const outputText = typeof result.output === 'string'
304
+ ? result.output
305
+ : JSON.stringify(result.output);
306
+ // Generate embeddings
307
+ const inputEmb = this.generateEmbedding(inputText);
308
+ const outputEmb = this.generateEmbedding(outputText);
309
+ // Create TRM pattern
310
+ const pattern = (0, BinaryMetadataCache_1.createTRMPatternEntry)(inputText, outputText, inputEmb, outputEmb, {
311
+ quality: result.quality,
312
+ qualityMetric: result.metadata.metric,
313
+ iterations: result.iterations,
314
+ converged: result.converged,
315
+ confidence: result.quality,
316
+ avgIterationLatency: result.metadata.avgIterationTime,
317
+ });
318
+ // Store in cache
319
+ const entry = {
320
+ input,
321
+ inputHash: hash,
322
+ pattern,
323
+ result: { ...result, patternId: pattern.id },
324
+ createdAt: Date.now(),
325
+ accessCount: 1,
326
+ lastAccessed: Date.now(),
327
+ };
328
+ this.cache.set(hash, entry);
329
+ return pattern.id;
330
+ }
331
+ async trackOptimizationTrajectory(input, result) {
332
+ if (!this.sonaCoordinator)
333
+ return;
334
+ try {
335
+ const ruvllmModule = (0, ruvllm_loader_1.loadRuvLLM)();
336
+ if (!ruvllmModule)
337
+ return;
338
+ const inputText = typeof input === 'string' ? input : JSON.stringify(input);
339
+ const outputText = typeof result.output === 'string'
340
+ ? result.output
341
+ : JSON.stringify(result.output);
342
+ const trajectory = new ruvllmModule.TrajectoryBuilder()
343
+ .startStep('query', inputText)
344
+ .endStep(outputText, result.quality)
345
+ .complete(result.converged ? 'success' : 'partial');
346
+ this.sonaCoordinator.recordTrajectory(trajectory);
347
+ }
348
+ catch (error) {
349
+ this.logger.debug('Trajectory tracking failed', { error: error.message });
350
+ }
351
+ }
352
+ updateStats(result) {
353
+ const n = this.stats.totalOptimizations;
354
+ this.stats.totalOptimizations++;
355
+ // Running averages
356
+ this.stats.avgIterations = (this.stats.avgIterations * n + result.iterations) / (n + 1);
357
+ this.stats.avgQuality = (this.stats.avgQuality * n + result.quality) / (n + 1);
358
+ this.stats.avgDuration = (this.stats.avgDuration * n + result.duration) / (n + 1);
359
+ // Convergence rate
360
+ const convergedCount = this.stats.convergenceRate * n + (result.converged ? 1 : 0);
361
+ this.stats.convergenceRate = convergedCount / (n + 1);
362
+ }
363
+ hashInput(input) {
364
+ const str = typeof input === 'string' ? input : JSON.stringify(input);
365
+ // Simple hash function
366
+ let hash = 0;
367
+ for (let i = 0; i < str.length; i++) {
368
+ const char = str.charCodeAt(i);
369
+ hash = ((hash << 5) - hash) + char;
370
+ hash = hash & hash;
371
+ }
372
+ return `opt-${hash.toString(16)}`;
373
+ }
374
+ /**
375
+ * Generates embeddings for text input.
376
+ *
377
+ * When ruvLLM is available, uses proper transformer-based embeddings.
378
+ * Falls back to a simple character-based heuristic when ruvLLM is unavailable.
379
+ *
380
+ * @warning The fallback implementation is a PLACEHOLDER HEURISTIC.
381
+ * The character-based embedding:
382
+ * - Maps character codes to 768-dimensional space
383
+ * - Normalizes to unit magnitude
384
+ * - Does NOT capture semantic meaning
385
+ *
386
+ * This fallback is only used when:
387
+ * - ruvLLM native module fails to load
388
+ * - Running in test environment without ruvLLM server
389
+ *
390
+ * Production usage should always have ruvLLM available for proper embeddings.
391
+ */
392
+ generateEmbedding(text) {
393
+ // Use ruvLLM if available - proper transformer-based embeddings
394
+ if (this.ruvllm) {
395
+ try {
396
+ return Array.from(this.ruvllm.embed(text));
397
+ }
398
+ catch {
399
+ // Fallback to simple embedding on error
400
+ }
401
+ }
402
+ // HEURISTIC FALLBACK: Simple deterministic embedding
403
+ // This does NOT capture semantic meaning - only for testing/development
404
+ const embedding = new Array(768).fill(0);
405
+ for (let i = 0; i < text.length; i++) {
406
+ const idx = i % 768;
407
+ embedding[idx] += text.charCodeAt(i) / 256;
408
+ }
409
+ const magnitude = Math.sqrt(embedding.reduce((sum, v) => sum + v * v, 0));
410
+ return embedding.map((v) => v / (magnitude || 1));
411
+ }
412
+ /**
413
+ * HEURISTIC: Measures text coherence using simple sentence structure analysis.
414
+ *
415
+ * @warning This is a PLACEHOLDER HEURISTIC, not a proper ML-based evaluation.
416
+ * Current implementation uses:
417
+ * - Average sentence length (normalized to 0-1)
418
+ * - Sentence count (normalized to 0-1)
419
+ *
420
+ * A proper implementation would use:
421
+ * - Transformer-based coherence models (e.g., sentence embeddings + cosine similarity)
422
+ * - Discourse structure analysis
423
+ * - Named entity consistency tracking
424
+ * - Coreference resolution scoring
425
+ *
426
+ * @todo Replace with ML-based coherence scoring in M4
427
+ */
428
+ measureCoherence(text) {
429
+ const sentences = text.split(/[.!?]+/).filter((s) => s.trim().length > 0);
430
+ if (sentences.length === 0)
431
+ return 0;
432
+ const avgSentenceLength = text.length / sentences.length;
433
+ const normalizedLength = Math.min(avgSentenceLength / 100, 1.0);
434
+ const sentenceCount = Math.min(sentences.length / 10, 1.0);
435
+ return (normalizedLength + sentenceCount) / 2;
436
+ }
437
+ /**
438
+ * HEURISTIC: Measures text coverage using unique word ratio.
439
+ *
440
+ * @warning This is a PLACEHOLDER HEURISTIC, not a proper ML-based evaluation.
441
+ * Current implementation uses:
442
+ * - Ratio of unique words to total words
443
+ *
444
+ * A proper implementation would use:
445
+ * - Topic modeling (LDA, BERTopic) to measure topic coverage
446
+ * - Information density metrics
447
+ * - Semantic role coverage analysis
448
+ * - Requirement traceability scoring
449
+ *
450
+ * @todo Replace with ML-based coverage analysis in M4
451
+ */
452
+ measureCoverage(text) {
453
+ const words = text.toLowerCase().split(/\s+/);
454
+ const uniqueWords = new Set(words);
455
+ if (words.length === 0)
456
+ return 0;
457
+ return Math.min(uniqueWords.size / words.length, 1.0);
458
+ }
459
+ /**
460
+ * HEURISTIC: Measures text diversity using vocabulary variety.
461
+ *
462
+ * @warning This is a PLACEHOLDER HEURISTIC, not a proper ML-based evaluation.
463
+ * Current implementation uses:
464
+ * - Ratio of unique words (>3 chars) with 2x scaling
465
+ *
466
+ * A proper implementation would use:
467
+ * - Type-token ratio with smoothing
468
+ * - Lexical diversity indices (MTLD, HD-D, vocd-D)
469
+ * - N-gram entropy measures
470
+ * - Semantic embedding cluster analysis
471
+ *
472
+ * @todo Replace with ML-based diversity metrics in M4
473
+ */
474
+ measureDiversity(text) {
475
+ const words = text.toLowerCase().split(/\s+/).filter((w) => w.length > 3);
476
+ const uniqueWords = new Set(words);
477
+ if (words.length === 0)
478
+ return 0;
479
+ return Math.min((uniqueWords.size / words.length) * 2, 1.0);
480
+ }
481
+ }
482
+ exports.RecursiveOptimizer = RecursiveOptimizer;
483
+ /**
484
+ * Create a pre-configured RecursiveOptimizer for test generation
485
+ */
486
+ function createTestGenerationOptimizer() {
487
+ return new RecursiveOptimizer({
488
+ maxIterations: 5,
489
+ convergenceThreshold: 0.9,
490
+ qualityMetric: 'composite',
491
+ minQuality: 0.6,
492
+ enableCache: true,
493
+ enableSONA: true,
494
+ });
495
+ }
496
+ /**
497
+ * Create a pre-configured RecursiveOptimizer for code analysis
498
+ */
499
+ function createCodeAnalysisOptimizer() {
500
+ return new RecursiveOptimizer({
501
+ maxIterations: 3,
502
+ convergenceThreshold: 0.85,
503
+ qualityMetric: 'coverage',
504
+ minQuality: 0.7,
505
+ enableCache: true,
506
+ enableSONA: false, // Faster for code analysis
507
+ });
508
+ }
509
+ //# sourceMappingURL=RecursiveOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecursiveOptimizer.js","sourceRoot":"","sources":["../../../src/core/optimization/RecursiveOptimizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * FileOperations - Platform-optimized file operations
3
+ *
4
+ * Provides file copy/clone operations that leverage platform-specific
5
+ * features like APFS clonefile (macOS) and reflink (Linux btrfs/xfs)
6
+ * for 50-100x performance improvements.
7
+ *
8
+ * @module core/platform/FileOperations
9
+ * @version 1.0.0
10
+ */
11
+ /**
12
+ * Copy strategy used for a file operation
13
+ */
14
+ export declare enum CopyStrategy {
15
+ /** Copy-on-write clone (fastest) */
16
+ REFLINK = "reflink",
17
+ /** Filesystem hardlink (instant, shares data) */
18
+ HARDLINK = "hardlink",
19
+ /** Kernel-space copy (fast) */
20
+ KERNEL = "kernel",
21
+ /** Userspace copy (fallback) */
22
+ USERSPACE = "userspace"
23
+ }
24
+ /**
25
+ * Result of a copy operation
26
+ */
27
+ export interface CopyResult {
28
+ /** Source path */
29
+ source: string;
30
+ /** Destination path */
31
+ destination: string;
32
+ /** Strategy used */
33
+ strategy: CopyStrategy;
34
+ /** Operation duration in milliseconds */
35
+ duration: number;
36
+ /** File size in bytes */
37
+ size: number;
38
+ /** Whether operation succeeded */
39
+ success: boolean;
40
+ /** Error message if failed */
41
+ error?: string;
42
+ }
43
+ /**
44
+ * Options for copy operations
45
+ */
46
+ export interface CopyOptions {
47
+ /** Force a specific strategy (skips auto-detection) */
48
+ strategy?: CopyStrategy;
49
+ /** Overwrite existing destination */
50
+ overwrite?: boolean;
51
+ /** Create parent directories if they don't exist */
52
+ recursive?: boolean;
53
+ /** Preserve file timestamps */
54
+ preserveTimestamps?: boolean;
55
+ }
56
+ /**
57
+ * Copy a file using the optimal strategy for the platform
58
+ *
59
+ * Priority: reflink > kernel copy > userspace copy
60
+ *
61
+ * @param source - Source file path
62
+ * @param destination - Destination file path
63
+ * @param options - Copy options
64
+ * @returns Copy result with strategy and timing info
65
+ */
66
+ export declare function copyFile(source: string, destination: string, options?: CopyOptions): Promise<CopyResult>;
67
+ /**
68
+ * Copy a directory recursively using optimal strategies
69
+ *
70
+ * @param source - Source directory path
71
+ * @param destination - Destination directory path
72
+ * @param options - Copy options
73
+ * @returns Array of copy results for all files
74
+ */
75
+ export declare function copyDirectory(source: string, destination: string, options?: CopyOptions): Promise<CopyResult[]>;
76
+ /**
77
+ * Clone a directory for test isolation
78
+ *
79
+ * Optimized for creating isolated test workspaces with COW cloning.
80
+ *
81
+ * @param source - Source directory path
82
+ * @param destination - Destination directory path
83
+ * @returns Clone result summary
84
+ */
85
+ export declare function cloneForIsolation(source: string, destination: string): Promise<{
86
+ success: boolean;
87
+ filesCloned: number;
88
+ totalSize: number;
89
+ duration: number;
90
+ strategy: CopyStrategy;
91
+ errors: string[];
92
+ }>;
93
+ /**
94
+ * Create a read-only fixture copy using hardlinks
95
+ *
96
+ * Useful for test fixtures that won't be modified.
97
+ *
98
+ * @param source - Source file path
99
+ * @param destination - Destination file path
100
+ * @returns Copy result
101
+ */
102
+ export declare function linkFixture(source: string, destination: string): Promise<CopyResult>;
103
+ /**
104
+ * Get platform copy capabilities summary
105
+ */
106
+ export declare function getCopyCapabilities(): Promise<{
107
+ platform: string;
108
+ filesystem: string;
109
+ optimalStrategy: CopyStrategy;
110
+ expectedSpeedup: string;
111
+ }>;
112
+ /**
113
+ * Benchmark copy operations for the current platform
114
+ *
115
+ * @param testPath - Path to run benchmark in
116
+ * @returns Benchmark results
117
+ */
118
+ export declare function benchmarkCopy(testPath?: string): Promise<{
119
+ reflink: number | null;
120
+ kernel: number | null;
121
+ userspace: number;
122
+ improvement: string;
123
+ }>;
124
+ //# sourceMappingURL=FileOperations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileOperations.d.ts","sourceRoot":"","sources":["../../../src/core/platform/FileOperations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;GAEG;AACH,oBAAY,YAAY;IACtB,oCAAoC;IACpC,OAAO,YAAY;IACnB,iDAAiD;IACjD,QAAQ,aAAa;IACrB,+BAA+B;IAC/B,MAAM,WAAW;IACjB,gCAAgC;IAChC,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAgHrB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,EAAE,CAAC,CA8CvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAkCD;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CAKrB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,YAAY,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,CAuBD;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,QAAQ,GAAE,MAAe,GACxB,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CA0DD"}