@geminixiang/mikan 1.0.0-beta.78 → 1.0.0-beta.79

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 (471) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/adapters/commands/admin.js +1 -1
  3. package/dist/adapters/commands/admin.js.map +1 -1
  4. package/dist/adapters/commands/login.d.ts.map +1 -1
  5. package/dist/adapters/commands/login.js +3 -2
  6. package/dist/adapters/commands/login.js.map +1 -1
  7. package/dist/adapters/commands/manifest.d.ts +0 -1
  8. package/dist/adapters/commands/manifest.d.ts.map +1 -1
  9. package/dist/adapters/commands/manifest.js.map +1 -1
  10. package/dist/adapters/commands/model.d.ts +0 -1
  11. package/dist/adapters/commands/model.d.ts.map +1 -1
  12. package/dist/adapters/commands/model.js +8 -20
  13. package/dist/adapters/commands/model.js.map +1 -1
  14. package/dist/adapters/commands/new.js +1 -1
  15. package/dist/adapters/commands/new.js.map +1 -1
  16. package/dist/adapters/commands/registry.js +1 -1
  17. package/dist/adapters/commands/registry.js.map +1 -1
  18. package/dist/adapters/commands/sandbox.d.ts +0 -1
  19. package/dist/adapters/commands/sandbox.d.ts.map +1 -1
  20. package/dist/adapters/commands/sandbox.js +1 -1
  21. package/dist/adapters/commands/sandbox.js.map +1 -1
  22. package/dist/adapters/commands/types.d.ts +6 -17
  23. package/dist/adapters/commands/types.d.ts.map +1 -1
  24. package/dist/adapters/commands/types.js.map +1 -1
  25. package/dist/adapters/commands/utils.d.ts +1 -1
  26. package/dist/adapters/commands/utils.d.ts.map +1 -1
  27. package/dist/adapters/commands/utils.js.map +1 -1
  28. package/dist/adapters/discord/bot.d.ts +4 -10
  29. package/dist/adapters/discord/bot.d.ts.map +1 -1
  30. package/dist/adapters/discord/bot.js +26 -22
  31. package/dist/adapters/discord/bot.js.map +1 -1
  32. package/dist/adapters/discord/components.d.ts +0 -1
  33. package/dist/adapters/discord/components.d.ts.map +1 -1
  34. package/dist/adapters/discord/components.js.map +1 -1
  35. package/dist/adapters/discord/context.d.ts +3 -3
  36. package/dist/adapters/discord/context.d.ts.map +1 -1
  37. package/dist/adapters/discord/context.js +1 -1
  38. package/dist/adapters/discord/context.js.map +1 -1
  39. package/dist/adapters/discord/types.d.ts +83 -1
  40. package/dist/adapters/discord/types.d.ts.map +1 -1
  41. package/dist/adapters/discord/types.js.map +1 -1
  42. package/dist/adapters/github/bot.d.ts +4 -5
  43. package/dist/adapters/github/bot.d.ts.map +1 -1
  44. package/dist/adapters/github/bot.js +10 -10
  45. package/dist/adapters/github/bot.js.map +1 -1
  46. package/dist/adapters/github/client.js +1 -1
  47. package/dist/adapters/github/client.js.map +1 -1
  48. package/dist/adapters/github/context.d.ts +3 -4
  49. package/dist/adapters/github/context.d.ts.map +1 -1
  50. package/dist/adapters/github/context.js +1 -2
  51. package/dist/adapters/github/context.js.map +1 -1
  52. package/dist/adapters/github/github-ops.d.ts +5 -6
  53. package/dist/adapters/github/github-ops.d.ts.map +1 -1
  54. package/dist/adapters/github/github-ops.js +1 -2
  55. package/dist/adapters/github/github-ops.js.map +1 -1
  56. package/dist/adapters/github/ids.d.ts +0 -3
  57. package/dist/adapters/github/ids.d.ts.map +1 -1
  58. package/dist/adapters/github/ids.js +0 -19
  59. package/dist/adapters/github/ids.js.map +1 -1
  60. package/dist/adapters/github/repo.d.ts +1 -1
  61. package/dist/adapters/github/repo.js.map +1 -1
  62. package/dist/adapters/github/tools/checks.d.ts +6 -4
  63. package/dist/adapters/github/tools/checks.d.ts.map +1 -1
  64. package/dist/adapters/github/tools/checks.js +4 -3
  65. package/dist/adapters/github/tools/checks.js.map +1 -1
  66. package/dist/adapters/github/tools/issue.d.ts +10 -8
  67. package/dist/adapters/github/tools/issue.d.ts.map +1 -1
  68. package/dist/adapters/github/tools/issue.js +4 -3
  69. package/dist/adapters/github/tools/issue.js.map +1 -1
  70. package/dist/adapters/github/tools/pr.d.ts +8 -6
  71. package/dist/adapters/github/tools/pr.d.ts.map +1 -1
  72. package/dist/adapters/github/tools/pr.js +4 -3
  73. package/dist/adapters/github/tools/pr.js.map +1 -1
  74. package/dist/adapters/github/tools/read.d.ts +9 -7
  75. package/dist/adapters/github/tools/read.d.ts.map +1 -1
  76. package/dist/adapters/github/tools/read.js +4 -3
  77. package/dist/adapters/github/tools/read.js.map +1 -1
  78. package/dist/adapters/github/tools/review-reply.d.ts +6 -4
  79. package/dist/adapters/github/tools/review-reply.d.ts.map +1 -1
  80. package/dist/adapters/github/tools/review-reply.js +4 -3
  81. package/dist/adapters/github/tools/review-reply.js.map +1 -1
  82. package/dist/adapters/github/tools/sync.d.ts +5 -3
  83. package/dist/adapters/github/tools/sync.d.ts.map +1 -1
  84. package/dist/adapters/github/tools/sync.js +4 -3
  85. package/dist/adapters/github/tools/sync.js.map +1 -1
  86. package/dist/adapters/github/types.d.ts +5 -4
  87. package/dist/adapters/github/types.d.ts.map +1 -1
  88. package/dist/adapters/github/types.js.map +1 -1
  89. package/dist/adapters/github/webhook.d.ts +0 -1
  90. package/dist/adapters/github/webhook.d.ts.map +1 -1
  91. package/dist/adapters/github/webhook.js.map +1 -1
  92. package/dist/adapters/intake.d.ts +1 -1
  93. package/dist/adapters/intake.d.ts.map +1 -1
  94. package/dist/adapters/intake.js.map +1 -1
  95. package/dist/adapters/markdown-tables.d.ts +0 -1
  96. package/dist/adapters/markdown-tables.d.ts.map +1 -1
  97. package/dist/adapters/markdown-tables.js.map +1 -1
  98. package/dist/adapters/messages.d.ts +1 -1
  99. package/dist/adapters/messages.d.ts.map +1 -1
  100. package/dist/adapters/messages.js.map +1 -1
  101. package/dist/adapters/progressive-renderer.d.ts +1 -1
  102. package/dist/adapters/progressive-renderer.d.ts.map +1 -1
  103. package/dist/adapters/progressive-renderer.js +8 -6
  104. package/dist/adapters/progressive-renderer.js.map +1 -1
  105. package/dist/adapters/shared.d.ts +6 -4
  106. package/dist/adapters/shared.d.ts.map +1 -1
  107. package/dist/adapters/shared.js +39 -25
  108. package/dist/adapters/shared.js.map +1 -1
  109. package/dist/adapters/slack/assistant.d.ts +0 -1
  110. package/dist/adapters/slack/assistant.d.ts.map +1 -1
  111. package/dist/adapters/slack/assistant.js +2 -1
  112. package/dist/adapters/slack/assistant.js.map +1 -1
  113. package/dist/adapters/slack/bot.d.ts +5 -10
  114. package/dist/adapters/slack/bot.d.ts.map +1 -1
  115. package/dist/adapters/slack/bot.js +84 -86
  116. package/dist/adapters/slack/bot.js.map +1 -1
  117. package/dist/adapters/slack/context.d.ts +3 -5
  118. package/dist/adapters/slack/context.d.ts.map +1 -1
  119. package/dist/adapters/slack/context.js +1 -2
  120. package/dist/adapters/slack/context.js.map +1 -1
  121. package/dist/adapters/slack/jev-context.d.ts.map +1 -1
  122. package/dist/adapters/slack/jev-context.js +4 -2
  123. package/dist/adapters/slack/jev-context.js.map +1 -1
  124. package/dist/adapters/slack/response-lifecycle.d.ts +3 -4
  125. package/dist/adapters/slack/response-lifecycle.d.ts.map +1 -1
  126. package/dist/adapters/slack/response-lifecycle.js +5 -3
  127. package/dist/adapters/slack/response-lifecycle.js.map +1 -1
  128. package/dist/adapters/slack/session.d.ts +1 -1
  129. package/dist/adapters/slack/session.d.ts.map +1 -1
  130. package/dist/adapters/slack/session.js.map +1 -1
  131. package/dist/adapters/slack/task-intent.js +1 -1
  132. package/dist/adapters/slack/task-intent.js.map +1 -1
  133. package/dist/adapters/slack/task-status.d.ts.map +1 -1
  134. package/dist/adapters/slack/task-status.js +2 -1
  135. package/dist/adapters/slack/task-status.js.map +1 -1
  136. package/dist/adapters/slack/tool-pack.d.ts +0 -1
  137. package/dist/adapters/slack/tool-pack.d.ts.map +1 -1
  138. package/dist/adapters/slack/tool-pack.js +2 -1
  139. package/dist/adapters/slack/tool-pack.js.map +1 -1
  140. package/dist/adapters/slack/tools/blockkit.d.ts +9 -7
  141. package/dist/adapters/slack/tools/blockkit.d.ts.map +1 -1
  142. package/dist/adapters/slack/tools/blockkit.js +6 -4
  143. package/dist/adapters/slack/tools/blockkit.js.map +1 -1
  144. package/dist/adapters/slack/types.d.ts +36 -2
  145. package/dist/adapters/slack/types.d.ts.map +1 -1
  146. package/dist/adapters/slack/types.js.map +1 -1
  147. package/dist/adapters/telegram/bot.d.ts +3 -8
  148. package/dist/adapters/telegram/bot.d.ts.map +1 -1
  149. package/dist/adapters/telegram/bot.js +11 -11
  150. package/dist/adapters/telegram/bot.js.map +1 -1
  151. package/dist/adapters/telegram/context.d.ts +3 -3
  152. package/dist/adapters/telegram/context.d.ts.map +1 -1
  153. package/dist/adapters/telegram/context.js +2 -2
  154. package/dist/adapters/telegram/context.js.map +1 -1
  155. package/dist/adapters/telegram/types.d.ts +24 -1
  156. package/dist/adapters/telegram/types.d.ts.map +1 -1
  157. package/dist/adapters/telegram/types.js.map +1 -1
  158. package/dist/adapters/types.d.ts +1 -2
  159. package/dist/adapters/types.d.ts.map +1 -1
  160. package/dist/adapters/types.js.map +1 -1
  161. package/dist/adapters/web/admin/client-assets.d.ts +1 -1
  162. package/dist/adapters/web/admin/client-assets.d.ts.map +1 -1
  163. package/dist/adapters/web/admin/client-assets.js +3 -2
  164. package/dist/adapters/web/admin/client-assets.js.map +1 -1
  165. package/dist/adapters/web/admin/portal.d.ts +4 -11
  166. package/dist/adapters/web/admin/portal.d.ts.map +1 -1
  167. package/dist/adapters/web/admin/portal.js +27 -30
  168. package/dist/adapters/web/admin/portal.js.map +1 -1
  169. package/dist/adapters/web/admin/provider-models.d.ts +1 -1
  170. package/dist/adapters/web/admin/provider-models.d.ts.map +1 -1
  171. package/dist/adapters/web/admin/provider-models.js.map +1 -1
  172. package/dist/adapters/web/admin/types.d.ts +10 -4
  173. package/dist/adapters/web/admin/types.d.ts.map +1 -1
  174. package/dist/adapters/web/admin/types.js.map +1 -1
  175. package/dist/adapters/web/login/oauth.d.ts +0 -1
  176. package/dist/adapters/web/login/oauth.d.ts.map +1 -1
  177. package/dist/adapters/web/login/oauth.js +12 -12
  178. package/dist/adapters/web/login/oauth.js.map +1 -1
  179. package/dist/adapters/web/login/portal.d.ts +3 -6
  180. package/dist/adapters/web/login/portal.d.ts.map +1 -1
  181. package/dist/adapters/web/login/portal.js +5 -4
  182. package/dist/adapters/web/login/portal.js.map +1 -1
  183. package/dist/adapters/web/login/types.d.ts +1 -1
  184. package/dist/adapters/web/login/types.d.ts.map +1 -1
  185. package/dist/adapters/web/login/types.js.map +1 -1
  186. package/dist/adapters/web/portal-shell.d.ts +0 -1
  187. package/dist/adapters/web/portal-shell.d.ts.map +1 -1
  188. package/dist/adapters/web/portal-shell.js.map +1 -1
  189. package/dist/adapters/web/server.d.ts +6 -6
  190. package/dist/adapters/web/server.d.ts.map +1 -1
  191. package/dist/adapters/web/server.js +3 -2
  192. package/dist/adapters/web/server.js.map +1 -1
  193. package/dist/adapters/web/session-view/portal.d.ts +2 -3
  194. package/dist/adapters/web/session-view/portal.d.ts.map +1 -1
  195. package/dist/adapters/web/session-view/portal.js +12 -12
  196. package/dist/adapters/web/session-view/portal.js.map +1 -1
  197. package/dist/adapters/web/session-view/types.d.ts +1 -11
  198. package/dist/adapters/web/session-view/types.d.ts.map +1 -1
  199. package/dist/adapters/web/session-view/types.js.map +1 -1
  200. package/dist/adapters/web/token-store.d.ts +0 -1
  201. package/dist/adapters/web/token-store.d.ts.map +1 -1
  202. package/dist/adapters/web/token-store.js.map +1 -1
  203. package/dist/cli/boot.d.ts +0 -1
  204. package/dist/cli/boot.d.ts.map +1 -1
  205. package/dist/cli/boot.js +4 -4
  206. package/dist/cli/boot.js.map +1 -1
  207. package/dist/cli/office.d.ts.map +1 -1
  208. package/dist/cli/office.js +4 -3
  209. package/dist/cli/office.js.map +1 -1
  210. package/dist/cli/onboard.js +1 -1
  211. package/dist/cli/onboard.js.map +1 -1
  212. package/dist/cli/sandbox.d.ts.map +1 -1
  213. package/dist/cli/sandbox.js +2 -1
  214. package/dist/cli/sandbox.js.map +1 -1
  215. package/dist/cli/sessions.d.ts.map +1 -1
  216. package/dist/cli/sessions.js +2 -1
  217. package/dist/cli/sessions.js.map +1 -1
  218. package/dist/env-manifest.d.ts +1 -1
  219. package/dist/env-manifest.d.ts.map +1 -1
  220. package/dist/env-manifest.js.map +1 -1
  221. package/dist/events/index.d.ts +3 -2
  222. package/dist/events/index.d.ts.map +1 -1
  223. package/dist/events/index.js +11 -10
  224. package/dist/events/index.js.map +1 -1
  225. package/dist/events/scheduler.d.ts +1 -2
  226. package/dist/events/scheduler.d.ts.map +1 -1
  227. package/dist/events/scheduler.js +4 -4
  228. package/dist/events/scheduler.js.map +1 -1
  229. package/dist/file-guards.d.ts +8 -6
  230. package/dist/file-guards.d.ts.map +1 -1
  231. package/dist/file-guards.js +10 -15
  232. package/dist/file-guards.js.map +1 -1
  233. package/dist/harness/execution-env.d.ts +1 -1
  234. package/dist/harness/execution-env.d.ts.map +1 -1
  235. package/dist/harness/execution-env.js +7 -6
  236. package/dist/harness/execution-env.js.map +1 -1
  237. package/dist/harness/execution-resolver.d.ts +4 -6
  238. package/dist/harness/execution-resolver.d.ts.map +1 -1
  239. package/dist/harness/execution-resolver.js +1 -1
  240. package/dist/harness/execution-resolver.js.map +1 -1
  241. package/dist/harness/jev.d.ts +1 -1
  242. package/dist/harness/jev.d.ts.map +1 -1
  243. package/dist/harness/jev.js +1 -4
  244. package/dist/harness/jev.js.map +1 -1
  245. package/dist/harness/mcp-result.d.ts.map +1 -1
  246. package/dist/harness/mcp-result.js +15 -7
  247. package/dist/harness/mcp-result.js.map +1 -1
  248. package/dist/harness/mcp.d.ts +0 -2
  249. package/dist/harness/mcp.d.ts.map +1 -1
  250. package/dist/harness/mcp.js +13 -15
  251. package/dist/harness/mcp.js.map +1 -1
  252. package/dist/harness/models.d.ts +0 -1
  253. package/dist/harness/models.d.ts.map +1 -1
  254. package/dist/harness/models.js +2 -1
  255. package/dist/harness/models.js.map +1 -1
  256. package/dist/harness/open-connector.d.ts +2 -3
  257. package/dist/harness/open-connector.d.ts.map +1 -1
  258. package/dist/harness/open-connector.js +13 -9
  259. package/dist/harness/open-connector.js.map +1 -1
  260. package/dist/harness/presenter.d.ts +4 -25
  261. package/dist/harness/presenter.d.ts.map +1 -1
  262. package/dist/harness/presenter.js +26 -20
  263. package/dist/harness/presenter.js.map +1 -1
  264. package/dist/harness/prompt.d.ts +1 -2
  265. package/dist/harness/prompt.d.ts.map +1 -1
  266. package/dist/harness/prompt.js.map +1 -1
  267. package/dist/harness/runner.d.ts.map +1 -1
  268. package/dist/harness/runner.js +34 -17
  269. package/dist/harness/runner.js.map +1 -1
  270. package/dist/harness/session.d.ts +0 -7
  271. package/dist/harness/session.d.ts.map +1 -1
  272. package/dist/harness/session.js +16 -14
  273. package/dist/harness/session.js.map +1 -1
  274. package/dist/harness/skills.d.ts +2 -5
  275. package/dist/harness/skills.d.ts.map +1 -1
  276. package/dist/harness/skills.js.map +1 -1
  277. package/dist/harness/subagent-profiles.d.ts +0 -1
  278. package/dist/harness/subagent-profiles.d.ts.map +1 -1
  279. package/dist/harness/subagent-profiles.js +12 -16
  280. package/dist/harness/subagent-profiles.js.map +1 -1
  281. package/dist/harness/subagent.d.ts +1 -1
  282. package/dist/harness/subagent.d.ts.map +1 -1
  283. package/dist/harness/subagent.js +17 -17
  284. package/dist/harness/subagent.js.map +1 -1
  285. package/dist/harness/tool-args.d.ts +2 -0
  286. package/dist/harness/tool-args.d.ts.map +1 -0
  287. package/dist/harness/tool-args.js +20 -0
  288. package/dist/harness/tool-args.js.map +1 -0
  289. package/dist/harness/tools/attach.d.ts +5 -4
  290. package/dist/harness/tools/attach.d.ts.map +1 -1
  291. package/dist/harness/tools/attach.js +1 -1
  292. package/dist/harness/tools/attach.js.map +1 -1
  293. package/dist/harness/tools/event.d.ts +12 -11
  294. package/dist/harness/tools/event.d.ts.map +1 -1
  295. package/dist/harness/tools/event.js +1 -1
  296. package/dist/harness/tools/event.js.map +1 -1
  297. package/dist/harness/tools/generate-image.d.ts +7 -5
  298. package/dist/harness/tools/generate-image.d.ts.map +1 -1
  299. package/dist/harness/tools/generate-image.js +7 -5
  300. package/dist/harness/tools/generate-image.js.map +1 -1
  301. package/dist/harness/tools/host-fn-tool.d.ts +3 -2
  302. package/dist/harness/tools/host-fn-tool.d.ts.map +1 -1
  303. package/dist/harness/tools/host-fn-tool.js +5 -2
  304. package/dist/harness/tools/host-fn-tool.js.map +1 -1
  305. package/dist/harness/tools/index.d.ts +3 -4
  306. package/dist/harness/tools/index.d.ts.map +1 -1
  307. package/dist/harness/tools/index.js +1 -3
  308. package/dist/harness/tools/index.js.map +1 -1
  309. package/dist/harness/tools/jev-browser.d.ts +12 -10
  310. package/dist/harness/tools/jev-browser.d.ts.map +1 -1
  311. package/dist/harness/tools/jev-browser.js +6 -4
  312. package/dist/harness/tools/jev-browser.js.map +1 -1
  313. package/dist/harness/tools/jev.d.ts +9 -7
  314. package/dist/harness/tools/jev.d.ts.map +1 -1
  315. package/dist/harness/tools/jev.js +5 -6
  316. package/dist/harness/tools/jev.js.map +1 -1
  317. package/dist/harness/tools/pi-tools.d.ts.map +1 -1
  318. package/dist/harness/tools/pi-tools.js +2 -2
  319. package/dist/harness/tools/pi-tools.js.map +1 -1
  320. package/dist/harness/tools/react.d.ts +3 -2
  321. package/dist/harness/tools/react.d.ts.map +1 -1
  322. package/dist/harness/tools/react.js +1 -1
  323. package/dist/harness/tools/react.js.map +1 -1
  324. package/dist/harness/tools/sandbox.d.ts +7 -6
  325. package/dist/harness/tools/sandbox.d.ts.map +1 -1
  326. package/dist/harness/tools/sandbox.js +3 -2
  327. package/dist/harness/tools/sandbox.js.map +1 -1
  328. package/dist/harness/tools/subagent.d.ts +26 -26
  329. package/dist/harness/tools/subagent.d.ts.map +1 -1
  330. package/dist/harness/tools/subagent.js +25 -29
  331. package/dist/harness/tools/subagent.js.map +1 -1
  332. package/dist/harness/tools/task.d.ts +11 -8
  333. package/dist/harness/tools/task.d.ts.map +1 -1
  334. package/dist/harness/tools/task.js +8 -6
  335. package/dist/harness/tools/task.js.map +1 -1
  336. package/dist/harness/tools/types.d.ts +2 -1
  337. package/dist/harness/tools/types.d.ts.map +1 -1
  338. package/dist/harness/tools/types.js.map +1 -1
  339. package/dist/harness/types.d.ts +37 -4
  340. package/dist/harness/types.d.ts.map +1 -1
  341. package/dist/harness/types.js.map +1 -1
  342. package/dist/index.d.ts +16 -13
  343. package/dist/index.d.ts.map +1 -1
  344. package/dist/index.js +3 -2
  345. package/dist/index.js.map +1 -1
  346. package/dist/log.d.ts +0 -1
  347. package/dist/log.d.ts.map +1 -1
  348. package/dist/log.js +1 -1
  349. package/dist/log.js.map +1 -1
  350. package/dist/main.js +27 -17
  351. package/dist/main.js.map +1 -1
  352. package/dist/memory-capture/index.d.ts +1 -2
  353. package/dist/memory-capture/index.d.ts.map +1 -1
  354. package/dist/memory-capture/index.js +8 -3
  355. package/dist/memory-capture/index.js.map +1 -1
  356. package/dist/memory-capture/types.d.ts +1 -1
  357. package/dist/memory-capture/types.js.map +1 -1
  358. package/dist/observability/index.d.ts +0 -3
  359. package/dist/observability/index.d.ts.map +1 -1
  360. package/dist/observability/index.js +11 -16
  361. package/dist/observability/index.js.map +1 -1
  362. package/dist/observability/sentry.d.ts +9 -12
  363. package/dist/observability/sentry.d.ts.map +1 -1
  364. package/dist/observability/sentry.js +9 -118
  365. package/dist/observability/sentry.js.map +1 -1
  366. package/dist/office/index.d.ts +14 -3
  367. package/dist/office/index.d.ts.map +1 -1
  368. package/dist/office/index.js +51 -14
  369. package/dist/office/index.js.map +1 -1
  370. package/dist/office/projection.d.ts +1 -3
  371. package/dist/office/projection.d.ts.map +1 -1
  372. package/dist/office/projection.js +5 -5
  373. package/dist/office/projection.js.map +1 -1
  374. package/dist/office/types.d.ts +5 -0
  375. package/dist/office/types.d.ts.map +1 -1
  376. package/dist/office/types.js.map +1 -1
  377. package/dist/runtime/conversation-runtime.d.ts +0 -1
  378. package/dist/runtime/conversation-runtime.d.ts.map +1 -1
  379. package/dist/runtime/conversation-runtime.js +10 -6
  380. package/dist/runtime/conversation-runtime.js.map +1 -1
  381. package/dist/runtime/session-lifecycle.d.ts.map +1 -1
  382. package/dist/runtime/session-lifecycle.js +2 -1
  383. package/dist/runtime/session-lifecycle.js.map +1 -1
  384. package/dist/runtime/types.d.ts +8 -5
  385. package/dist/runtime/types.d.ts.map +1 -1
  386. package/dist/runtime/types.js.map +1 -1
  387. package/dist/sandbox/cloudflare.d.ts.map +1 -1
  388. package/dist/sandbox/cloudflare.js +3 -2
  389. package/dist/sandbox/cloudflare.js.map +1 -1
  390. package/dist/sandbox/container.d.ts.map +1 -1
  391. package/dist/sandbox/container.js +2 -1
  392. package/dist/sandbox/container.js.map +1 -1
  393. package/dist/sandbox/host.js +1 -1
  394. package/dist/sandbox/host.js.map +1 -1
  395. package/dist/sandbox/identity.d.ts +0 -1
  396. package/dist/sandbox/identity.d.ts.map +1 -1
  397. package/dist/sandbox/identity.js.map +1 -1
  398. package/dist/sandbox/index.d.ts +4 -14
  399. package/dist/sandbox/index.d.ts.map +1 -1
  400. package/dist/sandbox/index.js +4 -93
  401. package/dist/sandbox/index.js.map +1 -1
  402. package/dist/sandbox/provisioner.d.ts +0 -1
  403. package/dist/sandbox/provisioner.d.ts.map +1 -1
  404. package/dist/sandbox/provisioner.js +12 -11
  405. package/dist/sandbox/provisioner.js.map +1 -1
  406. package/dist/sandbox/registry.d.ts +12 -0
  407. package/dist/sandbox/registry.d.ts.map +1 -0
  408. package/dist/sandbox/registry.js +93 -0
  409. package/dist/sandbox/registry.js.map +1 -0
  410. package/dist/sandbox/types.d.ts +3 -0
  411. package/dist/sandbox/types.d.ts.map +1 -1
  412. package/dist/sandbox/types.js.map +1 -1
  413. package/dist/sandbox/utils.d.ts.map +1 -1
  414. package/dist/sandbox/utils.js +1 -0
  415. package/dist/sandbox/utils.js.map +1 -1
  416. package/dist/sessions/chat-history-sync.d.ts +2 -2
  417. package/dist/sessions/chat-history-sync.d.ts.map +1 -1
  418. package/dist/sessions/chat-history-sync.js +32 -23
  419. package/dist/sessions/chat-history-sync.js.map +1 -1
  420. package/dist/sessions/migrate-common.js +2 -2
  421. package/dist/sessions/migrate-common.js.map +1 -1
  422. package/dist/sessions/migrate-pi-084.d.ts +0 -1
  423. package/dist/sessions/migrate-pi-084.d.ts.map +1 -1
  424. package/dist/sessions/migrate-pi-084.js +4 -6
  425. package/dist/sessions/migrate-pi-084.js.map +1 -1
  426. package/dist/sessions/migrate-v3.d.ts +0 -1
  427. package/dist/sessions/migrate-v3.d.ts.map +1 -1
  428. package/dist/sessions/migrate-v3.js +3 -5
  429. package/dist/sessions/migrate-v3.js.map +1 -1
  430. package/dist/sessions/session-key.d.ts +0 -1
  431. package/dist/sessions/session-key.d.ts.map +1 -1
  432. package/dist/sessions/session-key.js.map +1 -1
  433. package/dist/sessions/session-store.d.ts.map +1 -1
  434. package/dist/sessions/session-store.js +12 -19
  435. package/dist/sessions/session-store.js.map +1 -1
  436. package/dist/sessions/store.d.ts +0 -1
  437. package/dist/sessions/store.d.ts.map +1 -1
  438. package/dist/sessions/store.js +5 -3
  439. package/dist/sessions/store.js.map +1 -1
  440. package/dist/sessions/types.d.ts +2 -0
  441. package/dist/sessions/types.d.ts.map +1 -1
  442. package/dist/sessions/types.js +1 -0
  443. package/dist/sessions/types.js.map +1 -1
  444. package/dist/settings/apply.d.ts +1 -2
  445. package/dist/settings/apply.d.ts.map +1 -1
  446. package/dist/settings/apply.js.map +1 -1
  447. package/dist/settings/index.d.ts +37 -34
  448. package/dist/settings/index.d.ts.map +1 -1
  449. package/dist/settings/index.js +28 -22
  450. package/dist/settings/index.js.map +1 -1
  451. package/dist/settings/migrate.d.ts +1 -1
  452. package/dist/settings/migrate.d.ts.map +1 -1
  453. package/dist/settings/migrate.js +5 -4
  454. package/dist/settings/migrate.js.map +1 -1
  455. package/dist/types.d.ts +17 -6
  456. package/dist/types.d.ts.map +1 -1
  457. package/dist/types.js +1 -3
  458. package/dist/types.js.map +1 -1
  459. package/dist/unknown-values.d.ts +3 -0
  460. package/dist/unknown-values.d.ts.map +1 -0
  461. package/dist/unknown-values.js +7 -0
  462. package/dist/unknown-values.js.map +1 -0
  463. package/dist/vault/index.d.ts +10 -2
  464. package/dist/vault/index.d.ts.map +1 -1
  465. package/dist/vault/index.js +16 -7
  466. package/dist/vault/index.js.map +1 -1
  467. package/package.json +3 -2
  468. package/dist/adapters/index.d.ts +0 -11
  469. package/dist/adapters/index.d.ts.map +0 -1
  470. package/dist/adapters/index.js +0 -19
  471. package/dist/adapters/index.js.map +0 -1
@@ -1,5 +1,39 @@
1
- import type { ConversationKind, OfficeAddress } from "../index.js";
2
- import type { Attachment } from "../../types.js";
1
+ import type { WebClient } from "@slack/web-api";
2
+ import type { Attachment, ConversationKind, OfficeAddress } from "../../types.js";
3
+ import type { Workspace } from "../../office/types.js";
4
+ import type { SlackMessagingBot } from "./bot.js";
5
+ export interface SlackWebApi {
6
+ auth: Pick<WebClient["auth"], "test">;
7
+ chat: Pick<WebClient["chat"], "postMessage" | "postEphemeral" | "update" | "delete">;
8
+ conversations: Pick<WebClient["conversations"], "open" | "history" | "replies" | "list">;
9
+ users: Pick<WebClient["users"], "list">;
10
+ reactions: Pick<WebClient["reactions"], "add">;
11
+ views: Pick<WebClient["views"], "publish">;
12
+ files: Pick<WebClient["files"], "uploadV2">;
13
+ assistant: {
14
+ threads: Pick<WebClient["assistant"]["threads"], "setSuggestedPrompts" | "setTitle">;
15
+ };
16
+ apiCall: WebClient["apiCall"];
17
+ }
18
+ export interface SlackSocketEventArgs {
19
+ ack: () => Promise<void>;
20
+ event?: unknown;
21
+ body?: unknown;
22
+ }
23
+ export interface SlackSocketConnection {
24
+ on(event: string, listener: (args: SlackSocketEventArgs) => unknown): unknown;
25
+ start(): Promise<unknown>;
26
+ disconnect(): Promise<void>;
27
+ }
28
+ export interface SlackMessagingBotOptions {
29
+ appToken: string;
30
+ botToken: string;
31
+ workspace: Workspace;
32
+ webApi?: SlackWebApi;
33
+ socket?: SlackSocketConnection;
34
+ fetch?: typeof fetch;
35
+ }
36
+ export type SlackResponderBot = Pick<SlackMessagingBot, "getUser" | "getMessagingInfo" | "postMessage" | "postInThread" | "postInThreadBlocks" | "updateMessage" | "deleteMessage" | "logBotResponse" | "tryReserveStreamStart" | "startMessageStream" | "appendMessageStream" | "stopMessageStream" | "uploadFile" | "addReaction" | "setAssistantStatus">;
3
37
  export interface SlackEvent {
4
38
  address: OfficeAddress;
5
39
  type: "mention" | "dm";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/slack/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/slack/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/slack/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ConversationKind, OfficeAddress } from \"../index.js\";\nimport type { Attachment } from \"../../types.js\";\n\nexport interface SlackEvent {\n address: OfficeAddress;\n type: \"mention\" | \"dm\";\n conversationKind: ConversationKind;\n channel: string;\n ts: string;\n thread_ts?: string;\n user: string;\n text: string;\n files?: Array<{ name?: string; url_private_download?: string; url_private?: string }>;\n attachments?: Attachment[];\n sessionKey?: string;\n}\n\nexport interface SlackUser {\n id: string;\n userName: string;\n displayName: string;\n isBot?: boolean;\n}\n\nexport interface SlackChannel {\n id: string;\n name: string;\n isPrivate?: boolean;\n isExternallyShared?: boolean;\n}\n\nexport interface SlackAdapterOptions {\n initialMessageTs?: string;\n replyMode?: \"top-level\" | \"thread\";\n}\n\nexport type SlackSessionRef =\n | { kind: \"channel\"; channelId: string }\n | { kind: \"thread\"; channelId: string; threadTs: string };\n\nexport interface SlackAdapterSessionPlan {\n sessionKey: string;\n rootTs?: string;\n initialMessageTs?: string;\n isThreaded: boolean;\n}\n\nexport interface SlackEventAnchorRunPlan<T = SlackEvent> {\n event: T;\n initialMessageTs?: string;\n}\n\nexport interface SlackBlockAction {\n action_id: string;\n block_id?: string;\n type?: string;\n value?: string;\n selected_option?: { text?: { text?: string }; value?: string };\n selected_options?: Array<{ text?: { text?: string }; value?: string }>;\n}\n\nexport interface SlackBlockActionBody {\n actions?: SlackBlockAction[];\n container?: { channel_id?: string; thread_ts?: string; message_ts?: string };\n user?: { id?: string; username?: string; name?: string };\n}\n\nexport interface PlatformSlackOps {\n postBlocks(\n conversationId: string,\n args: { text: string; blocks: object[]; threadTs?: string },\n ): Promise<{ ts: string }>;\n updateBlocks(\n conversationId: string,\n args: { ts: string; text: string; blocks: object[]; threadTs?: string },\n ): Promise<void>;\n ownsBlockKitMessage(conversationId: string, ts: string, threadTs?: string): boolean;\n}\n\nexport interface SlackBlockKitOps {\n postBlocks(args: { text: string; blocks: object[]; threadTs?: string }): Promise<{ ts: string }>;\n updateBlocks(args: { ts: string; text: string; blocks: object[] }): Promise<void>;\n}\n\nexport interface AssistantThreadPayload {\n user_id?: string;\n channel_id?: string;\n thread_ts?: string;\n context?: AgentContext;\n}\n\nexport interface AgentContext {\n channel_id?: string;\n team_id?: string;\n enterprise_id?: string | null;\n}\n\nexport interface SuggestedPrompt {\n title: string;\n message: string;\n}\n\nexport interface AssistantSurfaceOps {\n postInThread(channel: string, threadTs: string, text: string): Promise<string>;\n setSuggestedPrompts(\n channel: string,\n threadTs: string | undefined,\n prompts: SuggestedPrompt[],\n ): Promise<void>;\n setTitle(channel: string, threadTs: string, title: string): Promise<void>;\n channelName(channelId: string): string | undefined;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/slack/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { WebClient } from \"@slack/web-api\";\nimport type { Attachment, ConversationKind, OfficeAddress } from \"../../types.js\";\nimport type { Workspace } from \"../../office/types.js\";\nimport type { SlackMessagingBot } from \"./bot.js\";\n\nexport interface SlackWebApi {\n auth: Pick<WebClient[\"auth\"], \"test\">;\n chat: Pick<WebClient[\"chat\"], \"postMessage\" | \"postEphemeral\" | \"update\" | \"delete\">;\n conversations: Pick<WebClient[\"conversations\"], \"open\" | \"history\" | \"replies\" | \"list\">;\n users: Pick<WebClient[\"users\"], \"list\">;\n reactions: Pick<WebClient[\"reactions\"], \"add\">;\n views: Pick<WebClient[\"views\"], \"publish\">;\n files: Pick<WebClient[\"files\"], \"uploadV2\">;\n assistant: {\n threads: Pick<WebClient[\"assistant\"][\"threads\"], \"setSuggestedPrompts\" | \"setTitle\">;\n };\n apiCall: WebClient[\"apiCall\"];\n}\n\nexport interface SlackSocketEventArgs {\n ack: () => Promise<void>;\n event?: unknown;\n body?: unknown;\n}\n\nexport interface SlackSocketConnection {\n on(event: string, listener: (args: SlackSocketEventArgs) => unknown): unknown;\n start(): Promise<unknown>;\n disconnect(): Promise<void>;\n}\n\nexport interface SlackMessagingBotOptions {\n appToken: string;\n botToken: string;\n workspace: Workspace;\n webApi?: SlackWebApi;\n socket?: SlackSocketConnection;\n fetch?: typeof fetch;\n}\n\nexport type SlackResponderBot = Pick<\n SlackMessagingBot,\n | \"getUser\"\n | \"getMessagingInfo\"\n | \"postMessage\"\n | \"postInThread\"\n | \"postInThreadBlocks\"\n | \"updateMessage\"\n | \"deleteMessage\"\n | \"logBotResponse\"\n | \"tryReserveStreamStart\"\n | \"startMessageStream\"\n | \"appendMessageStream\"\n | \"stopMessageStream\"\n | \"uploadFile\"\n | \"addReaction\"\n | \"setAssistantStatus\"\n>;\n\nexport interface SlackEvent {\n address: OfficeAddress;\n type: \"mention\" | \"dm\";\n conversationKind: ConversationKind;\n channel: string;\n ts: string;\n thread_ts?: string;\n user: string;\n text: string;\n files?: Array<{ name?: string; url_private_download?: string; url_private?: string }>;\n attachments?: Attachment[];\n sessionKey?: string;\n}\n\nexport interface SlackUser {\n id: string;\n userName: string;\n displayName: string;\n isBot?: boolean;\n}\n\nexport interface SlackChannel {\n id: string;\n name: string;\n isPrivate?: boolean;\n isExternallyShared?: boolean;\n}\n\nexport interface SlackAdapterOptions {\n initialMessageTs?: string;\n replyMode?: \"top-level\" | \"thread\";\n}\n\nexport type SlackSessionRef =\n | { kind: \"channel\"; channelId: string }\n | { kind: \"thread\"; channelId: string; threadTs: string };\n\nexport interface SlackAdapterSessionPlan {\n sessionKey: string;\n rootTs?: string;\n initialMessageTs?: string;\n isThreaded: boolean;\n}\n\nexport interface SlackEventAnchorRunPlan<T = SlackEvent> {\n event: T;\n initialMessageTs?: string;\n}\n\nexport interface SlackBlockAction {\n action_id: string;\n block_id?: string;\n type?: string;\n value?: string;\n selected_option?: { text?: { text?: string }; value?: string };\n selected_options?: Array<{ text?: { text?: string }; value?: string }>;\n}\n\nexport interface SlackBlockActionBody {\n actions?: SlackBlockAction[];\n container?: { channel_id?: string; thread_ts?: string; message_ts?: string };\n user?: { id?: string; username?: string; name?: string };\n}\n\nexport interface PlatformSlackOps {\n postBlocks(\n conversationId: string,\n args: { text: string; blocks: object[]; threadTs?: string },\n ): Promise<{ ts: string }>;\n updateBlocks(\n conversationId: string,\n args: { ts: string; text: string; blocks: object[]; threadTs?: string },\n ): Promise<void>;\n ownsBlockKitMessage(conversationId: string, ts: string, threadTs?: string): boolean;\n}\n\nexport interface SlackBlockKitOps {\n postBlocks(args: { text: string; blocks: object[]; threadTs?: string }): Promise<{ ts: string }>;\n updateBlocks(args: { ts: string; text: string; blocks: object[] }): Promise<void>;\n}\n\nexport interface AssistantThreadPayload {\n user_id?: string;\n channel_id?: string;\n thread_ts?: string;\n context?: AgentContext;\n}\n\nexport interface AgentContext {\n channel_id?: string;\n team_id?: string;\n enterprise_id?: string | null;\n}\n\nexport interface SuggestedPrompt {\n title: string;\n message: string;\n}\n\nexport interface AssistantSurfaceOps {\n postInThread(channel: string, threadTs: string, text: string): Promise<string>;\n setSuggestedPrompts(\n channel: string,\n threadTs: string | undefined,\n prompts: SuggestedPrompt[],\n ): Promise<void>;\n setTitle(channel: string, threadTs: string, title: string): Promise<void>;\n channelName(channelId: string): string | undefined;\n}\n"]}
@@ -1,8 +1,6 @@
1
1
  import type { Message } from "grammy/types";
2
- import type { ConversationEvent, MessagingEventHandler, MessagingInfo } from "../index.js";
3
- import { type MessagingBot } from "../index.js";
4
- import { type Workspace } from "../../office/index.js";
5
- export type { TelegramEvent } from "./types.js";
2
+ import type { ConversationEvent, MessagingEventHandler, MessagingInfo, MessagingBot } from "../../types.js";
3
+ import type { TelegramMessagingBotOptions } from "./types.js";
6
4
  export declare class TelegramMessagingBot implements MessagingBot {
7
5
  private client;
8
6
  private handler;
@@ -14,10 +12,7 @@ export declare class TelegramMessagingBot implements MessagingBot {
14
12
  private queues;
15
13
  private intake;
16
14
  private startupTime;
17
- constructor(handler: MessagingEventHandler, config: {
18
- token: string;
19
- workspace: Workspace;
20
- });
15
+ constructor(handler: MessagingEventHandler, options: TelegramMessagingBotOptions);
21
16
  start(): Promise<void>;
22
17
  stop(): Promise<void>;
23
18
  postMessage(channel: string, text: string): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/bot.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EAErB,aAAa,EACb,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAiC,2BAA2B,EAAE,MAAM,YAAY,CAAC;AA6C7F,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,WAAW,CAAa;IAEhC,YAAY,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,2BAA2B,EAQ/E;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ1B;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhE;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlF;IAEK,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5E;IAED,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAe9C;IAED,gBAAgB,IAAI,aAAa,CAShC;IAEK,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlE;IAEK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlE;IAEK,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOvF;IAEK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;IAEK,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9C;IAEK,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjF;IAED,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE9C;IAED,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9D;IAEK,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAoBhD;IAED,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,qBAAqB;IAsC7B,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,kBAAkB;CAsF3B"}
@@ -1,14 +1,14 @@
1
1
  import { readFileSync } from "node:fs";
2
2
  import { basename } from "node:path";
3
3
  import { Bot as GrammyMessagingBot, InputFile } from "grammy";
4
- import { createConversationEvent } from "../index.js";
5
4
  import * as log from "../../log.js";
6
5
  import { resolveChatSessionKey } from "../../sessions/session-key.js";
7
6
  import { appendBotResponseLog, appendChannelLog, MessagingEventQueue, MessagingIntakeTracker, downloadUrlToFile, withRetry, saveIncomingAttachments, shortNameToUnicodeEmoji, } from "../shared.js";
8
7
  import { COMMAND_MANIFEST, telegramCommandMenu } from "../commands/manifest.js";
9
8
  import { processMessageIntake } from "../intake.js";
10
9
  import { createTelegramAdapters } from "./context.js";
11
- import { createOfficeAddress } from "../../office/index.js";
10
+ import { createConversationEvent, createOfficeAddress } from "../../office/index.js";
11
+ import { errorMessage } from "../../unknown-values.js";
12
12
  function telegramIsRateLimited(err) {
13
13
  return err.error_code === 429;
14
14
  }
@@ -17,7 +17,7 @@ function richMessage(markdown) {
17
17
  return { markdown };
18
18
  }
19
19
  export class TelegramMessagingBot {
20
- constructor(handler, config) {
20
+ constructor(handler, options) {
21
21
  this.botUserId = null;
22
22
  this.botUsername = null;
23
23
  this.stopped = false;
@@ -25,11 +25,11 @@ export class TelegramMessagingBot {
25
25
  this.intake = new MessagingIntakeTracker("Telegram");
26
26
  this.startupTime = 0;
27
27
  this.handler = handler;
28
- this.botToken = config.token;
29
- this.workspace = config.workspace;
30
- this.client = new GrammyMessagingBot(config.token);
28
+ this.botToken = options.token;
29
+ this.workspace = options.workspace;
30
+ this.client = options.client ?? new GrammyMessagingBot(options.token);
31
31
  this.client.catch((err) => {
32
- log.logWarning("Telegram error", err instanceof Error ? err.message : String(err));
32
+ log.logWarning("Telegram error", errorMessage(err));
33
33
  });
34
34
  }
35
35
  async start() {
@@ -43,7 +43,7 @@ export class TelegramMessagingBot {
43
43
  return;
44
44
  this.setupEventHandlers();
45
45
  this.client.start().catch((err) => {
46
- log.logWarning("Telegram polling error", err instanceof Error ? err.message : String(err));
46
+ log.logWarning("Telegram polling error", errorMessage(err));
47
47
  });
48
48
  log.logConnected("Telegram");
49
49
  log.logInfo(`Telegram bot started as @${this.botUsername ?? this.botUserId}`);
@@ -75,7 +75,7 @@ export class TelegramMessagingBot {
75
75
  await this.client.api.editMessageText(parseInt(channel), parseInt(ts), richMessage(text));
76
76
  }
77
77
  catch (err) {
78
- const msg = err instanceof Error ? err.message : String(err);
78
+ const msg = errorMessage(err);
79
79
  if (msg.includes("message is not modified"))
80
80
  return;
81
81
  throw err;
@@ -254,7 +254,7 @@ export class TelegramMessagingBot {
254
254
  this.logToFile(mc.chatId, {
255
255
  date: new Date(mc.msg.date * 1000).toISOString(),
256
256
  ts: mc.msgId,
257
- ...(mc.conversationKind === "shared" && mc.threadTs ? { threadTs: mc.threadTs } : {}),
257
+ threadTs: mc.conversationKind === "shared" && mc.threadTs ? mc.threadTs : undefined,
258
258
  user: mc.userId,
259
259
  userName: mc.userName,
260
260
  text: commandText,
@@ -294,7 +294,7 @@ export class TelegramMessagingBot {
294
294
  logEntryBase: {
295
295
  date: new Date(mc.msg.date * 1000).toISOString(),
296
296
  ts: mc.msgId,
297
- ...(mc.conversationKind === "shared" && mc.threadTs ? { threadTs: mc.threadTs } : {}),
297
+ threadTs: mc.conversationKind === "shared" && mc.threadTs ? mc.threadTs : undefined,
298
298
  user: mc.userId,
299
299
  userName: mc.userName,
300
300
  text: cleanedText,
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/adapters/telegram/bot.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { basename } from \"node:path\";\nimport { Bot as GrammyMessagingBot, InputFile } from \"grammy\";\nimport type { Message } from \"grammy/types\";\nimport type {\n ConversationEvent,\n MessagingEventHandler,\n ConversationKind,\n MessagingInfo,\n} from \"../index.js\";\nimport { createConversationEvent, type MessagingBot } from \"../index.js\";\nimport type { TelegramEvent } from \"./types.js\";\nimport * as log from \"../../log.js\";\nimport { resolveChatSessionKey } from \"../../sessions/session-key.js\";\nimport {\n appendBotResponseLog,\n appendChannelLog,\n MessagingEventQueue,\n MessagingIntakeTracker,\n downloadUrlToFile,\n withRetry,\n saveIncomingAttachments,\n shortNameToUnicodeEmoji,\n type IncomingAttachment,\n} from \"../shared.js\";\nimport { COMMAND_MANIFEST, telegramCommandMenu } from \"../commands/manifest.js\";\nimport { processMessageIntake } from \"../intake.js\";\nimport { createTelegramAdapters } from \"./context.js\";\nimport { createOfficeAddress, type Workspace } from \"../../office/index.js\";\n\nfunction telegramIsRateLimited(err: Error): boolean {\n return (err as { error_code?: number }).error_code === 429;\n}\n\nconst telegramRetry = <T>(fn: () => Promise<T>): Promise<T> =>\n withRetry(fn, { isRateLimited: telegramIsRateLimited });\n\nexport type { TelegramEvent } from \"./types.js\";\n\ninterface MessageContext {\n msg: Message;\n text: string;\n chatId: string;\n chatType: string;\n conversationKind: ConversationKind;\n userId: string;\n userName: string;\n msgId: string;\n threadTs: string | undefined;\n sessionKey: string;\n}\n\nfunction richMessage(markdown: string): { markdown: string } {\n return { markdown };\n}\n\nexport class TelegramMessagingBot implements MessagingBot {\n private client: GrammyMessagingBot;\n private handler: MessagingEventHandler;\n private botToken: string;\n private workspace: Workspace;\n private botUserId: string | null = null;\n private botUsername: string | null = null;\n private stopped = false;\n private queues = new Map<string, MessagingEventQueue>();\n private intake = new MessagingIntakeTracker(\"Telegram\");\n private startupTime: number = 0;\n\n constructor(handler: MessagingEventHandler, config: { token: string; workspace: Workspace }) {\n this.handler = handler;\n this.botToken = config.token;\n this.workspace = config.workspace;\n this.client = new GrammyMessagingBot(config.token);\n this.client.catch((err) => {\n log.logWarning(\"Telegram error\", err instanceof Error ? err.message : String(err));\n });\n }\n\n async start(): Promise<void> {\n this.stopped = false;\n const me = await this.client.api.getMe();\n this.botUserId = String(me.id);\n this.botUsername = me.username ?? null;\n this.startupTime = Date.now();\n\n await this.client.api.setMyCommands(telegramCommandMenu());\n if (this.stopped) return;\n\n this.setupEventHandlers();\n\n this.client.start().catch((err) => {\n log.logWarning(\"Telegram polling error\", err instanceof Error ? err.message : String(err));\n });\n\n log.logConnected(\"Telegram\");\n log.logInfo(`Telegram bot started as @${this.botUsername ?? this.botUserId}`);\n }\n\n async stop(): Promise<void> {\n this.stopped = true;\n try {\n await this.client.stop();\n } finally {\n await this.intake.close();\n await Promise.all([...this.queues.values()].map((queue) => queue.close()));\n }\n }\n\n async postMessage(channel: string, text: string): Promise<string> {\n const result = await this.postMessageRaw(parseInt(channel), text);\n return String(result);\n }\n\n async addReaction(channel: string, messageTs: string, emoji: string): Promise<void> {\n await telegramRetry(async () => {\n await this.client.api.setMessageReaction(parseInt(channel), parseInt(messageTs), [\n { type: \"emoji\", emoji: shortNameToUnicodeEmoji(emoji) as never },\n ]);\n });\n }\n\n async updateMessage(channel: string, ts: string, text: string): Promise<void> {\n return telegramRetry(async () => {\n try {\n await this.client.api.editMessageText(parseInt(channel), parseInt(ts), richMessage(text));\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n if (msg.includes(\"message is not modified\")) return;\n throw err;\n }\n });\n }\n\n enqueueEvent(event: ConversationEvent): boolean {\n if (this.stopped) return false;\n const conversationId = event.address.conversationId;\n const queue = this.getQueue(conversationId);\n if (queue.size() >= 5) {\n log.logWarning(\n `Event queue full for ${conversationId}, discarding: ${event.text.substring(0, 50)}`,\n );\n return false;\n }\n log.logInfo(`Enqueueing event for ${conversationId}: ${event.text.substring(0, 50)}`);\n return queue.enqueue(() => {\n const context = createTelegramAdapters(event as TelegramEvent, this);\n return this.handler.handleEvent(event, this, context);\n });\n }\n\n getMessagingInfo(): MessagingInfo {\n return {\n name: \"telegram\",\n trustModel: \"membership\",\n formattingGuide:\n \"## Telegram Formatting (Markdown)\\nWrite ordinary Markdown — headings, lists, tables, code fences, quotes and links all render natively. Nothing needs converting by hand.\",\n channels: [],\n users: [],\n };\n }\n\n async postMessageRaw(chatId: number, text: string): Promise<number> {\n return telegramRetry(async () => {\n const result = await this.client.api.sendRichMessage(chatId, richMessage(text));\n return result.message_id;\n });\n }\n\n async postPlainMessage(chatId: number, text: string): Promise<void> {\n return telegramRetry(async () => {\n await this.client.api.sendMessage(chatId, text);\n });\n }\n\n async postReply(chatId: number, replyToMessageId: number, text: string): Promise<number> {\n return telegramRetry(async () => {\n const result = await this.client.api.sendRichMessage(chatId, richMessage(text), {\n reply_parameters: { message_id: replyToMessageId },\n });\n return result.message_id;\n });\n }\n\n async deleteMessageRaw(chatId: number, messageId: number): Promise<void> {\n await this.client.api.deleteMessage(chatId, messageId);\n }\n\n async sendTyping(chatId: number): Promise<void> {\n await this.client.api.sendChatAction(chatId, \"typing\");\n }\n\n async uploadFile(channel: string, filePath: string, title?: string): Promise<void> {\n return telegramRetry(async () => {\n const fileName = title ?? basename(filePath);\n const fileContent = readFileSync(filePath);\n await this.client.api.sendDocument(parseInt(channel), new InputFile(fileContent, fileName));\n });\n }\n\n logToFile(channel: string, entry: object): void {\n appendChannelLog(this.workspace.office(createOfficeAddress(\"telegram\", channel)), entry);\n }\n\n logBotResponse(channel: string, text: string, ts: string): void {\n appendBotResponseLog(this.workspace.office(createOfficeAddress(\"telegram\", channel)), text, ts);\n }\n\n async processAttachments(\n chatId: string,\n message: Message,\n ): Promise<{ name: string; localPath: string }[]> {\n const items: IncomingAttachment[] = [];\n\n const photo = message.photo?.[message.photo.length - 1];\n if (photo) {\n items.push(this.telegramFileItem(photo.file_id, `photo_${message.message_id}.jpg`));\n }\n if (message.document) {\n const doc = message.document;\n items.push(\n this.telegramFileItem(doc.file_id, doc.file_name ?? `document_${message.message_id}`),\n );\n }\n\n const office = this.workspace.office(createOfficeAddress(\"telegram\", chatId));\n const { saved, failed } = await saveIncomingAttachments(office, items);\n for (const failure of failed) {\n log.logWarning(`Failed to process Telegram file`, `${failure.name}: ${failure.error}`);\n }\n return saved.map((item) => ({ name: item.original, localPath: item.localPath }));\n }\n\n private telegramFileItem(fileId: string, name: string): IncomingAttachment {\n return {\n name,\n download: async (destPath) => {\n const file = await this.client.api.getFile(fileId);\n if (!file.file_path) throw new Error(`Telegram file has no path: ${fileId}`);\n await downloadUrlToFile(\n `https://api.telegram.org/file/bot${this.botToken}/${file.file_path}`,\n destPath,\n );\n },\n };\n }\n\n private getQueue(channelId: string): MessagingEventQueue {\n let queue = this.queues.get(channelId);\n if (!queue) {\n queue = new MessagingEventQueue(\"Telegram\");\n this.queues.set(channelId, queue);\n }\n return queue;\n }\n\n private extractMessageContext(msg: Message): MessageContext | null {\n if (!msg) return null;\n if (msg.date * 1000 < this.startupTime) return null;\n if (msg.from?.is_bot) return null;\n\n const text = msg.text ?? msg.caption ?? \"\";\n if (!text && !msg.document && !msg.photo) return null;\n\n const chatId = String(msg.chat.id);\n const chatType = msg.chat.type;\n const userId = String(msg.from?.id ?? \"unknown\");\n const userName = msg.from?.username ?? msg.from?.first_name ?? userId;\n const msgId = String(msg.message_id);\n const replyToId = msg.reply_to_message?.message_id;\n const threadTs = replyToId ? String(replyToId) : undefined;\n const conversationKind = chatType === \"private\" ? \"direct\" : \"shared\";\n\n const sessionKey = resolveChatSessionKey({\n conversationId: chatId,\n conversationKind,\n messageId: msgId,\n threadTs,\n });\n\n return {\n msg,\n text,\n chatId,\n chatType,\n conversationKind,\n userId,\n userName,\n msgId,\n threadTs,\n sessionKey,\n };\n }\n\n private isAddressedToMessagingBot(text: string, chatType: string): boolean {\n if (chatType === \"private\") return true;\n if (!this.botUsername) return false;\n return text.toLowerCase().includes(`@${this.botUsername.toLowerCase()}`);\n }\n\n private cleanText(text: string): string {\n if (!this.botUsername) return text.trim();\n return text.replace(new RegExp(`@${this.botUsername}`, \"gi\"), \"\").trim();\n }\n\n private setupEventHandlers(): void {\n for (const entry of COMMAND_MANIFEST) {\n if (!entry.telegramCommand || entry.magicWord) continue;\n this.client.command(entry.name, (ctx) =>\n this.intake.run(async () => {\n const mc = ctx.message ? this.extractMessageContext(ctx.message) : null;\n if (!mc) return;\n const commandText = this.cleanText(mc.text);\n const event = createConversationEvent({\n platform: \"telegram\",\n type: \"command\",\n conversationId: mc.chatId,\n conversationKind: mc.conversationKind,\n ts: mc.msgId,\n thread_ts: mc.threadTs,\n sessionKey: mc.sessionKey,\n user: mc.userId,\n userName: mc.userName,\n text: commandText,\n attachments: [],\n }) as TelegramEvent;\n this.logToFile(mc.chatId, {\n date: new Date(mc.msg.date * 1000).toISOString(),\n ts: mc.msgId,\n ...(mc.conversationKind === \"shared\" && mc.threadTs ? { threadTs: mc.threadTs } : {}),\n user: mc.userId,\n userName: mc.userName,\n text: commandText,\n attachments: [],\n isMessagingBot: false,\n });\n await this.handler.handleEvent(event, this, createTelegramAdapters(event, this));\n }),\n );\n }\n\n this.client.on(\"message\", (ctx) =>\n this.intake.run(async () => {\n const mc = ctx.message ? this.extractMessageContext(ctx.message) : null;\n if (!mc) return;\n\n const cleanedText = this.cleanText(mc.text);\n const addressedToMessagingBot = this.isAddressedToMessagingBot(mc.text, mc.chatType);\n const addressed = mc.chatType === \"private\" || addressedToMessagingBot;\n\n const eventBase = createConversationEvent({\n platform: \"telegram\",\n type: \"message\",\n conversationId: mc.chatId,\n conversationKind: mc.conversationKind,\n ts: mc.msgId,\n thread_ts: mc.threadTs,\n sessionKey: mc.sessionKey,\n user: mc.userId,\n userName: mc.userName,\n text: cleanedText,\n }) as TelegramEvent;\n\n await processMessageIntake({\n eventBase,\n addressed,\n magicWord: {\n addressed: addressedToMessagingBot || mc.chatType === \"private\",\n scopeFallback: \"always\",\n },\n busyPolicy: \"reject\",\n logEntryBase: {\n date: new Date(mc.msg.date * 1000).toISOString(),\n ts: mc.msgId,\n ...(mc.conversationKind === \"shared\" && mc.threadTs ? { threadTs: mc.threadTs } : {}),\n user: mc.userId,\n userName: mc.userName,\n text: cleanedText,\n isMessagingBot: false,\n },\n log: (entry) => this.logToFile(mc.chatId, entry),\n processAttachments: () => this.processAttachments(mc.chatId, mc.msg),\n queueKey: mc.sessionKey,\n enqueue: (queueKey, work) => this.getQueue(queueKey).enqueue(work),\n handler: this.handler,\n bot: this,\n createContext: (event) => createTelegramAdapters(event, this),\n });\n }),\n );\n }\n}\n"]}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/adapters/telegram/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,IAAI,kBAAkB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAU9D,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,SAAS,EACT,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,SAAS,qBAAqB,CAAC,GAAU;IACvC,OAAQ,GAA+B,CAAC,UAAU,KAAK,GAAG,CAAC;AAC7D,CAAC;AAED,MAAM,aAAa,GAAG,CAAI,EAAoB,EAAc,EAAE,CAC5D,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAe1D,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,OAAO,oBAAoB;IAY/B,YAAY,OAA8B,EAAE,OAAoC;QAPxE,cAAS,GAAkB,IAAI,CAAC;QAChC,gBAAW,GAAkB,IAAI,CAAC;QAClC,YAAO,GAAG,KAAK,CAAC;QAChB,WAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;QAChD,WAAM,GAAG,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAChD,gBAAW,GAAW,CAAC,CAAC;QAG9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,GAAG,CAAC,UAAU,CAAC,wBAAwB,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC7B,GAAG,CAAC,OAAO,CAAC,4BAA4B,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAY;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,SAAiB,EAAE,KAAa;QACjE,MAAM,aAAa,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC/E,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAU,EAAE;aAClE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,EAAU,EAAE,IAAY;QAC3D,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC;oBAAE,OAAO;gBACpD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAwB;QACnC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,UAAU,CACZ,wBAAwB,cAAc,iBAAiB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CACrF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,wBAAwB,cAAc,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;YACxB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAsB,EAAE,IAAI,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,YAAY;YACxB,eAAe,EACb,4KAA4K;YAC9K,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,IAAY;QAC/C,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,IAAY;QACjD,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,gBAAwB,EAAE,IAAY;QACpE,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;gBAC9E,gBAAgB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;aACnD,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,SAAiB;QACtD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,QAAgB,EAAE,KAAc;QAChE,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,OAAe,EAAE,KAAa;QACtC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,IAAY,EAAE,EAAU;QACtD,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,MAAc,EACd,OAAgB;QAEhB,MAAM,KAAK,GAAyB,EAAE,CAAC;QAEvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,OAAO,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC7B,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,IAAI,YAAY,OAAO,CAAC,UAAU,EAAE,CAAC,CACtF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvE,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAC7B,GAAG,CAAC,UAAU,CAAC,iCAAiC,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAEO,gBAAgB,CAAC,MAAc,EAAE,IAAY;QACnD,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;gBAC7E,MAAM,iBAAiB,CACrB,oCAAoC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,EACrE,QAAQ,CACT,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,SAAiB;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,qBAAqB,CAAC,GAAY;QACxC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,MAAM,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC;QACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,MAAM,gBAAgB,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEtE,MAAM,UAAU,GAAG,qBAAqB,CAAC;YACvC,cAAc,EAAE,MAAM;YACtB,gBAAgB;YAChB,SAAS,EAAE,KAAK;YAChB,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO;YACL,GAAG;YACH,IAAI;YACJ,MAAM;YACN,QAAQ;YACR,gBAAgB;YAChB,MAAM;YACN,QAAQ;YACR,KAAK;YACL,QAAQ;YACR,UAAU;SACX,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,IAAY,EAAE,QAAgB;QAC9D,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3E,CAAC;IAEO,kBAAkB;QACxB,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,SAAS;gBAAE,SAAS;YACxD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxE,IAAI,CAAC,EAAE;oBAAE,OAAO;gBAChB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,uBAAuB,CAAC;oBACpC,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE,EAAE,CAAC,MAAM;oBACzB,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;oBACrC,EAAE,EAAE,EAAE,CAAC,KAAK;oBACZ,SAAS,EAAE,EAAE,CAAC,QAAQ;oBACtB,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,IAAI,EAAE,EAAE,CAAC,MAAM;oBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,EAAE;iBAChB,CAAkB,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE;oBACxB,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;oBAChD,EAAE,EAAE,EAAE,CAAC,KAAK;oBACZ,QAAQ,EAAE,EAAE,CAAC,gBAAgB,KAAK,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBACnF,IAAI,EAAE,EAAE,CAAC,MAAM;oBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,EAAE;oBACf,cAAc,EAAE,KAAK;iBACtB,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YACnF,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxE,IAAI,CAAC,EAAE;gBAAE,OAAO;YAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,uBAAuB,GAAG,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,uBAAuB,CAAC;YAEvE,MAAM,SAAS,GAAG,uBAAuB,CAAC;gBACxC,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,SAAS;gBACf,cAAc,EAAE,EAAE,CAAC,MAAM;gBACzB,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;gBACrC,EAAE,EAAE,EAAE,CAAC,KAAK;gBACZ,SAAS,EAAE,EAAE,CAAC,QAAQ;gBACtB,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,IAAI,EAAE,EAAE,CAAC,MAAM;gBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,IAAI,EAAE,WAAW;aAClB,CAAkB,CAAC;YAEpB,MAAM,oBAAoB,CAAC;gBACzB,SAAS;gBACT,SAAS;gBACT,SAAS,EAAE;oBACT,SAAS,EAAE,uBAAuB,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS;oBAC/D,aAAa,EAAE,QAAQ;iBACxB;gBACD,UAAU,EAAE,QAAQ;gBACpB,YAAY,EAAE;oBACZ,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;oBAChD,EAAE,EAAE,EAAE,CAAC,KAAK;oBACZ,QAAQ,EAAE,EAAE,CAAC,gBAAgB,KAAK,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBACnF,IAAI,EAAE,EAAE,CAAC,MAAM;oBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,IAAI,EAAE,WAAW;oBACjB,cAAc,EAAE,KAAK;iBACtB;gBACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;gBAChD,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC;gBACpE,QAAQ,EAAE,EAAE,CAAC,UAAU;gBACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;gBAClE,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,EAAE,IAAI;gBACT,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { basename } from \"node:path\";\nimport { Bot as GrammyMessagingBot, InputFile } from \"grammy\";\nimport type { Message } from \"grammy/types\";\nimport type {\n ConversationEvent,\n MessagingEventHandler,\n ConversationKind,\n MessagingInfo,\n MessagingBot,\n} from \"../../types.js\";\nimport type { TelegramClient, TelegramEvent, TelegramMessagingBotOptions } from \"./types.js\";\nimport * as log from \"../../log.js\";\nimport { resolveChatSessionKey } from \"../../sessions/session-key.js\";\nimport {\n appendBotResponseLog,\n appendChannelLog,\n MessagingEventQueue,\n MessagingIntakeTracker,\n downloadUrlToFile,\n withRetry,\n saveIncomingAttachments,\n shortNameToUnicodeEmoji,\n} from \"../shared.js\";\nimport type { IncomingAttachment } from \"../types.js\";\nimport { COMMAND_MANIFEST, telegramCommandMenu } from \"../commands/manifest.js\";\nimport { processMessageIntake } from \"../intake.js\";\nimport { createTelegramAdapters } from \"./context.js\";\nimport { createConversationEvent, createOfficeAddress } from \"../../office/index.js\";\nimport type { Workspace } from \"../../office/types.js\";\nimport { errorMessage } from \"../../unknown-values.js\";\n\nfunction telegramIsRateLimited(err: Error): boolean {\n return (err as { error_code?: number }).error_code === 429;\n}\n\nconst telegramRetry = <T>(fn: () => Promise<T>): Promise<T> =>\n withRetry(fn, { isRateLimited: telegramIsRateLimited });\n\ninterface MessageContext {\n msg: Message;\n text: string;\n chatId: string;\n chatType: string;\n conversationKind: ConversationKind;\n userId: string;\n userName: string;\n msgId: string;\n threadTs: string | undefined;\n sessionKey: string;\n}\n\nfunction richMessage(markdown: string): { markdown: string } {\n return { markdown };\n}\n\nexport class TelegramMessagingBot implements MessagingBot {\n private client: TelegramClient;\n private handler: MessagingEventHandler;\n private botToken: string;\n private workspace: Workspace;\n private botUserId: string | null = null;\n private botUsername: string | null = null;\n private stopped = false;\n private queues = new Map<string, MessagingEventQueue>();\n private intake = new MessagingIntakeTracker(\"Telegram\");\n private startupTime: number = 0;\n\n constructor(handler: MessagingEventHandler, options: TelegramMessagingBotOptions) {\n this.handler = handler;\n this.botToken = options.token;\n this.workspace = options.workspace;\n this.client = options.client ?? new GrammyMessagingBot(options.token);\n this.client.catch((err) => {\n log.logWarning(\"Telegram error\", errorMessage(err));\n });\n }\n\n async start(): Promise<void> {\n this.stopped = false;\n const me = await this.client.api.getMe();\n this.botUserId = String(me.id);\n this.botUsername = me.username ?? null;\n this.startupTime = Date.now();\n\n await this.client.api.setMyCommands(telegramCommandMenu());\n if (this.stopped) return;\n\n this.setupEventHandlers();\n\n this.client.start().catch((err) => {\n log.logWarning(\"Telegram polling error\", errorMessage(err));\n });\n\n log.logConnected(\"Telegram\");\n log.logInfo(`Telegram bot started as @${this.botUsername ?? this.botUserId}`);\n }\n\n async stop(): Promise<void> {\n this.stopped = true;\n try {\n await this.client.stop();\n } finally {\n await this.intake.close();\n await Promise.all([...this.queues.values()].map((queue) => queue.close()));\n }\n }\n\n async postMessage(channel: string, text: string): Promise<string> {\n const result = await this.postMessageRaw(parseInt(channel), text);\n return String(result);\n }\n\n async addReaction(channel: string, messageTs: string, emoji: string): Promise<void> {\n await telegramRetry(async () => {\n await this.client.api.setMessageReaction(parseInt(channel), parseInt(messageTs), [\n { type: \"emoji\", emoji: shortNameToUnicodeEmoji(emoji) as never },\n ]);\n });\n }\n\n async updateMessage(channel: string, ts: string, text: string): Promise<void> {\n return telegramRetry(async () => {\n try {\n await this.client.api.editMessageText(parseInt(channel), parseInt(ts), richMessage(text));\n } catch (err) {\n const msg = errorMessage(err);\n if (msg.includes(\"message is not modified\")) return;\n throw err;\n }\n });\n }\n\n enqueueEvent(event: ConversationEvent): boolean {\n if (this.stopped) return false;\n const conversationId = event.address.conversationId;\n const queue = this.getQueue(conversationId);\n if (queue.size() >= 5) {\n log.logWarning(\n `Event queue full for ${conversationId}, discarding: ${event.text.substring(0, 50)}`,\n );\n return false;\n }\n log.logInfo(`Enqueueing event for ${conversationId}: ${event.text.substring(0, 50)}`);\n return queue.enqueue(() => {\n const context = createTelegramAdapters(event as TelegramEvent, this);\n return this.handler.handleEvent(event, this, context);\n });\n }\n\n getMessagingInfo(): MessagingInfo {\n return {\n name: \"telegram\",\n trustModel: \"membership\",\n formattingGuide:\n \"## Telegram Formatting (Markdown)\\nWrite ordinary Markdown — headings, lists, tables, code fences, quotes and links all render natively. Nothing needs converting by hand.\",\n channels: [],\n users: [],\n };\n }\n\n async postMessageRaw(chatId: number, text: string): Promise<number> {\n return telegramRetry(async () => {\n const result = await this.client.api.sendRichMessage(chatId, richMessage(text));\n return result.message_id;\n });\n }\n\n async postPlainMessage(chatId: number, text: string): Promise<void> {\n return telegramRetry(async () => {\n await this.client.api.sendMessage(chatId, text);\n });\n }\n\n async postReply(chatId: number, replyToMessageId: number, text: string): Promise<number> {\n return telegramRetry(async () => {\n const result = await this.client.api.sendRichMessage(chatId, richMessage(text), {\n reply_parameters: { message_id: replyToMessageId },\n });\n return result.message_id;\n });\n }\n\n async deleteMessageRaw(chatId: number, messageId: number): Promise<void> {\n await this.client.api.deleteMessage(chatId, messageId);\n }\n\n async sendTyping(chatId: number): Promise<void> {\n await this.client.api.sendChatAction(chatId, \"typing\");\n }\n\n async uploadFile(channel: string, filePath: string, title?: string): Promise<void> {\n return telegramRetry(async () => {\n const fileName = title ?? basename(filePath);\n const fileContent = readFileSync(filePath);\n await this.client.api.sendDocument(parseInt(channel), new InputFile(fileContent, fileName));\n });\n }\n\n logToFile(channel: string, entry: object): void {\n appendChannelLog(this.workspace.office(createOfficeAddress(\"telegram\", channel)), entry);\n }\n\n logBotResponse(channel: string, text: string, ts: string): void {\n appendBotResponseLog(this.workspace.office(createOfficeAddress(\"telegram\", channel)), text, ts);\n }\n\n async processAttachments(\n chatId: string,\n message: Message,\n ): Promise<{ name: string; localPath: string }[]> {\n const items: IncomingAttachment[] = [];\n\n const photo = message.photo?.[message.photo.length - 1];\n if (photo) {\n items.push(this.telegramFileItem(photo.file_id, `photo_${message.message_id}.jpg`));\n }\n if (message.document) {\n const doc = message.document;\n items.push(\n this.telegramFileItem(doc.file_id, doc.file_name ?? `document_${message.message_id}`),\n );\n }\n\n const office = this.workspace.office(createOfficeAddress(\"telegram\", chatId));\n const { saved, failed } = await saveIncomingAttachments(office, items);\n for (const failure of failed) {\n log.logWarning(`Failed to process Telegram file`, `${failure.name}: ${failure.error}`);\n }\n return saved.map((item) => ({ name: item.original, localPath: item.localPath }));\n }\n\n private telegramFileItem(fileId: string, name: string): IncomingAttachment {\n return {\n name,\n download: async (destPath) => {\n const file = await this.client.api.getFile(fileId);\n if (!file.file_path) throw new Error(`Telegram file has no path: ${fileId}`);\n await downloadUrlToFile(\n `https://api.telegram.org/file/bot${this.botToken}/${file.file_path}`,\n destPath,\n );\n },\n };\n }\n\n private getQueue(channelId: string): MessagingEventQueue {\n let queue = this.queues.get(channelId);\n if (!queue) {\n queue = new MessagingEventQueue(\"Telegram\");\n this.queues.set(channelId, queue);\n }\n return queue;\n }\n\n private extractMessageContext(msg: Message): MessageContext | null {\n if (!msg) return null;\n if (msg.date * 1000 < this.startupTime) return null;\n if (msg.from?.is_bot) return null;\n\n const text = msg.text ?? msg.caption ?? \"\";\n if (!text && !msg.document && !msg.photo) return null;\n\n const chatId = String(msg.chat.id);\n const chatType = msg.chat.type;\n const userId = String(msg.from?.id ?? \"unknown\");\n const userName = msg.from?.username ?? msg.from?.first_name ?? userId;\n const msgId = String(msg.message_id);\n const replyToId = msg.reply_to_message?.message_id;\n const threadTs = replyToId ? String(replyToId) : undefined;\n const conversationKind = chatType === \"private\" ? \"direct\" : \"shared\";\n\n const sessionKey = resolveChatSessionKey({\n conversationId: chatId,\n conversationKind,\n messageId: msgId,\n threadTs,\n });\n\n return {\n msg,\n text,\n chatId,\n chatType,\n conversationKind,\n userId,\n userName,\n msgId,\n threadTs,\n sessionKey,\n };\n }\n\n private isAddressedToMessagingBot(text: string, chatType: string): boolean {\n if (chatType === \"private\") return true;\n if (!this.botUsername) return false;\n return text.toLowerCase().includes(`@${this.botUsername.toLowerCase()}`);\n }\n\n private cleanText(text: string): string {\n if (!this.botUsername) return text.trim();\n return text.replace(new RegExp(`@${this.botUsername}`, \"gi\"), \"\").trim();\n }\n\n private setupEventHandlers(): void {\n for (const entry of COMMAND_MANIFEST) {\n if (!entry.telegramCommand || entry.magicWord) continue;\n this.client.command(entry.name, (ctx) =>\n this.intake.run(async () => {\n const mc = ctx.message ? this.extractMessageContext(ctx.message) : null;\n if (!mc) return;\n const commandText = this.cleanText(mc.text);\n const event = createConversationEvent({\n platform: \"telegram\",\n type: \"command\",\n conversationId: mc.chatId,\n conversationKind: mc.conversationKind,\n ts: mc.msgId,\n thread_ts: mc.threadTs,\n sessionKey: mc.sessionKey,\n user: mc.userId,\n userName: mc.userName,\n text: commandText,\n attachments: [],\n }) as TelegramEvent;\n this.logToFile(mc.chatId, {\n date: new Date(mc.msg.date * 1000).toISOString(),\n ts: mc.msgId,\n threadTs: mc.conversationKind === \"shared\" && mc.threadTs ? mc.threadTs : undefined,\n user: mc.userId,\n userName: mc.userName,\n text: commandText,\n attachments: [],\n isMessagingBot: false,\n });\n await this.handler.handleEvent(event, this, createTelegramAdapters(event, this));\n }),\n );\n }\n\n this.client.on(\"message\", (ctx) =>\n this.intake.run(async () => {\n const mc = ctx.message ? this.extractMessageContext(ctx.message) : null;\n if (!mc) return;\n\n const cleanedText = this.cleanText(mc.text);\n const addressedToMessagingBot = this.isAddressedToMessagingBot(mc.text, mc.chatType);\n const addressed = mc.chatType === \"private\" || addressedToMessagingBot;\n\n const eventBase = createConversationEvent({\n platform: \"telegram\",\n type: \"message\",\n conversationId: mc.chatId,\n conversationKind: mc.conversationKind,\n ts: mc.msgId,\n thread_ts: mc.threadTs,\n sessionKey: mc.sessionKey,\n user: mc.userId,\n userName: mc.userName,\n text: cleanedText,\n }) as TelegramEvent;\n\n await processMessageIntake({\n eventBase,\n addressed,\n magicWord: {\n addressed: addressedToMessagingBot || mc.chatType === \"private\",\n scopeFallback: \"always\",\n },\n busyPolicy: \"reject\",\n logEntryBase: {\n date: new Date(mc.msg.date * 1000).toISOString(),\n ts: mc.msgId,\n threadTs: mc.conversationKind === \"shared\" && mc.threadTs ? mc.threadTs : undefined,\n user: mc.userId,\n userName: mc.userName,\n text: cleanedText,\n isMessagingBot: false,\n },\n log: (entry) => this.logToFile(mc.chatId, entry),\n processAttachments: () => this.processAttachments(mc.chatId, mc.msg),\n queueKey: mc.sessionKey,\n enqueue: (queueKey, work) => this.getQueue(queueKey).enqueue(work),\n handler: this.handler,\n bot: this,\n createContext: (event) => createTelegramAdapters(event, this),\n });\n }),\n );\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { ConversationContext } from "../index.js";
2
- import type { TelegramMessagingBot, TelegramEvent } from "./bot.js";
3
- export declare function createTelegramAdapters(event: TelegramEvent, bot: TelegramMessagingBot): ConversationContext;
1
+ import type { ConversationContext } from "../../types.js";
2
+ import type { TelegramEvent, TelegramResponseBot } from "./types.js";
3
+ export declare function createTelegramAdapters(event: TelegramEvent, bot: TelegramResponseBot): ConversationContext;
4
4
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAWpE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,oBAAoB,GACxB,mBAAmB,CA6DrB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAI1E,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAWrE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,mBAAmB,GACvB,mBAAmB,CA6DrB"}
@@ -1,7 +1,7 @@
1
- import { createConversationMessage } from "../index.js";
1
+ import { createConversationMessage } from "../../office/index.js";
2
2
  import { deriveSessionKey } from "../../sessions/session-key.js";
3
3
  import { createProgressiveRenderer } from "../progressive-renderer.js";
4
- import { formatToolArgs } from "../shared.js";
4
+ import { formatToolArgs } from "../../harness/tool-args.js";
5
5
  const MAX_LENGTH = 30000;
6
6
  function formatToolResult(result) {
7
7
  const argsFormatted = formatToolArgs(result.args);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/adapters/telegram/context.ts"],"names":[],"mappings":"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","sourcesContent":["import { createConversationMessage } from \"../index.js\";\nimport type { ChatToolResult, ConversationContext } from \"../index.js\";\nimport { deriveSessionKey } from \"../../sessions/session-key.js\";\nimport { createProgressiveRenderer } from \"../progressive-renderer.js\";\nimport { formatToolArgs } from \"../shared.js\";\nimport type { TelegramMessagingBot, TelegramEvent } from \"./bot.js\";\n\nconst MAX_LENGTH = 30000;\n\nfunction formatToolResult(result: ChatToolResult): string {\n const argsFormatted = formatToolArgs(result.args);\n const duration = (result.durationMs / 1000).toFixed(1);\n const title = `${result.isError ? \"Error\" : \"Done\"} ${result.toolName}${result.label ? `: ${result.label}` : \"\"} (${duration}s)`;\n return [title, argsFormatted, result.result].filter(Boolean).join(\"\\n\\n\");\n}\n\nexport function createTelegramAdapters(\n event: TelegramEvent,\n bot: TelegramMessagingBot,\n): ConversationContext {\n const conversationId = event.address.conversationId;\n const chatId = parseInt(conversationId);\n const replyToId = event.thread_ts ? parseInt(event.thread_ts) : null;\n\n const message = createConversationMessage({\n platform: \"telegram\",\n conversationId,\n address: event.address,\n id: event.ts,\n sessionKey: deriveSessionKey(event),\n conversationKind: event.conversationKind,\n userId: event.user,\n userName: event.userName,\n text: event.text,\n attachments: event.attachments,\n threadTs: event.thread_ts,\n });\n\n const platform = bot.getMessagingInfo();\n\n const { responder } = createProgressiveRenderer({\n label: \"Telegram\",\n maxLength: MAX_LENGTH,\n formatContinuation: (partNum: number): string => `(continued ${partNum})`,\n errorPrefix: \"Error: \",\n supportsDeltas: true,\n typing: {\n send: () => bot.sendTyping(chatId),\n intervalMs: 4000,\n },\n formatToolResult,\n responseErrorContext: (responseId) => ({\n platform: \"telegram\",\n conversationId,\n chatId,\n messageId: message.id,\n sessionKey: message.sessionKey,\n responseMessageId: responseId,\n replyToId,\n conversationKind: message.conversationKind,\n }),\n notifySendFailure: async (errorMessage) => {\n await bot.postPlainMessage(chatId, `⚠️ 發送失敗:${errorMessage}`);\n },\n post: async (text) => {\n const id =\n replyToId !== null\n ? await bot.postReply(chatId, replyToId, text)\n : await bot.postMessageRaw(chatId, text);\n return String(id);\n },\n update: (id, text) => bot.updateMessage(conversationId, id, text),\n postExtra: (text) => bot.postMessageRaw(chatId, text),\n delete: (id) => bot.deleteMessageRaw(chatId, Number(id)),\n logBotResponse: (text, id) => bot.logBotResponse(conversationId, text, id),\n uploadFile: (filePath, title) => bot.uploadFile(conversationId, filePath, title),\n react: (emoji) => bot.addReaction(conversationId, event.ts, emoji),\n });\n\n return { address: message.address, message, responder, platform };\n}\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/adapters/telegram/context.ts"],"names":[],"mappings":"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","sourcesContent":["import { createConversationMessage } from \"../../office/index.js\";\nimport type { ChatToolResult, ConversationContext } from \"../../types.js\";\nimport { deriveSessionKey } from \"../../sessions/session-key.js\";\nimport { createProgressiveRenderer } from \"../progressive-renderer.js\";\nimport { formatToolArgs } from \"../../harness/tool-args.js\";\nimport type { TelegramEvent, TelegramResponseBot } from \"./types.js\";\n\nconst MAX_LENGTH = 30000;\n\nfunction formatToolResult(result: ChatToolResult): string {\n const argsFormatted = formatToolArgs(result.args);\n const duration = (result.durationMs / 1000).toFixed(1);\n const title = `${result.isError ? \"Error\" : \"Done\"} ${result.toolName}${result.label ? `: ${result.label}` : \"\"} (${duration}s)`;\n return [title, argsFormatted, result.result].filter(Boolean).join(\"\\n\\n\");\n}\n\nexport function createTelegramAdapters(\n event: TelegramEvent,\n bot: TelegramResponseBot,\n): ConversationContext {\n const conversationId = event.address.conversationId;\n const chatId = parseInt(conversationId);\n const replyToId = event.thread_ts ? parseInt(event.thread_ts) : null;\n\n const message = createConversationMessage({\n platform: \"telegram\",\n conversationId,\n address: event.address,\n id: event.ts,\n sessionKey: deriveSessionKey(event),\n conversationKind: event.conversationKind,\n userId: event.user,\n userName: event.userName,\n text: event.text,\n attachments: event.attachments,\n threadTs: event.thread_ts,\n });\n\n const platform = bot.getMessagingInfo();\n\n const { responder } = createProgressiveRenderer({\n label: \"Telegram\",\n maxLength: MAX_LENGTH,\n formatContinuation: (partNum: number): string => `(continued ${partNum})`,\n errorPrefix: \"Error: \",\n supportsDeltas: true,\n typing: {\n send: () => bot.sendTyping(chatId),\n intervalMs: 4000,\n },\n formatToolResult,\n responseErrorContext: (responseId) => ({\n platform: \"telegram\",\n conversationId,\n chatId,\n messageId: message.id,\n sessionKey: message.sessionKey,\n responseMessageId: responseId,\n replyToId,\n conversationKind: message.conversationKind,\n }),\n notifySendFailure: async (errorMessage) => {\n await bot.postPlainMessage(chatId, `⚠️ 發送失敗:${errorMessage}`);\n },\n post: async (text) => {\n const id =\n replyToId !== null\n ? await bot.postReply(chatId, replyToId, text)\n : await bot.postMessageRaw(chatId, text);\n return String(id);\n },\n update: (id, text) => bot.updateMessage(conversationId, id, text),\n postExtra: (text) => bot.postMessageRaw(chatId, text),\n delete: (id) => bot.deleteMessageRaw(chatId, Number(id)),\n logBotResponse: (text, id) => bot.logBotResponse(conversationId, text, id),\n uploadFile: (filePath, title) => bot.uploadFile(conversationId, filePath, title),\n react: (emoji) => bot.addReaction(conversationId, event.ts, emoji),\n });\n\n return { address: message.address, message, responder, platform };\n}\n"]}
@@ -1,6 +1,29 @@
1
- import type { ConversationEvent } from "../index.js";
1
+ import type { Api, BotError } from "grammy";
2
+ import type { Message } from "grammy/types";
3
+ import type { ConversationEvent } from "../../types.js";
4
+ import type { Workspace } from "../../office/types.js";
5
+ import type { TelegramMessagingBot } from "./bot.js";
2
6
  export interface TelegramEvent extends ConversationEvent {
3
7
  type: "message" | "command";
4
8
  userName?: string;
5
9
  }
10
+ interface TelegramMessageUpdate {
11
+ message: Message | undefined;
12
+ }
13
+ export type TelegramUpdateHandler = (ctx: TelegramMessageUpdate) => Promise<void>;
14
+ export interface TelegramClient {
15
+ api: Pick<Api, "getMe" | "setMyCommands" | "setMessageReaction" | "editMessageText" | "sendRichMessage" | "sendMessage" | "deleteMessage" | "sendChatAction" | "sendDocument" | "getFile">;
16
+ catch(errorHandler: (error: BotError) => void): void;
17
+ start(): Promise<void>;
18
+ stop(): Promise<void>;
19
+ command(command: string, handler: TelegramUpdateHandler): unknown;
20
+ on(filter: "message", handler: TelegramUpdateHandler): unknown;
21
+ }
22
+ export interface TelegramMessagingBotOptions {
23
+ token: string;
24
+ workspace: Workspace;
25
+ client?: TelegramClient;
26
+ }
27
+ export type TelegramResponseBot = Pick<TelegramMessagingBot, "getMessagingInfo" | "sendTyping" | "postPlainMessage" | "postReply" | "postMessageRaw" | "updateMessage" | "deleteMessageRaw" | "logBotResponse" | "uploadFile" | "addReaction">;
28
+ export {};
6
29
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/telegram/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,IAAI,CACP,GAAG,EACD,OAAO,GACP,eAAe,GACf,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,SAAS,CACZ,CAAC;IACF,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC;IACrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAClE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC;CAChE;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,oBAAoB,EAClB,kBAAkB,GAClB,YAAY,GACZ,kBAAkB,GAClB,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,YAAY,GACZ,aAAa,CAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/telegram/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ConversationEvent } from \"../index.js\";\n\nexport interface TelegramEvent extends ConversationEvent {\n type: \"message\" | \"command\";\n userName?: string;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/telegram/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Api, BotError } from \"grammy\";\nimport type { Message } from \"grammy/types\";\nimport type { ConversationEvent } from \"../../types.js\";\nimport type { Workspace } from \"../../office/types.js\";\nimport type { TelegramMessagingBot } from \"./bot.js\";\n\nexport interface TelegramEvent extends ConversationEvent {\n type: \"message\" | \"command\";\n userName?: string;\n}\n\ninterface TelegramMessageUpdate {\n message: Message | undefined;\n}\n\nexport type TelegramUpdateHandler = (ctx: TelegramMessageUpdate) => Promise<void>;\n\nexport interface TelegramClient {\n api: Pick<\n Api,\n | \"getMe\"\n | \"setMyCommands\"\n | \"setMessageReaction\"\n | \"editMessageText\"\n | \"sendRichMessage\"\n | \"sendMessage\"\n | \"deleteMessage\"\n | \"sendChatAction\"\n | \"sendDocument\"\n | \"getFile\"\n >;\n catch(errorHandler: (error: BotError) => void): void;\n start(): Promise<void>;\n stop(): Promise<void>;\n command(command: string, handler: TelegramUpdateHandler): unknown;\n on(filter: \"message\", handler: TelegramUpdateHandler): unknown;\n}\n\nexport interface TelegramMessagingBotOptions {\n token: string;\n workspace: Workspace;\n client?: TelegramClient;\n}\n\nexport type TelegramResponseBot = Pick<\n TelegramMessagingBot,\n | \"getMessagingInfo\"\n | \"sendTyping\"\n | \"postPlainMessage\"\n | \"postReply\"\n | \"postMessageRaw\"\n | \"updateMessage\"\n | \"deleteMessageRaw\"\n | \"logBotResponse\"\n | \"uploadFile\"\n | \"addReaction\"\n>;\n"]}
@@ -1,5 +1,4 @@
1
- import type { ChatToolResult, MessagingBot, ConversationContext, ConversationEvent, MessagingEventHandler, OfficeAddress, SubagentProgressSnapshot } from "./index.js";
2
- import type { Attachment } from "../types.js";
1
+ import type { Attachment, ChatToolResult, MessagingBot, ConversationContext, ConversationEvent, MessagingEventHandler, OfficeAddress, SubagentProgressSnapshot } from "../types.js";
3
2
  export type ChatResponseErrorOperation = "respond" | "replace_response" | "respond_diagnostic" | "set_working";
4
3
  export interface ChatResponseErrorContext {
5
4
  platform: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ChatToolResult,\n MessagingBot,\n ConversationContext,\n ConversationEvent,\n MessagingEventHandler,\n OfficeAddress,\n SubagentProgressSnapshot,\n} from \"./index.js\";\nimport type { Attachment } from \"../types.js\";\n\nexport type ChatResponseErrorOperation =\n | \"respond\"\n | \"replace_response\"\n | \"respond_diagnostic\"\n | \"set_working\";\n\nexport interface ChatResponseErrorContext {\n platform: string;\n conversationId: string;\n messageId: string;\n sessionKey: string;\n conversationKind: string;\n operation: ChatResponseErrorOperation;\n channelId?: string;\n chatId?: number;\n responseMessageId?: string | number | null;\n threadTs?: string;\n replyTargetId?: string;\n replyToId?: number | null;\n isThreaded?: boolean;\n extra?: Record<string, unknown>;\n}\n\nexport type ChatResponseErrorReporter = (\n err: unknown,\n operation: ChatResponseErrorOperation,\n extra?: Record<string, unknown>,\n) => void;\n\nexport interface RetryOptions {\n isRateLimited: (err: Error) => boolean;\n maxAttempts?: number;\n baseDelayMs?: number;\n}\n\nexport interface ResolveStopTargetInput {\n handler: MessagingEventHandler;\n address: OfficeAddress;\n sessionKey?: string;\n}\n\nexport interface HandleTooLongInput {\n text: string;\n operation: \"render\" | \"replace\";\n options: { createOverflowLink?: () => string } | undefined;\n responseId: string | null;\n write: (text: string) => Promise<void>;\n getResponseId: () => string | null;\n}\n\ninterface ProgressiveStreamTransport {\n start(text: string): Promise<string>;\n append(messageId: string, delta: string): Promise<void>;\n stop(messageId: string): Promise<void>;\n minDeltaChars?: number;\n}\n\nexport interface ProgressiveRendererPlatform {\n label: string;\n maxLength: number;\n flushIntervalMs?: number;\n initialResponseId?: string | null;\n formatContinuation: (partNum: number) => string;\n errorPrefix: string;\n sanitize?: (text: string) => string;\n workingIndicator?: string;\n formatProvisional?: (text: string, working: boolean) => string;\n prepareSource?: (text: string, working: boolean) => string;\n onWorkingChanged?: (working: boolean, responseId: string | null) => Promise<void>;\n setTyping?: (isTyping: boolean, responseId: string | null) => Promise<void>;\n onFinish?: (text: string, responseId: string | null) => void | Promise<void>;\n logIntermediateResponses?: boolean;\n supportsDeltas?: boolean;\n stream?: ProgressiveStreamTransport;\n needsCanonicalRender?: (text: string) => boolean;\n formatSubagentProgress?: (progress: SubagentProgressSnapshot) => string;\n typing?: {\n send: () => Promise<unknown>;\n intervalMs: number;\n stopOnSend?: boolean;\n };\n formatToolResult: (result: ChatToolResult) => string;\n responseErrorContext?: (\n responseId: string | null,\n ) => Omit<ChatResponseErrorContext, \"operation\" | \"extra\">;\n notifySendFailure?: (errorMessage: string) => Promise<void>;\n post: (text: string) => Promise<string>;\n update: (id: string, text: string) => Promise<void>;\n postExtra: (text: string, responseId: string | null) => Promise<string | number | void>;\n postDiagnostic?: (\n text: string,\n options: { style?: \"muted\" | \"error\" },\n responseId: string | null,\n ) => Promise<Array<string | number>>;\n delete?: (id: string) => Promise<void>;\n deleteExtra?: (id: string | number) => Promise<void>;\n logBotResponse?: (text: string, id: string) => void;\n uploadFile?: (filePath: string, title?: string) => Promise<void>;\n uploadFallbackNote?: (name: string) => string;\n react?: (emoji: string) => Promise<void>;\n isTooLongError?: (err: unknown) => boolean;\n handleTooLong?: (input: HandleTooLongInput) => Promise<{ text: string; prefixLength?: number }>;\n}\n\nexport type MessageIntakeOutcome = \"magic-word\" | \"not-triggered\" | \"rejected-busy\" | \"enqueued\";\n\nexport interface MagicWordIntakeOptions {\n text?: string;\n addressed: boolean;\n scopeFallback: \"top-level\" | \"always\" | \"never\";\n}\n\nexport interface IncomingAttachment {\n name: string;\n timestampMs?: number;\n download(destPath: string): Promise<void>;\n}\n\nexport interface SavedAttachments {\n saved: Attachment[];\n failed: { name: string; error: unknown }[];\n}\n\nexport interface MessageIntakeOptions<TEvent extends ConversationEvent> {\n eventBase: TEvent;\n addressed: boolean;\n magicWord: MagicWordIntakeOptions;\n busyPolicy: \"queue\" | \"reject\";\n logEntryBase: Record<string, unknown>;\n log?: (entry: Record<string, unknown>) => void;\n processAttachments: () => Promise<unknown[]>;\n queueKey: string;\n enqueue: (queueKey: string, work: () => Promise<void>) => void;\n handler: MessagingEventHandler;\n bot: MessagingBot;\n createContext: (event: TEvent) => ConversationContext;\n deferAttachmentsUntilRun?: boolean;\n}\n\nexport interface MarkdownTable {\n headers: string[];\n rows: string[][];\n startLine: number;\n endLine: number;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Attachment,\n ChatToolResult,\n MessagingBot,\n ConversationContext,\n ConversationEvent,\n MessagingEventHandler,\n OfficeAddress,\n SubagentProgressSnapshot,\n} from \"../types.js\";\n\nexport type ChatResponseErrorOperation =\n | \"respond\"\n | \"replace_response\"\n | \"respond_diagnostic\"\n | \"set_working\";\n\nexport interface ChatResponseErrorContext {\n platform: string;\n conversationId: string;\n messageId: string;\n sessionKey: string;\n conversationKind: string;\n operation: ChatResponseErrorOperation;\n channelId?: string;\n chatId?: number;\n responseMessageId?: string | number | null;\n threadTs?: string;\n replyTargetId?: string;\n replyToId?: number | null;\n isThreaded?: boolean;\n extra?: Record<string, unknown>;\n}\n\nexport type ChatResponseErrorReporter = (\n err: unknown,\n operation: ChatResponseErrorOperation,\n extra?: Record<string, unknown>,\n) => void;\n\nexport interface RetryOptions {\n isRateLimited: (err: Error) => boolean;\n maxAttempts?: number;\n baseDelayMs?: number;\n}\n\nexport interface ResolveStopTargetInput {\n handler: MessagingEventHandler;\n address: OfficeAddress;\n sessionKey?: string;\n}\n\nexport interface HandleTooLongInput {\n text: string;\n operation: \"render\" | \"replace\";\n options: { createOverflowLink?: () => string } | undefined;\n responseId: string | null;\n write: (text: string) => Promise<void>;\n getResponseId: () => string | null;\n}\n\ninterface ProgressiveStreamTransport {\n start(text: string): Promise<string>;\n append(messageId: string, delta: string): Promise<void>;\n stop(messageId: string): Promise<void>;\n minDeltaChars?: number;\n}\n\nexport interface ProgressiveRendererPlatform {\n label: string;\n maxLength: number;\n flushIntervalMs?: number;\n initialResponseId?: string | null;\n formatContinuation: (partNum: number) => string;\n errorPrefix: string;\n sanitize?: (text: string) => string;\n workingIndicator?: string;\n formatProvisional?: (text: string, working: boolean) => string;\n prepareSource?: (text: string, working: boolean) => string;\n onWorkingChanged?: (working: boolean, responseId: string | null) => Promise<void>;\n setTyping?: (isTyping: boolean, responseId: string | null) => Promise<void>;\n onFinish?: (text: string, responseId: string | null) => void | Promise<void>;\n logIntermediateResponses?: boolean;\n supportsDeltas?: boolean;\n stream?: ProgressiveStreamTransport;\n needsCanonicalRender?: (text: string) => boolean;\n formatSubagentProgress?: (progress: SubagentProgressSnapshot) => string;\n typing?: {\n send: () => Promise<unknown>;\n intervalMs: number;\n stopOnSend?: boolean;\n };\n formatToolResult: (result: ChatToolResult) => string;\n responseErrorContext?: (\n responseId: string | null,\n ) => Omit<ChatResponseErrorContext, \"operation\" | \"extra\">;\n notifySendFailure?: (errorMessage: string) => Promise<void>;\n post: (text: string) => Promise<string>;\n update: (id: string, text: string) => Promise<void>;\n postExtra: (text: string, responseId: string | null) => Promise<string | number | void>;\n postDiagnostic?: (\n text: string,\n options: { style?: \"muted\" | \"error\" },\n responseId: string | null,\n ) => Promise<Array<string | number>>;\n delete?: (id: string) => Promise<void>;\n deleteExtra?: (id: string | number) => Promise<void>;\n logBotResponse?: (text: string, id: string) => void;\n uploadFile?: (filePath: string, title?: string) => Promise<void>;\n uploadFallbackNote?: (name: string) => string;\n react?: (emoji: string) => Promise<void>;\n isTooLongError?: (err: unknown) => boolean;\n handleTooLong?: (input: HandleTooLongInput) => Promise<{ text: string; prefixLength?: number }>;\n}\n\nexport type MessageIntakeOutcome = \"magic-word\" | \"not-triggered\" | \"rejected-busy\" | \"enqueued\";\n\nexport interface MagicWordIntakeOptions {\n text?: string;\n addressed: boolean;\n scopeFallback: \"top-level\" | \"always\" | \"never\";\n}\n\nexport interface IncomingAttachment {\n name: string;\n timestampMs?: number;\n download(destPath: string): Promise<void>;\n}\n\nexport interface SavedAttachments {\n saved: Attachment[];\n failed: { name: string; error: unknown }[];\n}\n\nexport interface MessageIntakeOptions<TEvent extends ConversationEvent> {\n eventBase: TEvent;\n addressed: boolean;\n magicWord: MagicWordIntakeOptions;\n busyPolicy: \"queue\" | \"reject\";\n logEntryBase: Record<string, unknown>;\n log?: (entry: Record<string, unknown>) => void;\n processAttachments: () => Promise<unknown[]>;\n queueKey: string;\n enqueue: (queueKey: string, work: () => Promise<void>) => void;\n handler: MessagingEventHandler;\n bot: MessagingBot;\n createContext: (event: TEvent) => ConversationContext;\n deferAttachmentsUntilRun?: boolean;\n}\n\nexport interface MarkdownTable {\n headers: string[];\n rows: string[][];\n startLine: number;\n endLine: number;\n}\n"]}