@wirecat/cli-core 0.339.0 → 0.341.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/dist/cli/author.d.ts +6 -0
  2. package/dist/cli/author.d.ts.map +1 -1
  3. package/dist/cli/author.js +15 -0
  4. package/dist/cli/author.js.map +1 -1
  5. package/dist/cli/context.d.ts +4 -2
  6. package/dist/cli/context.d.ts.map +1 -1
  7. package/dist/cli/context.js +2 -1
  8. package/dist/cli/context.js.map +1 -1
  9. package/dist/cli/effects.d.ts +2 -1
  10. package/dist/cli/effects.d.ts.map +1 -1
  11. package/dist/cli/effects.js +3 -2
  12. package/dist/cli/effects.js.map +1 -1
  13. package/dist/cli/index.d.ts +0 -1
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/index.js +0 -1
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/messenger/account-command.d.ts.map +1 -1
  18. package/dist/cli/messenger/account-command.js +3 -3
  19. package/dist/cli/messenger/account-command.js.map +1 -1
  20. package/dist/cli/messenger/admin-commands.d.ts +3 -0
  21. package/dist/cli/messenger/admin-commands.d.ts.map +1 -1
  22. package/dist/cli/messenger/admin-commands.js +15 -4
  23. package/dist/cli/messenger/admin-commands.js.map +1 -1
  24. package/dist/cli/messenger/attachments-command.d.ts.map +1 -1
  25. package/dist/cli/messenger/attachments-command.js +10 -3
  26. package/dist/cli/messenger/attachments-command.js.map +1 -1
  27. package/dist/cli/messenger/catch-up.d.ts +8 -2
  28. package/dist/cli/messenger/catch-up.d.ts.map +1 -1
  29. package/dist/cli/messenger/catch-up.js +11 -3
  30. package/dist/cli/messenger/catch-up.js.map +1 -1
  31. package/dist/cli/messenger/context.d.ts +14 -0
  32. package/dist/cli/messenger/context.d.ts.map +1 -1
  33. package/dist/cli/messenger/context.js +8 -4
  34. package/dist/cli/messenger/context.js.map +1 -1
  35. package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
  36. package/dist/cli/messenger/conversations-command.js +25 -1
  37. package/dist/cli/messenger/conversations-command.js.map +1 -1
  38. package/dist/cli/messenger/flood-command.js +2 -2
  39. package/dist/cli/messenger/flood-command.js.map +1 -1
  40. package/dist/cli/messenger/flooded.js +10 -10
  41. package/dist/cli/messenger/flooded.js.map +1 -1
  42. package/dist/cli/messenger/guard-commands.js +1 -1
  43. package/dist/cli/messenger/guard-commands.js.map +1 -1
  44. package/dist/cli/messenger/inbox.d.ts.map +1 -1
  45. package/dist/cli/messenger/inbox.js +11 -6
  46. package/dist/cli/messenger/inbox.js.map +1 -1
  47. package/dist/cli/messenger/mcp-command.js +1 -1
  48. package/dist/cli/messenger/mcp-command.js.map +1 -1
  49. package/dist/cli/messenger/mentions-command.d.ts.map +1 -1
  50. package/dist/cli/messenger/mentions-command.js +6 -7
  51. package/dist/cli/messenger/mentions-command.js.map +1 -1
  52. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  53. package/dist/cli/messenger/messages-command.js +2 -2
  54. package/dist/cli/messenger/messages-command.js.map +1 -1
  55. package/dist/cli/messenger/messages-send-command.d.ts.map +1 -1
  56. package/dist/cli/messenger/messages-send-command.js +13 -6
  57. package/dist/cli/messenger/messages-send-command.js.map +1 -1
  58. package/dist/cli/messenger/private-people-command.d.ts.map +1 -1
  59. package/dist/cli/messenger/private-people-command.js +5 -4
  60. package/dist/cli/messenger/private-people-command.js.map +1 -1
  61. package/dist/cli/messenger/refreshed-refs.d.ts +16 -0
  62. package/dist/cli/messenger/refreshed-refs.d.ts.map +1 -0
  63. package/dist/cli/messenger/refreshed-refs.js +31 -0
  64. package/dist/cli/messenger/refreshed-refs.js.map +1 -0
  65. package/dist/cli/messenger/review.js +6 -6
  66. package/dist/cli/messenger/review.js.map +1 -1
  67. package/dist/cli/messenger/serve-relay.d.ts +3 -0
  68. package/dist/cli/messenger/serve-relay.d.ts.map +1 -1
  69. package/dist/cli/messenger/stored.d.ts +1 -1
  70. package/dist/cli/messenger/stored.d.ts.map +1 -1
  71. package/dist/cli/messenger/stored.js +1 -1
  72. package/dist/cli/messenger/stored.js.map +1 -1
  73. package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
  74. package/dist/cli/messenger/tasks-command.js +11 -9
  75. package/dist/cli/messenger/tasks-command.js.map +1 -1
  76. package/dist/cli/messenger/transcribe-command.d.ts.map +1 -1
  77. package/dist/cli/messenger/transcribe-command.js +3 -1
  78. package/dist/cli/messenger/transcribe-command.js.map +1 -1
  79. package/dist/cli/program.d.ts.map +1 -1
  80. package/dist/cli/program.js +7 -3
  81. package/dist/cli/program.js.map +1 -1
  82. package/dist/cli/stdin-field.d.ts +11 -0
  83. package/dist/cli/stdin-field.d.ts.map +1 -0
  84. package/dist/cli/stdin-field.js +7 -0
  85. package/dist/cli/stdin-field.js.map +1 -0
  86. package/dist/domain/attachments.d.ts +15 -1
  87. package/dist/domain/attachments.d.ts.map +1 -1
  88. package/dist/domain/attachments.js.map +1 -1
  89. package/dist/domain/models.d.ts +2 -0
  90. package/dist/domain/models.d.ts.map +1 -1
  91. package/dist/domain/models.js.map +1 -1
  92. package/dist/domain/tag-consolidation.d.ts +78 -0
  93. package/dist/domain/tag-consolidation.d.ts.map +1 -0
  94. package/dist/domain/tag-consolidation.js +2 -0
  95. package/dist/domain/tag-consolidation.js.map +1 -0
  96. package/dist/errors/reasons.d.ts.map +1 -1
  97. package/dist/errors/reasons.js +7 -1
  98. package/dist/errors/reasons.js.map +1 -1
  99. package/dist/mcp/agent.d.ts +10 -1
  100. package/dist/mcp/agent.d.ts.map +1 -1
  101. package/dist/mcp/agent.js +65 -20
  102. package/dist/mcp/agent.js.map +1 -1
  103. package/dist/mcp/prompts.js +1 -1
  104. package/dist/mcp/prompts.js.map +1 -1
  105. package/dist/mcp/server.d.ts +5 -0
  106. package/dist/mcp/server.d.ts.map +1 -1
  107. package/dist/mcp/server.js +278 -32
  108. package/dist/mcp/server.js.map +1 -1
  109. package/dist/mcp/session.d.ts +2 -0
  110. package/dist/mcp/session.d.ts.map +1 -1
  111. package/dist/mcp/session.js +2 -0
  112. package/dist/mcp/session.js.map +1 -1
  113. package/dist/mcp/surface.d.ts +5 -2
  114. package/dist/mcp/surface.d.ts.map +1 -1
  115. package/dist/mcp/surface.js +7 -4
  116. package/dist/mcp/surface.js.map +1 -1
  117. package/dist/mcp/tool.d.ts +3 -6
  118. package/dist/mcp/tool.d.ts.map +1 -1
  119. package/dist/mcp/tool.js +3 -36
  120. package/dist/mcp/tool.js.map +1 -1
  121. package/dist/mcp/tools/attachments.d.ts.map +1 -1
  122. package/dist/mcp/tools/attachments.js +3 -138
  123. package/dist/mcp/tools/attachments.js.map +1 -1
  124. package/dist/mcp/tools/messages-photo.d.ts.map +1 -1
  125. package/dist/mcp/tools/messages-photo.js +3 -1
  126. package/dist/mcp/tools/messages-photo.js.map +1 -1
  127. package/dist/mcp/tools.d.ts +4 -21
  128. package/dist/mcp/tools.d.ts.map +1 -1
  129. package/dist/mcp/tools.js +4 -97
  130. package/dist/mcp/tools.js.map +1 -1
  131. package/dist/meetings/mcp/index.d.ts +15 -15
  132. package/dist/meetings/mcp/index.d.ts.map +1 -1
  133. package/dist/ports/messenger.d.ts +3 -1
  134. package/dist/ports/messenger.d.ts.map +1 -1
  135. package/dist/ports/messenger.js.map +1 -1
  136. package/dist/sends/file-lock.d.ts +10 -1
  137. package/dist/sends/file-lock.d.ts.map +1 -1
  138. package/dist/sends/file-lock.js +42 -14
  139. package/dist/sends/file-lock.js.map +1 -1
  140. package/dist/sends/guard.d.ts +5 -0
  141. package/dist/sends/guard.d.ts.map +1 -1
  142. package/dist/sends/guard.js +54 -42
  143. package/dist/sends/guard.js.map +1 -1
  144. package/dist/sends/guarded.d.ts.map +1 -1
  145. package/dist/sends/guarded.js +14 -1
  146. package/dist/sends/guarded.js.map +1 -1
  147. package/dist/sends/index.d.ts +1 -1
  148. package/dist/sends/index.d.ts.map +1 -1
  149. package/dist/sends/journal.d.ts +3 -1
  150. package/dist/sends/journal.d.ts.map +1 -1
  151. package/dist/sends/journal.js +5 -1
  152. package/dist/sends/journal.js.map +1 -1
  153. package/dist/sends/pace.d.ts +3 -3
  154. package/dist/sends/pace.d.ts.map +1 -1
  155. package/dist/sends/pace.js +7 -7
  156. package/dist/sends/pace.js.map +1 -1
  157. package/dist/sends/permissions.d.ts.map +1 -1
  158. package/dist/sends/permissions.js +2 -1
  159. package/dist/sends/permissions.js.map +1 -1
  160. package/dist/sends/recipients.d.ts +3 -1
  161. package/dist/sends/recipients.d.ts.map +1 -1
  162. package/dist/sends/recipients.js +23 -16
  163. package/dist/sends/recipients.js.map +1 -1
  164. package/dist/sends/upload.d.ts +15 -2
  165. package/dist/sends/upload.d.ts.map +1 -1
  166. package/dist/sends/upload.js +58 -9
  167. package/dist/sends/upload.js.map +1 -1
  168. package/dist/services/admin.d.ts.map +1 -1
  169. package/dist/services/admin.js +7 -1
  170. package/dist/services/admin.js.map +1 -1
  171. package/dist/services/file-download.d.ts +3 -0
  172. package/dist/services/file-download.d.ts.map +1 -1
  173. package/dist/services/file-download.js +11 -0
  174. package/dist/services/file-download.js.map +1 -1
  175. package/dist/services/messages.d.ts +3 -1
  176. package/dist/services/messages.d.ts.map +1 -1
  177. package/dist/services/messages.js +14 -5
  178. package/dist/services/messages.js.map +1 -1
  179. package/dist/services/pictures.d.ts.map +1 -1
  180. package/dist/services/pictures.js +12 -2
  181. package/dist/services/pictures.js.map +1 -1
  182. package/dist/speech/transcribe.d.ts +3 -2
  183. package/dist/speech/transcribe.d.ts.map +1 -1
  184. package/dist/speech/transcribe.js +5 -2
  185. package/dist/speech/transcribe.js.map +1 -1
  186. package/dist/store/attachments.d.ts +6 -1
  187. package/dist/store/attachments.d.ts.map +1 -1
  188. package/dist/store/attachments.js +10 -0
  189. package/dist/store/attachments.js.map +1 -1
  190. package/dist/store/drivers/node-sqlite.d.ts +2 -3
  191. package/dist/store/drivers/node-sqlite.d.ts.map +1 -1
  192. package/dist/store/drivers/node-sqlite.js +2 -3
  193. package/dist/store/drivers/node-sqlite.js.map +1 -1
  194. package/dist/store/index.d.ts +1 -0
  195. package/dist/store/index.d.ts.map +1 -1
  196. package/dist/store/index.js.map +1 -1
  197. package/dist/store/open.d.ts.map +1 -1
  198. package/dist/store/open.js +2 -0
  199. package/dist/store/open.js.map +1 -1
  200. package/dist/store/sqlite/attachments.d.ts +4 -2
  201. package/dist/store/sqlite/attachments.d.ts.map +1 -1
  202. package/dist/store/sqlite/attachments.js +15 -12
  203. package/dist/store/sqlite/attachments.js.map +1 -1
  204. package/dist/store/sqlite/open.d.ts.map +1 -1
  205. package/dist/store/sqlite/open.js +2 -0
  206. package/dist/store/sqlite/open.js.map +1 -1
  207. package/dist/store/sqlite/tag-consolidation.d.ts +5 -0
  208. package/dist/store/sqlite/tag-consolidation.d.ts.map +1 -0
  209. package/dist/store/sqlite/tag-consolidation.js +178 -0
  210. package/dist/store/sqlite/tag-consolidation.js.map +1 -0
  211. package/dist/store/sqlite/tags.js +1 -1
  212. package/dist/store/sqlite/tags.js.map +1 -1
  213. package/dist/store/sqlite/vocabulary.d.ts +2 -1
  214. package/dist/store/sqlite/vocabulary.d.ts.map +1 -1
  215. package/dist/store/sqlite/vocabulary.js +2 -0
  216. package/dist/store/sqlite/vocabulary.js.map +1 -1
  217. package/dist/store/sqlite-warning.d.ts +8 -0
  218. package/dist/store/sqlite-warning.d.ts.map +1 -0
  219. package/dist/store/sqlite-warning.js +26 -0
  220. package/dist/store/sqlite-warning.js.map +1 -0
  221. package/package.json +2 -2
  222. package/parity.json +36 -2
  223. package/dist/mcp/search-sync.d.ts +0 -12
  224. package/dist/mcp/search-sync.d.ts.map +0 -1
  225. package/dist/mcp/search-sync.js +0 -18
  226. package/dist/mcp/search-sync.js.map +0 -1
  227. package/dist/mcp/thread-options.d.ts +0 -19
  228. package/dist/mcp/thread-options.d.ts.map +0 -1
  229. package/dist/mcp/thread-options.js +0 -20
  230. package/dist/mcp/thread-options.js.map +0 -1
  231. package/dist/mcp/tools/account.d.ts +0 -4
  232. package/dist/mcp/tools/account.d.ts.map +0 -1
  233. package/dist/mcp/tools/account.js +0 -31
  234. package/dist/mcp/tools/account.js.map +0 -1
  235. package/dist/mcp/tools/admin-statistics.d.ts +0 -4
  236. package/dist/mcp/tools/admin-statistics.d.ts.map +0 -1
  237. package/dist/mcp/tools/admin-statistics.js +0 -163
  238. package/dist/mcp/tools/admin-statistics.js.map +0 -1
  239. package/dist/mcp/tools/admin.d.ts +0 -5
  240. package/dist/mcp/tools/admin.d.ts.map +0 -1
  241. package/dist/mcp/tools/admin.js +0 -257
  242. package/dist/mcp/tools/admin.js.map +0 -1
  243. package/dist/mcp/tools/chats-read.d.ts +0 -4
  244. package/dist/mcp/tools/chats-read.d.ts.map +0 -1
  245. package/dist/mcp/tools/chats-read.js +0 -28
  246. package/dist/mcp/tools/chats-read.js.map +0 -1
  247. package/dist/mcp/tools/chats-state.d.ts +0 -5
  248. package/dist/mcp/tools/chats-state.d.ts.map +0 -1
  249. package/dist/mcp/tools/chats-state.js +0 -58
  250. package/dist/mcp/tools/chats-state.js.map +0 -1
  251. package/dist/mcp/tools/chats.d.ts +0 -4
  252. package/dist/mcp/tools/chats.d.ts.map +0 -1
  253. package/dist/mcp/tools/chats.js +0 -194
  254. package/dist/mcp/tools/chats.js.map +0 -1
  255. package/dist/mcp/tools/contacts-write.d.ts +0 -5
  256. package/dist/mcp/tools/contacts-write.d.ts.map +0 -1
  257. package/dist/mcp/tools/contacts-write.js +0 -53
  258. package/dist/mcp/tools/contacts-write.js.map +0 -1
  259. package/dist/mcp/tools/contacts.d.ts +0 -4
  260. package/dist/mcp/tools/contacts.d.ts.map +0 -1
  261. package/dist/mcp/tools/contacts.js +0 -196
  262. package/dist/mcp/tools/contacts.js.map +0 -1
  263. package/dist/mcp/tools/conversations.d.ts +0 -5
  264. package/dist/mcp/tools/conversations.d.ts.map +0 -1
  265. package/dist/mcp/tools/conversations.js +0 -265
  266. package/dist/mcp/tools/conversations.js.map +0 -1
  267. package/dist/mcp/tools/folders.d.ts +0 -5
  268. package/dist/mcp/tools/folders.d.ts.map +0 -1
  269. package/dist/mcp/tools/folders.js +0 -103
  270. package/dist/mcp/tools/folders.js.map +0 -1
  271. package/dist/mcp/tools/inbox.d.ts +0 -6
  272. package/dist/mcp/tools/inbox.d.ts.map +0 -1
  273. package/dist/mcp/tools/inbox.js +0 -65
  274. package/dist/mcp/tools/inbox.js.map +0 -1
  275. package/dist/mcp/tools/messages-actions.d.ts +0 -5
  276. package/dist/mcp/tools/messages-actions.d.ts.map +0 -1
  277. package/dist/mcp/tools/messages-actions.js +0 -129
  278. package/dist/mcp/tools/messages-actions.js.map +0 -1
  279. package/dist/mcp/tools/messages-delete.d.ts +0 -4
  280. package/dist/mcp/tools/messages-delete.d.ts.map +0 -1
  281. package/dist/mcp/tools/messages-delete.js +0 -39
  282. package/dist/mcp/tools/messages-delete.js.map +0 -1
  283. package/dist/mcp/tools/messages-send.d.ts +0 -8
  284. package/dist/mcp/tools/messages-send.d.ts.map +0 -1
  285. package/dist/mcp/tools/messages-send.js +0 -99
  286. package/dist/mcp/tools/messages-send.js.map +0 -1
  287. package/dist/mcp/tools/messages-transcribe.d.ts +0 -4
  288. package/dist/mcp/tools/messages-transcribe.d.ts.map +0 -1
  289. package/dist/mcp/tools/messages-transcribe.js +0 -32
  290. package/dist/mcp/tools/messages-transcribe.js.map +0 -1
  291. package/dist/mcp/tools/messages.d.ts +0 -4
  292. package/dist/mcp/tools/messages.d.ts.map +0 -1
  293. package/dist/mcp/tools/messages.js +0 -205
  294. package/dist/mcp/tools/messages.js.map +0 -1
  295. package/dist/mcp/tools/moderation.d.ts +0 -8
  296. package/dist/mcp/tools/moderation.d.ts.map +0 -1
  297. package/dist/mcp/tools/moderation.js +0 -36
  298. package/dist/mcp/tools/moderation.js.map +0 -1
  299. package/dist/mcp/tools/polls.d.ts +0 -6
  300. package/dist/mcp/tools/polls.d.ts.map +0 -1
  301. package/dist/mcp/tools/polls.js +0 -140
  302. package/dist/mcp/tools/polls.js.map +0 -1
  303. package/dist/mcp/tools/private-people.d.ts +0 -4
  304. package/dist/mcp/tools/private-people.d.ts.map +0 -1
  305. package/dist/mcp/tools/private-people.js +0 -121
  306. package/dist/mcp/tools/private-people.js.map +0 -1
  307. package/dist/mcp/tools/rankings.d.ts +0 -4
  308. package/dist/mcp/tools/rankings.d.ts.map +0 -1
  309. package/dist/mcp/tools/rankings.js +0 -112
  310. package/dist/mcp/tools/rankings.js.map +0 -1
  311. package/dist/mcp/tools/reactions.d.ts +0 -5
  312. package/dist/mcp/tools/reactions.d.ts.map +0 -1
  313. package/dist/mcp/tools/reactions.js +0 -33
  314. package/dist/mcp/tools/reactions.js.map +0 -1
  315. package/dist/mcp/tools/review.d.ts +0 -4
  316. package/dist/mcp/tools/review.d.ts.map +0 -1
  317. package/dist/mcp/tools/review.js +0 -68
  318. package/dist/mcp/tools/review.js.map +0 -1
  319. package/dist/mcp/tools/runs.d.ts +0 -4
  320. package/dist/mcp/tools/runs.d.ts.map +0 -1
  321. package/dist/mcp/tools/runs.js +0 -28
  322. package/dist/mcp/tools/runs.js.map +0 -1
  323. package/dist/mcp/tools/search-tools.d.ts +0 -5
  324. package/dist/mcp/tools/search-tools.d.ts.map +0 -1
  325. package/dist/mcp/tools/search-tools.js +0 -132
  326. package/dist/mcp/tools/search-tools.js.map +0 -1
  327. package/dist/mcp/tools/search.d.ts +0 -154
  328. package/dist/mcp/tools/search.d.ts.map +0 -1
  329. package/dist/mcp/tools/search.js +0 -163
  330. package/dist/mcp/tools/search.js.map +0 -1
  331. package/dist/mcp/tools/searches.d.ts +0 -4
  332. package/dist/mcp/tools/searches.d.ts.map +0 -1
  333. package/dist/mcp/tools/searches.js +0 -108
  334. package/dist/mcp/tools/searches.js.map +0 -1
  335. package/dist/mcp/tools/store.d.ts +0 -4
  336. package/dist/mcp/tools/store.d.ts.map +0 -1
  337. package/dist/mcp/tools/store.js +0 -163
  338. package/dist/mcp/tools/store.js.map +0 -1
  339. package/dist/mcp/tools/tags.d.ts +0 -4
  340. package/dist/mcp/tools/tags.d.ts.map +0 -1
  341. package/dist/mcp/tools/tags.js +0 -64
  342. package/dist/mcp/tools/tags.js.map +0 -1
  343. package/dist/mcp/tools/tasks.d.ts +0 -4
  344. package/dist/mcp/tools/tasks.d.ts.map +0 -1
  345. package/dist/mcp/tools/tasks.js +0 -369
  346. package/dist/mcp/tools/tasks.js.map +0 -1
  347. package/dist/mcp/tools/topics.d.ts +0 -5
  348. package/dist/mcp/tools/topics.d.ts.map +0 -1
  349. package/dist/mcp/tools/topics.js +0 -134
  350. package/dist/mcp/tools/topics.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"thread-options.js","sourceRoot":"","sources":["../../src/mcp/thread-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGrD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5F,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/F,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACtC,CAAA;AACD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAM1B,EAA8B,EAAE,CAC/B,IAAI,CAAC,MAAM;IACT,CAAC,CAAC;QACE,MAAM,EAAE;YACN,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YACpF,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3E,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;SAC9G;KACF;IACH,CAAC,CAAC,EAAE,CAAA"}
@@ -1,4 +0,0 @@
1
- import type { Messenger } from "../../cli/messenger/context.js";
2
- import { type AnyTool } from "../tool.js";
3
- export declare const accountTools: (messenger: Messenger) => Record<string, AnyTool>;
4
- //# sourceMappingURL=account.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/account.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,YAAY,CAAA;AAE7D,eAAO,MAAM,YAAY,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA6BzE,CAAA"}
@@ -1,31 +0,0 @@
1
- import * as v from "valibot";
2
- import { itemOf } from "../../cli/envelope.js";
3
- import { accountAnswer, sessionAnswer, wholeList } from "../../cli/messenger/chat-answers.js";
4
- import { capability } from "../../ports/messenger.js";
5
- import { maskedAccount } from "../../services/people.js";
6
- import { nameOf, READ, tool } from "../tool.js";
7
- export const accountTools = (messenger) => {
8
- const name = nameOf(messenger);
9
- return {
10
- account_show: tool({
11
- title: "Who this is",
12
- description: `The ${name} account this server is logged in as.`,
13
- input: v.object({}),
14
- annotations: { ...READ, idempotentHint: true },
15
- output: { entity: "account", list: false },
16
- // An agent has no reason to hold the owner's number (max-cli NEED-209).
17
- online: async (adapter) => itemOf(accountAnswer(messenger.provider, maskedAccount(await adapter.me()))),
18
- }),
19
- account_sessions: tool({
20
- title: "Where the owner is logged in",
21
- description: `Every device and app logged in to the owner's ${name} account, each with current, client, device, ` +
22
- "location, last_active_at. Reads only; nothing is ended.",
23
- input: v.object({}),
24
- annotations: READ,
25
- command: "account sessions list",
26
- output: { entity: "account_session", list: true },
27
- online: async (adapter) => wholeList("account sessions list", (await capability(adapter, "sessions", "list the account's sessions")()).map(sessionAnswer)),
28
- }),
29
- };
30
- };
31
- //# sourceMappingURL=account.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/mcp/tools/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAE7F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAgB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAoB,EAA2B,EAAE;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9B,OAAO;QACL,YAAY,EAAE,IAAI,CAAC;YACjB,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,OAAO,IAAI,uCAAuC;YAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9C,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;YAC1C,wEAAwE;YACxE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACxG,CAAC;QAEF,gBAAgB,EAAE,IAAI,CAAC;YACrB,KAAK,EAAE,8BAA8B;YACrC,WAAW,EACT,iDAAiD,IAAI,+CAA+C;gBACpG,yDAAyD;YAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,uBAAuB;YAChC,MAAM,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE;YACjD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACxB,SAAS,CACP,uBAAuB,EACvB,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,6BAA6B,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAC5F;SACJ,CAAC;KACH,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +0,0 @@
1
- import type { Messenger } from "../../cli/messenger/context.js";
2
- import { type AnyTool } from "../tool.js";
3
- export declare const adminStatisticsTools: (messenger: Messenger) => Record<string, AnyTool>;
4
- //# sourceMappingURL=admin-statistics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-statistics.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/admin-statistics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAK/D,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,YAAY,CAAA;AAkCrD,eAAO,MAAM,oBAAoB,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA8KjF,CAAA"}
@@ -1,163 +0,0 @@
1
- import * as v from "valibot";
2
- import { adminAnswer, countersAnswer, refreshAnswer, retentionAnswer } from "../../cli/messenger/stats-answers.js";
3
- import { searchServices } from "../search-sync.js";
4
- import { READ, tool } from "../tool.js";
5
- const common = {
6
- saved: v.optional(v.string()),
7
- timezone: v.optional(v.string()),
8
- limit: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
9
- };
10
- const query = {
11
- ...common,
12
- text: v.optional(v.string()),
13
- ast: v.optional(v.unknown()),
14
- chat: v.optional(v.pipe(v.string(), v.description("Stored chat ID, @username or title fragment; use chats list to discover IDs. Never guess ambiguous titles."))),
15
- source: v.optional(v.string()),
16
- exact: v.optional(v.boolean()),
17
- };
18
- const people = {
19
- answerer: v.optional(v.array(v.pipe(v.string(), v.description("Stored name, alias, @username, ID or person:provider/account/id, resolved only in query accounts. Unknown names fail; ambiguous names return candidates. Explicit unseen IDs remain unknown, not evidence of zero activity.")))),
20
- };
21
- export const adminStatisticsTools = (messenger) => {
22
- const definitions = {};
23
- for (const report of ["unanswered", "responses", "newcomers", "discussion"]) {
24
- const path = report === "responses" ? "contacts" : report === "newcomers" ? "chats" : "messages";
25
- const entries = report === "newcomers"
26
- ? {
27
- ...common,
28
- ...people,
29
- chat: v.pipe(v.string(), v.description("Stored chat ID, @username or title fragment; ambiguous titles require choosing a candidate.")),
30
- since_time: v.optional(v.string()),
31
- until_time: v.optional(v.string()),
32
- within: v.optional(v.string()),
33
- }
34
- : report === "discussion"
35
- ? {
36
- ...query,
37
- min_views: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0))),
38
- max_replies: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0))),
39
- }
40
- : {
41
- ...query,
42
- ...people,
43
- ...(report === "unanswered" ? { older_than: v.optional(v.string()) } : {}),
44
- };
45
- const input = v.object(entries);
46
- definitions[`stats_${path}_${report}`] = tool({
47
- title: `Stored ${report} report`,
48
- description: "Administrator statistics from authorized stored history only. Explicit qualifying replies; selected answerer identities do not prove historical admin roles. Missing joining dates, reply history and counters remain unknown or partial. Each row carries the selection its evidence takes; next names the top row's evidence. No fetch, sends, mark-read or model calls.",
49
- input,
50
- annotations: { ...READ, openWorldHint: false },
51
- output: { entity: "admin_report", list: false },
52
- stored: async (store, account, args, defaults) => {
53
- const services = searchServices(messenger, store, account, defaults);
54
- const values = args;
55
- const found = await services.adminStatistics.report(report, {
56
- limit: values.limit ?? 20,
57
- timezone: values.timezone,
58
- saved: values.saved,
59
- signal: defaults.signal,
60
- text: values.text,
61
- ast: values.ast,
62
- chat: values.chat,
63
- source: values.source,
64
- exact: values.exact,
65
- answerers: values.answerer,
66
- olderThan: values.older_than,
67
- within: values.within,
68
- sinceTime: values.since_time,
69
- untilTime: values.until_time,
70
- minViews: values.min_views,
71
- maxReplies: values.max_replies,
72
- });
73
- return adminAnswer(found);
74
- },
75
- });
76
- }
77
- definitions.stats_chats_retention = tool({
78
- title: "Observed retention cohorts",
79
- description: "Known joining cohorts, observed checkpoint membership, activity and interval departures from saved roster batches. Partial absences and missing joins remain unknown. Rates expose observed denominators. No connection or message actions.",
80
- input: v.object({
81
- chat: v.pipe(v.string(), v.description("Stored chat ID, @username or title fragment; ambiguous titles require choosing a candidate.")),
82
- since_time: v.optional(v.string()),
83
- until_time: v.optional(v.string()),
84
- checkpoints: v.optional(v.string()),
85
- within: v.optional(v.string()),
86
- by: v.optional(v.picklist(["day", "week"])),
87
- timezone: v.optional(v.string()),
88
- limit: common.limit,
89
- }),
90
- annotations: { ...READ, openWorldHint: false },
91
- output: { entity: "retention", list: false },
92
- stored: async (store, account, args, defaults) => retentionAnswer(await searchServices(messenger, store, account, defaults).retention.report(args.chat, {
93
- sinceTime: args.since_time,
94
- untilTime: args.until_time,
95
- checkpoints: args.checkpoints,
96
- within: args.within,
97
- by: args.by,
98
- timezone: args.timezone,
99
- limit: args.limit,
100
- })),
101
- });
102
- for (const operation of ["show", "refresh"]) {
103
- const entries = {
104
- text: query.text,
105
- ast: query.ast,
106
- chat: query.chat,
107
- source: query.source,
108
- exact: query.exact,
109
- timezone: query.timezone,
110
- limit: common.limit,
111
- selection: v.optional(v.unknown()),
112
- counters: v.optional(v.string()),
113
- ...(operation === "show" ? { max_age: v.optional(v.string()) } : {}),
114
- ...(operation === "refresh"
115
- ? {
116
- max_messages: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
117
- sync_time: v.optional(v.string()),
118
- dry_run: v.optional(v.boolean()),
119
- }
120
- : {}),
121
- };
122
- definitions[`stats_messages_counters_${operation}`] = tool({
123
- title: `Counter observations ${operation}`,
124
- description: operation === "show"
125
- ? "Bounded stored counter values with explicit per-field observation freshness and pinned exact locators."
126
- : "Bounded remote counter read and local observation write. Requires explicit chat or pinned selection. No send, mark-read or view increment. Dry run resolves targets and capabilities without connecting.",
127
- input: v.object(entries),
128
- annotations: {
129
- ...READ,
130
- readOnlyHint: operation === "show",
131
- destructiveHint: false,
132
- openWorldHint: operation === "refresh",
133
- },
134
- key: `stats.messages.counters.${operation}`,
135
- output: { entity: operation === "show" ? "counters" : "counter_refresh", list: false },
136
- stored: async (store, account, args, defaults, connect) => {
137
- const values = args;
138
- const counters = searchServices(messenger, store, account, defaults, operation === "refresh" && values.dry_run !== true ? connect : undefined).counters;
139
- const query = {
140
- text: values.text,
141
- ast: values.ast,
142
- chat: values.chat,
143
- source: values.source,
144
- exact: values.exact,
145
- timezone: values.timezone,
146
- selection: values.selection,
147
- counters: values.counters,
148
- maxAge: values.max_age,
149
- limit: values.limit ?? 20,
150
- maxMessages: values.max_messages,
151
- syncTime: values.sync_time,
152
- dryRun: values.dry_run,
153
- signal: defaults.signal,
154
- };
155
- return operation === "show"
156
- ? countersAnswer(await counters.show(query))
157
- : refreshAnswer(await counters.refresh(query));
158
- },
159
- });
160
- }
161
- return definitions;
162
- };
163
- //# sourceMappingURL=admin-statistics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-statistics.js","sourceRoot":"","sources":["../../../src/mcp/tools/admin-statistics.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { Messenger } from "../../cli/messenger/context.js";
2
- import { type AnyTool } from "../tool.js";
3
- /** Groups the owner makes, joins and leaves: other people see each one, so each is behind its permission level. */
4
- export declare const adminTools: (messenger: Messenger) => Record<string, AnyTool>;
5
- //# sourceMappingURL=admin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/admin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAK/D,OAAO,EAAE,KAAK,OAAO,EAA0C,MAAM,YAAY,CAAA;AAajF,mHAAmH;AACnH,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAkUvE,CAAA"}
@@ -1,257 +0,0 @@
1
- import { CliError } from "@wirecat/cli-base";
2
- import * as v from "valibot";
3
- import { itemOf, snakeKeys } from "../../cli/envelope.js";
4
- import { queryArgument } from "../../cli/list-query.js";
5
- import { inviteLinks, joinRequests } from "../../cli/messenger/chat-lists.js";
6
- import { LINKS_QUERY, REQUESTS_QUERY } from "../../cli/messenger/chat-queries.js";
7
- import { ADMIN_RIGHTS, GROUP_SETTINGS } from "../../domain/models.js";
8
- import { onlineDeps, servicesFor } from "../../services/index.js";
9
- import { chatOf, limit, page, READ, tool, WRITE } from "../tool.js";
10
- const answer = (service, args, accept) => {
11
- if ((args.person === undefined) === (args.all !== true))
12
- throw new CliError("validation_error", "give one person, or all — not both, not neither");
13
- if (args.link !== undefined && args.all !== true)
14
- throw new CliError("validation_error", "link goes with all");
15
- return args.person === undefined
16
- ? service.answerAllRequests(args.chat, accept, args.link === undefined ? {} : { link: args.link })
17
- : service.answerRequest(args.chat, args.person, accept);
18
- };
19
- /** Groups the owner makes, joins and leaves: other people see each one, so each is behind its permission level. */
20
- export const adminTools = (messenger) => {
21
- const admin = (adapter, guard) => servicesFor(onlineDeps(messenger, adapter, guard)).admin;
22
- const definitions = {
23
- chats_create: tool({
24
- title: "Create a group",
25
- description: "Create a group, or a channel, with these people in it; each of them is told they were added. " +
26
- "Only when the owner asked for this group with these people.",
27
- input: v.object({
28
- title: v.pipe(v.string(), v.minLength(1)),
29
- people: v.optional(v.array(v.pipe(v.string(), v.minLength(1)))),
30
- channel: v.optional(v.pipe(v.boolean(), v.description("a channel people join by its link, not a group"))),
31
- }),
32
- annotations: WRITE,
33
- permission: "groups",
34
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).create({
35
- title: args.title,
36
- people: args.people ?? [],
37
- channel: args.channel === true,
38
- }))),
39
- }),
40
- chats_join: tool({
41
- title: "Join a group by its link",
42
- description: "Join a group or channel by an invite or public link; the others in it see it. Where its admins approve " +
43
- "who joins, the answer is { requested: true }: the request is sent. Only when the owner asked.",
44
- input: v.object({ link: v.pipe(v.string(), v.minLength(1)) }),
45
- annotations: WRITE,
46
- permission: "groups",
47
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).join(args.link))),
48
- }),
49
- chats_leave: tool({
50
- title: "Leave a group",
51
- description: "Leave a group or channel; the others in it see it. Only when the owner asked to leave this chat.",
52
- input: v.object({ chat: chatOf(messenger) }),
53
- annotations: WRITE,
54
- permission: "groups",
55
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).leave(args.chat))),
56
- }),
57
- chats_update: tool({
58
- title: "Change a group",
59
- description: "Rename a group or channel, change its description, or turn its settings on or off; its members see the " +
60
- "change. Only when the owner asked for this change.",
61
- input: v.object({
62
- chat: chatOf(messenger),
63
- title: v.optional(v.pipe(v.string(), v.minLength(1))),
64
- description: v.optional(v.string()),
65
- settings: v.optional(v.pipe(v.partial(v.object(Object.fromEntries((messenger.groupSettings ?? GROUP_SETTINGS).map((key) => [
66
- key,
67
- key === "disappearingSeconds"
68
- ? v.pipe(v.number(), v.integer(), v.minValue(0), v.description("seconds; 0 keeps messages"))
69
- : v.boolean(),
70
- ])))), v.description("true turns a setting on, false off; one left out stays as it is"))),
71
- }),
72
- annotations: WRITE,
73
- permission: "groups",
74
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).update(args.chat, {
75
- ...(args.title === undefined ? {} : { title: args.title }),
76
- ...(args.description === undefined ? {} : { description: args.description }),
77
- ...(args.settings === undefined ? {} : { settings: args.settings }),
78
- }))),
79
- }),
80
- chats_link_show: tool({
81
- title: "A group's invite link",
82
- description: "The invite link of a group or channel, when the owner may see it. Reading changes nothing.",
83
- input: v.object({ chat: chatOf(messenger) }),
84
- annotations: READ,
85
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).link(args.chat))),
86
- }),
87
- chats_link_reset: tool({
88
- title: "Replace a group's invite link",
89
- description: "Make a new invite link for a group or channel; the old one stops working for everyone who has it. " +
90
- "Only when the owner asked.",
91
- input: v.object({ chat: chatOf(messenger) }),
92
- annotations: WRITE,
93
- permission: "groups",
94
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).resetLink(args.chat))),
95
- }),
96
- chats_link_create: tool({
97
- title: "Make another invite link",
98
- description: "Make an additional invite link for a group or channel: { chatId, link, approval, expiresAt, maxUses }. " +
99
- "Nobody is told until the link is shared. Only when the owner asked.",
100
- input: v.object({
101
- chat: chatOf(messenger),
102
- approval: v.optional(v.pipe(v.boolean(), v.description("who joins by it asks first, and an admin lets them in; not with max_uses"))),
103
- expire_time: v.optional(v.pipe(v.string(), v.description("it stops working then: 2026-09-25T09:00 (local time), or 30m, 2h, 7d"))),
104
- max_uses: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(99_999))),
105
- }),
106
- annotations: WRITE,
107
- permission: "groups",
108
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).createLink(args.chat, {
109
- approval: args.approval === true,
110
- ...(args.expire_time === undefined ? {} : { expires: args.expire_time }),
111
- ...(args.max_uses === undefined ? {} : { maxUses: args.max_uses }),
112
- }))),
113
- }),
114
- chats_link_list: tool({
115
- title: "A group's invite links",
116
- description: "The owner's own invite links of a group, newest first: { link, approval, expires_at, max_uses, primary, " +
117
- "revoked, pending_count, joined_count }. query revoked:true lists the stopped ones. Reading changes nothing.",
118
- input: v.object({ chat: chatOf(messenger), query: queryArgument(LINKS_QUERY), limit, page }),
119
- annotations: READ,
120
- output: { entity: "invite_link", list: true },
121
- online: (adapter, args, defaults) => inviteLinks(servicesFor(onlineDeps(messenger, adapter, defaults.guard)), args.chat, args.query, {
122
- limit: args.limit ?? defaults.limit,
123
- page: args.page ?? 1,
124
- }),
125
- }),
126
- chats_link_revoke: tool({
127
- title: "Revoke an invite link",
128
- description: "Stop one invite link; for the group's own link the answer is the new one the messenger made. " +
129
- "Only the link the owner named.",
130
- input: v.object({ chat: chatOf(messenger), link: v.pipe(v.string(), v.minLength(1)) }),
131
- annotations: WRITE,
132
- permission: "groups",
133
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).revokeLink(args.chat, args.link))),
134
- }),
135
- chats_link_update: tool({
136
- title: "Change an invite link",
137
- description: "Change one of the owner's invite links, the group's own one too: { chatId, link, approval, expiresAt, " +
138
- "maxUses }. Only the fields given change. Only when the owner asked.",
139
- input: v.object({
140
- chat: chatOf(messenger),
141
- link: v.pipe(v.string(), v.minLength(1)),
142
- approval: v.optional(v.pipe(v.boolean(), v.description("true: who joins by it asks first, not with max_uses; false: anyone with it joins at once"))),
143
- expire_time: v.optional(v.pipe(v.string(), v.description("it stops working then: 2026-09-25T09:00 (local time), or 30m, 2h, 7d; never takes the expiry away"))),
144
- max_uses: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(99_999))),
145
- }),
146
- annotations: WRITE,
147
- permission: "groups",
148
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).updateLink(args.chat, args.link, {
149
- ...(args.approval === undefined ? {} : { approval: args.approval }),
150
- ...(args.expire_time === undefined ? {} : { expires: args.expire_time }),
151
- ...(args.max_uses === undefined ? {} : { maxUses: args.max_uses }),
152
- }))),
153
- }),
154
- chats_requests_list: tool({
155
- title: "Requests to join a group",
156
- description: "Who asked to join a group or channel that needs an admin's approval, newest first: { person_id, name, " +
157
- 'username, requested_at, about? }. query narrows by name:ana or username:ana, or by link:"<invite link>" ' +
158
- "— not both. Only admins see them. Reading tells nobody.",
159
- input: v.object({ chat: chatOf(messenger), query: queryArgument(REQUESTS_QUERY), limit, page }),
160
- annotations: READ,
161
- output: { entity: "join_request", list: true },
162
- online: (adapter, args, defaults) => joinRequests(servicesFor(onlineDeps(messenger, adapter, defaults.guard)), args.chat, args.query, {
163
- limit: args.limit ?? defaults.limit,
164
- page: args.page ?? 1,
165
- }),
166
- }),
167
- chats_requests_accept: tool({
168
- title: "Accept a request to join",
169
- description: "Let one person who asked to join into the group. Only the person and group the owner named.",
170
- input: v.object({
171
- chat: chatOf(messenger),
172
- person: v.optional(v.pipe(v.string(), v.minLength(1))),
173
- all: v.optional(v.pipe(v.boolean(), v.description("every pending request instead of one person"))),
174
- link: v.optional(v.pipe(v.string(), v.minLength(1), v.description("with all: only requests by this link"))),
175
- }),
176
- annotations: WRITE,
177
- permission: "groups",
178
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await answer(admin(adapter, guard), args, true))),
179
- }),
180
- chats_requests_decline: tool({
181
- title: "Decline a request to join",
182
- description: "Turn away one person who asked to join the group. Only the person and group the owner named.",
183
- input: v.object({
184
- chat: chatOf(messenger),
185
- person: v.optional(v.pipe(v.string(), v.minLength(1))),
186
- all: v.optional(v.pipe(v.boolean(), v.description("every pending request instead of one person"))),
187
- link: v.optional(v.pipe(v.string(), v.minLength(1), v.description("with all: only requests by this link"))),
188
- }),
189
- annotations: WRITE,
190
- permission: "groups",
191
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await answer(admin(adapter, guard), args, false))),
192
- }),
193
- chats_members_add: tool({
194
- title: "Add people to a group",
195
- description: "Add people to a group; each is told. Only the people the owner named, to the group the owner named.",
196
- input: v.object({
197
- chat: chatOf(messenger),
198
- people: v.pipe(v.array(v.pipe(v.string(), v.minLength(1))), v.minLength(1)),
199
- history: v.optional(v.pipe(v.boolean(), v.description("they also see the messages from before; refused where the messenger cannot"))),
200
- }),
201
- annotations: WRITE,
202
- permission: "groups",
203
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).addMembers(args.chat, args.people, args.history === true ? { history: true } : {}))),
204
- }),
205
- chats_members_remove: tool({
206
- title: "Remove people from a group",
207
- description: "Remove people from a group; their messages stay. Only the people the owner named.",
208
- input: v.object({
209
- chat: chatOf(messenger),
210
- people: v.pipe(v.array(v.pipe(v.string(), v.minLength(1))), v.minLength(1)),
211
- }),
212
- annotations: WRITE,
213
- permission: "groups",
214
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).removeMembers(args.chat, args.people))),
215
- }),
216
- chats_admins_add: messenger.pickAdminRights === false
217
- ? tool({
218
- title: "Make someone an admin",
219
- description: "Make a member of a group an admin; this messenger gives every admin every right. Only when the owner " +
220
- "asked.",
221
- input: v.object({ chat: chatOf(messenger), person: v.pipe(v.string(), v.minLength(1)) }),
222
- annotations: WRITE,
223
- permission: "groups",
224
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).addAdmin(args.chat, args.person, [
225
- ...(messenger.adminRights ?? ADMIN_RIGHTS),
226
- ]))),
227
- })
228
- : tool({
229
- title: "Make someone an admin",
230
- description: "Make a member of a group an admin with these rights. Only when the owner asked, with these rights.",
231
- input: v.object({
232
- chat: chatOf(messenger),
233
- person: v.pipe(v.string(), v.minLength(1)),
234
- rights: v.pipe(v.array(v.picklist(messenger.adminRights ?? ADMIN_RIGHTS)), v.minLength(1)),
235
- }),
236
- annotations: WRITE,
237
- permission: "groups",
238
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).addAdmin(args.chat, args.person, args.rights))),
239
- }),
240
- chats_admins_remove: tool({
241
- title: "Take admin rights back",
242
- description: "Take a group admin's rights back; they stay a member. Only when the owner asked.",
243
- input: v.object({ chat: chatOf(messenger), person: v.pipe(v.string(), v.minLength(1)) }),
244
- annotations: WRITE,
245
- permission: "groups",
246
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).removeAdmin(args.chat, args.person))),
247
- }),
248
- };
249
- if (messenger.inviteLinkList === false)
250
- delete definitions.chats_link_list;
251
- if (messenger.inviteLinkRevoke === false)
252
- delete definitions.chats_link_revoke;
253
- if (messenger.inviteLinkUpdate !== true)
254
- delete definitions.chats_link_update;
255
- return definitions;
256
- };
257
- //# sourceMappingURL=admin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/mcp/tools/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAEjF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAgB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIjF,MAAM,MAAM,GAAG,CAAC,OAAgD,EAAE,IAAe,EAAE,MAAe,EAAE,EAAE;IACpG,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC;QACrD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,iDAAiD,CAAC,CAAA;IAC3F,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAA;IAC9G,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS;QAC9B,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAClG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED,mHAAmH;AACnH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAoB,EAA2B,EAAE;IAC1E,MAAM,KAAK,GAAG,CAAC,OAAyB,EAAE,KAAgB,EAAE,EAAE,CAC5D,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IAC1D,MAAM,WAAW,GAA4B;QAC3C,YAAY,EAAE,IAAI,CAAC;YACjB,KAAK,EAAE,gBAAgB;YACvB,WAAW,EACT,+FAA+F;gBAC/F,6DAA6D;YAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC,CAAC;aAC1G,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CACJ,SAAS,CACP,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;gBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;aAC/B,CAAC,CACH,CACF;SACJ,CAAC;QACF,UAAU,EAAE,IAAI,CAAC;YACf,KAAK,EAAE,0BAA0B;YACjC,WAAW,EACT,yGAAyG;gBACzG,+FAA+F;YACjG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3G,CAAC;QACF,WAAW,EAAE,IAAI,CAAC;YAChB,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,kGAAkG;YAC/G,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5G,CAAC;QACF,YAAY,EAAE,IAAI,CAAC;YACjB,KAAK,EAAE,gBAAgB;YACvB,WAAW,EACT,yGAAyG;gBACzG,oDAAoD;YACtD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;gBACvB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAClB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,OAAO,CACP,CAAC,CAAC,MAAM,CACN,MAAM,CAAC,WAAW,CAChB,CAAC,SAAS,CAAC,aAAa,IAAI,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;oBACvD,GAAG;oBACH,GAAG,KAAK,qBAAqB;wBAC3B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;wBAC5F,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;iBAChB,CAAC,CACH,CACF,CACF,EACD,CAAC,CAAC,WAAW,CAAC,iEAAiE,CAAC,CACjF,CACF;aACF,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CACJ,SAAS,CACP,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC5C,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5E,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aACpE,CAAC,CACH,CACF;SACJ,CAAC;QACF,eAAe,EAAE,IAAI,CAAC;YACpB,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,4FAA4F;YACzG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3G,CAAC;QACF,gBAAgB,EAAE,IAAI,CAAC;YACrB,KAAK,EAAE,+BAA+B;YACtC,WAAW,EACT,oGAAoG;gBACpG,4BAA4B;YAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAChH,CAAC;QACF,iBAAiB,EAAE,IAAI,CAAC;YACtB,KAAK,EAAE,0BAA0B;YACjC,WAAW,EACT,yGAAyG;gBACzG,qEAAqE;YACvE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;gBACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAClB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,WAAW,CAAC,0EAA0E,CAAC,CAC1F,CACF;gBACD,WAAW,EAAE,CAAC,CAAC,QAAQ,CACrB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,sEAAsE,CAAC,CAAC,CAC1G;gBACD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aACzF,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CACJ,SAAS,CACP,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;gBAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI;gBAChC,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnE,CAAC,CACH,CACF;SACJ,CAAC;QACF,eAAe,EAAE,IAAI,CAAC;YACpB,KAAK,EAAE,wBAAwB;YAC/B,WAAW,EACT,0GAA0G;gBAC1G,6GAA6G;YAC/G,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC5F,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE;YAC7C,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAClC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC9F,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;aACrB,CAAC;SACL,CAAC;QACF,iBAAiB,EAAE,IAAI,CAAC;YACtB,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACT,+FAA+F;gBAC/F,gCAAgC;YAClC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAClF,CAAC;QACF,iBAAiB,EAAE,IAAI,CAAC;YACtB,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACT,wGAAwG;gBACxG,qEAAqE;YACvE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAClB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,WAAW,CAAC,0FAA0F,CAAC,CAC1G,CACF;gBACD,WAAW,EAAE,CAAC,CAAC,QAAQ,CACrB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,WAAW,CACX,mGAAmG,CACpG,CACF,CACF;gBACD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aACzF,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CACJ,SAAS,CACP,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC3D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnE,CAAC,CACH,CACF;SACJ,CAAC;QACF,mBAAmB,EAAE,IAAI,CAAC;YACxB,KAAK,EAAE,0BAA0B;YACjC,WAAW,EACT,wGAAwG;gBACxG,0GAA0G;gBAC1G,yDAAyD;YAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC/F,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;YAC9C,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAClC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC/F,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;aACrB,CAAC;SACL,CAAC;QACF,qBAAqB,EAAE,IAAI,CAAC;YAC1B,KAAK,EAAE,0BAA0B;YACjC,WAAW,EAAE,6FAA6F;YAC1G,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;gBACvB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBAClG,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC,CAAC;aAC5G,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;SAC/G,CAAC;QACF,sBAAsB,EAAE,IAAI,CAAC;YAC3B,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAE,8FAA8F;YAC3G,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;gBACvB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBAClG,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC,CAAC;aAC5G,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAChH,CAAC;QACF,iBAAiB,EAAE,IAAI,CAAC;YACtB,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACT,qGAAqG;YACvG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;gBACvB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3E,OAAO,EAAE,CAAC,CAAC,QAAQ,CACjB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,OAAO,EAAE,EACX,CAAC,CAAC,WAAW,CAAC,4EAA4E,CAAC,CAC5F,CACF;aACF,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CACJ,SAAS,CACP,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,UAAU,CACpC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAC/C,CACF,CACF;SACJ,CAAC;QACF,oBAAoB,EAAE,IAAI,CAAC;YACzB,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,mFAAmF;YAChG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;gBACvB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC5E,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACvF,CAAC;QACF,gBAAgB,EACd,SAAS,CAAC,eAAe,KAAK,KAAK;YACjC,CAAC,CAAC,IAAI,CAAC;gBACH,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EACT,uGAAuG;oBACvG,QAAQ;gBACV,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CACJ,SAAS,CACP,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;oBAC3D,GAAG,CAAC,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC;iBAC3C,CAAC,CACH,CACF;aACJ,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;gBACH,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EACT,oGAAoG;gBACtG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;oBACvB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC1C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC3F,CAAC;gBACF,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/F,CAAC;QACR,mBAAmB,EAAE,IAAI,CAAC;YACxB,KAAK,EAAE,wBAAwB;YAC/B,WAAW,EAAE,kFAAkF;YAC/F,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACrF,CAAC;KACH,CAAA;IACD,IAAI,SAAS,CAAC,cAAc,KAAK,KAAK;QAAE,OAAO,WAAW,CAAC,eAAe,CAAA;IAC1E,IAAI,SAAS,CAAC,gBAAgB,KAAK,KAAK;QAAE,OAAO,WAAW,CAAC,iBAAiB,CAAA;IAC9E,IAAI,SAAS,CAAC,gBAAgB,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC,iBAAiB,CAAA;IAC7E,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
@@ -1,4 +0,0 @@
1
- import type { Messenger } from "../../cli/messenger/context.js";
2
- import { type AnyTool } from "../tool.js";
3
- export declare const chatsReadTools: (messenger: Messenger) => Record<string, AnyTool>;
4
- //# sourceMappingURL=chats-read.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chats-read.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/chats-read.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,EAAE,KAAK,OAAO,EAAgC,MAAM,YAAY,CAAA;AAIvE,eAAO,MAAM,cAAc,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA2B1E,CAAA"}
@@ -1,28 +0,0 @@
1
- import * as v from "valibot";
2
- import { itemOf, snakeKeys } from "../../cli/envelope.js";
3
- import { onlineDeps, servicesFor } from "../../services/index.js";
4
- import { chatOf, message, tool, WRITE } from "../tool.js";
5
- const TOPIC = v.optional(v.pipe(v.string(), v.minLength(1), v.description("only this forum topic")));
6
- export const chatsReadTools = (messenger) => ({
7
- chats_mark_read: tool({
8
- title: "Mark a chat read",
9
- description: `Mark a chat read up to a message, or up to its newest message${messenger.topics === false ? "" : "; with topic, only that forum topic"}. ` +
10
- "The other side sees that it was read. " +
11
- "Only when the owner asked for it.",
12
- input: v.object({
13
- chat: chatOf(messenger),
14
- until_id: v.optional(message),
15
- // Typed as present so the call reads it; offered only where the messenger has forum topics.
16
- ...(messenger.topics === false ? {} : { topic: TOPIC }),
17
- }),
18
- annotations: WRITE,
19
- permission: "read",
20
- command: "chats mark-read",
21
- online: async (adapter, args, { guard }) => itemOf(snakeKeys(await servicesFor(onlineDeps(messenger, adapter, guard)).chats.markRead({
22
- chat: args.chat,
23
- ...(args.until_id === undefined ? {} : { until: args.until_id }),
24
- ...(args.topic === undefined ? {} : { threadId: args.topic }),
25
- }))),
26
- }),
27
- });
28
- //# sourceMappingURL=chats-read.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chats-read.js","sourceRoot":"","sources":["../../../src/mcp/tools/chats-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAgB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvE,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAA;AAEpG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAChF,eAAe,EAAE,IAAI,CAAC;QACpB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,gEAAgE,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qCAAqC,IAAI;YAC3I,wCAAwC;YACxC,mCAAmC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;YACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC7B,4FAA4F;YAC5F,GAAI,CAAC,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAA6B;SACrF,CAAC;QACF,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,MAAM,CACJ,SAAS,CACP,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;YACtE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SAC9D,CAAC,CACH,CACF;KACJ,CAAC;CACH,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import type { Messenger } from "../../cli/messenger/context.js";
2
- import { type AnyTool } from "../tool.js";
3
- /** The owner's own chat list — mute, archive, pin, unread — each behind the switch that mounts its command. */
4
- export declare const chatStateTools: (messenger: Messenger) => Record<string, AnyTool>;
5
- //# sourceMappingURL=chats-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chats-state.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/chats-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAM/D,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,YAAY,CAAA;AAI9D,+GAA+G;AAC/G,eAAO,MAAM,cAAc,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAiF3E,CAAA"}