agentrix 0.0.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 (402) hide show
  1. package/README.md +235 -0
  2. package/bin/agentrix.js +5 -0
  3. package/dist/api/auth.d.ts +10 -0
  4. package/dist/api/auth.d.ts.map +1 -0
  5. package/dist/api/auth.js +30 -0
  6. package/dist/api/auth.js.map +1 -0
  7. package/dist/api/automation.d.ts +52 -0
  8. package/dist/api/automation.d.ts.map +1 -0
  9. package/dist/api/automation.js +181 -0
  10. package/dist/api/automation.js.map +1 -0
  11. package/dist/api/base-handler.d.ts +62 -0
  12. package/dist/api/base-handler.d.ts.map +1 -0
  13. package/dist/api/base-handler.js +55 -0
  14. package/dist/api/base-handler.js.map +1 -0
  15. package/dist/api/config.d.ts +5 -0
  16. package/dist/api/config.d.ts.map +1 -0
  17. package/dist/api/config.js +14 -0
  18. package/dist/api/config.js.map +1 -0
  19. package/dist/api/create-plan.d.ts +8 -0
  20. package/dist/api/create-plan.d.ts.map +1 -0
  21. package/dist/api/create-plan.js +77 -0
  22. package/dist/api/create-plan.js.map +1 -0
  23. package/dist/api/git-status.d.ts +6 -0
  24. package/dist/api/git-status.d.ts.map +1 -0
  25. package/dist/api/git-status.js +57 -0
  26. package/dist/api/git-status.js.map +1 -0
  27. package/dist/api/plans.d.ts +6 -0
  28. package/dist/api/plans.d.ts.map +1 -0
  29. package/dist/api/plans.js +75 -0
  30. package/dist/api/plans.js.map +1 -0
  31. package/dist/api/repo-dashboard.d.ts +13 -0
  32. package/dist/api/repo-dashboard.d.ts.map +1 -0
  33. package/dist/api/repo-dashboard.js +47 -0
  34. package/dist/api/repo-dashboard.js.map +1 -0
  35. package/dist/api/repo-issue.d.ts +12 -0
  36. package/dist/api/repo-issue.d.ts.map +1 -0
  37. package/dist/api/repo-issue.js +47 -0
  38. package/dist/api/repo-issue.js.map +1 -0
  39. package/dist/api/repos.d.ts +9 -0
  40. package/dist/api/repos.d.ts.map +1 -0
  41. package/dist/api/repos.js +46 -0
  42. package/dist/api/repos.js.map +1 -0
  43. package/dist/api/sessions.d.ts +5 -0
  44. package/dist/api/sessions.d.ts.map +1 -0
  45. package/dist/api/sessions.js +19 -0
  46. package/dist/api/sessions.js.map +1 -0
  47. package/dist/api/tasks.d.ts +6 -0
  48. package/dist/api/tasks.d.ts.map +1 -0
  49. package/dist/api/tasks.js +22 -0
  50. package/dist/api/tasks.js.map +1 -0
  51. package/dist/api/terminal.d.ts +7 -0
  52. package/dist/api/terminal.d.ts.map +1 -0
  53. package/dist/api/terminal.js +16 -0
  54. package/dist/api/terminal.js.map +1 -0
  55. package/dist/api/worktrees.d.ts +7 -0
  56. package/dist/api/worktrees.d.ts.map +1 -0
  57. package/dist/api/worktrees.js +26 -0
  58. package/dist/api/worktrees.js.map +1 -0
  59. package/dist/cli/arg-parser.d.ts +3 -0
  60. package/dist/cli/arg-parser.d.ts.map +1 -0
  61. package/dist/cli/arg-parser.js +243 -0
  62. package/dist/cli/arg-parser.js.map +1 -0
  63. package/dist/cli/config-resolver.d.ts +29 -0
  64. package/dist/cli/config-resolver.d.ts.map +1 -0
  65. package/dist/cli/config-resolver.js +139 -0
  66. package/dist/cli/config-resolver.js.map +1 -0
  67. package/dist/cli/config.d.ts +5 -0
  68. package/dist/cli/config.d.ts.map +1 -0
  69. package/dist/cli/config.js +224 -0
  70. package/dist/cli/config.js.map +1 -0
  71. package/dist/cli/constants.d.ts +7 -0
  72. package/dist/cli/constants.d.ts.map +1 -0
  73. package/dist/cli/constants.js +15 -0
  74. package/dist/cli/constants.js.map +1 -0
  75. package/dist/cli/help.d.ts +3 -0
  76. package/dist/cli/help.d.ts.map +1 -0
  77. package/dist/cli/help.js +35 -0
  78. package/dist/cli/help.js.map +1 -0
  79. package/dist/cli/index.d.ts +23 -0
  80. package/dist/cli/index.d.ts.map +1 -0
  81. package/dist/cli/index.js +23 -0
  82. package/dist/cli/index.js.map +1 -0
  83. package/dist/cli/plans-command.d.ts +3 -0
  84. package/dist/cli/plans-command.d.ts.map +1 -0
  85. package/dist/cli/plans-command.js +151 -0
  86. package/dist/cli/plans-command.js.map +1 -0
  87. package/dist/cli/server-starter.d.ts +26 -0
  88. package/dist/cli/server-starter.d.ts.map +1 -0
  89. package/dist/cli/server-starter.js +72 -0
  90. package/dist/cli/server-starter.js.map +1 -0
  91. package/dist/cli/types.d.ts +46 -0
  92. package/dist/cli/types.d.ts.map +1 -0
  93. package/dist/cli/types.js +2 -0
  94. package/dist/cli/types.js.map +1 -0
  95. package/dist/cli/validation.d.ts +14 -0
  96. package/dist/cli/validation.d.ts.map +1 -0
  97. package/dist/cli/validation.js +99 -0
  98. package/dist/cli/validation.js.map +1 -0
  99. package/dist/cli.d.ts +5 -0
  100. package/dist/cli.d.ts.map +1 -0
  101. package/dist/cli.js +73 -0
  102. package/dist/cli.js.map +1 -0
  103. package/dist/config/agent-commands.d.ts +27 -0
  104. package/dist/config/agent-commands.d.ts.map +1 -0
  105. package/dist/config/agent-commands.js +56 -0
  106. package/dist/config/agent-commands.js.map +1 -0
  107. package/dist/config/constants.d.ts +35 -0
  108. package/dist/config/constants.d.ts.map +1 -0
  109. package/dist/config/constants.js +35 -0
  110. package/dist/config/constants.js.map +1 -0
  111. package/dist/config/developer-messages.d.ts +2 -0
  112. package/dist/config/developer-messages.d.ts.map +1 -0
  113. package/dist/config/developer-messages.js +43 -0
  114. package/dist/config/developer-messages.js.map +1 -0
  115. package/dist/core/agents.d.ts +23 -0
  116. package/dist/core/agents.d.ts.map +1 -0
  117. package/dist/core/agents.js +91 -0
  118. package/dist/core/agents.js.map +1 -0
  119. package/dist/core/auth.d.ts +3 -0
  120. package/dist/core/auth.d.ts.map +1 -0
  121. package/dist/core/auth.js +69 -0
  122. package/dist/core/auth.js.map +1 -0
  123. package/dist/core/automation/branch.d.ts +18 -0
  124. package/dist/core/automation/branch.d.ts.map +1 -0
  125. package/dist/core/automation/branch.js +29 -0
  126. package/dist/core/automation/branch.js.map +1 -0
  127. package/dist/core/automation/git-orchestration.d.ts +51 -0
  128. package/dist/core/automation/git-orchestration.d.ts.map +1 -0
  129. package/dist/core/automation/git-orchestration.js +25 -0
  130. package/dist/core/automation/git-orchestration.js.map +1 -0
  131. package/dist/core/automation/plan.d.ts +15 -0
  132. package/dist/core/automation/plan.d.ts.map +1 -0
  133. package/dist/core/automation/plan.js +25 -0
  134. package/dist/core/automation/plan.js.map +1 -0
  135. package/dist/core/automation/request-validation.d.ts +45 -0
  136. package/dist/core/automation/request-validation.d.ts.map +1 -0
  137. package/dist/core/automation/request-validation.js +144 -0
  138. package/dist/core/automation/request-validation.js.map +1 -0
  139. package/dist/core/automation/task-runner.d.ts +42 -0
  140. package/dist/core/automation/task-runner.d.ts.map +1 -0
  141. package/dist/core/automation/task-runner.js +215 -0
  142. package/dist/core/automation/task-runner.js.map +1 -0
  143. package/dist/core/branch-name.d.ts +13 -0
  144. package/dist/core/branch-name.d.ts.map +1 -0
  145. package/dist/core/branch-name.js +429 -0
  146. package/dist/core/branch-name.js.map +1 -0
  147. package/dist/core/default-branch.d.ts +12 -0
  148. package/dist/core/default-branch.d.ts.map +1 -0
  149. package/dist/core/default-branch.js +78 -0
  150. package/dist/core/default-branch.js.map +1 -0
  151. package/dist/core/event-bus.d.ts +73 -0
  152. package/dist/core/event-bus.d.ts.map +1 -0
  153. package/dist/core/event-bus.js +127 -0
  154. package/dist/core/event-bus.js.map +1 -0
  155. package/dist/core/git.d.ts +13 -0
  156. package/dist/core/git.d.ts.map +1 -0
  157. package/dist/core/git.js +15 -0
  158. package/dist/core/git.js.map +1 -0
  159. package/dist/core/github.d.ts +10 -0
  160. package/dist/core/github.d.ts.map +1 -0
  161. package/dist/core/github.js +245 -0
  162. package/dist/core/github.js.map +1 -0
  163. package/dist/core/plan-storage.d.ts +46 -0
  164. package/dist/core/plan-storage.d.ts.map +1 -0
  165. package/dist/core/plan-storage.js +237 -0
  166. package/dist/core/plan-storage.js.map +1 -0
  167. package/dist/core/plan.d.ts +23 -0
  168. package/dist/core/plan.d.ts.map +1 -0
  169. package/dist/core/plan.js +445 -0
  170. package/dist/core/plan.js.map +1 -0
  171. package/dist/core/repositories.d.ts +2 -0
  172. package/dist/core/repositories.d.ts.map +1 -0
  173. package/dist/core/repositories.js +58 -0
  174. package/dist/core/repositories.js.map +1 -0
  175. package/dist/core/repository-config.d.ts +9 -0
  176. package/dist/core/repository-config.d.ts.map +1 -0
  177. package/dist/core/repository-config.js +65 -0
  178. package/dist/core/repository-config.js.map +1 -0
  179. package/dist/core/task-store.d.ts +14 -0
  180. package/dist/core/task-store.d.ts.map +1 -0
  181. package/dist/core/task-store.js +105 -0
  182. package/dist/core/task-store.js.map +1 -0
  183. package/dist/core/tasks.d.ts +62 -0
  184. package/dist/core/tasks.d.ts.map +1 -0
  185. package/dist/core/tasks.js +582 -0
  186. package/dist/core/tasks.js.map +1 -0
  187. package/dist/core/terminal-sessions.d.ts +18 -0
  188. package/dist/core/terminal-sessions.d.ts.map +1 -0
  189. package/dist/core/terminal-sessions.js +539 -0
  190. package/dist/core/terminal-sessions.js.map +1 -0
  191. package/dist/core/tmux.d.ts +29 -0
  192. package/dist/core/tmux.d.ts.map +1 -0
  193. package/dist/core/tmux.js +151 -0
  194. package/dist/core/tmux.js.map +1 -0
  195. package/dist/core/workdir.d.ts +8 -0
  196. package/dist/core/workdir.d.ts.map +1 -0
  197. package/dist/core/workdir.js +26 -0
  198. package/dist/core/workdir.js.map +1 -0
  199. package/dist/domain/branch-validator.d.ts +51 -0
  200. package/dist/domain/branch-validator.d.ts.map +1 -0
  201. package/dist/domain/branch-validator.js +88 -0
  202. package/dist/domain/branch-validator.js.map +1 -0
  203. package/dist/domain/git-url-parser.d.ts +27 -0
  204. package/dist/domain/git-url-parser.d.ts.map +1 -0
  205. package/dist/domain/git-url-parser.js +84 -0
  206. package/dist/domain/git-url-parser.js.map +1 -0
  207. package/dist/domain/index.d.ts +8 -0
  208. package/dist/domain/index.d.ts.map +1 -0
  209. package/dist/domain/index.js +5 -0
  210. package/dist/domain/index.js.map +1 -0
  211. package/dist/domain/repository.d.ts +55 -0
  212. package/dist/domain/repository.d.ts.map +1 -0
  213. package/dist/domain/repository.js +73 -0
  214. package/dist/domain/repository.js.map +1 -0
  215. package/dist/domain/worktree.d.ts +43 -0
  216. package/dist/domain/worktree.d.ts.map +1 -0
  217. package/dist/domain/worktree.js +57 -0
  218. package/dist/domain/worktree.js.map +1 -0
  219. package/dist/infrastructure/cookies/cookie-manager.d.ts +18 -0
  220. package/dist/infrastructure/cookies/cookie-manager.d.ts.map +1 -0
  221. package/dist/infrastructure/cookies/cookie-manager.js +20 -0
  222. package/dist/infrastructure/cookies/cookie-manager.js.map +1 -0
  223. package/dist/infrastructure/cookies/cookie-parser.d.ts +43 -0
  224. package/dist/infrastructure/cookies/cookie-parser.d.ts.map +1 -0
  225. package/dist/infrastructure/cookies/cookie-parser.js +88 -0
  226. package/dist/infrastructure/cookies/cookie-parser.js.map +1 -0
  227. package/dist/infrastructure/cookies/cookie-security.d.ts +15 -0
  228. package/dist/infrastructure/cookies/cookie-security.d.ts.map +1 -0
  229. package/dist/infrastructure/cookies/cookie-security.js +35 -0
  230. package/dist/infrastructure/cookies/cookie-security.js.map +1 -0
  231. package/dist/infrastructure/cookies/index.d.ts +7 -0
  232. package/dist/infrastructure/cookies/index.d.ts.map +1 -0
  233. package/dist/infrastructure/cookies/index.js +4 -0
  234. package/dist/infrastructure/cookies/index.js.map +1 -0
  235. package/dist/infrastructure/errors/error-handler.d.ts +22 -0
  236. package/dist/infrastructure/errors/error-handler.d.ts.map +1 -0
  237. package/dist/infrastructure/errors/error-handler.js +89 -0
  238. package/dist/infrastructure/errors/error-handler.js.map +1 -0
  239. package/dist/infrastructure/errors/http-error.d.ts +30 -0
  240. package/dist/infrastructure/errors/http-error.d.ts.map +1 -0
  241. package/dist/infrastructure/errors/http-error.js +46 -0
  242. package/dist/infrastructure/errors/http-error.js.map +1 -0
  243. package/dist/infrastructure/errors/index.d.ts +5 -0
  244. package/dist/infrastructure/errors/index.d.ts.map +1 -0
  245. package/dist/infrastructure/errors/index.js +5 -0
  246. package/dist/infrastructure/errors/index.js.map +1 -0
  247. package/dist/infrastructure/errors/not-found-error.d.ts +8 -0
  248. package/dist/infrastructure/errors/not-found-error.d.ts.map +1 -0
  249. package/dist/infrastructure/errors/not-found-error.js +13 -0
  250. package/dist/infrastructure/errors/not-found-error.js.map +1 -0
  251. package/dist/infrastructure/errors/validation-error.d.ts +21 -0
  252. package/dist/infrastructure/errors/validation-error.d.ts.map +1 -0
  253. package/dist/infrastructure/errors/validation-error.js +31 -0
  254. package/dist/infrastructure/errors/validation-error.js.map +1 -0
  255. package/dist/infrastructure/logging/index.d.ts +3 -0
  256. package/dist/infrastructure/logging/index.d.ts.map +1 -0
  257. package/dist/infrastructure/logging/index.js +2 -0
  258. package/dist/infrastructure/logging/index.js.map +1 -0
  259. package/dist/infrastructure/logging/logger.d.ts +21 -0
  260. package/dist/infrastructure/logging/logger.d.ts.map +1 -0
  261. package/dist/infrastructure/logging/logger.js +49 -0
  262. package/dist/infrastructure/logging/logger.js.map +1 -0
  263. package/dist/repositories/git-repository.d.ts +67 -0
  264. package/dist/repositories/git-repository.d.ts.map +1 -0
  265. package/dist/repositories/git-repository.js +111 -0
  266. package/dist/repositories/git-repository.js.map +1 -0
  267. package/dist/repositories/git-status-repository.d.ts +22 -0
  268. package/dist/repositories/git-status-repository.d.ts.map +1 -0
  269. package/dist/repositories/git-status-repository.js +620 -0
  270. package/dist/repositories/git-status-repository.js.map +1 -0
  271. package/dist/repositories/repository-repository.d.ts +44 -0
  272. package/dist/repositories/repository-repository.d.ts.map +1 -0
  273. package/dist/repositories/repository-repository.js +155 -0
  274. package/dist/repositories/repository-repository.js.map +1 -0
  275. package/dist/repositories/worktree-repository.d.ts +66 -0
  276. package/dist/repositories/worktree-repository.d.ts.map +1 -0
  277. package/dist/repositories/worktree-repository.js +330 -0
  278. package/dist/repositories/worktree-repository.js.map +1 -0
  279. package/dist/server/cookies.d.ts +6 -0
  280. package/dist/server/cookies.d.ts.map +1 -0
  281. package/dist/server/cookies.js +6 -0
  282. package/dist/server/cookies.js.map +1 -0
  283. package/dist/server/events.d.ts +8 -0
  284. package/dist/server/events.d.ts.map +1 -0
  285. package/dist/server/events.js +128 -0
  286. package/dist/server/events.js.map +1 -0
  287. package/dist/server/index.d.ts +18 -0
  288. package/dist/server/index.d.ts.map +1 -0
  289. package/dist/server/index.js +173 -0
  290. package/dist/server/index.js.map +1 -0
  291. package/dist/server/router.d.ts +16 -0
  292. package/dist/server/router.d.ts.map +1 -0
  293. package/dist/server/router.js +256 -0
  294. package/dist/server/router.js.map +1 -0
  295. package/dist/server/ui.d.ts +8 -0
  296. package/dist/server/ui.d.ts.map +1 -0
  297. package/dist/server/ui.js +211 -0
  298. package/dist/server/ui.js.map +1 -0
  299. package/dist/server/websocket.d.ts +9 -0
  300. package/dist/server/websocket.d.ts.map +1 -0
  301. package/dist/server/websocket.js +116 -0
  302. package/dist/server/websocket.js.map +1 -0
  303. package/dist/services/auth-service.d.ts +49 -0
  304. package/dist/services/auth-service.d.ts.map +1 -0
  305. package/dist/services/auth-service.js +53 -0
  306. package/dist/services/auth-service.js.map +1 -0
  307. package/dist/services/index.d.ts +11 -0
  308. package/dist/services/index.d.ts.map +1 -0
  309. package/dist/services/index.js +6 -0
  310. package/dist/services/index.js.map +1 -0
  311. package/dist/services/repository-service.d.ts +57 -0
  312. package/dist/services/repository-service.d.ts.map +1 -0
  313. package/dist/services/repository-service.js +62 -0
  314. package/dist/services/repository-service.js.map +1 -0
  315. package/dist/services/session-service.d.ts +31 -0
  316. package/dist/services/session-service.d.ts.map +1 -0
  317. package/dist/services/session-service.js +134 -0
  318. package/dist/services/session-service.js.map +1 -0
  319. package/dist/services/terminal-service.d.ts +43 -0
  320. package/dist/services/terminal-service.d.ts.map +1 -0
  321. package/dist/services/terminal-service.js +85 -0
  322. package/dist/services/terminal-service.js.map +1 -0
  323. package/dist/services/worktree-service.d.ts +39 -0
  324. package/dist/services/worktree-service.d.ts.map +1 -0
  325. package/dist/services/worktree-service.js +208 -0
  326. package/dist/services/worktree-service.js.map +1 -0
  327. package/dist/types/auth.d.ts +35 -0
  328. package/dist/types/auth.d.ts.map +1 -0
  329. package/dist/types/auth.js +2 -0
  330. package/dist/types/auth.js.map +1 -0
  331. package/dist/types/config.d.ts +46 -0
  332. package/dist/types/config.d.ts.map +1 -0
  333. package/dist/types/config.js +5 -0
  334. package/dist/types/config.js.map +1 -0
  335. package/dist/types/git.d.ts +190 -0
  336. package/dist/types/git.d.ts.map +1 -0
  337. package/dist/types/git.js +5 -0
  338. package/dist/types/git.js.map +1 -0
  339. package/dist/types/http.d.ts +46 -0
  340. package/dist/types/http.d.ts.map +1 -0
  341. package/dist/types/http.js +2 -0
  342. package/dist/types/http.js.map +1 -0
  343. package/dist/types/index.d.ts +8 -0
  344. package/dist/types/index.d.ts.map +1 -0
  345. package/dist/types/index.js +2 -0
  346. package/dist/types/index.js.map +1 -0
  347. package/dist/types/plan.d.ts +31 -0
  348. package/dist/types/plan.d.ts.map +1 -0
  349. package/dist/types/plan.js +5 -0
  350. package/dist/types/plan.js.map +1 -0
  351. package/dist/types/services.d.ts +99 -0
  352. package/dist/types/services.d.ts.map +1 -0
  353. package/dist/types/services.js +2 -0
  354. package/dist/types/services.js.map +1 -0
  355. package/dist/types/tasks.d.ts +68 -0
  356. package/dist/types/tasks.d.ts.map +1 -0
  357. package/dist/types/tasks.js +5 -0
  358. package/dist/types/tasks.js.map +1 -0
  359. package/dist/types/terminal.d.ts +60 -0
  360. package/dist/types/terminal.d.ts.map +1 -0
  361. package/dist/types/terminal.js +2 -0
  362. package/dist/types/terminal.js.map +1 -0
  363. package/dist/utils/cookies.d.ts +7 -0
  364. package/dist/utils/cookies.d.ts.map +1 -0
  365. package/dist/utils/cookies.js +6 -0
  366. package/dist/utils/cookies.js.map +1 -0
  367. package/dist/utils/http.d.ts +23 -0
  368. package/dist/utils/http.d.ts.map +1 -0
  369. package/dist/utils/http.js +58 -0
  370. package/dist/utils/http.js.map +1 -0
  371. package/dist/utils/random.d.ts +12 -0
  372. package/dist/utils/random.d.ts.map +1 -0
  373. package/dist/utils/random.js +25 -0
  374. package/dist/utils/random.js.map +1 -0
  375. package/dist/utils/repository-cache.d.ts +8 -0
  376. package/dist/utils/repository-cache.d.ts.map +1 -0
  377. package/dist/utils/repository-cache.js +13 -0
  378. package/dist/utils/repository-cache.js.map +1 -0
  379. package/dist/validation/index.d.ts +9 -0
  380. package/dist/validation/index.d.ts.map +1 -0
  381. package/dist/validation/index.js +6 -0
  382. package/dist/validation/index.js.map +1 -0
  383. package/dist/validation/request-validator.d.ts +99 -0
  384. package/dist/validation/request-validator.d.ts.map +1 -0
  385. package/dist/validation/request-validator.js +189 -0
  386. package/dist/validation/request-validator.js.map +1 -0
  387. package/dist/validation/schemas/repository-schema.d.ts +26 -0
  388. package/dist/validation/schemas/repository-schema.d.ts.map +1 -0
  389. package/dist/validation/schemas/repository-schema.js +31 -0
  390. package/dist/validation/schemas/repository-schema.js.map +1 -0
  391. package/dist/validation/schemas/terminal-schema.d.ts +21 -0
  392. package/dist/validation/schemas/terminal-schema.d.ts.map +1 -0
  393. package/dist/validation/schemas/terminal-schema.js +38 -0
  394. package/dist/validation/schemas/terminal-schema.js.map +1 -0
  395. package/dist/validation/schemas/worktree-schema.d.ts +21 -0
  396. package/dist/validation/schemas/worktree-schema.d.ts.map +1 -0
  397. package/dist/validation/schemas/worktree-schema.js +29 -0
  398. package/dist/validation/schemas/worktree-schema.js.map +1 -0
  399. package/package.json +79 -0
  400. package/ui/dist/assets/index-BDDrbP3l.js +354 -0
  401. package/ui/dist/assets/index-CwB7gOl4.css +41 -0
  402. package/ui/dist/index.html +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-name.js","sourceRoot":"","sources":["../../src/core/branch-name.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface DefaultBranchOptions {
2
+ remote?: string;
3
+ override?: string;
4
+ }
5
+ export interface DefaultBranchConfig {
6
+ global?: string;
7
+ overrides?: Record<string, string>;
8
+ repositories?: Record<string, string>;
9
+ }
10
+ export declare function resolveDefaultBranch(repositoryPath: string, { remote, override }?: DefaultBranchOptions): Promise<string>;
11
+ export declare function selectDefaultBranchOverride(config: DefaultBranchConfig | unknown, org: string, repo: string): string | undefined;
12
+ //# sourceMappingURL=default-branch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-branch.d.ts","sourceRoot":"","sources":["../../src/core/default-branch.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAWD,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,EAAE,MAAiB,EAAE,QAAQ,EAAE,GAAE,oBAAyB,GACzD,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,mBAAmB,GAAG,OAAO,EACrC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CA+BpB"}
@@ -0,0 +1,78 @@
1
+ import { promisify } from 'node:util';
2
+ import * as childProcess from 'node:child_process';
3
+ const execFileAsync = promisify(childProcess.execFile);
4
+ function parseRef(value) {
5
+ if (!value || typeof value !== 'string') {
6
+ return null;
7
+ }
8
+ const trimmed = value.trim();
9
+ const match = trimmed.match(/refs\/heads\/(.+)$/);
10
+ return match ? match[1] : trimmed || null;
11
+ }
12
+ export async function resolveDefaultBranch(repositoryPath, { remote = 'origin', override } = {}) {
13
+ if (override && typeof override === 'string' && override.trim()) {
14
+ return override.trim();
15
+ }
16
+ try {
17
+ const { stdout } = await execFileAsync('git', ['-C', repositoryPath, 'symbolic-ref', 'HEAD'], {
18
+ maxBuffer: 1024 * 1024,
19
+ });
20
+ const headBranch = parseRef(stdout);
21
+ if (headBranch) {
22
+ return headBranch;
23
+ }
24
+ }
25
+ catch {
26
+ // fall through to remote inspection
27
+ }
28
+ try {
29
+ const { stdout } = await execFileAsync('git', ['remote', 'show', remote], {
30
+ cwd: repositoryPath,
31
+ maxBuffer: 1024 * 1024,
32
+ });
33
+ const lines = stdout.split('\n');
34
+ for (const line of lines) {
35
+ const trimmed = line.trim();
36
+ if (!trimmed.toLowerCase().startsWith('head branch:')) {
37
+ continue;
38
+ }
39
+ const branch = trimmed.slice('head branch:'.length).trim();
40
+ if (branch && branch.toLowerCase() !== '(unknown)') {
41
+ return branch;
42
+ }
43
+ }
44
+ }
45
+ catch {
46
+ // fall through
47
+ }
48
+ return 'main';
49
+ }
50
+ export function selectDefaultBranchOverride(config, org, repo) {
51
+ if (!config) {
52
+ return undefined;
53
+ }
54
+ const cfg = config;
55
+ const { overrides, repositories, global } = cfg;
56
+ // Try repository-specific override first
57
+ if (repositories && typeof repositories === 'object') {
58
+ const key = `${org}/${repo}`;
59
+ const value = repositories[key];
60
+ if (typeof value === 'string' && value.trim()) {
61
+ return value.trim();
62
+ }
63
+ }
64
+ // Try legacy overrides format
65
+ if (overrides && typeof overrides === 'object') {
66
+ const key = `${org}/${repo}`;
67
+ const value = overrides[key];
68
+ if (typeof value === 'string' && value.trim()) {
69
+ return value.trim();
70
+ }
71
+ }
72
+ // Fall back to global default
73
+ if (typeof global === 'string' && global.trim()) {
74
+ return global.trim();
75
+ }
76
+ return undefined;
77
+ }
78
+ //# sourceMappingURL=default-branch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-branch.js","sourceRoot":"","sources":["../../src/core/default-branch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ type EventCallback = (data: unknown) => void;
2
+ /**
3
+ * Subscribes to an event
4
+ * @param event - Event name
5
+ * @param callback - Callback function
6
+ * @returns Unsubscribe function
7
+ */
8
+ export declare function on(event: string, callback: EventCallback): () => void;
9
+ /**
10
+ * Emits an event to all subscribers
11
+ * @param event - Event name
12
+ * @param data - Event data
13
+ */
14
+ export declare function emit(event: string, data: unknown): void;
15
+ /**
16
+ * Event type registry for type-safe event handling
17
+ */
18
+ export declare const EventTypes: {
19
+ readonly REPOS_UPDATE: "repos:update";
20
+ readonly SESSIONS_UPDATE: "sessions:update";
21
+ readonly TASKS_UPDATE: "tasks:update";
22
+ };
23
+ /**
24
+ * Emits a repositories update event
25
+ * @param data - Repository data
26
+ */
27
+ export declare function emitReposUpdate(data: unknown): void;
28
+ /**
29
+ * Subscribes to repository updates
30
+ * @param callback - Callback function
31
+ * @returns Unsubscribe function
32
+ */
33
+ export declare function onReposUpdate(callback: EventCallback): () => void;
34
+ /**
35
+ * Emits a sessions update event
36
+ * @param data - Sessions data
37
+ */
38
+ export declare function emitSessionsUpdate(data: unknown): void;
39
+ /**
40
+ * Subscribes to sessions updates
41
+ * @param callback - Callback function
42
+ * @returns Unsubscribe function
43
+ */
44
+ export declare function onSessionsUpdate(callback: EventCallback): () => void;
45
+ /**
46
+ * Emits a tasks update event
47
+ * @param data - Tasks data
48
+ */
49
+ export declare function emitTasksUpdate(data: unknown): void;
50
+ /**
51
+ * Subscribes to tasks updates
52
+ * @param callback - Callback function
53
+ * @returns Unsubscribe function
54
+ */
55
+ export declare function onTasksUpdate(callback: EventCallback): () => void;
56
+ /**
57
+ * Gets all event type constants
58
+ * @returns Event types object
59
+ */
60
+ export declare function getEventTypes(): {
61
+ readonly REPOS_UPDATE: "repos:update";
62
+ readonly SESSIONS_UPDATE: "sessions:update";
63
+ readonly TASKS_UPDATE: "tasks:update";
64
+ };
65
+ /**
66
+ * Subscribes to events (alias for on)
67
+ * @param event - Event name
68
+ * @param callback - Callback function
69
+ * @returns Unsubscribe function
70
+ */
71
+ export declare function subscribeToEvents(event: string, callback: EventCallback): () => void;
72
+ export {};
73
+ //# sourceMappingURL=event-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAI7C;;;;;GAKG;AACH,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAiBrE;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAYvD;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAkBX;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAEjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAEjE;AAED;;;GAGG;AACH,wBAAgB,aAAa;;;;EAE5B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAEpF"}
@@ -0,0 +1,127 @@
1
+ const listeners = new Map();
2
+ /**
3
+ * Subscribes to an event
4
+ * @param event - Event name
5
+ * @param callback - Callback function
6
+ * @returns Unsubscribe function
7
+ */
8
+ export function on(event, callback) {
9
+ let callbacks = listeners.get(event);
10
+ if (!callbacks) {
11
+ callbacks = new Set();
12
+ listeners.set(event, callbacks);
13
+ }
14
+ callbacks.add(callback);
15
+ return () => {
16
+ const cbs = listeners.get(event);
17
+ if (cbs) {
18
+ cbs.delete(callback);
19
+ if (cbs.size === 0) {
20
+ listeners.delete(event);
21
+ }
22
+ }
23
+ };
24
+ }
25
+ /**
26
+ * Emits an event to all subscribers
27
+ * @param event - Event name
28
+ * @param data - Event data
29
+ */
30
+ export function emit(event, data) {
31
+ const callbacks = listeners.get(event);
32
+ if (!callbacks) {
33
+ return;
34
+ }
35
+ callbacks.forEach((callback) => {
36
+ try {
37
+ callback(data);
38
+ }
39
+ catch (error) {
40
+ console.error(`[agentrix] Event handler error for ${event}:`, error);
41
+ }
42
+ });
43
+ }
44
+ /**
45
+ * Event type registry for type-safe event handling
46
+ */
47
+ export const EventTypes = {
48
+ REPOS_UPDATE: 'repos:update',
49
+ SESSIONS_UPDATE: 'sessions:update',
50
+ TASKS_UPDATE: 'tasks:update',
51
+ };
52
+ /**
53
+ * Generic helper to create typed emit/subscribe pairs
54
+ * @param eventName - Event name
55
+ * @returns Object with emit and subscribe functions
56
+ */
57
+ function createEventPair(eventName) {
58
+ return {
59
+ emit: (data) => emit(eventName, data),
60
+ subscribe: (callback) => on(eventName, callback),
61
+ };
62
+ }
63
+ const reposUpdateEvent = createEventPair(EventTypes.REPOS_UPDATE);
64
+ const sessionsUpdateEvent = createEventPair(EventTypes.SESSIONS_UPDATE);
65
+ const tasksUpdateEvent = createEventPair(EventTypes.TASKS_UPDATE);
66
+ /**
67
+ * Emits a repositories update event
68
+ * @param data - Repository data
69
+ */
70
+ export function emitReposUpdate(data) {
71
+ reposUpdateEvent.emit(data);
72
+ }
73
+ /**
74
+ * Subscribes to repository updates
75
+ * @param callback - Callback function
76
+ * @returns Unsubscribe function
77
+ */
78
+ export function onReposUpdate(callback) {
79
+ return reposUpdateEvent.subscribe(callback);
80
+ }
81
+ /**
82
+ * Emits a sessions update event
83
+ * @param data - Sessions data
84
+ */
85
+ export function emitSessionsUpdate(data) {
86
+ sessionsUpdateEvent.emit(data);
87
+ }
88
+ /**
89
+ * Subscribes to sessions updates
90
+ * @param callback - Callback function
91
+ * @returns Unsubscribe function
92
+ */
93
+ export function onSessionsUpdate(callback) {
94
+ return sessionsUpdateEvent.subscribe(callback);
95
+ }
96
+ /**
97
+ * Emits a tasks update event
98
+ * @param data - Tasks data
99
+ */
100
+ export function emitTasksUpdate(data) {
101
+ tasksUpdateEvent.emit(data);
102
+ }
103
+ /**
104
+ * Subscribes to tasks updates
105
+ * @param callback - Callback function
106
+ * @returns Unsubscribe function
107
+ */
108
+ export function onTasksUpdate(callback) {
109
+ return tasksUpdateEvent.subscribe(callback);
110
+ }
111
+ /**
112
+ * Gets all event type constants
113
+ * @returns Event types object
114
+ */
115
+ export function getEventTypes() {
116
+ return EventTypes;
117
+ }
118
+ /**
119
+ * Subscribes to events (alias for on)
120
+ * @param event - Event name
121
+ * @param callback - Callback function
122
+ * @returns Unsubscribe function
123
+ */
124
+ export function subscribeToEvents(event, callback) {
125
+ return on(event, callback);
126
+ }
127
+ //# sourceMappingURL=event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @deprecated This file now re-exports from the repositories layer for backward compatibility.
3
+ * New code should import directly from src/repositories/ or src/domain/
4
+ */
5
+ export { parseRepositoryUrl, normalizeBranchName, deriveWorktreeFolderName, } from '../domain/index.js';
6
+ export type { GitUrlParts } from '../domain/index.js';
7
+ export { GitWorktreeError, listWorktrees, countLocalWorktrees, createWorktree, getWorktreePath, removeWorktree, } from '../repositories/worktree-repository.js';
8
+ export type { WorktreeEntry, CreateWorktreeOptions, WorktreePathResult, InitCommandResult, } from '../repositories/worktree-repository.js';
9
+ export { ensureRepository, cloneRepository, discoverRepositories, } from '../repositories/repository-repository.js';
10
+ export type { RepositoryPaths, CloneResult, CloneOptions, RepositoriesMap, } from '../repositories/repository-repository.js';
11
+ export { getWorktreeStatus, getWorktreeFileDiff, } from '../repositories/git-status-repository.js';
12
+ export { normalizeBranchName as normaliseBranchName } from '../domain/index.js';
13
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @deprecated This file now re-exports from the repositories layer for backward compatibility.
3
+ * New code should import directly from src/repositories/ or src/domain/
4
+ */
5
+ // Re-export from domain layer
6
+ export { parseRepositoryUrl, normalizeBranchName, deriveWorktreeFolderName, } from '../domain/index.js';
7
+ // Re-export from worktree repository
8
+ export { GitWorktreeError, listWorktrees, countLocalWorktrees, createWorktree, getWorktreePath, removeWorktree, } from '../repositories/worktree-repository.js';
9
+ // Re-export from repository repository
10
+ export { ensureRepository, cloneRepository, discoverRepositories, } from '../repositories/repository-repository.js';
11
+ // Re-export from git status repository
12
+ export { getWorktreeStatus, getWorktreeFileDiff, } from '../repositories/git-status-repository.js';
13
+ // Legacy alias for backward compatibility
14
+ export { normalizeBranchName as normaliseBranchName } from '../domain/index.js';
15
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8BAA8B;AAC9B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAG5B,qCAAqC;AACrC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,wCAAwC,CAAC;AAQhD,uCAAuC;AACvC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;AAQlD,uCAAuC;AACvC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAElD,0CAA0C;AAC1C,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare function createGithubClient({ timeoutMs }?: {
2
+ timeoutMs?: number;
3
+ }): {
4
+ countOpenPullRequests: (org: string, repo: string) => Promise<number>;
5
+ countOpenIssues: (org: string, repo: string) => Promise<number>;
6
+ countRunningWorkflows: (org: string, repo: string) => Promise<number>;
7
+ listOpenIssues: (org: string, repo: string) => Promise<unknown[]>;
8
+ getIssue: (org: string, repo: string, issueNumber: number | string) => Promise<Record<string, unknown>>;
9
+ };
10
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/core/github.ts"],"names":[],"mappings":"AA+EA,wBAAgB,kBAAkB,CAAC,EAAE,SAA8B,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO;iCACtD,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;2BAS5C,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;iCAShC,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;0BA0B7C,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAAC;oBAwD/C,MAAM,QAAQ,MAAM,eAAe,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EA0GnH"}
@@ -0,0 +1,245 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { promisify } from 'node:util';
3
+ const execFileAsync = promisify(execFile);
4
+ const DEFAULT_TIMEOUT_MS = 10_000;
5
+ const DEFAULT_MAX_BUFFER = 1024 * 1024;
6
+ function createGithubError(message, cause) {
7
+ const error = new Error(message);
8
+ if (cause) {
9
+ error.cause = cause;
10
+ }
11
+ return error;
12
+ }
13
+ function normaliseRepo(org, repo) {
14
+ const trimmedOrg = typeof org === 'string' ? org.trim() : '';
15
+ const trimmedRepo = typeof repo === 'string' ? repo.trim() : '';
16
+ if (!trimmedOrg || !trimmedRepo) {
17
+ throw createGithubError('Organisation and repository are required');
18
+ }
19
+ return { repoSlug: `${trimmedOrg}/${trimmedRepo}`, org: trimmedOrg, repo: trimmedRepo };
20
+ }
21
+ function parseJsonArray(payload, contextMessage) {
22
+ const text = typeof payload === 'string' ? payload.trim() : '';
23
+ if (!text) {
24
+ return [];
25
+ }
26
+ try {
27
+ const data = JSON.parse(text);
28
+ if (Array.isArray(data)) {
29
+ return data;
30
+ }
31
+ }
32
+ catch (error) {
33
+ throw createGithubError(contextMessage, error);
34
+ }
35
+ throw createGithubError(contextMessage);
36
+ }
37
+ function parseJsonObject(payload, contextMessage) {
38
+ const text = typeof payload === 'string' ? payload.trim() : '';
39
+ if (!text) {
40
+ throw createGithubError(contextMessage);
41
+ }
42
+ try {
43
+ const data = JSON.parse(text);
44
+ if (data && typeof data === 'object' && !Array.isArray(data)) {
45
+ return data;
46
+ }
47
+ }
48
+ catch (error) {
49
+ throw createGithubError(contextMessage, error);
50
+ }
51
+ throw createGithubError(contextMessage);
52
+ }
53
+ async function runGh(args, { timeoutMs = DEFAULT_TIMEOUT_MS } = {}) {
54
+ try {
55
+ const { stdout } = await execFileAsync('gh', args, {
56
+ timeout: timeoutMs,
57
+ maxBuffer: DEFAULT_MAX_BUFFER,
58
+ });
59
+ return typeof stdout === 'string' ? stdout : '';
60
+ }
61
+ catch (error) {
62
+ const err = error;
63
+ if (err?.code === 'ENOENT') {
64
+ throw createGithubError('GitHub CLI (gh) is not installed or not available on PATH', error);
65
+ }
66
+ if (err?.code === 'ETIMEDOUT' || err?.signal === 'SIGTERM' || err?.killed) {
67
+ throw createGithubError('GitHub CLI command timed out', error);
68
+ }
69
+ const stderr = typeof err?.stderr === 'string' ? err.stderr.trim() : '';
70
+ const stdout = typeof err?.stdout === 'string' ? err.stdout.trim() : '';
71
+ const message = stderr || stdout || err?.message || 'GitHub CLI command failed';
72
+ throw createGithubError(message, error);
73
+ }
74
+ }
75
+ export function createGithubClient({ timeoutMs = DEFAULT_TIMEOUT_MS } = {}) {
76
+ async function countOpenPullRequests(org, repo) {
77
+ const { repoSlug } = normaliseRepo(org, repo);
78
+ const stdout = await runGh(['pr', 'list', '--repo', repoSlug, '--state', 'open', '--json', 'number', '--limit', '100'], { timeoutMs });
79
+ return parseJsonArray(stdout, 'Unexpected response when listing pull requests').length;
80
+ }
81
+ async function countOpenIssues(org, repo) {
82
+ const { repoSlug } = normaliseRepo(org, repo);
83
+ const stdout = await runGh(['issue', 'list', '--repo', repoSlug, '--state', 'open', '--json', 'number', '--limit', '100'], { timeoutMs });
84
+ return parseJsonArray(stdout, 'Unexpected response when listing issues').length;
85
+ }
86
+ async function countRunningWorkflows(org, repo) {
87
+ const { repoSlug } = normaliseRepo(org, repo);
88
+ const statuses = ['in_progress', 'queued'];
89
+ const results = await Promise.all(statuses.map(async (status) => {
90
+ const stdout = await runGh([
91
+ 'run',
92
+ 'list',
93
+ '--repo',
94
+ repoSlug,
95
+ '--status',
96
+ status,
97
+ '--json',
98
+ 'databaseId,status,workflowName',
99
+ '--limit',
100
+ '100',
101
+ ], { timeoutMs });
102
+ return parseJsonArray(stdout, 'Unexpected response when listing workflow runs').length;
103
+ }));
104
+ return results.reduce((total, value) => total + value, 0);
105
+ }
106
+ async function listOpenIssues(org, repo) {
107
+ const { repoSlug } = normaliseRepo(org, repo);
108
+ const stdout = await runGh([
109
+ 'issue',
110
+ 'list',
111
+ '--repo',
112
+ repoSlug,
113
+ '--state',
114
+ 'open',
115
+ '--json',
116
+ 'number,title,labels,createdAt,url',
117
+ '--limit',
118
+ '200',
119
+ ], { timeoutMs });
120
+ const issues = parseJsonArray(stdout, 'Unexpected response when listing issues');
121
+ return issues
122
+ .map((issue) => {
123
+ const issueRecord = issue;
124
+ const number = typeof issueRecord['number'] === 'number' ? issueRecord['number'] : null;
125
+ if (number === null) {
126
+ return null;
127
+ }
128
+ const title = typeof issueRecord['title'] === 'string' ? issueRecord['title'] : '';
129
+ const createdAtValue = typeof issueRecord['createdAt'] === 'string' ? issueRecord['createdAt'] : null;
130
+ let createdAt = null;
131
+ if (createdAtValue) {
132
+ const parsedDate = new Date(createdAtValue);
133
+ if (!Number.isNaN(parsedDate.getTime())) {
134
+ createdAt = parsedDate.toISOString();
135
+ }
136
+ }
137
+ const labels = Array.isArray(issueRecord['labels'])
138
+ ? issueRecord['labels']
139
+ .map((label) => {
140
+ const labelRecord = label;
141
+ return labelRecord && typeof labelRecord['name'] === 'string' ? labelRecord['name'] : null;
142
+ })
143
+ .filter(Boolean)
144
+ : [];
145
+ const url = typeof issueRecord['url'] === 'string' && issueRecord['url']
146
+ ? issueRecord['url']
147
+ : `https://github.com/${repoSlug}/issues/${number}`;
148
+ return {
149
+ number,
150
+ title,
151
+ createdAt,
152
+ labels,
153
+ url,
154
+ };
155
+ })
156
+ .filter(Boolean);
157
+ }
158
+ async function getIssue(org, repo, issueNumber) {
159
+ const { repoSlug } = normaliseRepo(org, repo);
160
+ const parsedNumber = typeof issueNumber === 'number'
161
+ ? issueNumber
162
+ : Number.parseInt(typeof issueNumber === 'string' ? issueNumber.trim() : '', 10);
163
+ if (!Number.isInteger(parsedNumber) || parsedNumber <= 0) {
164
+ throw createGithubError('Issue number must be a positive integer');
165
+ }
166
+ const stdout = await runGh([
167
+ 'issue',
168
+ 'view',
169
+ String(parsedNumber),
170
+ '--repo',
171
+ repoSlug,
172
+ '--json',
173
+ 'number,title,body,author,createdAt,updatedAt,labels,url,state',
174
+ ], { timeoutMs });
175
+ const issue = parseJsonObject(stdout, 'Unexpected response when reading issue details');
176
+ const title = typeof issue?.["title"] === 'string' ? issue["title"] : '';
177
+ const body = typeof issue?.["body"] === 'string' ? issue["body"] : '';
178
+ const createdAtValue = typeof issue?.["createdAt"] === 'string' ? issue["createdAt"] : null;
179
+ const updatedAtValue = typeof issue?.["updatedAt"] === 'string' ? issue["updatedAt"] : null;
180
+ function normaliseDate(value) {
181
+ if (!value) {
182
+ return null;
183
+ }
184
+ const parsed = new Date(String(value));
185
+ if (Number.isNaN(parsed.getTime())) {
186
+ return null;
187
+ }
188
+ return parsed.toISOString();
189
+ }
190
+ const authorData = issue && typeof issue?.["author"] === 'object' && issue["author"] !== null ? issue["author"] : null;
191
+ let author = null;
192
+ if (authorData) {
193
+ const authorRecord = authorData;
194
+ const login = typeof authorRecord['login'] === 'string' && authorRecord['login'] ? authorRecord['login'] : null;
195
+ const name = typeof authorRecord['name'] === 'string' && authorRecord['name'] ? authorRecord['name'] : null;
196
+ const profileUrl = typeof authorRecord['url'] === 'string' && authorRecord['url'] ? authorRecord['url'] : null;
197
+ const avatarUrl = typeof authorRecord['avatarUrl'] === 'string' && authorRecord['avatarUrl'] ? authorRecord['avatarUrl'] : null;
198
+ if (login || name || profileUrl || avatarUrl) {
199
+ author = {
200
+ login,
201
+ name,
202
+ url: profileUrl,
203
+ avatarUrl,
204
+ };
205
+ }
206
+ }
207
+ const labels = Array.isArray(issue?.["labels"])
208
+ ? issue["labels"]
209
+ .map((label) => {
210
+ const labelRecord = label;
211
+ if (!labelRecord || typeof labelRecord['name'] !== 'string' || !labelRecord['name']) {
212
+ return null;
213
+ }
214
+ const color = typeof labelRecord['color'] === 'string' && labelRecord['color'] ? labelRecord['color'] : null;
215
+ return { name: labelRecord['name'], color };
216
+ })
217
+ .filter(Boolean)
218
+ : [];
219
+ const url = typeof issue?.["url"] === 'string' && issue["url"]
220
+ ? issue["url"]
221
+ : `https://github.com/${repoSlug}/issues/${parsedNumber}`;
222
+ const state = typeof issue?.["state"] === 'string' && issue["state"]
223
+ ? issue["state"].toLowerCase()
224
+ : null;
225
+ return {
226
+ number: parsedNumber,
227
+ title,
228
+ body,
229
+ author,
230
+ createdAt: normaliseDate(createdAtValue),
231
+ updatedAt: normaliseDate(updatedAtValue),
232
+ labels,
233
+ url,
234
+ state,
235
+ };
236
+ }
237
+ return {
238
+ countOpenPullRequests,
239
+ countOpenIssues,
240
+ countRunningWorkflows,
241
+ listOpenIssues,
242
+ getIssue,
243
+ };
244
+ }
245
+ //# sourceMappingURL=github.js.map