@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,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TelegramConfigSchema = exports.TelegramConfigLive = exports.TelegramConfigError = exports.TelegramConfig = void 0;
7
+ var _platform = require("@effect/platform");
8
+ var _effect = require("effect");
9
+ var _AppContext = require("./AppContext.js");
10
+ /**
11
+ * Telegram config persistence service following lalph TokenManager pattern
12
+ * @since 1.0.0
13
+ */
14
+
15
+ /**
16
+ * @since 1.0.0
17
+ * @category schemas
18
+ */
19
+ class TelegramConfigSchema extends /*#__PURE__*/_effect.Schema.Class("TelegramConfigSchema")({
20
+ botToken: _effect.Schema.String,
21
+ chatId: /*#__PURE__*/_effect.Schema.NullOr(_effect.Schema.String)
22
+ }) {}
23
+ /**
24
+ * @since 1.0.0
25
+ * @category errors
26
+ */
27
+ exports.TelegramConfigSchema = TelegramConfigSchema;
28
+ class TelegramConfigError extends /*#__PURE__*/_effect.Data.TaggedError("TelegramConfigError") {}
29
+ /**
30
+ * @since 1.0.0
31
+ * @category context
32
+ */
33
+ exports.TelegramConfigError = TelegramConfigError;
34
+ class TelegramConfig extends /*#__PURE__*/_effect.Context.Tag("TelegramConfig")() {}
35
+ /**
36
+ * @since 1.0.0
37
+ * @category layers
38
+ */
39
+ exports.TelegramConfig = TelegramConfig;
40
+ const TelegramConfigLive = exports.TelegramConfigLive = /*#__PURE__*/_effect.Layer.effect(TelegramConfig, /*#__PURE__*/_effect.Effect.gen(function* () {
41
+ const fs = yield* _platform.FileSystem.FileSystem;
42
+ const pathService = yield* _platform.Path.Path;
43
+ const appContext = yield* _AppContext.AppContext;
44
+ const filePath = pathService.join(appContext.configDir, encodeURIComponent("notify.telegram"));
45
+ let currentConfig = null;
46
+ const get = _effect.Effect.gen(function* () {
47
+ if (currentConfig !== null) return _effect.Option.some(currentConfig);
48
+ const content = yield* fs.readFileString(filePath).pipe(_effect.Effect.mapError(err => new TelegramConfigError({
49
+ message: "Failed to read telegram config",
50
+ cause: err
51
+ })));
52
+ const json = yield* _effect.Effect.try({
53
+ try: () => JSON.parse(content),
54
+ catch: err => new TelegramConfigError({
55
+ message: "Failed to parse telegram config",
56
+ cause: err
57
+ })
58
+ });
59
+ const config = yield* _effect.Schema.decodeUnknown(TelegramConfigSchema)(json).pipe(_effect.Effect.mapError(err => new TelegramConfigError({
60
+ message: "Failed to decode telegram config",
61
+ cause: err
62
+ })));
63
+ currentConfig = config;
64
+ return _effect.Option.some(config);
65
+ }).pipe(_effect.Effect.catchTag("TelegramConfigError", err => _effect.Effect.logWarning(`No stored Telegram config: ${err.message}`).pipe(_effect.Effect.map(() => _effect.Option.none()))));
66
+ const set = config => _effect.Effect.gen(function* () {
67
+ yield* fs.writeFileString(filePath, JSON.stringify({
68
+ botToken: config.botToken,
69
+ chatId: config.chatId
70
+ })).pipe(_effect.Effect.mapError(err => new TelegramConfigError({
71
+ message: "Failed to write telegram config",
72
+ cause: err
73
+ })));
74
+ currentConfig = config;
75
+ });
76
+ return TelegramConfig.of({
77
+ get,
78
+ set
79
+ });
80
+ }));
81
+ //# sourceMappingURL=TelegramConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelegramConfig.js","names":["_platform","require","_effect","_AppContext","TelegramConfigSchema","Schema","Class","botToken","String","chatId","NullOr","exports","TelegramConfigError","Data","TaggedError","TelegramConfig","Context","Tag","TelegramConfigLive","Layer","effect","Effect","gen","fs","FileSystem","pathService","Path","appContext","AppContext","filePath","join","configDir","encodeURIComponent","currentConfig","get","Option","some","content","readFileString","pipe","mapError","err","message","cause","json","try","JSON","parse","catch","config","decodeUnknown","catchTag","logWarning","map","none","set","writeFileString","stringify","of"],"sources":["../../../src/services/TelegramConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TelegramConfigStoreLive = exports.TelegramConfigStoreError = exports.TelegramConfigStore = exports.TelegramConfig = void 0;
7
+ var _platform = require("@effect/platform");
8
+ var _effect = require("effect");
9
+ var _LalphConfigReader = require("./LalphConfigReader.js");
10
+ /**
11
+ * Telegram config persistence service following lalph TokenManager pattern
12
+ * @since 1.0.0
13
+ */
14
+
15
+ /**
16
+ * @since 1.0.0
17
+ * @category schemas
18
+ */
19
+ class TelegramConfig extends /*#__PURE__*/_effect.Schema.Class("TelegramConfig")({
20
+ botToken: _effect.Schema.String,
21
+ chatId: /*#__PURE__*/_effect.Schema.NullOr(_effect.Schema.String)
22
+ }) {}
23
+ /**
24
+ * @since 1.0.0
25
+ * @category errors
26
+ */
27
+ exports.TelegramConfig = TelegramConfig;
28
+ class TelegramConfigStoreError extends /*#__PURE__*/_effect.Data.TaggedError("TelegramConfigStoreError") {}
29
+ /**
30
+ * @since 1.0.0
31
+ * @category context
32
+ */
33
+ exports.TelegramConfigStoreError = TelegramConfigStoreError;
34
+ class TelegramConfigStore extends /*#__PURE__*/_effect.Context.Tag("TelegramConfigStore")() {}
35
+ /**
36
+ * @since 1.0.0
37
+ * @category layers
38
+ */
39
+ exports.TelegramConfigStore = TelegramConfigStore;
40
+ const TelegramConfigStoreLive = exports.TelegramConfigStoreLive = /*#__PURE__*/_effect.Layer.effect(TelegramConfigStore, /*#__PURE__*/_effect.Effect.gen(function* () {
41
+ const fs = yield* _platform.FileSystem.FileSystem;
42
+ const pathService = yield* _platform.Path.Path;
43
+ const lalphDir = yield* _LalphConfigReader.findLalphDirectory;
44
+ const filePath = pathService.join(lalphDir, ".lalph", "config", encodeURIComponent("notify.telegram"));
45
+ let currentConfig = null;
46
+ const get = _effect.Effect.gen(function* () {
47
+ if (currentConfig !== null) return _effect.Option.some(currentConfig);
48
+ const content = yield* fs.readFileString(filePath).pipe(_effect.Effect.mapError(err => new TelegramConfigStoreError({
49
+ message: "Failed to read telegram config",
50
+ cause: err
51
+ })));
52
+ const json = yield* _effect.Effect.try({
53
+ try: () => JSON.parse(content),
54
+ catch: err => new TelegramConfigStoreError({
55
+ message: "Failed to parse telegram config",
56
+ cause: err
57
+ })
58
+ });
59
+ const config = yield* _effect.Schema.decodeUnknown(TelegramConfig)(json).pipe(_effect.Effect.mapError(err => new TelegramConfigStoreError({
60
+ message: "Failed to decode telegram config",
61
+ cause: err
62
+ })));
63
+ currentConfig = config;
64
+ return _effect.Option.some(config);
65
+ }).pipe(_effect.Effect.catchTag("TelegramConfigStoreError", err => _effect.Effect.logWarning(`No stored Telegram config: ${err.message}`).pipe(_effect.Effect.map(() => _effect.Option.none()))));
66
+ const set = config => _effect.Effect.gen(function* () {
67
+ yield* fs.writeFileString(filePath, JSON.stringify({
68
+ botToken: config.botToken,
69
+ chatId: config.chatId
70
+ })).pipe(_effect.Effect.mapError(err => new TelegramConfigStoreError({
71
+ message: "Failed to write telegram config",
72
+ cause: err
73
+ })));
74
+ currentConfig = config;
75
+ });
76
+ return TelegramConfigStore.of({
77
+ get,
78
+ set
79
+ });
80
+ }));
81
+ //# sourceMappingURL=TelegramConfigStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelegramConfigStore.js","names":["_platform","require","_effect","_LalphConfigReader","TelegramConfig","Schema","Class","botToken","String","chatId","NullOr","exports","TelegramConfigStoreError","Data","TaggedError","TelegramConfigStore","Context","Tag","TelegramConfigStoreLive","Layer","effect","Effect","gen","fs","FileSystem","pathService","Path","lalphDir","findLalphDirectory","filePath","join","encodeURIComponent","currentConfig","get","Option","some","content","readFileString","pipe","mapError","err","message","cause","json","try","JSON","parse","catch","config","decodeUnknown","catchTag","logWarning","map","none","set","writeFileString","stringify","of"],"sources":["../../../src/services/TelegramConfigStore.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AANA;;;;;AAQA;;;;AAIM,MAAOG,cAAe,sBAAQC,cAAM,CAACC,KAAK,CAAiB,gBAAgB,CAAC,CAAC;EACjFC,QAAQ,EAAEF,cAAM,CAACG,MAAM;EACvBC,MAAM,eAAEJ,cAAM,CAACK,MAAM,CAACL,cAAM,CAACG,MAAM;CACpC,CAAC;AAEF;;;;AAAAG,OAAA,CAAAP,cAAA,GAAAA,cAAA;AAIM,MAAOQ,wBAAyB,sBAAQC,YAAI,CAACC,WAAW,CAAC,0BAA0B,CAGvF;AAWF;;;;AAAAH,OAAA,CAAAC,wBAAA,GAAAA,wBAAA;AAIM,MAAOG,mBAAoB,sBAAQC,eAAO,CAACC,GAAG,CAAC,qBAAqB,CAAC,EAGxE;AAEH;;;;AAAAN,OAAA,CAAAI,mBAAA,GAAAA,mBAAA;AAIO,MAAMG,uBAAuB,GAAAP,OAAA,CAAAO,uBAAA,gBAAGC,aAAK,CAACC,MAAM,CACjDL,mBAAmB,eACnBM,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,EAAE,GAAG,OAAOC,oBAAU,CAACA,UAAU;EACvC,MAAMC,WAAW,GAAG,OAAOC,cAAI,CAACA,IAAI;EACpC,MAAMC,QAAQ,GAAG,OAAOC,qCAAkB;EAE1C,MAAMC,QAAQ,GAAGJ,WAAW,CAACK,IAAI,CAACH,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAEI,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;EAEtG,IAAIC,aAAa,GAA0B,IAAI;EAE/C,MAAMC,GAAG,GAAGZ,cAAM,CAACC,GAAG,CAAC,aAAS;IAC9B,IAAIU,aAAa,KAAK,IAAI,EAAE,OAAOE,cAAM,CAACC,IAAI,CAACH,aAAa,CAAC;IAE7D,MAAMI,OAAO,GAAG,OAAOb,EAAE,CAACc,cAAc,CAACR,QAAQ,CAAC,CAACS,IAAI,CACrDjB,cAAM,CAACkB,QAAQ,CAAEC,GAAG,IAClB,IAAI5B,wBAAwB,CAAC;MAC3B6B,OAAO,EAAE,gCAAgC;MACzCC,KAAK,EAAEF;KACR,CAAC,CACH,CACF;IACD,MAAMG,IAAI,GAAG,OAAOtB,cAAM,CAACuB,GAAG,CAAC;MAC7BA,GAAG,EAAEA,CAAA,KAAMC,IAAI,CAACC,KAAK,CAACV,OAAO,CAAC;MAC9BW,KAAK,EAAGP,GAAG,IACT,IAAI5B,wBAAwB,CAAC;QAC3B6B,OAAO,EAAE,iCAAiC;QAC1CC,KAAK,EAAEF;OACR;KACJ,CAAC;IACF,MAAMQ,MAAM,GAAG,OAAO3C,cAAM,CAAC4C,aAAa,CAAC7C,cAAc,CAAC,CAACuC,IAAI,CAAC,CAACL,IAAI,CACnEjB,cAAM,CAACkB,QAAQ,CAAEC,GAAG,IAClB,IAAI5B,wBAAwB,CAAC;MAC3B6B,OAAO,EAAE,kCAAkC;MAC3CC,KAAK,EAAEF;KACR,CAAC,CACH,CACF;IACDR,aAAa,GAAGgB,MAAM;IACtB,OAAOd,cAAM,CAACC,IAAI,CAACa,MAAM,CAAC;EAC5B,CAAC,CAAC,CAACV,IAAI,CACLjB,cAAM,CAAC6B,QAAQ,CACb,0BAA0B,EACzBV,GAAG,IACFnB,cAAM,CAAC8B,UAAU,CAAC,8BAA8BX,GAAG,CAACC,OAAO,EAAE,CAAC,CAACH,IAAI,CACjEjB,cAAM,CAAC+B,GAAG,CAAC,MAAMlB,cAAM,CAACmB,IAAI,EAAkB,CAAC,CAChD,CACJ,CACF;EAED,MAAMC,GAAG,GAAIN,MAAsB,IACjC3B,cAAM,CAACC,GAAG,CAAC,aAAS;IAClB,OAAOC,EAAE,CAACgC,eAAe,CACvB1B,QAAQ,EACRgB,IAAI,CAACW,SAAS,CAAC;MACbjD,QAAQ,EAAEyC,MAAM,CAACzC,QAAQ;MACzBE,MAAM,EAAEuC,MAAM,CAACvC;KAChB,CAAC,CACH,CAAC6B,IAAI,CACJjB,cAAM,CAACkB,QAAQ,CAAEC,GAAG,IAClB,IAAI5B,wBAAwB,CAAC;MAC3B6B,OAAO,EAAE,iCAAiC;MAC1CC,KAAK,EAAEF;KACR,CAAC,CACH,CACF;IACDR,aAAa,GAAGgB,MAAM;EACxB,CAAC,CAAC;EAEJ,OAAOjC,mBAAmB,CAAC0C,EAAE,CAAC;IAAExB,GAAG;IAAEqB;EAAG,CAAE,CAAC;AAC7C,CAAC,CAAC,CACH","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TelegramNotifierLive = exports.TelegramNotifierError = exports.TelegramNotifier = void 0;
7
+ var _platform = require("@effect/platform");
8
+ var _effect = require("effect");
9
+ var _CredentialSchemas = require("../schemas/CredentialSchemas.js");
10
+ /**
11
+ * Telegram Bot API notifier service
12
+ * @since 1.0.0
13
+ */
14
+
15
+ // --- Internal schemas for Telegram API responses ---
16
+ /**
17
+ * @since 1.0.0
18
+ * @category errors
19
+ */
20
+ class TelegramNotifierError extends /*#__PURE__*/_effect.Data.TaggedError("TelegramNotifierError") {}
21
+ /**
22
+ * @since 1.0.0
23
+ * @category context
24
+ */
25
+ exports.TelegramNotifierError = TelegramNotifierError;
26
+ class TelegramNotifier extends /*#__PURE__*/_effect.Context.Tag("TelegramNotifier")() {}
27
+ /**
28
+ * @since 1.0.0
29
+ * @category layers
30
+ */
31
+ exports.TelegramNotifier = TelegramNotifier;
32
+ const TelegramNotifierLive = exports.TelegramNotifierLive = /*#__PURE__*/_effect.Layer.effect(TelegramNotifier, /*#__PURE__*/_effect.Effect.gen(function* () {
33
+ const creds = yield* _CredentialSchemas.AppCredentials;
34
+ const client = yield* _platform.HttpClient.HttpClient;
35
+ const sendMessage = text => _platform.HttpClientRequest.post(`https://api.telegram.org/bot${creds.telegramBotToken}/sendMessage`).pipe(_platform.HttpClientRequest.bodyJson({
36
+ chat_id: creds.telegramChatId,
37
+ text,
38
+ parse_mode: "HTML"
39
+ }), _effect.Effect.flatMap(client.execute), _effect.Effect.flatMap(_platform.HttpClientResponse.schemaBodyJson(TelegramSendMessageResponse)), _effect.Effect.asVoid, _effect.Effect.mapError(err => new TelegramNotifierError({
40
+ message: `Failed to send Telegram message: ${String(err)}`,
41
+ cause: err
42
+ })));
43
+ return TelegramNotifier.of({
44
+ sendMessage
45
+ });
46
+ }));
47
+ const TelegramSendMessageResponse = /*#__PURE__*/_effect.Schema.Struct({
48
+ ok: _effect.Schema.Boolean
49
+ });
50
+ //# sourceMappingURL=TelegramNotifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelegramNotifier.js","names":["_platform","require","_effect","_CredentialSchemas","TelegramNotifierError","Data","TaggedError","exports","TelegramNotifier","Context","Tag","TelegramNotifierLive","Layer","effect","Effect","gen","creds","AppCredentials","client","HttpClient","sendMessage","text","HttpClientRequest","post","telegramBotToken","pipe","bodyJson","chat_id","telegramChatId","parse_mode","flatMap","execute","HttpClientResponse","schemaBodyJson","TelegramSendMessageResponse","asVoid","mapError","err","message","String","cause","of","Schema","Struct","ok","Boolean"],"sources":["../../../src/services/TelegramNotifier.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AANA;;;;;AAQA;AAEA;;;;AAIM,MAAOG,qBAAsB,sBAAQC,YAAI,CAACC,WAAW,CAAC,uBAAuB,CAGjF;AAUF;;;;AAAAC,OAAA,CAAAH,qBAAA,GAAAA,qBAAA;AAIM,MAAOI,gBAAiB,sBAAQC,eAAO,CAACC,GAAG,CAAC,kBAAkB,CAAC,EAGlE;AAEH;;;;AAAAH,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAIO,MAAMG,oBAAoB,GAAAJ,OAAA,CAAAI,oBAAA,gBAAGC,aAAK,CAACC,MAAM,CAC9CL,gBAAgB,eAChBM,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,KAAK,GAAG,OAAOC,iCAAc;EACnC,MAAMC,MAAM,GAAG,OAAOC,oBAAU,CAACA,UAAU;EAE3C,MAAMC,WAAW,GAAIC,IAAY,IAC/BC,2BAAiB,CAACC,IAAI,CACpB,+BAA+BP,KAAK,CAACQ,gBAAgB,cAAc,CACpE,CAACC,IAAI,CACJH,2BAAiB,CAACI,QAAQ,CAAC;IACzBC,OAAO,EAAEX,KAAK,CAACY,cAAc;IAC7BP,IAAI;IACJQ,UAAU,EAAE;GACb,CAAC,EACFf,cAAM,CAACgB,OAAO,CAACZ,MAAM,CAACa,OAAO,CAAC,EAC9BjB,cAAM,CAACgB,OAAO,CAACE,4BAAkB,CAACC,cAAc,CAACC,2BAA2B,CAAC,CAAC,EAC9EpB,cAAM,CAACqB,MAAM,EACbrB,cAAM,CAACsB,QAAQ,CAAEC,GAAG,IAClB,IAAIjC,qBAAqB,CAAC;IACxBkC,OAAO,EAAE,oCAAoCC,MAAM,CAACF,GAAG,CAAC,EAAE;IAC1DG,KAAK,EAAEH;GACR,CAAC,CACH,CACF;EAEH,OAAO7B,gBAAgB,CAACiC,EAAE,CAAC;IAAErB;EAAW,CAAE,CAAC;AAC7C,CAAC,CAAC,CACH;AAED,MAAMc,2BAA2B,gBAAGQ,cAAM,CAACC,MAAM,CAAC;EAChDC,EAAE,EAAEF,cAAM,CAACG;CACZ,CAAC","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TrackerLayerMap = void 0;
7
+ var _effect = require("effect");
8
+ var _LinearSdkClient = require("./LinearSdkClient.js");
9
+ var _GitHubIssueTracker = require("./TaskTracker/GitHubIssueTracker.js");
10
+ var _LinearTracker = require("./TaskTracker/LinearTracker.js");
11
+ /**
12
+ * Dynamic layer map for selecting TaskTracker implementation at runtime
13
+ * @since 1.0.0
14
+ */
15
+
16
+ /**
17
+ * @since 1.0.0
18
+ * @category layer-map
19
+ */
20
+ class TrackerLayerMap extends /*#__PURE__*/_effect.LayerMap.Service()("TrackerLayerMap", {
21
+ layers: {
22
+ linear: /*#__PURE__*/_LinearTracker.LinearTrackerLive.pipe(/*#__PURE__*/_effect.Layer.provide(_LinearSdkClient.LinearSdkClientLive)),
23
+ github: _GitHubIssueTracker.GitHubIssueTrackerLive
24
+ }
25
+ }) {}
26
+ exports.TrackerLayerMap = TrackerLayerMap;
27
+ //# sourceMappingURL=TrackerLayerMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackerLayerMap.js","names":["_effect","require","_LinearSdkClient","_GitHubIssueTracker","_LinearTracker","TrackerLayerMap","LayerMap","Service","layers","linear","LinearTrackerLive","pipe","Layer","provide","LinearSdkClientLive","github","GitHubIssueTrackerLive","exports"],"sources":["../../../src/services/TrackerLayerMap.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAPA;;;;;AASA;;;;AAIM,MAAOI,eAAgB,sBAAQC,gBAAQ,CAACC,OAAO,EAAmB,CAAC,iBAAiB,EAAE;EAC1FC,MAAM,EAAE;IACNC,MAAM,eAAEC,gCAAiB,CAACC,IAAI,cAACC,aAAK,CAACC,OAAO,CAACC,oCAAmB,CAAC,CAAC;IAClEC,MAAM,EAAEC;;CAEX,CAAC;AAAAC,OAAA,CAAAZ,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TrackerResolverLive = exports.TrackerResolverError = exports.TrackerResolver = void 0;
7
+ var _effect = require("effect");
8
+ var _LalphConfig = require("./LalphConfig.js");
9
+ var _TaskTracker = require("./TaskTracker.js");
10
+ var _TrackerLayerMap = require("./TrackerLayerMap.js");
11
+ /**
12
+ * TrackerResolver maps repos to tracker instances based on monitor configuration
13
+ * @since 1.0.0
14
+ */
15
+
16
+ /**
17
+ * @since 1.0.0
18
+ * @category errors
19
+ */
20
+ class TrackerResolverError extends /*#__PURE__*/_effect.Data.TaggedError("TrackerResolverError") {}
21
+ /**
22
+ * @since 1.0.0
23
+ * @category context
24
+ */
25
+ exports.TrackerResolverError = TrackerResolverError;
26
+ class TrackerResolver extends /*#__PURE__*/_effect.Context.Tag("TrackerResolver")() {}
27
+ /**
28
+ * @since 1.0.0
29
+ * @category layers
30
+ */
31
+ exports.TrackerResolver = TrackerResolver;
32
+ const TrackerResolverLive = exports.TrackerResolverLive = /*#__PURE__*/_effect.Layer.effect(TrackerResolver, /*#__PURE__*/_effect.Effect.gen(function* () {
33
+ const config = yield* _LalphConfig.LalphConfig;
34
+ const tracker = yield* _TaskTracker.TaskTracker.pipe(_effect.Effect.provide(_TrackerLayerMap.TrackerLayerMap.get(config.issueSource)));
35
+ const trackerForRepo = repoFullName => repoFullName === config.repoFullName ? _effect.Effect.succeed(tracker) : _effect.Effect.fail(new TrackerResolverError({
36
+ message: `No tracker configured for repo: ${repoFullName}`,
37
+ cause: null
38
+ }));
39
+ return {
40
+ trackerForRepo,
41
+ allTrackers: [tracker],
42
+ allWatchedRepos: [config.repoFullName]
43
+ };
44
+ }));
45
+ //# sourceMappingURL=TrackerResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackerResolver.js","names":["_effect","require","_LalphConfig","_TaskTracker","_TrackerLayerMap","TrackerResolverError","Data","TaggedError","exports","TrackerResolver","Context","Tag","TrackerResolverLive","Layer","effect","Effect","gen","config","LalphConfig","tracker","TaskTracker","pipe","provide","TrackerLayerMap","get","issueSource","trackerForRepo","repoFullName","succeed","fail","message","cause","allTrackers","allWatchedRepos"],"sources":["../../../src/services/TrackerResolver.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AARA;;;;;AAUA;;;;AAIM,MAAOI,oBAAqB,sBAAQC,YAAI,CAACC,WAAW,CAAC,sBAAsB,CAG/E;AAYF;;;;AAAAC,OAAA,CAAAH,oBAAA,GAAAA,oBAAA;AAIM,MAAOI,eAAgB,sBAAQC,eAAO,CAACC,GAAG,CAAC,iBAAiB,CAAC,EAGhE;AAEH;;;;AAAAH,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAIO,MAAMG,mBAAmB,GAAAJ,OAAA,CAAAI,mBAAA,gBAAGC,aAAK,CAACC,MAAM,CAC7CL,eAAe,eACfM,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,MAAM,GAAG,OAAOC,wBAAW;EAEjC,MAAMC,OAAO,GAAG,OAAOC,wBAAW,CAACC,IAAI,CACrCN,cAAM,CAACO,OAAO,CAACC,gCAAe,CAACC,GAAG,CAACP,MAAM,CAACQ,WAAW,CAAC,CAAC,CACxD;EAED,MAAMC,cAAc,GAAIC,YAAoB,IAC1CA,YAAY,KAAKV,MAAM,CAACU,YAAY,GAChCZ,cAAM,CAACa,OAAO,CAACT,OAAO,CAAC,GACvBJ,cAAM,CAACc,IAAI,CACX,IAAIxB,oBAAoB,CAAC;IACvByB,OAAO,EAAE,mCAAmCH,YAAY,EAAE;IAC1DI,KAAK,EAAE;GACR,CAAC,CACH;EAEL,OAAO;IACLL,cAAc;IACdM,WAAW,EAAE,CAACb,OAAO,CAAC;IACtBc,eAAe,EAAE,CAAChB,MAAM,CAACU,YAAY;GACtC;AACH,CAAC,CAAC,CACH","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MessengerAdapterError = exports.MessengerAdapter = exports.IncomingMessage = void 0;
7
+ var _effect = require("effect");
8
+ /**
9
+ * @since 1.0.0
10
+ * @category errors
11
+ */
12
+ class MessengerAdapterError extends /*#__PURE__*/_effect.Data.TaggedError("MessengerAdapterError") {}
13
+ /**
14
+ * @since 1.0.0
15
+ * @category schemas
16
+ */
17
+ exports.MessengerAdapterError = MessengerAdapterError;
18
+ class IncomingMessage extends /*#__PURE__*/_effect.Schema.Class("IncomingMessage")({
19
+ chatId: _effect.Schema.String,
20
+ text: _effect.Schema.String,
21
+ from: _effect.Schema.String
22
+ }) {}
23
+ /**
24
+ * @since 1.0.0
25
+ * @category context
26
+ */
27
+ exports.IncomingMessage = IncomingMessage;
28
+ class MessengerAdapter extends /*#__PURE__*/_effect.Context.Tag("MessengerAdapter")() {}
29
+ exports.MessengerAdapter = MessengerAdapter;
30
+ //# sourceMappingURL=MessengerAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessengerAdapter.js","names":["_effect","require","MessengerAdapterError","Data","TaggedError","exports","IncomingMessage","Schema","Class","chatId","String","text","from","MessengerAdapter","Context","Tag"],"sources":["../../../../src/services/messenger/MessengerAdapter.ts"],"sourcesContent":[null],"mappings":";;;;;;AAKA,IAAAA,OAAA,GAAAC,OAAA;AAEA;;;;AAIM,MAAOC,qBAAsB,sBAAQC,YAAI,CAACC,WAAW,CAAC,uBAAuB,CAGjF;AAEF;;;;AAAAC,OAAA,CAAAH,qBAAA,GAAAA,qBAAA;AAIM,MAAOI,eAAgB,sBAAQC,cAAM,CAACC,KAAK,CAAkB,iBAAiB,CAAC,CAAC;EACpFC,MAAM,EAAEF,cAAM,CAACG,MAAM;EACrBC,IAAI,EAAEJ,cAAM,CAACG,MAAM;EACnBE,IAAI,EAAEL,cAAM,CAACG;CACd,CAAC;AAqBF;;;;AAAAL,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAIM,MAAOO,gBAAiB,sBAAQC,eAAO,CAACC,GAAG,CAAC,kBAAkB,CAAC,EAGlE;AAAAV,OAAA,CAAAQ,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TelegramAdapterLive = void 0;
7
+ var _effect = require("effect");
8
+ var _telegraf = require("telegraf");
9
+ var _TelegramConfig = require("../TelegramConfig.js");
10
+ var _MessengerAdapter = require("./MessengerAdapter.js");
11
+ /**
12
+ * Telegram messenger adapter using the Telegraf library
13
+ * @since 1.0.0
14
+ */
15
+
16
+ /**
17
+ * @since 1.0.0
18
+ * @category layers
19
+ */
20
+ const TelegramAdapterLive = exports.TelegramAdapterLive = /*#__PURE__*/_effect.Layer.scoped(_MessengerAdapter.MessengerAdapter, /*#__PURE__*/_effect.Effect.gen(function* () {
21
+ const store = yield* _TelegramConfig.TelegramConfig;
22
+ const config = yield* store.get;
23
+ if (_effect.Option.isNone(config) || config.value.botToken === "") {
24
+ return yield* new _MessengerAdapter.MessengerAdapterError({
25
+ message: "Telegram bot token not configured. Run setup first.",
26
+ cause: null
27
+ });
28
+ }
29
+ const bot = new _telegraf.Telegraf(config.value.botToken);
30
+ const messageQueue = yield* _effect.Queue.unbounded();
31
+ const questionCounter = yield* _effect.Ref.make(0);
32
+ bot.action(/^q:(\d+):(.+)$/, ctx => {
33
+ const label = ctx.match[2] ?? "";
34
+ if (ctx.from != null) {
35
+ const msg = new _MessengerAdapter.IncomingMessage({
36
+ chatId: String(ctx.chat?.id ?? ""),
37
+ text: label,
38
+ from: ctx.from.username ?? ctx.from.first_name
39
+ });
40
+ _effect.Queue.unsafeOffer(messageQueue, msg);
41
+ }
42
+ _effect.Effect.runPromise(_effect.Effect.tryPromise({
43
+ try: () => ctx.editMessageText(`${label} ✓`),
44
+ catch: () => new _MessengerAdapter.MessengerAdapterError({
45
+ message: "Failed to edit message",
46
+ cause: null
47
+ })
48
+ }).pipe(_effect.Effect.orElseSucceed(() => undefined)));
49
+ return ctx.answerCbQuery();
50
+ });
51
+ bot.on("message", ctx => {
52
+ const text = "text" in ctx.message ? ctx.message.text : undefined;
53
+ if (text != null && ctx.from != null) {
54
+ const msg = new _MessengerAdapter.IncomingMessage({
55
+ chatId: String(ctx.chat.id),
56
+ text,
57
+ from: ctx.from.username ?? ctx.from.first_name
58
+ });
59
+ _effect.Queue.unsafeOffer(messageQueue, msg);
60
+ }
61
+ });
62
+ yield* _effect.Effect.tryPromise({
63
+ try: () => bot.launch(),
64
+ catch: err => new _MessengerAdapter.MessengerAdapterError({
65
+ message: `Failed to launch Telegram bot: ${String(err)}`,
66
+ cause: err
67
+ })
68
+ }).pipe(_effect.Effect.fork);
69
+ yield* _effect.Effect.addFinalizer(() => _effect.Effect.sync(() => {
70
+ bot.stop("shutdown");
71
+ }));
72
+ const sendMessage = message => _effect.Effect.gen(function* () {
73
+ const currentConfig = yield* store.get;
74
+ const resolvedChatId = _effect.Option.isSome(currentConfig) ? currentConfig.value.chatId : null;
75
+ if (resolvedChatId === null) {
76
+ return yield* new _MessengerAdapter.MessengerAdapterError({
77
+ message: "Telegram chat ID not configured. Run setup first.",
78
+ cause: null
79
+ });
80
+ }
81
+ if (typeof message === "string") {
82
+ yield* _effect.Effect.tryPromise({
83
+ try: () => bot.telegram.sendMessage(resolvedChatId, message, {
84
+ parse_mode: "HTML"
85
+ }),
86
+ catch: err => new _MessengerAdapter.MessengerAdapterError({
87
+ message: `Failed to send Telegram message: ${String(err)}`,
88
+ cause: err
89
+ })
90
+ });
91
+ } else if (message.replyKeyboard != null && message.replyKeyboard.length > 0) {
92
+ const replyMarkup = _telegraf.Markup.keyboard(message.replyKeyboard.map(o => [_telegraf.Markup.button.text(o.label)])).resize();
93
+ yield* _effect.Effect.tryPromise({
94
+ try: () => bot.telegram.sendMessage(resolvedChatId, message.text, {
95
+ ...replyMarkup,
96
+ parse_mode: "HTML"
97
+ }),
98
+ catch: err => new _MessengerAdapter.MessengerAdapterError({
99
+ message: `Failed to send Telegram message: ${String(err)}`,
100
+ cause: err
101
+ })
102
+ });
103
+ } else {
104
+ const qId = yield* _effect.Ref.updateAndGet(questionCounter, n => n + 1);
105
+ const buttons = message.options?.map(o => [_telegraf.Markup.button.callback(o.label, `q:${qId}:${o.label}`)]) ?? [];
106
+ const keyboard = buttons.length > 0 ? _telegraf.Markup.inlineKeyboard(buttons) : undefined;
107
+ yield* _effect.Effect.tryPromise({
108
+ try: () => bot.telegram.sendMessage(resolvedChatId, message.text, {
109
+ ...keyboard,
110
+ parse_mode: "HTML"
111
+ }),
112
+ catch: err => new _MessengerAdapter.MessengerAdapterError({
113
+ message: `Failed to send Telegram message: ${String(err)}`,
114
+ cause: err
115
+ })
116
+ });
117
+ }
118
+ });
119
+ const incomingMessages = _effect.Stream.fromQueue(messageQueue);
120
+ return _MessengerAdapter.MessengerAdapter.of({
121
+ sendMessage,
122
+ incomingMessages
123
+ });
124
+ }));
125
+ //# sourceMappingURL=TelegramAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelegramAdapter.js","names":["_effect","require","_telegraf","_TelegramConfig","_MessengerAdapter","TelegramAdapterLive","exports","Layer","scoped","MessengerAdapter","Effect","gen","store","TelegramConfig","config","get","Option","isNone","value","botToken","MessengerAdapterError","message","cause","bot","Telegraf","messageQueue","Queue","unbounded","questionCounter","Ref","make","action","ctx","label","match","from","msg","IncomingMessage","chatId","String","chat","id","text","username","first_name","unsafeOffer","runPromise","tryPromise","try","editMessageText","catch","pipe","orElseSucceed","undefined","answerCbQuery","on","launch","err","fork","addFinalizer","sync","stop","sendMessage","currentConfig","resolvedChatId","isSome","telegram","parse_mode","replyKeyboard","length","replyMarkup","Markup","keyboard","map","o","button","resize","qId","updateAndGet","n","buttons","options","callback","inlineKeyboard","incomingMessages","Stream","fromQueue","of"],"sources":["../../../../src/services/messenger/TelegramAdapter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GitHubIssueTrackerLive = void 0;
7
+ var _effect = require("effect");
8
+ var _CredentialSchemas = require("../../schemas/CredentialSchemas.js");
9
+ var _TrackerSchemas = require("../../schemas/TrackerSchemas.js");
10
+ var _OctokitClient = require("../OctokitClient.js");
11
+ var _TaskTracker = require("./TaskTracker.js");
12
+ /**
13
+ * GitHub Issues implementation of TaskTracker
14
+ * @since 1.0.0
15
+ */
16
+
17
+ const extractRepoFullName = repositoryUrl => {
18
+ const parts = repositoryUrl.split("/repos/");
19
+ return parts[1] ?? repositoryUrl;
20
+ };
21
+ const parseIssueId = issueId => {
22
+ const slashIdx = issueId.indexOf("/");
23
+ const hashIdx = issueId.indexOf("#");
24
+ const owner = issueId.substring(0, slashIdx);
25
+ const repo = issueId.substring(slashIdx + 1, hashIdx);
26
+ const issueNumber = issueId.substring(hashIdx + 1);
27
+ return {
28
+ owner,
29
+ repo,
30
+ issueNumber
31
+ };
32
+ };
33
+ const GitHubIssueTrackerLive = exports.GitHubIssueTrackerLive = /*#__PURE__*/_effect.Layer.effect(_TaskTracker.TaskTracker, /*#__PURE__*/_effect.Effect.gen(function* () {
34
+ const octokit = yield* _OctokitClient.OctokitClient;
35
+ const config = yield* _CredentialSchemas.AppRuntimeConfig;
36
+ const interval = _effect.Duration.seconds(config.pollIntervalSeconds);
37
+ const lastPollRef = yield* _effect.Ref.make(_effect.DateTime.unsafeNow());
38
+ const knownStatesRef = yield* _effect.Ref.make(_effect.HashMap.empty());
39
+ const fetchEvents = since => _effect.Effect.gen(function* () {
40
+ const issues = yield* octokit.listUserIssues({
41
+ state: "all",
42
+ sort: "updated",
43
+ since
44
+ }).pipe(_effect.Effect.mapError(err => new _TaskTracker.TaskTrackerError({
45
+ message: `GitHub API request failed: ${String(err)}`,
46
+ cause: err
47
+ })));
48
+ return _effect.Array.map(issues, issue => {
49
+ const repoFullName = extractRepoFullName(issue.repositoryUrl);
50
+ const trackerIssue = new _TrackerSchemas.TrackerIssue({
51
+ id: `${repoFullName}#${issue.number}`,
52
+ title: issue.title,
53
+ state: issue.state,
54
+ url: issue.htmlUrl,
55
+ createdAt: issue.createdAt,
56
+ updatedAt: issue.updatedAt
57
+ });
58
+ const action = issue.createdAt === issue.updatedAt ? "created" : "updated";
59
+ return {
60
+ action,
61
+ issue: trackerIssue
62
+ };
63
+ });
64
+ });
65
+ const pollCycle = _effect.Effect.gen(function* () {
66
+ const lastPoll = yield* _effect.Ref.get(lastPollRef);
67
+ const since = _effect.DateTime.formatIso(lastPoll);
68
+ const knownStates = yield* _effect.Ref.get(knownStatesRef);
69
+ yield* _effect.Ref.set(lastPollRef, _effect.DateTime.unsafeNow());
70
+ const rawEvents = yield* fetchEvents(since);
71
+ const events = [];
72
+ for (const raw of rawEvents) {
73
+ if (raw.action === "created") {
74
+ events.push(new _TrackerSchemas.TrackerIssueEvent({
75
+ action: "created",
76
+ issue: raw.issue
77
+ }));
78
+ yield* _effect.Ref.update(knownStatesRef, _effect.HashMap.set(raw.issue.id, raw.issue.state));
79
+ } else {
80
+ const previousState = _effect.HashMap.get(knownStates, raw.issue.id);
81
+ const stateChanged = _effect.Option.isNone(previousState) || previousState.value !== raw.issue.state;
82
+ if (stateChanged) {
83
+ events.push(new _TrackerSchemas.TrackerIssueEvent({
84
+ action: "updated",
85
+ issue: raw.issue,
86
+ previousState: _effect.Option.getOrElse(previousState, () => "Unknown")
87
+ }));
88
+ }
89
+ yield* _effect.Ref.update(knownStatesRef, _effect.HashMap.set(raw.issue.id, raw.issue.state));
90
+ }
91
+ }
92
+ return events;
93
+ });
94
+ const emptyBatch = [];
95
+ const safePollCycle = pollCycle.pipe(_effect.Effect.tapError(err => _effect.Effect.logError(`GitHubIssueTracker poll cycle failed: ${err.message}`)), _effect.Effect.orElseSucceed(() => emptyBatch));
96
+ const eventStream = _effect.Stream.repeatEffectWithSchedule(safePollCycle, _effect.Schedule.spaced(interval)).pipe(_effect.Stream.flatMap(batch => _effect.Stream.fromIterable(batch)));
97
+ return _TaskTracker.TaskTracker.of({
98
+ events: eventStream,
99
+ moveToTodo: issueId => _effect.Effect.gen(function* () {
100
+ const {
101
+ issueNumber,
102
+ owner,
103
+ repo
104
+ } = parseIssueId(issueId);
105
+ const labelsToRemove = ["in-progress", "in-review"];
106
+ yield* _effect.Effect.forEach(labelsToRemove, label => octokit.removeIssueLabel({
107
+ owner,
108
+ repo,
109
+ issueNumber: Number(issueNumber),
110
+ label
111
+ }).pipe(_effect.Effect.catchTag("OctokitClientError", err => _effect.Effect.logError(err.message))));
112
+ }).pipe(_effect.Effect.mapError(err => new _TaskTracker.TaskTrackerError({
113
+ message: `GitHub API request failed: ${String(err)}`,
114
+ cause: err
115
+ }))),
116
+ setPriorityUrgent: issueId => _effect.Effect.gen(function* () {
117
+ const {
118
+ issueNumber,
119
+ owner,
120
+ repo
121
+ } = parseIssueId(issueId);
122
+ yield* octokit.addIssueLabels({
123
+ owner,
124
+ repo,
125
+ issueNumber: Number(issueNumber),
126
+ labels: ["urgent"]
127
+ }).pipe(_effect.Effect.mapError(err => new _TaskTracker.TaskTrackerError({
128
+ message: `GitHub API request failed: ${String(err)}`,
129
+ cause: err
130
+ })));
131
+ }),
132
+ getIssue: issueId => _effect.Effect.gen(function* () {
133
+ const {
134
+ issueNumber,
135
+ owner,
136
+ repo
137
+ } = parseIssueId(issueId);
138
+ const issue = yield* octokit.getIssue({
139
+ owner,
140
+ repo,
141
+ issueNumber: Number(issueNumber)
142
+ }).pipe(_effect.Effect.mapError(err => new _TaskTracker.TaskTrackerError({
143
+ message: `GitHub API request failed: ${String(err)}`,
144
+ cause: err
145
+ })));
146
+ return new _TrackerSchemas.TrackerIssue({
147
+ id: `${owner}/${repo}#${issue.number}`,
148
+ title: issue.title,
149
+ state: issue.state,
150
+ url: issue.htmlUrl,
151
+ createdAt: issue.createdAt,
152
+ updatedAt: issue.updatedAt
153
+ });
154
+ })
155
+ });
156
+ }));
157
+ //# sourceMappingURL=GitHubIssueTracker.js.map