@qotaq/lalphgram 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. package/Events/package.json +6 -0
  2. package/LICENSE +21 -0
  3. package/Main/package.json +6 -0
  4. package/README.md +1 -0
  5. package/dist/cjs/Events.js +55 -0
  6. package/dist/cjs/Events.js.map +1 -0
  7. package/dist/cjs/LalphMain.js +59 -0
  8. package/dist/cjs/LalphMain.js.map +1 -0
  9. package/dist/cjs/Main.js +115 -0
  10. package/dist/cjs/Main.js.map +1 -0
  11. package/dist/cjs/index.js +281 -0
  12. package/dist/cjs/index.js.map +1 -0
  13. package/dist/cjs/lib/AnalysisPrompts.js +61 -0
  14. package/dist/cjs/lib/AnalysisPrompts.js.map +1 -0
  15. package/dist/cjs/lib/BranchParser.js +45 -0
  16. package/dist/cjs/lib/BranchParser.js.map +1 -0
  17. package/dist/cjs/lib/MermaidToPlantUml.js +96 -0
  18. package/dist/cjs/lib/MermaidToPlantUml.js.map +1 -0
  19. package/dist/cjs/lib/SpecHtmlGenerator.js +160 -0
  20. package/dist/cjs/lib/SpecHtmlGenerator.js.map +1 -0
  21. package/dist/cjs/lib/StreamJsonParser.js +88 -0
  22. package/dist/cjs/lib/StreamJsonParser.js.map +1 -0
  23. package/dist/cjs/lib/TelegramFormatter.js +122 -0
  24. package/dist/cjs/lib/TelegramFormatter.js.map +1 -0
  25. package/dist/cjs/lib/TelegraphHtml.js +65 -0
  26. package/dist/cjs/lib/TelegraphHtml.js.map +1 -0
  27. package/dist/cjs/lib/TelegraphMarkdown.js +346 -0
  28. package/dist/cjs/lib/TelegraphMarkdown.js.map +1 -0
  29. package/dist/cjs/schemas/CredentialSchemas.js +31 -0
  30. package/dist/cjs/schemas/CredentialSchemas.js.map +1 -0
  31. package/dist/cjs/schemas/GitHubSchemas.js +60 -0
  32. package/dist/cjs/schemas/GitHubSchemas.js.map +1 -0
  33. package/dist/cjs/schemas/LinearSchemas.js +63 -0
  34. package/dist/cjs/schemas/LinearSchemas.js.map +1 -0
  35. package/dist/cjs/schemas/ProjectSchemas.js +26 -0
  36. package/dist/cjs/schemas/ProjectSchemas.js.map +1 -0
  37. package/dist/cjs/schemas/TrackerSchemas.js +35 -0
  38. package/dist/cjs/schemas/TrackerSchemas.js.map +1 -0
  39. package/dist/cjs/services/AppContext.js +57 -0
  40. package/dist/cjs/services/AppContext.js.map +1 -0
  41. package/dist/cjs/services/AppRuntimeConfig.js +35 -0
  42. package/dist/cjs/services/AppRuntimeConfig.js.map +1 -0
  43. package/dist/cjs/services/AutoMerge.js +140 -0
  44. package/dist/cjs/services/AutoMerge.js.map +1 -0
  45. package/dist/cjs/services/ChatMachine.js +873 -0
  46. package/dist/cjs/services/ChatMachine.js.map +1 -0
  47. package/dist/cjs/services/CommentTimer.js +81 -0
  48. package/dist/cjs/services/CommentTimer.js.map +1 -0
  49. package/dist/cjs/services/CredentialStore.js +68 -0
  50. package/dist/cjs/services/CredentialStore.js.map +1 -0
  51. package/dist/cjs/services/CredentialWatcher.js +76 -0
  52. package/dist/cjs/services/CredentialWatcher.js.map +1 -0
  53. package/dist/cjs/services/Credentials.js +130 -0
  54. package/dist/cjs/services/Credentials.js.map +1 -0
  55. package/dist/cjs/services/EventLoop.js +203 -0
  56. package/dist/cjs/services/EventLoop.js.map +1 -0
  57. package/dist/cjs/services/GitHubClient/GitHubClient.js +236 -0
  58. package/dist/cjs/services/GitHubClient/GitHubClient.js.map +1 -0
  59. package/dist/cjs/services/GitHubClient/OctokitClient.js +329 -0
  60. package/dist/cjs/services/GitHubClient/OctokitClient.js.map +1 -0
  61. package/dist/cjs/services/GitHubClient.js +236 -0
  62. package/dist/cjs/services/GitHubClient.js.map +1 -0
  63. package/dist/cjs/services/GitHubEventSource.js +145 -0
  64. package/dist/cjs/services/GitHubEventSource.js.map +1 -0
  65. package/dist/cjs/services/GitHubIssueTracker.js +118 -0
  66. package/dist/cjs/services/GitHubIssueTracker.js.map +1 -0
  67. package/dist/cjs/services/LalphConfig.js +139 -0
  68. package/dist/cjs/services/LalphConfig.js.map +1 -0
  69. package/dist/cjs/services/LalphConfigReader.js +82 -0
  70. package/dist/cjs/services/LalphConfigReader.js.map +1 -0
  71. package/dist/cjs/services/LalphDirectory.js +45 -0
  72. package/dist/cjs/services/LalphDirectory.js.map +1 -0
  73. package/dist/cjs/services/LinearSdkClient.js +149 -0
  74. package/dist/cjs/services/LinearSdkClient.js.map +1 -0
  75. package/dist/cjs/services/LinearTracker.js +89 -0
  76. package/dist/cjs/services/LinearTracker.js.map +1 -0
  77. package/dist/cjs/services/MessengerAdapter/MessengerAdapter.js +30 -0
  78. package/dist/cjs/services/MessengerAdapter/MessengerAdapter.js.map +1 -0
  79. package/dist/cjs/services/MessengerAdapter/TelegramAdapter.js +131 -0
  80. package/dist/cjs/services/MessengerAdapter/TelegramAdapter.js.map +1 -0
  81. package/dist/cjs/services/MessengerAdapter/TelegramConfig.js +81 -0
  82. package/dist/cjs/services/MessengerAdapter/TelegramConfig.js.map +1 -0
  83. package/dist/cjs/services/MessengerAdapter.js +30 -0
  84. package/dist/cjs/services/MessengerAdapter.js.map +1 -0
  85. package/dist/cjs/services/OctokitClient.js +350 -0
  86. package/dist/cjs/services/OctokitClient.js.map +1 -0
  87. package/dist/cjs/services/PlanOverviewUploader.js +119 -0
  88. package/dist/cjs/services/PlanOverviewUploader.js.map +1 -0
  89. package/dist/cjs/services/PlanOverviewUploaderMap.js +25 -0
  90. package/dist/cjs/services/PlanOverviewUploaderMap.js.map +1 -0
  91. package/dist/cjs/services/PlanSession.js +489 -0
  92. package/dist/cjs/services/PlanSession.js.map +1 -0
  93. package/dist/cjs/services/ProjectStore.js +107 -0
  94. package/dist/cjs/services/ProjectStore.js.map +1 -0
  95. package/dist/cjs/services/PullRequestTracker.js +186 -0
  96. package/dist/cjs/services/PullRequestTracker.js.map +1 -0
  97. package/dist/cjs/services/SpecUploader.js +111 -0
  98. package/dist/cjs/services/SpecUploader.js.map +1 -0
  99. package/dist/cjs/services/SpecUploaderMap.js +25 -0
  100. package/dist/cjs/services/SpecUploaderMap.js.map +1 -0
  101. package/dist/cjs/services/TaskEventSource.js +58 -0
  102. package/dist/cjs/services/TaskEventSource.js.map +1 -0
  103. package/dist/cjs/services/TaskTracker/GitHubIssueTracker.js +155 -0
  104. package/dist/cjs/services/TaskTracker/GitHubIssueTracker.js.map +1 -0
  105. package/dist/cjs/services/TaskTracker/LinearSdkClient.js +149 -0
  106. package/dist/cjs/services/TaskTracker/LinearSdkClient.js.map +1 -0
  107. package/dist/cjs/services/TaskTracker/LinearTracker.js +126 -0
  108. package/dist/cjs/services/TaskTracker/LinearTracker.js.map +1 -0
  109. package/dist/cjs/services/TaskTracker/TaskTracker.js +20 -0
  110. package/dist/cjs/services/TaskTracker/TaskTracker.js.map +1 -0
  111. package/dist/cjs/services/TaskTracker/TrackerLayerMap.js +27 -0
  112. package/dist/cjs/services/TaskTracker/TrackerLayerMap.js.map +1 -0
  113. package/dist/cjs/services/TaskTracker/buildEventStream.js +55 -0
  114. package/dist/cjs/services/TaskTracker/buildEventStream.js.map +1 -0
  115. package/dist/cjs/services/TaskTracker.js +20 -0
  116. package/dist/cjs/services/TaskTracker.js.map +1 -0
  117. package/dist/cjs/services/TelegramAdapter.js +125 -0
  118. package/dist/cjs/services/TelegramAdapter.js.map +1 -0
  119. package/dist/cjs/services/TelegramConfig.js +81 -0
  120. package/dist/cjs/services/TelegramConfig.js.map +1 -0
  121. package/dist/cjs/services/TelegramConfigStore.js +81 -0
  122. package/dist/cjs/services/TelegramConfigStore.js.map +1 -0
  123. package/dist/cjs/services/TelegramNotifier.js +50 -0
  124. package/dist/cjs/services/TelegramNotifier.js.map +1 -0
  125. package/dist/cjs/services/TrackerLayerMap.js +27 -0
  126. package/dist/cjs/services/TrackerLayerMap.js.map +1 -0
  127. package/dist/cjs/services/TrackerResolver.js +45 -0
  128. package/dist/cjs/services/TrackerResolver.js.map +1 -0
  129. package/dist/cjs/services/messenger/MessengerAdapter.js +30 -0
  130. package/dist/cjs/services/messenger/MessengerAdapter.js.map +1 -0
  131. package/dist/cjs/services/messenger/TelegramAdapter.js +125 -0
  132. package/dist/cjs/services/messenger/TelegramAdapter.js.map +1 -0
  133. package/dist/cjs/services/task-tracker/GitHubIssueTracker.js +157 -0
  134. package/dist/cjs/services/task-tracker/GitHubIssueTracker.js.map +1 -0
  135. package/dist/cjs/services/task-tracker/LinearTracker.js +127 -0
  136. package/dist/cjs/services/task-tracker/LinearTracker.js.map +1 -0
  137. package/dist/cjs/services/task-tracker/TaskTracker.js +20 -0
  138. package/dist/cjs/services/task-tracker/TaskTracker.js.map +1 -0
  139. package/dist/cjs/services/task-tracker/TrackerLayerMap.js +27 -0
  140. package/dist/cjs/services/task-tracker/TrackerLayerMap.js.map +1 -0
  141. package/dist/cjs/shim/bin.js +31 -0
  142. package/dist/cjs/shim/bin.js.map +1 -0
  143. package/dist/cjs/shim/main.js +217 -0
  144. package/dist/cjs/shim/main.js.map +1 -0
  145. package/dist/cjs/shim/parseArgs.js +45 -0
  146. package/dist/cjs/shim/parseArgs.js.map +1 -0
  147. package/dist/cjs/shim/schemas.js +35 -0
  148. package/dist/cjs/shim/schemas.js.map +1 -0
  149. package/dist/dts/Events.d.ts +108 -0
  150. package/dist/dts/Events.d.ts.map +1 -0
  151. package/dist/dts/LalphMain.d.ts +2 -0
  152. package/dist/dts/LalphMain.d.ts.map +1 -0
  153. package/dist/dts/Main.d.ts +2 -0
  154. package/dist/dts/Main.d.ts.map +1 -0
  155. package/dist/dts/index.d.ts +101 -0
  156. package/dist/dts/index.d.ts.map +1 -0
  157. package/dist/dts/lib/AnalysisPrompts.d.ts +12 -0
  158. package/dist/dts/lib/AnalysisPrompts.d.ts.map +1 -0
  159. package/dist/dts/lib/BranchParser.d.ts +40 -0
  160. package/dist/dts/lib/BranchParser.d.ts.map +1 -0
  161. package/dist/dts/lib/MermaidToPlantUml.d.ts +19 -0
  162. package/dist/dts/lib/MermaidToPlantUml.d.ts.map +1 -0
  163. package/dist/dts/lib/SpecHtmlGenerator.d.ts +18 -0
  164. package/dist/dts/lib/SpecHtmlGenerator.d.ts.map +1 -0
  165. package/dist/dts/lib/StreamJsonParser.d.ts +147 -0
  166. package/dist/dts/lib/StreamJsonParser.d.ts.map +1 -0
  167. package/dist/dts/lib/TelegramFormatter.d.ts +35 -0
  168. package/dist/dts/lib/TelegramFormatter.d.ts.map +1 -0
  169. package/dist/dts/lib/TelegraphHtml.d.ts +11 -0
  170. package/dist/dts/lib/TelegraphHtml.d.ts.map +1 -0
  171. package/dist/dts/lib/TelegraphMarkdown.d.ts +21 -0
  172. package/dist/dts/lib/TelegraphMarkdown.d.ts.map +1 -0
  173. package/dist/dts/schemas/CredentialSchemas.d.ts +41 -0
  174. package/dist/dts/schemas/CredentialSchemas.d.ts.map +1 -0
  175. package/dist/dts/schemas/GitHubSchemas.d.ts +130 -0
  176. package/dist/dts/schemas/GitHubSchemas.d.ts.map +1 -0
  177. package/dist/dts/schemas/LinearSchemas.d.ts +121 -0
  178. package/dist/dts/schemas/LinearSchemas.d.ts.map +1 -0
  179. package/dist/dts/schemas/ProjectSchemas.d.ts +40 -0
  180. package/dist/dts/schemas/ProjectSchemas.d.ts.map +1 -0
  181. package/dist/dts/schemas/TrackerSchemas.d.ts +57 -0
  182. package/dist/dts/schemas/TrackerSchemas.d.ts.map +1 -0
  183. package/dist/dts/services/AppContext.d.ts +40 -0
  184. package/dist/dts/services/AppContext.d.ts.map +1 -0
  185. package/dist/dts/services/AppRuntimeConfig.d.ts +51 -0
  186. package/dist/dts/services/AppRuntimeConfig.d.ts.map +1 -0
  187. package/dist/dts/services/AutoMerge.d.ts +42 -0
  188. package/dist/dts/services/AutoMerge.d.ts.map +1 -0
  189. package/dist/dts/services/ChatMachine.d.ts +478 -0
  190. package/dist/dts/services/ChatMachine.d.ts.map +1 -0
  191. package/dist/dts/services/CommentTimer.d.ts +44 -0
  192. package/dist/dts/services/CommentTimer.d.ts.map +1 -0
  193. package/dist/dts/services/CredentialStore.d.ts +43 -0
  194. package/dist/dts/services/CredentialStore.d.ts.map +1 -0
  195. package/dist/dts/services/CredentialWatcher.d.ts +41 -0
  196. package/dist/dts/services/CredentialWatcher.d.ts.map +1 -0
  197. package/dist/dts/services/Credentials.d.ts +44 -0
  198. package/dist/dts/services/Credentials.d.ts.map +1 -0
  199. package/dist/dts/services/EventLoop.d.ts +26 -0
  200. package/dist/dts/services/EventLoop.d.ts.map +1 -0
  201. package/dist/dts/services/GitHubClient/GitHubClient.d.ts +69 -0
  202. package/dist/dts/services/GitHubClient/GitHubClient.d.ts.map +1 -0
  203. package/dist/dts/services/GitHubClient/OctokitClient.d.ts +214 -0
  204. package/dist/dts/services/GitHubClient/OctokitClient.d.ts.map +1 -0
  205. package/dist/dts/services/GitHubClient.d.ts +69 -0
  206. package/dist/dts/services/GitHubClient.d.ts.map +1 -0
  207. package/dist/dts/services/GitHubEventSource.d.ts +43 -0
  208. package/dist/dts/services/GitHubEventSource.d.ts.map +1 -0
  209. package/dist/dts/services/GitHubIssueTracker.d.ts +9 -0
  210. package/dist/dts/services/GitHubIssueTracker.d.ts.map +1 -0
  211. package/dist/dts/services/LalphConfig.d.ts +44 -0
  212. package/dist/dts/services/LalphConfig.d.ts.map +1 -0
  213. package/dist/dts/services/LalphConfigReader.d.ts +66 -0
  214. package/dist/dts/services/LalphConfigReader.d.ts.map +1 -0
  215. package/dist/dts/services/LalphDirectory.d.ts +39 -0
  216. package/dist/dts/services/LalphDirectory.d.ts.map +1 -0
  217. package/dist/dts/services/LinearSdkClient.d.ts +71 -0
  218. package/dist/dts/services/LinearSdkClient.d.ts.map +1 -0
  219. package/dist/dts/services/LinearTracker.d.ts +9 -0
  220. package/dist/dts/services/LinearTracker.d.ts.map +1 -0
  221. package/dist/dts/services/MessengerAdapter/MessengerAdapter.d.ts +69 -0
  222. package/dist/dts/services/MessengerAdapter/MessengerAdapter.d.ts.map +1 -0
  223. package/dist/dts/services/MessengerAdapter/TelegramAdapter.d.ts +13 -0
  224. package/dist/dts/services/MessengerAdapter/TelegramAdapter.d.ts.map +1 -0
  225. package/dist/dts/services/MessengerAdapter/TelegramConfig.d.ts +58 -0
  226. package/dist/dts/services/MessengerAdapter/TelegramConfig.d.ts.map +1 -0
  227. package/dist/dts/services/MessengerAdapter.d.ts +69 -0
  228. package/dist/dts/services/MessengerAdapter.d.ts.map +1 -0
  229. package/dist/dts/services/OctokitClient.d.ts +232 -0
  230. package/dist/dts/services/OctokitClient.d.ts.map +1 -0
  231. package/dist/dts/services/PlanOverviewUploader.d.ts +55 -0
  232. package/dist/dts/services/PlanOverviewUploader.d.ts.map +1 -0
  233. package/dist/dts/services/PlanOverviewUploaderMap.d.ts +14 -0
  234. package/dist/dts/services/PlanOverviewUploaderMap.d.ts.map +1 -0
  235. package/dist/dts/services/PlanSession.d.ts +169 -0
  236. package/dist/dts/services/PlanSession.d.ts.map +1 -0
  237. package/dist/dts/services/ProjectStore.d.ts +50 -0
  238. package/dist/dts/services/ProjectStore.d.ts.map +1 -0
  239. package/dist/dts/services/PullRequestTracker.d.ts +42 -0
  240. package/dist/dts/services/PullRequestTracker.d.ts.map +1 -0
  241. package/dist/dts/services/SpecUploader.d.ts +51 -0
  242. package/dist/dts/services/SpecUploader.d.ts.map +1 -0
  243. package/dist/dts/services/SpecUploaderMap.d.ts +14 -0
  244. package/dist/dts/services/SpecUploaderMap.d.ts.map +1 -0
  245. package/dist/dts/services/TaskEventSource.d.ts +21 -0
  246. package/dist/dts/services/TaskEventSource.d.ts.map +1 -0
  247. package/dist/dts/services/TaskTracker/GitHubIssueTracker.d.ts +10 -0
  248. package/dist/dts/services/TaskTracker/GitHubIssueTracker.d.ts.map +1 -0
  249. package/dist/dts/services/TaskTracker/LinearSdkClient.d.ts +71 -0
  250. package/dist/dts/services/TaskTracker/LinearSdkClient.d.ts.map +1 -0
  251. package/dist/dts/services/TaskTracker/LinearTracker.d.ts +10 -0
  252. package/dist/dts/services/TaskTracker/LinearTracker.d.ts.map +1 -0
  253. package/dist/dts/services/TaskTracker/TaskTracker.d.ts +39 -0
  254. package/dist/dts/services/TaskTracker/TaskTracker.d.ts.map +1 -0
  255. package/dist/dts/services/TaskTracker/TrackerLayerMap.d.ts +14 -0
  256. package/dist/dts/services/TaskTracker/TrackerLayerMap.d.ts.map +1 -0
  257. package/dist/dts/services/TaskTracker/buildEventStream.d.ts +16 -0
  258. package/dist/dts/services/TaskTracker/buildEventStream.d.ts.map +1 -0
  259. package/dist/dts/services/TaskTracker.d.ts +38 -0
  260. package/dist/dts/services/TaskTracker.d.ts.map +1 -0
  261. package/dist/dts/services/TelegramAdapter.d.ts +13 -0
  262. package/dist/dts/services/TelegramAdapter.d.ts.map +1 -0
  263. package/dist/dts/services/TelegramConfig.d.ts +58 -0
  264. package/dist/dts/services/TelegramConfig.d.ts.map +1 -0
  265. package/dist/dts/services/TelegramConfigStore.d.ts +57 -0
  266. package/dist/dts/services/TelegramConfigStore.d.ts.map +1 -0
  267. package/dist/dts/services/TelegramNotifier.d.ts +40 -0
  268. package/dist/dts/services/TelegramNotifier.d.ts.map +1 -0
  269. package/dist/dts/services/TrackerLayerMap.d.ts +14 -0
  270. package/dist/dts/services/TrackerLayerMap.d.ts.map +1 -0
  271. package/dist/dts/services/TrackerResolver.d.ts +43 -0
  272. package/dist/dts/services/TrackerResolver.d.ts.map +1 -0
  273. package/dist/dts/services/messenger/MessengerAdapter.d.ts +69 -0
  274. package/dist/dts/services/messenger/MessengerAdapter.d.ts.map +1 -0
  275. package/dist/dts/services/messenger/TelegramAdapter.d.ts +13 -0
  276. package/dist/dts/services/messenger/TelegramAdapter.d.ts.map +1 -0
  277. package/dist/dts/services/task-tracker/GitHubIssueTracker.d.ts +10 -0
  278. package/dist/dts/services/task-tracker/GitHubIssueTracker.d.ts.map +1 -0
  279. package/dist/dts/services/task-tracker/LinearTracker.d.ts +10 -0
  280. package/dist/dts/services/task-tracker/LinearTracker.d.ts.map +1 -0
  281. package/dist/dts/services/task-tracker/TaskTracker.d.ts +38 -0
  282. package/dist/dts/services/task-tracker/TaskTracker.d.ts.map +1 -0
  283. package/dist/dts/services/task-tracker/TrackerLayerMap.d.ts +14 -0
  284. package/dist/dts/services/task-tracker/TrackerLayerMap.d.ts.map +1 -0
  285. package/dist/dts/shim/bin.d.ts +3 -0
  286. package/dist/dts/shim/bin.d.ts.map +1 -0
  287. package/dist/dts/shim/main.d.ts +36 -0
  288. package/dist/dts/shim/main.d.ts.map +1 -0
  289. package/dist/dts/shim/parseArgs.d.ts +11 -0
  290. package/dist/dts/shim/parseArgs.d.ts.map +1 -0
  291. package/dist/dts/shim/schemas.d.ts +55 -0
  292. package/dist/dts/shim/schemas.d.ts.map +1 -0
  293. package/dist/esm/Events.js +41 -0
  294. package/dist/esm/Events.js.map +1 -0
  295. package/dist/esm/LalphMain.js +56 -0
  296. package/dist/esm/LalphMain.js.map +1 -0
  297. package/dist/esm/Main.js +112 -0
  298. package/dist/esm/Main.js.map +1 -0
  299. package/dist/esm/index.js +101 -0
  300. package/dist/esm/index.js.map +1 -0
  301. package/dist/esm/lib/AnalysisPrompts.js +54 -0
  302. package/dist/esm/lib/AnalysisPrompts.js.map +1 -0
  303. package/dist/esm/lib/BranchParser.js +36 -0
  304. package/dist/esm/lib/BranchParser.js.map +1 -0
  305. package/dist/esm/lib/MermaidToPlantUml.js +89 -0
  306. package/dist/esm/lib/MermaidToPlantUml.js.map +1 -0
  307. package/dist/esm/lib/SpecHtmlGenerator.js +153 -0
  308. package/dist/esm/lib/SpecHtmlGenerator.js.map +1 -0
  309. package/dist/esm/lib/StreamJsonParser.js +79 -0
  310. package/dist/esm/lib/StreamJsonParser.js.map +1 -0
  311. package/dist/esm/lib/TelegramFormatter.js +114 -0
  312. package/dist/esm/lib/TelegramFormatter.js.map +1 -0
  313. package/dist/esm/lib/TelegraphHtml.js +57 -0
  314. package/dist/esm/lib/TelegraphHtml.js.map +1 -0
  315. package/dist/esm/lib/TelegraphMarkdown.js +338 -0
  316. package/dist/esm/lib/TelegraphMarkdown.js.map +1 -0
  317. package/dist/esm/package.json +4 -0
  318. package/dist/esm/schemas/CredentialSchemas.js +22 -0
  319. package/dist/esm/schemas/CredentialSchemas.js.map +1 -0
  320. package/dist/esm/schemas/GitHubSchemas.js +50 -0
  321. package/dist/esm/schemas/GitHubSchemas.js.map +1 -0
  322. package/dist/esm/schemas/LinearSchemas.js +52 -0
  323. package/dist/esm/schemas/LinearSchemas.js.map +1 -0
  324. package/dist/esm/schemas/ProjectSchemas.js +18 -0
  325. package/dist/esm/schemas/ProjectSchemas.js.map +1 -0
  326. package/dist/esm/schemas/TrackerSchemas.js +26 -0
  327. package/dist/esm/schemas/TrackerSchemas.js.map +1 -0
  328. package/dist/esm/services/AppContext.js +48 -0
  329. package/dist/esm/services/AppContext.js.map +1 -0
  330. package/dist/esm/services/AppRuntimeConfig.js +26 -0
  331. package/dist/esm/services/AppRuntimeConfig.js.map +1 -0
  332. package/dist/esm/services/AutoMerge.js +131 -0
  333. package/dist/esm/services/AutoMerge.js.map +1 -0
  334. package/dist/esm/services/ChatMachine.js +855 -0
  335. package/dist/esm/services/ChatMachine.js.map +1 -0
  336. package/dist/esm/services/CommentTimer.js +72 -0
  337. package/dist/esm/services/CommentTimer.js.map +1 -0
  338. package/dist/esm/services/CredentialStore.js +59 -0
  339. package/dist/esm/services/CredentialStore.js.map +1 -0
  340. package/dist/esm/services/CredentialWatcher.js +67 -0
  341. package/dist/esm/services/CredentialWatcher.js.map +1 -0
  342. package/dist/esm/services/Credentials.js +121 -0
  343. package/dist/esm/services/Credentials.js.map +1 -0
  344. package/dist/esm/services/EventLoop.js +128 -0
  345. package/dist/esm/services/EventLoop.js.map +1 -0
  346. package/dist/esm/services/GitHubClient/GitHubClient.js +227 -0
  347. package/dist/esm/services/GitHubClient/GitHubClient.js.map +1 -0
  348. package/dist/esm/services/GitHubClient/OctokitClient.js +320 -0
  349. package/dist/esm/services/GitHubClient/OctokitClient.js.map +1 -0
  350. package/dist/esm/services/GitHubClient.js +227 -0
  351. package/dist/esm/services/GitHubClient.js.map +1 -0
  352. package/dist/esm/services/GitHubEventSource.js +136 -0
  353. package/dist/esm/services/GitHubEventSource.js.map +1 -0
  354. package/dist/esm/services/GitHubIssueTracker.js +111 -0
  355. package/dist/esm/services/GitHubIssueTracker.js.map +1 -0
  356. package/dist/esm/services/LalphConfig.js +130 -0
  357. package/dist/esm/services/LalphConfig.js.map +1 -0
  358. package/dist/esm/services/LalphConfigReader.js +71 -0
  359. package/dist/esm/services/LalphConfigReader.js.map +1 -0
  360. package/dist/esm/services/LalphDirectory.js +36 -0
  361. package/dist/esm/services/LalphDirectory.js.map +1 -0
  362. package/dist/esm/services/LinearSdkClient.js +140 -0
  363. package/dist/esm/services/LinearSdkClient.js.map +1 -0
  364. package/dist/esm/services/LinearTracker.js +82 -0
  365. package/dist/esm/services/LinearTracker.js.map +1 -0
  366. package/dist/esm/services/MessengerAdapter/MessengerAdapter.js +21 -0
  367. package/dist/esm/services/MessengerAdapter/MessengerAdapter.js.map +1 -0
  368. package/dist/esm/services/MessengerAdapter/TelegramAdapter.js +124 -0
  369. package/dist/esm/services/MessengerAdapter/TelegramAdapter.js.map +1 -0
  370. package/dist/esm/services/MessengerAdapter/TelegramConfig.js +71 -0
  371. package/dist/esm/services/MessengerAdapter/TelegramConfig.js.map +1 -0
  372. package/dist/esm/services/MessengerAdapter.js +21 -0
  373. package/dist/esm/services/MessengerAdapter.js.map +1 -0
  374. package/dist/esm/services/OctokitClient.js +341 -0
  375. package/dist/esm/services/OctokitClient.js.map +1 -0
  376. package/dist/esm/services/PlanOverviewUploader.js +109 -0
  377. package/dist/esm/services/PlanOverviewUploader.js.map +1 -0
  378. package/dist/esm/services/PlanOverviewUploaderMap.js +17 -0
  379. package/dist/esm/services/PlanOverviewUploaderMap.js.map +1 -0
  380. package/dist/esm/services/PlanSession.js +471 -0
  381. package/dist/esm/services/PlanSession.js.map +1 -0
  382. package/dist/esm/services/ProjectStore.js +98 -0
  383. package/dist/esm/services/ProjectStore.js.map +1 -0
  384. package/dist/esm/services/PullRequestTracker.js +177 -0
  385. package/dist/esm/services/PullRequestTracker.js.map +1 -0
  386. package/dist/esm/services/SpecUploader.js +101 -0
  387. package/dist/esm/services/SpecUploader.js.map +1 -0
  388. package/dist/esm/services/SpecUploaderMap.js +17 -0
  389. package/dist/esm/services/SpecUploaderMap.js.map +1 -0
  390. package/dist/esm/services/TaskEventSource.js +50 -0
  391. package/dist/esm/services/TaskEventSource.js.map +1 -0
  392. package/dist/esm/services/TaskTracker/GitHubIssueTracker.js +148 -0
  393. package/dist/esm/services/TaskTracker/GitHubIssueTracker.js.map +1 -0
  394. package/dist/esm/services/TaskTracker/LinearSdkClient.js +140 -0
  395. package/dist/esm/services/TaskTracker/LinearSdkClient.js.map +1 -0
  396. package/dist/esm/services/TaskTracker/LinearTracker.js +119 -0
  397. package/dist/esm/services/TaskTracker/LinearTracker.js.map +1 -0
  398. package/dist/esm/services/TaskTracker/TaskTracker.js +12 -0
  399. package/dist/esm/services/TaskTracker/TaskTracker.js.map +1 -0
  400. package/dist/esm/services/TaskTracker/TrackerLayerMap.js +19 -0
  401. package/dist/esm/services/TaskTracker/TrackerLayerMap.js.map +1 -0
  402. package/dist/esm/services/TaskTracker/buildEventStream.js +47 -0
  403. package/dist/esm/services/TaskTracker/buildEventStream.js.map +1 -0
  404. package/dist/esm/services/TaskTracker.js +12 -0
  405. package/dist/esm/services/TaskTracker.js.map +1 -0
  406. package/dist/esm/services/TelegramAdapter.js +118 -0
  407. package/dist/esm/services/TelegramAdapter.js.map +1 -0
  408. package/dist/esm/services/TelegramConfig.js +71 -0
  409. package/dist/esm/services/TelegramConfig.js.map +1 -0
  410. package/dist/esm/services/TelegramConfigStore.js +71 -0
  411. package/dist/esm/services/TelegramConfigStore.js.map +1 -0
  412. package/dist/esm/services/TelegramNotifier.js +41 -0
  413. package/dist/esm/services/TelegramNotifier.js.map +1 -0
  414. package/dist/esm/services/TrackerLayerMap.js +19 -0
  415. package/dist/esm/services/TrackerLayerMap.js.map +1 -0
  416. package/dist/esm/services/TrackerResolver.js +36 -0
  417. package/dist/esm/services/TrackerResolver.js.map +1 -0
  418. package/dist/esm/services/messenger/MessengerAdapter.js +21 -0
  419. package/dist/esm/services/messenger/MessengerAdapter.js.map +1 -0
  420. package/dist/esm/services/messenger/TelegramAdapter.js +118 -0
  421. package/dist/esm/services/messenger/TelegramAdapter.js.map +1 -0
  422. package/dist/esm/services/task-tracker/GitHubIssueTracker.js +150 -0
  423. package/dist/esm/services/task-tracker/GitHubIssueTracker.js.map +1 -0
  424. package/dist/esm/services/task-tracker/LinearTracker.js +120 -0
  425. package/dist/esm/services/task-tracker/LinearTracker.js.map +1 -0
  426. package/dist/esm/services/task-tracker/TaskTracker.js +12 -0
  427. package/dist/esm/services/task-tracker/TaskTracker.js.map +1 -0
  428. package/dist/esm/services/task-tracker/TrackerLayerMap.js +19 -0
  429. package/dist/esm/services/task-tracker/TrackerLayerMap.js.map +1 -0
  430. package/dist/esm/shim/bin.js +28 -0
  431. package/dist/esm/shim/bin.js.map +1 -0
  432. package/dist/esm/shim/main.js +196 -0
  433. package/dist/esm/shim/main.js.map +1 -0
  434. package/dist/esm/shim/parseArgs.js +39 -0
  435. package/dist/esm/shim/parseArgs.js.map +1 -0
  436. package/dist/esm/shim/schemas.js +28 -0
  437. package/dist/esm/shim/schemas.js.map +1 -0
  438. package/lib/AnalysisPrompts/package.json +6 -0
  439. package/lib/BranchParser/package.json +6 -0
  440. package/lib/MermaidToPlantUml/package.json +6 -0
  441. package/lib/SpecHtmlGenerator/package.json +6 -0
  442. package/lib/StreamJsonParser/package.json +6 -0
  443. package/lib/TelegramFormatter/package.json +6 -0
  444. package/lib/TelegraphMarkdown/package.json +6 -0
  445. package/package.json +360 -0
  446. package/schemas/CredentialSchemas/package.json +6 -0
  447. package/schemas/GitHubSchemas/package.json +6 -0
  448. package/schemas/LinearSchemas/package.json +6 -0
  449. package/schemas/ProjectSchemas/package.json +6 -0
  450. package/schemas/TrackerSchemas/package.json +6 -0
  451. package/services/AppContext/package.json +6 -0
  452. package/services/AppRuntimeConfig/package.json +6 -0
  453. package/services/AutoMerge/package.json +6 -0
  454. package/services/ChatMachine/package.json +6 -0
  455. package/services/CommentTimer/package.json +6 -0
  456. package/services/EventLoop/package.json +6 -0
  457. package/services/GitHubClient/package.json +6 -0
  458. package/services/LalphConfig/package.json +6 -0
  459. package/services/LinearSdkClient/package.json +6 -0
  460. package/services/MessengerAdapter/MessengerAdapter/package.json +6 -0
  461. package/services/MessengerAdapter/TelegramAdapter/package.json +6 -0
  462. package/services/OctokitClient/package.json +6 -0
  463. package/services/PlanOverviewUploader/package.json +6 -0
  464. package/services/PlanOverviewUploaderMap/package.json +6 -0
  465. package/services/PlanSession/package.json +6 -0
  466. package/services/ProjectStore/package.json +6 -0
  467. package/services/PullRequestTracker/package.json +6 -0
  468. package/services/TaskTracker/GitHubIssueTracker/package.json +6 -0
  469. package/services/TaskTracker/LinearTracker/package.json +6 -0
  470. package/services/TaskTracker/TaskTracker/package.json +6 -0
  471. package/services/TelegramConfig/package.json +6 -0
  472. package/services/TrackerLayerMap/package.json +6 -0
  473. package/shim/bin/package.json +6 -0
  474. package/shim/main/package.json +6 -0
  475. package/shim/parseArgs/package.json +6 -0
  476. package/shim/schemas/package.json +6 -0
  477. package/src/Events.ts +98 -0
  478. package/src/Main.ts +177 -0
  479. package/src/index.ts +124 -0
  480. package/src/lib/AnalysisPrompts.ts +54 -0
  481. package/src/lib/BranchParser.ts +58 -0
  482. package/src/lib/MermaidToPlantUml.ts +103 -0
  483. package/src/lib/SpecHtmlGenerator.ts +199 -0
  484. package/src/lib/StreamJsonParser.ts +99 -0
  485. package/src/lib/TelegramFormatter.ts +151 -0
  486. package/src/lib/TelegraphMarkdown.ts +305 -0
  487. package/src/schemas/CredentialSchemas.ts +23 -0
  488. package/src/schemas/GitHubSchemas.ts +50 -0
  489. package/src/schemas/LinearSchemas.ts +57 -0
  490. package/src/schemas/ProjectSchemas.ts +18 -0
  491. package/src/schemas/TrackerSchemas.ts +27 -0
  492. package/src/services/AppContext.ts +72 -0
  493. package/src/services/AppRuntimeConfig.ts +23 -0
  494. package/src/services/AutoMerge.ts +198 -0
  495. package/src/services/ChatMachine.ts +911 -0
  496. package/src/services/CommentTimer.ts +133 -0
  497. package/src/services/EventLoop.ts +321 -0
  498. package/src/services/GitHubClient.ts +282 -0
  499. package/src/services/LalphConfig.ts +218 -0
  500. package/src/services/LinearSdkClient.ts +181 -0
  501. package/src/services/MessengerAdapter/MessengerAdapter.ts +53 -0
  502. package/src/services/MessengerAdapter/TelegramAdapter.ts +145 -0
  503. package/src/services/OctokitClient.ts +628 -0
  504. package/src/services/PlanOverviewUploader.ts +160 -0
  505. package/src/services/PlanOverviewUploaderMap.ts +17 -0
  506. package/src/services/PlanSession.ts +589 -0
  507. package/src/services/ProjectStore.ts +140 -0
  508. package/src/services/PullRequestTracker.ts +253 -0
  509. package/src/services/TaskTracker/GitHubIssueTracker.ts +162 -0
  510. package/src/services/TaskTracker/LinearTracker.ts +141 -0
  511. package/src/services/TaskTracker/TaskTracker.ts +34 -0
  512. package/src/services/TelegramConfig.ts +120 -0
  513. package/src/services/TrackerLayerMap.ts +19 -0
  514. package/src/shim/bin.ts +36 -0
  515. package/src/shim/main.ts +255 -0
  516. package/src/shim/parseArgs.ts +43 -0
  517. package/src/shim/schemas.ts +38 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMachine.js","names":["Machine","Data","Effect","Option","Schema","getAnalysisPrompt","markdownToTelegramHtml","splitMessage","MessengerAdapter","PlanOverviewUploader","PlanSession","ProjectStore","PLAN_BUTTON_LABEL","DONE_BUTTON_LABEL","FEATURE_BUTTON_LABEL","BUG_BUTTON_LABEL","REFACTOR_BUTTON_LABEL","OTHER_BUTTON_LABEL","APPROVE_BUTTON_LABEL","BUFFER_BUTTON_LABEL","INTERRUPT_BUTTON_LABEL","DISCARD_BUTTON_LABEL","ABORT_BUTTON_LABEL","NEW_PROJECT_BUTTON_LABEL","MY_ANSWER_BUTTON_LABEL","BACK_BUTTON_LABEL","PLAN_TYPE_LABELS","IDLE_KEYBOARD","label","COLLECTING_KEYBOARD","SESSION_KEYBOARD","SPEC_READY_KEYBOARD","ReadyFlags","Class","ChatState","taggedEnum","initialSessionRunning","projectId","planType","SessionRunning","pendingAnswerCount","pendingOptionLabels","Set","answersBuffer","awaitingFreeTextAnswer","lastQuestionMessage","none","readyFlags","spec","analysis","idle","analysisFollowUpSent","UserMessage","TaggedRequest","failure","Never","success","Void","payload","text","String","PlanTextOutput","PlanQuestionReceived","questions","Array","Struct","question","header","optional","options","PlanSpecCreatedReq","PlanSpecUpdatedReq","PlanAnalysisReadyReq","PlanAwaitingInputReq","PlanCompletedReq","PlanFailedReq","message","reply","state","undefined","chatMachine","make","gen","notifier","planSession","projectStore","planOverviewUploader","readSpecFiles","readFeatureAnalysis","pipe","map","files","name","content","mermaid","services","test","readBugAnalysis","readRefactorAnalysis","readDefaultAnalysis","sendSpecFilesRaw","forEach","file","formatted","chunk","sendMessage","sendSpecFiles","upload","description","tap","result","url","catchTag","err","logError","rejectSession","reject","tapError","orElseSucceed","abortToIdle","hasSession","log","replyKeyboard","submitAnswers","answers","combined","join","answer","showFollowUpChoice","AwaitingFollowUpDecision","checkAllReady","flags","catchAll","SpecReady","maybeAnalysisFollowUp","alreadySent","succeed","sendFollowUp","as","extractActiveState","_tag","some","procedures","Idle","add","ctx","request","projects","listProjects","length","annotateLogs","id","SelectingPlanType","p","SelectingProject","CreatingProject","step","data","continueWithPlan","includes","CollectingPlan","buffer","joinedText","trim","totalProjects","ps","start","has","isSome","value","newBuffer","newPending","isIdle","newState","interrupt","approve","idleSpec","followUpState","n","Number","isNaN","concurrency","targetBranch","gitFlow","reviewAgent","createProject","labels","flatMap","q","o","newPendingLabels","lastQ","baseOptions","msg","active","isNone","sent","newFlags"],"sources":["../../../src/services/ChatMachine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Comment timer debounce service for per-PR timer management
3
+ * @since 1.0.0
4
+ */
5
+ import { Context, Data, Duration, Effect, Fiber, HashMap, Layer, Option, Ref } from "effect";
6
+ import { BranchParser } from "../lib/BranchParser.js";
7
+ import { AppRuntimeConfig } from "./AppRuntimeConfig.js";
8
+ import { MessengerAdapter } from "./MessengerAdapter/MessengerAdapter.js";
9
+ import { TaskTracker } from "./TaskTracker/TaskTracker.js";
10
+ /**
11
+ * @since 1.0.0
12
+ * @category errors
13
+ */
14
+ export class CommentTimerError extends /*#__PURE__*/Data.TaggedError("CommentTimerError") {}
15
+ /**
16
+ * @since 1.0.0
17
+ * @category context
18
+ */
19
+ export class CommentTimer extends /*#__PURE__*/Context.Tag("CommentTimer")() {}
20
+ /**
21
+ * @since 1.0.0
22
+ * @category layers
23
+ */
24
+ export const CommentTimerLive = /*#__PURE__*/Layer.effect(CommentTimer, /*#__PURE__*/Effect.gen(function* () {
25
+ const config = yield* AppRuntimeConfig;
26
+ const tracker = yield* TaskTracker;
27
+ const notifier = yield* MessengerAdapter;
28
+ const branchParser = yield* BranchParser;
29
+ const timersRef = yield* Ref.make(HashMap.empty());
30
+ const prKey = pr => `${pr.repo}#${pr.number}`;
31
+ const handleComment = (pr, comment) => Effect.gen(function* () {
32
+ const issueIdOption = branchParser.resolveIssueId(pr);
33
+ if (Option.isNone(issueIdOption)) {
34
+ yield* Effect.logWarning("No issue ID found in branch name").pipe(Effect.annotateLogs("service", "CommentTimer"), Effect.annotateLogs("branch", pr.headRef));
35
+ return;
36
+ }
37
+ const issueId = issueIdOption.value;
38
+ const key = prKey(pr);
39
+ const keyword = config.triggerKeyword;
40
+ if (comment.body.toLowerCase().includes(keyword.toLowerCase())) {
41
+ yield* tracker.moveToTodo(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to move issue to todo: ${err.message}`)), Effect.orElseSucceed(() => undefined));
42
+ yield* notifier.sendMessage(`🚨 <b>Keyword "${keyword}" detected</b>\nComment on <a href="${pr.html_url}">${pr.title}</a> — moved <code>${issueId}</code> to Todo`).pipe(Effect.tapError(err => Effect.logError(`Failed to send Telegram notification: ${err.message}`)), Effect.orElseSucceed(() => undefined));
43
+ return;
44
+ }
45
+ const existingTimers = yield* Ref.get(timersRef);
46
+ const existingFiber = HashMap.get(existingTimers, key);
47
+ if (Option.isSome(existingFiber)) {
48
+ yield* Fiber.interrupt(existingFiber.value);
49
+ }
50
+ const timerFiber = yield* Effect.sleep(Duration.seconds(config.timerDelaySeconds)).pipe(Effect.flatMap(() => Effect.gen(function* () {
51
+ yield* tracker.moveToTodo(issueId);
52
+ yield* notifier.sendMessage(`⏰ <b>Timer expired</b>\n<a href="${pr.html_url}">${pr.title}</a> — moved <code>${issueId}</code> to Todo`);
53
+ })), Effect.tapError(err => Effect.logError(`Timer fiber error: ${String(err)}`)), Effect.orElseSucceed(() => undefined), Effect.ensuring(Ref.update(timersRef, m => HashMap.remove(m, key))), Effect.fork);
54
+ yield* Ref.update(timersRef, m => HashMap.set(m, key, timerFiber));
55
+ }).pipe(Effect.mapError(err => new CommentTimerError({
56
+ message: `Failed to handle comment: ${String(err)}`,
57
+ cause: err
58
+ })));
59
+ const shutdown = Effect.gen(function* () {
60
+ const timers = yield* Ref.get(timersRef);
61
+ yield* Fiber.interruptAll(HashMap.values(timers));
62
+ yield* Ref.set(timersRef, HashMap.empty());
63
+ }).pipe(Effect.mapError(err => new CommentTimerError({
64
+ message: `Failed to shutdown: ${String(err)}`,
65
+ cause: err
66
+ })));
67
+ return CommentTimer.of({
68
+ handleComment,
69
+ shutdown
70
+ });
71
+ }));
72
+ //# sourceMappingURL=CommentTimer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentTimer.js","names":["Context","Data","Duration","Effect","Fiber","HashMap","Layer","Option","Ref","BranchParser","AppRuntimeConfig","MessengerAdapter","TaskTracker","CommentTimerError","TaggedError","CommentTimer","Tag","CommentTimerLive","effect","gen","config","tracker","notifier","branchParser","timersRef","make","empty","prKey","pr","repo","number","handleComment","comment","issueIdOption","resolveIssueId","isNone","logWarning","pipe","annotateLogs","headRef","issueId","value","key","keyword","triggerKeyword","body","toLowerCase","includes","moveToTodo","tapError","err","logError","message","orElseSucceed","undefined","sendMessage","html_url","title","existingTimers","get","existingFiber","isSome","interrupt","timerFiber","sleep","seconds","timerDelaySeconds","flatMap","String","ensuring","update","m","remove","fork","set","mapError","cause","shutdown","timers","interruptAll","values","of"],"sources":["../../../src/services/CommentTimer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * CredentialStore service backed by KeyValueStore
3
+ * @since 1.0.0
4
+ */
5
+ import { KeyValueStore } from "@effect/platform";
6
+ import { Context, Data, Effect, Layer, Option, Schema } from "effect";
7
+ import { Credentials } from "../schemas/CredentialSchemas.js";
8
+ const CREDENTIALS_KEY = "credentials";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category errors
12
+ */
13
+ export class CredentialStoreError extends /*#__PURE__*/Data.TaggedError("CredentialStoreError") {}
14
+ /**
15
+ * @since 1.0.0
16
+ * @category context
17
+ */
18
+ export class CredentialStore extends /*#__PURE__*/Context.Tag("CredentialStore")() {}
19
+ /**
20
+ * @since 1.0.0
21
+ * @category layers
22
+ */
23
+ export const CredentialStoreLive = /*#__PURE__*/Layer.effect(CredentialStore, /*#__PURE__*/Effect.gen(function* () {
24
+ const kv = yield* KeyValueStore.KeyValueStore;
25
+ const encode = Schema.encode(Schema.parseJson(Credentials));
26
+ const decode = Schema.decode(Schema.parseJson(Credentials));
27
+ const get = Effect.gen(function* () {
28
+ const raw = yield* kv.get(CREDENTIALS_KEY);
29
+ if (Option.isNone(raw)) {
30
+ return yield* new CredentialStoreError({
31
+ message: "No credentials stored",
32
+ cause: null
33
+ });
34
+ }
35
+ return yield* decode(raw.value);
36
+ }).pipe(Effect.mapError(err => err instanceof CredentialStoreError ? err : new CredentialStoreError({
37
+ message: `Failed to get credentials: ${String(err)}`,
38
+ cause: err
39
+ })));
40
+ const set = credentials => encode(credentials).pipe(Effect.flatMap(json => kv.set(CREDENTIALS_KEY, json)), Effect.mapError(err => new CredentialStoreError({
41
+ message: `Failed to set credentials: ${String(err)}`,
42
+ cause: err
43
+ })));
44
+ const has = kv.has(CREDENTIALS_KEY).pipe(Effect.mapError(err => new CredentialStoreError({
45
+ message: `Failed to check credentials: ${String(err)}`,
46
+ cause: err
47
+ })));
48
+ const clear = kv.remove(CREDENTIALS_KEY).pipe(Effect.mapError(err => new CredentialStoreError({
49
+ message: `Failed to clear credentials: ${String(err)}`,
50
+ cause: err
51
+ })));
52
+ return CredentialStore.of({
53
+ get,
54
+ set,
55
+ has,
56
+ clear
57
+ });
58
+ }));
59
+ //# sourceMappingURL=CredentialStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CredentialStore.js","names":["KeyValueStore","Context","Data","Effect","Layer","Option","Schema","Credentials","CREDENTIALS_KEY","CredentialStoreError","TaggedError","CredentialStore","Tag","CredentialStoreLive","effect","gen","kv","encode","parseJson","decode","get","raw","isNone","message","cause","value","pipe","mapError","err","String","set","credentials","flatMap","json","has","clear","remove","of"],"sources":["../../../src/services/CredentialStore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Watches .lalph/config/ files for token changes and maintains current tokens in Refs
3
+ * @since 1.0.0
4
+ */
5
+ import { FileSystem, Path } from "@effect/platform";
6
+ import { Context, Data, Effect, Layer, Ref, Schema, Stream } from "effect";
7
+ import { AppCredentials } from "../schemas/CredentialSchemas.js";
8
+ import { findLalphDirectory, LalphGithubToken, LalphLinearToken } from "./LalphConfigReader.js";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category errors
12
+ */
13
+ export class CredentialWatcherError extends /*#__PURE__*/Data.TaggedError("CredentialWatcherError") {}
14
+ /**
15
+ * @since 1.0.0
16
+ * @category context
17
+ */
18
+ export class CredentialWatcher extends /*#__PURE__*/Context.Tag("CredentialWatcher")() {}
19
+ const githubTokenFileName = /*#__PURE__*/encodeURIComponent("github.accessToken");
20
+ const linearTokenFileName = /*#__PURE__*/encodeURIComponent("linear.accessToken");
21
+ /**
22
+ * @since 1.0.0
23
+ * @category layers
24
+ */
25
+ export const CredentialWatcherLive = /*#__PURE__*/Layer.scoped(CredentialWatcher, /*#__PURE__*/Effect.gen(function* () {
26
+ const fs = yield* FileSystem.FileSystem;
27
+ const pathService = yield* Path.Path;
28
+ const creds = yield* AppCredentials;
29
+ const githubTokenRef = yield* Ref.make(creds.githubToken);
30
+ const initialLinearToken = creds.monitors.length > 0 ? creds.monitors[0].linearAccessToken : "";
31
+ const linearTokenRef = yield* Ref.make(initialLinearToken);
32
+ const lalphDir = yield* findLalphDirectory.pipe(Effect.mapError(err => new CredentialWatcherError({
33
+ message: `Failed to find lalph directory: ${err.message}`,
34
+ cause: err
35
+ })));
36
+ const configDir = pathService.join(lalphDir, ".lalph", "config");
37
+ const readAndDecodeToken = (fileName, schema) => Effect.gen(function* () {
38
+ const filePath = pathService.join(configDir, fileName);
39
+ const content = yield* fs.readFileString(filePath);
40
+ const json = yield* Effect.try({
41
+ try: () => JSON.parse(content),
42
+ catch: err => err
43
+ });
44
+ return yield* Schema.decodeUnknown(schema)(json);
45
+ });
46
+ yield* fs.watch(configDir).pipe(Stream.filter(event => event._tag === "Update"), Stream.mapEffect(event => {
47
+ const fileName = pathService.basename(event.path);
48
+ if (fileName === githubTokenFileName) {
49
+ return readAndDecodeToken(githubTokenFileName, LalphGithubToken).pipe(Effect.flatMap(decoded => Ref.set(githubTokenRef, decoded.token)), Effect.tapError(err => Effect.logWarning(`Failed to refresh GitHub token from file: ${String(err)}`)), Effect.orElseSucceed(() => undefined));
50
+ }
51
+ if (fileName === linearTokenFileName) {
52
+ return readAndDecodeToken(linearTokenFileName, LalphLinearToken).pipe(Effect.flatMap(decoded => Ref.set(linearTokenRef, decoded.token)), Effect.tapError(err => Effect.logWarning(`Failed to refresh Linear token from file: ${String(err)}`)), Effect.orElseSucceed(() => undefined));
53
+ }
54
+ return Effect.void;
55
+ }), Stream.runDrain, Effect.annotateLogs("service", "CredentialWatcher"), Effect.catchAll(err => Effect.logError(`Credential watcher stream ended: ${String(err)}`)), Effect.forkScoped);
56
+ return CredentialWatcher.of({
57
+ currentGithubToken: Ref.get(githubTokenRef).pipe(Effect.mapError(cause => new CredentialWatcherError({
58
+ message: "Failed to get GitHub token",
59
+ cause
60
+ }))),
61
+ currentLinearToken: Ref.get(linearTokenRef).pipe(Effect.mapError(cause => new CredentialWatcherError({
62
+ message: "Failed to get Linear token",
63
+ cause
64
+ })))
65
+ });
66
+ }));
67
+ //# sourceMappingURL=CredentialWatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CredentialWatcher.js","names":["FileSystem","Path","Context","Data","Effect","Layer","Ref","Schema","Stream","AppCredentials","findLalphDirectory","LalphGithubToken","LalphLinearToken","CredentialWatcherError","TaggedError","CredentialWatcher","Tag","githubTokenFileName","encodeURIComponent","linearTokenFileName","CredentialWatcherLive","scoped","gen","fs","pathService","creds","githubTokenRef","make","githubToken","initialLinearToken","monitors","length","linearAccessToken","linearTokenRef","lalphDir","pipe","mapError","err","message","cause","configDir","join","readAndDecodeToken","fileName","schema","filePath","content","readFileString","json","try","JSON","parse","catch","decodeUnknown","watch","filter","event","_tag","mapEffect","basename","path","flatMap","decoded","set","token","tapError","logWarning","String","orElseSucceed","undefined","void","runDrain","annotateLogs","catchAll","logError","forkScoped","of","currentGithubToken","get","currentLinearToken"],"sources":["../../../src/services/CredentialWatcher.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Provides current GitHub and Linear tokens, refreshing from .lalph/config/ file changes
3
+ * @since 1.0.0
4
+ */
5
+ import { Command, FileSystem, Path } from "@effect/platform";
6
+ import { Context, Data, Effect, Layer, Ref, Schema, Stream } from "effect";
7
+ import { Monitor } from "../schemas/CredentialSchemas.js";
8
+ import { findLalphDirectory, LalphGithubToken, LalphLinearToken, parseRepoFullName } from "./LalphConfigReader.js";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category errors
12
+ */
13
+ export class CredentialsError extends /*#__PURE__*/Data.TaggedError("CredentialsError") {}
14
+ /**
15
+ * @since 1.0.0
16
+ * @category context
17
+ */
18
+ export class Credentials extends /*#__PURE__*/Context.Tag("lalph-notifier/services/Credentials")() {}
19
+ const githubTokenFileName = /*#__PURE__*/encodeURIComponent("github.accessToken");
20
+ const linearTokenFileName = /*#__PURE__*/encodeURIComponent("linear.accessToken");
21
+ /**
22
+ * @since 1.0.0
23
+ * @category layers
24
+ */
25
+ export const CredentialsLive = /*#__PURE__*/Layer.scoped(Credentials, /*#__PURE__*/Effect.gen(function* () {
26
+ const fs = yield* FileSystem.FileSystem;
27
+ const pathService = yield* Path.Path;
28
+ const lalphDir = yield* findLalphDirectory.pipe(Effect.mapError(err => new CredentialsError({
29
+ message: `Failed to find lalph directory: ${err.message}`,
30
+ cause: err
31
+ })));
32
+ const configDir = pathService.join(lalphDir, ".lalph", "config");
33
+ const readFile = (key, schema) => Effect.gen(function* () {
34
+ const filePath = pathService.join(configDir, encodeURIComponent(key));
35
+ const content = yield* fs.readFileString(filePath).pipe(Effect.mapError(err => new CredentialsError({
36
+ message: `Failed to read config file: ${key}`,
37
+ cause: err
38
+ })));
39
+ const json = yield* Effect.try({
40
+ try: () => JSON.parse(content),
41
+ catch: err => new CredentialsError({
42
+ message: `Failed to parse JSON in config file: ${key}`,
43
+ cause: err
44
+ })
45
+ });
46
+ return yield* Schema.decodeUnknown(schema)(json).pipe(Effect.mapError(err => new CredentialsError({
47
+ message: `Failed to decode config file: ${key}`,
48
+ cause: err
49
+ })));
50
+ });
51
+ const readStringFile = key => Effect.gen(function* () {
52
+ const filePath = pathService.join(configDir, encodeURIComponent(key));
53
+ const content = yield* fs.readFileString(filePath).pipe(Effect.mapError(err => new CredentialsError({
54
+ message: `Failed to read config file: ${key}`,
55
+ cause: err
56
+ })));
57
+ return yield* Effect.try({
58
+ try: () => JSON.parse(content),
59
+ catch: err => new CredentialsError({
60
+ message: `Failed to parse JSON in config file: ${key}`,
61
+ cause: err
62
+ })
63
+ });
64
+ }).pipe(Effect.flatMap(Schema.decodeUnknown(Schema.String)), Effect.mapError(err => new CredentialsError({
65
+ message: `Failed to decode config file: ${key}`,
66
+ cause: err
67
+ })));
68
+ const githubTokenData = yield* readFile("github.accessToken", LalphGithubToken);
69
+ const issueSourceRaw = yield* readStringFile("settings.issueSource");
70
+ const issueSource = issueSourceRaw === "linear" ? "linear" : "github";
71
+ const linearAccessToken = issueSource === "linear" ? yield* readFile("linear.accessToken", LalphLinearToken).pipe(Effect.map(t => t.token)) : "";
72
+ const repoFullName = yield* Effect.gen(function* () {
73
+ const cmd = Command.make("git", "remote", "get-url", "origin").pipe(Command.workingDirectory(lalphDir));
74
+ const output = yield* Command.string(cmd).pipe(Effect.mapError(err => new CredentialsError({
75
+ message: "Failed to detect git remote origin URL",
76
+ cause: err
77
+ })));
78
+ return parseRepoFullName(output.trim());
79
+ });
80
+ const githubTokenRef = yield* Ref.make(githubTokenData.token);
81
+ const linearTokenRef = yield* Ref.make(linearAccessToken);
82
+ const monitors = [new Monitor({
83
+ id: repoFullName,
84
+ backend: issueSource,
85
+ linearAccessToken,
86
+ repos: [repoFullName]
87
+ })];
88
+ const readAndDecodeToken = (fileName, schema) => Effect.gen(function* () {
89
+ const filePath = pathService.join(configDir, fileName);
90
+ const content = yield* fs.readFileString(filePath);
91
+ const json = yield* Effect.try({
92
+ try: () => JSON.parse(content),
93
+ catch: err => err
94
+ });
95
+ return yield* Schema.decodeUnknown(schema)(json);
96
+ });
97
+ yield* fs.watch(configDir).pipe(Stream.filter(event => event._tag === "Update"), Stream.mapEffect(event => {
98
+ const fileName = pathService.basename(event.path);
99
+ if (fileName === githubTokenFileName) {
100
+ return readAndDecodeToken(githubTokenFileName, LalphGithubToken).pipe(Effect.flatMap(decoded => Ref.set(githubTokenRef, decoded.token)), Effect.tapError(err => Effect.logWarning(`Failed to refresh GitHub token from file: ${String(err)}`)), Effect.orElseSucceed(() => undefined));
101
+ }
102
+ if (fileName === linearTokenFileName) {
103
+ return readAndDecodeToken(linearTokenFileName, LalphLinearToken).pipe(Effect.flatMap(decoded => Ref.set(linearTokenRef, decoded.token)), Effect.tapError(err => Effect.logWarning(`Failed to refresh Linear token from file: ${String(err)}`)), Effect.orElseSucceed(() => undefined));
104
+ }
105
+ return Effect.void;
106
+ }), Stream.runDrain, Effect.annotateLogs("service", "Credentials"), Effect.catchAll(err => Effect.logError(`Credential watcher stream ended: ${String(err)}`)), Effect.forkScoped);
107
+ return Credentials.of({
108
+ githubToken: Ref.get(githubTokenRef).pipe(Effect.mapError(cause => new CredentialsError({
109
+ message: "Failed to get GitHub token",
110
+ cause
111
+ }))),
112
+ linearToken: Ref.get(linearTokenRef).pipe(Effect.mapError(cause => new CredentialsError({
113
+ message: "Failed to get Linear token",
114
+ cause
115
+ }))),
116
+ monitors,
117
+ issueSource,
118
+ repoFullName
119
+ });
120
+ }));
121
+ //# sourceMappingURL=Credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Credentials.js","names":["Command","FileSystem","Path","Context","Data","Effect","Layer","Ref","Schema","Stream","Monitor","findLalphDirectory","LalphGithubToken","LalphLinearToken","parseRepoFullName","CredentialsError","TaggedError","Credentials","Tag","githubTokenFileName","encodeURIComponent","linearTokenFileName","CredentialsLive","scoped","gen","fs","pathService","lalphDir","pipe","mapError","err","message","cause","configDir","join","readFile","key","schema","filePath","content","readFileString","json","try","JSON","parse","catch","decodeUnknown","readStringFile","flatMap","String","githubTokenData","issueSourceRaw","issueSource","linearAccessToken","map","t","token","repoFullName","cmd","make","workingDirectory","output","string","trim","githubTokenRef","linearTokenRef","monitors","id","backend","repos","readAndDecodeToken","fileName","watch","filter","event","_tag","mapEffect","basename","path","decoded","set","tapError","logWarning","orElseSucceed","undefined","void","runDrain","annotateLogs","catchAll","logError","forkScoped","of","githubToken","get","linearToken"],"sources":["../../../src/services/Credentials.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Event loop and layer construction for the notification service
3
+ * @since 1.0.0
4
+ */
5
+ import * as Machine from "@effect/experimental/Machine";
6
+ import { Console, Effect, Layer, Match, Option, Stream } from "effect";
7
+ import { BranchParser, BranchParserLive } from "../lib/BranchParser.js";
8
+ import { GitHubRepo } from "../schemas/GitHubSchemas.js";
9
+ import { AutoMerge, AutoMergeLive } from "./AutoMerge.js";
10
+ import { chatMachine, IDLE_KEYBOARD, PlanAnalysisReadyReq, PlanAwaitingInputReq, PlanCompletedReq, PlanFailedReq, PlanQuestionReceived, PlanSpecCreatedReq, PlanSpecUpdatedReq, PlanTextOutput, UserMessage } from "./ChatMachine.js";
11
+ import { CommentTimer, CommentTimerLive } from "./CommentTimer.js";
12
+ import { GitHubClient, GitHubClientLive } from "./GitHubClient.js";
13
+ import { LalphConfig, LalphConfigLive } from "./LalphConfig.js";
14
+ import { MessengerAdapter } from "./MessengerAdapter/MessengerAdapter.js";
15
+ import { TelegramAdapterLive } from "./MessengerAdapter/TelegramAdapter.js";
16
+ import { OctokitClientLive } from "./OctokitClient.js";
17
+ import { PlanOverviewUploaderMap } from "./PlanOverviewUploaderMap.js";
18
+ import { PlanSession, PlanSessionLive } from "./PlanSession.js";
19
+ import { ProjectStoreLive } from "./ProjectStore.js";
20
+ import { PullRequestTracker, PullRequestTrackerLive } from "./PullRequestTracker.js";
21
+ import { TaskTracker } from "./TaskTracker/TaskTracker.js";
22
+ import { TrackerLayerMap } from "./TrackerLayerMap.js";
23
+ // Re-export button labels from ChatMachine for backwards compatibility
24
+ export { ABORT_BUTTON_LABEL, APPROVE_BUTTON_LABEL, BUFFER_BUTTON_LABEL, BUG_BUTTON_LABEL, DISCARD_BUTTON_LABEL, FEATURE_BUTTON_LABEL, INTERRUPT_BUTTON_LABEL, NEW_PROJECT_BUTTON_LABEL, OTHER_BUTTON_LABEL, PLAN_BUTTON_LABEL, REFACTOR_BUTTON_LABEL } from "./ChatMachine.js";
25
+ // ── Layer composition (unchanged) ────────────────────────────────
26
+ const lalphConfigLayer = LalphConfigLive;
27
+ const octokitLayer = /*#__PURE__*/OctokitClientLive.pipe(/*#__PURE__*/Layer.provide(lalphConfigLayer));
28
+ const telegramAdapterLayer = TelegramAdapterLive;
29
+ const trackerLayerMapLayer = /*#__PURE__*/TrackerLayerMap.Default.pipe(/*#__PURE__*/Layer.provide(octokitLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
30
+ const taskTrackerLayer = /*#__PURE__*/Layer.unwrapEffect(Effect.gen(function* () {
31
+ const config = yield* LalphConfig;
32
+ return TrackerLayerMap.get(config.issueSource);
33
+ })).pipe(/*#__PURE__*/Layer.provide(trackerLayerMapLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
34
+ const servicesLayer = /*#__PURE__*/Layer.mergeAll(GitHubClientLive, telegramAdapterLayer, taskTrackerLayer).pipe(/*#__PURE__*/Layer.provide(octokitLayer));
35
+ const autoMergeLayer = /*#__PURE__*/AutoMergeLive.pipe(/*#__PURE__*/Layer.provide(servicesLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
36
+ const eventSourcesLayer = /*#__PURE__*/PullRequestTrackerLive.pipe(/*#__PURE__*/Layer.provide(servicesLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
37
+ const branchParserLayer = BranchParserLive;
38
+ const commentTimerLayer = /*#__PURE__*/CommentTimerLive.pipe(/*#__PURE__*/Layer.provide(servicesLayer), /*#__PURE__*/Layer.provide(branchParserLayer));
39
+ const planSessionLayer = /*#__PURE__*/PlanSessionLive.pipe(/*#__PURE__*/Layer.provide(lalphConfigLayer));
40
+ const projectStoreLayer = ProjectStoreLive;
41
+ const planOverviewUploaderMapLayer = /*#__PURE__*/PlanOverviewUploaderMap.Default.pipe(/*#__PURE__*/Layer.provide(octokitLayer));
42
+ const planOverviewUploaderLayer = /*#__PURE__*/Layer.unwrapEffect(Effect.gen(function* () {
43
+ const config = yield* LalphConfig;
44
+ return PlanOverviewUploaderMap.get(config.specUploader);
45
+ })).pipe(/*#__PURE__*/Layer.provide(planOverviewUploaderMapLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
46
+ /**
47
+ * The main layer providing all services for the event loop.
48
+ * Requires AppRuntimeConfig, TelegramConfigStore, and PlanCommandBuilder to be provided externally.
49
+ * @since 1.0.0
50
+ * @category layers
51
+ */
52
+ export const MainLayer = /*#__PURE__*/Layer.mergeAll(lalphConfigLayer, servicesLayer, eventSourcesLayer, autoMergeLayer, commentTimerLayer, branchParserLayer, planSessionLayer, octokitLayer, projectStoreLayer, planOverviewUploaderLayer);
53
+ // ── Event loop ───────────────────────────────────────────────────
54
+ /**
55
+ * The main event loop that boots the chat state machine, bridges streams,
56
+ * and dispatches external events (PR/task notifications).
57
+ * @since 1.0.0
58
+ * @category event-loop
59
+ */
60
+ export const runEventLoop = /*#__PURE__*/Effect.gen(function* () {
61
+ const pullRequestTracker = yield* PullRequestTracker;
62
+ const autoMerge = yield* AutoMerge;
63
+ const notifier = yield* MessengerAdapter;
64
+ const github = yield* GitHubClient;
65
+ const timer = yield* CommentTimer;
66
+ const taskTracker = yield* TaskTracker;
67
+ const branchParser = yield* BranchParser;
68
+ const planSession = yield* PlanSession;
69
+ // Boot the chat state machine
70
+ const actor = yield* Machine.boot(chatMachine);
71
+ // ── External event dispatch (unchanged) ──────────────────────
72
+ const dispatchEvent = event => Match.value(event).pipe(Match.tag("TaskCreated", e => notifier.sendMessage(`📋 <b>New task created</b>\n<a href="${e.issue.url}">${e.issue.title}</a>`)), Match.tag("TaskUpdated", e => notifier.sendMessage(`✏️ <b>Task moved to ${e.issue.state}</b>\n<a href="${e.issue.url}">${e.issue.title}</a>\n${e.previousState} → ${e.issue.state}`)), Match.tag("PROpened", e => notifier.sendMessage(`🔀 <b>New PR opened</b>\n<a href="${e.pr.html_url}">${e.pr.title}</a>`)), Match.tag("PRConflictDetected", e => Effect.gen(function* () {
73
+ yield* github.postComment(new GitHubRepo({
74
+ id: 0,
75
+ name: "",
76
+ full_name: e.pr.repo,
77
+ owner: {
78
+ login: ""
79
+ },
80
+ html_url: ""
81
+ }), e.pr.number, "This PR has merge conflicts that need to be resolved.");
82
+ const issueIdOption = branchParser.resolveIssueId(e.pr);
83
+ if (Option.isSome(issueIdOption)) {
84
+ const issueId = issueIdOption.value;
85
+ yield* taskTracker.moveToTodo(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to move to todo: ${err.message}`)), Effect.orElseSucceed(() => undefined));
86
+ yield* taskTracker.setPriorityUrgent(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to set priority: ${err.message}`)), Effect.orElseSucceed(() => undefined));
87
+ } else {
88
+ yield* Effect.logWarning("No issue ID found in branch name").pipe(Effect.annotateLogs("branch", e.pr.headRef));
89
+ }
90
+ yield* notifier.sendMessage(`⚠️ <b>Conflict detected</b>\n<a href="${e.pr.html_url}">${e.pr.title}</a>`);
91
+ })), Match.tag("PRCommentAdded", e => timer.handleComment(e.pr, e.comment).pipe(Effect.tapError(err => Effect.logError(`Comment timer error: ${err.message}`)), Effect.orElseSucceed(() => undefined))), Match.tag("PRAutoMerged", e => notifier.sendMessage(`✅ <b>PR auto-merged</b>\n<a href="${e.pr.html_url}">${e.pr.title}</a>`)), Match.tag("PRCIFailed", e => Effect.gen(function* () {
92
+ const issueIdOption = branchParser.resolveIssueId(e.pr);
93
+ if (Option.isSome(issueIdOption)) {
94
+ const issueId = issueIdOption.value;
95
+ yield* taskTracker.moveToTodo(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to move to todo: ${err.message}`)), Effect.orElseSucceed(() => undefined));
96
+ yield* taskTracker.setPriorityUrgent(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to set priority: ${err.message}`)), Effect.orElseSucceed(() => undefined));
97
+ } else {
98
+ yield* Effect.logWarning("No issue ID found in branch name").pipe(Effect.annotateLogs("branch", e.pr.headRef));
99
+ }
100
+ const failedCheckNames = e.failedChecks.map(c => c.name).join(", ");
101
+ yield* notifier.sendMessage(`❌ <b>CI failed</b>\n<a href="${e.pr.html_url}">${e.pr.title}</a>\nFailed checks: ${failedCheckNames}`);
102
+ })), Match.exhaustive);
103
+ // ── Stream bridges ───────────────────────────────────────────
104
+ // Telegram messages → UserMessage requests
105
+ const incomingMessageStream = notifier.incomingMessages.pipe(Stream.mapEffect(msg => actor.send(new UserMessage({
106
+ text: msg.text
107
+ })).pipe(Effect.catchAll(err => Effect.logError(`Incoming message error: ${String(err)}`)))));
108
+ // PlanSession events → Machine requests
109
+ const planEventStream = planSession.events.pipe(Stream.mapEffect(event => Match.value(event).pipe(Match.tag("PlanTextOutput", e => actor.send(new PlanTextOutput({
110
+ text: e.text
111
+ }))), Match.tag("PlanQuestion", e => actor.send(new PlanQuestionReceived({
112
+ questions: e.questions
113
+ }))), Match.tag("PlanSpecCreated", () => actor.send(new PlanSpecCreatedReq())), Match.tag("PlanSpecUpdated", () => actor.send(new PlanSpecUpdatedReq())), Match.tag("PlanAnalysisReady", () => actor.send(new PlanAnalysisReadyReq())), Match.tag("PlanAwaitingInput", () => actor.send(new PlanAwaitingInputReq())), Match.tag("PlanCompleted", () => actor.send(new PlanCompletedReq())), Match.tag("PlanFailed", e => actor.send(new PlanFailedReq({
114
+ message: e.message
115
+ }))), Match.exhaustive).pipe(Effect.catchAll(err => Effect.logError(`Plan event relay error: ${String(err)}`)))));
116
+ // ── External event streams ───────────────────────────────────
117
+ const mergedStream = Stream.merge(Stream.merge(pullRequestTracker.eventStream.pipe(Stream.map(e => e)), autoMerge.eventStream.pipe(Stream.map(e => e))), taskTracker.eventStream.pipe(Stream.map(e => e)));
118
+ yield* notifier.sendMessage({
119
+ text: "🚀 Notification service started.",
120
+ replyKeyboard: IDLE_KEYBOARD
121
+ });
122
+ yield* Console.log("🚀 Notification service started. Press Ctrl+C to stop.");
123
+ yield* Stream.merge(incomingMessageStream, planEventStream).pipe(Stream.runDrain, Effect.annotateLogs("service", "PlanSession"), Effect.catchAll(err => Effect.logError(`Plan stream error: ${String(err)}`)), Effect.forkDaemon);
124
+ yield* mergedStream.pipe(Stream.runForEach(event => dispatchEvent(event).pipe(Effect.catchAll(err => Effect.logError(`Event dispatch error: ${String(err)}`)))), Effect.ensuring(timer.shutdown.pipe(Effect.tapError(err => Effect.logError(`Shutdown error: ${err.message}`)), Effect.orElseSucceed(() => undefined))), Effect.annotateLogs("service", "EventLoop"), Effect.catchAll(err => Effect.logError(`Event loop error: ${String(err)}`)), Effect.forkDaemon);
125
+ // Block until interrupted — keeps the Machine scope alive for daemon fibers
126
+ yield* Effect.never;
127
+ }).pipe(Effect.scoped);
128
+ //# sourceMappingURL=EventLoop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventLoop.js","names":["Machine","Console","Effect","Layer","Match","Option","Stream","BranchParser","BranchParserLive","GitHubRepo","AutoMerge","AutoMergeLive","chatMachine","IDLE_KEYBOARD","PlanAnalysisReadyReq","PlanAwaitingInputReq","PlanCompletedReq","PlanFailedReq","PlanQuestionReceived","PlanSpecCreatedReq","PlanSpecUpdatedReq","PlanTextOutput","UserMessage","CommentTimer","CommentTimerLive","GitHubClient","GitHubClientLive","LalphConfig","LalphConfigLive","MessengerAdapter","TelegramAdapterLive","OctokitClientLive","PlanOverviewUploaderMap","PlanSession","PlanSessionLive","ProjectStoreLive","PullRequestTracker","PullRequestTrackerLive","TaskTracker","TrackerLayerMap","ABORT_BUTTON_LABEL","APPROVE_BUTTON_LABEL","BUFFER_BUTTON_LABEL","BUG_BUTTON_LABEL","DISCARD_BUTTON_LABEL","FEATURE_BUTTON_LABEL","INTERRUPT_BUTTON_LABEL","NEW_PROJECT_BUTTON_LABEL","OTHER_BUTTON_LABEL","PLAN_BUTTON_LABEL","REFACTOR_BUTTON_LABEL","lalphConfigLayer","octokitLayer","pipe","provide","telegramAdapterLayer","trackerLayerMapLayer","Default","taskTrackerLayer","unwrapEffect","gen","config","get","issueSource","servicesLayer","mergeAll","autoMergeLayer","eventSourcesLayer","branchParserLayer","commentTimerLayer","planSessionLayer","projectStoreLayer","planOverviewUploaderMapLayer","planOverviewUploaderLayer","specUploader","MainLayer","runEventLoop","pullRequestTracker","autoMerge","notifier","github","timer","taskTracker","branchParser","planSession","actor","boot","dispatchEvent","event","value","tag","e","sendMessage","issue","url","title","state","previousState","pr","html_url","postComment","id","name","full_name","repo","owner","login","number","issueIdOption","resolveIssueId","isSome","issueId","moveToTodo","tapError","err","logError","message","orElseSucceed","undefined","setPriorityUrgent","logWarning","annotateLogs","headRef","handleComment","comment","failedCheckNames","failedChecks","map","c","join","exhaustive","incomingMessageStream","incomingMessages","mapEffect","msg","send","text","catchAll","String","planEventStream","events","questions","mergedStream","merge","eventStream","replyKeyboard","log","runDrain","forkDaemon","runForEach","ensuring","shutdown","never","scoped"],"sources":["../../../src/services/EventLoop.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;AAIA,OAAO,KAAKA,OAAO,MAAM,8BAA8B;AACvD,SAASC,OAAO,EAAEC,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,MAAM,EAAEC,MAAM,QAAQ,QAAQ;AAEtE,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,wBAAwB;AACvE,SAASC,UAAU,QAAQ,6BAA6B;AACxD,SAASC,SAAS,EAAEC,aAAa,QAAQ,gBAAgB;AACzD,SACEC,WAAW,EACXC,aAAa,EACbC,oBAAoB,EACpBC,oBAAoB,EACpBC,gBAAgB,EAChBC,aAAa,EACbC,oBAAoB,EACpBC,kBAAkB,EAClBC,kBAAkB,EAClBC,cAAc,EACdC,WAAW,QACN,kBAAkB;AACzB,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,mBAAmB;AAClE,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,mBAAmB;AAClE,SAASC,WAAW,EAAEC,eAAe,QAAQ,kBAAkB;AAC/D,SAASC,gBAAgB,QAAQ,wCAAwC;AACzE,SAASC,mBAAmB,QAAQ,uCAAuC;AAC3E,SAASC,iBAAiB,QAAQ,oBAAoB;AACtD,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,WAAW,EAAEC,eAAe,QAAQ,kBAAkB;AAC/D,SAASC,gBAAgB,QAAQ,mBAAmB;AACpD,SAASC,kBAAkB,EAAEC,sBAAsB,QAAQ,yBAAyB;AACpF,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,eAAe,QAAQ,sBAAsB;AAEtD;AACA,SACEC,kBAAkB,EAClBC,oBAAoB,EACpBC,mBAAmB,EACnBC,gBAAgB,EAChBC,oBAAoB,EACpBC,oBAAoB,EACpBC,sBAAsB,EACtBC,wBAAwB,EACxBC,kBAAkB,EAClBC,iBAAiB,EACjBC,qBAAqB,QAChB,kBAAkB;AAEzB;AAEA,MAAMC,gBAAgB,GAAGvB,eAAe;AAExC,MAAMwB,YAAY,gBAAGrB,iBAAiB,CAACsB,IAAI,cACzClD,KAAK,CAACmD,OAAO,CAACH,gBAAgB,CAAC,CAChC;AAED,MAAMI,oBAAoB,GAAGzB,mBAAmB;AAEhD,MAAM0B,oBAAoB,gBAAGjB,eAAe,CAACkB,OAAO,CAACJ,IAAI,cACvDlD,KAAK,CAACmD,OAAO,CAACF,YAAY,CAAC,eAC3BjD,KAAK,CAACmD,OAAO,CAACH,gBAAgB,CAAC,CAChC;AAED,MAAMO,gBAAgB,gBAAGvD,KAAK,CAACwD,YAAY,CACzCzD,MAAM,CAAC0D,GAAG,CAAC,aAAS;EAClB,MAAMC,MAAM,GAAG,OAAOlC,WAAW;EACjC,OAAOY,eAAe,CAACuB,GAAG,CAACD,MAAM,CAACE,WAAW,CAAC;AAChD,CAAC,CAAC,CACH,CAACV,IAAI,cACJlD,KAAK,CAACmD,OAAO,CAACE,oBAAoB,CAAC,eACnCrD,KAAK,CAACmD,OAAO,CAACH,gBAAgB,CAAC,CAChC;AAED,MAAMa,aAAa,gBAAG7D,KAAK,CAAC8D,QAAQ,CAClCvC,gBAAgB,EAChB6B,oBAAoB,EACpBG,gBAAgB,CACjB,CAACL,IAAI,cACJlD,KAAK,CAACmD,OAAO,CAACF,YAAY,CAAC,CAC5B;AAED,MAAMc,cAAc,gBAAGvD,aAAa,CAAC0C,IAAI,cACvClD,KAAK,CAACmD,OAAO,CAACU,aAAa,CAAC,eAC5B7D,KAAK,CAACmD,OAAO,CAACH,gBAAgB,CAAC,CAChC;AAED,MAAMgB,iBAAiB,gBAAG9B,sBAAsB,CAACgB,IAAI,cACnDlD,KAAK,CAACmD,OAAO,CAACU,aAAa,CAAC,eAC5B7D,KAAK,CAACmD,OAAO,CAACH,gBAAgB,CAAC,CAChC;AAED,MAAMiB,iBAAiB,GAAG5D,gBAAgB;AAE1C,MAAM6D,iBAAiB,gBAAG7C,gBAAgB,CAAC6B,IAAI,cAC7ClD,KAAK,CAACmD,OAAO,CAACU,aAAa,CAAC,eAC5B7D,KAAK,CAACmD,OAAO,CAACc,iBAAiB,CAAC,CACjC;AAED,MAAME,gBAAgB,gBAAGpC,eAAe,CAACmB,IAAI,cAC3ClD,KAAK,CAACmD,OAAO,CAACH,gBAAgB,CAAC,CAChC;AAED,MAAMoB,iBAAiB,GAAGpC,gBAAgB;AAE1C,MAAMqC,4BAA4B,gBAAGxC,uBAAuB,CAACyB,OAAO,CAACJ,IAAI,cACvElD,KAAK,CAACmD,OAAO,CAACF,YAAY,CAAC,CAC5B;AAED,MAAMqB,yBAAyB,gBAAGtE,KAAK,CAACwD,YAAY,CAClDzD,MAAM,CAAC0D,GAAG,CAAC,aAAS;EAClB,MAAMC,MAAM,GAAG,OAAOlC,WAAW;EACjC,OAAOK,uBAAuB,CAAC8B,GAAG,CAACD,MAAM,CAACa,YAAY,CAAC;AACzD,CAAC,CAAC,CACH,CAACrB,IAAI,cACJlD,KAAK,CAACmD,OAAO,CAACkB,4BAA4B,CAAC,eAC3CrE,KAAK,CAACmD,OAAO,CAACH,gBAAgB,CAAC,CAChC;AAED;;;;;;AAMA,OAAO,MAAMwB,SAAS,gBAAGxE,KAAK,CAAC8D,QAAQ,CACrCd,gBAAgB,EAChBa,aAAa,EACbG,iBAAiB,EACjBD,cAAc,EACdG,iBAAiB,EACjBD,iBAAiB,EACjBE,gBAAgB,EAChBlB,YAAY,EACZmB,iBAAiB,EACjBE,yBAAyB,CAC1B;AAED;AAEA;;;;;;AAMA,OAAO,MAAMG,YAAY,gBAAG1E,MAAM,CAAC0D,GAAG,CAAC,aAAS;EAC9C,MAAMiB,kBAAkB,GAAG,OAAOzC,kBAAkB;EACpD,MAAM0C,SAAS,GAAG,OAAOpE,SAAS;EAClC,MAAMqE,QAAQ,GAAG,OAAOlD,gBAAgB;EACxC,MAAMmD,MAAM,GAAG,OAAOvD,YAAY;EAClC,MAAMwD,KAAK,GAAG,OAAO1D,YAAY;EACjC,MAAM2D,WAAW,GAAG,OAAO5C,WAAW;EACtC,MAAM6C,YAAY,GAAG,OAAO5E,YAAY;EACxC,MAAM6E,WAAW,GAAG,OAAOnD,WAAW;EAEtC;EACA,MAAMoD,KAAK,GAAG,OAAOrF,OAAO,CAACsF,IAAI,CAAC1E,WAAW,CAAC;EAE9C;EAEA,MAAM2E,aAAa,GAAIC,KAAe,IACpCpF,KAAK,CAACqF,KAAK,CAACD,KAAK,CAAC,CAACnC,IAAI,CACrBjD,KAAK,CAACsF,GAAG,CAAC,aAAa,EAAGC,CAAC,IACzBZ,QAAQ,CAACa,WAAW,CAAC,wCAAwCD,CAAC,CAACE,KAAK,CAACC,GAAG,KAAKH,CAAC,CAACE,KAAK,CAACE,KAAK,MAAM,CAAC,CAAC,EACpG3F,KAAK,CAACsF,GAAG,CAAC,aAAa,EAAGC,CAAC,IACzBZ,QAAQ,CAACa,WAAW,CAClB,uBAAuBD,CAAC,CAACE,KAAK,CAACG,KAAK,kBAAkBL,CAAC,CAACE,KAAK,CAACC,GAAG,KAAKH,CAAC,CAACE,KAAK,CAACE,KAAK,SAASJ,CAAC,CAACM,aAAa,MAAMN,CAAC,CAACE,KAAK,CAACG,KAAK,EAAE,CACjI,CAAC,EACJ5F,KAAK,CAACsF,GAAG,CAAC,UAAU,EAAGC,CAAC,IACtBZ,QAAQ,CAACa,WAAW,CAAC,qCAAqCD,CAAC,CAACO,EAAE,CAACC,QAAQ,KAAKR,CAAC,CAACO,EAAE,CAACH,KAAK,MAAM,CAAC,CAAC,EAChG3F,KAAK,CAACsF,GAAG,CAAC,oBAAoB,EAAGC,CAAC,IAChCzF,MAAM,CAAC0D,GAAG,CAAC,aAAS;IAClB,OAAOoB,MAAM,CAACoB,WAAW,CACvB,IAAI3F,UAAU,CAAC;MACb4F,EAAE,EAAE,CAAC;MACLC,IAAI,EAAE,EAAE;MACRC,SAAS,EAAEZ,CAAC,CAACO,EAAE,CAACM,IAAI;MACpBC,KAAK,EAAE;QAAEC,KAAK,EAAE;MAAE,CAAE;MACpBP,QAAQ,EAAE;KACX,CAAC,EACFR,CAAC,CAACO,EAAE,CAACS,MAAM,EACX,uDAAuD,CACxD;IACD,MAAMC,aAAa,GAAGzB,YAAY,CAAC0B,cAAc,CAAClB,CAAC,CAACO,EAAE,CAAC;IACvD,IAAI7F,MAAM,CAACyG,MAAM,CAACF,aAAa,CAAC,EAAE;MAChC,MAAMG,OAAO,GAAGH,aAAa,CAACnB,KAAK;MACnC,OAAOP,WAAW,CAAC8B,UAAU,CAACD,OAAO,CAAC,CAAC1D,IAAI,CACzCnD,MAAM,CAAC+G,QAAQ,CAAEC,GAAG,IAClBhH,MAAM,CAACiH,QAAQ,CAAC,2BAA2BD,GAAG,CAACE,OAAO,EAAE,CAAC,CAC1D,EACDlH,MAAM,CAACmH,aAAa,CAAC,MACnBC,SAAS,CACV,CACF;MACD,OAAOpC,WAAW,CAACqC,iBAAiB,CAACR,OAAO,CAAC,CAAC1D,IAAI,CAChDnD,MAAM,CAAC+G,QAAQ,CAAEC,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,2BAA2BD,GAAG,CAACE,OAAO,EAAE,CAAC,CAAC,EACnFlH,MAAM,CAACmH,aAAa,CAAC,MAAMC,SAAS,CAAC,CACtC;IACH,CAAC,MAAM;MACL,OAAOpH,MAAM,CAACsH,UAAU,CAAC,kCAAkC,CAAC,CAACnE,IAAI,CAC/DnD,MAAM,CAACuH,YAAY,CAAC,QAAQ,EAAE9B,CAAC,CAACO,EAAE,CAACwB,OAAO,CAAC,CAC5C;IACH;IACA,OAAO3C,QAAQ,CAACa,WAAW,CACzB,yCAAyCD,CAAC,CAACO,EAAE,CAACC,QAAQ,KAAKR,CAAC,CAACO,EAAE,CAACH,KAAK,MAAM,CAC5E;EACH,CAAC,CAAC,CAAC,EACL3F,KAAK,CAACsF,GAAG,CAAC,gBAAgB,EAAGC,CAAC,IAC5BV,KAAK,CAAC0C,aAAa,CAAChC,CAAC,CAACO,EAAE,EAAEP,CAAC,CAACiC,OAAO,CAAC,CAACvE,IAAI,CACvCnD,MAAM,CAAC+G,QAAQ,CAAEC,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,wBAAwBD,GAAG,CAACE,OAAO,EAAE,CAAC,CAAC,EAChFlH,MAAM,CAACmH,aAAa,CAAC,MAAMC,SAAS,CAAC,CACtC,CAAC,EACJlH,KAAK,CAACsF,GAAG,CAAC,cAAc,EAAGC,CAAC,IAC1BZ,QAAQ,CAACa,WAAW,CAClB,qCAAqCD,CAAC,CAACO,EAAE,CAACC,QAAQ,KAAKR,CAAC,CAACO,EAAE,CAACH,KAAK,MAAM,CACxE,CAAC,EACJ3F,KAAK,CAACsF,GAAG,CAAC,YAAY,EAAGC,CAAC,IACxBzF,MAAM,CAAC0D,GAAG,CAAC,aAAS;IAClB,MAAMgD,aAAa,GAAGzB,YAAY,CAAC0B,cAAc,CAAClB,CAAC,CAACO,EAAE,CAAC;IACvD,IAAI7F,MAAM,CAACyG,MAAM,CAACF,aAAa,CAAC,EAAE;MAChC,MAAMG,OAAO,GAAGH,aAAa,CAACnB,KAAK;MACnC,OAAOP,WAAW,CAAC8B,UAAU,CAACD,OAAO,CAAC,CAAC1D,IAAI,CACzCnD,MAAM,CAAC+G,QAAQ,CAAEC,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,2BAA2BD,GAAG,CAACE,OAAO,EAAE,CAAC,CAAC,EACnFlH,MAAM,CAACmH,aAAa,CAAC,MAAMC,SAAS,CAAC,CACtC;MACD,OAAOpC,WAAW,CAACqC,iBAAiB,CAACR,OAAO,CAAC,CAAC1D,IAAI,CAChDnD,MAAM,CAAC+G,QAAQ,CAAEC,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,2BAA2BD,GAAG,CAACE,OAAO,EAAE,CAAC,CAAC,EACnFlH,MAAM,CAACmH,aAAa,CAAC,MAAMC,SAAS,CAAC,CACtC;IACH,CAAC,MAAM;MACL,OAAOpH,MAAM,CAACsH,UAAU,CAAC,kCAAkC,CAAC,CAACnE,IAAI,CAC/DnD,MAAM,CAACuH,YAAY,CAAC,QAAQ,EAAE9B,CAAC,CAACO,EAAE,CAACwB,OAAO,CAAC,CAC5C;IACH;IACA,MAAMG,gBAAgB,GAAGlC,CAAC,CAACmC,YAAY,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC1B,IAAI,CAAC,CAAC2B,IAAI,CAAC,IAAI,CAAC;IACrE,OAAOlD,QAAQ,CAACa,WAAW,CACzB,gCAAgCD,CAAC,CAACO,EAAE,CAACC,QAAQ,KAAKR,CAAC,CAACO,EAAE,CAACH,KAAK,wBAAwB8B,gBAAgB,EAAE,CACvG;EACH,CAAC,CAAC,CAAC,EACLzH,KAAK,CAAC8H,UAAU,CACjB;EAEH;EAEA;EACA,MAAMC,qBAAqB,GAAGpD,QAAQ,CAACqD,gBAAgB,CAAC/E,IAAI,CAC1D/C,MAAM,CAAC+H,SAAS,CAAEC,GAAG,IACnBjD,KAAK,CAACkD,IAAI,CAAC,IAAIjH,WAAW,CAAC;IAAEkH,IAAI,EAAEF,GAAG,CAACE;EAAI,CAAE,CAAC,CAAC,CAACnF,IAAI,CAClDnD,MAAM,CAACuI,QAAQ,CAAEvB,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,2BAA2BuB,MAAM,CAACxB,GAAG,CAAC,EAAE,CAAC,CAAC,CACpF,CACF,CACF;EAED;EACA,MAAMyB,eAAe,GAAGvD,WAAW,CAACwD,MAAM,CAACvF,IAAI,CAC7C/C,MAAM,CAAC+H,SAAS,CAAE7C,KAAK,IACrBpF,KAAK,CAACqF,KAAK,CAACD,KAAK,CAAC,CAACnC,IAAI,CACrBjD,KAAK,CAACsF,GAAG,CAAC,gBAAgB,EAAGC,CAAC,IAAKN,KAAK,CAACkD,IAAI,CAAC,IAAIlH,cAAc,CAAC;IAAEmH,IAAI,EAAE7C,CAAC,CAAC6C;EAAI,CAAE,CAAC,CAAC,CAAC,EACpFpI,KAAK,CAACsF,GAAG,CAAC,cAAc,EAAGC,CAAC,IAAKN,KAAK,CAACkD,IAAI,CAAC,IAAIrH,oBAAoB,CAAC;IAAE2H,SAAS,EAAElD,CAAC,CAACkD;EAAS,CAAE,CAAC,CAAC,CAAC,EAClGzI,KAAK,CAACsF,GAAG,CAAC,iBAAiB,EAAE,MAAML,KAAK,CAACkD,IAAI,CAAC,IAAIpH,kBAAkB,EAAE,CAAC,CAAC,EACxEf,KAAK,CAACsF,GAAG,CAAC,iBAAiB,EAAE,MAAML,KAAK,CAACkD,IAAI,CAAC,IAAInH,kBAAkB,EAAE,CAAC,CAAC,EACxEhB,KAAK,CAACsF,GAAG,CAAC,mBAAmB,EAAE,MAAML,KAAK,CAACkD,IAAI,CAAC,IAAIzH,oBAAoB,EAAE,CAAC,CAAC,EAC5EV,KAAK,CAACsF,GAAG,CAAC,mBAAmB,EAAE,MAAML,KAAK,CAACkD,IAAI,CAAC,IAAIxH,oBAAoB,EAAE,CAAC,CAAC,EAC5EX,KAAK,CAACsF,GAAG,CAAC,eAAe,EAAE,MAAML,KAAK,CAACkD,IAAI,CAAC,IAAIvH,gBAAgB,EAAE,CAAC,CAAC,EACpEZ,KAAK,CAACsF,GAAG,CAAC,YAAY,EAAGC,CAAC,IAAKN,KAAK,CAACkD,IAAI,CAAC,IAAItH,aAAa,CAAC;IAAEmG,OAAO,EAAEzB,CAAC,CAACyB;EAAO,CAAE,CAAC,CAAC,CAAC,EACrFhH,KAAK,CAAC8H,UAAU,CACjB,CAAC7E,IAAI,CACJnD,MAAM,CAACuI,QAAQ,CAAEvB,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,2BAA2BuB,MAAM,CAACxB,GAAG,CAAC,EAAE,CAAC,CAAC,CACpF,CACF,CACF;EAED;EAEA,MAAM4B,YAAY,GAAGxI,MAAM,CAACyI,KAAK,CAC/BzI,MAAM,CAACyI,KAAK,CACVlE,kBAAkB,CAACmE,WAAW,CAAC3F,IAAI,CAAC/C,MAAM,CAACyH,GAAG,CAAEpC,CAAC,IAAeA,CAAC,CAAC,CAAC,EACnEb,SAAS,CAACkE,WAAW,CAAC3F,IAAI,CAAC/C,MAAM,CAACyH,GAAG,CAAEpC,CAAC,IAAeA,CAAC,CAAC,CAAC,CAC3D,EACDT,WAAW,CAAC8D,WAAW,CAAC3F,IAAI,CAAC/C,MAAM,CAACyH,GAAG,CAAEpC,CAAC,IAAeA,CAAC,CAAC,CAAC,CAC7D;EAED,OAAOZ,QAAQ,CAACa,WAAW,CAAC;IAC1B4C,IAAI,EAAE,kCAAkC;IACxCS,aAAa,EAAEpI;GAChB,CAAC;EACF,OAAOZ,OAAO,CAACiJ,GAAG,CAAC,wDAAwD,CAAC;EAE5E,OAAO5I,MAAM,CAACyI,KAAK,CACjBZ,qBAAqB,EACrBQ,eAAe,CAChB,CAACtF,IAAI,CACJ/C,MAAM,CAAC6I,QAAQ,EACfjJ,MAAM,CAACuH,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,EAC7CvH,MAAM,CAACuI,QAAQ,CAAEvB,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,sBAAsBuB,MAAM,CAACxB,GAAG,CAAC,EAAE,CAAC,CAAC,EAC9EhH,MAAM,CAACkJ,UAAU,CAClB;EAED,OAAON,YAAY,CAACzF,IAAI,CACtB/C,MAAM,CAAC+I,UAAU,CAAE7D,KAAK,IACtBD,aAAa,CAACC,KAAK,CAAC,CAACnC,IAAI,CACvBnD,MAAM,CAACuI,QAAQ,CAAEvB,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,yBAAyBuB,MAAM,CAACxB,GAAG,CAAC,EAAE,CAAC,CAAC,CAClF,CACF,EACDhH,MAAM,CAACoJ,QAAQ,CACbrE,KAAK,CAACsE,QAAQ,CAAClG,IAAI,CACjBnD,MAAM,CAAC+G,QAAQ,CAAEC,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,mBAAmBD,GAAG,CAACE,OAAO,EAAE,CAAC,CAAC,EAC3ElH,MAAM,CAACmH,aAAa,CAAC,MAAMC,SAAS,CAAC,CACtC,CACF,EACDpH,MAAM,CAACuH,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,EAC3CvH,MAAM,CAACuI,QAAQ,CAAEvB,GAAG,IAAKhH,MAAM,CAACiH,QAAQ,CAAC,qBAAqBuB,MAAM,CAACxB,GAAG,CAAC,EAAE,CAAC,CAAC,EAC7EhH,MAAM,CAACkJ,UAAU,CAClB;EAED;EACA,OAAOlJ,MAAM,CAACsJ,KAAK;AACrB,CAAC,CAAC,CAACnG,IAAI,CAACnD,MAAM,CAACuJ,MAAM,CAAC","ignoreList":[]}