@tonycasey/lisa 2.2.0 → 2.11.5

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 (413) hide show
  1. package/dist/lib/application/handlers/PromptSubmitHandler.d.ts +22 -12
  2. package/dist/lib/application/handlers/PromptSubmitHandler.d.ts.map +1 -1
  3. package/dist/lib/application/handlers/PromptSubmitHandler.js +36 -13
  4. package/dist/lib/application/handlers/PromptSubmitHandler.js.map +1 -1
  5. package/dist/lib/application/handlers/SessionStartHandler.d.ts +58 -5
  6. package/dist/lib/application/handlers/SessionStartHandler.d.ts.map +1 -1
  7. package/dist/lib/application/handlers/SessionStartHandler.js +259 -44
  8. package/dist/lib/application/handlers/SessionStartHandler.js.map +1 -1
  9. package/dist/lib/application/handlers/SessionStopHandler.d.ts +29 -5
  10. package/dist/lib/application/handlers/SessionStopHandler.d.ts.map +1 -1
  11. package/dist/lib/application/handlers/SessionStopHandler.js +83 -11
  12. package/dist/lib/application/handlers/SessionStopHandler.js.map +1 -1
  13. package/dist/lib/application/handlers/index.d.ts +1 -0
  14. package/dist/lib/application/handlers/index.d.ts.map +1 -1
  15. package/dist/lib/application/handlers/index.js +13 -1
  16. package/dist/lib/application/handlers/index.js.map +1 -1
  17. package/dist/lib/application/handlers/pr/PrAddressHandler.d.ts +103 -0
  18. package/dist/lib/application/handlers/pr/PrAddressHandler.d.ts.map +1 -0
  19. package/dist/lib/application/handlers/pr/PrAddressHandler.js +354 -0
  20. package/dist/lib/application/handlers/pr/PrAddressHandler.js.map +1 -0
  21. package/dist/lib/application/handlers/pr/PrChecksHandler.d.ts +64 -0
  22. package/dist/lib/application/handlers/pr/PrChecksHandler.d.ts.map +1 -0
  23. package/dist/lib/application/handlers/pr/PrChecksHandler.js +154 -0
  24. package/dist/lib/application/handlers/pr/PrChecksHandler.js.map +1 -0
  25. package/dist/lib/application/handlers/pr/PrCommentsHandler.d.ts +81 -0
  26. package/dist/lib/application/handlers/pr/PrCommentsHandler.d.ts.map +1 -0
  27. package/dist/lib/application/handlers/pr/PrCommentsHandler.js +184 -0
  28. package/dist/lib/application/handlers/pr/PrCommentsHandler.js.map +1 -0
  29. package/dist/lib/application/handlers/pr/PrCreateHandler.d.ts +78 -0
  30. package/dist/lib/application/handlers/pr/PrCreateHandler.d.ts.map +1 -0
  31. package/dist/lib/application/handlers/pr/PrCreateHandler.js +230 -0
  32. package/dist/lib/application/handlers/pr/PrCreateHandler.js.map +1 -0
  33. package/dist/lib/application/handlers/pr/PrLinkHandler.d.ts +75 -0
  34. package/dist/lib/application/handlers/pr/PrLinkHandler.d.ts.map +1 -0
  35. package/dist/lib/application/handlers/pr/PrLinkHandler.js +151 -0
  36. package/dist/lib/application/handlers/pr/PrLinkHandler.js.map +1 -0
  37. package/dist/lib/application/handlers/pr/PrPollHandler.d.ts +161 -0
  38. package/dist/lib/application/handlers/pr/PrPollHandler.d.ts.map +1 -0
  39. package/dist/lib/application/handlers/pr/PrPollHandler.js +674 -0
  40. package/dist/lib/application/handlers/pr/PrPollHandler.js.map +1 -0
  41. package/dist/lib/application/handlers/pr/PrRememberHandler.d.ts +55 -0
  42. package/dist/lib/application/handlers/pr/PrRememberHandler.d.ts.map +1 -0
  43. package/dist/lib/application/handlers/pr/PrRememberHandler.js +75 -0
  44. package/dist/lib/application/handlers/pr/PrRememberHandler.js.map +1 -0
  45. package/dist/lib/application/handlers/pr/PrReviewHandler.d.ts +103 -0
  46. package/dist/lib/application/handlers/pr/PrReviewHandler.d.ts.map +1 -0
  47. package/dist/lib/application/handlers/pr/PrReviewHandler.js +334 -0
  48. package/dist/lib/application/handlers/pr/PrReviewHandler.js.map +1 -0
  49. package/dist/lib/application/handlers/pr/PrStatusHandler.d.ts +150 -0
  50. package/dist/lib/application/handlers/pr/PrStatusHandler.d.ts.map +1 -0
  51. package/dist/lib/application/handlers/pr/PrStatusHandler.js +389 -0
  52. package/dist/lib/application/handlers/pr/PrStatusHandler.js.map +1 -0
  53. package/dist/lib/application/handlers/pr/PrWatchHandler.d.ts +77 -0
  54. package/dist/lib/application/handlers/pr/PrWatchHandler.d.ts.map +1 -0
  55. package/dist/lib/application/handlers/pr/PrWatchHandler.js +174 -0
  56. package/dist/lib/application/handlers/pr/PrWatchHandler.js.map +1 -0
  57. package/dist/lib/application/handlers/pr/index.d.ts +25 -0
  58. package/dist/lib/application/handlers/pr/index.d.ts.map +1 -0
  59. package/dist/lib/application/handlers/pr/index.js +38 -0
  60. package/dist/lib/application/handlers/pr/index.js.map +1 -0
  61. package/dist/lib/application/interfaces/index.d.ts +1 -0
  62. package/dist/lib/application/interfaces/index.d.ts.map +1 -1
  63. package/dist/lib/application/mediator/IMediator.d.ts +73 -0
  64. package/dist/lib/application/mediator/IMediator.d.ts.map +1 -0
  65. package/dist/lib/application/mediator/IMediator.js +12 -0
  66. package/dist/lib/application/mediator/IMediator.js.map +1 -0
  67. package/dist/lib/application/mediator/Mediator.d.ts +29 -0
  68. package/dist/lib/application/mediator/Mediator.d.ts.map +1 -0
  69. package/dist/lib/application/mediator/Mediator.js +53 -0
  70. package/dist/lib/application/mediator/Mediator.js.map +1 -0
  71. package/dist/lib/application/mediator/index.d.ts +10 -0
  72. package/dist/lib/application/mediator/index.d.ts.map +1 -0
  73. package/dist/lib/application/mediator/index.js +18 -0
  74. package/dist/lib/application/mediator/index.js.map +1 -0
  75. package/dist/lib/application/mediator/requests/PromptSubmitRequest.d.ts +60 -0
  76. package/dist/lib/application/mediator/requests/PromptSubmitRequest.d.ts.map +1 -0
  77. package/dist/lib/application/mediator/requests/PromptSubmitRequest.js +35 -0
  78. package/dist/lib/application/mediator/requests/PromptSubmitRequest.js.map +1 -0
  79. package/dist/lib/application/mediator/requests/SessionStartRequest.d.ts +36 -0
  80. package/dist/lib/application/mediator/requests/SessionStartRequest.d.ts.map +1 -0
  81. package/dist/lib/application/mediator/requests/SessionStartRequest.js +32 -0
  82. package/dist/lib/application/mediator/requests/SessionStartRequest.js.map +1 -0
  83. package/dist/lib/application/mediator/requests/SessionStopRequest.d.ts +67 -0
  84. package/dist/lib/application/mediator/requests/SessionStopRequest.d.ts.map +1 -0
  85. package/dist/lib/application/mediator/requests/SessionStopRequest.js +35 -0
  86. package/dist/lib/application/mediator/requests/SessionStopRequest.js.map +1 -0
  87. package/dist/lib/application/mediator/requests/index.d.ts +9 -0
  88. package/dist/lib/application/mediator/requests/index.d.ts.map +1 -0
  89. package/dist/lib/application/mediator/requests/index.js +13 -0
  90. package/dist/lib/application/mediator/requests/index.js.map +1 -0
  91. package/dist/lib/cli.d.ts +2 -44
  92. package/dist/lib/cli.d.ts.map +1 -1
  93. package/dist/lib/cli.js +1380 -597
  94. package/dist/lib/cli.js.map +1 -1
  95. package/dist/lib/commands/docker.d.ts +20 -0
  96. package/dist/lib/commands/docker.d.ts.map +1 -0
  97. package/dist/lib/commands/docker.js +27 -0
  98. package/dist/lib/commands/docker.js.map +1 -0
  99. package/dist/lib/commands/doctor.d.ts +94 -0
  100. package/dist/lib/commands/doctor.d.ts.map +1 -0
  101. package/dist/lib/commands/doctor.js +716 -0
  102. package/dist/lib/commands/doctor.js.map +1 -0
  103. package/dist/lib/commands/index.d.ts +10 -0
  104. package/dist/lib/commands/index.d.ts.map +1 -0
  105. package/dist/lib/commands/index.js +31 -0
  106. package/dist/lib/commands/index.js.map +1 -0
  107. package/dist/lib/commands/init.d.ts +37 -0
  108. package/dist/lib/commands/init.d.ts.map +1 -0
  109. package/dist/lib/commands/init.js +589 -0
  110. package/dist/lib/commands/init.js.map +1 -0
  111. package/dist/lib/commands/shared/constants.d.ts +27 -0
  112. package/dist/lib/commands/shared/constants.d.ts.map +1 -0
  113. package/dist/lib/commands/shared/constants.js +46 -0
  114. package/dist/lib/commands/shared/constants.js.map +1 -0
  115. package/dist/lib/commands/shared/index.d.ts +5 -0
  116. package/dist/lib/commands/shared/index.d.ts.map +1 -0
  117. package/dist/lib/commands/shared/index.js +15 -0
  118. package/dist/lib/commands/shared/index.js.map +1 -0
  119. package/dist/lib/domain/index.d.ts +4 -2
  120. package/dist/lib/domain/index.d.ts.map +1 -1
  121. package/dist/lib/domain/index.js +5 -2
  122. package/dist/lib/domain/index.js.map +1 -1
  123. package/dist/lib/domain/interfaces/ICronService.d.ts +100 -0
  124. package/dist/lib/domain/interfaces/ICronService.d.ts.map +1 -0
  125. package/dist/lib/domain/interfaces/ICronService.js +9 -0
  126. package/dist/lib/domain/interfaces/ICronService.js.map +1 -0
  127. package/dist/lib/domain/interfaces/ILabelInference.d.ts +62 -0
  128. package/dist/lib/domain/interfaces/ILabelInference.d.ts.map +1 -0
  129. package/dist/lib/domain/interfaces/ILabelInference.js +11 -0
  130. package/dist/lib/domain/interfaces/ILabelInference.js.map +1 -0
  131. package/dist/lib/domain/interfaces/ILisaServices.d.ts +6 -0
  132. package/dist/lib/domain/interfaces/ILisaServices.d.ts.map +1 -1
  133. package/dist/lib/domain/interfaces/IMcpClient.d.ts +15 -2
  134. package/dist/lib/domain/interfaces/IMcpClient.d.ts.map +1 -1
  135. package/dist/lib/domain/interfaces/IMemoryService.d.ts +11 -1
  136. package/dist/lib/domain/interfaces/IMemoryService.d.ts.map +1 -1
  137. package/dist/lib/domain/interfaces/INotificationService.d.ts +81 -0
  138. package/dist/lib/domain/interfaces/INotificationService.d.ts.map +1 -0
  139. package/dist/lib/domain/interfaces/INotificationService.js +9 -0
  140. package/dist/lib/domain/interfaces/INotificationService.js.map +1 -0
  141. package/dist/lib/domain/interfaces/ISessionCaptureService.d.ts +2 -1
  142. package/dist/lib/domain/interfaces/ISessionCaptureService.d.ts.map +1 -1
  143. package/dist/lib/domain/interfaces/IStructuredLog.d.ts +162 -0
  144. package/dist/lib/domain/interfaces/IStructuredLog.d.ts.map +1 -0
  145. package/dist/lib/domain/interfaces/IStructuredLog.js +85 -0
  146. package/dist/lib/domain/interfaces/IStructuredLog.js.map +1 -0
  147. package/dist/lib/domain/interfaces/dal/IGithubClient.d.ts +42 -0
  148. package/dist/lib/domain/interfaces/dal/IGithubClient.d.ts.map +1 -0
  149. package/dist/lib/domain/interfaces/dal/IGithubClient.js +12 -0
  150. package/dist/lib/domain/interfaces/dal/IGithubClient.js.map +1 -0
  151. package/dist/lib/domain/interfaces/dal/IPullRequestRepository.d.ts +124 -0
  152. package/dist/lib/domain/interfaces/dal/IPullRequestRepository.d.ts.map +1 -0
  153. package/dist/lib/domain/interfaces/dal/IPullRequestRepository.js +13 -0
  154. package/dist/lib/domain/interfaces/dal/IPullRequestRepository.js.map +1 -0
  155. package/dist/lib/domain/interfaces/dal/index.d.ts +2 -0
  156. package/dist/lib/domain/interfaces/dal/index.d.ts.map +1 -1
  157. package/dist/lib/domain/interfaces/dal/index.js.map +1 -1
  158. package/dist/lib/domain/interfaces/index.d.ts +5 -1
  159. package/dist/lib/domain/interfaces/index.d.ts.map +1 -1
  160. package/dist/lib/domain/interfaces/index.js +6 -0
  161. package/dist/lib/domain/interfaces/index.js.map +1 -1
  162. package/dist/lib/domain/interfaces/types/IPullRequest.d.ts +120 -0
  163. package/dist/lib/domain/interfaces/types/IPullRequest.d.ts.map +1 -0
  164. package/dist/lib/domain/interfaces/types/IPullRequest.js +42 -0
  165. package/dist/lib/domain/interfaces/types/IPullRequest.js.map +1 -0
  166. package/dist/lib/domain/interfaces/types/ITask.d.ts +16 -0
  167. package/dist/lib/domain/interfaces/types/ITask.d.ts.map +1 -1
  168. package/dist/lib/domain/interfaces/types/ITask.js.map +1 -1
  169. package/dist/lib/domain/interfaces/types/index.d.ts +1 -0
  170. package/dist/lib/domain/interfaces/types/index.d.ts.map +1 -1
  171. package/dist/lib/domain/interfaces/types/index.js +4 -1
  172. package/dist/lib/domain/interfaces/types/index.js.map +1 -1
  173. package/dist/lib/domain/utils/cancellation.d.ts +111 -0
  174. package/dist/lib/domain/utils/cancellation.d.ts.map +1 -0
  175. package/dist/lib/domain/utils/cancellation.js +168 -0
  176. package/dist/lib/domain/utils/cancellation.js.map +1 -0
  177. package/dist/lib/domain/utils/index.d.ts +8 -0
  178. package/dist/lib/domain/utils/index.d.ts.map +1 -0
  179. package/dist/lib/domain/utils/index.js +16 -0
  180. package/dist/lib/domain/utils/index.js.map +1 -0
  181. package/dist/lib/infrastructure/adapters/claude/session-start.d.ts +1 -1
  182. package/dist/lib/infrastructure/adapters/claude/session-start.js +9 -11
  183. package/dist/lib/infrastructure/adapters/claude/session-start.js.map +1 -1
  184. package/dist/lib/infrastructure/adapters/claude/session-stop.d.ts +1 -5
  185. package/dist/lib/infrastructure/adapters/claude/session-stop.d.ts.map +1 -1
  186. package/dist/lib/infrastructure/adapters/claude/session-stop.js +12 -15
  187. package/dist/lib/infrastructure/adapters/claude/session-stop.js.map +1 -1
  188. package/dist/lib/infrastructure/adapters/claude/user-prompt-submit.d.ts +1 -1
  189. package/dist/lib/infrastructure/adapters/claude/user-prompt-submit.js +9 -11
  190. package/dist/lib/infrastructure/adapters/claude/user-prompt-submit.js.map +1 -1
  191. package/dist/lib/infrastructure/adapters/opencode/plugin.d.ts +2 -2
  192. package/dist/lib/infrastructure/adapters/opencode/plugin.d.ts.map +1 -1
  193. package/dist/lib/infrastructure/adapters/opencode/plugin.js +16 -21
  194. package/dist/lib/infrastructure/adapters/opencode/plugin.js.map +1 -1
  195. package/dist/lib/infrastructure/cli/index.d.ts +8 -0
  196. package/dist/lib/infrastructure/cli/index.d.ts.map +1 -0
  197. package/dist/lib/infrastructure/cli/index.js +15 -0
  198. package/dist/lib/infrastructure/cli/index.js.map +1 -0
  199. package/dist/lib/infrastructure/cli/io.d.ts +91 -0
  200. package/dist/lib/infrastructure/cli/io.d.ts.map +1 -0
  201. package/dist/lib/infrastructure/cli/io.js +128 -0
  202. package/dist/lib/infrastructure/cli/io.js.map +1 -0
  203. package/dist/lib/infrastructure/cron/CronService.d.ts +87 -0
  204. package/dist/lib/infrastructure/cron/CronService.d.ts.map +1 -0
  205. package/dist/lib/infrastructure/cron/CronService.js +571 -0
  206. package/dist/lib/infrastructure/cron/CronService.js.map +1 -0
  207. package/dist/lib/infrastructure/cron/index.d.ts +5 -0
  208. package/dist/lib/infrastructure/cron/index.d.ts.map +1 -0
  209. package/dist/lib/infrastructure/cron/index.js +10 -0
  210. package/dist/lib/infrastructure/cron/index.js.map +1 -0
  211. package/dist/lib/infrastructure/dal/connections/McpConnectionManager.js +1 -1
  212. package/dist/lib/infrastructure/dal/connections/McpConnectionManager.js.map +1 -1
  213. package/dist/lib/infrastructure/dal/index.d.ts +1 -1
  214. package/dist/lib/infrastructure/dal/index.d.ts.map +1 -1
  215. package/dist/lib/infrastructure/dal/index.js +2 -1
  216. package/dist/lib/infrastructure/dal/index.js.map +1 -1
  217. package/dist/lib/infrastructure/dal/repositories/index.d.ts +1 -1
  218. package/dist/lib/infrastructure/dal/repositories/index.d.ts.map +1 -1
  219. package/dist/lib/infrastructure/dal/repositories/index.js +3 -2
  220. package/dist/lib/infrastructure/dal/repositories/index.js.map +1 -1
  221. package/dist/lib/infrastructure/dal/repositories/mcp/McpTaskRepository.d.ts.map +1 -1
  222. package/dist/lib/infrastructure/dal/repositories/mcp/McpTaskRepository.js +6 -2
  223. package/dist/lib/infrastructure/dal/repositories/mcp/McpTaskRepository.js.map +1 -1
  224. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jPullRequestRepository.d.ts +54 -0
  225. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jPullRequestRepository.d.ts.map +1 -0
  226. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jPullRequestRepository.js +561 -0
  227. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jPullRequestRepository.js.map +1 -0
  228. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jTaskRepository.d.ts +5 -2
  229. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jTaskRepository.d.ts.map +1 -1
  230. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jTaskRepository.js +78 -45
  231. package/dist/lib/infrastructure/dal/repositories/neo4j/Neo4jTaskRepository.js.map +1 -1
  232. package/dist/lib/infrastructure/dal/repositories/neo4j/index.d.ts +1 -0
  233. package/dist/lib/infrastructure/dal/repositories/neo4j/index.d.ts.map +1 -1
  234. package/dist/lib/infrastructure/dal/repositories/neo4j/index.js +3 -1
  235. package/dist/lib/infrastructure/dal/repositories/neo4j/index.js.map +1 -1
  236. package/dist/lib/infrastructure/dal/repositories/zep/ZepTaskRepository.d.ts.map +1 -1
  237. package/dist/lib/infrastructure/dal/repositories/zep/ZepTaskRepository.js +6 -2
  238. package/dist/lib/infrastructure/dal/repositories/zep/ZepTaskRepository.js.map +1 -1
  239. package/dist/lib/infrastructure/di/Container.d.ts +72 -0
  240. package/dist/lib/infrastructure/di/Container.d.ts.map +1 -0
  241. package/dist/lib/infrastructure/di/Container.js +182 -0
  242. package/dist/lib/infrastructure/di/Container.js.map +1 -0
  243. package/dist/lib/infrastructure/di/IContainer.d.ts +87 -0
  244. package/dist/lib/infrastructure/di/IContainer.d.ts.map +1 -0
  245. package/dist/lib/infrastructure/di/IContainer.js +11 -0
  246. package/dist/lib/infrastructure/di/IContainer.js.map +1 -0
  247. package/dist/lib/infrastructure/di/ServiceFactory.d.ts +6 -0
  248. package/dist/lib/infrastructure/di/ServiceFactory.d.ts.map +1 -1
  249. package/dist/lib/infrastructure/di/ServiceFactory.js +66 -0
  250. package/dist/lib/infrastructure/di/ServiceFactory.js.map +1 -1
  251. package/dist/lib/infrastructure/di/bootstrap.d.ts +43 -0
  252. package/dist/lib/infrastructure/di/bootstrap.d.ts.map +1 -0
  253. package/dist/lib/infrastructure/di/bootstrap.js +272 -0
  254. package/dist/lib/infrastructure/di/bootstrap.js.map +1 -0
  255. package/dist/lib/infrastructure/di/index.d.ts +6 -0
  256. package/dist/lib/infrastructure/di/index.d.ts.map +1 -1
  257. package/dist/lib/infrastructure/di/index.js +15 -1
  258. package/dist/lib/infrastructure/di/index.js.map +1 -1
  259. package/dist/lib/infrastructure/di/tokens.d.ts +70 -0
  260. package/dist/lib/infrastructure/di/tokens.d.ts.map +1 -0
  261. package/dist/lib/infrastructure/di/tokens.js +58 -0
  262. package/dist/lib/infrastructure/di/tokens.js.map +1 -0
  263. package/dist/lib/infrastructure/github/GithubClient.d.ts +129 -0
  264. package/dist/lib/infrastructure/github/GithubClient.d.ts.map +1 -0
  265. package/dist/lib/infrastructure/github/GithubClient.js +549 -0
  266. package/dist/lib/infrastructure/github/GithubClient.js.map +1 -0
  267. package/dist/lib/infrastructure/github/index.d.ts +8 -0
  268. package/dist/lib/infrastructure/github/index.d.ts.map +1 -0
  269. package/dist/lib/infrastructure/github/index.js +13 -0
  270. package/dist/lib/infrastructure/github/index.js.map +1 -0
  271. package/dist/lib/infrastructure/github/types.d.ts +145 -0
  272. package/dist/lib/infrastructure/github/types.d.ts.map +1 -0
  273. package/dist/lib/infrastructure/github/types.js +25 -0
  274. package/dist/lib/infrastructure/github/types.js.map +1 -0
  275. package/dist/lib/infrastructure/index.d.ts +4 -0
  276. package/dist/lib/infrastructure/index.d.ts.map +1 -1
  277. package/dist/lib/infrastructure/index.js +8 -0
  278. package/dist/lib/infrastructure/index.js.map +1 -1
  279. package/dist/lib/infrastructure/logging/Logger.d.ts +51 -4
  280. package/dist/lib/infrastructure/logging/Logger.d.ts.map +1 -1
  281. package/dist/lib/infrastructure/logging/Logger.js +127 -2
  282. package/dist/lib/infrastructure/logging/Logger.js.map +1 -1
  283. package/dist/lib/infrastructure/mcp/McpClient.d.ts +36 -1
  284. package/dist/lib/infrastructure/mcp/McpClient.d.ts.map +1 -1
  285. package/dist/lib/infrastructure/mcp/McpClient.js +68 -2
  286. package/dist/lib/infrastructure/mcp/McpClient.js.map +1 -1
  287. package/dist/lib/infrastructure/notifications/NotificationService.d.ts +90 -0
  288. package/dist/lib/infrastructure/notifications/NotificationService.d.ts.map +1 -0
  289. package/dist/lib/infrastructure/notifications/NotificationService.js +445 -0
  290. package/dist/lib/infrastructure/notifications/NotificationService.js.map +1 -0
  291. package/dist/lib/infrastructure/notifications/index.d.ts +7 -0
  292. package/dist/lib/infrastructure/notifications/index.d.ts.map +1 -0
  293. package/dist/lib/infrastructure/notifications/index.js +12 -0
  294. package/dist/lib/infrastructure/notifications/index.js.map +1 -0
  295. package/dist/lib/infrastructure/services/LabelInferenceService.d.ts +33 -0
  296. package/dist/lib/infrastructure/services/LabelInferenceService.d.ts.map +1 -0
  297. package/dist/lib/infrastructure/services/LabelInferenceService.js +225 -0
  298. package/dist/lib/infrastructure/services/LabelInferenceService.js.map +1 -0
  299. package/dist/lib/infrastructure/services/MemoryService.d.ts +23 -2
  300. package/dist/lib/infrastructure/services/MemoryService.d.ts.map +1 -1
  301. package/dist/lib/infrastructure/services/MemoryService.js +150 -55
  302. package/dist/lib/infrastructure/services/MemoryService.js.map +1 -1
  303. package/dist/lib/infrastructure/services/SessionCaptureService.d.ts +74 -20
  304. package/dist/lib/infrastructure/services/SessionCaptureService.d.ts.map +1 -1
  305. package/dist/lib/infrastructure/services/SessionCaptureService.js +331 -22
  306. package/dist/lib/infrastructure/services/SessionCaptureService.js.map +1 -1
  307. package/dist/lib/infrastructure/services/index.d.ts +1 -0
  308. package/dist/lib/infrastructure/services/index.d.ts.map +1 -1
  309. package/dist/lib/infrastructure/services/index.js +4 -1
  310. package/dist/lib/infrastructure/services/index.js.map +1 -1
  311. package/dist/lib/infrastructure/utils/index.d.ts +10 -0
  312. package/dist/lib/infrastructure/utils/index.d.ts.map +1 -0
  313. package/dist/lib/infrastructure/utils/index.js +26 -0
  314. package/dist/lib/infrastructure/utils/index.js.map +1 -0
  315. package/dist/lib/skills/common/type-mappings.d.ts.map +1 -1
  316. package/dist/lib/skills/common/type-mappings.js +6 -0
  317. package/dist/lib/skills/common/type-mappings.js.map +1 -1
  318. package/dist/lib/skills/github/github.d.ts +27 -0
  319. package/dist/lib/skills/github/github.d.ts.map +1 -0
  320. package/dist/lib/skills/github/github.js +408 -0
  321. package/dist/lib/skills/github/github.js.map +1 -0
  322. package/dist/lib/skills/memory/memory.js +3 -1
  323. package/dist/lib/skills/memory/memory.js.map +1 -1
  324. package/dist/lib/skills/shared/clients/GhCliClient.d.ts +17 -0
  325. package/dist/lib/skills/shared/clients/GhCliClient.d.ts.map +1 -0
  326. package/dist/lib/skills/shared/clients/GhCliClient.js +244 -0
  327. package/dist/lib/skills/shared/clients/GhCliClient.js.map +1 -0
  328. package/dist/lib/skills/shared/clients/McpClient.d.ts +12 -0
  329. package/dist/lib/skills/shared/clients/McpClient.d.ts.map +1 -1
  330. package/dist/lib/skills/shared/clients/McpClient.js +121 -76
  331. package/dist/lib/skills/shared/clients/McpClient.js.map +1 -1
  332. package/dist/lib/skills/shared/clients/Neo4jClient.d.ts.map +1 -1
  333. package/dist/lib/skills/shared/clients/Neo4jClient.js +12 -1
  334. package/dist/lib/skills/shared/clients/Neo4jClient.js.map +1 -1
  335. package/dist/lib/skills/shared/clients/index.d.ts +1 -0
  336. package/dist/lib/skills/shared/clients/index.d.ts.map +1 -1
  337. package/dist/lib/skills/shared/clients/index.js +4 -1
  338. package/dist/lib/skills/shared/clients/index.js.map +1 -1
  339. package/dist/lib/skills/shared/clients/interfaces/IGhCliClient.d.ts +56 -0
  340. package/dist/lib/skills/shared/clients/interfaces/IGhCliClient.d.ts.map +1 -0
  341. package/dist/lib/skills/shared/clients/interfaces/IGhCliClient.js +7 -0
  342. package/dist/lib/skills/shared/clients/interfaces/IGhCliClient.js.map +1 -0
  343. package/dist/lib/skills/shared/clients/interfaces/IZepClient.d.ts +7 -1
  344. package/dist/lib/skills/shared/clients/interfaces/IZepClient.d.ts.map +1 -1
  345. package/dist/lib/skills/shared/clients/interfaces/index.d.ts +1 -0
  346. package/dist/lib/skills/shared/clients/interfaces/index.d.ts.map +1 -1
  347. package/dist/lib/skills/shared/clients/interfaces/index.js +1 -0
  348. package/dist/lib/skills/shared/clients/interfaces/index.js.map +1 -1
  349. package/dist/lib/skills/shared/services/GitHubService.d.ts +169 -0
  350. package/dist/lib/skills/shared/services/GitHubService.d.ts.map +1 -0
  351. package/dist/lib/skills/shared/services/GitHubService.js +493 -0
  352. package/dist/lib/skills/shared/services/GitHubService.js.map +1 -0
  353. package/dist/lib/skills/shared/services/GitHubSyncService.d.ts +124 -0
  354. package/dist/lib/skills/shared/services/GitHubSyncService.d.ts.map +1 -0
  355. package/dist/lib/skills/shared/services/GitHubSyncService.js +412 -0
  356. package/dist/lib/skills/shared/services/GitHubSyncService.js.map +1 -0
  357. package/dist/lib/skills/shared/services/MemoryCliService.d.ts +2 -0
  358. package/dist/lib/skills/shared/services/MemoryCliService.d.ts.map +1 -1
  359. package/dist/lib/skills/shared/services/MemoryCliService.js +19 -2
  360. package/dist/lib/skills/shared/services/MemoryCliService.js.map +1 -1
  361. package/dist/lib/skills/shared/services/MemoryService.d.ts.map +1 -1
  362. package/dist/lib/skills/shared/services/MemoryService.js +26 -7
  363. package/dist/lib/skills/shared/services/MemoryService.js.map +1 -1
  364. package/dist/lib/skills/shared/services/TaskCliService.d.ts +6 -2
  365. package/dist/lib/skills/shared/services/TaskCliService.d.ts.map +1 -1
  366. package/dist/lib/skills/shared/services/TaskCliService.js +108 -7
  367. package/dist/lib/skills/shared/services/TaskCliService.js.map +1 -1
  368. package/dist/lib/skills/shared/services/TaskService.d.ts.map +1 -1
  369. package/dist/lib/skills/shared/services/TaskService.js +272 -42
  370. package/dist/lib/skills/shared/services/TaskService.js.map +1 -1
  371. package/dist/lib/skills/shared/services/index.d.ts +2 -0
  372. package/dist/lib/skills/shared/services/index.d.ts.map +1 -1
  373. package/dist/lib/skills/shared/services/index.js +7 -1
  374. package/dist/lib/skills/shared/services/index.js.map +1 -1
  375. package/dist/lib/skills/shared/services/interfaces/IMemoryService.d.ts +9 -1
  376. package/dist/lib/skills/shared/services/interfaces/IMemoryService.d.ts.map +1 -1
  377. package/dist/lib/skills/shared/services/interfaces/ITaskService.d.ts +65 -2
  378. package/dist/lib/skills/shared/services/interfaces/ITaskService.d.ts.map +1 -1
  379. package/dist/lib/skills/shared/utils/index.d.ts +1 -0
  380. package/dist/lib/skills/shared/utils/index.d.ts.map +1 -1
  381. package/dist/lib/skills/shared/utils/index.js +9 -1
  382. package/dist/lib/skills/shared/utils/index.js.map +1 -1
  383. package/dist/lib/skills/shared/utils/issue-refs.d.ts +127 -0
  384. package/dist/lib/skills/shared/utils/issue-refs.d.ts.map +1 -0
  385. package/dist/lib/skills/shared/utils/issue-refs.js +179 -0
  386. package/dist/lib/skills/shared/utils/issue-refs.js.map +1 -0
  387. package/dist/lib/skills/tasks/tasks.d.ts +5 -2
  388. package/dist/lib/skills/tasks/tasks.d.ts.map +1 -1
  389. package/dist/lib/skills/tasks/tasks.js +10 -3
  390. package/dist/lib/skills/tasks/tasks.js.map +1 -1
  391. package/dist/lib/utils/dateParser.d.ts +50 -0
  392. package/dist/lib/utils/dateParser.d.ts.map +1 -0
  393. package/dist/lib/utils/dateParser.js +152 -0
  394. package/dist/lib/utils/dateParser.js.map +1 -0
  395. package/dist/lib/utils/index.d.ts +5 -0
  396. package/dist/lib/utils/index.d.ts.map +1 -0
  397. package/dist/lib/utils/index.js +14 -0
  398. package/dist/lib/utils/index.js.map +1 -0
  399. package/dist/opencode/lisa.js +8627 -1312
  400. package/dist/package.json +1 -1
  401. package/dist/project/.lisa/assets/lisa-toast.png +0 -0
  402. package/dist/project/.lisa/rules/shared/git-rules.md +160 -47
  403. package/dist/project/.lisa/rules/shared/memory-rules.md +125 -0
  404. package/dist/project/.lisa/rules/shared/task-rules.md +209 -0
  405. package/dist/project/.lisa/skills/github/SKILL.md +415 -0
  406. package/dist/project/.lisa/skills/lisa/SKILL.md +22 -0
  407. package/dist/project/.lisa/skills/memory/SKILL.md +3 -2
  408. package/dist/project/.lisa/skills/pr/SKILL.md +520 -0
  409. package/package.json +6 -5
  410. package/dist/hooks/session-start.js +0 -5763
  411. package/dist/hooks/session-stop.js +0 -5348
  412. package/dist/hooks/user-prompt-submit.js +0 -5406
  413. package/dist/project/.claude/config.js +0 -40
@@ -0,0 +1,64 @@
1
+ /**
2
+ * PR Checks Handler
3
+ *
4
+ * Fetches and displays CI check status for a PR.
5
+ * Uses GithubClient to get real-time check status from GitHub.
6
+ *
7
+ * @see .dev/features/github-pr.md for full specification
8
+ */
9
+ import type { IGithubClient } from '../../../domain/interfaces/dal/IGithubClient';
10
+ import type { IPullRequestRepository } from '../../../domain/interfaces/dal/IPullRequestRepository';
11
+ import type { CheckStatus } from '../../../domain/interfaces/types/IPullRequest';
12
+ /**
13
+ * Result from PrChecksHandler.
14
+ */
15
+ export interface IPrChecksResult {
16
+ readonly repo: string;
17
+ readonly prNumber: number;
18
+ readonly title?: string;
19
+ readonly overallStatus: CheckStatus;
20
+ readonly checks: readonly {
21
+ readonly name: string;
22
+ readonly status: CheckStatus;
23
+ readonly conclusion?: string;
24
+ readonly detailsUrl?: string;
25
+ }[];
26
+ readonly summary: string;
27
+ }
28
+ /**
29
+ * Options for PrChecksHandler.
30
+ */
31
+ export interface IPrChecksOptions {
32
+ readonly repo?: string;
33
+ readonly prNumber: number;
34
+ readonly saveToNeo4j?: boolean;
35
+ }
36
+ /**
37
+ * Handler for fetching PR check status.
38
+ */
39
+ export declare class PrChecksHandler {
40
+ private readonly githubClient;
41
+ private readonly prRepository;
42
+ constructor(githubClient: IGithubClient, prRepository: IPullRequestRepository);
43
+ /**
44
+ * Get CI check status for a PR.
45
+ */
46
+ execute(options: IPrChecksOptions): Promise<IPrChecksResult>;
47
+ /**
48
+ * Map GitHub check state to domain CheckStatus.
49
+ */
50
+ private mapCheckStatus;
51
+ /**
52
+ * Calculate overall status from individual checks.
53
+ */
54
+ private calculateOverallStatus;
55
+ /**
56
+ * Save checks to Neo4j via repository.
57
+ */
58
+ private saveChecksToNeo4j;
59
+ /**
60
+ * Generate human-readable summary.
61
+ */
62
+ private generateSummary;
63
+ }
64
+ //# sourceMappingURL=PrChecksHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrChecksHandler.d.ts","sourceRoot":"","sources":["../../../../../src/lib/application/handlers/pr/PrChecksHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AACpG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC9B,EAAE,CAAC;IACJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,sBAAsB;IAGvD;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA6ClE;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;OAEG;YACW,iBAAiB;IAsB/B;;OAEG;IACH,OAAO,CAAC,eAAe;CA6BxB"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ /**
3
+ * PR Checks Handler
4
+ *
5
+ * Fetches and displays CI check status for a PR.
6
+ * Uses GithubClient to get real-time check status from GitHub.
7
+ *
8
+ * @see .dev/features/github-pr.md for full specification
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.PrChecksHandler = void 0;
12
+ /**
13
+ * Handler for fetching PR check status.
14
+ */
15
+ class PrChecksHandler {
16
+ constructor(githubClient, prRepository) {
17
+ this.githubClient = githubClient;
18
+ this.prRepository = prRepository;
19
+ }
20
+ /**
21
+ * Get CI check status for a PR.
22
+ */
23
+ async execute(options) {
24
+ // Resolve repo
25
+ const repo = options.repo || await this.githubClient.getCurrentRepo();
26
+ // Fetch PR details for title
27
+ let title;
28
+ try {
29
+ const pr = await this.githubClient.getPr(repo, options.prNumber);
30
+ title = pr.title;
31
+ }
32
+ catch {
33
+ // PR might not exist, but we'll try to get checks anyway
34
+ }
35
+ // Fetch checks from GitHub
36
+ const ghChecks = await this.githubClient.getPrChecks(repo, options.prNumber);
37
+ // Map to our domain types
38
+ const checks = ghChecks.map(check => ({
39
+ name: check.name,
40
+ status: this.mapCheckStatus(check.state),
41
+ conclusion: check.conclusion,
42
+ detailsUrl: check.detailsUrl,
43
+ }));
44
+ // Calculate overall status
45
+ const overallStatus = this.calculateOverallStatus(checks);
46
+ // Optionally save to Neo4j
47
+ if (options.saveToNeo4j !== false) {
48
+ await this.saveChecksToNeo4j(repo, options.prNumber, checks);
49
+ }
50
+ // Generate summary
51
+ const summary = this.generateSummary(checks, overallStatus);
52
+ return {
53
+ repo,
54
+ prNumber: options.prNumber,
55
+ title,
56
+ overallStatus,
57
+ checks,
58
+ summary,
59
+ };
60
+ }
61
+ /**
62
+ * Map GitHub check state to domain CheckStatus.
63
+ */
64
+ mapCheckStatus(state) {
65
+ switch (state) {
66
+ case 'SUCCESS':
67
+ return 'success';
68
+ case 'FAILURE':
69
+ return 'failure';
70
+ case 'CANCELLED':
71
+ return 'cancelled';
72
+ case 'SKIPPED':
73
+ return 'skipped';
74
+ case 'PENDING':
75
+ case 'QUEUED':
76
+ case 'IN_PROGRESS':
77
+ default:
78
+ return 'pending';
79
+ }
80
+ }
81
+ /**
82
+ * Calculate overall status from individual checks.
83
+ */
84
+ calculateOverallStatus(checks) {
85
+ if (checks.length === 0) {
86
+ return 'pending';
87
+ }
88
+ // Any failure = overall failure
89
+ if (checks.some(c => c.status === 'failure')) {
90
+ return 'failure';
91
+ }
92
+ // Any cancelled = overall cancelled
93
+ if (checks.some(c => c.status === 'cancelled')) {
94
+ return 'cancelled';
95
+ }
96
+ // Any pending = overall pending
97
+ if (checks.some(c => c.status === 'pending')) {
98
+ return 'pending';
99
+ }
100
+ // All success/skipped = overall success
101
+ return 'success';
102
+ }
103
+ /**
104
+ * Save checks to Neo4j via repository.
105
+ */
106
+ async saveChecksToNeo4j(repo, prNumber, checks) {
107
+ try {
108
+ const userId = await this.prRepository.getUserId();
109
+ for (const check of checks) {
110
+ await this.prRepository.upsertCheck(userId, repo, prNumber, {
111
+ checkName: check.name,
112
+ status: check.status,
113
+ conclusion: check.conclusion,
114
+ detailsUrl: check.detailsUrl,
115
+ updatedAt: new Date().toISOString(),
116
+ });
117
+ }
118
+ }
119
+ catch {
120
+ // Non-fatal: checks are informational
121
+ }
122
+ }
123
+ /**
124
+ * Generate human-readable summary.
125
+ */
126
+ generateSummary(checks, overallStatus) {
127
+ if (checks.length === 0) {
128
+ return 'No checks found';
129
+ }
130
+ const passed = checks.filter(c => c.status === 'success').length;
131
+ const failed = checks.filter(c => c.status === 'failure').length;
132
+ const pending = checks.filter(c => c.status === 'pending').length;
133
+ const skipped = checks.filter(c => c.status === 'skipped' || c.status === 'cancelled').length;
134
+ const parts = [];
135
+ if (passed > 0)
136
+ parts.push(`${passed} passed`);
137
+ if (failed > 0)
138
+ parts.push(`${failed} failed`);
139
+ if (pending > 0)
140
+ parts.push(`${pending} pending`);
141
+ if (skipped > 0)
142
+ parts.push(`${skipped} skipped`);
143
+ const statusEmoji = {
144
+ success: '✅',
145
+ failure: '❌',
146
+ pending: '⏳',
147
+ cancelled: '⚪',
148
+ skipped: '⚪',
149
+ };
150
+ return `${statusEmoji[overallStatus]} ${parts.join(', ')}`;
151
+ }
152
+ }
153
+ exports.PrChecksHandler = PrChecksHandler;
154
+ //# sourceMappingURL=PrChecksHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrChecksHandler.js","sourceRoot":"","sources":["../../../../../src/lib/application/handlers/pr/PrChecksHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * PR Comments Handler
3
+ *
4
+ * Fetches and displays PR review comments with triage information.
5
+ * Supports filtering by status (pending, addressed, resolved).
6
+ *
7
+ * @see .dev/features/github-pr.md for full specification
8
+ */
9
+ import type { IGithubClient } from '../../../domain/interfaces/dal/IGithubClient';
10
+ import type { IPullRequestRepository } from '../../../domain/interfaces/dal/IPullRequestRepository';
11
+ import type { CommentStatus } from '../../../domain/interfaces/types/IPullRequest';
12
+ /**
13
+ * Comment with triage information.
14
+ */
15
+ export interface ITriagedComment {
16
+ readonly id: number;
17
+ readonly file: string;
18
+ readonly line?: number;
19
+ readonly author: string;
20
+ readonly body: string;
21
+ readonly status: CommentStatus;
22
+ readonly createdAt: string;
23
+ readonly updatedAt: string;
24
+ readonly htmlUrl: string;
25
+ readonly isReply: boolean;
26
+ readonly inReplyToId?: number;
27
+ }
28
+ /**
29
+ * Result from PrCommentsHandler.
30
+ */
31
+ export interface IPrCommentsResult {
32
+ readonly repo: string;
33
+ readonly prNumber: number;
34
+ readonly title?: string;
35
+ readonly comments: readonly ITriagedComment[];
36
+ readonly summary: {
37
+ readonly total: number;
38
+ readonly pending: number;
39
+ readonly addressed: number;
40
+ readonly resolved: number;
41
+ };
42
+ readonly formattedOutput: string;
43
+ }
44
+ /**
45
+ * Options for PrCommentsHandler.
46
+ */
47
+ export interface IPrCommentsOptions {
48
+ readonly repo?: string;
49
+ readonly prNumber: number;
50
+ readonly filter?: CommentStatus;
51
+ readonly saveToNeo4j?: boolean;
52
+ }
53
+ /**
54
+ * Handler for fetching PR comments.
55
+ */
56
+ export declare class PrCommentsHandler {
57
+ private readonly githubClient;
58
+ private readonly prRepository;
59
+ constructor(githubClient: IGithubClient, prRepository: IPullRequestRepository);
60
+ /**
61
+ * Get PR review comments with triage information.
62
+ */
63
+ execute(options: IPrCommentsOptions): Promise<IPrCommentsResult>;
64
+ /**
65
+ * Get existing comment statuses from Neo4j.
66
+ */
67
+ private getExistingStatuses;
68
+ /**
69
+ * Triage a comment to determine its status.
70
+ */
71
+ private triageComment;
72
+ /**
73
+ * Save comments to Neo4j via repository.
74
+ */
75
+ private saveCommentsToNeo4j;
76
+ /**
77
+ * Format output for display.
78
+ */
79
+ private formatOutput;
80
+ }
81
+ //# sourceMappingURL=PrCommentsHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrCommentsHandler.d.ts","sourceRoot":"","sources":["../../../../../src/lib/application/handlers/pr/PrCommentsHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,sBAAsB;IAGvD;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsDtE;;OAEG;YACW,mBAAmB;IAoBjC;;OAEG;IACH,OAAO,CAAC,aAAa;IA0CrB;;OAEG;YACW,mBAAmB;IA0BjC;;OAEG;IACH,OAAO,CAAC,YAAY;CA0DrB"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ /**
3
+ * PR Comments Handler
4
+ *
5
+ * Fetches and displays PR review comments with triage information.
6
+ * Supports filtering by status (pending, addressed, resolved).
7
+ *
8
+ * @see .dev/features/github-pr.md for full specification
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.PrCommentsHandler = void 0;
12
+ /**
13
+ * Handler for fetching PR comments.
14
+ */
15
+ class PrCommentsHandler {
16
+ constructor(githubClient, prRepository) {
17
+ this.githubClient = githubClient;
18
+ this.prRepository = prRepository;
19
+ }
20
+ /**
21
+ * Get PR review comments with triage information.
22
+ */
23
+ async execute(options) {
24
+ // Resolve repo
25
+ const repo = options.repo || await this.githubClient.getCurrentRepo();
26
+ // Fetch PR details for title
27
+ let title;
28
+ try {
29
+ const pr = await this.githubClient.getPr(repo, options.prNumber);
30
+ title = pr.title;
31
+ }
32
+ catch {
33
+ // PR might not exist
34
+ }
35
+ // Fetch comments from GitHub
36
+ const ghComments = await this.githubClient.getPrComments(repo, options.prNumber);
37
+ // Get existing comment statuses from Neo4j
38
+ const existingStatuses = await this.getExistingStatuses(repo, options.prNumber);
39
+ // Map and triage comments
40
+ let comments = ghComments.map(comment => this.triageComment(comment, existingStatuses));
41
+ // Apply filter if specified
42
+ if (options.filter) {
43
+ comments = comments.filter(c => c.status === options.filter);
44
+ }
45
+ // Calculate summary
46
+ const allComments = ghComments.map(c => this.triageComment(c, existingStatuses));
47
+ const summary = {
48
+ total: allComments.length,
49
+ pending: allComments.filter(c => c.status === 'pending').length,
50
+ addressed: allComments.filter(c => c.status === 'addressed').length,
51
+ resolved: allComments.filter(c => c.status === 'resolved').length,
52
+ };
53
+ // Optionally save to Neo4j
54
+ if (options.saveToNeo4j !== false) {
55
+ await this.saveCommentsToNeo4j(repo, options.prNumber, comments);
56
+ }
57
+ // Generate formatted output
58
+ const formattedOutput = this.formatOutput(comments, summary, title);
59
+ return {
60
+ repo,
61
+ prNumber: options.prNumber,
62
+ title,
63
+ comments,
64
+ summary,
65
+ formattedOutput,
66
+ };
67
+ }
68
+ /**
69
+ * Get existing comment statuses from Neo4j.
70
+ */
71
+ async getExistingStatuses(repo, prNumber) {
72
+ const statuses = new Map();
73
+ try {
74
+ const userId = await this.prRepository.getUserId();
75
+ const comments = await this.prRepository.findCommentsByPr(userId, repo, prNumber);
76
+ for (const comment of comments) {
77
+ statuses.set(comment.commentId, comment.status);
78
+ }
79
+ }
80
+ catch {
81
+ // Return empty map if Neo4j fails
82
+ }
83
+ return statuses;
84
+ }
85
+ /**
86
+ * Triage a comment to determine its status.
87
+ */
88
+ triageComment(comment, existingStatuses) {
89
+ const commentId = String(comment.id);
90
+ // Use existing status if we have it
91
+ let status = existingStatuses.get(commentId) || 'pending';
92
+ // Heuristic: if the comment is a reply and we authored it, mark as addressed
93
+ // (This is a simple heuristic - in practice we'd check if it's our reply)
94
+ if (comment.in_reply_to_id && !existingStatuses.has(commentId)) {
95
+ // New reply we haven't tracked - keep as pending
96
+ status = 'pending';
97
+ }
98
+ return {
99
+ id: comment.id,
100
+ file: comment.path,
101
+ line: comment.line || comment.original_line,
102
+ author: comment.user.login,
103
+ body: comment.body,
104
+ status,
105
+ createdAt: comment.created_at,
106
+ updatedAt: comment.updated_at,
107
+ htmlUrl: comment.html_url,
108
+ isReply: !!comment.in_reply_to_id,
109
+ inReplyToId: comment.in_reply_to_id,
110
+ };
111
+ }
112
+ /**
113
+ * Save comments to Neo4j via repository.
114
+ */
115
+ async saveCommentsToNeo4j(repo, prNumber, comments) {
116
+ try {
117
+ const userId = await this.prRepository.getUserId();
118
+ for (const comment of comments) {
119
+ await this.prRepository.upsertComment(userId, repo, prNumber, {
120
+ commentId: String(comment.id),
121
+ file: comment.file,
122
+ line: comment.line || 0,
123
+ author: comment.author,
124
+ body: comment.body,
125
+ status: comment.status,
126
+ hasNewReply: false,
127
+ createdAt: comment.createdAt,
128
+ updatedAt: comment.updatedAt,
129
+ });
130
+ }
131
+ }
132
+ catch {
133
+ // Non-fatal: comments are informational
134
+ }
135
+ }
136
+ /**
137
+ * Format output for display.
138
+ */
139
+ formatOutput(comments, summary, title) {
140
+ const lines = [];
141
+ // Header
142
+ if (title) {
143
+ lines.push(`PR: ${title}`);
144
+ lines.push('');
145
+ }
146
+ // Summary
147
+ lines.push(`Comments: ${summary.total} total (${summary.pending} pending, ${summary.addressed} addressed, ${summary.resolved} resolved)`);
148
+ lines.push('');
149
+ if (comments.length === 0) {
150
+ lines.push('No comments to display.');
151
+ return lines.join('\n');
152
+ }
153
+ // Group by file
154
+ const byFile = new Map();
155
+ for (const comment of comments) {
156
+ const existing = byFile.get(comment.file) || [];
157
+ existing.push(comment);
158
+ byFile.set(comment.file, existing);
159
+ }
160
+ // Display by file
161
+ for (const [file, fileComments] of byFile) {
162
+ lines.push(`📁 ${file}`);
163
+ for (const comment of fileComments) {
164
+ const statusEmoji = {
165
+ pending: '🔴',
166
+ addressed: '🟡',
167
+ resolved: '✅',
168
+ };
169
+ const lineInfo = comment.line ? `:${comment.line}` : '';
170
+ const replyIndicator = comment.isReply ? ' (reply)' : '';
171
+ lines.push(` ${statusEmoji[comment.status]} Line${lineInfo} - @${comment.author}${replyIndicator}`);
172
+ // Truncate long bodies
173
+ const bodyPreview = comment.body.length > 100
174
+ ? comment.body.slice(0, 100).replace(/\n/g, ' ') + '...'
175
+ : comment.body.replace(/\n/g, ' ');
176
+ lines.push(` "${bodyPreview}"`);
177
+ }
178
+ lines.push('');
179
+ }
180
+ return lines.join('\n');
181
+ }
182
+ }
183
+ exports.PrCommentsHandler = PrCommentsHandler;
184
+ //# sourceMappingURL=PrCommentsHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrCommentsHandler.js","sourceRoot":"","sources":["../../../../../src/lib/application/handlers/pr/PrCommentsHandler.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAkDH;;GAEG;AACH,MAAa,iBAAiB;IAC5B,YACmB,YAA2B,EAC3B,YAAoC;QADpC,iBAAY,GAAZ,YAAY,CAAe;QAC3B,iBAAY,GAAZ,YAAY,CAAwB;IACpD,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAA2B;QACvC,eAAe;QACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QAEtE,6BAA6B;QAC7B,IAAI,KAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjE,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QAED,6BAA6B;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjF,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEhF,0BAA0B;QAC1B,IAAI,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAExF,4BAA4B;QAC5B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,oBAAoB;QACpB,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;YAC/D,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;YACnE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;SAClE,CAAC;QAEF,2BAA2B;QAC3B,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnE,CAAC;QAED,4BAA4B;QAC5B,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAEpE,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK;YACL,QAAQ;YACR,OAAO;YACP,eAAe;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,IAAY,EACZ,QAAgB;QAEhB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;QAElD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,aAAa,CACnB,OAWC,EACD,gBAA4C;QAE5C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAErC,oCAAoC;QACpC,IAAI,MAAM,GAAkB,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;QAEzE,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,iDAAiD;YACjD,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,aAAa;YAC3C,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc;YACjC,WAAW,EAAE,OAAO,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,IAAY,EACZ,QAAgB,EAChB,QAAoC;QAEpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;YAEnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5D,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;oBACvB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,WAAW,EAAE,KAAK;oBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAClB,QAAoC,EACpC,OAAgF,EAChF,KAAc;QAEd,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,SAAS;QACT,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,UAAU;QACV,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,WAAW,OAAO,CAAC,OAAO,aAAa,OAAO,CAAC,SAAS,eAAe,OAAO,CAAC,QAAQ,YAAY,CAAC,CAAC;QAC1I,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;QACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,kBAAkB;QAClB,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAEzB,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG;oBAClB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,GAAG;iBACd,CAAC;gBAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEzD,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,QAAQ,OAAO,OAAO,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC,CAAC;gBAErG,uBAAuB;gBACvB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG;oBAC3C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK;oBACxD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AA7ND,8CA6NC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * PR Create Handler
3
+ *
4
+ * Creates a PR with auto-generated body, issue linking, and auto-watch.
5
+ * Supports branch name parsing for issue detection.
6
+ *
7
+ * @see .dev/features/github-pr.md for full specification
8
+ */
9
+ import type { IGithubClient } from '../../../domain/interfaces/dal/IGithubClient';
10
+ import type { IPullRequestRepository } from '../../../domain/interfaces/dal/IPullRequestRepository';
11
+ /**
12
+ * Options for PR creation.
13
+ */
14
+ export interface IPrCreateOptions {
15
+ /** Issue number(s) to link. If not provided, attempts to parse from branch name. */
16
+ readonly issues?: number[];
17
+ /** Target branch. If not provided, uses default branch (main/master). */
18
+ readonly base?: string;
19
+ /** Source branch. If not provided, uses current branch. */
20
+ readonly head?: string;
21
+ /** PR title. If not provided, uses issue title or generates from commits. */
22
+ readonly title?: string;
23
+ /** Create as draft PR. */
24
+ readonly draft?: boolean;
25
+ /** Skip auto-watch after creation. */
26
+ readonly noWatch?: boolean;
27
+ /** Skip commenting on linked issues. */
28
+ readonly noComment?: boolean;
29
+ }
30
+ /**
31
+ * Result from PR creation.
32
+ */
33
+ export interface IPrCreateResult {
34
+ readonly success: boolean;
35
+ readonly message: string;
36
+ readonly pr?: {
37
+ readonly number: number;
38
+ readonly url: string;
39
+ readonly title: string;
40
+ readonly repo: string;
41
+ };
42
+ readonly linkedIssues?: readonly number[];
43
+ readonly body?: string;
44
+ }
45
+ /**
46
+ * Handler for creating PRs with auto-generated content.
47
+ */
48
+ export declare class PrCreateHandler {
49
+ private readonly githubClient;
50
+ private readonly prRepository;
51
+ constructor(githubClient: IGithubClient, prRepository: IPullRequestRepository);
52
+ /**
53
+ * Create a PR with auto-generated body and issue linking.
54
+ */
55
+ execute(options?: IPrCreateOptions): Promise<IPrCreateResult>;
56
+ /**
57
+ * Parse issue numbers from branch name.
58
+ * Supports formats: "15", "15-description", "feature/15", "feature/15-description"
59
+ */
60
+ private parseIssuesFromBranch;
61
+ /**
62
+ * Generate PR body with summary, test coverage, and linked issues.
63
+ */
64
+ private generatePrBody;
65
+ /**
66
+ * Comment on linked issues with PR reference.
67
+ */
68
+ private commentOnLinkedIssues;
69
+ /**
70
+ * Add PR to watch list.
71
+ */
72
+ private watchPr;
73
+ /**
74
+ * Create Neo4j nodes and CLOSES relationships.
75
+ */
76
+ private createNeo4jRelationships;
77
+ }
78
+ //# sourceMappingURL=PrCreateHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrCreateHandler.d.ts","sourceRoot":"","sources":["../../../../../src/lib/application/handlers/pr/PrCreateHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAGpG;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE;QACZ,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,sBAAsB;IAGvD;;OAEG;IACG,OAAO,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAmFvE;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyC7B;;OAEG;YACW,cAAc;IAkD5B;;OAEG;YACW,qBAAqB;IAkBnC;;OAEG;YACW,OAAO;IAerB;;OAEG;YACW,wBAAwB;CA6BvC"}