@wirecat/cli-core 0.264.0 → 0.265.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 (239) hide show
  1. package/dist/cli/envelope.d.ts +2 -0
  2. package/dist/cli/envelope.d.ts.map +1 -1
  3. package/dist/cli/envelope.js +2 -2
  4. package/dist/cli/envelope.js.map +1 -1
  5. package/dist/cli/list-query.d.ts +14 -2
  6. package/dist/cli/list-query.d.ts.map +1 -1
  7. package/dist/cli/list-query.js +59 -8
  8. package/dist/cli/list-query.js.map +1 -1
  9. package/dist/cli/messenger/admin-commands.d.ts.map +1 -1
  10. package/dist/cli/messenger/admin-commands.js +34 -46
  11. package/dist/cli/messenger/admin-commands.js.map +1 -1
  12. package/dist/cli/messenger/admin-contacts-command.d.ts.map +1 -1
  13. package/dist/cli/messenger/admin-contacts-command.js +7 -3
  14. package/dist/cli/messenger/admin-contacts-command.js.map +1 -1
  15. package/dist/cli/messenger/admin-folders-command.d.ts.map +1 -1
  16. package/dist/cli/messenger/admin-folders-command.js +21 -21
  17. package/dist/cli/messenger/admin-folders-command.js.map +1 -1
  18. package/dist/cli/messenger/admin-moderation-command.d.ts.map +1 -1
  19. package/dist/cli/messenger/admin-moderation-command.js +11 -13
  20. package/dist/cli/messenger/admin-moderation-command.js.map +1 -1
  21. package/dist/cli/messenger/chat-answers.d.ts +155 -0
  22. package/dist/cli/messenger/chat-answers.d.ts.map +1 -0
  23. package/dist/cli/messenger/chat-answers.js +243 -0
  24. package/dist/cli/messenger/chat-answers.js.map +1 -0
  25. package/dist/cli/messenger/chat-lists.d.ts +161 -0
  26. package/dist/cli/messenger/chat-lists.d.ts.map +1 -0
  27. package/dist/cli/messenger/chat-lists.js +82 -0
  28. package/dist/cli/messenger/chat-lists.js.map +1 -0
  29. package/dist/cli/messenger/chat-queries.d.ts +14 -0
  30. package/dist/cli/messenger/chat-queries.d.ts.map +1 -0
  31. package/dist/cli/messenger/chat-queries.js +48 -0
  32. package/dist/cli/messenger/chat-queries.js.map +1 -0
  33. package/dist/cli/messenger/chats-bots-command.d.ts.map +1 -1
  34. package/dist/cli/messenger/chats-bots-command.js +7 -2
  35. package/dist/cli/messenger/chats-bots-command.js.map +1 -1
  36. package/dist/cli/messenger/chats-command.d.ts.map +1 -1
  37. package/dist/cli/messenger/chats-command.js +33 -71
  38. package/dist/cli/messenger/chats-command.js.map +1 -1
  39. package/dist/cli/messenger/chats-documents-command.d.ts.map +1 -1
  40. package/dist/cli/messenger/chats-documents-command.js +10 -5
  41. package/dist/cli/messenger/chats-documents-command.js.map +1 -1
  42. package/dist/cli/messenger/chats-members-command.d.ts.map +1 -1
  43. package/dist/cli/messenger/chats-members-command.js +38 -64
  44. package/dist/cli/messenger/chats-members-command.js.map +1 -1
  45. package/dist/cli/messenger/chats-read-command.d.ts.map +1 -1
  46. package/dist/cli/messenger/chats-read-command.js +4 -2
  47. package/dist/cli/messenger/chats-read-command.js.map +1 -1
  48. package/dist/cli/messenger/chats-stats-command.d.ts.map +1 -1
  49. package/dist/cli/messenger/chats-stats-command.js +24 -17
  50. package/dist/cli/messenger/chats-stats-command.js.map +1 -1
  51. package/dist/cli/messenger/chats-tracking-command.d.ts.map +1 -1
  52. package/dist/cli/messenger/chats-tracking-command.js +11 -17
  53. package/dist/cli/messenger/chats-tracking-command.js.map +1 -1
  54. package/dist/cli/messenger/contacts-command.d.ts.map +1 -1
  55. package/dist/cli/messenger/contacts-command.js +61 -43
  56. package/dist/cli/messenger/contacts-command.js.map +1 -1
  57. package/dist/cli/messenger/hearing-command.d.ts +1 -1
  58. package/dist/cli/messenger/hearing-command.d.ts.map +1 -1
  59. package/dist/cli/messenger/hearing-command.js +1 -1
  60. package/dist/cli/messenger/hearing-command.js.map +1 -1
  61. package/dist/cli/messenger/history-query.d.ts +18 -0
  62. package/dist/cli/messenger/history-query.d.ts.map +1 -0
  63. package/dist/cli/messenger/history-query.js +63 -0
  64. package/dist/cli/messenger/history-query.js.map +1 -0
  65. package/dist/cli/messenger/list-query.d.ts +13 -0
  66. package/dist/cli/messenger/list-query.d.ts.map +1 -0
  67. package/dist/cli/messenger/list-query.js +23 -0
  68. package/dist/cli/messenger/list-query.js.map +1 -0
  69. package/dist/cli/messenger/message-items.d.ts +31 -0
  70. package/dist/cli/messenger/message-items.d.ts.map +1 -0
  71. package/dist/cli/messenger/message-items.js +95 -0
  72. package/dist/cli/messenger/message-items.js.map +1 -0
  73. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  74. package/dist/cli/messenger/messages-command.js +52 -77
  75. package/dist/cli/messenger/messages-command.js.map +1 -1
  76. package/dist/cli/messenger/messages-comments-command.d.ts.map +1 -1
  77. package/dist/cli/messenger/messages-comments-command.js +39 -28
  78. package/dist/cli/messenger/messages-comments-command.js.map +1 -1
  79. package/dist/cli/messenger/messages-link-command.d.ts.map +1 -1
  80. package/dist/cli/messenger/messages-link-command.js +16 -14
  81. package/dist/cli/messenger/messages-link-command.js.map +1 -1
  82. package/dist/cli/messenger/messages-scheduled-command.d.ts.map +1 -1
  83. package/dist/cli/messenger/messages-scheduled-command.js +23 -26
  84. package/dist/cli/messenger/messages-scheduled-command.js.map +1 -1
  85. package/dist/cli/messenger/people-queries.d.ts +6 -0
  86. package/dist/cli/messenger/people-queries.d.ts.map +1 -0
  87. package/dist/cli/messenger/people-queries.js +15 -0
  88. package/dist/cli/messenger/people-queries.js.map +1 -0
  89. package/dist/cli/messenger/polls-command.d.ts.map +1 -1
  90. package/dist/cli/messenger/polls-command.js +29 -23
  91. package/dist/cli/messenger/polls-command.js.map +1 -1
  92. package/dist/cli/messenger/reactions-command.d.ts.map +1 -1
  93. package/dist/cli/messenger/reactions-command.js +6 -2
  94. package/dist/cli/messenger/reactions-command.js.map +1 -1
  95. package/dist/cli/messenger/topics-command.d.ts.map +1 -1
  96. package/dist/cli/messenger/topics-command.js +21 -9
  97. package/dist/cli/messenger/topics-command.js.map +1 -1
  98. package/dist/cli/steps.d.ts.map +1 -1
  99. package/dist/cli/steps.js +24 -0
  100. package/dist/cli/steps.js.map +1 -1
  101. package/dist/entities/attachment.d.ts +6 -0
  102. package/dist/entities/attachment.d.ts.map +1 -1
  103. package/dist/entities/attachment.js +6 -0
  104. package/dist/entities/attachment.js.map +1 -1
  105. package/dist/entities/chat-event.d.ts +28 -0
  106. package/dist/entities/chat-event.d.ts.map +1 -0
  107. package/dist/entities/chat-event.js +19 -0
  108. package/dist/entities/chat-event.js.map +1 -0
  109. package/dist/entities/chat.d.ts +29 -0
  110. package/dist/entities/chat.d.ts.map +1 -1
  111. package/dist/entities/chat.js +15 -0
  112. package/dist/entities/chat.js.map +1 -1
  113. package/dist/entities/contact.d.ts +137 -0
  114. package/dist/entities/contact.d.ts.map +1 -1
  115. package/dist/entities/contact.js +6 -1
  116. package/dist/entities/contact.js.map +1 -1
  117. package/dist/entities/folder.d.ts +31 -0
  118. package/dist/entities/folder.d.ts.map +1 -0
  119. package/dist/entities/folder.js +25 -0
  120. package/dist/entities/folder.js.map +1 -0
  121. package/dist/entities/index.d.ts +364 -1
  122. package/dist/entities/index.d.ts.map +1 -1
  123. package/dist/entities/index.js +17 -1
  124. package/dist/entities/index.js.map +1 -1
  125. package/dist/entities/invite-link.d.ts +17 -0
  126. package/dist/entities/invite-link.d.ts.map +1 -0
  127. package/dist/entities/invite-link.js +18 -0
  128. package/dist/entities/invite-link.js.map +1 -0
  129. package/dist/entities/join-request.d.ts +12 -0
  130. package/dist/entities/join-request.d.ts.map +1 -0
  131. package/dist/entities/join-request.js +13 -0
  132. package/dist/entities/join-request.js.map +1 -0
  133. package/dist/entities/member.d.ts +24 -0
  134. package/dist/entities/member.d.ts.map +1 -0
  135. package/dist/entities/member.js +25 -0
  136. package/dist/entities/member.js.map +1 -0
  137. package/dist/entities/message-link.d.ts +10 -0
  138. package/dist/entities/message-link.d.ts.map +1 -0
  139. package/dist/entities/message-link.js +11 -0
  140. package/dist/entities/message-link.js.map +1 -0
  141. package/dist/entities/message.d.ts +19 -0
  142. package/dist/entities/message.d.ts.map +1 -1
  143. package/dist/entities/message.js +4 -0
  144. package/dist/entities/message.js.map +1 -1
  145. package/dist/entities/poll-vote.d.ts +11 -0
  146. package/dist/entities/poll-vote.d.ts.map +1 -0
  147. package/dist/entities/poll-vote.js +12 -0
  148. package/dist/entities/poll-vote.js.map +1 -0
  149. package/dist/entities/topic.d.ts +14 -0
  150. package/dist/entities/topic.d.ts.map +1 -0
  151. package/dist/entities/topic.js +15 -0
  152. package/dist/entities/topic.js.map +1 -0
  153. package/dist/mcp/instructions.d.ts.map +1 -1
  154. package/dist/mcp/instructions.js +3 -2
  155. package/dist/mcp/instructions.js.map +1 -1
  156. package/dist/mcp/tools/admin.d.ts.map +1 -1
  157. package/dist/mcp/tools/admin.js +41 -39
  158. package/dist/mcp/tools/admin.js.map +1 -1
  159. package/dist/mcp/tools/chats-read.d.ts.map +1 -1
  160. package/dist/mcp/tools/chats-read.js +4 -2
  161. package/dist/mcp/tools/chats-read.js.map +1 -1
  162. package/dist/mcp/tools/chats.d.ts.map +1 -1
  163. package/dist/mcp/tools/chats.js +77 -84
  164. package/dist/mcp/tools/chats.js.map +1 -1
  165. package/dist/mcp/tools/contacts-write.d.ts.map +1 -1
  166. package/dist/mcp/tools/contacts-write.js +4 -2
  167. package/dist/mcp/tools/contacts-write.js.map +1 -1
  168. package/dist/mcp/tools/contacts.d.ts.map +1 -1
  169. package/dist/mcp/tools/contacts.js +55 -30
  170. package/dist/mcp/tools/contacts.js.map +1 -1
  171. package/dist/mcp/tools/folders.d.ts.map +1 -1
  172. package/dist/mcp/tools/folders.js +12 -11
  173. package/dist/mcp/tools/folders.js.map +1 -1
  174. package/dist/mcp/tools/messages.d.ts.map +1 -1
  175. package/dist/mcp/tools/messages.js +74 -59
  176. package/dist/mcp/tools/messages.js.map +1 -1
  177. package/dist/mcp/tools/moderation.d.ts.map +1 -1
  178. package/dist/mcp/tools/moderation.js +5 -3
  179. package/dist/mcp/tools/moderation.js.map +1 -1
  180. package/dist/mcp/tools/polls.d.ts.map +1 -1
  181. package/dist/mcp/tools/polls.js +31 -14
  182. package/dist/mcp/tools/polls.js.map +1 -1
  183. package/dist/mcp/tools/reactions.d.ts.map +1 -1
  184. package/dist/mcp/tools/reactions.js +4 -2
  185. package/dist/mcp/tools/reactions.js.map +1 -1
  186. package/dist/mcp/tools/topics.d.ts.map +1 -1
  187. package/dist/mcp/tools/topics.js +30 -20
  188. package/dist/mcp/tools/topics.js.map +1 -1
  189. package/dist/services/admin.js +2 -2
  190. package/dist/services/admin.js.map +1 -1
  191. package/dist/services/chats.d.ts +6 -20
  192. package/dist/services/chats.d.ts.map +1 -1
  193. package/dist/services/chats.js +6 -43
  194. package/dist/services/chats.js.map +1 -1
  195. package/dist/services/document-pictures.d.ts +26 -0
  196. package/dist/services/document-pictures.d.ts.map +1 -0
  197. package/dist/services/document-pictures.js +37 -0
  198. package/dist/services/document-pictures.js.map +1 -0
  199. package/dist/services/index.d.ts +3 -2
  200. package/dist/services/index.d.ts.map +1 -1
  201. package/dist/services/index.js +2 -1
  202. package/dist/services/index.js.map +1 -1
  203. package/dist/services/messages.d.ts +2 -0
  204. package/dist/services/messages.d.ts.map +1 -1
  205. package/dist/services/messages.js +1 -0
  206. package/dist/services/messages.js.map +1 -1
  207. package/dist/services/notes-search.d.ts +14 -1
  208. package/dist/services/notes-search.d.ts.map +1 -1
  209. package/dist/services/notes-search.js +46 -1
  210. package/dist/services/notes-search.js.map +1 -1
  211. package/dist/services/people.d.ts +1 -1
  212. package/dist/services/people.d.ts.map +1 -1
  213. package/dist/services/people.js +0 -18
  214. package/dist/services/people.js.map +1 -1
  215. package/dist/speech/hearing.d.ts +3 -0
  216. package/dist/speech/hearing.d.ts.map +1 -1
  217. package/dist/speech/hearing.js +16 -0
  218. package/dist/speech/hearing.js.map +1 -1
  219. package/dist/store/sqlite/document-pictures.d.ts +29 -0
  220. package/dist/store/sqlite/document-pictures.d.ts.map +1 -0
  221. package/dist/store/sqlite/document-pictures.js +81 -0
  222. package/dist/store/sqlite/document-pictures.js.map +1 -0
  223. package/dist/store/sqlite/entity-types.d.ts +1 -0
  224. package/dist/store/sqlite/entity-types.d.ts.map +1 -1
  225. package/dist/store/sqlite/entity-types.js +1 -0
  226. package/dist/store/sqlite/entity-types.js.map +1 -1
  227. package/dist/store/sqlite/note-index.d.ts.map +1 -1
  228. package/dist/store/sqlite/note-index.js +3 -0
  229. package/dist/store/sqlite/note-index.js.map +1 -1
  230. package/dist/store/sqlite/note-search.d.ts +2 -1
  231. package/dist/store/sqlite/note-search.d.ts.map +1 -1
  232. package/dist/store/sqlite/note-search.js +2 -0
  233. package/dist/store/sqlite/note-search.js.map +1 -1
  234. package/package.json +1 -1
  235. package/parity.json +10 -77
  236. package/dist/cli/messenger/after.d.ts +0 -20
  237. package/dist/cli/messenger/after.d.ts.map +0 -1
  238. package/dist/cli/messenger/after.js +0 -27
  239. package/dist/cli/messenger/after.js.map +0 -1
@@ -1,8 +1,13 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import * as v from "valibot";
3
+ import { itemOf } from "../../cli/envelope.js";
4
+ import { queryArgument } from "../../cli/list-query.js";
5
+ import { snakeKeys } from "../../cli/messenger/chat-answers.js";
6
+ import { inviteLinks, joinRequests } from "../../cli/messenger/chat-lists.js";
7
+ import { LINKS_QUERY, REQUESTS_QUERY } from "../../cli/messenger/chat-queries.js";
3
8
  import { ADMIN_RIGHTS, GROUP_SETTINGS } from "../../domain/models.js";
4
9
  import { onlineDeps, servicesFor } from "../../services/index.js";
5
- import { chatOf, limit, READ, tool, WRITE } from "../tool.js";
10
+ import { chatOf, limit, page, READ, tool, WRITE } from "../tool.js";
6
11
  const answer = (service, args, accept) => {
7
12
  if ((args.person === undefined) === (args.all !== true))
8
13
  throw new CliError("validation_error", "give one person, or all — not both, not neither");
@@ -27,7 +32,11 @@ export const adminTools = (messenger) => {
27
32
  }),
28
33
  annotations: WRITE,
29
34
  permission: "groups",
30
- online: (adapter, args, { guard }) => admin(adapter, guard).create({ title: args.title, people: args.people ?? [], channel: args.channel === true }),
35
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).create({
36
+ title: args.title,
37
+ people: args.people ?? [],
38
+ channel: args.channel === true,
39
+ }))),
31
40
  }),
32
41
  chats_join: tool({
33
42
  title: "Join a group by its link",
@@ -36,7 +45,7 @@ export const adminTools = (messenger) => {
36
45
  input: v.object({ link: v.pipe(v.string(), v.minLength(1)) }),
37
46
  annotations: WRITE,
38
47
  permission: "groups",
39
- online: (adapter, args, { guard }) => admin(adapter, guard).join(args.link),
48
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).join(args.link))),
40
49
  }),
41
50
  chats_leave: tool({
42
51
  title: "Leave a group",
@@ -44,7 +53,7 @@ export const adminTools = (messenger) => {
44
53
  input: v.object({ chat: chatOf(messenger) }),
45
54
  annotations: WRITE,
46
55
  permission: "groups",
47
- online: (adapter, args, { guard }) => admin(adapter, guard).leave(args.chat),
56
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).leave(args.chat))),
48
57
  }),
49
58
  chats_update: tool({
50
59
  title: "Change a group",
@@ -58,18 +67,18 @@ export const adminTools = (messenger) => {
58
67
  }),
59
68
  annotations: WRITE,
60
69
  permission: "groups",
61
- online: (adapter, args, { guard }) => admin(adapter, guard).update(args.chat, {
70
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).update(args.chat, {
62
71
  ...(args.title === undefined ? {} : { title: args.title }),
63
72
  ...(args.description === undefined ? {} : { description: args.description }),
64
73
  ...(args.settings === undefined ? {} : { settings: args.settings }),
65
- }),
74
+ }))),
66
75
  }),
67
76
  chats_link_show: tool({
68
77
  title: "A group's invite link",
69
78
  description: "The invite link of a group or channel, when the owner may see it. Reading changes nothing.",
70
79
  input: v.object({ chat: chatOf(messenger) }),
71
80
  annotations: READ,
72
- online: (adapter, args, { guard }) => admin(adapter, guard).link(args.chat),
81
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).link(args.chat))),
73
82
  }),
74
83
  chats_link_reset: tool({
75
84
  title: "Replace a group's invite link",
@@ -78,7 +87,7 @@ export const adminTools = (messenger) => {
78
87
  input: v.object({ chat: chatOf(messenger) }),
79
88
  annotations: WRITE,
80
89
  permission: "groups",
81
- online: (adapter, args, { guard }) => admin(adapter, guard).resetLink(args.chat),
90
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).resetLink(args.chat))),
82
91
  }),
83
92
  chats_link_create: tool({
84
93
  title: "Make another invite link",
@@ -92,25 +101,22 @@ export const adminTools = (messenger) => {
92
101
  }),
93
102
  annotations: WRITE,
94
103
  permission: "groups",
95
- online: (adapter, args, { guard }) => admin(adapter, guard).createLink(args.chat, {
104
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).createLink(args.chat, {
96
105
  approval: args.approval === true,
97
106
  ...(args.expire_time === undefined ? {} : { expires: args.expire_time }),
98
107
  ...(args.max_uses === undefined ? {} : { maxUses: args.max_uses }),
99
- }),
108
+ }))),
100
109
  }),
101
110
  chats_link_list: tool({
102
111
  title: "A group's invite links",
103
- description: "The owner's own invite links of a group, newest first: { chatId, items: [{ link, approval, expiresAt, " +
104
- "maxUses, primary, revoked, pending, joined }], hasMore }. revoked lists the stopped ones. Reading changes nothing.",
105
- input: v.object({
106
- chat: chatOf(messenger),
107
- revoked: v.optional(v.pipe(v.boolean(), v.description("the stopped links instead"))),
108
- limit,
109
- }),
112
+ description: "The owner's own invite links of a group, newest first: { link, approval, expires_at, max_uses, primary, " +
113
+ "revoked, pending_count, joined_count }. query revoked:true lists the stopped ones. Reading changes nothing.",
114
+ input: v.object({ chat: chatOf(messenger), query: queryArgument(LINKS_QUERY), limit, page }),
110
115
  annotations: READ,
111
- online: (adapter, args, defaults) => admin(adapter, defaults.guard).links(args.chat, {
116
+ output: { entity: "invite_link", list: true },
117
+ online: (adapter, args, defaults) => inviteLinks(servicesFor(onlineDeps(messenger, adapter, defaults.guard)), args.chat, args.query, {
112
118
  limit: args.limit ?? defaults.limit,
113
- revoked: args.revoked === true,
119
+ page: args.page ?? 1,
114
120
  }),
115
121
  }),
116
122
  chats_link_revoke: tool({
@@ -120,7 +126,7 @@ export const adminTools = (messenger) => {
120
126
  input: v.object({ chat: chatOf(messenger), link: v.pipe(v.string(), v.minLength(1)) }),
121
127
  annotations: WRITE,
122
128
  permission: "groups",
123
- online: (adapter, args, { guard }) => admin(adapter, guard).revokeLink(args.chat, args.link),
129
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).revokeLink(args.chat, args.link))),
124
130
  }),
125
131
  chats_link_update: tool({
126
132
  title: "Change an invite link",
@@ -135,27 +141,23 @@ export const adminTools = (messenger) => {
135
141
  }),
136
142
  annotations: WRITE,
137
143
  permission: "groups",
138
- online: (adapter, args, { guard }) => admin(adapter, guard).updateLink(args.chat, args.link, {
144
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).updateLink(args.chat, args.link, {
139
145
  ...(args.approval === undefined ? {} : { approval: args.approval }),
140
146
  ...(args.expire_time === undefined ? {} : { expires: args.expire_time }),
141
147
  ...(args.max_uses === undefined ? {} : { maxUses: args.max_uses }),
142
- }),
148
+ }))),
143
149
  }),
144
150
  chats_requests_list: tool({
145
151
  title: "Requests to join a group",
146
- description: "Who asked to join a group or channel that needs an admin's approval, newest first: { chatId, items: " +
147
- "[{ person, requestedAt, about }], hasMore }. Only admins see them. Reading tells nobody.",
148
- input: v.object({
149
- chat: chatOf(messenger),
150
- limit,
151
- search: v.optional(v.pipe(v.string(), v.minLength(1), v.description("only names or @usernames with this"))),
152
- link: v.optional(v.pipe(v.string(), v.minLength(1), v.description("only those who asked through this invite link; not with search"))),
153
- }),
152
+ description: "Who asked to join a group or channel that needs an admin's approval, newest first: { person_id, name, " +
153
+ 'username, requested_at, about? }. query narrows by name:ana or username:ana, or by link:"<invite link>" ' +
154
+ "— not both. Only admins see them. Reading tells nobody.",
155
+ input: v.object({ chat: chatOf(messenger), query: queryArgument(REQUESTS_QUERY), limit, page }),
154
156
  annotations: READ,
155
- online: (adapter, args, defaults) => admin(adapter, defaults.guard).requests(args.chat, {
157
+ output: { entity: "join_request", list: true },
158
+ online: (adapter, args, defaults) => joinRequests(servicesFor(onlineDeps(messenger, adapter, defaults.guard)), args.chat, args.query, {
156
159
  limit: args.limit ?? defaults.limit,
157
- ...(args.search === undefined ? {} : { search: args.search }),
158
- ...(args.link === undefined ? {} : { link: args.link }),
160
+ page: args.page ?? 1,
159
161
  }),
160
162
  }),
161
163
  chats_requests_accept: tool({
@@ -169,7 +171,7 @@ export const adminTools = (messenger) => {
169
171
  }),
170
172
  annotations: WRITE,
171
173
  permission: "groups",
172
- online: (adapter, args, { guard }) => answer(admin(adapter, guard), args, true),
174
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await answer(admin(adapter, guard), args, true))),
173
175
  }),
174
176
  chats_requests_decline: tool({
175
177
  title: "Decline a request to join",
@@ -182,7 +184,7 @@ export const adminTools = (messenger) => {
182
184
  }),
183
185
  annotations: WRITE,
184
186
  permission: "groups",
185
- online: (adapter, args, { guard }) => answer(admin(adapter, guard), args, false),
187
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await answer(admin(adapter, guard), args, false))),
186
188
  }),
187
189
  chats_members_add: tool({
188
190
  title: "Add people to a group",
@@ -194,7 +196,7 @@ export const adminTools = (messenger) => {
194
196
  }),
195
197
  annotations: WRITE,
196
198
  permission: "groups",
197
- online: (adapter, args, { guard }) => admin(adapter, guard).addMembers(args.chat, args.people, args.history === true ? { history: true } : {}),
199
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).addMembers(args.chat, args.people, args.history === true ? { history: true } : {}))),
198
200
  }),
199
201
  chats_members_remove: tool({
200
202
  title: "Remove people from a group",
@@ -205,7 +207,7 @@ export const adminTools = (messenger) => {
205
207
  }),
206
208
  annotations: WRITE,
207
209
  permission: "groups",
208
- online: (adapter, args, { guard }) => admin(adapter, guard).removeMembers(args.chat, args.people),
210
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).removeMembers(args.chat, args.people))),
209
211
  }),
210
212
  chats_admins_add: tool({
211
213
  title: "Make someone an admin",
@@ -217,7 +219,7 @@ export const adminTools = (messenger) => {
217
219
  }),
218
220
  annotations: WRITE,
219
221
  permission: "groups",
220
- online: (adapter, args, { guard }) => admin(adapter, guard).addAdmin(args.chat, args.person, args.rights),
222
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).addAdmin(args.chat, args.person, args.rights))),
221
223
  }),
222
224
  chats_admins_remove: tool({
223
225
  title: "Take admin rights back",
@@ -225,7 +227,7 @@ export const adminTools = (messenger) => {
225
227
  input: v.object({ chat: chatOf(messenger), person: v.pipe(v.string(), v.minLength(1)) }),
226
228
  annotations: WRITE,
227
229
  permission: "groups",
228
- online: (adapter, args, { guard }) => admin(adapter, guard).removeAdmin(args.chat, args.person),
230
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await admin(adapter, guard).removeAdmin(args.chat, args.person))),
229
231
  }),
230
232
  };
231
233
  if (messenger.inviteLinkList === false)
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/mcp/tools/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/mcp/tools/admin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chats-read.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/chats-read.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,EAAE,KAAK,OAAO,EAAgC,MAAM,YAAY,CAAA;AAEvE,eAAO,MAAM,cAAc,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAwB1E,CAAA"}
1
+ {"version":3,"file":"chats-read.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/chats-read.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,EAAE,KAAK,OAAO,EAAgC,MAAM,YAAY,CAAA;AAEvE,eAAO,MAAM,cAAc,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA4B1E,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import * as v from "valibot";
2
+ import { itemOf } from "../../cli/envelope.js";
3
+ import { snakeKeys } from "../../cli/messenger/chat-answers.js";
2
4
  import { onlineDeps, servicesFor } from "../../services/index.js";
3
5
  import { chatOf, message, tool, WRITE } from "../tool.js";
4
6
  export const chatsReadTools = (messenger) => ({
@@ -15,11 +17,11 @@ export const chatsReadTools = (messenger) => ({
15
17
  annotations: WRITE,
16
18
  permission: "read",
17
19
  key: "chats.mark-read",
18
- online: (adapter, args, { guard }) => servicesFor(onlineDeps(messenger, adapter, guard)).chats.markRead({
20
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await servicesFor(onlineDeps(messenger, adapter, guard)).chats.markRead({
19
21
  chat: args.chat,
20
22
  ...(args.until === undefined ? {} : { until: args.until }),
21
23
  ...(args.topic === undefined ? {} : { threadId: args.topic }),
22
- }),
24
+ }))),
23
25
  }),
24
26
  });
25
27
  //# sourceMappingURL=chats-read.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chats-read.js","sourceRoot":"","sources":["../../../src/mcp/tools/chats-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,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,CAAC,MAAM,cAAc,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAChF,eAAe,EAAE,IAAI,CAAC;QACpB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,oGAAoG;YACpG,wCAAwC;YACxC,mCAAmC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;YACvB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE,CAAC,CAAC,QAAQ,CACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,mDAAmD,CAAC,CAAC,CACvG;SACF,CAAC;QACF,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,MAAM;QAClB,GAAG,EAAE,iBAAiB;QACtB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACnC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SAC9D,CAAC;KACL,CAAC;CACH,CAAC,CAAA"}
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,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAE/D,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,CAAC,MAAM,cAAc,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAChF,eAAe,EAAE,IAAI,CAAC;QACpB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,oGAAoG;YACpG,wCAAwC;YACxC,mCAAmC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;YACvB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE,CAAC,CAAC,QAAQ,CACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,mDAAmD,CAAC,CAAC,CACvG;SACF,CAAC;QACF,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,MAAM;QAClB,GAAG,EAAE,iBAAiB;QACtB,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,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1D,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 +1 @@
1
- {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/chats.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAQ/D,OAAO,EAAE,KAAK,OAAO,EAAqD,MAAM,YAAY,CAAA;AAE5F,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAmNvE,CAAA"}
1
+ {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/chats.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAK/D,OAAO,EAAE,KAAK,OAAO,EAA2C,MAAM,YAAY,CAAA;AAOlF,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA6MvE,CAAA"}
@@ -1,61 +1,48 @@
1
1
  import * as v from "valibot";
2
2
  import { registriesCover } from "../../botcheck/registries.js";
3
- import { listed } from "../../cli/paging.js";
3
+ import { itemOf, listOf } from "../../cli/envelope.js";
4
+ import { queryArgument } from "../../cli/list-query.js";
5
+ import { chatShown, documentLinkAnswer, snakeKeys, wholeList } from "../../cli/messenger/chat-answers.js";
6
+ import { chatEvents, chatsList, membersAudit, membersHistory, membersList } from "../../cli/messenger/chat-lists.js";
7
+ import { AUDIT_QUERY, CHATS_QUERY, EVENTS_QUERY, HISTORY_QUERY } from "../../cli/messenger/chat-queries.js";
4
8
  import { casKey } from "../../cli/registry-keys.js";
5
- import { checkedFilter } from "../../services/chats.js";
9
+ import { nextStep } from "../../cli/steps.js";
6
10
  import { EVENTS_DAYS, onlineDeps, servicesFor, storedDeps } from "../../services/index.js";
7
11
  import { momentOf } from "../../services/moment.js";
8
- import { chatOf, envelope, limit, page, paging, READ, tool } from "../tool.js";
12
+ import { chatOf, limit, page, paging, READ, tool } from "../tool.js";
13
+ const pagingOf = (args, defaults) => {
14
+ const { size, number } = paging(args, defaults);
15
+ return { limit: size, page: number };
16
+ };
9
17
  export const chatsTools = (messenger) => {
10
18
  const chat = chatOf(messenger);
11
- const chats = (adapter, guard) => servicesFor(onlineDeps(messenger, adapter, guard)).chats;
12
19
  return {
13
20
  chats_list: tool({
14
21
  title: "List chats",
15
22
  description: "Chats the owner is in, most recent first. Use it to find a chat's id before reading or sending. " +
16
- "With search, kind or unread, every chat is searched, and partial says the messenger could not list them " +
17
- "all. Returns { items, page, limit, hasMore, partial? }.",
18
- input: v.object({
19
- search: v.optional(v.pipe(v.string(), v.minLength(3), v.description("only chats whose name contains this"))),
20
- kind: v.optional(v.picklist(["dialog", "group", "channel", "saved"])),
21
- unread: v.optional(v.pipe(v.boolean(), v.description("only chats with unread messages"))),
22
- limit,
23
- page,
24
- }),
23
+ "The list takes no filter yet: neither the messenger nor the store filters chats, so a query is refused.",
24
+ input: v.object({ query: queryArgument(CHATS_QUERY), limit, page }),
25
25
  annotations: READ,
26
- served: async (services, { search, kind, unread, ...rest }, defaults) => {
27
- const { size, number, window } = paging(rest, defaults);
28
- const found = await services.chats.list(checkedFilter({ search, kind, unread }), window);
29
- return { ...envelope(found, number, size), ...(found.partial ? { partial: true } : {}) };
30
- },
26
+ output: { entity: "chat", list: true },
27
+ served: (services, args, defaults) => chatsList(services, args.query, pagingOf(args, defaults)),
31
28
  }),
32
29
  chats_events: tool({
33
30
  title: "Who joined or left a chat",
34
- description: "A chat's service messages since `since_time`: who joined, left, was added or removed, and by whom, oldest " +
35
- `first — event is join, leave, add, remove, create, title or pin. ${EVENTS_DAYS} days back if not given. ` +
36
- "`type` keeps only those events. Returns { items: [{ messageId, timestamp, event, by, people, title? }], page, " +
37
- "limit, hasMore, chatId, since }; hasMore when the history was longer than one run reads.",
38
- input: v.object({
39
- chat,
40
- since_time: v.optional(v.pipe(v.string(), v.description("an ISO 8601 time, or 2h / 1d ago"))),
41
- type: v.optional(v.pipe(v.string(), v.description("only these events, comma-separated"))),
42
- }),
31
+ description: "A chat's service messages: who joined, left, was added or removed, and by whom, oldest first — type is " +
32
+ `join, leave, add, remove, create, title or pin. The last ${EVENTS_DAYS} days unless query names time ` +
33
+ '(time>=2d, time>="2026-10-01"). meta.truncated when the history was longer than one run reads.',
34
+ input: v.object({ chat, query: queryArgument(EVENTS_QUERY) }),
43
35
  annotations: READ,
44
- online: async (adapter, args, { guard }) => {
45
- const { events, more, ...rest } = await chats(adapter, guard).events(args.chat, {
46
- ...(args.since_time === undefined ? {} : { since: momentOf(args.since_time, "since_time") }),
47
- ...(args.type ? { only: args.type } : {}),
48
- });
49
- return { ...listed(events), hasMore: more, ...rest };
50
- },
36
+ output: { entity: "chat_event", list: true },
37
+ online: (adapter, args, { guard }) => chatEvents(servicesFor(onlineDeps(messenger, adapter, guard)), args.chat, args.query),
51
38
  }),
52
39
  stats_chats_show: tool({
53
40
  title: "A chat's numbers for a period",
54
41
  description: `Counts over a chat's stored messages since \`since_time\` (${EVENTS_DAYS} days back if not given): messages, ` +
55
- "senders, replies, threads, reactions, views, forwards and comments where the messenger gave them, topPosts, and " +
56
- "questions { asked, answered, medianMinutesToAnswer }. `by` adds a series row per day or week. Reads the local " +
42
+ "senders, replies, threads, reactions, views, forwards and comments where the messenger gave them, top_posts, and " +
43
+ "questions { asked, answered, median_minutes_to_answer }. `by` adds a series row per day or week. Reads the local " +
57
44
  "store only, so joins and leaves are not in it — chats_events has them. complete is false when the store does " +
58
- "not hold the chat whole: then every number is a lower bound, and fetch names the CLI command that fills it.",
45
+ "not hold the chat whole: then every number is a lower bound, and next names the sync that fills it.",
59
46
  input: v.object({
60
47
  chat,
61
48
  since_time: v.optional(v.pipe(v.string(), v.description("an ISO 8601 time, or 2h / 1d ago"))),
@@ -63,123 +50,129 @@ export const chatsTools = (messenger) => {
63
50
  timezone: v.optional(v.pipe(v.string(), v.description("the IANA timezone for calendar days"))),
64
51
  }),
65
52
  annotations: { ...READ, openWorldHint: false },
66
- stored: (store, account, args, defaults) => servicesFor(storedDeps(messenger, store, account, defaults.guard)).chats.stats(args.chat, {
67
- ...(args.since_time === undefined ? {} : { since: momentOf(args.since_time, "since_time") }),
68
- ...(args.by ? { by: args.by } : {}),
69
- ...(args.timezone === undefined ? {} : { timezone: args.timezone }),
70
- }),
53
+ stored: async (store, account, args, defaults) => {
54
+ const { fetch, ...stats } = await servicesFor(storedDeps(messenger, store, account, defaults.guard)).chats.stats(args.chat, {
55
+ ...(args.since_time === undefined ? {} : { since: momentOf(args.since_time, "since_time") }),
56
+ ...(args.by ? { by: args.by } : {}),
57
+ ...(args.timezone === undefined ? {} : { timezone: args.timezone }),
58
+ });
59
+ return itemOf(snakeKeys(stats), fetch === undefined ? {} : { next: [nextStep("messages.sync", { args: { chat: stats.chatId } })] });
60
+ },
71
61
  }),
72
62
  chats_members: tool({
73
63
  title: "Everyone in a group",
74
- description: "A group's members, a page at a time: { id, name, username, role?, lastSeenAt? }. role is owner, admin or " +
75
- "member; lastSeenAt is null when their privacy hides it. Returns { items, page, limit, hasMore }.",
64
+ description: "A group's members, a page at a time: { id, name, username, role?, last_seen_at? }. role is owner, admin or " +
65
+ "member; last_seen_at is null when their privacy hides it.",
76
66
  input: v.object({ chat, limit, page }),
77
67
  annotations: READ,
78
- online: async (adapter, { chat: reference, ...rest }, defaults) => {
79
- const { size, number, window } = paging(rest, defaults);
80
- const found = await chats(adapter, defaults.guard).members(reference, window);
81
- return { ...envelope(found, number, size), chatId: found.chatId };
82
- },
68
+ output: { entity: "member", list: true },
69
+ online: (adapter, args, defaults) => membersList(servicesFor(onlineDeps(messenger, adapter, defaults.guard)), args.chat, pagingOf(args, defaults)),
83
70
  }),
84
71
  chats_members_audit: tool({
85
72
  title: "Members that look like bots",
86
73
  description: "Members of a group that look like bots, highest score first: { id, name, username, score, reasons }. " +
87
74
  "Reasons: bot, scam, fake, deleted, no_photo, no_username, odd_name, never_wrote, link_first, burst_join, " +
88
- "mass_invited. A score is a hint, never a verdict; the owner and admins are left out. Reads the member list " +
89
- "a page at a time (budget pages); unknown names the signals the messenger gave nothing for; more says some " +
90
- "members were not read. With deep, the top members also get the full contacts_check, one person a second" +
75
+ "mass_invited. A score is a hint, never a verdict; the owner and admins are left out. query sets the lowest " +
76
+ "score shown (score>=3; score>=2 unless named). Reads the member list a page at a time (budget pages); " +
77
+ "meta.truncated says some members were not read. With deep, the top members also get the full contacts_check, " +
78
+ "one person a second" +
91
79
  (registriesCover(messenger.provider)
92
80
  ? " — and their ids are sent to the public ban lists"
93
81
  : "; the public ban lists cover Telegram only, so nothing is sent") +
94
82
  ". Removes nobody — that is chats_moderate, with the owner's confirmation.",
95
83
  input: v.object({
96
84
  chat,
85
+ query: queryArgument(AUDIT_QUERY),
97
86
  budget: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.description("pages of members to read"))),
98
- min_score: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
99
87
  deep: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(50), v.description("check the top n in full"))),
100
88
  }),
101
89
  annotations: READ,
102
- online: (adapter, args, { guard, env }) => {
90
+ output: { entity: "member", list: true },
91
+ online: async (adapter, args, { guard, env }) => {
103
92
  const key = args.deep === undefined ? undefined : casKey(messenger.app, env);
104
- return chats(adapter, guard).audit(args.chat, {
93
+ const { body } = await membersAudit(servicesFor(onlineDeps(messenger, adapter, guard)), args.chat, args.query, {
105
94
  ...(args.budget === undefined ? {} : { budget: args.budget }),
106
- ...(args.min_score === undefined ? {} : { minScore: args.min_score }),
107
95
  ...(args.deep === undefined ? {} : { deep: args.deep }),
108
96
  ...(key ? { registry: { casKey: key } } : {}),
109
97
  });
98
+ return body;
110
99
  },
111
100
  }),
112
101
  chats_members_history: tool({
113
102
  title: "Who joined, left or changed their profile",
114
- description: "A group's member history as the local store recorded it with chats members fetch, oldest first: " +
115
- "{ chatId, items: [{ at, event: joined | left | changed, id, name, username, invitedBy?, before? }] }. " +
116
- "before is the profile seen until then. A leave is recorded only from a member list read whole. Reads the " +
117
- "local store only; empty until the owner fetches or tracks the chat.",
118
- input: v.object({
119
- chat,
120
- since_time: v.optional(v.pipe(v.string(), v.description("an ISO 8601 time, or 2h / 1d ago"))),
121
- }),
103
+ description: "A group's member history as the local store recorded it with chats members fetch, oldest first: type is " +
104
+ "join, leave or profile; before is the profile seen until then. A leave is recorded only from a member list " +
105
+ "read whole. query names time to read from (time>=7d). Reads the local store only; empty until the owner " +
106
+ "fetches or tracks the chat.",
107
+ input: v.object({ chat, query: queryArgument(HISTORY_QUERY) }),
122
108
  annotations: { ...READ, openWorldHint: false },
123
- stored: async (store, account, args, defaults) => {
124
- const { chatId, events } = await servicesFor(storedDeps(messenger, store, account, defaults.guard)).chats.memberHistory(args.chat, args.since_time === undefined ? {} : { since: momentOf(args.since_time, "since_time") });
125
- return { chatId, items: events };
126
- },
109
+ output: { entity: "chat_event", list: true },
110
+ stored: (store, account, args, defaults) => membersHistory(servicesFor(storedDeps(messenger, store, account, defaults.guard)), args.chat, args.query),
127
111
  }),
128
112
  chats_documents_list: tool({
129
113
  title: "Google documents linked in a chat",
130
114
  description: "Every Google Docs, Sheets, Slides, Forms or Drive link in a chat's stored messages, newest first, one item " +
131
- "per link: { items: [{ url, documentId, title, inStore, locator, sentAt, sender: { id, name } }], page, " +
132
- "limit, hasMore }. documentId is the Google file id in the URL, null when it carries none; title is the " +
133
- "stored document's, null unless inStore. Reads the local store only.",
115
+ "per link: { url, document_id, title, in_store, ref, sent_at, sender: { id, name } }. document_id is the " +
116
+ "Google file id in the URL, null when it carries none; title is the stored document's, null unless in_store; " +
117
+ "ref is the message's locator. Reads the local store only.",
134
118
  input: v.object({ chat, limit, page }),
135
119
  annotations: { ...READ, openWorldHint: false },
136
120
  stored: async (store, account, args, defaults) => {
137
121
  const { size, number, window } = paging(args, defaults);
138
122
  const found = await servicesFor(storedDeps(messenger, store, account, defaults.guard)).chatDocuments.list(args.chat, window);
139
- return envelope(found, number, size);
123
+ return listOf("chats documents list", {
124
+ items: found.items.map(documentLinkAnswer),
125
+ limit: size,
126
+ has_more: found.hasMore,
127
+ page: number,
128
+ args: { chat: args.chat },
129
+ ...(found.empty ? { next: [nextStep("messages.sync", { args: { chat: found.chatId } })] } : {}),
130
+ });
140
131
  },
141
132
  }),
142
133
  chats_tracking_list: tool({
143
134
  title: "Chats whose members are recorded daily",
144
- description: "The chats whose member lists serve fetches daily into the local store: [{ chatId, title, trackedAt, " +
145
- "lastCount: { day, participants, listed, complete } | null }]. Reads the local store only. The owner adds " +
135
+ description: "The chats whose member lists serve fetches daily into the local store: { chat_id, title, tracked_at, " +
136
+ "last_count: { day, participants, listed, complete } | null }. Reads the local store only. The owner adds " +
146
137
  "one with the CLI: chats members fetch <chat> --track, or chats tracking add.",
147
138
  input: v.object({}),
148
139
  annotations: { ...READ, openWorldHint: false },
149
- stored: async (store, account) => ({ items: await store.trackedChats(account) }),
140
+ stored: async (store, account) => wholeList("chats tracking list", (await store.trackedChats(account)).map(snakeKeys)),
150
141
  }),
151
142
  chats_tracking_show: tool({
152
143
  title: "A chat's member count per day",
153
144
  description: "Whether a chat's members are recorded daily, and its member count per day for the last 30 days: " +
154
- "{ chatId, trackedAt | null, counts: [{ day, participants, listed, complete }] }. complete is false for a " +
145
+ "{ chat_id, tracked_at | null, counts: [{ day, participants, listed, complete }] }. complete is false for a " +
155
146
  "day whose member list was not read whole. Reads the local store only.",
156
147
  input: v.object({ chat }),
157
148
  annotations: { ...READ, openWorldHint: false },
158
- stored: (store, account, args, defaults) => servicesFor(storedDeps(messenger, store, account, defaults.guard)).chats.trackedChat(args.chat),
149
+ stored: async (store, account, args, defaults) => itemOf(snakeKeys(await servicesFor(storedDeps(messenger, store, account, defaults.guard)).chats.trackedChat(args.chat))),
159
150
  }),
160
151
  chats_inspect: tool({
161
152
  title: "What a link leads to",
162
153
  description: "What an invite or public link leads to, read without joining: { kind, title, id, username, " +
163
- "participantsCount, description, member, approvalNeeded? }. id is null for a private chat the owner is not in.",
154
+ "participants_count, description, member, approval_needed? }. id is null for a private chat the owner is not in.",
164
155
  input: v.object({ link: v.pipe(v.string(), v.minLength(1), v.description("an invite link or a public one")) }),
165
156
  annotations: READ,
166
- online: (adapter, args, { guard }) => chats(adapter, guard).inspect(args.link),
157
+ online: async (adapter, args, { guard }) => itemOf(snakeKeys(await servicesFor(onlineDeps(messenger, adapter, guard)).chats.inspect(args.link))),
167
158
  }),
168
159
  chats_send_as: tool({
169
160
  title: "Who the owner may post as",
170
- description: "The identities the owner may post as in a chat: { id, title, kind, premiumRequired, default }. kind is " +
161
+ description: "The identities the owner may post as in a chat: { id, title, kind, premium_required, default }. kind is " +
171
162
  "self, channel or group; self is always there; default is the chat's saved choice. Reading changes nothing. " +
172
- "Pass an id as messages_send send_as. Returns { items, page, limit, hasMore }.",
163
+ "Pass an id as messages_send send_as.",
173
164
  input: v.object({ chat }),
174
165
  annotations: READ,
175
- served: async (services, args) => listed(await services.chats.sendAs(args.chat)),
166
+ served: async (services, args) => wholeList("chats send-as", (await services.chats.sendAs(args.chat)).map(snakeKeys)),
176
167
  }),
177
168
  chats_show: tool({
178
169
  title: "Show a chat",
179
- description: "One chat: its kind, unread count, last message time and who is in it.",
170
+ description: "One chat: its kind, unread count, last message time and who is in it; a group's description, invite link " +
171
+ "and settings where the messenger gives them.",
180
172
  input: v.object({ chat }),
181
173
  annotations: READ,
182
- served: (services, args) => services.chats.show(args.chat),
174
+ output: { entity: "chat", list: false },
175
+ served: async (services, args) => chatShown(await services.chats.account(), await services.chats.show(args.chat)),
183
176
  }),
184
177
  };
185
178
  };