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,439 @@
1
+ /**
2
+ * GitHubReleaseAgent — Creates GitHub releases with auto-generated changelogs.
3
+ *
4
+ * Capabilities:
5
+ * - Create git tags (with optional signing)
6
+ * - Generate release notes from git log between tags (via LLM)
7
+ * - Create GitHub releases via `gh` CLI
8
+ * - List existing releases and tags
9
+ * - Detect version from package.json
10
+ *
11
+ * Requires: `gh` CLI installed and authenticated, or uses `github_api_key` env var.
12
+ *
13
+ * Usage in task plans:
14
+ * ```json
15
+ * { "id": "step-release", "description": "Create GitHub release for v1.2.0", "agentType": "github-release", "dependsOn": ["step-test"] }
16
+ * ```
17
+ */
18
+ import { existsSync, readFileSync, writeFileSync, unlinkSync, mkdtempSync } from 'node:fs';
19
+ import { join } from 'node:path';
20
+ import { tmpdir } from 'node:os';
21
+ import { execSync } from 'node:child_process';
22
+ import { Agent } from '../agent.js';
23
+ import { logger } from '../../utils/logger.js';
24
+ const RELEASE_NOTES_PROMPT = `You are generating GitHub release notes.
25
+
26
+ Given the following git log and tags, write professional release notes in markdown.
27
+
28
+ Format:
29
+ ## [version] - YYYY-MM-DD
30
+
31
+ ### 🚀 Features
32
+ - New features and user-facing improvements
33
+
34
+ ### 🐛 Bug Fixes
35
+ - Bug fixes
36
+
37
+ ### 🔧 Maintenance
38
+ - Refactoring, dependency updates, tooling
39
+
40
+ ### 📚 Documentation
41
+ - Documentation changes
42
+
43
+ Group commits by type. For each entry, write a clear 1-line description.
44
+ Include PR/issue numbers if present in commit messages.
45
+ Return ONLY the release notes, nothing else.`;
46
+ /**
47
+ * GitHubReleaseAgent — Creates GitHub releases with changelogs.
48
+ */
49
+ export class GitHubReleaseAgent extends Agent {
50
+ name = 'GitHub Release';
51
+ description = 'Creates GitHub releases with auto-generated changelogs';
52
+ async execute(context, callLLM) {
53
+ try {
54
+ const taskDesc = context.taskPlan.find((s) => s.agentType === 'github-release' && s.status === 'running')?.description || context.goal;
55
+ const operation = this.detectOperation(taskDesc);
56
+ switch (operation) {
57
+ case 'tag':
58
+ return this.createTag(context, taskDesc);
59
+ case 'release':
60
+ return this.createRelease(context, callLLM);
61
+ case 'list':
62
+ return this.listReleases();
63
+ case 'notes':
64
+ return this.generateReleaseNotes(context, callLLM);
65
+ default:
66
+ return this.createRelease(context, callLLM);
67
+ }
68
+ }
69
+ catch (err) {
70
+ const msg = err instanceof Error ? err.message : String(err);
71
+ return { success: false, summary: 'GitHub release operation failed', error: msg };
72
+ }
73
+ }
74
+ detectOperation(description) {
75
+ const lower = description.toLowerCase();
76
+ if (lower.includes('tag') && !lower.includes('release'))
77
+ return 'tag';
78
+ if (lower.includes('release') || lower.includes('publish') || lower.includes('create release'))
79
+ return 'release';
80
+ if (lower.includes('list') || lower.includes('show'))
81
+ return 'list';
82
+ if (lower.includes('note') || lower.includes('changelog') || lower.includes('release note'))
83
+ return 'notes';
84
+ // Default: create a full release (tag + release)
85
+ return 'release';
86
+ }
87
+ /**
88
+ * Detect the version to use for the release.
89
+ * Checks: task description → package.json → latest tag + 1
90
+ */
91
+ detectVersion(description, context) {
92
+ // Check if the description contains a version
93
+ const versionMatch = description.match(/v?\d+\.\d+\.\d+/);
94
+ if (versionMatch)
95
+ return versionMatch[0].replace(/^v/, '');
96
+ // Check package.json
97
+ const pkgPath = join(context.workingDirectory, 'package.json');
98
+ if (existsSync(pkgPath)) {
99
+ try {
100
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
101
+ if (pkg.version)
102
+ return pkg.version;
103
+ }
104
+ catch {
105
+ // Fall through
106
+ }
107
+ }
108
+ // Try to read from git tags
109
+ try {
110
+ let lastTag = '0.0.0';
111
+ try {
112
+ lastTag = this.exec('git describe --tags --abbrev=0');
113
+ }
114
+ catch {
115
+ // No tags yet — use default
116
+ }
117
+ const parts = lastTag.trim().replace(/^v/, '').split('.').map(Number);
118
+ // Suggest next patch version
119
+ return `${parts[0] || 0}.${parts[1] || 0}.${(parts[2] || 0) + 1}`;
120
+ }
121
+ catch {
122
+ return '0.1.0';
123
+ }
124
+ }
125
+ /**
126
+ * Create a git tag for the release.
127
+ */
128
+ async createTag(context, description) {
129
+ const version = this.detectVersion(description, context);
130
+ const tagName = `v${version}`;
131
+ // Check if tag already exists
132
+ try {
133
+ const existing = this.exec(`git tag -l "${tagName}"`);
134
+ if (existing.trim() === tagName) {
135
+ return { success: true, summary: `Tag '${tagName}' already exists` };
136
+ }
137
+ }
138
+ catch {
139
+ // Continue
140
+ }
141
+ // Create the tag (annotated)
142
+ this.exec(`git tag -a "${tagName}" -m "Release ${tagName}"`);
143
+ return {
144
+ success: true,
145
+ summary: `Created tag '${tagName}'`,
146
+ details: tagName,
147
+ };
148
+ }
149
+ /**
150
+ * Create a full GitHub release (tag + release notes + publish).
151
+ */
152
+ async createRelease(context, callLLM) {
153
+ const version = this.detectVersion(context.goal, context);
154
+ const tagName = `v${version}`;
155
+ // Step 1: Ensure the tag exists
156
+ try {
157
+ const existing = this.exec(`git tag -l "${tagName}"`);
158
+ if (existing.trim() !== tagName) {
159
+ this.exec(`git tag -a "${tagName}" -m "Release ${tagName}"`);
160
+ }
161
+ }
162
+ catch {
163
+ this.exec(`git tag -a "${tagName}" -m "Release ${tagName}"`);
164
+ }
165
+ // Step 2: Push tag to remote (optional, best-effort)
166
+ try {
167
+ this.exec(`git push origin "${tagName}"`);
168
+ }
169
+ catch {
170
+ logger.debug('Could not push tag to remote (no remote configured or offline)');
171
+ }
172
+ // Step 3: Generate release notes
173
+ let notes;
174
+ try {
175
+ notes = await this.generateNotesFromLog(tagName, callLLM);
176
+ }
177
+ catch {
178
+ notes = this.generateNotesFallback(tagName);
179
+ }
180
+ // Step 4: Create the GitHub release
181
+ const releaseOptions = {
182
+ tag: tagName,
183
+ title: `Release ${tagName}`,
184
+ notes,
185
+ prerelease: context.goal.toLowerCase().includes('prerelease') ||
186
+ context.goal.toLowerCase().includes('beta') ||
187
+ context.goal.toLowerCase().includes('alpha'),
188
+ draft: context.goal.toLowerCase().includes('draft'),
189
+ };
190
+ // Try `gh` CLI first, then API fallback
191
+ const result = await this.createViaCLI(releaseOptions);
192
+ if (!result.success) {
193
+ // Try API fallback with GITHUB_API_KEY env var
194
+ return await this.createViaAPI(releaseOptions, context);
195
+ }
196
+ return result;
197
+ }
198
+ /**
199
+ * Generate release notes from git log using the LLM.
200
+ */
201
+ async generateReleaseNotes(context, callLLM) {
202
+ const version = this.detectVersion(context.goal, context);
203
+ const tagName = `v${version}`;
204
+ try {
205
+ const notes = await this.generateNotesFromLog(tagName, callLLM);
206
+ // Store in a file for review
207
+ const notesPath = join(context.workingDirectory, 'RELEASE_NOTES.md');
208
+ const existingContent = existsSync(notesPath) ? readFileSync(notesPath, 'utf-8') + '\n\n---\n\n' : '';
209
+ writeFileSync(notesPath, existingContent + notes, 'utf-8');
210
+ return {
211
+ success: true,
212
+ summary: `Generated release notes for ${tagName}`,
213
+ details: notes,
214
+ };
215
+ }
216
+ catch (err) {
217
+ const msg = err instanceof Error ? err.message : String(err);
218
+ return { success: false, summary: 'Release notes generation failed', error: msg };
219
+ }
220
+ }
221
+ /**
222
+ * List existing releases.
223
+ */
224
+ async listReleases() {
225
+ try {
226
+ const output = this.exec('gh release list --limit 10 2>&1');
227
+ const lines = output.trim().split('\n').filter(Boolean);
228
+ return {
229
+ success: true,
230
+ summary: `${lines.length} release(s) found`,
231
+ details: output,
232
+ };
233
+ }
234
+ catch {
235
+ try {
236
+ // Fallback: list tags
237
+ const tags = this.exec('git tag --sort=-version:refname');
238
+ const lines = tags.trim().split('\n').filter(Boolean).slice(0, 10);
239
+ return {
240
+ success: true,
241
+ summary: `${lines.length} tag(s) found (gh CLI not available)`,
242
+ details: lines.join('\n'),
243
+ };
244
+ }
245
+ catch (err) {
246
+ const msg = err instanceof Error ? err.message : String(err);
247
+ return { success: false, summary: 'Failed to list releases', error: msg };
248
+ }
249
+ }
250
+ }
251
+ // ─── Private Helpers ──────────────────────────────────────────────────
252
+ async generateNotesFromLog(tagName, callLLM) {
253
+ // Get git log since previous tag (or since the beginning)
254
+ let log;
255
+ try {
256
+ let prevTag;
257
+ try {
258
+ prevTag = this.exec('git describe --tags --abbrev=0 HEAD~1');
259
+ }
260
+ catch {
261
+ // No previous tag — get first commit instead
262
+ prevTag = this.exec('git rev-list --max-parents=0 HEAD');
263
+ }
264
+ log = this.exec(`git log ${prevTag.trim()}..HEAD --oneline --no-decorate 2>&1`);
265
+ }
266
+ catch {
267
+ log = this.exec('git log --oneline --no-decorate -20 2>&1');
268
+ }
269
+ const logLines = log.trim().split('\n').filter(Boolean);
270
+ if (logLines.length === 0) {
271
+ return this.generateNotesFallback(tagName);
272
+ }
273
+ const prompt = `${RELEASE_NOTES_PROMPT}\n\n## Git Log (${logLines.length} commits)\n${log}`;
274
+ try {
275
+ let notes = await callLLM(prompt, { temperature: 0.3, maxTokens: 1500 });
276
+ notes = notes.trim().replace(/^```[\s\S]*?\n|```$/g, '').trim();
277
+ return notes;
278
+ }
279
+ catch {
280
+ return this.generateNotesFallback(tagName);
281
+ }
282
+ }
283
+ generateNotesFallback(tagName) {
284
+ const date = new Date().toISOString().split('T')[0];
285
+ try {
286
+ const log = this.exec('git log --oneline --no-decorate -15 2>&1');
287
+ const commits = log.trim().split('\n').filter(Boolean);
288
+ return [
289
+ `## ${tagName} - ${date}`,
290
+ '',
291
+ '### Changes',
292
+ ...commits.map((c) => `- ${c}`),
293
+ '',
294
+ '---',
295
+ 'Auto-generated by agent-nuvira.',
296
+ ].join('\n');
297
+ }
298
+ catch {
299
+ return `## ${tagName} - ${date}\n\nRelease ${tagName}.`;
300
+ }
301
+ }
302
+ /**
303
+ * Create a GitHub release via the `gh` CLI.
304
+ */
305
+ async createViaCLI(options) {
306
+ try {
307
+ const notesDir = mkdtempSync(join(tmpdir(), 'gh-notes-'));
308
+ const notesFile = join(notesDir, 'release-notes.md');
309
+ writeFileSync(notesFile, options.notes, 'utf-8');
310
+ const targetBranch = options.targetCommitish || this.detectCurrentBranch();
311
+ const args = [
312
+ 'gh release create',
313
+ options.tag,
314
+ '--title', options.title,
315
+ '--notes-file', notesFile,
316
+ '--target', targetBranch,
317
+ options.prerelease ? '--prerelease' : '',
318
+ options.draft ? '--draft' : '',
319
+ ].filter(Boolean).join(' ');
320
+ const output = this.exec(`${args} 2>&1`);
321
+ // Clean up temp file
322
+ try {
323
+ unlinkSync(notesFile);
324
+ }
325
+ catch {
326
+ // Best-effort cleanup
327
+ }
328
+ return {
329
+ success: true,
330
+ summary: `Created release '${options.tag}' on GitHub`,
331
+ details: output,
332
+ };
333
+ }
334
+ catch (err) {
335
+ const error = err;
336
+ const msg = error.stderr || error.message || '';
337
+ // Return the failure so the caller can try the API fallback
338
+ throw new Error(`gh CLI failed: ${msg.slice(0, 200)}`);
339
+ }
340
+ }
341
+ /**
342
+ * Create a GitHub release via the API (fallback when gh CLI is not available).
343
+ */
344
+ async createViaAPI(options, context) {
345
+ // Try to get token from env or metadata
346
+ const token = process.env.GITHUB_API_KEY ||
347
+ process.env.GH_TOKEN ||
348
+ context.metadata?.githubApiKey;
349
+ if (!token) {
350
+ return {
351
+ success: false,
352
+ summary: 'Cannot create release: no GitHub token or gh CLI available',
353
+ error: 'Set GITHUB_API_KEY or GH_TOKEN env var, or install gh CLI',
354
+ };
355
+ }
356
+ // Get repo info from git remote
357
+ let repo;
358
+ try {
359
+ const remote = this.exec('git remote get-url origin 2>&1');
360
+ // Parse owner/repo from git URL
361
+ const match = remote.match(/github\.com[/:]([^/]+\/[^/.]+?)(?:\.git)?$/);
362
+ if (match) {
363
+ repo = match[1];
364
+ }
365
+ else {
366
+ return { success: false, summary: 'Could not detect GitHub repo from git remote', error: remote };
367
+ }
368
+ }
369
+ catch (err) {
370
+ return { success: false, summary: 'No git remote configured', error: String(err) };
371
+ }
372
+ try {
373
+ const response = await fetch(`https://api.github.com/repos/${repo}/releases`, {
374
+ method: 'POST',
375
+ headers: {
376
+ 'Authorization': `Bearer ${token}`,
377
+ 'Content-Type': 'application/json',
378
+ 'Accept': 'application/vnd.github.v3+json',
379
+ },
380
+ body: JSON.stringify({
381
+ tag_name: options.tag,
382
+ target_commitish: options.targetCommitish || this.detectCurrentBranch(),
383
+ name: options.title,
384
+ body: options.notes,
385
+ draft: options.draft || false,
386
+ prerelease: options.prerelease || false,
387
+ }),
388
+ });
389
+ if (!response.ok) {
390
+ const errorBody = await response.text();
391
+ return {
392
+ success: false,
393
+ summary: 'GitHub API request failed',
394
+ error: `HTTP ${response.status}: ${errorBody.slice(0, 300)}`,
395
+ };
396
+ }
397
+ const data = await response.json();
398
+ return {
399
+ success: true,
400
+ summary: `Created release '${options.tag}' on GitHub`,
401
+ details: data.html_url,
402
+ };
403
+ }
404
+ catch (err) {
405
+ const msg = err instanceof Error ? err.message : String(err);
406
+ return { success: false, summary: 'GitHub API call failed', error: msg };
407
+ }
408
+ }
409
+ /**
410
+ * Detect the current git branch name.
411
+ */
412
+ detectCurrentBranch() {
413
+ try {
414
+ return this.exec('git rev-parse --abbrev-ref HEAD').trim();
415
+ }
416
+ catch {
417
+ return 'main';
418
+ }
419
+ }
420
+ exec(command, cwd) {
421
+ try {
422
+ return execSync(command, {
423
+ cwd: cwd || process.cwd(),
424
+ timeout: 30_000,
425
+ encoding: 'utf-8',
426
+ stdio: 'pipe',
427
+ });
428
+ }
429
+ catch (err) {
430
+ const error = err;
431
+ const msg = error.stderr || error.message || '';
432
+ if (msg.includes('Command failed') || msg.includes('not found') || msg.includes('not a git repository') || msg.includes('not recognized') || msg.includes('cannot find') || msg.includes('failed to start')) {
433
+ throw new Error(msg.slice(0, 200));
434
+ }
435
+ return error.stdout || msg;
436
+ }
437
+ }
438
+ }
439
+ //# sourceMappingURL=github-release-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-release-agent.js","sourceRoot":"","sources":["../../../src/agents/agents/github-release-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * PackageAgent — Manages npm package operations for the publishing pipeline.
3
+ *
4
+ * Capabilities:
5
+ * - Bump version (patch, minor, major)
6
+ * - Build project
7
+ * - Generate changelog from git log
8
+ * - Publish to npm
9
+ *
10
+ * Usage in task plans:
11
+ * ```json
12
+ * { "id": "step-publish", "description": "Bump version and publish to npm", "agentType": "package", "dependsOn": ["step-test"] }
13
+ * ```
14
+ */
15
+ import { Agent, type AgentContext, type AgentResult } from '../agent.js';
16
+ import type { LLMCallFn } from '../agent.js';
17
+ /**
18
+ * PackageAgent — Manages npm package versioning, building, and publishing.
19
+ */
20
+ export declare class PackageAgent extends Agent {
21
+ readonly name = "Package";
22
+ readonly description = "Manages package version, build, and npm publish";
23
+ execute(context: AgentContext, callLLM: LLMCallFn): Promise<AgentResult>;
24
+ private detectOperation;
25
+ private detectBumpType;
26
+ private bumpVersion;
27
+ private build;
28
+ private publish;
29
+ private generateChangelog;
30
+ private parseNpmError;
31
+ private exec;
32
+ }
33
+ //# sourceMappingURL=package-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-agent.d.ts","sourceRoot":"","sources":["../../../src/agents/agents/package-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAuB7C;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,qDAAqD;IAEnE,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IA0B9E,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;YAOR,WAAW;YAwCX,KAAK;YAwBL,OAAO;YAwBP,iBAAiB;IAyC/B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,IAAI;CAiBb"}