@rubytech/create-maxy-code 0.1.572 → 0.1.573

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 (306) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/config/brand.json +2 -2
  3. package/payload/platform/lib/routine-templates/dist/index.d.ts +2 -2
  4. package/payload/platform/lib/routine-templates/dist/index.d.ts.map +1 -1
  5. package/payload/platform/lib/routine-templates/dist/index.js +9 -1
  6. package/payload/platform/lib/routine-templates/dist/index.js.map +1 -1
  7. package/payload/platform/lib/routine-templates/src/index.ts +14 -2
  8. package/payload/platform/plugins/admin/mcp/dist/index.js +4 -1
  9. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  10. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +39 -48
  11. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +10 -0
  12. package/payload/platform/plugins/docs/references/channel-wake-and-prompt.md +15 -47
  13. package/payload/platform/plugins/docs/references/telegram-guide.md +23 -0
  14. package/payload/platform/plugins/email/PLUGIN.md +1 -1
  15. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-send.test.js +36 -5
  16. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-send.test.js.map +1 -1
  17. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js +10 -5
  18. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js.map +1 -1
  19. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +12 -6
  20. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
  21. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +18 -8
  22. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
  23. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-send.d.ts.map +1 -1
  24. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-send.js +41 -10
  25. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-send.js.map +1 -1
  26. package/payload/platform/plugins/email/references/email-reference.md +12 -0
  27. package/payload/platform/plugins/scheduling/PLUGIN.md +4 -0
  28. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-gate-write.test.js +78 -5
  29. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-gate-write.test.js.map +1 -1
  30. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js +133 -2
  31. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js.map +1 -1
  32. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts +11 -0
  33. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts.map +1 -1
  34. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js +30 -1
  35. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js.map +1 -1
  36. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -1
  37. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +8 -0
  38. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -1
  39. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts.map +1 -1
  40. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js +37 -6
  41. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js.map +1 -1
  42. package/payload/platform/plugins/telegram/.claude-plugin/plugin.json +1 -1
  43. package/payload/platform/plugins/telegram/PLUGIN.md +14 -2
  44. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-census.test.d.ts +2 -0
  45. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-census.test.d.ts.map +1 -0
  46. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-census.test.js +77 -0
  47. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-census.test.js.map +1 -0
  48. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-guard.test.d.ts +2 -0
  49. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-guard.test.d.ts.map +1 -0
  50. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-guard.test.js +49 -0
  51. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-guard.test.js.map +1 -0
  52. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-methods.test.d.ts +2 -0
  53. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-methods.test.d.ts.map +1 -0
  54. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-methods.test.js +25 -0
  55. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-methods.test.js.map +1 -0
  56. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-tool.test.d.ts +2 -0
  57. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-tool.test.d.ts.map +1 -0
  58. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-tool.test.js +115 -0
  59. package/payload/platform/plugins/telegram/mcp/dist/__tests__/api-tool.test.js.map +1 -0
  60. package/payload/platform/plugins/telegram/mcp/dist/__tests__/bot-api.test.d.ts +2 -0
  61. package/payload/platform/plugins/telegram/mcp/dist/__tests__/bot-api.test.d.ts.map +1 -0
  62. package/payload/platform/plugins/telegram/mcp/dist/__tests__/bot-api.test.js +83 -0
  63. package/payload/platform/plugins/telegram/mcp/dist/__tests__/bot-api.test.js.map +1 -0
  64. package/payload/platform/plugins/telegram/mcp/dist/index.js +42 -0
  65. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -1
  66. package/payload/platform/plugins/telegram/mcp/dist/lib/api-census.d.ts +32 -0
  67. package/payload/platform/plugins/telegram/mcp/dist/lib/api-census.d.ts.map +1 -0
  68. package/payload/platform/plugins/telegram/mcp/dist/lib/api-census.js +59 -0
  69. package/payload/platform/plugins/telegram/mcp/dist/lib/api-census.js.map +1 -0
  70. package/payload/platform/plugins/telegram/mcp/dist/lib/api-guard.d.ts +18 -0
  71. package/payload/platform/plugins/telegram/mcp/dist/lib/api-guard.d.ts.map +1 -0
  72. package/payload/platform/plugins/telegram/mcp/dist/lib/api-guard.js +35 -0
  73. package/payload/platform/plugins/telegram/mcp/dist/lib/api-guard.js.map +1 -0
  74. package/payload/platform/plugins/telegram/mcp/dist/lib/api-methods.d.ts +38 -0
  75. package/payload/platform/plugins/telegram/mcp/dist/lib/api-methods.d.ts.map +1 -0
  76. package/payload/platform/plugins/telegram/mcp/dist/lib/api-methods.js +21 -0
  77. package/payload/platform/plugins/telegram/mcp/dist/lib/api-methods.js.map +1 -0
  78. package/payload/platform/plugins/telegram/mcp/dist/lib/bot-api.d.ts +24 -0
  79. package/payload/platform/plugins/telegram/mcp/dist/lib/bot-api.d.ts.map +1 -0
  80. package/payload/platform/plugins/telegram/mcp/dist/lib/bot-api.js +57 -0
  81. package/payload/platform/plugins/telegram/mcp/dist/lib/bot-api.js.map +1 -0
  82. package/payload/platform/plugins/telegram/mcp/dist/tools/api-census.d.ts +16 -0
  83. package/payload/platform/plugins/telegram/mcp/dist/tools/api-census.d.ts.map +1 -0
  84. package/payload/platform/plugins/telegram/mcp/dist/tools/api-census.js +34 -0
  85. package/payload/platform/plugins/telegram/mcp/dist/tools/api-census.js.map +1 -0
  86. package/payload/platform/plugins/telegram/mcp/dist/tools/api.d.ts +26 -0
  87. package/payload/platform/plugins/telegram/mcp/dist/tools/api.d.ts.map +1 -0
  88. package/payload/platform/plugins/telegram/mcp/dist/tools/api.js +80 -0
  89. package/payload/platform/plugins/telegram/mcp/dist/tools/api.js.map +1 -0
  90. package/payload/platform/plugins/telegram/skills/build/SKILL.md +110 -0
  91. package/payload/platform/plugins/telegram/skills/build/references/methods.md +219 -0
  92. package/payload/platform/scripts/check-no-esm-require.mjs +4 -0
  93. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  94. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +2 -0
  95. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  96. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  97. package/payload/platform/services/claude-session-manager/dist/http-server.js +32 -5
  98. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  99. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +12 -1
  100. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  101. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +13 -1
  102. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  103. package/payload/platform/services/telegram-channel/dist/jsonl.d.ts +8 -0
  104. package/payload/platform/services/telegram-channel/dist/jsonl.d.ts.map +1 -0
  105. package/payload/platform/services/telegram-channel/dist/jsonl.js +42 -0
  106. package/payload/platform/services/telegram-channel/dist/jsonl.js.map +1 -0
  107. package/payload/platform/services/telegram-channel/dist/notification.d.ts +0 -31
  108. package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -1
  109. package/payload/platform/services/telegram-channel/dist/notification.js +4 -33
  110. package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -1
  111. package/payload/platform/services/telegram-channel/dist/server.d.ts +0 -5
  112. package/payload/platform/services/telegram-channel/dist/server.d.ts.map +1 -1
  113. package/payload/platform/services/telegram-channel/dist/server.js +7 -101
  114. package/payload/platform/services/telegram-channel/dist/server.js.map +1 -1
  115. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +0 -66
  116. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  117. package/payload/platform/services/whatsapp-channel/dist/notification.js +2 -64
  118. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  119. package/payload/platform/services/whatsapp-channel/dist/server.d.ts +0 -12
  120. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  121. package/payload/platform/services/whatsapp-channel/dist/server.js +15 -268
  122. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  123. package/payload/server/public/activity.html +6 -6
  124. package/payload/server/public/agents.html +5 -5
  125. package/payload/server/public/assets/{AdminLoginScreens-CMdj1W5p.js → AdminLoginScreens-Dp6k1XgD.js} +1 -1
  126. package/payload/server/public/assets/AdminLoginScreens-Dp6k1XgD.js.br +0 -0
  127. package/payload/server/public/assets/AdminLoginScreens-Dp6k1XgD.js.gz +0 -0
  128. package/payload/server/public/assets/{AdminShell-CZcaW3BQ.js → AdminShell-D-wB90c3.js} +1 -1
  129. package/payload/server/public/assets/AdminShell-D-wB90c3.js.br +0 -0
  130. package/payload/server/public/assets/AdminShell-D-wB90c3.js.gz +0 -0
  131. package/payload/server/public/assets/{activity-CAhibgb-.js → activity-BJxhblz-.js} +1 -1
  132. package/payload/server/public/assets/activity-BJxhblz-.js.br +0 -0
  133. package/payload/server/public/assets/activity-BJxhblz-.js.gz +0 -0
  134. package/payload/server/public/assets/{admin-xEXv3w9e.js → admin-DzEi8shs.js} +1 -1
  135. package/payload/server/public/assets/admin-DzEi8shs.js.br +0 -0
  136. package/payload/server/public/assets/admin-DzEi8shs.js.gz +0 -0
  137. package/payload/server/public/assets/{agents-CiAmzTaT.js → agents-DTL8kjfD.js} +1 -1
  138. package/payload/server/public/assets/agents-DTL8kjfD.js.br +0 -0
  139. package/payload/server/public/assets/agents-DTL8kjfD.js.gz +0 -0
  140. package/payload/server/public/assets/{browser-D36BiYhS.js → browser-UZp75zhx.js} +1 -1
  141. package/payload/server/public/assets/browser-UZp75zhx.js.br +0 -0
  142. package/payload/server/public/assets/browser-UZp75zhx.js.gz +0 -0
  143. package/payload/server/public/assets/{calendar-CJAM-iXn.js → calendar-Dfo0O2K_.js} +1 -1
  144. package/payload/server/public/assets/calendar-Dfo0O2K_.js.br +0 -0
  145. package/payload/server/public/assets/calendar-Dfo0O2K_.js.gz +0 -0
  146. package/payload/server/public/assets/chat-ByJAvEWZ.js +1 -0
  147. package/payload/server/public/assets/chat-ByJAvEWZ.js.br +0 -0
  148. package/payload/server/public/assets/chat-ByJAvEWZ.js.gz +0 -0
  149. package/payload/server/public/assets/chevron-left-iG7sYNm7.js +1 -0
  150. package/payload/server/public/assets/chevron-left-iG7sYNm7.js.br +0 -0
  151. package/payload/server/public/assets/clock-xSs0UF10.js +1 -0
  152. package/payload/server/public/assets/clock-xSs0UF10.js.br +0 -0
  153. package/payload/server/public/assets/clock-xSs0UF10.js.gz +0 -0
  154. package/payload/server/public/assets/{copy-axBe92iY.js → copy-CGI2jioK.js} +1 -1
  155. package/payload/server/public/assets/copy-CGI2jioK.js.br +0 -0
  156. package/payload/server/public/assets/copy-CGI2jioK.js.gz +0 -0
  157. package/payload/server/public/assets/data-dvwK4BcP.js +1 -0
  158. package/payload/server/public/assets/data-dvwK4BcP.js.br +0 -0
  159. package/payload/server/public/assets/data-dvwK4BcP.js.gz +0 -0
  160. package/payload/server/public/assets/{dispatch-D_i2ko7K.js → dispatch-Dx9-ty1K.js} +1 -1
  161. package/payload/server/public/assets/dispatch-Dx9-ty1K.js.br +0 -0
  162. package/payload/server/public/assets/dispatch-Dx9-ty1K.js.gz +0 -0
  163. package/payload/server/public/assets/{field-DFgkqq1P.js → field-D-P6CsWA.js} +1 -1
  164. package/payload/server/public/assets/field-D-P6CsWA.js.br +0 -0
  165. package/payload/server/public/assets/field-D-P6CsWA.js.gz +0 -0
  166. package/payload/server/public/assets/{file-text-CEFoq0Je.js → file-text-RWintp9q.js} +1 -1
  167. package/payload/server/public/assets/file-text-RWintp9q.js.br +0 -0
  168. package/payload/server/public/assets/file-text-RWintp9q.js.gz +0 -0
  169. package/payload/server/public/assets/{graph-BrpbilNr.js → graph-CpBlfYrJ.js} +1 -1
  170. package/payload/server/public/assets/graph-CpBlfYrJ.js.br +0 -0
  171. package/payload/server/public/assets/graph-CpBlfYrJ.js.gz +0 -0
  172. package/payload/server/public/assets/{graph-labels-BtmcWzo7.js → graph-labels-BOMyPppX.js} +1 -1
  173. package/payload/server/public/assets/graph-labels-BOMyPppX.js.br +0 -0
  174. package/payload/server/public/assets/graph-labels-BOMyPppX.js.gz +0 -0
  175. package/payload/server/public/assets/jsx-runtime-DxsQ5Y-z.css +1 -0
  176. package/payload/server/public/assets/jsx-runtime-DxsQ5Y-z.css.br +0 -0
  177. package/payload/server/public/assets/jsx-runtime-DxsQ5Y-z.css.gz +0 -0
  178. package/payload/server/public/assets/{operator-Dl7dJt1G.js → operator-DFgW6GiH.js} +1 -1
  179. package/payload/server/public/assets/operator-DFgW6GiH.js.br +0 -0
  180. package/payload/server/public/assets/operator-DFgW6GiH.js.gz +0 -0
  181. package/payload/server/public/assets/{page-nx31Ij0T.js → page-BRShHSH0.js} +1 -1
  182. package/payload/server/public/assets/page-BRShHSH0.js.br +0 -0
  183. package/payload/server/public/assets/page-BRShHSH0.js.gz +0 -0
  184. package/payload/server/public/assets/{page-zC66xzNT.js → page-BbBCu9iP.js} +5 -5
  185. package/payload/server/public/assets/page-BbBCu9iP.js.br +0 -0
  186. package/payload/server/public/assets/page-BbBCu9iP.js.gz +0 -0
  187. package/payload/server/public/assets/play-BJxUaf6-.js +1 -0
  188. package/payload/server/public/assets/play-BJxUaf6-.js.br +0 -0
  189. package/payload/server/public/assets/play-BJxUaf6-.js.gz +0 -0
  190. package/payload/server/public/assets/{public-DEKnH5Q0.js → public-DkObqkzL.js} +1 -1
  191. package/payload/server/public/assets/public-DkObqkzL.js.br +0 -0
  192. package/payload/server/public/assets/public-DkObqkzL.js.gz +0 -0
  193. package/payload/server/public/assets/{rotate-ccw-CBex8gon.js → rotate-ccw-DgMO69nh.js} +1 -1
  194. package/payload/server/public/assets/rotate-ccw-DgMO69nh.js.br +0 -0
  195. package/payload/server/public/assets/rotate-ccw-DgMO69nh.js.gz +0 -0
  196. package/payload/server/public/assets/routines-D9kvg_Xu.js +2 -0
  197. package/payload/server/public/assets/routines-D9kvg_Xu.js.br +0 -0
  198. package/payload/server/public/assets/routines-D9kvg_Xu.js.gz +0 -0
  199. package/payload/server/public/assets/{skills-BmxjPOmq.js → skills-l5I9HZ3D.js} +1 -1
  200. package/payload/server/public/assets/skills-l5I9HZ3D.js.br +0 -0
  201. package/payload/server/public/assets/skills-l5I9HZ3D.js.gz +0 -0
  202. package/payload/server/public/assets/{tasks-BTFYO9vT.js → tasks-C2qJMv6i.js} +1 -1
  203. package/payload/server/public/assets/tasks-C2qJMv6i.js.br +0 -0
  204. package/payload/server/public/assets/tasks-C2qJMv6i.js.gz +0 -0
  205. package/payload/server/public/assets/{triangle-alert-px1YRJJ7.js → triangle-alert-BnC67uSs.js} +1 -1
  206. package/payload/server/public/assets/triangle-alert-BnC67uSs.js.br +0 -0
  207. package/payload/server/public/assets/triangle-alert-BnC67uSs.js.gz +0 -0
  208. package/payload/server/public/assets/{useCopyFeedback-nMXwRcDX.js → useCopyFeedback-1RmgkTFh.js} +1 -1
  209. package/payload/server/public/assets/useCopyFeedback-1RmgkTFh.js.br +0 -0
  210. package/payload/server/public/assets/useCopyFeedback-1RmgkTFh.js.gz +0 -0
  211. package/payload/server/public/assets/{useMediaQuery-DjbOTk2X.js → useMediaQuery-BQslddHQ.js} +1 -1
  212. package/payload/server/public/assets/useMediaQuery-BQslddHQ.js.br +0 -0
  213. package/payload/server/public/assets/useMediaQuery-BQslddHQ.js.gz +0 -0
  214. package/payload/server/public/assets/{useVoiceRecorder-Cx7AOmib.js → useVoiceRecorder-BeZNQEC4.js} +1 -1
  215. package/payload/server/public/assets/useVoiceRecorder-BeZNQEC4.js.br +0 -0
  216. package/payload/server/public/assets/useVoiceRecorder-BeZNQEC4.js.gz +0 -0
  217. package/payload/server/public/assets/{wrench-Cexvlx6J.js → wrench-D4ufQG6C.js} +1 -1
  218. package/payload/server/public/assets/wrench-D4ufQG6C.js.br +0 -0
  219. package/payload/server/public/assets/wrench-D4ufQG6C.js.gz +0 -0
  220. package/payload/server/public/browser.html +5 -5
  221. package/payload/server/public/calendar.html +8 -8
  222. package/payload/server/public/chat.html +14 -14
  223. package/payload/server/public/data.html +12 -12
  224. package/payload/server/public/dispatch.html +5 -5
  225. package/payload/server/public/field.html +3 -3
  226. package/payload/server/public/graph.html +10 -10
  227. package/payload/server/public/index.html +14 -14
  228. package/payload/server/public/operator.html +16 -16
  229. package/payload/server/public/public.html +14 -14
  230. package/payload/server/public/routines.html +8 -8
  231. package/payload/server/public/skills.html +6 -6
  232. package/payload/server/public/tasks.html +7 -7
  233. package/payload/server/server.js +739 -449
  234. package/payload/server/public/assets/AdminLoginScreens-CMdj1W5p.js.br +0 -0
  235. package/payload/server/public/assets/AdminLoginScreens-CMdj1W5p.js.gz +0 -0
  236. package/payload/server/public/assets/AdminShell-CZcaW3BQ.js.br +0 -0
  237. package/payload/server/public/assets/AdminShell-CZcaW3BQ.js.gz +0 -0
  238. package/payload/server/public/assets/activity-CAhibgb-.js.br +0 -0
  239. package/payload/server/public/assets/activity-CAhibgb-.js.gz +0 -0
  240. package/payload/server/public/assets/admin-xEXv3w9e.js.br +0 -0
  241. package/payload/server/public/assets/admin-xEXv3w9e.js.gz +0 -0
  242. package/payload/server/public/assets/agents-CiAmzTaT.js.br +0 -0
  243. package/payload/server/public/assets/agents-CiAmzTaT.js.gz +0 -0
  244. package/payload/server/public/assets/browser-D36BiYhS.js.br +0 -0
  245. package/payload/server/public/assets/browser-D36BiYhS.js.gz +0 -0
  246. package/payload/server/public/assets/calendar-CJAM-iXn.js.br +0 -0
  247. package/payload/server/public/assets/calendar-CJAM-iXn.js.gz +0 -0
  248. package/payload/server/public/assets/chat-DhZSvtZK.js +0 -1
  249. package/payload/server/public/assets/chat-DhZSvtZK.js.br +0 -0
  250. package/payload/server/public/assets/chat-DhZSvtZK.js.gz +0 -0
  251. package/payload/server/public/assets/chevron-left-CXEcNlc3.js +0 -1
  252. package/payload/server/public/assets/chevron-left-CXEcNlc3.js.br +0 -0
  253. package/payload/server/public/assets/clock-DdxIJwTr.js +0 -1
  254. package/payload/server/public/assets/clock-DdxIJwTr.js.br +0 -0
  255. package/payload/server/public/assets/clock-DdxIJwTr.js.gz +0 -0
  256. package/payload/server/public/assets/copy-axBe92iY.js.br +0 -0
  257. package/payload/server/public/assets/copy-axBe92iY.js.gz +0 -0
  258. package/payload/server/public/assets/data-DUvkI-zq.js +0 -1
  259. package/payload/server/public/assets/data-DUvkI-zq.js.br +0 -0
  260. package/payload/server/public/assets/data-DUvkI-zq.js.gz +0 -0
  261. package/payload/server/public/assets/dispatch-D_i2ko7K.js.br +0 -0
  262. package/payload/server/public/assets/dispatch-D_i2ko7K.js.gz +0 -0
  263. package/payload/server/public/assets/field-DFgkqq1P.js.br +0 -0
  264. package/payload/server/public/assets/field-DFgkqq1P.js.gz +0 -0
  265. package/payload/server/public/assets/file-text-CEFoq0Je.js.br +0 -0
  266. package/payload/server/public/assets/file-text-CEFoq0Je.js.gz +0 -0
  267. package/payload/server/public/assets/graph-BrpbilNr.js.br +0 -0
  268. package/payload/server/public/assets/graph-BrpbilNr.js.gz +0 -0
  269. package/payload/server/public/assets/graph-labels-BtmcWzo7.js.br +0 -0
  270. package/payload/server/public/assets/graph-labels-BtmcWzo7.js.gz +0 -0
  271. package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css +0 -1
  272. package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css.br +0 -0
  273. package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css.gz +0 -0
  274. package/payload/server/public/assets/operator-Dl7dJt1G.js.br +0 -3
  275. package/payload/server/public/assets/operator-Dl7dJt1G.js.gz +0 -0
  276. package/payload/server/public/assets/page-nx31Ij0T.js.br +0 -0
  277. package/payload/server/public/assets/page-nx31Ij0T.js.gz +0 -0
  278. package/payload/server/public/assets/page-zC66xzNT.js.br +0 -0
  279. package/payload/server/public/assets/page-zC66xzNT.js.gz +0 -0
  280. package/payload/server/public/assets/play-MbU8O2iC.js +0 -1
  281. package/payload/server/public/assets/play-MbU8O2iC.js.br +0 -0
  282. package/payload/server/public/assets/play-MbU8O2iC.js.gz +0 -0
  283. package/payload/server/public/assets/public-DEKnH5Q0.js.br +0 -0
  284. package/payload/server/public/assets/public-DEKnH5Q0.js.gz +0 -0
  285. package/payload/server/public/assets/rotate-ccw-CBex8gon.js.br +0 -0
  286. package/payload/server/public/assets/rotate-ccw-CBex8gon.js.gz +0 -0
  287. package/payload/server/public/assets/routines-BqCmbvFJ.js +0 -2
  288. package/payload/server/public/assets/routines-BqCmbvFJ.js.br +0 -0
  289. package/payload/server/public/assets/routines-BqCmbvFJ.js.gz +0 -0
  290. package/payload/server/public/assets/skills-BmxjPOmq.js.br +0 -0
  291. package/payload/server/public/assets/skills-BmxjPOmq.js.gz +0 -0
  292. package/payload/server/public/assets/tasks-BTFYO9vT.js.br +0 -0
  293. package/payload/server/public/assets/tasks-BTFYO9vT.js.gz +0 -0
  294. package/payload/server/public/assets/triangle-alert-px1YRJJ7.js.br +0 -0
  295. package/payload/server/public/assets/triangle-alert-px1YRJJ7.js.gz +0 -0
  296. package/payload/server/public/assets/useCopyFeedback-nMXwRcDX.js.br +0 -0
  297. package/payload/server/public/assets/useCopyFeedback-nMXwRcDX.js.gz +0 -0
  298. package/payload/server/public/assets/useMediaQuery-DjbOTk2X.js.br +0 -0
  299. package/payload/server/public/assets/useMediaQuery-DjbOTk2X.js.gz +0 -0
  300. package/payload/server/public/assets/useVoiceRecorder-Cx7AOmib.js.br +0 -0
  301. package/payload/server/public/assets/useVoiceRecorder-Cx7AOmib.js.gz +0 -0
  302. package/payload/server/public/assets/wrench-Cexvlx6J.js.br +0 -0
  303. package/payload/server/public/assets/wrench-Cexvlx6J.js.gz +0 -0
  304. /package/payload/server/public/assets/{jsx-runtime-C5Hcfj84.js → jsx-runtime-5lmxFBIw.js} +0 -0
  305. /package/payload/server/public/assets/{jsx-runtime-C5Hcfj84.js.br → jsx-runtime-5lmxFBIw.js.br} +0 -0
  306. /package/payload/server/public/assets/{jsx-runtime-C5Hcfj84.js.gz → jsx-runtime-5lmxFBIw.js.gz} +0 -0
@@ -0,0 +1,115 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { mkdtempSync, mkdirSync, writeFileSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join, resolve } from "node:path";
5
+ import { telegramApi } from "../tools/api.js";
6
+ /** account.json lives at <platformRoot>/../data/accounts/<id>/account.json,
7
+ * the layout resolveBotToken reads. */
8
+ function stubAccount(bots) {
9
+ const root = mkdtempSync(join(tmpdir(), "tg-acct-"));
10
+ const platformRoot = join(root, "platform");
11
+ mkdirSync(platformRoot, { recursive: true });
12
+ const dir = resolve(root, "data", "accounts", "acct-1");
13
+ mkdirSync(dir, { recursive: true });
14
+ writeFileSync(join(dir, "account.json"), JSON.stringify({ telegram: { bots } }));
15
+ return platformRoot;
16
+ }
17
+ const OK_FETCH = (async () => ({
18
+ json: async () => ({ ok: true, result: { message_id: 1 } }),
19
+ }));
20
+ const ONE_BOT = [{ id: "123", role: "admin", token: "123:AAAsecret" }];
21
+ describe("telegramApi", () => {
22
+ it("refuses setWebhook, names the owner, and logs op=refused", async () => {
23
+ const lines = [];
24
+ const out = await telegramApi({ botId: "123", method: "setWebhook" }, { platformRoot: stubAccount(ONE_BOT), accountId: "acct-1", callId: "c1", log: (l) => lines.push(l) });
25
+ expect(out.isError).toBe(true);
26
+ expect(out.text).toContain("telegram-webhook-register");
27
+ expect(lines.join("\n")).toContain("[telegram-api] op=refused callId=c1 method=setWebhook reason=owned-by-webhook-register");
28
+ });
29
+ it("refuses when the account has no such bot, listing the ones it has", async () => {
30
+ const lines = [];
31
+ const out = await telegramApi({ botId: "999", method: "getMe" }, { platformRoot: stubAccount(ONE_BOT), accountId: "acct-1", callId: "c2", log: (l) => lines.push(l) });
32
+ expect(out.isError).toBe(true);
33
+ expect(out.text).toContain("123");
34
+ expect(lines.join("\n")).toContain("[telegram-api] op=no-bot callId=c2 account=acct-1");
35
+ });
36
+ it("refuses with no ACCOUNT_ID rather than throwing", async () => {
37
+ const out = await telegramApi({ botId: "123", method: "getMe" }, { platformRoot: stubAccount([]), accountId: undefined, callId: "c3", log: () => { } });
38
+ expect(out.isError).toBe(true);
39
+ expect(out.text).toContain("ACCOUNT_ID");
40
+ });
41
+ it("relays an allowed method and logs op=call then op=result", async () => {
42
+ const lines = [];
43
+ const out = await telegramApi({ botId: "123", method: "editMessageText", params: { chat_id: 5, message_id: 9, text: "x" } }, {
44
+ platformRoot: stubAccount(ONE_BOT),
45
+ accountId: "acct-1",
46
+ callId: "c4",
47
+ log: (l) => lines.push(l),
48
+ fetchImpl: OK_FETCH,
49
+ });
50
+ expect(out.isError).toBe(false);
51
+ expect(out.text).toContain("message_id");
52
+ expect(lines.join("\n")).toContain("[telegram-api] op=call callId=c4 method=editMessageText listed=true files=0");
53
+ expect(lines.join("\n")).toContain("[telegram-api] op=result callId=c4 method=editMessageText ok=true");
54
+ });
55
+ it("relays an unlisted method and marks it listed=false", async () => {
56
+ const lines = [];
57
+ await telegramApi({ botId: "123", method: "sendSomethingNew" }, {
58
+ platformRoot: stubAccount(ONE_BOT),
59
+ accountId: "acct-1",
60
+ callId: "c5",
61
+ log: (l) => lines.push(l),
62
+ fetchImpl: OK_FETCH,
63
+ });
64
+ expect(lines.join("\n")).toContain("listed=false");
65
+ });
66
+ it("never writes the token or the URL to a log line", async () => {
67
+ const lines = [];
68
+ await telegramApi({ botId: "123", method: "getMe" }, {
69
+ platformRoot: stubAccount(ONE_BOT),
70
+ accountId: "acct-1",
71
+ callId: "c6",
72
+ log: (l) => lines.push(l),
73
+ fetchImpl: OK_FETCH,
74
+ });
75
+ expect(lines.join("\n")).not.toContain("AAAsecret");
76
+ expect(lines.join("\n")).not.toContain("api.telegram.org");
77
+ });
78
+ it("surfaces a Telegram refusal with its description verbatim", async () => {
79
+ const lines = [];
80
+ const failFetch = (async () => ({
81
+ json: async () => ({
82
+ ok: false,
83
+ error_code: 400,
84
+ description: "Bad Request: message is not modified",
85
+ }),
86
+ }));
87
+ const out = await telegramApi({ botId: "123", method: "editMessageText" }, {
88
+ platformRoot: stubAccount(ONE_BOT),
89
+ accountId: "acct-1",
90
+ callId: "c7",
91
+ log: (l) => lines.push(l),
92
+ fetchImpl: failFetch,
93
+ });
94
+ expect(out.isError).toBe(true);
95
+ expect(out.text).toContain("Bad Request: message is not modified");
96
+ expect(lines.join("\n")).toContain("[telegram-api] op=result callId=c7 method=editMessageText ok=false errorCode=400");
97
+ });
98
+ it("logs op=error and refuses when the transport throws", async () => {
99
+ const lines = [];
100
+ const throwFetch = (async () => {
101
+ throw new Error("socket hang up");
102
+ });
103
+ const out = await telegramApi({ botId: "123", method: "getMe" }, {
104
+ platformRoot: stubAccount(ONE_BOT),
105
+ accountId: "acct-1",
106
+ callId: "c8",
107
+ log: (l) => lines.push(l),
108
+ fetchImpl: throwFetch,
109
+ });
110
+ expect(out.isError).toBe(true);
111
+ expect(out.text).toContain("socket hang up");
112
+ expect(lines.join("\n")).toContain('[telegram-api] op=error callId=c8 method=getMe reason="socket hang up"');
113
+ });
114
+ });
115
+ //# sourceMappingURL=api-tool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-tool.test.js","sourceRoot":"","sources":["../../src/__tests__/api-tool.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bot-api.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-api.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/bot-api.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { mkdtempSync, writeFileSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { buildMethodUrl, callBotApi } from "../lib/bot-api.js";
6
+ describe("buildMethodUrl", () => {
7
+ it("builds the one URL shape every method shares", () => {
8
+ expect(buildMethodUrl("123:AAA", "editMessageText")).toBe("https://api.telegram.org/bot123:AAA/editMessageText");
9
+ });
10
+ });
11
+ describe("callBotApi", () => {
12
+ it("sends JSON when no files are supplied", async () => {
13
+ let seenUrl = "";
14
+ let seenInit = {};
15
+ const fetchImpl = (async (url, init) => {
16
+ seenUrl = url;
17
+ seenInit = init;
18
+ return { json: async () => ({ ok: true, result: { message_id: 7 } }) };
19
+ });
20
+ const out = await callBotApi("123:AAA", "sendMessage", { chat_id: 5, text: "hi" }, { fetchImpl });
21
+ expect(out).toEqual({ ok: true, result: { message_id: 7 } });
22
+ expect(seenUrl).toBe("https://api.telegram.org/bot123:AAA/sendMessage");
23
+ expect(seenInit.headers["Content-Type"]).toBe("application/json");
24
+ expect(JSON.parse(seenInit.body)).toEqual({ chat_id: 5, text: "hi" });
25
+ });
26
+ it("sends multipart when files are supplied, and leaves a slash-leading caption alone", async () => {
27
+ const path = join(mkdtempSync(join(tmpdir(), "tg-")), "a.png");
28
+ writeFileSync(path, "PNGBYTES");
29
+ let seenInit = {};
30
+ const fetchImpl = (async (_u, init) => {
31
+ seenInit = init;
32
+ return { json: async () => ({ ok: true, result: {} }) };
33
+ });
34
+ await callBotApi("123:AAA", "sendPhoto", { chat_id: 5, caption: "/not/a/file" }, { files: { photo: path }, fetchImpl });
35
+ expect(seenInit.body).toBeInstanceOf(FormData);
36
+ // Setting Content-Type by hand would strip the multipart boundary.
37
+ expect(seenInit.headers ?? {}).not.toHaveProperty("Content-Type");
38
+ const form = seenInit.body;
39
+ expect(form.get("caption")).toBe("/not/a/file");
40
+ expect(form.get("photo")).toBeInstanceOf(Blob);
41
+ });
42
+ it("serialises a non-string param as JSON inside a multipart field", async () => {
43
+ const path = join(mkdtempSync(join(tmpdir(), "tg-")), "b.png");
44
+ writeFileSync(path, "PNGBYTES");
45
+ let seenInit = {};
46
+ const fetchImpl = (async (_u, init) => {
47
+ seenInit = init;
48
+ return { json: async () => ({ ok: true, result: {} }) };
49
+ });
50
+ await callBotApi("123:AAA", "sendPhoto", { chat_id: 5, reply_markup: { inline_keyboard: [] } }, { files: { photo: path }, fetchImpl });
51
+ const form = seenInit.body;
52
+ expect(form.get("chat_id")).toBe("5");
53
+ expect(form.get("reply_markup")).toBe('{"inline_keyboard":[]}');
54
+ });
55
+ it("omits a null param in multipart, matching what JSON.stringify does in the JSON branch", async () => {
56
+ const path = join(mkdtempSync(join(tmpdir(), "tg-")), "c.png");
57
+ writeFileSync(path, "PNGBYTES");
58
+ let seenInit = {};
59
+ const fetchImpl = (async (_u, init) => {
60
+ seenInit = init;
61
+ return { json: async () => ({ ok: true, result: {} }) };
62
+ });
63
+ await callBotApi("123:AAA", "sendPhoto", { chat_id: 5, caption: null }, { files: { photo: path }, fetchImpl });
64
+ // The literal string "null" would reach Telegram as a four-character caption.
65
+ expect(seenInit.body.has("caption")).toBe(false);
66
+ });
67
+ it("returns a Telegram refusal envelope unaltered", async () => {
68
+ const fetchImpl = (async () => ({
69
+ json: async () => ({
70
+ ok: false,
71
+ error_code: 400,
72
+ description: "Bad Request: message is not modified",
73
+ }),
74
+ }));
75
+ const out = await callBotApi("123:AAA", "editMessageText", {}, { fetchImpl });
76
+ expect(out).toEqual({
77
+ ok: false,
78
+ error_code: 400,
79
+ description: "Bad Request: message is not modified",
80
+ });
81
+ });
82
+ });
83
+ //# sourceMappingURL=bot-api.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-api.test.js","sourceRoot":"","sources":["../../src/__tests__/bot-api.test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,11 @@ import { message } from "./tools/message.js";
6
6
  import { messageHistory } from "./tools/message-history.js";
7
7
  import { setWebhook, getWebhookInfo } from "./lib/telegram.js";
8
8
  import { persistTelegramBot, botIdFromToken, CANONICAL_TELEGRAM_PREFIX } from "./lib/account-write.js";
9
+ import { randomBytes } from "node:crypto";
10
+ import { telegramApi } from "./tools/api.js";
11
+ import { telegramApiCensus } from "./tools/api-census.js";
12
+ import { bootCensusLine } from "./lib/api-census.js";
13
+ import { API_VERSION } from "./lib/api-methods.js";
9
14
  const server = new McpServer({
10
15
  name: "maxy-messaging",
11
16
  version: "0.1.0",
@@ -320,6 +325,43 @@ eagerTool(server, "telegram-webhook-register", "Register or re-register a Telegr
320
325
  };
321
326
  }
322
327
  });
328
+ eagerTool(server, "telegram-api", `Call any Telegram Bot API method by name. Bot API ${API_VERSION} documents 185 of them and this reaches every one, plus any Telegram adds later. Use it for everything the four named tools do not cover: editMessageText to change a card in place, answerCallbackQuery to clear a button's spinner, sendPhoto and sendDocument, pinning, chat administration, answerWebAppQuery. Five methods are refused because they would break this install's own inbound routing; the refusal names the tool that owns each. The build skill (telegram:build) carries the full method list and worked examples.`, {
329
+ botId: z.string().describe("Which registered bot to call as (its numeric Telegram id, the token's colon-prefix). Never a raw token: the token is resolved from the account, so it never crosses this boundary. On a miss the error lists every bot registered here."),
330
+ method: z.string().describe("Bot API method name, exactly as documented, for example editMessageText. See the telegram:build skill's references/methods.md for all 185."),
331
+ params: z.record(z.unknown()).optional().describe("The method's own parameters, passed to Telegram verbatim. Use Telegram's snake_case field names, for example { chat_id, message_id, text }."),
332
+ files: z.record(z.string()).optional().describe("Bot API file field name to absolute local path, for example { photo: \"/abs/pic.jpg\" }. Supplying this sends the request as multipart. A file_id or a URL goes in `params` as a plain string instead."),
333
+ timeoutMs: z.number().optional().describe("Request timeout in milliseconds. Default 30000."),
334
+ }, async ({ botId, method, params, files, timeoutMs }) => {
335
+ const result = await telegramApi({
336
+ botId,
337
+ method,
338
+ ...(params ? { params } : {}),
339
+ ...(files ? { files } : {}),
340
+ ...(timeoutMs ? { timeoutMs } : {}),
341
+ }, {
342
+ platformRoot: process.env.PLATFORM_ROOT ?? "",
343
+ accountId: process.env.ACCOUNT_ID,
344
+ callId: randomBytes(4).toString("hex"),
345
+ log: (line) => process.stderr.write(line + "\n"),
346
+ });
347
+ return {
348
+ content: [{ type: "text", text: result.text }],
349
+ ...(result.isError ? { isError: true } : {}),
350
+ };
351
+ });
352
+ eagerTool(server, "telegram-api-census", "Reconcile the Bot API method list this plugin ships against the live documentation at core.telegram.org, and report what drifted. Run it on a schedule, not per call: a method Telegram renames or removes 404s on every call and emits nothing until somebody makes one, so this is the only signal that finds it without a failure first.", {}, async () => {
353
+ const result = await telegramApiCensus({
354
+ log: (line) => process.stderr.write(line + "\n"),
355
+ });
356
+ return {
357
+ content: [{ type: "text", text: result.text }],
358
+ ...(result.isError ? { isError: true } : {}),
359
+ };
360
+ });
361
+ // Boot census, no network. Emitted before the transport connects, matching
362
+ // [roster-census] in the admin plugin. The plugin is core, so it boots on
363
+ // installs with no bot at all; bots=0 is what makes that visible.
364
+ process.stderr.write(bootCensusLine(process.env.PLATFORM_ROOT ?? "", process.env.ACCOUNT_ID) + "\n");
323
365
  const transport = new StdioServerTransport();
324
366
  await server.connect(transport);
325
367
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export declare const CENSUS_TAG = "[telegram-api-census]";
2
+ /** The local half, emitted once at MCP boot. No network, so every session pays
3
+ * nothing for it.
4
+ *
5
+ * It answers the question nothing else does: the plugin is core now, so it
6
+ * boots on installs that have no bot registered at all, where every
7
+ * telegram-api call must refuse. `bots=0` is that state, visible without
8
+ * anyone reporting it.
9
+ *
10
+ * Never throws. A missing ACCOUNT_ID or an unreadable account.json reports
11
+ * zeros, because a boot throw empties the plugin registry (CLAUDE.md). */
12
+ export declare function bootCensusLine(platformRoot: string, accountId: string | undefined): string;
13
+ /** Method names from the live Bot API page. Methods are the `<h4>` headings
14
+ * whose visible text begins lowercase; types begin uppercase, and the dated
15
+ * changelog headings carry spaces and commas so neither matches. The anchor
16
+ * `name=` attribute is lowercased by the page, so it cannot tell a method from
17
+ * a type; only the visible text can.
18
+ *
19
+ * The anchor is NOT empty. It wraps an `<i class="anchor-icon">`, and a
20
+ * pattern requiring `<a …></a>` matches nothing on the real page while passing
21
+ * a tidied test fixture: the census then reports every shipped method missing.
22
+ * Hence `.*?` across the anchor's contents, and a fixture in the tests copied
23
+ * verbatim from the page. */
24
+ export declare function extractMethodNames(html: string): string[];
25
+ /** `missing` are methods this plugin ships that the live page no longer
26
+ * documents; `added` are methods the page documents that this plugin has never
27
+ * heard of. Both are sorted, so a diff of two census lines is stable. */
28
+ export declare function diffMethods(live: readonly string[]): {
29
+ missing: string[];
30
+ added: string[];
31
+ };
32
+ //# sourceMappingURL=api-census.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-census.d.ts","sourceRoot":"","sources":["../../src/lib/api-census.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAElD;;;;;;;;;2EAS2E;AAC3E,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAe1F;AAED;;;;;;;;;;8BAU8B;AAC9B,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMzD;AAED;;0EAE0E;AAC1E,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAO3F"}
@@ -0,0 +1,59 @@
1
+ import { REFUSED_COUNT } from "./api-guard.js";
2
+ import { BOT_API_METHODS } from "./api-methods.js";
3
+ import { listRegisteredBots, resolveBotToken } from "./account-token.js";
4
+ export const CENSUS_TAG = "[telegram-api-census]";
5
+ /** The local half, emitted once at MCP boot. No network, so every session pays
6
+ * nothing for it.
7
+ *
8
+ * It answers the question nothing else does: the plugin is core now, so it
9
+ * boots on installs that have no bot registered at all, where every
10
+ * telegram-api call must refuse. `bots=0` is that state, visible without
11
+ * anyone reporting it.
12
+ *
13
+ * Never throws. A missing ACCOUNT_ID or an unreadable account.json reports
14
+ * zeros, because a boot throw empties the plugin registry (CLAUDE.md). */
15
+ export function bootCensusLine(platformRoot, accountId) {
16
+ let bots = 0;
17
+ let withToken = 0;
18
+ try {
19
+ if (accountId) {
20
+ const registered = listRegisteredBots(platformRoot, accountId);
21
+ bots = registered.length;
22
+ withToken = registered.filter((b) => resolveBotToken(platformRoot, accountId, b.id) !== null).length;
23
+ }
24
+ }
25
+ catch {
26
+ // Zeros, deliberately. See the doc comment.
27
+ }
28
+ return `${CENSUS_TAG} shipped=${BOT_API_METHODS.length} refused=${REFUSED_COUNT} bots=${bots} withToken=${withToken}`;
29
+ }
30
+ /** Method names from the live Bot API page. Methods are the `<h4>` headings
31
+ * whose visible text begins lowercase; types begin uppercase, and the dated
32
+ * changelog headings carry spaces and commas so neither matches. The anchor
33
+ * `name=` attribute is lowercased by the page, so it cannot tell a method from
34
+ * a type; only the visible text can.
35
+ *
36
+ * The anchor is NOT empty. It wraps an `<i class="anchor-icon">`, and a
37
+ * pattern requiring `<a …></a>` matches nothing on the real page while passing
38
+ * a tidied test fixture: the census then reports every shipped method missing.
39
+ * Hence `.*?` across the anchor's contents, and a fixture in the tests copied
40
+ * verbatim from the page. */
41
+ export function extractMethodNames(html) {
42
+ const names = new Set();
43
+ for (const m of html.matchAll(/<h4>(?:<a\b[^>]*>.*?<\/a>)?([a-z][a-zA-Z]+)<\/h4>/g)) {
44
+ names.add(m[1]);
45
+ }
46
+ return [...names];
47
+ }
48
+ /** `missing` are methods this plugin ships that the live page no longer
49
+ * documents; `added` are methods the page documents that this plugin has never
50
+ * heard of. Both are sorted, so a diff of two census lines is stable. */
51
+ export function diffMethods(live) {
52
+ const liveSet = new Set(live);
53
+ const shippedSet = new Set(BOT_API_METHODS);
54
+ return {
55
+ missing: BOT_API_METHODS.filter((m) => !liveSet.has(m)).sort(),
56
+ added: live.filter((m) => !shippedSet.has(m)).sort(),
57
+ };
58
+ }
59
+ //# sourceMappingURL=api-census.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-census.js","sourceRoot":"","sources":["../../src/lib/api-census.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAElD;;;;;;;;;2EAS2E;AAC3E,MAAM,UAAU,cAAc,CAAC,YAAoB,EAAE,SAA6B;IAChF,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC/D,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;YACzB,SAAS,GAAG,UAAU,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAC/D,CAAC,MAAM,CAAC;QACX,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;IACD,OAAO,GAAG,UAAU,YAAY,eAAe,CAAC,MAAM,YAAY,aAAa,SAAS,IAAI,cAAc,SAAS,EAAE,CAAC;AACxH,CAAC;AAED;;;;;;;;;;8BAU8B;AAC9B,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,oDAAoD,CAAC,EAAE,CAAC;QACpF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED;;0EAE0E;AAC1E,MAAM,UAAU,WAAW,CAAC,IAAuB;IACjD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5C,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAC9D,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KACrD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type RefusalReason = "owned-by-webhook-register" | "mutually-exclusive-with-webhook" | "moves-bot-off-cloud";
2
+ export type MethodVerdict = {
3
+ allowed: true;
4
+ listed: boolean;
5
+ } | {
6
+ allowed: false;
7
+ reason: RefusalReason;
8
+ owner: string;
9
+ };
10
+ /** An unlisted method is ALLOWED, not refused. `BOT_API_METHODS` is a snapshot
11
+ * of Bot API 10.2; refusing a name absent from it would make every method
12
+ * Telegram adds afterwards unreachable, which is the opposite of the point.
13
+ * Drift between the snapshot and the live API is surfaced by the census, not
14
+ * by blocking the call. */
15
+ export declare function checkMethod(name: string): MethodVerdict;
16
+ /** Count of refused methods, for the boot census. */
17
+ export declare const REFUSED_COUNT: number;
18
+ //# sourceMappingURL=api-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-guard.d.ts","sourceRoot":"","sources":["../../src/lib/api-guard.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GACrB,2BAA2B,GAC3B,iCAAiC,GACjC,qBAAqB,CAAC;AAyB1B,MAAM,MAAM,aAAa,GACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D;;;;4BAI4B;AAC5B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAIvD;AAED,qDAAqD;AACrD,eAAO,MAAM,aAAa,QAA+B,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { BOT_API_METHODS } from "./api-methods.js";
2
+ /** The five methods `telegram-api` will not relay, each with the reason and the
3
+ * surface that owns the capability instead.
4
+ *
5
+ * Webhook state belongs to `telegram-webhook-register`, which enforces the
6
+ * `/api/telegram/` path the maxy edge admits and stamps `bot=<botId>` on the
7
+ * URL; a raw setWebhook or deleteWebhook would silently repoint or stop every
8
+ * inbound message with nothing in our own logs to explain it.
9
+ *
10
+ * getUpdates is, in Telegram's words, one of "two mutually exclusive ways of
11
+ * receiving updates", and it "will not work if an outgoing webhook is set up".
12
+ *
13
+ * logOut and close both move the bot off the cloud Bot API server. */
14
+ const REFUSALS = Object.freeze({
15
+ setWebhook: { reason: "owned-by-webhook-register", owner: "telegram-webhook-register" },
16
+ deleteWebhook: { reason: "owned-by-webhook-register", owner: "telegram-webhook-register" },
17
+ getUpdates: { reason: "mutually-exclusive-with-webhook", owner: "telegram-webhook-register" },
18
+ logOut: { reason: "moves-bot-off-cloud", owner: "the cloud Bot API server" },
19
+ close: { reason: "moves-bot-off-cloud", owner: "the cloud Bot API server" },
20
+ });
21
+ const LISTED = new Set(BOT_API_METHODS);
22
+ /** An unlisted method is ALLOWED, not refused. `BOT_API_METHODS` is a snapshot
23
+ * of Bot API 10.2; refusing a name absent from it would make every method
24
+ * Telegram adds afterwards unreachable, which is the opposite of the point.
25
+ * Drift between the snapshot and the live API is surfaced by the census, not
26
+ * by blocking the call. */
27
+ export function checkMethod(name) {
28
+ const refusal = REFUSALS[name];
29
+ if (refusal)
30
+ return { allowed: false, ...refusal };
31
+ return { allowed: true, listed: LISTED.has(name) };
32
+ }
33
+ /** Count of refused methods, for the boot census. */
34
+ export const REFUSED_COUNT = Object.keys(REFUSALS).length;
35
+ //# sourceMappingURL=api-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-guard.js","sourceRoot":"","sources":["../../src/lib/api-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOnD;;;;;;;;;;;uEAWuE;AACvE,MAAM,QAAQ,GACZ,MAAM,CAAC,MAAM,CAAC;IACZ,UAAU,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,2BAA2B,EAAE;IACvF,aAAa,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,2BAA2B,EAAE;IAC1F,UAAU,EAAE,EAAE,MAAM,EAAE,iCAAiC,EAAE,KAAK,EAAE,2BAA2B,EAAE;IAC7F,MAAM,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,0BAA0B,EAAE;IAC5E,KAAK,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,0BAA0B,EAAE;CAC5E,CAAC,CAAC;AAEL,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;AAMxC;;;;4BAI4B;AAC5B,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;IACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC"}
@@ -0,0 +1,38 @@
1
+ /** Bot API version this list was taken from: 10.2, 14 July 2026. The
2
+ * census compares the live page against it; a bump here without a census
3
+ * run is how the two drift. */
4
+ export declare const API_VERSION = "10.2";
5
+ /** Every documented method, in the order and grouping the Bot API presents
6
+ * them. Sections carry the grouping the build skill's reference mirrors. */
7
+ export declare const METHOD_SECTIONS: readonly [{
8
+ readonly section: "Getting updates";
9
+ readonly methods: readonly ["getUpdates", "setWebhook", "deleteWebhook", "getWebhookInfo"];
10
+ }, {
11
+ readonly section: "Available methods";
12
+ readonly methods: readonly ["getMe", "logOut", "close", "sendMessage", "forwardMessage", "forwardMessages", "copyMessage", "copyMessages", "sendPhoto", "sendLivePhoto", "sendAudio", "sendDocument", "sendVideo", "sendAnimation", "sendVoice", "sendVideoNote", "sendPaidMedia", "sendMediaGroup", "sendLocation", "sendVenue", "sendContact", "sendPoll", "sendChecklist", "sendDice", "sendMessageDraft", "sendChatAction", "setMessageReaction", "getUserProfilePhotos", "getUserProfileAudios", "setUserEmojiStatus", "getFile", "banChatMember", "unbanChatMember", "restrictChatMember", "promoteChatMember", "setChatAdministratorCustomTitle", "setChatMemberTag", "banChatSenderChat", "unbanChatSenderChat", "setChatPermissions", "exportChatInviteLink", "createChatInviteLink", "editChatInviteLink", "createChatSubscriptionInviteLink", "editChatSubscriptionInviteLink", "revokeChatInviteLink", "approveChatJoinRequest", "declineChatJoinRequest", "answerChatJoinRequestQuery", "sendChatJoinRequestWebApp", "setChatPhoto", "deleteChatPhoto", "setChatTitle", "setChatDescription", "pinChatMessage", "unpinChatMessage", "unpinAllChatMessages", "leaveChat", "getChat", "getChatAdministrators", "getChatMemberCount", "getChatMember", "getUserPersonalChatMessages", "setChatStickerSet", "deleteChatStickerSet", "getForumTopicIconStickers", "createForumTopic", "editForumTopic", "closeForumTopic", "reopenForumTopic", "deleteForumTopic", "unpinAllForumTopicMessages", "editGeneralForumTopic", "closeGeneralForumTopic", "reopenGeneralForumTopic", "hideGeneralForumTopic", "unhideGeneralForumTopic", "unpinAllGeneralForumTopicMessages", "answerCallbackQuery", "answerGuestQuery", "getUserChatBoosts", "getBusinessConnection", "getManagedBotToken", "replaceManagedBotToken", "getManagedBotAccessSettings", "setManagedBotAccessSettings", "setMyCommands", "deleteMyCommands", "getMyCommands", "setMyName", "getMyName", "setMyDescription", "getMyDescription", "setMyShortDescription", "getMyShortDescription", "setMyProfilePhoto", "removeMyProfilePhoto", "setChatMenuButton", "getChatMenuButton", "setMyDefaultAdministratorRights", "getMyDefaultAdministratorRights", "getAvailableGifts", "sendGift", "giftPremiumSubscription", "verifyUser", "verifyChat", "removeUserVerification", "removeChatVerification", "readBusinessMessage", "deleteBusinessMessages", "setBusinessAccountName", "setBusinessAccountUsername", "setBusinessAccountBio", "setBusinessAccountProfilePhoto", "removeBusinessAccountProfilePhoto", "setBusinessAccountGiftSettings", "getBusinessAccountStarBalance", "transferBusinessAccountStars", "getBusinessAccountGifts", "getUserGifts", "getChatGifts", "convertGiftToStars", "upgradeGift", "transferGift", "postStory", "repostStory", "editStory", "deleteStory", "answerWebAppQuery", "savePreparedInlineMessage", "savePreparedKeyboardButton"];
13
+ }, {
14
+ readonly section: "Updating messages";
15
+ readonly methods: readonly ["editMessageText", "editMessageCaption", "editMessageMedia", "editMessageLiveLocation", "stopMessageLiveLocation", "editMessageChecklist", "editMessageReplyMarkup", "stopPoll", "editEphemeralMessageText", "editEphemeralMessageMedia", "editEphemeralMessageCaption", "editEphemeralMessageReplyMarkup", "approveSuggestedPost", "declineSuggestedPost", "deleteMessage", "deleteMessages", "deleteEphemeralMessage", "deleteMessageReaction", "deleteAllMessageReactions"];
16
+ }, {
17
+ readonly section: "Stickers";
18
+ readonly methods: readonly ["sendSticker", "getStickerSet", "getCustomEmojiStickers", "uploadStickerFile", "createNewStickerSet", "addStickerToSet", "setStickerPositionInSet", "deleteStickerFromSet", "replaceStickerInSet", "setStickerEmojiList", "setStickerKeywords", "setStickerMaskPosition", "setStickerSetTitle", "setStickerSetThumbnail", "setCustomEmojiStickerSetThumbnail", "deleteStickerSet"];
19
+ }, {
20
+ readonly section: "Rich messages";
21
+ readonly methods: readonly ["sendRichMessage", "sendRichMessageDraft"];
22
+ }, {
23
+ readonly section: "Inline mode";
24
+ readonly methods: readonly ["answerInlineQuery"];
25
+ }, {
26
+ readonly section: "Payments";
27
+ readonly methods: readonly ["sendInvoice", "createInvoiceLink", "answerShippingQuery", "answerPreCheckoutQuery", "getMyStarBalance", "getStarTransactions", "refundStarPayment", "editUserStarSubscription"];
28
+ }, {
29
+ readonly section: "Telegram Passport";
30
+ readonly methods: readonly ["setPassportDataErrors"];
31
+ }, {
32
+ readonly section: "Games";
33
+ readonly methods: readonly ["sendGame", "setGameScore", "getGameHighScores"];
34
+ }];
35
+ /** Every method name, flattened. The guard, the census and the build skill's
36
+ * reference all read this rather than keeping their own copy. */
37
+ export declare const BOT_API_METHODS: readonly string[];
38
+ //# sourceMappingURL=api-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-methods.d.ts","sourceRoot":"","sources":["../../src/lib/api-methods.ts"],"names":[],"mappings":"AAAA;;gCAEgC;AAChC,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC;6EAC6E;AAC7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlB,CAAC;AAEX;kEACkE;AAClE,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAE5C,CAAC"}
@@ -0,0 +1,21 @@
1
+ /** Bot API version this list was taken from: 10.2, 14 July 2026. The
2
+ * census compares the live page against it; a bump here without a census
3
+ * run is how the two drift. */
4
+ export const API_VERSION = "10.2";
5
+ /** Every documented method, in the order and grouping the Bot API presents
6
+ * them. Sections carry the grouping the build skill's reference mirrors. */
7
+ export const METHOD_SECTIONS = [
8
+ { section: "Getting updates", methods: ["getUpdates", "setWebhook", "deleteWebhook", "getWebhookInfo"] },
9
+ { section: "Available methods", methods: ["getMe", "logOut", "close", "sendMessage", "forwardMessage", "forwardMessages", "copyMessage", "copyMessages", "sendPhoto", "sendLivePhoto", "sendAudio", "sendDocument", "sendVideo", "sendAnimation", "sendVoice", "sendVideoNote", "sendPaidMedia", "sendMediaGroup", "sendLocation", "sendVenue", "sendContact", "sendPoll", "sendChecklist", "sendDice", "sendMessageDraft", "sendChatAction", "setMessageReaction", "getUserProfilePhotos", "getUserProfileAudios", "setUserEmojiStatus", "getFile", "banChatMember", "unbanChatMember", "restrictChatMember", "promoteChatMember", "setChatAdministratorCustomTitle", "setChatMemberTag", "banChatSenderChat", "unbanChatSenderChat", "setChatPermissions", "exportChatInviteLink", "createChatInviteLink", "editChatInviteLink", "createChatSubscriptionInviteLink", "editChatSubscriptionInviteLink", "revokeChatInviteLink", "approveChatJoinRequest", "declineChatJoinRequest", "answerChatJoinRequestQuery", "sendChatJoinRequestWebApp", "setChatPhoto", "deleteChatPhoto", "setChatTitle", "setChatDescription", "pinChatMessage", "unpinChatMessage", "unpinAllChatMessages", "leaveChat", "getChat", "getChatAdministrators", "getChatMemberCount", "getChatMember", "getUserPersonalChatMessages", "setChatStickerSet", "deleteChatStickerSet", "getForumTopicIconStickers", "createForumTopic", "editForumTopic", "closeForumTopic", "reopenForumTopic", "deleteForumTopic", "unpinAllForumTopicMessages", "editGeneralForumTopic", "closeGeneralForumTopic", "reopenGeneralForumTopic", "hideGeneralForumTopic", "unhideGeneralForumTopic", "unpinAllGeneralForumTopicMessages", "answerCallbackQuery", "answerGuestQuery", "getUserChatBoosts", "getBusinessConnection", "getManagedBotToken", "replaceManagedBotToken", "getManagedBotAccessSettings", "setManagedBotAccessSettings", "setMyCommands", "deleteMyCommands", "getMyCommands", "setMyName", "getMyName", "setMyDescription", "getMyDescription", "setMyShortDescription", "getMyShortDescription", "setMyProfilePhoto", "removeMyProfilePhoto", "setChatMenuButton", "getChatMenuButton", "setMyDefaultAdministratorRights", "getMyDefaultAdministratorRights", "getAvailableGifts", "sendGift", "giftPremiumSubscription", "verifyUser", "verifyChat", "removeUserVerification", "removeChatVerification", "readBusinessMessage", "deleteBusinessMessages", "setBusinessAccountName", "setBusinessAccountUsername", "setBusinessAccountBio", "setBusinessAccountProfilePhoto", "removeBusinessAccountProfilePhoto", "setBusinessAccountGiftSettings", "getBusinessAccountStarBalance", "transferBusinessAccountStars", "getBusinessAccountGifts", "getUserGifts", "getChatGifts", "convertGiftToStars", "upgradeGift", "transferGift", "postStory", "repostStory", "editStory", "deleteStory", "answerWebAppQuery", "savePreparedInlineMessage", "savePreparedKeyboardButton"] },
10
+ { section: "Updating messages", methods: ["editMessageText", "editMessageCaption", "editMessageMedia", "editMessageLiveLocation", "stopMessageLiveLocation", "editMessageChecklist", "editMessageReplyMarkup", "stopPoll", "editEphemeralMessageText", "editEphemeralMessageMedia", "editEphemeralMessageCaption", "editEphemeralMessageReplyMarkup", "approveSuggestedPost", "declineSuggestedPost", "deleteMessage", "deleteMessages", "deleteEphemeralMessage", "deleteMessageReaction", "deleteAllMessageReactions"] },
11
+ { section: "Stickers", methods: ["sendSticker", "getStickerSet", "getCustomEmojiStickers", "uploadStickerFile", "createNewStickerSet", "addStickerToSet", "setStickerPositionInSet", "deleteStickerFromSet", "replaceStickerInSet", "setStickerEmojiList", "setStickerKeywords", "setStickerMaskPosition", "setStickerSetTitle", "setStickerSetThumbnail", "setCustomEmojiStickerSetThumbnail", "deleteStickerSet"] },
12
+ { section: "Rich messages", methods: ["sendRichMessage", "sendRichMessageDraft"] },
13
+ { section: "Inline mode", methods: ["answerInlineQuery"] },
14
+ { section: "Payments", methods: ["sendInvoice", "createInvoiceLink", "answerShippingQuery", "answerPreCheckoutQuery", "getMyStarBalance", "getStarTransactions", "refundStarPayment", "editUserStarSubscription"] },
15
+ { section: "Telegram Passport", methods: ["setPassportDataErrors"] },
16
+ { section: "Games", methods: ["sendGame", "setGameScore", "getGameHighScores"] },
17
+ ];
18
+ /** Every method name, flattened. The guard, the census and the build skill's
19
+ * reference all read this rather than keeping their own copy. */
20
+ export const BOT_API_METHODS = METHOD_SECTIONS.flatMap((s) => s.methods);
21
+ //# sourceMappingURL=api-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-methods.js","sourceRoot":"","sources":["../../src/lib/api-methods.ts"],"names":[],"mappings":"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"}