@pcircle/claude-code-buddy-mcp 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (709) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +599 -0
  3. package/README.zh-TW.md +577 -0
  4. package/dist/__benchmarks__/performance-fixes.bench.d.ts +8 -0
  5. package/dist/__benchmarks__/performance-fixes.bench.d.ts.map +1 -0
  6. package/dist/__benchmarks__/performance-fixes.bench.js +213 -0
  7. package/dist/__benchmarks__/performance-fixes.bench.js.map +1 -0
  8. package/dist/agents/DevelopmentButler.d.ts +80 -0
  9. package/dist/agents/DevelopmentButler.d.ts.map +1 -0
  10. package/dist/agents/DevelopmentButler.js +328 -0
  11. package/dist/agents/DevelopmentButler.js.map +1 -0
  12. package/dist/agents/E2EHealingAgent.d.ts +30 -0
  13. package/dist/agents/E2EHealingAgent.d.ts.map +1 -0
  14. package/dist/agents/E2EHealingAgent.js +162 -0
  15. package/dist/agents/E2EHealingAgent.js.map +1 -0
  16. package/dist/agents/TestWriterAgent.d.ts +26 -0
  17. package/dist/agents/TestWriterAgent.d.ts.map +1 -0
  18. package/dist/agents/TestWriterAgent.js +139 -0
  19. package/dist/agents/TestWriterAgent.js.map +1 -0
  20. package/dist/agents/base/AgentExecutor.d.ts +7 -0
  21. package/dist/agents/base/AgentExecutor.d.ts.map +1 -0
  22. package/dist/agents/base/AgentExecutor.js +13 -0
  23. package/dist/agents/base/AgentExecutor.js.map +1 -0
  24. package/dist/agents/base/index.d.ts +2 -0
  25. package/dist/agents/base/index.d.ts.map +1 -0
  26. package/dist/agents/base/index.js +2 -0
  27. package/dist/agents/base/index.js.map +1 -0
  28. package/dist/agents/e2e-healing/analyzers/EvidenceCollector.d.ts +24 -0
  29. package/dist/agents/e2e-healing/analyzers/EvidenceCollector.d.ts.map +1 -0
  30. package/dist/agents/e2e-healing/analyzers/EvidenceCollector.js +55 -0
  31. package/dist/agents/e2e-healing/analyzers/EvidenceCollector.js.map +1 -0
  32. package/dist/agents/e2e-healing/analyzers/FailureAnalyzer.d.ts +22 -0
  33. package/dist/agents/e2e-healing/analyzers/FailureAnalyzer.d.ts.map +1 -0
  34. package/dist/agents/e2e-healing/analyzers/FailureAnalyzer.js +36 -0
  35. package/dist/agents/e2e-healing/analyzers/FailureAnalyzer.js.map +1 -0
  36. package/dist/agents/e2e-healing/config.d.ts +4 -0
  37. package/dist/agents/e2e-healing/config.d.ts.map +1 -0
  38. package/dist/agents/e2e-healing/config.js +28 -0
  39. package/dist/agents/e2e-healing/config.js.map +1 -0
  40. package/dist/agents/e2e-healing/generators/FixGenerator.d.ts +21 -0
  41. package/dist/agents/e2e-healing/generators/FixGenerator.d.ts.map +1 -0
  42. package/dist/agents/e2e-healing/generators/FixGenerator.js +33 -0
  43. package/dist/agents/e2e-healing/generators/FixGenerator.js.map +1 -0
  44. package/dist/agents/e2e-healing/orchestrator/TestOrchestrator.d.ts +29 -0
  45. package/dist/agents/e2e-healing/orchestrator/TestOrchestrator.d.ts.map +1 -0
  46. package/dist/agents/e2e-healing/orchestrator/TestOrchestrator.js +70 -0
  47. package/dist/agents/e2e-healing/orchestrator/TestOrchestrator.js.map +1 -0
  48. package/dist/agents/e2e-healing/policy/GraduatedAutonomyPolicy.d.ts +30 -0
  49. package/dist/agents/e2e-healing/policy/GraduatedAutonomyPolicy.d.ts.map +1 -0
  50. package/dist/agents/e2e-healing/policy/GraduatedAutonomyPolicy.js +115 -0
  51. package/dist/agents/e2e-healing/policy/GraduatedAutonomyPolicy.js.map +1 -0
  52. package/dist/agents/e2e-healing/runners/PlaywrightRunner.d.ts +19 -0
  53. package/dist/agents/e2e-healing/runners/PlaywrightRunner.d.ts.map +1 -0
  54. package/dist/agents/e2e-healing/runners/PlaywrightRunner.js +79 -0
  55. package/dist/agents/e2e-healing/runners/PlaywrightRunner.js.map +1 -0
  56. package/dist/agents/e2e-healing/safety/CircuitBreaker.d.ts +26 -0
  57. package/dist/agents/e2e-healing/safety/CircuitBreaker.d.ts.map +1 -0
  58. package/dist/agents/e2e-healing/safety/CircuitBreaker.js +75 -0
  59. package/dist/agents/e2e-healing/safety/CircuitBreaker.js.map +1 -0
  60. package/dist/agents/e2e-healing/safety/RollbackManager.d.ts +31 -0
  61. package/dist/agents/e2e-healing/safety/RollbackManager.d.ts.map +1 -0
  62. package/dist/agents/e2e-healing/safety/RollbackManager.js +130 -0
  63. package/dist/agents/e2e-healing/safety/RollbackManager.js.map +1 -0
  64. package/dist/agents/e2e-healing/safety/SafetyGate.d.ts +21 -0
  65. package/dist/agents/e2e-healing/safety/SafetyGate.d.ts.map +1 -0
  66. package/dist/agents/e2e-healing/safety/SafetyGate.js +62 -0
  67. package/dist/agents/e2e-healing/safety/SafetyGate.js.map +1 -0
  68. package/dist/agents/e2e-healing/safety/ScopeLimiter.d.ts +14 -0
  69. package/dist/agents/e2e-healing/safety/ScopeLimiter.d.ts.map +1 -0
  70. package/dist/agents/e2e-healing/safety/ScopeLimiter.js +36 -0
  71. package/dist/agents/e2e-healing/safety/ScopeLimiter.js.map +1 -0
  72. package/dist/agents/e2e-healing/sdk/AgentSDKAdapter.d.ts +29 -0
  73. package/dist/agents/e2e-healing/sdk/AgentSDKAdapter.d.ts.map +1 -0
  74. package/dist/agents/e2e-healing/sdk/AgentSDKAdapter.js +86 -0
  75. package/dist/agents/e2e-healing/sdk/AgentSDKAdapter.js.map +1 -0
  76. package/dist/agents/e2e-healing/types.d.ts +46 -0
  77. package/dist/agents/e2e-healing/types.d.ts.map +1 -0
  78. package/dist/agents/e2e-healing/types.js +2 -0
  79. package/dist/agents/e2e-healing/types.js.map +1 -0
  80. package/dist/agents/knowledge/KnowledgeGraph.d.ts +26 -0
  81. package/dist/agents/knowledge/KnowledgeGraph.d.ts.map +1 -0
  82. package/dist/agents/knowledge/KnowledgeGraph.js +106 -0
  83. package/dist/agents/knowledge/KnowledgeGraph.js.map +1 -0
  84. package/dist/agents/knowledge/KnowledgeGraphSQLite.d.ts +42 -0
  85. package/dist/agents/knowledge/KnowledgeGraphSQLite.d.ts.map +1 -0
  86. package/dist/agents/knowledge/KnowledgeGraphSQLite.js +349 -0
  87. package/dist/agents/knowledge/KnowledgeGraphSQLite.js.map +1 -0
  88. package/dist/agents/knowledge/index.d.ts +94 -0
  89. package/dist/agents/knowledge/index.d.ts.map +1 -0
  90. package/dist/agents/knowledge/index.js +296 -0
  91. package/dist/agents/knowledge/index.js.map +1 -0
  92. package/dist/agents/knowledge/storage/KnowledgeGraphStore.d.ts +25 -0
  93. package/dist/agents/knowledge/storage/KnowledgeGraphStore.d.ts.map +1 -0
  94. package/dist/agents/knowledge/storage/KnowledgeGraphStore.js +342 -0
  95. package/dist/agents/knowledge/storage/KnowledgeGraphStore.js.map +1 -0
  96. package/dist/agents/knowledge/types.d.ts +21 -0
  97. package/dist/agents/knowledge/types.d.ts.map +1 -0
  98. package/dist/agents/knowledge/types.js +2 -0
  99. package/dist/agents/knowledge/types.js.map +1 -0
  100. package/dist/agents/templates/ci-templates.d.ts +8 -0
  101. package/dist/agents/templates/ci-templates.d.ts.map +1 -0
  102. package/dist/agents/templates/ci-templates.js +119 -0
  103. package/dist/agents/templates/ci-templates.js.map +1 -0
  104. package/dist/agents/templates/test-templates.d.ts +18 -0
  105. package/dist/agents/templates/test-templates.d.ts.map +1 -0
  106. package/dist/agents/templates/test-templates.js +22 -0
  107. package/dist/agents/templates/test-templates.js.map +1 -0
  108. package/dist/config/index.d.ts +51 -0
  109. package/dist/config/index.d.ts.map +1 -0
  110. package/dist/config/index.js +96 -0
  111. package/dist/config/index.js.map +1 -0
  112. package/dist/config/models.d.ts +47 -0
  113. package/dist/config/models.d.ts.map +1 -0
  114. package/dist/config/models.js +57 -0
  115. package/dist/config/models.js.map +1 -0
  116. package/dist/config/simple-config.d.ts +32 -0
  117. package/dist/config/simple-config.d.ts.map +1 -0
  118. package/dist/config/simple-config.js +225 -0
  119. package/dist/config/simple-config.js.map +1 -0
  120. package/dist/core/AgentRegistry.d.ts +32 -0
  121. package/dist/core/AgentRegistry.d.ts.map +1 -0
  122. package/dist/core/AgentRegistry.js +281 -0
  123. package/dist/core/AgentRegistry.js.map +1 -0
  124. package/dist/core/BackgroundExecutor.d.ts +56 -0
  125. package/dist/core/BackgroundExecutor.d.ts.map +1 -0
  126. package/dist/core/BackgroundExecutor.js +492 -0
  127. package/dist/core/BackgroundExecutor.js.map +1 -0
  128. package/dist/core/BackgroundExecutorConstants.d.ts +8 -0
  129. package/dist/core/BackgroundExecutorConstants.d.ts.map +1 -0
  130. package/dist/core/BackgroundExecutorConstants.js +8 -0
  131. package/dist/core/BackgroundExecutorConstants.js.map +1 -0
  132. package/dist/core/CheckpointDetector.d.ts +25 -0
  133. package/dist/core/CheckpointDetector.d.ts.map +1 -0
  134. package/dist/core/CheckpointDetector.js +67 -0
  135. package/dist/core/CheckpointDetector.js.map +1 -0
  136. package/dist/core/ExecutionMonitor.d.ts +29 -0
  137. package/dist/core/ExecutionMonitor.d.ts.map +1 -0
  138. package/dist/core/ExecutionMonitor.js +124 -0
  139. package/dist/core/ExecutionMonitor.js.map +1 -0
  140. package/dist/core/ExecutionQueue.d.ts +21 -0
  141. package/dist/core/ExecutionQueue.d.ts.map +1 -0
  142. package/dist/core/ExecutionQueue.js +104 -0
  143. package/dist/core/ExecutionQueue.js.map +1 -0
  144. package/dist/core/HealthCheck.d.ts +39 -0
  145. package/dist/core/HealthCheck.d.ts.map +1 -0
  146. package/dist/core/HealthCheck.js +219 -0
  147. package/dist/core/HealthCheck.js.map +1 -0
  148. package/dist/core/HookIntegration.d.ts +45 -0
  149. package/dist/core/HookIntegration.d.ts.map +1 -0
  150. package/dist/core/HookIntegration.js +241 -0
  151. package/dist/core/HookIntegration.js.map +1 -0
  152. package/dist/core/MCPToolInterface.d.ts +120 -0
  153. package/dist/core/MCPToolInterface.d.ts.map +1 -0
  154. package/dist/core/MCPToolInterface.js +376 -0
  155. package/dist/core/MCPToolInterface.js.map +1 -0
  156. package/dist/core/PromptEnhancer.d.ts +13 -0
  157. package/dist/core/PromptEnhancer.d.ts.map +1 -0
  158. package/dist/core/PromptEnhancer.js +112 -0
  159. package/dist/core/PromptEnhancer.js.map +1 -0
  160. package/dist/core/ResourceMonitor.d.ts +32 -0
  161. package/dist/core/ResourceMonitor.d.ts.map +1 -0
  162. package/dist/core/ResourceMonitor.js +181 -0
  163. package/dist/core/ResourceMonitor.js.map +1 -0
  164. package/dist/core/ResultHandler.d.ts +9 -0
  165. package/dist/core/ResultHandler.d.ts.map +1 -0
  166. package/dist/core/ResultHandler.js +60 -0
  167. package/dist/core/ResultHandler.js.map +1 -0
  168. package/dist/core/ServiceLocator.d.ts +10 -0
  169. package/dist/core/ServiceLocator.d.ts.map +1 -0
  170. package/dist/core/ServiceLocator.js +29 -0
  171. package/dist/core/ServiceLocator.js.map +1 -0
  172. package/dist/core/SessionContextMonitor.d.ts +41 -0
  173. package/dist/core/SessionContextMonitor.d.ts.map +1 -0
  174. package/dist/core/SessionContextMonitor.js +156 -0
  175. package/dist/core/SessionContextMonitor.js.map +1 -0
  176. package/dist/core/SessionTokenTracker.d.ts +43 -0
  177. package/dist/core/SessionTokenTracker.d.ts.map +1 -0
  178. package/dist/core/SessionTokenTracker.js +76 -0
  179. package/dist/core/SessionTokenTracker.js.map +1 -0
  180. package/dist/core/TaskScheduler.d.ts +19 -0
  181. package/dist/core/TaskScheduler.d.ts.map +1 -0
  182. package/dist/core/TaskScheduler.js +59 -0
  183. package/dist/core/TaskScheduler.js.map +1 -0
  184. package/dist/core/WorkflowGuidanceEngine.d.ts +35 -0
  185. package/dist/core/WorkflowGuidanceEngine.d.ts.map +1 -0
  186. package/dist/core/WorkflowGuidanceEngine.js +104 -0
  187. package/dist/core/WorkflowGuidanceEngine.js.map +1 -0
  188. package/dist/core/types.d.ts +66 -0
  189. package/dist/core/types.d.ts.map +1 -0
  190. package/dist/core/types.js +11 -0
  191. package/dist/core/types.js.map +1 -0
  192. package/dist/db/ConnectionPool.d.ts +47 -0
  193. package/dist/db/ConnectionPool.d.ts.map +1 -0
  194. package/dist/db/ConnectionPool.js +432 -0
  195. package/dist/db/ConnectionPool.js.map +1 -0
  196. package/dist/db/QueryCache.d.ts +46 -0
  197. package/dist/db/QueryCache.d.ts.map +1 -0
  198. package/dist/db/QueryCache.js +229 -0
  199. package/dist/db/QueryCache.js.map +1 -0
  200. package/dist/errors/index.d.ts +62 -0
  201. package/dist/errors/index.d.ts.map +1 -0
  202. package/dist/errors/index.js +124 -0
  203. package/dist/errors/index.js.map +1 -0
  204. package/dist/evolution/ABTestManager.d.ts +21 -0
  205. package/dist/evolution/ABTestManager.d.ts.map +1 -0
  206. package/dist/evolution/ABTestManager.js +183 -0
  207. package/dist/evolution/ABTestManager.js.map +1 -0
  208. package/dist/evolution/AdaptationEngine.d.ts +60 -0
  209. package/dist/evolution/AdaptationEngine.d.ts.map +1 -0
  210. package/dist/evolution/AdaptationEngine.js +313 -0
  211. package/dist/evolution/AdaptationEngine.js.map +1 -0
  212. package/dist/evolution/AgentEvolutionConfig.d.ts +32 -0
  213. package/dist/evolution/AgentEvolutionConfig.d.ts.map +1 -0
  214. package/dist/evolution/AgentEvolutionConfig.js +329 -0
  215. package/dist/evolution/AgentEvolutionConfig.js.map +1 -0
  216. package/dist/evolution/ContextMatcher.d.ts +24 -0
  217. package/dist/evolution/ContextMatcher.d.ts.map +1 -0
  218. package/dist/evolution/ContextMatcher.js +85 -0
  219. package/dist/evolution/ContextMatcher.js.map +1 -0
  220. package/dist/evolution/EvolutionBootstrap.d.ts +69 -0
  221. package/dist/evolution/EvolutionBootstrap.d.ts.map +1 -0
  222. package/dist/evolution/EvolutionBootstrap.js +332 -0
  223. package/dist/evolution/EvolutionBootstrap.js.map +1 -0
  224. package/dist/evolution/EvolutionMonitor.d.ts +111 -0
  225. package/dist/evolution/EvolutionMonitor.d.ts.map +1 -0
  226. package/dist/evolution/EvolutionMonitor.js +540 -0
  227. package/dist/evolution/EvolutionMonitor.js.map +1 -0
  228. package/dist/evolution/FeedbackCollector.d.ts +26 -0
  229. package/dist/evolution/FeedbackCollector.d.ts.map +1 -0
  230. package/dist/evolution/FeedbackCollector.js +93 -0
  231. package/dist/evolution/FeedbackCollector.js.map +1 -0
  232. package/dist/evolution/KnowledgeTransferManager.d.ts +16 -0
  233. package/dist/evolution/KnowledgeTransferManager.d.ts.map +1 -0
  234. package/dist/evolution/KnowledgeTransferManager.js +34 -0
  235. package/dist/evolution/KnowledgeTransferManager.js.map +1 -0
  236. package/dist/evolution/LearningManager.d.ts +79 -0
  237. package/dist/evolution/LearningManager.d.ts.map +1 -0
  238. package/dist/evolution/LearningManager.js +582 -0
  239. package/dist/evolution/LearningManager.js.map +1 -0
  240. package/dist/evolution/LearningManagerConstants.d.ts +55 -0
  241. package/dist/evolution/LearningManagerConstants.d.ts.map +1 -0
  242. package/dist/evolution/LearningManagerConstants.js +55 -0
  243. package/dist/evolution/LearningManagerConstants.js.map +1 -0
  244. package/dist/evolution/MultiObjectiveOptimizer.d.ts +9 -0
  245. package/dist/evolution/MultiObjectiveOptimizer.d.ts.map +1 -0
  246. package/dist/evolution/MultiObjectiveOptimizer.js +92 -0
  247. package/dist/evolution/MultiObjectiveOptimizer.js.map +1 -0
  248. package/dist/evolution/PatternExplainer.d.ts +14 -0
  249. package/dist/evolution/PatternExplainer.d.ts.map +1 -0
  250. package/dist/evolution/PatternExplainer.js +113 -0
  251. package/dist/evolution/PatternExplainer.js.map +1 -0
  252. package/dist/evolution/PerformanceTracker.d.ts +43 -0
  253. package/dist/evolution/PerformanceTracker.d.ts.map +1 -0
  254. package/dist/evolution/PerformanceTracker.js +453 -0
  255. package/dist/evolution/PerformanceTracker.js.map +1 -0
  256. package/dist/evolution/PerformanceTrackerConstants.d.ts +5 -0
  257. package/dist/evolution/PerformanceTrackerConstants.d.ts.map +1 -0
  258. package/dist/evolution/PerformanceTrackerConstants.js +5 -0
  259. package/dist/evolution/PerformanceTrackerConstants.js.map +1 -0
  260. package/dist/evolution/StatisticalAnalyzer.d.ts +20 -0
  261. package/dist/evolution/StatisticalAnalyzer.d.ts.map +1 -0
  262. package/dist/evolution/StatisticalAnalyzer.js +154 -0
  263. package/dist/evolution/StatisticalAnalyzer.js.map +1 -0
  264. package/dist/evolution/TransferabilityChecker.d.ts +11 -0
  265. package/dist/evolution/TransferabilityChecker.d.ts.map +1 -0
  266. package/dist/evolution/TransferabilityChecker.js +78 -0
  267. package/dist/evolution/TransferabilityChecker.js.map +1 -0
  268. package/dist/evolution/index.d.ts +11 -0
  269. package/dist/evolution/index.d.ts.map +1 -0
  270. package/dist/evolution/index.js +9 -0
  271. package/dist/evolution/index.js.map +1 -0
  272. package/dist/evolution/instrumentation/SpanTracker.d.ts +64 -0
  273. package/dist/evolution/instrumentation/SpanTracker.d.ts.map +1 -0
  274. package/dist/evolution/instrumentation/SpanTracker.js +229 -0
  275. package/dist/evolution/instrumentation/SpanTracker.js.map +1 -0
  276. package/dist/evolution/instrumentation/withEvolutionTracking.d.ts +19 -0
  277. package/dist/evolution/instrumentation/withEvolutionTracking.d.ts.map +1 -0
  278. package/dist/evolution/instrumentation/withEvolutionTracking.js +256 -0
  279. package/dist/evolution/instrumentation/withEvolutionTracking.js.map +1 -0
  280. package/dist/evolution/integration-test-scenarios.d.ts +56 -0
  281. package/dist/evolution/integration-test-scenarios.d.ts.map +1 -0
  282. package/dist/evolution/integration-test-scenarios.js +131 -0
  283. package/dist/evolution/integration-test-scenarios.js.map +1 -0
  284. package/dist/evolution/links/LinkManager.d.ts +17 -0
  285. package/dist/evolution/links/LinkManager.d.ts.map +1 -0
  286. package/dist/evolution/links/LinkManager.js +41 -0
  287. package/dist/evolution/links/LinkManager.js.map +1 -0
  288. package/dist/evolution/storage/EvolutionStore.d.ts +87 -0
  289. package/dist/evolution/storage/EvolutionStore.d.ts.map +1 -0
  290. package/dist/evolution/storage/EvolutionStore.js +2 -0
  291. package/dist/evolution/storage/EvolutionStore.js.map +1 -0
  292. package/dist/evolution/storage/IEvolutionStore.d.ts +87 -0
  293. package/dist/evolution/storage/IEvolutionStore.d.ts.map +1 -0
  294. package/dist/evolution/storage/IEvolutionStore.js +2 -0
  295. package/dist/evolution/storage/IEvolutionStore.js.map +1 -0
  296. package/dist/evolution/storage/SQLiteStore.d.ts +115 -0
  297. package/dist/evolution/storage/SQLiteStore.d.ts.map +1 -0
  298. package/dist/evolution/storage/SQLiteStore.enhanced.d.ts +35 -0
  299. package/dist/evolution/storage/SQLiteStore.enhanced.d.ts.map +1 -0
  300. package/dist/evolution/storage/SQLiteStore.enhanced.js +514 -0
  301. package/dist/evolution/storage/SQLiteStore.enhanced.js.map +1 -0
  302. package/dist/evolution/storage/SQLiteStore.js +915 -0
  303. package/dist/evolution/storage/SQLiteStore.js.map +1 -0
  304. package/dist/evolution/storage/deprecated/SQLiteStore.basic.d.ts +109 -0
  305. package/dist/evolution/storage/deprecated/SQLiteStore.basic.d.ts.map +1 -0
  306. package/dist/evolution/storage/deprecated/SQLiteStore.basic.js +1033 -0
  307. package/dist/evolution/storage/deprecated/SQLiteStore.basic.js.map +1 -0
  308. package/dist/evolution/storage/index.d.ts +6 -0
  309. package/dist/evolution/storage/index.d.ts.map +1 -0
  310. package/dist/evolution/storage/index.js +3 -0
  311. package/dist/evolution/storage/index.js.map +1 -0
  312. package/dist/evolution/storage/migrations/MigrationManager.d.ts +17 -0
  313. package/dist/evolution/storage/migrations/MigrationManager.d.ts.map +1 -0
  314. package/dist/evolution/storage/migrations/MigrationManager.js +242 -0
  315. package/dist/evolution/storage/migrations/MigrationManager.js.map +1 -0
  316. package/dist/evolution/storage/repositories/AdaptationRepository.d.ts +17 -0
  317. package/dist/evolution/storage/repositories/AdaptationRepository.d.ts.map +1 -0
  318. package/dist/evolution/storage/repositories/AdaptationRepository.js +82 -0
  319. package/dist/evolution/storage/repositories/AdaptationRepository.js.map +1 -0
  320. package/dist/evolution/storage/repositories/CostRecordsRepository.d.ts +43 -0
  321. package/dist/evolution/storage/repositories/CostRecordsRepository.d.ts.map +1 -0
  322. package/dist/evolution/storage/repositories/CostRecordsRepository.js +157 -0
  323. package/dist/evolution/storage/repositories/CostRecordsRepository.js.map +1 -0
  324. package/dist/evolution/storage/repositories/ExecutionRepository.d.ts +12 -0
  325. package/dist/evolution/storage/repositories/ExecutionRepository.d.ts.map +1 -0
  326. package/dist/evolution/storage/repositories/ExecutionRepository.js +87 -0
  327. package/dist/evolution/storage/repositories/ExecutionRepository.js.map +1 -0
  328. package/dist/evolution/storage/repositories/PatternRepository.d.ts +12 -0
  329. package/dist/evolution/storage/repositories/PatternRepository.d.ts.map +1 -0
  330. package/dist/evolution/storage/repositories/PatternRepository.js +150 -0
  331. package/dist/evolution/storage/repositories/PatternRepository.js.map +1 -0
  332. package/dist/evolution/storage/repositories/PerformanceMetricsRepository.d.ts +39 -0
  333. package/dist/evolution/storage/repositories/PerformanceMetricsRepository.d.ts.map +1 -0
  334. package/dist/evolution/storage/repositories/PerformanceMetricsRepository.js +130 -0
  335. package/dist/evolution/storage/repositories/PerformanceMetricsRepository.js.map +1 -0
  336. package/dist/evolution/storage/repositories/RewardRepository.d.ts +17 -0
  337. package/dist/evolution/storage/repositories/RewardRepository.d.ts.map +1 -0
  338. package/dist/evolution/storage/repositories/RewardRepository.js +82 -0
  339. package/dist/evolution/storage/repositories/RewardRepository.js.map +1 -0
  340. package/dist/evolution/storage/repositories/SpanRepository.d.ts +14 -0
  341. package/dist/evolution/storage/repositories/SpanRepository.d.ts.map +1 -0
  342. package/dist/evolution/storage/repositories/SpanRepository.js +191 -0
  343. package/dist/evolution/storage/repositories/SpanRepository.js.map +1 -0
  344. package/dist/evolution/storage/repositories/StatsRepository.d.ts +16 -0
  345. package/dist/evolution/storage/repositories/StatsRepository.d.ts.map +1 -0
  346. package/dist/evolution/storage/repositories/StatsRepository.js +271 -0
  347. package/dist/evolution/storage/repositories/StatsRepository.js.map +1 -0
  348. package/dist/evolution/storage/repositories/TaskRepository.d.ts +16 -0
  349. package/dist/evolution/storage/repositories/TaskRepository.d.ts.map +1 -0
  350. package/dist/evolution/storage/repositories/TaskRepository.js +93 -0
  351. package/dist/evolution/storage/repositories/TaskRepository.js.map +1 -0
  352. package/dist/evolution/storage/schema.d.ts +81 -0
  353. package/dist/evolution/storage/schema.d.ts.map +1 -0
  354. package/dist/evolution/storage/schema.js +241 -0
  355. package/dist/evolution/storage/schema.js.map +1 -0
  356. package/dist/evolution/storage/types.d.ts +402 -0
  357. package/dist/evolution/storage/types.d.ts.map +1 -0
  358. package/dist/evolution/storage/types.js +2 -0
  359. package/dist/evolution/storage/types.js.map +1 -0
  360. package/dist/evolution/storage/validation.d.ts +12 -0
  361. package/dist/evolution/storage/validation.d.ts.map +1 -0
  362. package/dist/evolution/storage/validation.js +88 -0
  363. package/dist/evolution/storage/validation.js.map +1 -0
  364. package/dist/evolution/types.d.ts +214 -0
  365. package/dist/evolution/types.d.ts.map +1 -0
  366. package/dist/evolution/types.js +2 -0
  367. package/dist/evolution/types.js.map +1 -0
  368. package/dist/index.d.ts +11 -0
  369. package/dist/index.d.ts.map +1 -0
  370. package/dist/index.js +32 -0
  371. package/dist/index.js.map +1 -0
  372. package/dist/knowledge-graph/index.d.ts +27 -0
  373. package/dist/knowledge-graph/index.d.ts.map +1 -0
  374. package/dist/knowledge-graph/index.js +353 -0
  375. package/dist/knowledge-graph/index.js.map +1 -0
  376. package/dist/knowledge-graph/types.d.ts +37 -0
  377. package/dist/knowledge-graph/types.d.ts.map +1 -0
  378. package/dist/knowledge-graph/types.js +2 -0
  379. package/dist/knowledge-graph/types.js.map +1 -0
  380. package/dist/management/UninstallManager.d.ts +23 -0
  381. package/dist/management/UninstallManager.d.ts.map +1 -0
  382. package/dist/management/UninstallManager.js +186 -0
  383. package/dist/management/UninstallManager.js.map +1 -0
  384. package/dist/management/index.d.ts +3 -0
  385. package/dist/management/index.d.ts.map +1 -0
  386. package/dist/management/index.js +2 -0
  387. package/dist/management/index.js.map +1 -0
  388. package/dist/mcp/BuddyCommands.d.ts +13 -0
  389. package/dist/mcp/BuddyCommands.d.ts.map +1 -0
  390. package/dist/mcp/BuddyCommands.js +110 -0
  391. package/dist/mcp/BuddyCommands.js.map +1 -0
  392. package/dist/mcp/ClaudeMdReloader.d.ts +37 -0
  393. package/dist/mcp/ClaudeMdReloader.d.ts.map +1 -0
  394. package/dist/mcp/ClaudeMdReloader.js +92 -0
  395. package/dist/mcp/ClaudeMdReloader.js.map +1 -0
  396. package/dist/mcp/HumanInLoopUI.d.ts +23 -0
  397. package/dist/mcp/HumanInLoopUI.d.ts.map +1 -0
  398. package/dist/mcp/HumanInLoopUI.js +92 -0
  399. package/dist/mcp/HumanInLoopUI.js.map +1 -0
  400. package/dist/mcp/ServerInitializer.d.ts +47 -0
  401. package/dist/mcp/ServerInitializer.d.ts.map +1 -0
  402. package/dist/mcp/ServerInitializer.js +89 -0
  403. package/dist/mcp/ServerInitializer.js.map +1 -0
  404. package/dist/mcp/SessionBootstrapper.d.ts +11 -0
  405. package/dist/mcp/SessionBootstrapper.d.ts.map +1 -0
  406. package/dist/mcp/SessionBootstrapper.js +67 -0
  407. package/dist/mcp/SessionBootstrapper.js.map +1 -0
  408. package/dist/mcp/ToolDefinitions.d.ts +42 -0
  409. package/dist/mcp/ToolDefinitions.d.ts.map +1 -0
  410. package/dist/mcp/ToolDefinitions.js +234 -0
  411. package/dist/mcp/ToolDefinitions.js.map +1 -0
  412. package/dist/mcp/ToolRouter.d.ts +22 -0
  413. package/dist/mcp/ToolRouter.d.ts.map +1 -0
  414. package/dist/mcp/ToolRouter.js +102 -0
  415. package/dist/mcp/ToolRouter.js.map +1 -0
  416. package/dist/mcp/handlers/BuddyHandlers.d.ts +14 -0
  417. package/dist/mcp/handlers/BuddyHandlers.d.ts.map +1 -0
  418. package/dist/mcp/handlers/BuddyHandlers.js +152 -0
  419. package/dist/mcp/handlers/BuddyHandlers.js.map +1 -0
  420. package/dist/mcp/handlers/ResourceHandlers.d.ts +3 -0
  421. package/dist/mcp/handlers/ResourceHandlers.d.ts.map +1 -0
  422. package/dist/mcp/handlers/ResourceHandlers.js +86 -0
  423. package/dist/mcp/handlers/ResourceHandlers.js.map +1 -0
  424. package/dist/mcp/handlers/ToolHandlers.d.ts +52 -0
  425. package/dist/mcp/handlers/ToolHandlers.d.ts.map +1 -0
  426. package/dist/mcp/handlers/ToolHandlers.js +914 -0
  427. package/dist/mcp/handlers/ToolHandlers.js.map +1 -0
  428. package/dist/mcp/handlers/index.d.ts +4 -0
  429. package/dist/mcp/handlers/index.d.ts.map +1 -0
  430. package/dist/mcp/handlers/index.js +4 -0
  431. package/dist/mcp/handlers/index.js.map +1 -0
  432. package/dist/mcp/index.d.ts +5 -0
  433. package/dist/mcp/index.d.ts.map +1 -0
  434. package/dist/mcp/index.js +3 -0
  435. package/dist/mcp/index.js.map +1 -0
  436. package/dist/mcp/schemas/OutputSchemas.d.ts +368 -0
  437. package/dist/mcp/schemas/OutputSchemas.d.ts.map +1 -0
  438. package/dist/mcp/schemas/OutputSchemas.js +191 -0
  439. package/dist/mcp/schemas/OutputSchemas.js.map +1 -0
  440. package/dist/mcp/server.d.ts +17 -0
  441. package/dist/mcp/server.d.ts.map +1 -0
  442. package/dist/mcp/server.js +184 -0
  443. package/dist/mcp/server.js.map +1 -0
  444. package/dist/mcp/tools/add-observations.d.ts +48 -0
  445. package/dist/mcp/tools/add-observations.d.ts.map +1 -0
  446. package/dist/mcp/tools/add-observations.js +64 -0
  447. package/dist/mcp/tools/add-observations.js.map +1 -0
  448. package/dist/mcp/tools/buddy-do.d.ts +14 -0
  449. package/dist/mcp/tools/buddy-do.d.ts.map +1 -0
  450. package/dist/mcp/tools/buddy-do.js +77 -0
  451. package/dist/mcp/tools/buddy-do.js.map +1 -0
  452. package/dist/mcp/tools/buddy-help.d.ts +13 -0
  453. package/dist/mcp/tools/buddy-help.d.ts.map +1 -0
  454. package/dist/mcp/tools/buddy-help.js +52 -0
  455. package/dist/mcp/tools/buddy-help.js.map +1 -0
  456. package/dist/mcp/tools/buddy-remember.d.ts +15 -0
  457. package/dist/mcp/tools/buddy-remember.d.ts.map +1 -0
  458. package/dist/mcp/tools/buddy-remember.js +77 -0
  459. package/dist/mcp/tools/buddy-remember.js.map +1 -0
  460. package/dist/mcp/tools/create-entities.d.ts +57 -0
  461. package/dist/mcp/tools/create-entities.d.ts.map +1 -0
  462. package/dist/mcp/tools/create-entities.js +64 -0
  463. package/dist/mcp/tools/create-entities.js.map +1 -0
  464. package/dist/mcp/tools/create-relations.d.ts +60 -0
  465. package/dist/mcp/tools/create-relations.d.ts.map +1 -0
  466. package/dist/mcp/tools/create-relations.js +84 -0
  467. package/dist/mcp/tools/create-relations.js.map +1 -0
  468. package/dist/mcp/tools/health-check.d.ts +10 -0
  469. package/dist/mcp/tools/health-check.d.ts.map +1 -0
  470. package/dist/mcp/tools/health-check.js +37 -0
  471. package/dist/mcp/tools/health-check.js.map +1 -0
  472. package/dist/mcp/tools/recall-memory.d.ts +31 -0
  473. package/dist/mcp/tools/recall-memory.d.ts.map +1 -0
  474. package/dist/mcp/tools/recall-memory.js +31 -0
  475. package/dist/mcp/tools/recall-memory.js.map +1 -0
  476. package/dist/mcp/validation.d.ts +88 -0
  477. package/dist/mcp/validation.d.ts.map +1 -0
  478. package/dist/mcp/validation.js +119 -0
  479. package/dist/mcp/validation.js.map +1 -0
  480. package/dist/memory/ProjectAutoTracker.d.ts +36 -0
  481. package/dist/memory/ProjectAutoTracker.d.ts.map +1 -0
  482. package/dist/memory/ProjectAutoTracker.js +200 -0
  483. package/dist/memory/ProjectAutoTracker.js.map +1 -0
  484. package/dist/memory/ProjectMemoryCleanup.d.ts +17 -0
  485. package/dist/memory/ProjectMemoryCleanup.d.ts.map +1 -0
  486. package/dist/memory/ProjectMemoryCleanup.js +57 -0
  487. package/dist/memory/ProjectMemoryCleanup.js.map +1 -0
  488. package/dist/memory/ProjectMemoryManager.d.ts +15 -0
  489. package/dist/memory/ProjectMemoryManager.d.ts.map +1 -0
  490. package/dist/memory/ProjectMemoryManager.js +36 -0
  491. package/dist/memory/ProjectMemoryManager.js.map +1 -0
  492. package/dist/orchestrator/AgentRouter.d.ts +20 -0
  493. package/dist/orchestrator/AgentRouter.d.ts.map +1 -0
  494. package/dist/orchestrator/AgentRouter.js +274 -0
  495. package/dist/orchestrator/AgentRouter.js.map +1 -0
  496. package/dist/orchestrator/CostTracker.d.ts +25 -0
  497. package/dist/orchestrator/CostTracker.d.ts.map +1 -0
  498. package/dist/orchestrator/CostTracker.js +199 -0
  499. package/dist/orchestrator/CostTracker.js.map +1 -0
  500. package/dist/orchestrator/GlobalResourcePool.d.ts +59 -0
  501. package/dist/orchestrator/GlobalResourcePool.d.ts.map +1 -0
  502. package/dist/orchestrator/GlobalResourcePool.js +224 -0
  503. package/dist/orchestrator/GlobalResourcePool.js.map +1 -0
  504. package/dist/orchestrator/GlobalResourcePoolConstants.d.ts +22 -0
  505. package/dist/orchestrator/GlobalResourcePoolConstants.d.ts.map +1 -0
  506. package/dist/orchestrator/GlobalResourcePoolConstants.js +22 -0
  507. package/dist/orchestrator/GlobalResourcePoolConstants.js.map +1 -0
  508. package/dist/orchestrator/TaskAnalyzer.d.ts +15 -0
  509. package/dist/orchestrator/TaskAnalyzer.d.ts.map +1 -0
  510. package/dist/orchestrator/TaskAnalyzer.js +234 -0
  511. package/dist/orchestrator/TaskAnalyzer.js.map +1 -0
  512. package/dist/orchestrator/TaskAnalyzerConstants.d.ts +16 -0
  513. package/dist/orchestrator/TaskAnalyzerConstants.d.ts.map +1 -0
  514. package/dist/orchestrator/TaskAnalyzerConstants.js +16 -0
  515. package/dist/orchestrator/TaskAnalyzerConstants.js.map +1 -0
  516. package/dist/orchestrator/example.d.ts +2 -0
  517. package/dist/orchestrator/example.d.ts.map +1 -0
  518. package/dist/orchestrator/example.js +118 -0
  519. package/dist/orchestrator/example.js.map +1 -0
  520. package/dist/orchestrator/index.d.ts +82 -0
  521. package/dist/orchestrator/index.d.ts.map +1 -0
  522. package/dist/orchestrator/index.js +364 -0
  523. package/dist/orchestrator/index.js.map +1 -0
  524. package/dist/orchestrator/router.d.ts +48 -0
  525. package/dist/orchestrator/router.d.ts.map +1 -0
  526. package/dist/orchestrator/router.js +126 -0
  527. package/dist/orchestrator/router.js.map +1 -0
  528. package/dist/orchestrator/types.d.ts +60 -0
  529. package/dist/orchestrator/types.d.ts.map +1 -0
  530. package/dist/orchestrator/types.js +2 -0
  531. package/dist/orchestrator/types.js.map +1 -0
  532. package/dist/planning/PlanningEngine.d.ts +52 -0
  533. package/dist/planning/PlanningEngine.d.ts.map +1 -0
  534. package/dist/planning/PlanningEngine.js +271 -0
  535. package/dist/planning/PlanningEngine.js.map +1 -0
  536. package/dist/planning/TaskDecomposer.d.ts +32 -0
  537. package/dist/planning/TaskDecomposer.d.ts.map +1 -0
  538. package/dist/planning/TaskDecomposer.js +152 -0
  539. package/dist/planning/TaskDecomposer.js.map +1 -0
  540. package/dist/prompts/templates/PromptTemplates.d.ts +11 -0
  541. package/dist/prompts/templates/PromptTemplates.d.ts.map +1 -0
  542. package/dist/prompts/templates/PromptTemplates.js +942 -0
  543. package/dist/prompts/templates/PromptTemplates.js.map +1 -0
  544. package/dist/prompts/templates/index.d.ts +2 -0
  545. package/dist/prompts/templates/index.d.ts.map +1 -0
  546. package/dist/prompts/templates/index.js +2 -0
  547. package/dist/prompts/templates/index.js.map +1 -0
  548. package/dist/skills/SkillManager.d.ts +33 -0
  549. package/dist/skills/SkillManager.d.ts.map +1 -0
  550. package/dist/skills/SkillManager.js +153 -0
  551. package/dist/skills/SkillManager.js.map +1 -0
  552. package/dist/skills/index.d.ts +3 -0
  553. package/dist/skills/index.d.ts.map +1 -0
  554. package/dist/skills/index.js +2 -0
  555. package/dist/skills/index.js.map +1 -0
  556. package/dist/telemetry/TelemetryCollector.d.ts +19 -0
  557. package/dist/telemetry/TelemetryCollector.d.ts.map +1 -0
  558. package/dist/telemetry/TelemetryCollector.js +62 -0
  559. package/dist/telemetry/TelemetryCollector.js.map +1 -0
  560. package/dist/telemetry/TelemetryStore.d.ts +20 -0
  561. package/dist/telemetry/TelemetryStore.d.ts.map +1 -0
  562. package/dist/telemetry/TelemetryStore.js +126 -0
  563. package/dist/telemetry/TelemetryStore.js.map +1 -0
  564. package/dist/telemetry/index.d.ts +8 -0
  565. package/dist/telemetry/index.d.ts.map +1 -0
  566. package/dist/telemetry/index.js +33 -0
  567. package/dist/telemetry/index.js.map +1 -0
  568. package/dist/telemetry/sanitization.d.ts +6 -0
  569. package/dist/telemetry/sanitization.d.ts.map +1 -0
  570. package/dist/telemetry/sanitization.js +180 -0
  571. package/dist/telemetry/sanitization.js.map +1 -0
  572. package/dist/telemetry/types.d.ts +73 -0
  573. package/dist/telemetry/types.d.ts.map +1 -0
  574. package/dist/telemetry/types.js +16 -0
  575. package/dist/telemetry/types.js.map +1 -0
  576. package/dist/templates/git-education-templates.d.ts +26 -0
  577. package/dist/templates/git-education-templates.d.ts.map +1 -0
  578. package/dist/templates/git-education-templates.js +455 -0
  579. package/dist/templates/git-education-templates.js.map +1 -0
  580. package/dist/types/AgentClassification.d.ts +6 -0
  581. package/dist/types/AgentClassification.d.ts.map +1 -0
  582. package/dist/types/AgentClassification.js +7 -0
  583. package/dist/types/AgentClassification.js.map +1 -0
  584. package/dist/types/Checkpoint.d.ts +12 -0
  585. package/dist/types/Checkpoint.d.ts.map +1 -0
  586. package/dist/types/Checkpoint.js +13 -0
  587. package/dist/types/Checkpoint.js.map +1 -0
  588. package/dist/types/toonify.d.ts +91 -0
  589. package/dist/types/toonify.d.ts.map +1 -0
  590. package/dist/types/toonify.js +18 -0
  591. package/dist/types/toonify.js.map +1 -0
  592. package/dist/ui/AsciiProgressBar.d.ts +29 -0
  593. package/dist/ui/AsciiProgressBar.d.ts.map +1 -0
  594. package/dist/ui/AsciiProgressBar.js +131 -0
  595. package/dist/ui/AsciiProgressBar.js.map +1 -0
  596. package/dist/ui/AttributionManager.d.ts +19 -0
  597. package/dist/ui/AttributionManager.d.ts.map +1 -0
  598. package/dist/ui/AttributionManager.js +107 -0
  599. package/dist/ui/AttributionManager.js.map +1 -0
  600. package/dist/ui/Dashboard.d.ts +24 -0
  601. package/dist/ui/Dashboard.d.ts.map +1 -0
  602. package/dist/ui/Dashboard.js +135 -0
  603. package/dist/ui/Dashboard.js.map +1 -0
  604. package/dist/ui/LoadingIndicator.d.ts +53 -0
  605. package/dist/ui/LoadingIndicator.d.ts.map +1 -0
  606. package/dist/ui/LoadingIndicator.js +174 -0
  607. package/dist/ui/LoadingIndicator.js.map +1 -0
  608. package/dist/ui/MetricsStore.d.ts +15 -0
  609. package/dist/ui/MetricsStore.d.ts.map +1 -0
  610. package/dist/ui/MetricsStore.js +111 -0
  611. package/dist/ui/MetricsStore.js.map +1 -0
  612. package/dist/ui/ProgressRenderer.d.ts +24 -0
  613. package/dist/ui/ProgressRenderer.d.ts.map +1 -0
  614. package/dist/ui/ProgressRenderer.js +121 -0
  615. package/dist/ui/ProgressRenderer.js.map +1 -0
  616. package/dist/ui/ResponseFormatter.d.ts +42 -0
  617. package/dist/ui/ResponseFormatter.d.ts.map +1 -0
  618. package/dist/ui/ResponseFormatter.js +243 -0
  619. package/dist/ui/ResponseFormatter.js.map +1 -0
  620. package/dist/ui/UIEventBus.d.ts +38 -0
  621. package/dist/ui/UIEventBus.d.ts.map +1 -0
  622. package/dist/ui/UIEventBus.js +173 -0
  623. package/dist/ui/UIEventBus.js.map +1 -0
  624. package/dist/ui/index.d.ts +8 -0
  625. package/dist/ui/index.d.ts.map +1 -0
  626. package/dist/ui/index.js +6 -0
  627. package/dist/ui/index.js.map +1 -0
  628. package/dist/ui/theme.d.ts +292 -0
  629. package/dist/ui/theme.d.ts.map +1 -0
  630. package/dist/ui/theme.js +153 -0
  631. package/dist/ui/theme.js.map +1 -0
  632. package/dist/ui/types.d.ts +146 -0
  633. package/dist/ui/types.d.ts.map +1 -0
  634. package/dist/ui/types.js +16 -0
  635. package/dist/ui/types.js.map +1 -0
  636. package/dist/utils/ILogger.d.ts +7 -0
  637. package/dist/utils/ILogger.d.ts.map +1 -0
  638. package/dist/utils/ILogger.js +2 -0
  639. package/dist/utils/ILogger.js.map +1 -0
  640. package/dist/utils/MinHeap.d.ts +15 -0
  641. package/dist/utils/MinHeap.d.ts.map +1 -0
  642. package/dist/utils/MinHeap.js +69 -0
  643. package/dist/utils/MinHeap.js.map +1 -0
  644. package/dist/utils/RateLimiter.d.ts +28 -0
  645. package/dist/utils/RateLimiter.d.ts.map +1 -0
  646. package/dist/utils/RateLimiter.js +115 -0
  647. package/dist/utils/RateLimiter.js.map +1 -0
  648. package/dist/utils/SecureKeyStore.d.ts +10 -0
  649. package/dist/utils/SecureKeyStore.d.ts.map +1 -0
  650. package/dist/utils/SecureKeyStore.js +32 -0
  651. package/dist/utils/SecureKeyStore.js.map +1 -0
  652. package/dist/utils/SystemResources.d.ts +40 -0
  653. package/dist/utils/SystemResources.d.ts.map +1 -0
  654. package/dist/utils/SystemResources.js +221 -0
  655. package/dist/utils/SystemResources.js.map +1 -0
  656. package/dist/utils/cost-tracker.d.ts +34 -0
  657. package/dist/utils/cost-tracker.d.ts.map +1 -0
  658. package/dist/utils/cost-tracker.js +92 -0
  659. package/dist/utils/cost-tracker.js.map +1 -0
  660. package/dist/utils/errorHandler.d.ts +28 -0
  661. package/dist/utils/errorHandler.d.ts.map +1 -0
  662. package/dist/utils/errorHandler.js +206 -0
  663. package/dist/utils/errorHandler.js.map +1 -0
  664. package/dist/utils/json.d.ts +13 -0
  665. package/dist/utils/json.d.ts.map +1 -0
  666. package/dist/utils/json.js +85 -0
  667. package/dist/utils/json.js.map +1 -0
  668. package/dist/utils/logger.d.ts +16 -0
  669. package/dist/utils/logger.d.ts.map +1 -0
  670. package/dist/utils/logger.js +57 -0
  671. package/dist/utils/logger.js.map +1 -0
  672. package/dist/utils/lru-cache.d.ts +40 -0
  673. package/dist/utils/lru-cache.d.ts.map +1 -0
  674. package/dist/utils/lru-cache.js +209 -0
  675. package/dist/utils/lru-cache.js.map +1 -0
  676. package/dist/utils/memory.d.ts +20 -0
  677. package/dist/utils/memory.d.ts.map +1 -0
  678. package/dist/utils/memory.js +53 -0
  679. package/dist/utils/memory.js.map +1 -0
  680. package/dist/utils/money.d.ts +10 -0
  681. package/dist/utils/money.d.ts.map +1 -0
  682. package/dist/utils/money.js +25 -0
  683. package/dist/utils/money.js.map +1 -0
  684. package/dist/utils/pathValidation.d.ts +2 -0
  685. package/dist/utils/pathValidation.d.ts.map +1 -0
  686. package/dist/utils/pathValidation.js +62 -0
  687. package/dist/utils/pathValidation.js.map +1 -0
  688. package/dist/utils/paths.d.ts +4 -0
  689. package/dist/utils/paths.d.ts.map +1 -0
  690. package/dist/utils/paths.js +28 -0
  691. package/dist/utils/paths.js.map +1 -0
  692. package/dist/utils/requestId.d.ts +4 -0
  693. package/dist/utils/requestId.d.ts.map +1 -0
  694. package/dist/utils/requestId.js +17 -0
  695. package/dist/utils/requestId.js.map +1 -0
  696. package/dist/utils/retry.d.ts +20 -0
  697. package/dist/utils/retry.d.ts.map +1 -0
  698. package/dist/utils/retry.js +226 -0
  699. package/dist/utils/retry.js.map +1 -0
  700. package/dist/utils/toonify-adapter.d.ts +77 -0
  701. package/dist/utils/toonify-adapter.d.ts.map +1 -0
  702. package/dist/utils/toonify-adapter.js +283 -0
  703. package/dist/utils/toonify-adapter.js.map +1 -0
  704. package/dist/utils/validation.d.ts +7 -0
  705. package/dist/utils/validation.d.ts.map +1 -0
  706. package/dist/utils/validation.js +62 -0
  707. package/dist/utils/validation.js.map +1 -0
  708. package/package.json +116 -0
  709. package/plugin.json +21 -0
@@ -0,0 +1,1033 @@
1
+ import { v4 as uuid } from 'uuid';
2
+ import { SimpleDatabaseFactory } from '../../../config/simple-config.js';
3
+ import { ValidationError } from '../../../errors/index.js';
4
+ import { validateSpan, validatePattern, validateAdaptation, validateReward, } from '../validation';
5
+ import { safeJsonParse } from '../../../utils/json.js';
6
+ export class SQLiteStore {
7
+ db;
8
+ options;
9
+ static ALLOWED_SORT_COLUMNS = [
10
+ 'start_time', 'duration_ms', 'status_code', 'name', 'kind',
11
+ 'end_time', 'span_id', 'trace_id', 'task_id', 'execution_id'
12
+ ];
13
+ static ALLOWED_PATTERN_SORT_COLUMNS = [
14
+ 'confidence', 'occurrences', 'last_observed', 'created_at',
15
+ 'updated_at', 'first_observed', 'type', 'id'
16
+ ];
17
+ static ALLOWED_SORT_ORDERS = ['ASC', 'DESC'];
18
+ constructor(options = {}) {
19
+ this.options = {
20
+ dbPath: options.dbPath || ':memory:',
21
+ verbose: options.verbose || false,
22
+ enableWAL: options.enableWAL !== false,
23
+ };
24
+ this.db = this.options.dbPath === ':memory:'
25
+ ? SimpleDatabaseFactory.createTestDatabase()
26
+ : SimpleDatabaseFactory.getInstance(this.options.dbPath);
27
+ }
28
+ async initialize() {
29
+ this.createTables();
30
+ this.createIndexes();
31
+ }
32
+ async close() {
33
+ this.db.close();
34
+ }
35
+ escapeLikePattern(pattern) {
36
+ return pattern
37
+ .replace(/\\/g, '\\\\')
38
+ .replace(/%/g, '\\%')
39
+ .replace(/_/g, '\\_')
40
+ .replace(/'/g, "''")
41
+ .replace(/"/g, '""');
42
+ }
43
+ createTables() {
44
+ this.db.exec(`
45
+ CREATE TABLE IF NOT EXISTS tasks (
46
+ id TEXT PRIMARY KEY,
47
+ input TEXT NOT NULL,
48
+ task_type TEXT,
49
+ origin TEXT,
50
+ status TEXT NOT NULL CHECK(status IN ('pending', 'running', 'completed', 'failed')),
51
+ created_at DATETIME NOT NULL,
52
+ started_at DATETIME,
53
+ completed_at DATETIME,
54
+ metadata TEXT
55
+ );
56
+ `);
57
+ this.db.exec(`
58
+ CREATE TABLE IF NOT EXISTS executions (
59
+ id TEXT PRIMARY KEY,
60
+ task_id TEXT NOT NULL,
61
+ attempt_number INTEGER NOT NULL,
62
+ agent_id TEXT,
63
+ agent_type TEXT,
64
+ status TEXT NOT NULL CHECK(status IN ('running', 'completed', 'failed')),
65
+ started_at DATETIME NOT NULL,
66
+ completed_at DATETIME,
67
+ result TEXT,
68
+ error TEXT,
69
+ metadata TEXT,
70
+ FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE
71
+ );
72
+ `);
73
+ this.db.exec(`
74
+ CREATE TABLE IF NOT EXISTS spans (
75
+ span_id TEXT PRIMARY KEY,
76
+ trace_id TEXT NOT NULL,
77
+ parent_span_id TEXT,
78
+ task_id TEXT NOT NULL,
79
+ execution_id TEXT NOT NULL,
80
+ name TEXT NOT NULL,
81
+ kind TEXT NOT NULL,
82
+ start_time INTEGER NOT NULL,
83
+ end_time INTEGER,
84
+ duration_ms INTEGER,
85
+ status_code TEXT NOT NULL,
86
+ status_message TEXT,
87
+ attributes TEXT NOT NULL,
88
+ resource TEXT NOT NULL,
89
+ links TEXT,
90
+ tags TEXT,
91
+ events TEXT,
92
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
93
+ FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE,
94
+ FOREIGN KEY (execution_id) REFERENCES executions(id) ON DELETE CASCADE
95
+ );
96
+ `);
97
+ this.db.exec(`
98
+ CREATE TABLE IF NOT EXISTS patterns (
99
+ id TEXT PRIMARY KEY,
100
+ type TEXT NOT NULL CHECK(type IN ('success', 'anti_pattern', 'optimization')),
101
+ confidence REAL NOT NULL CHECK(confidence >= 0 AND confidence <= 1),
102
+ occurrences INTEGER NOT NULL DEFAULT 1,
103
+ pattern_data TEXT NOT NULL,
104
+ source_span_ids TEXT,
105
+ applies_to_agent_type TEXT,
106
+ applies_to_task_type TEXT,
107
+ applies_to_skill TEXT,
108
+ first_observed DATETIME NOT NULL,
109
+ last_observed DATETIME NOT NULL,
110
+ is_active INTEGER NOT NULL DEFAULT 1,
111
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
112
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
113
+ );
114
+ `);
115
+ this.db.exec(`
116
+ CREATE TABLE IF NOT EXISTS adaptations (
117
+ id TEXT PRIMARY KEY,
118
+ pattern_id TEXT NOT NULL,
119
+ type TEXT NOT NULL CHECK(type IN ('config', 'prompt', 'strategy', 'resource', 'skill')),
120
+ before_config TEXT NOT NULL,
121
+ after_config TEXT NOT NULL,
122
+ applied_to_agent_id TEXT,
123
+ applied_to_task_type TEXT,
124
+ applied_to_skill TEXT,
125
+ applied_at DATETIME NOT NULL,
126
+ success_count INTEGER NOT NULL DEFAULT 0,
127
+ failure_count INTEGER NOT NULL DEFAULT 0,
128
+ avg_improvement REAL NOT NULL DEFAULT 0,
129
+ is_active INTEGER NOT NULL DEFAULT 1,
130
+ deactivated_at DATETIME,
131
+ deactivation_reason TEXT,
132
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
133
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
134
+ FOREIGN KEY (pattern_id) REFERENCES patterns(id) ON DELETE CASCADE
135
+ );
136
+ `);
137
+ this.db.exec(`
138
+ CREATE TABLE IF NOT EXISTS rewards (
139
+ id TEXT PRIMARY KEY,
140
+ operation_span_id TEXT NOT NULL,
141
+ value REAL NOT NULL,
142
+ dimensions TEXT,
143
+ feedback TEXT,
144
+ feedback_type TEXT,
145
+ provided_by TEXT,
146
+ provided_at DATETIME NOT NULL,
147
+ metadata TEXT,
148
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
149
+ FOREIGN KEY (operation_span_id) REFERENCES spans(span_id) ON DELETE CASCADE
150
+ );
151
+ `);
152
+ this.db.exec(`
153
+ CREATE TABLE IF NOT EXISTS evolution_stats (
154
+ id TEXT PRIMARY KEY,
155
+ agent_id TEXT,
156
+ skill_name TEXT,
157
+ period_start DATETIME NOT NULL,
158
+ period_end DATETIME NOT NULL,
159
+ period_type TEXT NOT NULL CHECK(period_type IN ('hourly', 'daily', 'weekly', 'monthly')),
160
+ total_executions INTEGER NOT NULL,
161
+ successful_executions INTEGER NOT NULL,
162
+ failed_executions INTEGER NOT NULL,
163
+ success_rate REAL NOT NULL,
164
+ avg_duration_ms REAL NOT NULL,
165
+ avg_cost REAL NOT NULL,
166
+ avg_quality_score REAL NOT NULL,
167
+ patterns_discovered INTEGER NOT NULL DEFAULT 0,
168
+ adaptations_applied INTEGER NOT NULL DEFAULT 0,
169
+ improvement_rate REAL NOT NULL DEFAULT 0,
170
+ skills_used TEXT,
171
+ most_successful_skill TEXT,
172
+ avg_skill_satisfaction REAL,
173
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
174
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
175
+ );
176
+ `);
177
+ }
178
+ createIndexes() {
179
+ this.db.exec(`
180
+ CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);
181
+ CREATE INDEX IF NOT EXISTS idx_tasks_task_type ON tasks(task_type);
182
+ CREATE INDEX IF NOT EXISTS idx_tasks_created_at ON tasks(created_at);
183
+ `);
184
+ this.db.exec(`
185
+ CREATE INDEX IF NOT EXISTS idx_executions_task_id ON executions(task_id);
186
+ CREATE INDEX IF NOT EXISTS idx_executions_agent_id ON executions(agent_id);
187
+ CREATE INDEX IF NOT EXISTS idx_executions_status ON executions(status);
188
+ `);
189
+ this.db.exec(`
190
+ CREATE INDEX IF NOT EXISTS idx_spans_trace_id ON spans(trace_id);
191
+ CREATE INDEX IF NOT EXISTS idx_spans_task_id ON spans(task_id);
192
+ CREATE INDEX IF NOT EXISTS idx_spans_execution_id ON spans(execution_id);
193
+ CREATE INDEX IF NOT EXISTS idx_spans_parent_span_id ON spans(parent_span_id);
194
+ CREATE INDEX IF NOT EXISTS idx_spans_start_time ON spans(start_time);
195
+ CREATE INDEX IF NOT EXISTS idx_spans_status_code ON spans(status_code);
196
+ `);
197
+ this.db.exec(`
198
+ CREATE INDEX IF NOT EXISTS idx_patterns_type ON patterns(type);
199
+ CREATE INDEX IF NOT EXISTS idx_patterns_confidence ON patterns(confidence);
200
+ CREATE INDEX IF NOT EXISTS idx_patterns_agent_type ON patterns(applies_to_agent_type);
201
+ CREATE INDEX IF NOT EXISTS idx_patterns_task_type ON patterns(applies_to_task_type);
202
+ CREATE INDEX IF NOT EXISTS idx_patterns_skill ON patterns(applies_to_skill);
203
+ CREATE INDEX IF NOT EXISTS idx_patterns_is_active ON patterns(is_active);
204
+ `);
205
+ this.db.exec(`
206
+ CREATE INDEX IF NOT EXISTS idx_adaptations_pattern_id ON adaptations(pattern_id);
207
+ CREATE INDEX IF NOT EXISTS idx_adaptations_agent_id ON adaptations(applied_to_agent_id);
208
+ CREATE INDEX IF NOT EXISTS idx_adaptations_skill ON adaptations(applied_to_skill);
209
+ CREATE INDEX IF NOT EXISTS idx_adaptations_is_active ON adaptations(is_active);
210
+ `);
211
+ this.db.exec(`
212
+ CREATE INDEX IF NOT EXISTS idx_rewards_operation_span_id ON rewards(operation_span_id);
213
+ CREATE INDEX IF NOT EXISTS idx_rewards_provided_at ON rewards(provided_at);
214
+ `);
215
+ this.db.exec(`
216
+ CREATE INDEX IF NOT EXISTS idx_stats_agent_id ON evolution_stats(agent_id);
217
+ CREATE INDEX IF NOT EXISTS idx_stats_skill_name ON evolution_stats(skill_name);
218
+ CREATE INDEX IF NOT EXISTS idx_stats_period ON evolution_stats(period_start, period_end);
219
+ CREATE INDEX IF NOT EXISTS idx_stats_period_type ON evolution_stats(period_type);
220
+ `);
221
+ }
222
+ async createTask(input, metadata) {
223
+ const task = {
224
+ id: uuid(),
225
+ input,
226
+ status: 'pending',
227
+ created_at: new Date(),
228
+ metadata,
229
+ };
230
+ const stmt = this.db.prepare(`
231
+ INSERT INTO tasks (id, input, status, created_at, metadata)
232
+ VALUES (?, ?, ?, ?, ?)
233
+ `);
234
+ stmt.run(task.id, JSON.stringify(task.input), task.status, task.created_at.toISOString(), task.metadata ? JSON.stringify(task.metadata) : null);
235
+ return task;
236
+ }
237
+ async getTask(taskId) {
238
+ const stmt = this.db.prepare(`
239
+ SELECT * FROM tasks WHERE id = ?
240
+ `);
241
+ const row = stmt.get(taskId);
242
+ if (!row)
243
+ return null;
244
+ return this.rowToTask(row);
245
+ }
246
+ async updateTask(taskId, updates) {
247
+ const fields = [];
248
+ const values = [];
249
+ if (updates.status) {
250
+ fields.push('status = ?');
251
+ values.push(updates.status);
252
+ }
253
+ if (updates.started_at) {
254
+ fields.push('started_at = ?');
255
+ values.push(updates.started_at.toISOString());
256
+ }
257
+ if (updates.completed_at) {
258
+ fields.push('completed_at = ?');
259
+ values.push(updates.completed_at.toISOString());
260
+ }
261
+ if (fields.length === 0)
262
+ return;
263
+ values.push(taskId);
264
+ const stmt = this.db.prepare(`
265
+ UPDATE tasks SET ${fields.join(', ')} WHERE id = ?
266
+ `);
267
+ stmt.run(...values);
268
+ }
269
+ async listTasks(filters) {
270
+ let query = 'SELECT * FROM tasks';
271
+ const params = [];
272
+ if (filters?.status) {
273
+ query += ' WHERE status = ?';
274
+ params.push(filters.status);
275
+ }
276
+ query += ' ORDER BY created_at DESC';
277
+ if (filters?.limit) {
278
+ query += ' LIMIT ?';
279
+ params.push(filters.limit);
280
+ }
281
+ if (filters?.offset) {
282
+ query += ' OFFSET ?';
283
+ params.push(filters.offset);
284
+ }
285
+ const stmt = this.db.prepare(query);
286
+ const rows = stmt.all(...params);
287
+ return rows.map((row) => this.rowToTask(row));
288
+ }
289
+ async createExecution(taskId, metadata) {
290
+ const countStmt = this.db.prepare('SELECT COUNT(*) as count FROM executions WHERE task_id = ?');
291
+ const { count } = countStmt.get(taskId);
292
+ const execution = {
293
+ id: uuid(),
294
+ task_id: taskId,
295
+ attempt_number: count + 1,
296
+ status: 'running',
297
+ started_at: new Date(),
298
+ metadata,
299
+ };
300
+ const stmt = this.db.prepare(`
301
+ INSERT INTO executions (id, task_id, attempt_number, status, started_at, metadata)
302
+ VALUES (?, ?, ?, ?, ?, ?)
303
+ `);
304
+ stmt.run(execution.id, execution.task_id, execution.attempt_number, execution.status, execution.started_at.toISOString(), execution.metadata ? JSON.stringify(execution.metadata) : null);
305
+ return execution;
306
+ }
307
+ async getExecution(executionId) {
308
+ const stmt = this.db.prepare('SELECT * FROM executions WHERE id = ?');
309
+ const row = stmt.get(executionId);
310
+ if (!row)
311
+ return null;
312
+ return this.rowToExecution(row);
313
+ }
314
+ async updateExecution(executionId, updates) {
315
+ const fields = [];
316
+ const values = [];
317
+ if (updates.status) {
318
+ fields.push('status = ?');
319
+ values.push(updates.status);
320
+ }
321
+ if (updates.completed_at) {
322
+ fields.push('completed_at = ?');
323
+ values.push(updates.completed_at.toISOString());
324
+ }
325
+ if (updates.result) {
326
+ fields.push('result = ?');
327
+ values.push(JSON.stringify(updates.result));
328
+ }
329
+ if (updates.error) {
330
+ fields.push('error = ?');
331
+ values.push(updates.error);
332
+ }
333
+ if (fields.length === 0)
334
+ return;
335
+ values.push(executionId);
336
+ const stmt = this.db.prepare(`
337
+ UPDATE executions SET ${fields.join(', ')} WHERE id = ?
338
+ `);
339
+ stmt.run(...values);
340
+ }
341
+ async listExecutions(taskId) {
342
+ const stmt = this.db.prepare(`
343
+ SELECT * FROM executions WHERE task_id = ? ORDER BY attempt_number ASC
344
+ `);
345
+ const rows = stmt.all(taskId);
346
+ return rows.map((row) => this.rowToExecution(row));
347
+ }
348
+ async recordSpan(span) {
349
+ validateSpan(span);
350
+ const stmt = this.db.prepare(`
351
+ INSERT INTO spans (
352
+ span_id, trace_id, parent_span_id, task_id, execution_id,
353
+ name, kind, start_time, end_time, duration_ms,
354
+ status_code, status_message,
355
+ attributes, resource, links, tags, events
356
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
357
+ `);
358
+ stmt.run(span.span_id, span.trace_id, span.parent_span_id || null, span.task_id, span.execution_id, span.name, span.kind, span.start_time, span.end_time || null, span.duration_ms || null, span.status.code, span.status.message || null, JSON.stringify(span.attributes), JSON.stringify(span.resource), span.links ? JSON.stringify(span.links) : null, span.tags ? JSON.stringify(span.tags) : null, span.events ? JSON.stringify(span.events) : null);
359
+ }
360
+ async recordSpanBatch(spans) {
361
+ const insertMany = this.db.transaction((spans) => {
362
+ for (const span of spans) {
363
+ this.recordSpan(span);
364
+ }
365
+ });
366
+ insertMany(spans);
367
+ }
368
+ async querySpans(query) {
369
+ let sql = 'SELECT * FROM spans WHERE 1=1';
370
+ const params = [];
371
+ if (query.task_id) {
372
+ sql += ' AND task_id = ?';
373
+ params.push(query.task_id);
374
+ }
375
+ if (query.execution_id) {
376
+ sql += ' AND execution_id = ?';
377
+ params.push(query.execution_id);
378
+ }
379
+ if (query.trace_id) {
380
+ sql += ' AND trace_id = ?';
381
+ params.push(query.trace_id);
382
+ }
383
+ if (query.span_id) {
384
+ sql += ' AND span_id = ?';
385
+ params.push(query.span_id);
386
+ }
387
+ if (query.status_code) {
388
+ sql += ' AND status_code = ?';
389
+ params.push(query.status_code);
390
+ }
391
+ if (query.start_time_gte) {
392
+ sql += ' AND start_time >= ?';
393
+ params.push(query.start_time_gte);
394
+ }
395
+ if (query.start_time_lte) {
396
+ sql += ' AND start_time <= ?';
397
+ params.push(query.start_time_lte);
398
+ }
399
+ if (query.end_time_gte) {
400
+ sql += ' AND end_time >= ?';
401
+ params.push(query.end_time_gte);
402
+ }
403
+ if (query.end_time_lte) {
404
+ sql += ' AND end_time <= ?';
405
+ params.push(query.end_time_lte);
406
+ }
407
+ if (query.sort_by) {
408
+ if (!SQLiteStore.ALLOWED_SORT_COLUMNS.includes(query.sort_by)) {
409
+ throw new ValidationError(`Invalid sort column: ${query.sort_by}. Allowed: ${SQLiteStore.ALLOWED_SORT_COLUMNS.join(', ')}`, {
410
+ component: 'SQLiteStore',
411
+ method: 'querySpans',
412
+ providedValue: query.sort_by,
413
+ allowedValues: SQLiteStore.ALLOWED_SORT_COLUMNS,
414
+ constraint: 'sort_by must be one of allowed columns',
415
+ });
416
+ }
417
+ sql += ` ORDER BY ${query.sort_by}`;
418
+ if (query.sort_order) {
419
+ const upperOrder = query.sort_order.toUpperCase();
420
+ if (!SQLiteStore.ALLOWED_SORT_ORDERS.includes(upperOrder)) {
421
+ throw new ValidationError(`Invalid sort order: ${query.sort_order}. Allowed: ASC, DESC`, {
422
+ component: 'SQLiteStore',
423
+ method: 'querySpans',
424
+ providedValue: query.sort_order,
425
+ allowedValues: SQLiteStore.ALLOWED_SORT_ORDERS,
426
+ constraint: 'sort_order must be ASC or DESC',
427
+ });
428
+ }
429
+ sql += ` ${upperOrder}`;
430
+ }
431
+ }
432
+ else {
433
+ sql += ' ORDER BY start_time DESC';
434
+ }
435
+ if (query.limit) {
436
+ sql += ' LIMIT ?';
437
+ params.push(query.limit);
438
+ }
439
+ if (query.offset) {
440
+ sql += ' OFFSET ?';
441
+ params.push(query.offset);
442
+ }
443
+ const stmt = this.db.prepare(sql);
444
+ const rows = stmt.all(...params);
445
+ return rows.map((row) => this.rowToSpan(row));
446
+ }
447
+ async getSpan(spanId) {
448
+ const stmt = this.db.prepare('SELECT * FROM spans WHERE span_id = ?');
449
+ const row = stmt.get(spanId);
450
+ if (!row)
451
+ return null;
452
+ return this.rowToSpan(row);
453
+ }
454
+ async getSpansByTrace(traceId) {
455
+ const stmt = this.db.prepare('SELECT * FROM spans WHERE trace_id = ? ORDER BY start_time ASC');
456
+ const rows = stmt.all(traceId);
457
+ return rows.map((row) => this.rowToSpan(row));
458
+ }
459
+ async getChildSpans(parentSpanId) {
460
+ const stmt = this.db.prepare('SELECT * FROM spans WHERE parent_span_id = ? ORDER BY start_time ASC');
461
+ const rows = stmt.all(parentSpanId);
462
+ return rows.map((row) => this.rowToSpan(row));
463
+ }
464
+ async queryLinkedSpans(spanId) {
465
+ const stmt = this.db.prepare(`
466
+ SELECT * FROM spans WHERE links IS NOT NULL AND links LIKE ?
467
+ `);
468
+ const escapedSpanId = this.escapeLikePattern(spanId);
469
+ const rows = stmt.all(`%"span_id":"${escapedSpanId}"%`);
470
+ return rows.map((row) => this.rowToSpan(row));
471
+ }
472
+ async queryByTags(tags, mode = 'any') {
473
+ if (mode === 'any') {
474
+ const conditions = tags.map(() => 'tags LIKE ?').join(' OR ');
475
+ const params = tags.map((tag) => `%"${this.escapeLikePattern(tag)}"%`);
476
+ const stmt = this.db.prepare(`
477
+ SELECT * FROM spans WHERE tags IS NOT NULL AND (${conditions})
478
+ `);
479
+ const rows = stmt.all(...params);
480
+ return rows.map((row) => this.rowToSpan(row));
481
+ }
482
+ else {
483
+ const conditions = tags.map(() => 'tags LIKE ?').join(' AND ');
484
+ const params = tags.map((tag) => `%"${this.escapeLikePattern(tag)}"%`);
485
+ const stmt = this.db.prepare(`
486
+ SELECT * FROM spans WHERE tags IS NOT NULL AND ${conditions}
487
+ `);
488
+ const rows = stmt.all(...params);
489
+ return rows.map((row) => this.rowToSpan(row));
490
+ }
491
+ }
492
+ async recordReward(reward) {
493
+ validateReward(reward);
494
+ const stmt = this.db.prepare(`
495
+ INSERT INTO rewards (
496
+ id, operation_span_id, value, dimensions, feedback, feedback_type,
497
+ provided_by, provided_at, metadata
498
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
499
+ `);
500
+ stmt.run(reward.id, reward.operation_span_id, reward.value, reward.dimensions ? JSON.stringify(reward.dimensions) : null, reward.feedback || null, reward.feedback_type || null, reward.provided_by || null, reward.provided_at.toISOString(), reward.metadata ? JSON.stringify(reward.metadata) : null);
501
+ }
502
+ async getRewardsForSpan(spanId) {
503
+ const stmt = this.db.prepare(`
504
+ SELECT * FROM rewards WHERE operation_span_id = ? ORDER BY provided_at ASC
505
+ `);
506
+ const rows = stmt.all(spanId);
507
+ return rows.map((row) => this.rowToReward(row));
508
+ }
509
+ async queryRewardsByOperationSpan(operationSpanId) {
510
+ const stmt = this.db.prepare(`
511
+ SELECT * FROM rewards WHERE operation_span_id = ? ORDER BY provided_at DESC
512
+ `);
513
+ const rows = stmt.all(operationSpanId);
514
+ return rows.map((row) => this.rowToReward(row));
515
+ }
516
+ async queryRewards(filters) {
517
+ let sql = 'SELECT * FROM rewards WHERE 1=1';
518
+ const params = [];
519
+ if (filters.start_time) {
520
+ sql += ' AND provided_at >= ?';
521
+ params.push(filters.start_time.toISOString());
522
+ }
523
+ if (filters.end_time) {
524
+ sql += ' AND provided_at <= ?';
525
+ params.push(filters.end_time.toISOString());
526
+ }
527
+ if (filters.min_value !== undefined) {
528
+ sql += ' AND value >= ?';
529
+ params.push(filters.min_value);
530
+ }
531
+ if (filters.max_value !== undefined) {
532
+ sql += ' AND value <= ?';
533
+ params.push(filters.max_value);
534
+ }
535
+ sql += ' ORDER BY provided_at DESC';
536
+ const stmt = this.db.prepare(sql);
537
+ const rows = stmt.all(...params);
538
+ return rows.map((row) => this.rowToReward(row));
539
+ }
540
+ async storePattern(pattern) {
541
+ validatePattern(pattern);
542
+ const stmt = this.db.prepare(`
543
+ INSERT INTO patterns (
544
+ id, type, confidence, occurrences, pattern_data, source_span_ids,
545
+ applies_to_agent_type, applies_to_task_type, applies_to_skill,
546
+ first_observed, last_observed, is_active
547
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
548
+ `);
549
+ stmt.run(pattern.id, pattern.type, pattern.confidence, pattern.occurrences, JSON.stringify(pattern.pattern_data), JSON.stringify(pattern.source_span_ids), pattern.applies_to_agent_type || null, pattern.applies_to_task_type || null, pattern.applies_to_skill || null, pattern.first_observed.toISOString(), pattern.last_observed.toISOString(), pattern.is_active ? 1 : 0);
550
+ }
551
+ async getPattern(patternId) {
552
+ const stmt = this.db.prepare('SELECT * FROM patterns WHERE id = ?');
553
+ const row = stmt.get(patternId);
554
+ if (!row)
555
+ return null;
556
+ return this.rowToPattern(row);
557
+ }
558
+ async queryPatterns(query) {
559
+ let sql = 'SELECT * FROM patterns WHERE 1=1';
560
+ const params = [];
561
+ if (query.type) {
562
+ if (Array.isArray(query.type)) {
563
+ sql += ` AND type IN (${query.type.map(() => '?').join(',')})`;
564
+ params.push(...query.type);
565
+ }
566
+ else {
567
+ sql += ' AND type = ?';
568
+ params.push(query.type);
569
+ }
570
+ }
571
+ if (query.min_confidence !== undefined) {
572
+ sql += ' AND confidence >= ?';
573
+ params.push(query.min_confidence);
574
+ }
575
+ if (query.max_confidence !== undefined) {
576
+ sql += ' AND confidence <= ?';
577
+ params.push(query.max_confidence);
578
+ }
579
+ if (query.agent_type) {
580
+ sql += ' AND applies_to_agent_type = ?';
581
+ params.push(query.agent_type);
582
+ }
583
+ if (query.task_type) {
584
+ sql += ' AND applies_to_task_type = ?';
585
+ params.push(query.task_type);
586
+ }
587
+ if (query.skill_name) {
588
+ sql += ' AND applies_to_skill = ?';
589
+ params.push(query.skill_name);
590
+ }
591
+ if (query.is_active !== undefined) {
592
+ sql += ' AND is_active = ?';
593
+ params.push(query.is_active ? 1 : 0);
594
+ }
595
+ if (query.observed_after) {
596
+ sql += ' AND last_observed >= ?';
597
+ params.push(query.observed_after.toISOString());
598
+ }
599
+ if (query.observed_before) {
600
+ sql += ' AND first_observed <= ?';
601
+ params.push(query.observed_before.toISOString());
602
+ }
603
+ if (query.sort_by) {
604
+ if (!SQLiteStore.ALLOWED_PATTERN_SORT_COLUMNS.includes(query.sort_by)) {
605
+ throw new ValidationError(`Invalid sort column: ${query.sort_by}. Allowed: ${SQLiteStore.ALLOWED_PATTERN_SORT_COLUMNS.join(', ')}`, {
606
+ component: 'SQLiteStore',
607
+ method: 'searchContextualPatterns',
608
+ providedValue: query.sort_by,
609
+ allowedValues: SQLiteStore.ALLOWED_PATTERN_SORT_COLUMNS,
610
+ constraint: 'sort_by must be one of allowed pattern columns',
611
+ });
612
+ }
613
+ sql += ` ORDER BY ${query.sort_by}`;
614
+ if (query.sort_order) {
615
+ const upperOrder = query.sort_order.toUpperCase();
616
+ if (!SQLiteStore.ALLOWED_SORT_ORDERS.includes(upperOrder)) {
617
+ throw new ValidationError(`Invalid sort order: ${query.sort_order}. Allowed: ASC, DESC`, {
618
+ component: 'SQLiteStore',
619
+ method: 'searchContextualPatterns',
620
+ providedValue: query.sort_order,
621
+ allowedValues: SQLiteStore.ALLOWED_SORT_ORDERS,
622
+ constraint: 'sort_order must be ASC or DESC',
623
+ });
624
+ }
625
+ sql += ` ${upperOrder}`;
626
+ }
627
+ }
628
+ if (query.limit) {
629
+ sql += ' LIMIT ?';
630
+ params.push(query.limit);
631
+ }
632
+ if (query.offset) {
633
+ sql += ' OFFSET ?';
634
+ params.push(query.offset);
635
+ }
636
+ const stmt = this.db.prepare(sql);
637
+ const rows = stmt.all(...params);
638
+ return rows.map((row) => this.rowToPattern(row));
639
+ }
640
+ async updatePattern(patternId, updates) {
641
+ const fields = [];
642
+ const values = [];
643
+ if (updates.confidence !== undefined) {
644
+ fields.push('confidence = ?');
645
+ values.push(updates.confidence);
646
+ }
647
+ if (updates.occurrences !== undefined) {
648
+ fields.push('occurrences = ?');
649
+ values.push(updates.occurrences);
650
+ }
651
+ if (updates.last_observed) {
652
+ fields.push('last_observed = ?');
653
+ values.push(updates.last_observed.toISOString());
654
+ }
655
+ if (fields.length > 0) {
656
+ fields.push('updated_at = CURRENT_TIMESTAMP');
657
+ values.push(patternId);
658
+ const stmt = this.db.prepare(`
659
+ UPDATE patterns SET ${fields.join(', ')} WHERE id = ?
660
+ `);
661
+ stmt.run(...values);
662
+ }
663
+ }
664
+ async deactivatePattern(patternId, reason) {
665
+ const stmt = this.db.prepare(`
666
+ UPDATE patterns SET is_active = 0, updated_at = CURRENT_TIMESTAMP WHERE id = ?
667
+ `);
668
+ stmt.run(patternId);
669
+ }
670
+ async getActivePatternsFor(filters) {
671
+ let sql = 'SELECT * FROM patterns WHERE is_active = 1';
672
+ const params = [];
673
+ if (filters.agentType) {
674
+ sql += ' AND (applies_to_agent_type = ? OR applies_to_agent_type IS NULL)';
675
+ params.push(filters.agentType);
676
+ }
677
+ if (filters.taskType) {
678
+ sql += ' AND (applies_to_task_type = ? OR applies_to_task_type IS NULL)';
679
+ params.push(filters.taskType);
680
+ }
681
+ if (filters.skillName) {
682
+ sql += ' AND (applies_to_skill = ? OR applies_to_skill IS NULL)';
683
+ params.push(filters.skillName);
684
+ }
685
+ sql += ' ORDER BY confidence DESC';
686
+ const stmt = this.db.prepare(sql);
687
+ const rows = stmt.all(...params);
688
+ return rows.map((row) => this.rowToPattern(row));
689
+ }
690
+ async storeAdaptation(adaptation) {
691
+ validateAdaptation(adaptation);
692
+ const stmt = this.db.prepare(`
693
+ INSERT INTO adaptations (
694
+ id, pattern_id, type, before_config, after_config,
695
+ applied_to_agent_id, applied_to_task_type, applied_to_skill,
696
+ applied_at, success_count, failure_count, avg_improvement, is_active
697
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
698
+ `);
699
+ stmt.run(adaptation.id, adaptation.pattern_id, adaptation.type, JSON.stringify(adaptation.before_config), JSON.stringify(adaptation.after_config), adaptation.applied_to_agent_id || null, adaptation.applied_to_task_type || null, adaptation.applied_to_skill || null, adaptation.applied_at.toISOString(), adaptation.success_count, adaptation.failure_count, adaptation.avg_improvement, adaptation.is_active ? 1 : 0);
700
+ }
701
+ async getAdaptation(adaptationId) {
702
+ const stmt = this.db.prepare('SELECT * FROM adaptations WHERE id = ?');
703
+ const row = stmt.get(adaptationId);
704
+ if (!row)
705
+ return null;
706
+ return this.rowToAdaptation(row);
707
+ }
708
+ async queryAdaptations(filters) {
709
+ let sql = 'SELECT * FROM adaptations WHERE 1=1';
710
+ const params = [];
711
+ if (filters.patternId) {
712
+ sql += ' AND pattern_id = ?';
713
+ params.push(filters.patternId);
714
+ }
715
+ if (filters.agentId) {
716
+ sql += ' AND applied_to_agent_id = ?';
717
+ params.push(filters.agentId);
718
+ }
719
+ if (filters.taskType) {
720
+ sql += ' AND applied_to_task_type = ?';
721
+ params.push(filters.taskType);
722
+ }
723
+ if (filters.skillName) {
724
+ sql += ' AND applied_to_skill = ?';
725
+ params.push(filters.skillName);
726
+ }
727
+ if (filters.isActive !== undefined) {
728
+ sql += ' AND is_active = ?';
729
+ params.push(filters.isActive ? 1 : 0);
730
+ }
731
+ sql += ' ORDER BY applied_at DESC';
732
+ const stmt = this.db.prepare(sql);
733
+ const rows = stmt.all(...params);
734
+ return rows.map((row) => this.rowToAdaptation(row));
735
+ }
736
+ async updateAdaptationOutcome(adaptationId, outcome) {
737
+ const adaptation = await this.getAdaptation(adaptationId);
738
+ if (!adaptation)
739
+ return;
740
+ const newSuccessCount = outcome.success
741
+ ? adaptation.success_count + 1
742
+ : adaptation.success_count;
743
+ const newFailureCount = !outcome.success
744
+ ? adaptation.failure_count + 1
745
+ : adaptation.failure_count;
746
+ let newAvgImprovement = adaptation.avg_improvement;
747
+ if (outcome.improvement !== undefined) {
748
+ const totalCount = newSuccessCount + newFailureCount;
749
+ newAvgImprovement =
750
+ (adaptation.avg_improvement * (totalCount - 1) + outcome.improvement) /
751
+ totalCount;
752
+ }
753
+ const stmt = this.db.prepare(`
754
+ UPDATE adaptations
755
+ SET success_count = ?, failure_count = ?, avg_improvement = ?, updated_at = CURRENT_TIMESTAMP
756
+ WHERE id = ?
757
+ `);
758
+ stmt.run(newSuccessCount, newFailureCount, newAvgImprovement, adaptationId);
759
+ }
760
+ async deactivateAdaptation(adaptationId, reason) {
761
+ const stmt = this.db.prepare(`
762
+ UPDATE adaptations
763
+ SET is_active = 0, deactivated_at = CURRENT_TIMESTAMP, deactivation_reason = ?, updated_at = CURRENT_TIMESTAMP
764
+ WHERE id = ?
765
+ `);
766
+ stmt.run(reason || null, adaptationId);
767
+ }
768
+ async getStats(agentId, timeRange) {
769
+ const stmt = this.db.prepare(`
770
+ SELECT * FROM evolution_stats
771
+ WHERE agent_id = ? AND period_start >= ? AND period_end <= ?
772
+ ORDER BY period_start DESC LIMIT 1
773
+ `);
774
+ const row = stmt.get(agentId, timeRange.start.toISOString(), timeRange.end.toISOString());
775
+ if (row) {
776
+ return this.rowToEvolutionStats(row);
777
+ }
778
+ return {
779
+ id: uuid(),
780
+ agent_id: agentId,
781
+ period_start: timeRange.start,
782
+ period_end: timeRange.end,
783
+ period_type: 'daily',
784
+ total_executions: 0,
785
+ successful_executions: 0,
786
+ failed_executions: 0,
787
+ success_rate: 0,
788
+ avg_duration_ms: 0,
789
+ avg_cost: 0,
790
+ avg_quality_score: 0,
791
+ patterns_discovered: 0,
792
+ adaptations_applied: 0,
793
+ improvement_rate: 0,
794
+ created_at: new Date(),
795
+ updated_at: new Date(),
796
+ };
797
+ }
798
+ async getAllStats(timeRange) {
799
+ const stmt = this.db.prepare(`
800
+ SELECT * FROM evolution_stats
801
+ WHERE period_start >= ? AND period_end <= ?
802
+ ORDER BY period_start DESC
803
+ `);
804
+ const rows = stmt.all(timeRange.start.toISOString(), timeRange.end.toISOString());
805
+ return rows.map((row) => this.rowToEvolutionStats(row));
806
+ }
807
+ async computePeriodStats(periodType, periodStart, periodEnd) {
808
+ return [];
809
+ }
810
+ async getSkillPerformance(skillName, timeRange) {
811
+ const stmt = this.db.prepare(`
812
+ SELECT
813
+ COUNT(*) as total_uses,
814
+ SUM(CASE WHEN status_code = 'OK' THEN 1 ELSE 0 END) as successful_uses,
815
+ SUM(CASE WHEN status_code = 'ERROR' THEN 1 ELSE 0 END) as failed_uses,
816
+ AVG(duration_ms) as avg_duration_ms
817
+ FROM spans
818
+ WHERE json_extract(attributes, '$.skill.name') = ?
819
+ AND start_time >= ? AND start_time <= ?
820
+ `);
821
+ const row = stmt.get(skillName, timeRange.start.getTime(), timeRange.end.getTime());
822
+ const total = row?.total_uses || 0;
823
+ const successful = row?.successful_uses || 0;
824
+ return {
825
+ skill_name: skillName,
826
+ total_uses: total,
827
+ successful_uses: successful,
828
+ failed_uses: row?.failed_uses || 0,
829
+ success_rate: total > 0 ? successful / total : 0,
830
+ avg_duration_ms: row?.avg_duration_ms || 0,
831
+ avg_user_satisfaction: 0,
832
+ trend_7d: 'stable',
833
+ trend_30d: 'stable',
834
+ period_start: timeRange.start,
835
+ period_end: timeRange.end,
836
+ };
837
+ }
838
+ async getAllSkillsPerformance(timeRange) {
839
+ const skillsStmt = this.db.prepare(`
840
+ SELECT DISTINCT json_extract(attributes, '$.skill.name') as skill_name
841
+ FROM spans
842
+ WHERE json_extract(attributes, '$.skill.name') IS NOT NULL
843
+ AND start_time >= ? AND start_time <= ?
844
+ `);
845
+ const skills = skillsStmt.all(timeRange.start.getTime(), timeRange.end.getTime());
846
+ const performances = await Promise.all(skills.map((s) => this.getSkillPerformance(s.skill_name, timeRange)));
847
+ return performances.sort((a, b) => b.total_uses - a.total_uses);
848
+ }
849
+ async getSkillRecommendations(filters) {
850
+ return [];
851
+ }
852
+ async recordSkillFeedback(spanId, feedback) {
853
+ const reward = {
854
+ id: uuid(),
855
+ operation_span_id: spanId,
856
+ value: feedback.satisfaction / 5,
857
+ dimensions: {
858
+ user_satisfaction: feedback.satisfaction,
859
+ },
860
+ feedback: feedback.comment,
861
+ feedback_type: 'user',
862
+ provided_at: new Date(),
863
+ };
864
+ await this.recordReward(reward);
865
+ }
866
+ async getDatabaseStats() {
867
+ const tasksCount = this.db
868
+ .prepare('SELECT COUNT(*) as count FROM tasks')
869
+ .get();
870
+ const executionsCount = this.db
871
+ .prepare('SELECT COUNT(*) as count FROM executions')
872
+ .get();
873
+ const spansCount = this.db
874
+ .prepare('SELECT COUNT(*) as count FROM spans')
875
+ .get();
876
+ const patternsCount = this.db
877
+ .prepare('SELECT COUNT(*) as count FROM patterns')
878
+ .get();
879
+ const adaptationsCount = this.db
880
+ .prepare('SELECT COUNT(*) as count FROM adaptations')
881
+ .get();
882
+ return {
883
+ total_tasks: tasksCount.count,
884
+ total_executions: executionsCount.count,
885
+ total_spans: spansCount.count,
886
+ total_patterns: patternsCount.count,
887
+ total_adaptations: adaptationsCount.count,
888
+ };
889
+ }
890
+ async optimize() {
891
+ this.db.pragma('optimize');
892
+ this.db.exec('VACUUM');
893
+ }
894
+ async exportData(filters) {
895
+ return JSON.stringify({ message: 'Export not yet implemented' });
896
+ }
897
+ rowToTask(row) {
898
+ return {
899
+ id: row.id,
900
+ input: safeJsonParse(row.input, {}),
901
+ task_type: row.task_type ?? undefined,
902
+ origin: row.origin ?? undefined,
903
+ status: row.status,
904
+ created_at: new Date(row.created_at),
905
+ started_at: row.started_at ? new Date(row.started_at) : undefined,
906
+ completed_at: row.completed_at ? new Date(row.completed_at) : undefined,
907
+ metadata: safeJsonParse(row.metadata, undefined),
908
+ };
909
+ }
910
+ rowToExecution(row) {
911
+ return {
912
+ id: row.id,
913
+ task_id: row.task_id,
914
+ attempt_number: row.attempt_number,
915
+ agent_id: row.agent_id ?? undefined,
916
+ agent_type: row.agent_type ?? undefined,
917
+ status: row.status,
918
+ started_at: new Date(row.started_at),
919
+ completed_at: row.completed_at ? new Date(row.completed_at) : undefined,
920
+ result: safeJsonParse(row.result, undefined),
921
+ error: row.error ?? undefined,
922
+ metadata: safeJsonParse(row.metadata, undefined),
923
+ };
924
+ }
925
+ rowToSpan(row) {
926
+ return {
927
+ trace_id: row.trace_id,
928
+ span_id: row.span_id,
929
+ parent_span_id: row.parent_span_id ?? undefined,
930
+ task_id: row.task_id,
931
+ execution_id: row.execution_id,
932
+ name: row.name,
933
+ kind: row.kind,
934
+ start_time: row.start_time,
935
+ end_time: row.end_time ?? undefined,
936
+ duration_ms: row.duration_ms ?? undefined,
937
+ status: {
938
+ code: row.status_code,
939
+ message: row.status_message ?? undefined,
940
+ },
941
+ attributes: safeJsonParse(row.attributes, {}),
942
+ resource: safeJsonParse(row.resource, { 'task.id': '', 'execution.id': '', 'execution.attempt': 0 }),
943
+ links: safeJsonParse(row.links, undefined),
944
+ tags: safeJsonParse(row.tags, undefined),
945
+ events: safeJsonParse(row.events, undefined),
946
+ };
947
+ }
948
+ rowToPattern(row) {
949
+ return {
950
+ id: row.id,
951
+ type: row.type,
952
+ confidence: row.confidence,
953
+ occurrences: row.occurrences,
954
+ pattern_data: safeJsonParse(row.pattern_data, {
955
+ conditions: {},
956
+ recommendations: {},
957
+ expected_improvement: {},
958
+ evidence: { sample_size: 0 },
959
+ }),
960
+ source_span_ids: safeJsonParse(row.source_span_ids, []),
961
+ applies_to_agent_type: row.applies_to_agent_type ?? undefined,
962
+ applies_to_task_type: row.applies_to_task_type ?? undefined,
963
+ applies_to_skill: row.applies_to_skill ?? undefined,
964
+ first_observed: new Date(row.first_observed),
965
+ last_observed: new Date(row.last_observed),
966
+ is_active: row.is_active === 1,
967
+ created_at: new Date(row.created_at),
968
+ updated_at: new Date(row.updated_at),
969
+ };
970
+ }
971
+ rowToAdaptation(row) {
972
+ return {
973
+ id: row.id,
974
+ pattern_id: row.pattern_id,
975
+ type: row.type,
976
+ before_config: safeJsonParse(row.before_config, {}),
977
+ after_config: safeJsonParse(row.after_config, {}),
978
+ applied_to_agent_id: row.applied_to_agent_id ?? undefined,
979
+ applied_to_task_type: row.applied_to_task_type ?? undefined,
980
+ applied_to_skill: row.applied_to_skill ?? undefined,
981
+ applied_at: new Date(row.applied_at),
982
+ success_count: row.success_count,
983
+ failure_count: row.failure_count,
984
+ avg_improvement: row.avg_improvement,
985
+ is_active: row.is_active === 1,
986
+ deactivated_at: row.deactivated_at
987
+ ? new Date(row.deactivated_at)
988
+ : undefined,
989
+ deactivation_reason: row.deactivation_reason ?? undefined,
990
+ created_at: new Date(row.created_at),
991
+ updated_at: new Date(row.updated_at),
992
+ };
993
+ }
994
+ rowToReward(row) {
995
+ return {
996
+ id: row.id,
997
+ operation_span_id: row.operation_span_id,
998
+ value: row.value,
999
+ dimensions: safeJsonParse(row.dimensions, undefined),
1000
+ feedback: row.feedback ?? undefined,
1001
+ feedback_type: row.feedback_type,
1002
+ provided_by: row.provided_by ?? undefined,
1003
+ provided_at: new Date(row.provided_at),
1004
+ metadata: safeJsonParse(row.metadata, undefined),
1005
+ };
1006
+ }
1007
+ rowToEvolutionStats(row) {
1008
+ return {
1009
+ id: row.id,
1010
+ agent_id: row.agent_id ?? undefined,
1011
+ skill_name: row.skill_name ?? undefined,
1012
+ period_start: new Date(row.period_start),
1013
+ period_end: new Date(row.period_end),
1014
+ period_type: row.period_type,
1015
+ total_executions: row.total_executions,
1016
+ successful_executions: row.successful_executions,
1017
+ failed_executions: row.failed_executions,
1018
+ success_rate: row.success_rate,
1019
+ avg_duration_ms: row.avg_duration_ms,
1020
+ avg_cost: row.avg_cost,
1021
+ avg_quality_score: row.avg_quality_score,
1022
+ patterns_discovered: row.patterns_discovered,
1023
+ adaptations_applied: row.adaptations_applied,
1024
+ improvement_rate: row.improvement_rate,
1025
+ skills_used: safeJsonParse(row.skills_used, undefined),
1026
+ most_successful_skill: row.most_successful_skill ?? undefined,
1027
+ avg_skill_satisfaction: row.avg_skill_satisfaction ?? undefined,
1028
+ created_at: new Date(row.created_at),
1029
+ updated_at: new Date(row.updated_at),
1030
+ };
1031
+ }
1032
+ }
1033
+ //# sourceMappingURL=SQLiteStore.basic.js.map