agent-nuvira 1.14.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 (379) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +891 -0
  3. package/dist/agent-sdk/src/agent.d.ts +118 -0
  4. package/dist/agent-sdk/src/agent.d.ts.map +1 -0
  5. package/dist/agent-sdk/src/agent.js +88 -0
  6. package/dist/agent-sdk/src/agent.js.map +1 -0
  7. package/dist/agent-sdk/src/index.d.ts +33 -0
  8. package/dist/agent-sdk/src/index.d.ts.map +1 -0
  9. package/dist/agent-sdk/src/index.js +32 -0
  10. package/dist/agent-sdk/src/index.js.map +1 -0
  11. package/dist/agent-sdk/src/register.d.ts +70 -0
  12. package/dist/agent-sdk/src/register.d.ts.map +1 -0
  13. package/dist/agent-sdk/src/register.js +181 -0
  14. package/dist/agent-sdk/src/register.js.map +1 -0
  15. package/dist/agent-sdk/src/scaffold.d.ts +50 -0
  16. package/dist/agent-sdk/src/scaffold.d.ts.map +1 -0
  17. package/dist/agent-sdk/src/scaffold.js +291 -0
  18. package/dist/agent-sdk/src/scaffold.js.map +1 -0
  19. package/dist/agent-sdk/src/testing.d.ts +187 -0
  20. package/dist/agent-sdk/src/testing.d.ts.map +1 -0
  21. package/dist/agent-sdk/src/testing.js +243 -0
  22. package/dist/agent-sdk/src/testing.js.map +1 -0
  23. package/dist/agent-sdk/src/types.d.ts +202 -0
  24. package/dist/agent-sdk/src/types.d.ts.map +1 -0
  25. package/dist/agent-sdk/src/types.js +11 -0
  26. package/dist/agent-sdk/src/types.js.map +1 -0
  27. package/dist/agents/agent.d.ts +132 -0
  28. package/dist/agents/agent.d.ts.map +1 -0
  29. package/dist/agents/agent.js +19 -0
  30. package/dist/agents/agent.js.map +1 -0
  31. package/dist/agents/agents/context-gatherer.d.ts +42 -0
  32. package/dist/agents/agents/context-gatherer.d.ts.map +1 -0
  33. package/dist/agents/agents/context-gatherer.js +366 -0
  34. package/dist/agents/agents/context-gatherer.js.map +1 -0
  35. package/dist/agents/agents/debugger.d.ts +58 -0
  36. package/dist/agents/agents/debugger.d.ts.map +1 -0
  37. package/dist/agents/agents/debugger.js +257 -0
  38. package/dist/agents/agents/debugger.js.map +1 -0
  39. package/dist/agents/agents/git-agent.d.ts +34 -0
  40. package/dist/agents/agents/git-agent.d.ts.map +1 -0
  41. package/dist/agents/agents/git-agent.js +200 -0
  42. package/dist/agents/agents/git-agent.js.map +1 -0
  43. package/dist/agents/agents/github-release-agent.d.ts +65 -0
  44. package/dist/agents/agents/github-release-agent.d.ts.map +1 -0
  45. package/dist/agents/agents/github-release-agent.js +439 -0
  46. package/dist/agents/agents/github-release-agent.js.map +1 -0
  47. package/dist/agents/agents/package-agent.d.ts +33 -0
  48. package/dist/agents/agents/package-agent.d.ts.map +1 -0
  49. package/dist/agents/agents/package-agent.js +233 -0
  50. package/dist/agents/agents/package-agent.js.map +1 -0
  51. package/dist/agents/agents/planner.d.ts +26 -0
  52. package/dist/agents/agents/planner.d.ts.map +1 -0
  53. package/dist/agents/agents/planner.js +222 -0
  54. package/dist/agents/agents/planner.js.map +1 -0
  55. package/dist/agents/agents/reviewer.d.ts +34 -0
  56. package/dist/agents/agents/reviewer.d.ts.map +1 -0
  57. package/dist/agents/agents/reviewer.js +159 -0
  58. package/dist/agents/agents/reviewer.js.map +1 -0
  59. package/dist/agents/agents/runner.d.ts +73 -0
  60. package/dist/agents/agents/runner.d.ts.map +1 -0
  61. package/dist/agents/agents/runner.js +299 -0
  62. package/dist/agents/agents/runner.js.map +1 -0
  63. package/dist/agents/agents/security-agent.d.ts +33 -0
  64. package/dist/agents/agents/security-agent.d.ts.map +1 -0
  65. package/dist/agents/agents/security-agent.js +184 -0
  66. package/dist/agents/agents/security-agent.js.map +1 -0
  67. package/dist/agents/agents/tester.d.ts +96 -0
  68. package/dist/agents/agents/tester.d.ts.map +1 -0
  69. package/dist/agents/agents/tester.js +410 -0
  70. package/dist/agents/agents/tester.js.map +1 -0
  71. package/dist/agents/agents/writer.d.ts +51 -0
  72. package/dist/agents/agents/writer.d.ts.map +1 -0
  73. package/dist/agents/agents/writer.js +384 -0
  74. package/dist/agents/agents/writer.js.map +1 -0
  75. package/dist/agents/context-vault.d.ts +49 -0
  76. package/dist/agents/context-vault.d.ts.map +1 -0
  77. package/dist/agents/context-vault.js +134 -0
  78. package/dist/agents/context-vault.js.map +1 -0
  79. package/dist/agents/orchestrator.d.ts +97 -0
  80. package/dist/agents/orchestrator.d.ts.map +1 -0
  81. package/dist/agents/orchestrator.js +696 -0
  82. package/dist/agents/orchestrator.js.map +1 -0
  83. package/dist/agents/utils/file-tree.d.ts +28 -0
  84. package/dist/agents/utils/file-tree.d.ts.map +1 -0
  85. package/dist/agents/utils/file-tree.js +93 -0
  86. package/dist/agents/utils/file-tree.js.map +1 -0
  87. package/dist/cli/agent.d.ts +25 -0
  88. package/dist/cli/agent.d.ts.map +1 -0
  89. package/dist/cli/agent.js +374 -0
  90. package/dist/cli/agent.js.map +1 -0
  91. package/dist/cli/benchmark.d.ts +24 -0
  92. package/dist/cli/benchmark.d.ts.map +1 -0
  93. package/dist/cli/benchmark.js +235 -0
  94. package/dist/cli/benchmark.js.map +1 -0
  95. package/dist/cli/cache.d.ts +12 -0
  96. package/dist/cli/cache.d.ts.map +1 -0
  97. package/dist/cli/cache.js +58 -0
  98. package/dist/cli/cache.js.map +1 -0
  99. package/dist/cli/chat.d.ts +37 -0
  100. package/dist/cli/chat.d.ts.map +1 -0
  101. package/dist/cli/chat.js +393 -0
  102. package/dist/cli/chat.js.map +1 -0
  103. package/dist/cli/commands.d.ts +24 -0
  104. package/dist/cli/commands.d.ts.map +1 -0
  105. package/dist/cli/commands.js +18 -0
  106. package/dist/cli/commands.js.map +1 -0
  107. package/dist/cli/config.d.ts +19 -0
  108. package/dist/cli/config.d.ts.map +1 -0
  109. package/dist/cli/config.js +162 -0
  110. package/dist/cli/config.js.map +1 -0
  111. package/dist/cli/dashboard.d.ts +34 -0
  112. package/dist/cli/dashboard.d.ts.map +1 -0
  113. package/dist/cli/dashboard.js +126 -0
  114. package/dist/cli/dashboard.js.map +1 -0
  115. package/dist/cli/doctor.d.ts +68 -0
  116. package/dist/cli/doctor.d.ts.map +1 -0
  117. package/dist/cli/doctor.js +585 -0
  118. package/dist/cli/doctor.js.map +1 -0
  119. package/dist/cli/edit.d.ts +11 -0
  120. package/dist/cli/edit.d.ts.map +1 -0
  121. package/dist/cli/edit.js +86 -0
  122. package/dist/cli/edit.js.map +1 -0
  123. package/dist/cli/execute.d.ts +25 -0
  124. package/dist/cli/execute.d.ts.map +1 -0
  125. package/dist/cli/execute.js +186 -0
  126. package/dist/cli/execute.js.map +1 -0
  127. package/dist/cli/federation.d.ts +31 -0
  128. package/dist/cli/federation.d.ts.map +1 -0
  129. package/dist/cli/federation.js +387 -0
  130. package/dist/cli/federation.js.map +1 -0
  131. package/dist/cli/history.d.ts +22 -0
  132. package/dist/cli/history.d.ts.map +1 -0
  133. package/dist/cli/history.js +140 -0
  134. package/dist/cli/history.js.map +1 -0
  135. package/dist/cli/init.d.ts +49 -0
  136. package/dist/cli/init.d.ts.map +1 -0
  137. package/dist/cli/init.js +423 -0
  138. package/dist/cli/init.js.map +1 -0
  139. package/dist/cli/learn.d.ts +31 -0
  140. package/dist/cli/learn.d.ts.map +1 -0
  141. package/dist/cli/learn.js +320 -0
  142. package/dist/cli/learn.js.map +1 -0
  143. package/dist/cli/memory.d.ts +38 -0
  144. package/dist/cli/memory.d.ts.map +1 -0
  145. package/dist/cli/memory.js +295 -0
  146. package/dist/cli/memory.js.map +1 -0
  147. package/dist/cli/model-picker.d.ts +18 -0
  148. package/dist/cli/model-picker.d.ts.map +1 -0
  149. package/dist/cli/model-picker.js +225 -0
  150. package/dist/cli/model-picker.js.map +1 -0
  151. package/dist/cli/models.d.ts +11 -0
  152. package/dist/cli/models.d.ts.map +1 -0
  153. package/dist/cli/models.js +132 -0
  154. package/dist/cli/models.js.map +1 -0
  155. package/dist/cli/plan.d.ts +11 -0
  156. package/dist/cli/plan.d.ts.map +1 -0
  157. package/dist/cli/plan.js +94 -0
  158. package/dist/cli/plan.js.map +1 -0
  159. package/dist/cli/plugins.d.ts +15 -0
  160. package/dist/cli/plugins.d.ts.map +1 -0
  161. package/dist/cli/plugins.js +123 -0
  162. package/dist/cli/plugins.js.map +1 -0
  163. package/dist/cli/router.d.ts +20 -0
  164. package/dist/cli/router.d.ts.map +1 -0
  165. package/dist/cli/router.js +142 -0
  166. package/dist/cli/router.js.map +1 -0
  167. package/dist/cli/run.d.ts +22 -0
  168. package/dist/cli/run.d.ts.map +1 -0
  169. package/dist/cli/run.js +110 -0
  170. package/dist/cli/run.js.map +1 -0
  171. package/dist/cli/sandbox.d.ts +27 -0
  172. package/dist/cli/sandbox.d.ts.map +1 -0
  173. package/dist/cli/sandbox.js +264 -0
  174. package/dist/cli/sandbox.js.map +1 -0
  175. package/dist/cli/sdk.d.ts +27 -0
  176. package/dist/cli/sdk.d.ts.map +1 -0
  177. package/dist/cli/sdk.js +204 -0
  178. package/dist/cli/sdk.js.map +1 -0
  179. package/dist/cli/stats.d.ts +18 -0
  180. package/dist/cli/stats.d.ts.map +1 -0
  181. package/dist/cli/stats.js +78 -0
  182. package/dist/cli/stats.js.map +1 -0
  183. package/dist/cli/team.d.ts +42 -0
  184. package/dist/cli/team.d.ts.map +1 -0
  185. package/dist/cli/team.js +473 -0
  186. package/dist/cli/team.js.map +1 -0
  187. package/dist/cli/workflow.d.ts +27 -0
  188. package/dist/cli/workflow.d.ts.map +1 -0
  189. package/dist/cli/workflow.js +347 -0
  190. package/dist/cli/workflow.js.map +1 -0
  191. package/dist/config/manager.d.ts +37 -0
  192. package/dist/config/manager.d.ts.map +1 -0
  193. package/dist/config/manager.js +147 -0
  194. package/dist/config/manager.js.map +1 -0
  195. package/dist/config/types.d.ts +53 -0
  196. package/dist/config/types.d.ts.map +1 -0
  197. package/dist/config/types.js +2 -0
  198. package/dist/config/types.js.map +1 -0
  199. package/dist/context/cache.d.ts +27 -0
  200. package/dist/context/cache.d.ts.map +1 -0
  201. package/dist/context/cache.js +116 -0
  202. package/dist/context/cache.js.map +1 -0
  203. package/dist/context/history.d.ts +87 -0
  204. package/dist/context/history.d.ts.map +1 -0
  205. package/dist/context/history.js +249 -0
  206. package/dist/context/history.js.map +1 -0
  207. package/dist/context/parser.d.ts +61 -0
  208. package/dist/context/parser.d.ts.map +1 -0
  209. package/dist/context/parser.js +194 -0
  210. package/dist/context/parser.js.map +1 -0
  211. package/dist/federation/client.d.ts +49 -0
  212. package/dist/federation/client.d.ts.map +1 -0
  213. package/dist/federation/client.js +239 -0
  214. package/dist/federation/client.js.map +1 -0
  215. package/dist/federation/protocol.d.ts +155 -0
  216. package/dist/federation/protocol.d.ts.map +1 -0
  217. package/dist/federation/protocol.js +57 -0
  218. package/dist/federation/protocol.js.map +1 -0
  219. package/dist/federation/server.d.ts +25 -0
  220. package/dist/federation/server.d.ts.map +1 -0
  221. package/dist/federation/server.js +401 -0
  222. package/dist/federation/server.js.map +1 -0
  223. package/dist/index.d.ts +67 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +93 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/inference/factory.d.ts +20 -0
  228. package/dist/inference/factory.d.ts.map +1 -0
  229. package/dist/inference/factory.js +46 -0
  230. package/dist/inference/factory.js.map +1 -0
  231. package/dist/inference/gemini-adapter.d.ts +17 -0
  232. package/dist/inference/gemini-adapter.d.ts.map +1 -0
  233. package/dist/inference/gemini-adapter.js +176 -0
  234. package/dist/inference/gemini-adapter.js.map +1 -0
  235. package/dist/inference/groq-adapter.d.ts +17 -0
  236. package/dist/inference/groq-adapter.d.ts.map +1 -0
  237. package/dist/inference/groq-adapter.js +103 -0
  238. package/dist/inference/groq-adapter.js.map +1 -0
  239. package/dist/inference/interface.d.ts +49 -0
  240. package/dist/inference/interface.d.ts.map +1 -0
  241. package/dist/inference/interface.js +2 -0
  242. package/dist/inference/interface.js.map +1 -0
  243. package/dist/inference/local-adapter.d.ts +35 -0
  244. package/dist/inference/local-adapter.d.ts.map +1 -0
  245. package/dist/inference/local-adapter.js +311 -0
  246. package/dist/inference/local-adapter.js.map +1 -0
  247. package/dist/inference/model-catalog.d.ts +53 -0
  248. package/dist/inference/model-catalog.d.ts.map +1 -0
  249. package/dist/inference/model-catalog.js +306 -0
  250. package/dist/inference/model-catalog.js.map +1 -0
  251. package/dist/inference/nim-adapter.d.ts +17 -0
  252. package/dist/inference/nim-adapter.d.ts.map +1 -0
  253. package/dist/inference/nim-adapter.js +103 -0
  254. package/dist/inference/nim-adapter.js.map +1 -0
  255. package/dist/inference/openrouter-adapter.d.ts +17 -0
  256. package/dist/inference/openrouter-adapter.d.ts.map +1 -0
  257. package/dist/inference/openrouter-adapter.js +105 -0
  258. package/dist/inference/openrouter-adapter.js.map +1 -0
  259. package/dist/inference/sse.d.ts +20 -0
  260. package/dist/inference/sse.d.ts.map +1 -0
  261. package/dist/inference/sse.js +91 -0
  262. package/dist/inference/sse.js.map +1 -0
  263. package/dist/learning/agent-stats.d.ts +109 -0
  264. package/dist/learning/agent-stats.d.ts.map +1 -0
  265. package/dist/learning/agent-stats.js +240 -0
  266. package/dist/learning/agent-stats.js.map +1 -0
  267. package/dist/learning/benchmark.d.ts +161 -0
  268. package/dist/learning/benchmark.d.ts.map +1 -0
  269. package/dist/learning/benchmark.js +589 -0
  270. package/dist/learning/benchmark.js.map +1 -0
  271. package/dist/learning/cost-tracker.d.ts +101 -0
  272. package/dist/learning/cost-tracker.d.ts.map +1 -0
  273. package/dist/learning/cost-tracker.js +224 -0
  274. package/dist/learning/cost-tracker.js.map +1 -0
  275. package/dist/learning/feedback.d.ts +88 -0
  276. package/dist/learning/feedback.d.ts.map +1 -0
  277. package/dist/learning/feedback.js +169 -0
  278. package/dist/learning/feedback.js.map +1 -0
  279. package/dist/learning/hybrid-router.d.ts +201 -0
  280. package/dist/learning/hybrid-router.d.ts.map +1 -0
  281. package/dist/learning/hybrid-router.js +450 -0
  282. package/dist/learning/hybrid-router.js.map +1 -0
  283. package/dist/learning/model-compare.d.ts +76 -0
  284. package/dist/learning/model-compare.d.ts.map +1 -0
  285. package/dist/learning/model-compare.js +252 -0
  286. package/dist/learning/model-compare.js.map +1 -0
  287. package/dist/learning/model-router.d.ts +68 -0
  288. package/dist/learning/model-router.d.ts.map +1 -0
  289. package/dist/learning/model-router.js +140 -0
  290. package/dist/learning/model-router.js.map +1 -0
  291. package/dist/learning/pattern-extractor.d.ts +99 -0
  292. package/dist/learning/pattern-extractor.d.ts.map +1 -0
  293. package/dist/learning/pattern-extractor.js +310 -0
  294. package/dist/learning/pattern-extractor.js.map +1 -0
  295. package/dist/learning/scorer.d.ts +51 -0
  296. package/dist/learning/scorer.d.ts.map +1 -0
  297. package/dist/learning/scorer.js +64 -0
  298. package/dist/learning/scorer.js.map +1 -0
  299. package/dist/learning/self-improver.d.ts +48 -0
  300. package/dist/learning/self-improver.d.ts.map +1 -0
  301. package/dist/learning/self-improver.js +161 -0
  302. package/dist/learning/self-improver.js.map +1 -0
  303. package/dist/memory/embedder.d.ts +65 -0
  304. package/dist/memory/embedder.d.ts.map +1 -0
  305. package/dist/memory/embedder.js +424 -0
  306. package/dist/memory/embedder.js.map +1 -0
  307. package/dist/memory/memory-integration.d.ts +56 -0
  308. package/dist/memory/memory-integration.d.ts.map +1 -0
  309. package/dist/memory/memory-integration.js +95 -0
  310. package/dist/memory/memory-integration.js.map +1 -0
  311. package/dist/memory/trajectory-store.d.ts +149 -0
  312. package/dist/memory/trajectory-store.d.ts.map +1 -0
  313. package/dist/memory/trajectory-store.js +476 -0
  314. package/dist/memory/trajectory-store.js.map +1 -0
  315. package/dist/memory/vector-store.d.ts +78 -0
  316. package/dist/memory/vector-store.d.ts.map +1 -0
  317. package/dist/memory/vector-store.js +186 -0
  318. package/dist/memory/vector-store.js.map +1 -0
  319. package/dist/plugins/agent-plugin.d.ts +73 -0
  320. package/dist/plugins/agent-plugin.d.ts.map +1 -0
  321. package/dist/plugins/agent-plugin.js +199 -0
  322. package/dist/plugins/agent-plugin.js.map +1 -0
  323. package/dist/plugins/registry.d.ts +61 -0
  324. package/dist/plugins/registry.d.ts.map +1 -0
  325. package/dist/plugins/registry.js +67 -0
  326. package/dist/plugins/registry.js.map +1 -0
  327. package/dist/sandbox/images.d.ts +31 -0
  328. package/dist/sandbox/images.d.ts.map +1 -0
  329. package/dist/sandbox/images.js +129 -0
  330. package/dist/sandbox/images.js.map +1 -0
  331. package/dist/sandbox/manager.d.ts +134 -0
  332. package/dist/sandbox/manager.d.ts.map +1 -0
  333. package/dist/sandbox/manager.js +470 -0
  334. package/dist/sandbox/manager.js.map +1 -0
  335. package/dist/sandbox/types.d.ts +113 -0
  336. package/dist/sandbox/types.d.ts.map +1 -0
  337. package/dist/sandbox/types.js +107 -0
  338. package/dist/sandbox/types.js.map +1 -0
  339. package/dist/security/scanner.d.ts +53 -0
  340. package/dist/security/scanner.d.ts.map +1 -0
  341. package/dist/security/scanner.js +271 -0
  342. package/dist/security/scanner.js.map +1 -0
  343. package/dist/team/config.d.ts +50 -0
  344. package/dist/team/config.d.ts.map +1 -0
  345. package/dist/team/config.js +108 -0
  346. package/dist/team/config.js.map +1 -0
  347. package/dist/team/memory.d.ts +63 -0
  348. package/dist/team/memory.d.ts.map +1 -0
  349. package/dist/team/memory.js +282 -0
  350. package/dist/team/memory.js.map +1 -0
  351. package/dist/team/review.d.ts +123 -0
  352. package/dist/team/review.d.ts.map +1 -0
  353. package/dist/team/review.js +293 -0
  354. package/dist/team/review.js.map +1 -0
  355. package/dist/utils/env.d.ts +19 -0
  356. package/dist/utils/env.d.ts.map +1 -0
  357. package/dist/utils/env.js +250 -0
  358. package/dist/utils/env.js.map +1 -0
  359. package/dist/utils/logger.d.ts +11 -0
  360. package/dist/utils/logger.d.ts.map +1 -0
  361. package/dist/utils/logger.js +45 -0
  362. package/dist/utils/logger.js.map +1 -0
  363. package/dist/web-dashboard/server.d.ts +59 -0
  364. package/dist/web-dashboard/server.d.ts.map +1 -0
  365. package/dist/web-dashboard/server.js +418 -0
  366. package/dist/web-dashboard/server.js.map +1 -0
  367. package/dist/workflow/registry.d.ts +127 -0
  368. package/dist/workflow/registry.d.ts.map +1 -0
  369. package/dist/workflow/registry.js +482 -0
  370. package/dist/workflow/registry.js.map +1 -0
  371. package/dist/workflow/templates.d.ts +93 -0
  372. package/dist/workflow/templates.d.ts.map +1 -0
  373. package/dist/workflow/templates.js +481 -0
  374. package/dist/workflow/templates.js.map +1 -0
  375. package/package.json +78 -0
  376. package/src/web-dashboard/public/assets/index-B08nDkSB.css +1 -0
  377. package/src/web-dashboard/public/assets/index-BKL8YOFD.js +135 -0
  378. package/src/web-dashboard/public/assets/index-BKL8YOFD.js.map +1 -0
  379. package/src/web-dashboard/public/index.html +13 -0
@@ -0,0 +1,320 @@
1
+ /**
2
+ * LearnCommand — CLI interface for the self-improvement system.
3
+ *
4
+ * Subcommands:
5
+ * buff learn stats — Show agent performance stats
6
+ * buff learn patterns — Show/extract coding patterns
7
+ * buff learn optimize — Generate optimized model routing
8
+ * buff learn status — Show overall self-improvement status
9
+ * buff learn clear — Reset learning data
10
+ * buff learn compare — A/B model comparison via benchmarks
11
+ * buff learn feedback — Rate a trajectory or view feedback stats
12
+ * buff learn quality — Show pattern quality and decay metrics
13
+ * buff learn gc — Garbage-collect low-quality patterns
14
+ */
15
+ import { Command } from 'commander';
16
+ import { getAgentStats } from '../learning/agent-stats.js';
17
+ import { getSelfImprover } from '../learning/self-improver.js';
18
+ import { getPatternStore } from '../learning/pattern-extractor.js';
19
+ import { getFeedbackStore } from '../learning/feedback.js';
20
+ import { compareModelRuns, findBestModelForAgent, formatComparisonResult, formatBenchmarkRecommendations, } from '../learning/model-compare.js';
21
+ import { getBenchmarkRuns } from '../learning/benchmark.js';
22
+ import { ConfigManager } from '../config/manager.js';
23
+ import { ProviderFactory } from '../inference/factory.js';
24
+ import { logger } from '../utils/logger.js';
25
+ export class LearnCommand {
26
+ configManager;
27
+ constructor(configManager) {
28
+ this.configManager = configManager ?? new ConfigManager();
29
+ }
30
+ create() {
31
+ const cmd = new Command('learn')
32
+ .description('Self-improvement system — agent stats, patterns, and optimization');
33
+ cmd
34
+ .command('stats')
35
+ .description('Show per-agent performance statistics')
36
+ .action(() => this.showStats());
37
+ cmd
38
+ .command('patterns')
39
+ .description('Show extracted coding patterns')
40
+ .option('--extract', 'Force pattern extraction from stored trajectories')
41
+ .option('--provider <provider>', 'Provider to use for LLM calls during extraction')
42
+ .option('--model <model>', 'Model to use for extraction')
43
+ .action((opts) => this.showPatterns(opts));
44
+ cmd
45
+ .command('optimize')
46
+ .description('Generate optimized model-to-agent routing recommendations')
47
+ .action(() => this.showOptimizations());
48
+ cmd
49
+ .command('status')
50
+ .description('Show overall self-improvement status')
51
+ .action(() => this.showStatus());
52
+ cmd
53
+ .command('clear')
54
+ .description('Reset all learning data (stats, patterns, memory)')
55
+ .option('-f, --force', 'Skip confirmation prompt')
56
+ .action((opts) => this.clearData(opts));
57
+ // ── Phase 2.5: New subcommands ─────────────────────────────────────
58
+ cmd
59
+ .command('compare')
60
+ .description('Compare benchmark results between two models')
61
+ .option('--last', 'Compare the last two benchmark runs', false)
62
+ .option('--all', 'Show all benchmark-driven model recommendations', false)
63
+ .action(async (opts) => this.compareModels(opts));
64
+ cmd
65
+ .command('feedback')
66
+ .description('Rate a trajectory or view feedback statistics')
67
+ .option('--trajectory <id>', 'Trajectory ID to rate')
68
+ .option('--rating <positive|negative|neutral|skip>', 'Your rating')
69
+ .option('--comment <text>', 'Optional comment on your rating')
70
+ .option('--stats', 'Show feedback statistics', false)
71
+ .action(async (opts) => this.handleFeedback(opts));
72
+ cmd
73
+ .command('quality')
74
+ .description('Show pattern quality and decay metrics')
75
+ .option('--details', 'Show detailed per-pattern metrics', false)
76
+ .action((opts) => this.showQuality(opts));
77
+ cmd
78
+ .command('gc')
79
+ .description('Garbage-collect low-quality patterns')
80
+ .option('-n, --dry-run', 'Show what would be removed without removing', false)
81
+ .action(async (opts) => this.garbageCollect(opts));
82
+ return cmd;
83
+ }
84
+ // ── Action handlers ───────────────────────────────────────────────────
85
+ showStats() {
86
+ const stats = getAgentStats();
87
+ console.log(stats.formatStats());
88
+ const recommendations = stats.formatModelRecommendations();
89
+ if (recommendations.includes('→')) {
90
+ console.log('');
91
+ console.log(recommendations);
92
+ }
93
+ }
94
+ async showPatterns(opts) {
95
+ const patternStore = getPatternStore();
96
+ const patterns = patternStore.getAll();
97
+ if (opts.extract) {
98
+ console.log('🔄 Extracting patterns from stored trajectories...\n');
99
+ const providerType = (opts.provider || this.configManager.getAll().defaultProvider);
100
+ const { config } = this.configManager.getProviderConfig(providerType);
101
+ const provider = ProviderFactory.createProvider(providerType, config);
102
+ const callLLM = async (prompt) => {
103
+ const result = await provider.generate(prompt, {
104
+ model: opts.model || config.model,
105
+ temperature: 0.3,
106
+ maxTokens: 4096,
107
+ });
108
+ return result;
109
+ };
110
+ const improver = getSelfImprover();
111
+ const count = await improver.extractPatterns(callLLM, true);
112
+ improver.resetExtractionCounter();
113
+ if (count === 0) {
114
+ console.log(' No new patterns extracted. Check that trajectories exist and have scores above 0.7.');
115
+ }
116
+ return;
117
+ }
118
+ if (patterns.length === 0) {
119
+ console.log('📝 No patterns found. Run with `--extract` to generate patterns from stored trajectories.');
120
+ return;
121
+ }
122
+ console.log(`📝 ${patterns.length} Coding Pattern(s)\n`);
123
+ for (let i = 0; i < patterns.length; i++) {
124
+ const p = patterns[i];
125
+ console.log(`${'─'.repeat(50)}`);
126
+ console.log(`Pattern ${i + 1}: ${p.title}`);
127
+ console.log(` Domains: ${p.applicableDomains.join(', ')}`);
128
+ console.log(` Source trajectories: ${p.sourceCount}`);
129
+ console.log(` Avg source score: ${(p.avgSourceScore * 100).toFixed(0)}%`);
130
+ console.log(` Usage: ${p.usageCount} time(s)`);
131
+ console.log('');
132
+ console.log(` ${p.description}`);
133
+ console.log('');
134
+ console.log(` Common files: ${p.commonFiles.join(', ')}`);
135
+ console.log(` Agent sequence: ${p.commonAgentSequence.join(' → ')}`);
136
+ }
137
+ console.log(`${'─'.repeat(50)}`);
138
+ }
139
+ showOptimizations() {
140
+ const improver = getSelfImprover();
141
+ const modelMap = improver.getOptimizedModelMap();
142
+ if (Object.keys(modelMap).length === 0) {
143
+ console.log('🤖 No optimization data yet. Run some agent tasks first to collect performance stats.');
144
+ return;
145
+ }
146
+ console.log('🤖 Optimized Model Recommendations\n');
147
+ for (const [agentType, model] of Object.entries(modelMap)) {
148
+ console.log(` ${agentType.padEnd(20)} → ${model}`);
149
+ }
150
+ console.log('\nTo use these recommendations, pass:');
151
+ console.log(' `--auto-route` to the execute command, or');
152
+ console.log(' Configure them in your workflow template\'s recommendedModels.');
153
+ }
154
+ showStatus() {
155
+ const improver = getSelfImprover();
156
+ console.log(improver.getStatus());
157
+ // Also show feedback stats if available
158
+ const feedbackStore = getFeedbackStore();
159
+ const feedbackStats = feedbackStore.getStats();
160
+ if (feedbackStats.totalRatings > 0) {
161
+ console.log('');
162
+ console.log('── User Feedback ──');
163
+ console.log(` Total ratings: ${feedbackStats.totalRatings}`);
164
+ console.log(` Positive: ${(feedbackStats.positiveRatio * 100).toFixed(0)}%`);
165
+ console.log(` Negative: ${(feedbackStats.negativeRatio * 100).toFixed(0)}%`);
166
+ console.log(` Trend: ${feedbackStats.recentTrend}`);
167
+ }
168
+ // Show pattern quality stats
169
+ const patternStore = getPatternStore();
170
+ const allPatterns = patternStore.getAll();
171
+ if (allPatterns.length > 0) {
172
+ const qualityReport = patternStore.getQualityReport();
173
+ const lowQuality = qualityReport.filter((q) => q.decayScore < 0.5);
174
+ if (lowQuality.length > 0) {
175
+ console.log('');
176
+ console.log('── Pattern Quality ──');
177
+ console.log(` ${lowQuality.length}/${allPatterns.length} patterns below 0.5 decay score`);
178
+ console.log(' Run `buff learn gc` to clean up low-quality patterns.');
179
+ }
180
+ }
181
+ }
182
+ clearData(opts) {
183
+ if (!opts.force) {
184
+ logger.warn('Use `--force` to confirm clearing all learning data.');
185
+ logger.warn('This will reset agent stats, patterns, feedback, and trajectory memory.');
186
+ return;
187
+ }
188
+ getAgentStats().clear();
189
+ getPatternStore().clear();
190
+ getFeedbackStore().clear();
191
+ getSelfImprover().resetExtractionCounter();
192
+ logger.success('All learning data cleared.');
193
+ }
194
+ // ── Phase 2.5: New handlers ──────────────────────────────────────────
195
+ async compareModels(opts) {
196
+ const runs = getBenchmarkRuns();
197
+ if (runs.length < 2) {
198
+ console.log('⚔️ Need at least 2 benchmark runs to compare models.');
199
+ console.log(' Run `buff benchmark` against different models first.');
200
+ return;
201
+ }
202
+ if (opts.last) {
203
+ // Compare the last two runs
204
+ const result = compareModelRuns(runs[0], runs[1]);
205
+ console.log(formatComparisonResult(result));
206
+ return;
207
+ }
208
+ if (opts.all) {
209
+ // Show all benchmark-driven routing recommendations
210
+ const agentTypes = ['planner', 'writer', 'reviewer', 'tester', 'debugger', 'context-gatherer'];
211
+ const recommendations = agentTypes.map((type) => findBestModelForAgent(type));
212
+ console.log(formatBenchmarkRecommendations(recommendations));
213
+ return;
214
+ }
215
+ // Default: compare last two and show routing recommendations
216
+ console.log('⚔️ Comparing last two benchmark runs...\n');
217
+ const result = compareModelRuns(runs[0], runs[1]);
218
+ console.log(formatComparisonResult(result));
219
+ console.log('\n📊 Benchmark-driven routing recommendations:\n');
220
+ const agentTypes = ['planner', 'writer', 'reviewer', 'tester', 'debugger', 'context-gatherer'];
221
+ const recommendations = agentTypes.map((type) => findBestModelForAgent(type));
222
+ console.log(formatBenchmarkRecommendations(recommendations));
223
+ }
224
+ async handleFeedback(opts) {
225
+ const feedbackStore = getFeedbackStore();
226
+ if (opts.stats) {
227
+ const stats = feedbackStore.getStats();
228
+ console.log('📊 User Feedback Statistics\n');
229
+ console.log(` Total ratings: ${stats.totalRatings}`);
230
+ console.log(` Positive: ${(stats.positiveRatio * 100).toFixed(1)}%`);
231
+ console.log(` Negative: ${(stats.negativeRatio * 100).toFixed(1)}%`);
232
+ console.log(` Neutral: ${(stats.neutralRatio * 100).toFixed(1)}%`);
233
+ console.log(` Recent trend: ${stats.recentTrend}`);
234
+ if (stats.totalRatings > 0) {
235
+ const recent = feedbackStore.getAll().slice(-5).reverse();
236
+ console.log('\n Recent ratings:');
237
+ for (const entry of recent) {
238
+ const icon = entry.rating === 'positive' ? '👍' : entry.rating === 'negative' ? '👎' : '➖';
239
+ console.log(` ${icon} ${entry.goal.slice(0, 50)} — ${entry.model}`);
240
+ }
241
+ }
242
+ return;
243
+ }
244
+ // Rate a specific trajectory
245
+ if (opts.trajectory && opts.rating) {
246
+ const validRatings = ['positive', 'negative', 'neutral', 'skip'];
247
+ if (!validRatings.includes(opts.rating)) {
248
+ logger.error(`Invalid rating: ${opts.rating}. Use: positive, negative, neutral, or skip.`);
249
+ return;
250
+ }
251
+ feedbackStore.record(opts.trajectory, opts.rating, {
252
+ goal: opts.trajectory,
253
+ provider: 'unknown',
254
+ model: 'unknown',
255
+ comment: opts.comment,
256
+ });
257
+ logger.success(`Rating recorded: ${opts.rating} for trajectory ${opts.trajectory.slice(0, 12)}...`);
258
+ return;
259
+ }
260
+ // Show help
261
+ console.log('📝 Feedback commands:\n');
262
+ console.log(' buff learn feedback --stats Show feedback statistics');
263
+ console.log(' buff learn feedback --trajectory <id> Rate a specific trajectory');
264
+ console.log(' --rating positive Set rating (positive/negative/neutral/skip)');
265
+ console.log(' --comment "your notes" Add optional comment');
266
+ console.log('');
267
+ }
268
+ async showQuality(opts) {
269
+ const patternStore = getPatternStore();
270
+ const patterns = patternStore.getAll();
271
+ if (patterns.length === 0) {
272
+ console.log('📝 No patterns to evaluate.');
273
+ return;
274
+ }
275
+ const qualityReport = patternStore.getQualityReport();
276
+ const avgDecay = qualityReport.reduce((sum, q) => sum + q.decayScore, 0) / qualityReport.length;
277
+ console.log('📊 Pattern Quality Report\n');
278
+ console.log(` Total patterns: ${patterns.length}`);
279
+ console.log(` Average decay score: ${(avgDecay * 100).toFixed(1)}%`);
280
+ console.log(` Healthy (≥ 0.5): ${qualityReport.filter((q) => q.decayScore >= 0.5).length}`);
281
+ console.log(` Needs attention (< 0.5): ${qualityReport.filter((q) => q.decayScore < 0.5).length}`);
282
+ console.log(` Candidates for removal (< ${0.2}): ${qualityReport.filter((q) => q.decayScore < 0.2).length}`);
283
+ console.log('');
284
+ if (opts.details) {
285
+ console.log(' Per-pattern details:\n');
286
+ for (const q of qualityReport.sort((a, b) => a.decayScore - b.decayScore)) {
287
+ const bar = '█'.repeat(Math.round(q.decayScore * 20));
288
+ const remaining = '░'.repeat(20 - Math.round(q.decayScore * 20));
289
+ console.log(` ${(q.decayScore * 100).toFixed(0).padStart(3)}% ${bar}${remaining} ${q.title.slice(0, 40).padEnd(40)} used ${q.usageCount}x, ${q.ageDays}d old`);
290
+ }
291
+ }
292
+ console.log('');
293
+ console.log(' Run `buff learn gc` to remove low-quality patterns.');
294
+ }
295
+ async garbageCollect(opts) {
296
+ const patternStore = getPatternStore();
297
+ if (opts.dryRun) {
298
+ const qualityReport = patternStore.getQualityReport();
299
+ const candidates = qualityReport.filter((q) => q.decayScore < 0.2);
300
+ if (candidates.length === 0) {
301
+ console.log('✅ No patterns need garbage collection.');
302
+ return;
303
+ }
304
+ console.log('🔍 Dry run: would remove these patterns:\n');
305
+ for (const q of candidates) {
306
+ console.log(` ❌ ${q.title} (score: ${(q.decayScore * 100).toFixed(0)}%)`);
307
+ }
308
+ console.log(`\n Total: ${candidates.length} pattern(s) would be removed.`);
309
+ return;
310
+ }
311
+ const removed = patternStore.garbageCollect();
312
+ if (removed === 0) {
313
+ console.log('✅ All patterns have acceptable quality scores. No garbage collection needed.');
314
+ }
315
+ else {
316
+ logger.success(`Garbage collection removed ${removed} low-quality pattern(s).`);
317
+ }
318
+ }
319
+ }
320
+ //# sourceMappingURL=learn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learn.js","sourceRoot":"","sources":["../../src/cli/learn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Memory command — Manage agent memory store with compression and pruning.
3
+ *
4
+ * Usage:
5
+ * buff memory — Show memory usage statistics
6
+ * buff memory stats — Show detailed memory store statistics
7
+ * buff memory optimize — Run automatic compression + pruning
8
+ * buff memory optimize --dry-run — Show what would be done without doing it
9
+ * buff memory optimize --aggressive — More aggressive compression (14d retention, 0.2 min score)
10
+ * buff memory prune — Prune old/low-quality trajectories
11
+ * buff memory prune --max-age 30 — Remove trajectories older than 30 days
12
+ * buff memory prune --min-score 0.2 — Remove trajectories with score below 0.2
13
+ * buff memory prune --max-count 200 — Keep at most 200 trajectories
14
+ * buff memory summarize — Summarize old trajectories by project fingerprint
15
+ * buff memory summarize --retention 14 — Keep originals newer than 14 days
16
+ * buff memory clear — Clear all stored trajectories
17
+ * buff memory info — Show detailed compression analysis
18
+ *
19
+ * The memory optimization system provides:
20
+ * - Configurable retention policy (age-based, score-based, count-based)
21
+ * - Automatic trajectory summarization (merges similar old trajectories)
22
+ * - Dry-run mode to preview changes before applying
23
+ * - Aggressive mode for maximum space savings
24
+ * - Detailed memory usage statistics
25
+ */
26
+ import { Command } from 'commander';
27
+ import { BaseCommand } from './commands.js';
28
+ export declare class MemoryCommand extends BaseCommand {
29
+ create(): Command;
30
+ private showStats;
31
+ private optimize;
32
+ private prune;
33
+ private summarize;
34
+ private showInfo;
35
+ private clearMemory;
36
+ private formatBytes;
37
+ }
38
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/cli/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,qBAAa,aAAc,SAAQ,WAAW;IAC5C,MAAM,IAAI,OAAO;YA4EH,SAAS;YA4DT,QAAQ;YAgER,KAAK;YAgCL,SAAS;YAwBT,QAAQ;YA4CR,WAAW;IAmBzB,OAAO,CAAC,WAAW;CAKpB"}