@wirecat/cli-core 0.264.0 → 0.266.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 (575) hide show
  1. package/dist/cli/command-contract.d.ts.map +1 -1
  2. package/dist/cli/command-contract.js +0 -126
  3. package/dist/cli/command-contract.js.map +1 -1
  4. package/dist/cli/envelope.d.ts +7 -0
  5. package/dist/cli/envelope.d.ts.map +1 -1
  6. package/dist/cli/envelope.js +14 -2
  7. package/dist/cli/envelope.js.map +1 -1
  8. package/dist/cli/list-query.d.ts +22 -4
  9. package/dist/cli/list-query.d.ts.map +1 -1
  10. package/dist/cli/list-query.js +65 -10
  11. package/dist/cli/list-query.js.map +1 -1
  12. package/dist/cli/messenger/admin-commands.d.ts.map +1 -1
  13. package/dist/cli/messenger/admin-commands.js +34 -46
  14. package/dist/cli/messenger/admin-commands.js.map +1 -1
  15. package/dist/cli/messenger/admin-contacts-command.d.ts.map +1 -1
  16. package/dist/cli/messenger/admin-contacts-command.js +6 -3
  17. package/dist/cli/messenger/admin-contacts-command.js.map +1 -1
  18. package/dist/cli/messenger/admin-folders-command.d.ts.map +1 -1
  19. package/dist/cli/messenger/admin-folders-command.js +21 -21
  20. package/dist/cli/messenger/admin-folders-command.js.map +1 -1
  21. package/dist/cli/messenger/admin-moderation-command.d.ts.map +1 -1
  22. package/dist/cli/messenger/admin-moderation-command.js +11 -13
  23. package/dist/cli/messenger/admin-moderation-command.js.map +1 -1
  24. package/dist/cli/messenger/admin-statistics-command.d.ts.map +1 -1
  25. package/dist/cli/messenger/admin-statistics-command.js +5 -5
  26. package/dist/cli/messenger/admin-statistics-command.js.map +1 -1
  27. package/dist/cli/messenger/archive-summary.d.ts +1 -1
  28. package/dist/cli/messenger/archive-summary.d.ts.map +1 -1
  29. package/dist/cli/messenger/archive-summary.js +2 -3
  30. package/dist/cli/messenger/archive-summary.js.map +1 -1
  31. package/dist/cli/messenger/attachments-command.d.ts.map +1 -1
  32. package/dist/cli/messenger/attachments-command.js +10 -16
  33. package/dist/cli/messenger/attachments-command.js.map +1 -1
  34. package/dist/cli/messenger/backfill-command.d.ts.map +1 -1
  35. package/dist/cli/messenger/backfill-command.js +11 -9
  36. package/dist/cli/messenger/backfill-command.js.map +1 -1
  37. package/dist/cli/messenger/backfill-jobs.d.ts +1 -1
  38. package/dist/cli/messenger/backfill-jobs.d.ts.map +1 -1
  39. package/dist/cli/messenger/backfill-jobs.js +1 -1
  40. package/dist/cli/messenger/backfill-jobs.js.map +1 -1
  41. package/dist/cli/messenger/catch-up-answers.d.ts +94 -0
  42. package/dist/cli/messenger/catch-up-answers.d.ts.map +1 -0
  43. package/dist/cli/messenger/catch-up-answers.js +96 -0
  44. package/dist/cli/messenger/catch-up-answers.js.map +1 -0
  45. package/dist/cli/messenger/chat-answers.d.ts +150 -0
  46. package/dist/cli/messenger/chat-answers.d.ts.map +1 -0
  47. package/dist/cli/messenger/chat-answers.js +231 -0
  48. package/dist/cli/messenger/chat-answers.js.map +1 -0
  49. package/dist/cli/messenger/chat-lists.d.ts +162 -0
  50. package/dist/cli/messenger/chat-lists.d.ts.map +1 -0
  51. package/dist/cli/messenger/chat-lists.js +82 -0
  52. package/dist/cli/messenger/chat-lists.js.map +1 -0
  53. package/dist/cli/messenger/chat-queries.d.ts +17 -0
  54. package/dist/cli/messenger/chat-queries.d.ts.map +1 -0
  55. package/dist/cli/messenger/chat-queries.js +65 -0
  56. package/dist/cli/messenger/chat-queries.js.map +1 -0
  57. package/dist/cli/messenger/chats-bots-command.d.ts.map +1 -1
  58. package/dist/cli/messenger/chats-bots-command.js +6 -2
  59. package/dist/cli/messenger/chats-bots-command.js.map +1 -1
  60. package/dist/cli/messenger/chats-command.d.ts.map +1 -1
  61. package/dist/cli/messenger/chats-command.js +34 -71
  62. package/dist/cli/messenger/chats-command.js.map +1 -1
  63. package/dist/cli/messenger/chats-documents-command.d.ts.map +1 -1
  64. package/dist/cli/messenger/chats-documents-command.js +10 -5
  65. package/dist/cli/messenger/chats-documents-command.js.map +1 -1
  66. package/dist/cli/messenger/chats-members-command.d.ts.map +1 -1
  67. package/dist/cli/messenger/chats-members-command.js +38 -64
  68. package/dist/cli/messenger/chats-members-command.js.map +1 -1
  69. package/dist/cli/messenger/chats-read-command.d.ts.map +1 -1
  70. package/dist/cli/messenger/chats-read-command.js +3 -2
  71. package/dist/cli/messenger/chats-read-command.js.map +1 -1
  72. package/dist/cli/messenger/chats-stats-command.d.ts.map +1 -1
  73. package/dist/cli/messenger/chats-stats-command.js +23 -17
  74. package/dist/cli/messenger/chats-stats-command.js.map +1 -1
  75. package/dist/cli/messenger/chats-tracking-command.d.ts.map +1 -1
  76. package/dist/cli/messenger/chats-tracking-command.js +11 -17
  77. package/dist/cli/messenger/chats-tracking-command.js.map +1 -1
  78. package/dist/cli/messenger/contacts-command.d.ts.map +1 -1
  79. package/dist/cli/messenger/contacts-command.js +66 -43
  80. package/dist/cli/messenger/contacts-command.js.map +1 -1
  81. package/dist/cli/messenger/counters-command.d.ts.map +1 -1
  82. package/dist/cli/messenger/counters-command.js +9 -7
  83. package/dist/cli/messenger/counters-command.js.map +1 -1
  84. package/dist/cli/messenger/download-command.d.ts.map +1 -1
  85. package/dist/cli/messenger/download-command.js +12 -14
  86. package/dist/cli/messenger/download-command.js.map +1 -1
  87. package/dist/cli/messenger/hearing-command.d.ts +1 -1
  88. package/dist/cli/messenger/hearing-command.d.ts.map +1 -1
  89. package/dist/cli/messenger/hearing-command.js +1 -1
  90. package/dist/cli/messenger/hearing-command.js.map +1 -1
  91. package/dist/cli/messenger/history-query.d.ts +18 -0
  92. package/dist/cli/messenger/history-query.d.ts.map +1 -0
  93. package/dist/cli/messenger/history-query.js +63 -0
  94. package/dist/cli/messenger/history-query.js.map +1 -0
  95. package/dist/cli/messenger/inbox.d.ts +1 -1
  96. package/dist/cli/messenger/inbox.d.ts.map +1 -1
  97. package/dist/cli/messenger/inbox.js +34 -49
  98. package/dist/cli/messenger/inbox.js.map +1 -1
  99. package/dist/cli/messenger/mentions-command.d.ts.map +1 -1
  100. package/dist/cli/messenger/mentions-command.js +2 -2
  101. package/dist/cli/messenger/mentions-command.js.map +1 -1
  102. package/dist/cli/messenger/message-answers.d.ts +10 -0
  103. package/dist/cli/messenger/message-answers.d.ts.map +1 -0
  104. package/dist/cli/messenger/message-answers.js +22 -0
  105. package/dist/cli/messenger/message-answers.js.map +1 -0
  106. package/dist/cli/messenger/message-items.d.ts +31 -0
  107. package/dist/cli/messenger/message-items.d.ts.map +1 -0
  108. package/dist/cli/messenger/message-items.js +95 -0
  109. package/dist/cli/messenger/message-items.js.map +1 -0
  110. package/dist/cli/messenger/message-writes.d.ts +196 -0
  111. package/dist/cli/messenger/message-writes.d.ts.map +1 -0
  112. package/dist/cli/messenger/message-writes.js +15 -0
  113. package/dist/cli/messenger/message-writes.js.map +1 -0
  114. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  115. package/dist/cli/messenger/messages-command.js +52 -77
  116. package/dist/cli/messenger/messages-command.js.map +1 -1
  117. package/dist/cli/messenger/messages-comments-command.d.ts.map +1 -1
  118. package/dist/cli/messenger/messages-comments-command.js +39 -28
  119. package/dist/cli/messenger/messages-comments-command.js.map +1 -1
  120. package/dist/cli/messenger/messages-delete-command.d.ts.map +1 -1
  121. package/dist/cli/messenger/messages-delete-command.js +3 -5
  122. package/dist/cli/messenger/messages-delete-command.js.map +1 -1
  123. package/dist/cli/messenger/messages-edit-command.d.ts.map +1 -1
  124. package/dist/cli/messenger/messages-edit-command.js +13 -7
  125. package/dist/cli/messenger/messages-edit-command.js.map +1 -1
  126. package/dist/cli/messenger/messages-evidence-command.d.ts.map +1 -1
  127. package/dist/cli/messenger/messages-evidence-command.js +9 -13
  128. package/dist/cli/messenger/messages-evidence-command.js.map +1 -1
  129. package/dist/cli/messenger/messages-forward-command.d.ts.map +1 -1
  130. package/dist/cli/messenger/messages-forward-command.js +15 -9
  131. package/dist/cli/messenger/messages-forward-command.js.map +1 -1
  132. package/dist/cli/messenger/messages-link-command.d.ts.map +1 -1
  133. package/dist/cli/messenger/messages-link-command.js +16 -14
  134. package/dist/cli/messenger/messages-link-command.js.map +1 -1
  135. package/dist/cli/messenger/messages-pin-command.d.ts.map +1 -1
  136. package/dist/cli/messenger/messages-pin-command.js +5 -2
  137. package/dist/cli/messenger/messages-pin-command.js.map +1 -1
  138. package/dist/cli/messenger/messages-press-command.d.ts.map +1 -1
  139. package/dist/cli/messenger/messages-press-command.js +3 -1
  140. package/dist/cli/messenger/messages-press-command.js.map +1 -1
  141. package/dist/cli/messenger/messages-scheduled-command.d.ts.map +1 -1
  142. package/dist/cli/messenger/messages-scheduled-command.js +23 -26
  143. package/dist/cli/messenger/messages-scheduled-command.js.map +1 -1
  144. package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
  145. package/dist/cli/messenger/messages-search-command.js +45 -39
  146. package/dist/cli/messenger/messages-search-command.js.map +1 -1
  147. package/dist/cli/messenger/messages-send-command.d.ts.map +1 -1
  148. package/dist/cli/messenger/messages-send-command.js +23 -23
  149. package/dist/cli/messenger/messages-send-command.js.map +1 -1
  150. package/dist/cli/messenger/messages-stats-command.d.ts.map +1 -1
  151. package/dist/cli/messenger/messages-stats-command.js +9 -13
  152. package/dist/cli/messenger/messages-stats-command.js.map +1 -1
  153. package/dist/cli/messenger/models-command.d.ts +0 -5
  154. package/dist/cli/messenger/models-command.d.ts.map +1 -1
  155. package/dist/cli/messenger/models-command.js +27 -39
  156. package/dist/cli/messenger/models-command.js.map +1 -1
  157. package/dist/cli/messenger/observed.js +3 -3
  158. package/dist/cli/messenger/observed.js.map +1 -1
  159. package/dist/cli/messenger/official-stats-command.d.ts.map +1 -1
  160. package/dist/cli/messenger/official-stats-command.js +5 -5
  161. package/dist/cli/messenger/official-stats-command.js.map +1 -1
  162. package/dist/cli/messenger/people-queries.d.ts +12 -0
  163. package/dist/cli/messenger/people-queries.d.ts.map +1 -0
  164. package/dist/cli/messenger/people-queries.js +37 -0
  165. package/dist/cli/messenger/people-queries.js.map +1 -0
  166. package/dist/cli/messenger/polls-command.d.ts.map +1 -1
  167. package/dist/cli/messenger/polls-command.js +53 -39
  168. package/dist/cli/messenger/polls-command.js.map +1 -1
  169. package/dist/cli/messenger/rankings-command.d.ts.map +1 -1
  170. package/dist/cli/messenger/rankings-command.js +17 -22
  171. package/dist/cli/messenger/rankings-command.js.map +1 -1
  172. package/dist/cli/messenger/reactions-command.d.ts.map +1 -1
  173. package/dist/cli/messenger/reactions-command.js +5 -2
  174. package/dist/cli/messenger/reactions-command.js.map +1 -1
  175. package/dist/cli/messenger/retention-command.d.ts.map +1 -1
  176. package/dist/cli/messenger/retention-command.js +7 -12
  177. package/dist/cli/messenger/retention-command.js.map +1 -1
  178. package/dist/cli/messenger/review.d.ts.map +1 -1
  179. package/dist/cli/messenger/review.js +44 -62
  180. package/dist/cli/messenger/review.js.map +1 -1
  181. package/dist/cli/messenger/search-answers.d.ts +34 -0
  182. package/dist/cli/messenger/search-answers.d.ts.map +1 -0
  183. package/dist/cli/messenger/search-answers.js +220 -0
  184. package/dist/cli/messenger/search-answers.js.map +1 -0
  185. package/dist/cli/messenger/search-command.d.ts.map +1 -1
  186. package/dist/cli/messenger/search-command.js +49 -33
  187. package/dist/cli/messenger/search-command.js.map +1 -1
  188. package/dist/cli/messenger/searches-command.d.ts.map +1 -1
  189. package/dist/cli/messenger/searches-command.js +25 -42
  190. package/dist/cli/messenger/searches-command.js.map +1 -1
  191. package/dist/cli/messenger/stats-answers.d.ts +65 -0
  192. package/dist/cli/messenger/stats-answers.d.ts.map +1 -0
  193. package/dist/cli/messenger/stats-answers.js +326 -0
  194. package/dist/cli/messenger/stats-answers.js.map +1 -0
  195. package/dist/cli/messenger/stats-command.d.ts.map +1 -1
  196. package/dist/cli/messenger/stats-command.js +5 -3
  197. package/dist/cli/messenger/stats-command.js.map +1 -1
  198. package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
  199. package/dist/cli/messenger/tasks-command.js +8 -11
  200. package/dist/cli/messenger/tasks-command.js.map +1 -1
  201. package/dist/cli/messenger/topics-command.d.ts.map +1 -1
  202. package/dist/cli/messenger/topics-command.js +21 -9
  203. package/dist/cli/messenger/topics-command.js.map +1 -1
  204. package/dist/cli/messenger/transcribe-command.d.ts.map +1 -1
  205. package/dist/cli/messenger/transcribe-command.js +4 -7
  206. package/dist/cli/messenger/transcribe-command.js.map +1 -1
  207. package/dist/cli/steps.d.ts.map +1 -1
  208. package/dist/cli/steps.js +105 -0
  209. package/dist/cli/steps.js.map +1 -1
  210. package/dist/domain/meeting-reference.d.ts +1 -11
  211. package/dist/domain/meeting-reference.d.ts.map +1 -1
  212. package/dist/domain/meeting-reference.js +1 -36
  213. package/dist/domain/meeting-reference.js.map +1 -1
  214. package/dist/entities/admin-report.d.ts +94 -0
  215. package/dist/entities/admin-report.d.ts.map +1 -0
  216. package/dist/entities/admin-report.js +57 -0
  217. package/dist/entities/admin-report.js.map +1 -0
  218. package/dist/entities/agenda.d.ts +61 -0
  219. package/dist/entities/agenda.d.ts.map +1 -0
  220. package/dist/entities/agenda.js +42 -0
  221. package/dist/entities/agenda.js.map +1 -0
  222. package/dist/entities/attachment.d.ts +9 -1
  223. package/dist/entities/attachment.d.ts.map +1 -1
  224. package/dist/entities/attachment.js +10 -2
  225. package/dist/entities/attachment.js.map +1 -1
  226. package/dist/entities/chart.d.ts +27 -0
  227. package/dist/entities/chart.d.ts.map +1 -0
  228. package/dist/entities/chart.js +17 -0
  229. package/dist/entities/chart.js.map +1 -0
  230. package/dist/entities/chat-event.d.ts +28 -0
  231. package/dist/entities/chat-event.d.ts.map +1 -0
  232. package/dist/entities/chat-event.js +19 -0
  233. package/dist/entities/chat-event.js.map +1 -0
  234. package/dist/entities/chat.d.ts +29 -0
  235. package/dist/entities/chat.d.ts.map +1 -1
  236. package/dist/entities/chat.js +15 -0
  237. package/dist/entities/chat.js.map +1 -1
  238. package/dist/entities/contact.d.ts +137 -0
  239. package/dist/entities/contact.d.ts.map +1 -1
  240. package/dist/entities/contact.js +6 -1
  241. package/dist/entities/contact.js.map +1 -1
  242. package/dist/entities/counter-reading.d.ts +14 -0
  243. package/dist/entities/counter-reading.d.ts.map +1 -0
  244. package/dist/entities/counter-reading.js +15 -0
  245. package/dist/entities/counter-reading.js.map +1 -0
  246. package/dist/entities/counters.d.ts +42 -0
  247. package/dist/entities/counters.d.ts.map +1 -0
  248. package/dist/entities/counters.js +34 -0
  249. package/dist/entities/counters.js.map +1 -0
  250. package/dist/entities/evidence.d.ts +1617 -0
  251. package/dist/entities/evidence.d.ts.map +1 -0
  252. package/dist/entities/evidence.js +35 -0
  253. package/dist/entities/evidence.js.map +1 -0
  254. package/dist/entities/folder.d.ts +31 -0
  255. package/dist/entities/folder.d.ts.map +1 -0
  256. package/dist/entities/folder.js +25 -0
  257. package/dist/entities/folder.js.map +1 -0
  258. package/dist/entities/hit.d.ts +21 -0
  259. package/dist/entities/hit.d.ts.map +1 -0
  260. package/dist/entities/hit.js +22 -0
  261. package/dist/entities/hit.js.map +1 -0
  262. package/dist/entities/index.d.ts +2180 -17
  263. package/dist/entities/index.d.ts.map +1 -1
  264. package/dist/entities/index.js +79 -3
  265. package/dist/entities/index.js.map +1 -1
  266. package/dist/entities/invite-link.d.ts +17 -0
  267. package/dist/entities/invite-link.d.ts.map +1 -0
  268. package/dist/entities/invite-link.js +18 -0
  269. package/dist/entities/invite-link.js.map +1 -0
  270. package/dist/entities/job.d.ts +28 -0
  271. package/dist/entities/job.d.ts.map +1 -0
  272. package/dist/entities/job.js +25 -0
  273. package/dist/entities/job.js.map +1 -0
  274. package/dist/entities/join-request.d.ts +12 -0
  275. package/dist/entities/join-request.d.ts.map +1 -0
  276. package/dist/entities/join-request.js +13 -0
  277. package/dist/entities/join-request.js.map +1 -0
  278. package/dist/entities/meeting.d.ts +1 -19
  279. package/dist/entities/meeting.d.ts.map +1 -1
  280. package/dist/entities/meeting.js +1 -20
  281. package/dist/entities/meeting.js.map +1 -1
  282. package/dist/entities/member.d.ts +24 -0
  283. package/dist/entities/member.d.ts.map +1 -0
  284. package/dist/entities/member.js +25 -0
  285. package/dist/entities/member.js.map +1 -0
  286. package/dist/entities/message-counts.d.ts +14 -0
  287. package/dist/entities/message-counts.d.ts.map +1 -0
  288. package/dist/entities/message-counts.js +15 -0
  289. package/dist/entities/message-counts.js.map +1 -0
  290. package/dist/entities/message-link.d.ts +10 -0
  291. package/dist/entities/message-link.d.ts.map +1 -0
  292. package/dist/entities/message-link.js +11 -0
  293. package/dist/entities/message-link.js.map +1 -0
  294. package/dist/entities/message.d.ts +40 -1
  295. package/dist/entities/message.d.ts.map +1 -1
  296. package/dist/entities/message.js +17 -1
  297. package/dist/entities/message.js.map +1 -1
  298. package/dist/entities/model.d.ts +16 -0
  299. package/dist/entities/model.d.ts.map +1 -0
  300. package/dist/entities/model.js +17 -0
  301. package/dist/entities/model.js.map +1 -0
  302. package/dist/entities/note.d.ts +11 -0
  303. package/dist/entities/note.d.ts.map +1 -1
  304. package/dist/entities/note.js +11 -0
  305. package/dist/entities/note.js.map +1 -1
  306. package/dist/entities/official-stats.d.ts +63 -0
  307. package/dist/entities/official-stats.d.ts.map +1 -0
  308. package/dist/entities/official-stats.js +36 -0
  309. package/dist/entities/official-stats.js.map +1 -0
  310. package/dist/entities/poll-vote.d.ts +11 -0
  311. package/dist/entities/poll-vote.d.ts.map +1 -0
  312. package/dist/entities/poll-vote.js +12 -0
  313. package/dist/entities/poll-vote.js.map +1 -0
  314. package/dist/entities/ranking.d.ts +95 -0
  315. package/dist/entities/ranking.d.ts.map +1 -0
  316. package/dist/entities/ranking.js +49 -0
  317. package/dist/entities/ranking.js.map +1 -0
  318. package/dist/entities/retention.d.ts +86 -0
  319. package/dist/entities/retention.d.ts.map +1 -0
  320. package/dist/entities/retention.js +51 -0
  321. package/dist/entities/retention.js.map +1 -0
  322. package/dist/entities/saved-search.d.ts +17 -0
  323. package/dist/entities/saved-search.d.ts.map +1 -0
  324. package/dist/entities/saved-search.js +18 -0
  325. package/dist/entities/saved-search.js.map +1 -0
  326. package/dist/entities/topic.d.ts +14 -0
  327. package/dist/entities/topic.d.ts.map +1 -0
  328. package/dist/entities/topic.js +15 -0
  329. package/dist/entities/topic.js.map +1 -0
  330. package/dist/mcp/instructions.d.ts.map +1 -1
  331. package/dist/mcp/instructions.js +3 -2
  332. package/dist/mcp/instructions.js.map +1 -1
  333. package/dist/mcp/prompts.js +1 -1
  334. package/dist/mcp/prompts.js.map +1 -1
  335. package/dist/mcp/tools/admin-statistics.d.ts.map +1 -1
  336. package/dist/mcp/tools/admin-statistics.js +17 -8
  337. package/dist/mcp/tools/admin-statistics.js.map +1 -1
  338. package/dist/mcp/tools/admin.d.ts.map +1 -1
  339. package/dist/mcp/tools/admin.js +40 -39
  340. package/dist/mcp/tools/admin.js.map +1 -1
  341. package/dist/mcp/tools/attachments.d.ts.map +1 -1
  342. package/dist/mcp/tools/attachments.js +15 -18
  343. package/dist/mcp/tools/attachments.js.map +1 -1
  344. package/dist/mcp/tools/chats-read.d.ts.map +1 -1
  345. package/dist/mcp/tools/chats-read.js +3 -2
  346. package/dist/mcp/tools/chats-read.js.map +1 -1
  347. package/dist/mcp/tools/chats.d.ts.map +1 -1
  348. package/dist/mcp/tools/chats.js +78 -84
  349. package/dist/mcp/tools/chats.js.map +1 -1
  350. package/dist/mcp/tools/contacts-write.d.ts.map +1 -1
  351. package/dist/mcp/tools/contacts-write.js +3 -2
  352. package/dist/mcp/tools/contacts-write.js.map +1 -1
  353. package/dist/mcp/tools/contacts.d.ts.map +1 -1
  354. package/dist/mcp/tools/contacts.js +60 -26
  355. package/dist/mcp/tools/contacts.js.map +1 -1
  356. package/dist/mcp/tools/folders.d.ts.map +1 -1
  357. package/dist/mcp/tools/folders.js +12 -11
  358. package/dist/mcp/tools/folders.js.map +1 -1
  359. package/dist/mcp/tools/inbox.d.ts.map +1 -1
  360. package/dist/mcp/tools/inbox.js +15 -17
  361. package/dist/mcp/tools/inbox.js.map +1 -1
  362. package/dist/mcp/tools/messages-actions.d.ts.map +1 -1
  363. package/dist/mcp/tools/messages-actions.js +31 -18
  364. package/dist/mcp/tools/messages-actions.js.map +1 -1
  365. package/dist/mcp/tools/messages-delete.d.ts.map +1 -1
  366. package/dist/mcp/tools/messages-delete.js +3 -2
  367. package/dist/mcp/tools/messages-delete.js.map +1 -1
  368. package/dist/mcp/tools/messages-photo.js +1 -1
  369. package/dist/mcp/tools/messages-photo.js.map +1 -1
  370. package/dist/mcp/tools/messages-send.d.ts.map +1 -1
  371. package/dist/mcp/tools/messages-send.js +5 -7
  372. package/dist/mcp/tools/messages-send.js.map +1 -1
  373. package/dist/mcp/tools/messages-transcribe.d.ts.map +1 -1
  374. package/dist/mcp/tools/messages-transcribe.js +4 -3
  375. package/dist/mcp/tools/messages-transcribe.js.map +1 -1
  376. package/dist/mcp/tools/messages.d.ts.map +1 -1
  377. package/dist/mcp/tools/messages.js +85 -68
  378. package/dist/mcp/tools/messages.js.map +1 -1
  379. package/dist/mcp/tools/moderation.d.ts.map +1 -1
  380. package/dist/mcp/tools/moderation.js +4 -3
  381. package/dist/mcp/tools/moderation.js.map +1 -1
  382. package/dist/mcp/tools/polls.d.ts.map +1 -1
  383. package/dist/mcp/tools/polls.js +34 -14
  384. package/dist/mcp/tools/polls.js.map +1 -1
  385. package/dist/mcp/tools/rankings.d.ts.map +1 -1
  386. package/dist/mcp/tools/rankings.js +13 -7
  387. package/dist/mcp/tools/rankings.js.map +1 -1
  388. package/dist/mcp/tools/reactions.d.ts.map +1 -1
  389. package/dist/mcp/tools/reactions.js +3 -2
  390. package/dist/mcp/tools/reactions.js.map +1 -1
  391. package/dist/mcp/tools/review.d.ts.map +1 -1
  392. package/dist/mcp/tools/review.js +15 -18
  393. package/dist/mcp/tools/review.js.map +1 -1
  394. package/dist/mcp/tools/search-tools.d.ts.map +1 -1
  395. package/dist/mcp/tools/search-tools.js +63 -42
  396. package/dist/mcp/tools/search-tools.js.map +1 -1
  397. package/dist/mcp/tools/search.d.ts +69 -48
  398. package/dist/mcp/tools/search.d.ts.map +1 -1
  399. package/dist/mcp/tools/search.js +30 -27
  400. package/dist/mcp/tools/search.js.map +1 -1
  401. package/dist/mcp/tools/searches.d.ts.map +1 -1
  402. package/dist/mcp/tools/searches.js +31 -15
  403. package/dist/mcp/tools/searches.js.map +1 -1
  404. package/dist/mcp/tools/stats.d.ts.map +1 -1
  405. package/dist/mcp/tools/stats.js +6 -6
  406. package/dist/mcp/tools/stats.js.map +1 -1
  407. package/dist/mcp/tools/store.d.ts.map +1 -1
  408. package/dist/mcp/tools/store.js +8 -6
  409. package/dist/mcp/tools/store.js.map +1 -1
  410. package/dist/mcp/tools/tasks.js +12 -10
  411. package/dist/mcp/tools/tasks.js.map +1 -1
  412. package/dist/mcp/tools/topics.d.ts.map +1 -1
  413. package/dist/mcp/tools/topics.js +30 -20
  414. package/dist/mcp/tools/topics.js.map +1 -1
  415. package/dist/meetings/cli/index.d.ts.map +1 -1
  416. package/dist/meetings/cli/index.js +15 -6
  417. package/dist/meetings/cli/index.js.map +1 -1
  418. package/dist/meetings/index.d.ts +2 -0
  419. package/dist/meetings/index.d.ts.map +1 -1
  420. package/dist/meetings/index.js +2 -0
  421. package/dist/meetings/index.js.map +1 -1
  422. package/dist/meetings/item.d.ts +35 -0
  423. package/dist/meetings/item.d.ts.map +1 -0
  424. package/dist/meetings/item.js +59 -0
  425. package/dist/meetings/item.js.map +1 -0
  426. package/dist/meetings/mcp/index.d.ts +90 -25
  427. package/dist/meetings/mcp/index.d.ts.map +1 -1
  428. package/dist/meetings/mcp/index.js +17 -15
  429. package/dist/meetings/mcp/index.js.map +1 -1
  430. package/dist/meetings/reads.d.ts +10 -6
  431. package/dist/meetings/reads.d.ts.map +1 -1
  432. package/dist/meetings/reads.js +37 -1
  433. package/dist/meetings/reads.js.map +1 -1
  434. package/dist/meetings/reference.d.ts +12 -0
  435. package/dist/meetings/reference.d.ts.map +1 -0
  436. package/dist/meetings/reference.js +37 -0
  437. package/dist/meetings/reference.js.map +1 -0
  438. package/dist/meetings/store.d.ts +6 -0
  439. package/dist/meetings/store.d.ts.map +1 -1
  440. package/dist/meetings/testing/contract.d.ts.map +1 -1
  441. package/dist/meetings/testing/contract.js +14 -0
  442. package/dist/meetings/testing/contract.js.map +1 -1
  443. package/dist/meetings/testing/memory.d.ts.map +1 -1
  444. package/dist/meetings/testing/memory.js +10 -1
  445. package/dist/meetings/testing/memory.js.map +1 -1
  446. package/dist/render/markdown.d.ts.map +1 -1
  447. package/dist/render/markdown.js +4 -2
  448. package/dist/render/markdown.js.map +1 -1
  449. package/dist/render/messages.js +4 -2
  450. package/dist/render/messages.js.map +1 -1
  451. package/dist/sends/upload.d.ts.map +1 -1
  452. package/dist/sends/upload.js +7 -1
  453. package/dist/sends/upload.js.map +1 -1
  454. package/dist/services/admin.js +2 -2
  455. package/dist/services/admin.js.map +1 -1
  456. package/dist/services/agenda.d.ts +14 -2
  457. package/dist/services/agenda.d.ts.map +1 -1
  458. package/dist/services/agenda.js +59 -7
  459. package/dist/services/agenda.js.map +1 -1
  460. package/dist/services/attachments.d.ts +18 -21
  461. package/dist/services/attachments.d.ts.map +1 -1
  462. package/dist/services/attachments.js +45 -14
  463. package/dist/services/attachments.js.map +1 -1
  464. package/dist/services/backfill-jobs.d.ts +22 -0
  465. package/dist/services/backfill-jobs.d.ts.map +1 -1
  466. package/dist/services/backfill-jobs.js +19 -0
  467. package/dist/services/backfill-jobs.js.map +1 -1
  468. package/dist/services/chats.d.ts +7 -20
  469. package/dist/services/chats.d.ts.map +1 -1
  470. package/dist/services/chats.js +13 -42
  471. package/dist/services/chats.js.map +1 -1
  472. package/dist/services/document-pictures.d.ts +26 -0
  473. package/dist/services/document-pictures.d.ts.map +1 -0
  474. package/dist/services/document-pictures.js +37 -0
  475. package/dist/services/document-pictures.js.map +1 -0
  476. package/dist/services/inbox.d.ts.map +1 -1
  477. package/dist/services/inbox.js +5 -5
  478. package/dist/services/inbox.js.map +1 -1
  479. package/dist/services/index.d.ts +3 -2
  480. package/dist/services/index.d.ts.map +1 -1
  481. package/dist/services/index.js +2 -1
  482. package/dist/services/index.js.map +1 -1
  483. package/dist/services/messages-search.js +3 -2
  484. package/dist/services/messages-search.js.map +1 -1
  485. package/dist/services/messages.d.ts +4 -0
  486. package/dist/services/messages.d.ts.map +1 -1
  487. package/dist/services/messages.js +1 -0
  488. package/dist/services/messages.js.map +1 -1
  489. package/dist/services/notes-search.d.ts +14 -1
  490. package/dist/services/notes-search.d.ts.map +1 -1
  491. package/dist/services/notes-search.js +46 -1
  492. package/dist/services/notes-search.js.map +1 -1
  493. package/dist/services/people.d.ts +6 -1
  494. package/dist/services/people.d.ts.map +1 -1
  495. package/dist/services/people.js +10 -21
  496. package/dist/services/people.js.map +1 -1
  497. package/dist/services/pictures.d.ts +4 -0
  498. package/dist/services/pictures.d.ts.map +1 -1
  499. package/dist/services/pictures.js +26 -17
  500. package/dist/services/pictures.js.map +1 -1
  501. package/dist/services/retention.d.ts +1 -0
  502. package/dist/services/retention.d.ts.map +1 -1
  503. package/dist/services/retention.js +1 -0
  504. package/dist/services/retention.js.map +1 -1
  505. package/dist/services/search-refresh.d.ts.map +1 -1
  506. package/dist/services/search-refresh.js +7 -6
  507. package/dist/services/search-refresh.js.map +1 -1
  508. package/dist/services/searches.d.ts +7 -2
  509. package/dist/services/searches.d.ts.map +1 -1
  510. package/dist/services/searches.js +16 -3
  511. package/dist/services/searches.js.map +1 -1
  512. package/dist/services/server-search.js +1 -1
  513. package/dist/services/server-search.js.map +1 -1
  514. package/dist/speech/hearing.d.ts +3 -0
  515. package/dist/speech/hearing.d.ts.map +1 -1
  516. package/dist/speech/hearing.js +16 -0
  517. package/dist/speech/hearing.js.map +1 -1
  518. package/dist/store/sqlite/attachment-texts.d.ts +10 -2
  519. package/dist/store/sqlite/attachment-texts.d.ts.map +1 -1
  520. package/dist/store/sqlite/attachment-texts.js +27 -10
  521. package/dist/store/sqlite/attachment-texts.js.map +1 -1
  522. package/dist/store/sqlite/chats.d.ts +34 -0
  523. package/dist/store/sqlite/chats.d.ts.map +1 -1
  524. package/dist/store/sqlite/chats.js +23 -8
  525. package/dist/store/sqlite/chats.js.map +1 -1
  526. package/dist/store/sqlite/completeness.js +2 -2
  527. package/dist/store/sqlite/completeness.js.map +1 -1
  528. package/dist/store/sqlite/conversations.d.ts +1 -1
  529. package/dist/store/sqlite/conversations.d.ts.map +1 -1
  530. package/dist/store/sqlite/conversations.js +1 -2
  531. package/dist/store/sqlite/conversations.js.map +1 -1
  532. package/dist/store/sqlite/document-pictures.d.ts +29 -0
  533. package/dist/store/sqlite/document-pictures.d.ts.map +1 -0
  534. package/dist/store/sqlite/document-pictures.js +81 -0
  535. package/dist/store/sqlite/document-pictures.js.map +1 -0
  536. package/dist/store/sqlite/entity-types.d.ts +1 -0
  537. package/dist/store/sqlite/entity-types.d.ts.map +1 -1
  538. package/dist/store/sqlite/entity-types.js +1 -0
  539. package/dist/store/sqlite/entity-types.js.map +1 -1
  540. package/dist/store/sqlite/identities.d.ts +10 -4
  541. package/dist/store/sqlite/identities.d.ts.map +1 -1
  542. package/dist/store/sqlite/identities.js +8 -7
  543. package/dist/store/sqlite/identities.js.map +1 -1
  544. package/dist/store/sqlite/meetings.d.ts.map +1 -1
  545. package/dist/store/sqlite/meetings.js +20 -0
  546. package/dist/store/sqlite/meetings.js.map +1 -1
  547. package/dist/store/sqlite/note-index.d.ts.map +1 -1
  548. package/dist/store/sqlite/note-index.js +3 -0
  549. package/dist/store/sqlite/note-index.js.map +1 -1
  550. package/dist/store/sqlite/note-search.d.ts +2 -1
  551. package/dist/store/sqlite/note-search.d.ts.map +1 -1
  552. package/dist/store/sqlite/note-search.js +2 -0
  553. package/dist/store/sqlite/note-search.js.map +1 -1
  554. package/dist/store/sqlite/query-filter.d.ts +3 -0
  555. package/dist/store/sqlite/query-filter.d.ts.map +1 -1
  556. package/dist/store/sqlite/query-filter.js +3 -0
  557. package/dist/store/sqlite/query-filter.js.map +1 -1
  558. package/dist/store/sqlite/reads.d.ts +9 -1
  559. package/dist/store/sqlite/reads.d.ts.map +1 -1
  560. package/dist/store/sqlite/reads.js +6 -3
  561. package/dist/store/sqlite/reads.js.map +1 -1
  562. package/dist/store/sqlite/searches.d.ts +1 -1
  563. package/dist/store/sqlite/searches.d.ts.map +1 -1
  564. package/dist/store/sqlite/searches.js +3 -3
  565. package/dist/store/sqlite/searches.js.map +1 -1
  566. package/dist/store/store.d.ts +17 -15
  567. package/dist/store/store.d.ts.map +1 -1
  568. package/dist/store/store.js +10 -6
  569. package/dist/store/store.js.map +1 -1
  570. package/package.json +1 -1
  571. package/parity.json +40 -127
  572. package/dist/cli/messenger/after.d.ts +0 -20
  573. package/dist/cli/messenger/after.d.ts.map +0 -1
  574. package/dist/cli/messenger/after.js +0 -27
  575. package/dist/cli/messenger/after.js.map +0 -1
@@ -3,7 +3,7 @@ import type { Messenger } from "../../cli/messenger/context.js";
3
3
  import type { MessagesService } from "../../services/messages.js";
4
4
  import type { SearchKind } from "../../services/search-kind.js";
5
5
  import type { SearchesService } from "../../services/searches.js";
6
- export declare const MESSAGES_SEARCH_DESCRIPTION = "Use discover=true for partial lexical evidence and eligible replies to natural questions in the local archive, without model downloads; inspect each hit\u2019s discovery.missingTerms and surrounding messages before answering. Explicit syntax stays strict, and ranking is not answer confidence. Search the local store, and the messenger's server where it can search, using the Lucene 9.12.3 profile, default AND, with strict Boolean matching. Legacy discovery is explicit with language=legacy. Text or a versioned AST, account-scoped filters, calendar timezone, term/body regex and candidate presets use one service. Empty hits still report archive coverage. `saved` runs a saved search (searches_list) or an earlier run (searches_history). With sync_first, first fetch new messages within max_chats (5), sync_time (30s), max_messages (500), under messages.sync-first permission. A failed or bounded refresh keeps local results with stale coverage and refreshed details. thread=true attaches each hit's bounded parent/reply graph, with provenance and stale-edge labels; thread_hops, thread_messages, thread_bytes, thread_within set its separate bounds. Guide: https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md. Text words and quoted phrases match every form of their words (Snowball stems, exact forms ranked first, query.stemming says how); exact:word, or exact=true, matches the exact form only. A bare word also matches voice transcripts, file names and file text; each hit's matchedIn says where (text, transcript, filename, file) and its excerpt comes from there; text:, transcript:, content: (file text), filename: narrow to one place. Without discover=true, where the messenger's server can search, it is also asked by default (backend=both; archive for the local store only) within server_time (5s), under messages.server-search: its hits are saved and re-checked by the same strict query, each hit says its source (archive, server, both), and server says what the server step did. coverage says what the archive held: messages and chats searched, chats never fetched or behind, up to ten attention chats, and next \u2014 the command that would improve the answer; when next is set and nothing was found, run it (or ask the owner) before concluding the message does not exist. Returns { items, page, limit, hasMore, corrections, completeness, wordsReady, stemsReady, query, coverage, server? }.";
6
+ export declare const MESSAGES_SEARCH_DESCRIPTION = "Use discover=true for partial lexical evidence and eligible replies to natural questions in the local archive, without model downloads; inspect each item's discovery.missing_terms and its context before answering. Explicit syntax stays strict, and ranking is not answer confidence. Search the local store, and the messenger's server where it can search, using the Lucene 9.12.3 profile, default AND, with strict Boolean matching. Legacy discovery is explicit with language=legacy. chat: narrows to one chat; has:voice, has:file and NOT has:attachment to voice messages, files or text alone. `saved` runs a saved search (searches_list) or an earlier run (searches_history). With sync_first, first fetch new messages within max_chats (5), sync_time (30s), max_messages (500), under messages.sync-first permission. thread=true puts each hit's bounded parent/reply graph in its context; thread_hops, thread_messages, thread_bytes, thread_within set its bounds. Guide: https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md. Text words and quoted phrases match every form of their words (Snowball stems, exact forms ranked first); exact:word, or exact=true, matches the exact form only. A bare word also matches voice transcripts, file names and file text; each item's matched_in says where (text, transcript, filename, file) and its excerpt comes from there; items with matched_in picture follow the text hits on the first page: pictures found by what they show, where the profile turned picture search on; text:, transcript:, content: (file text), filename: narrow to one place. Without discover=true, where the messenger's server can search, it is also asked by default (backend=both; archive for the local store only) within server_time (5s), under messages.server-search: its hits are saved and re-checked by the same strict query, and each item's found_in says archive, server or both. Returns { items, page, next?, missing?, meta }: items are message hits; meta.accounts the accounts read. A missing entry with field coverage means the archive lacks messages: when nothing was found, run its next step (messages sync) or ask the owner before concluding the message does not exist.";
7
7
  export declare const backendInputs: {
8
8
  backend: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<["archive", "server", "both"], undefined>, v.DescriptionAction<"archive" | "both" | "server", "both (default), archive, or the messenger's server; server hits are saved and re-checked by the same strict query, each hit says its source; needs messages.server-search">]>, undefined>;
9
9
  server_time: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.DescriptionAction<string, "how long to wait for the server, default 5s, at most 60s">]>, undefined>;
@@ -17,7 +17,7 @@ export declare const backendArgs: (args: {
17
17
  timeMs: number;
18
18
  } | undefined;
19
19
  };
20
- export declare const offset: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1000, undefined>, v.DescriptionAction<number, "skip this many hits: the nextOffset of the page before">]>, undefined>;
20
+ export declare const page: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>, v.DescriptionAction<number, "which page, from 1: the page a page.next step names">]>, undefined>;
21
21
  export declare const messagesSearchInput: (messenger: Messenger) => v.ObjectSchema<{
22
22
  readonly sync_first: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.DescriptionAction<boolean, "first fetch new messages within the bounds">]>, undefined>;
23
23
  readonly max_chats: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 100, undefined>]>, undefined>;
@@ -30,16 +30,13 @@ export declare const messagesSearchInput: (messenger: Messenger) => v.ObjectSche
30
30
  readonly thread_within: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
31
31
  readonly backend: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<["archive", "server", "both"], undefined>, v.DescriptionAction<"archive" | "both" | "server", "both (default), archive, or the messenger's server; server hits are saved and re-checked by the same strict query, each hit says its source; needs messages.server-search">]>, undefined>;
32
32
  readonly server_time: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.DescriptionAction<string, "how long to wait for the server, default 5s, at most 60s">]>, undefined>;
33
- readonly offset: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1000, undefined>, v.DescriptionAction<number, "skip this many hits: the nextOffset of the page before">]>, undefined>;
34
- readonly detail: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["brief", "full"], undefined>, v.DescriptionAction<"brief" | "full", string>]>, undefined>;
33
+ readonly page: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>, v.DescriptionAction<number, "which page, from 1: the page a page.next step names">]>, undefined>;
35
34
  readonly text: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.DescriptionAction<string, "the query: Lucene text or explicit legacy syntax">]>, undefined>;
36
35
  readonly ast: v.OptionalSchema<v.UnknownSchema, undefined>;
37
36
  readonly discover: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.DescriptionAction<boolean, "partial lexical discovery with eligible replies in the local archive; use for questions when wording is uncertain; hits are evidence, not confirmed answers">]>, undefined>;
38
37
  readonly language: v.OptionalSchema<v.PicklistSchema<["lucene", "legacy"], undefined>, undefined>;
39
38
  readonly timezone: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
40
- readonly chat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.DescriptionAction<string, string>]>, undefined>;
41
39
  readonly source: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.DescriptionAction<string, "a messenger held on this machine; personal, bots or all — as in: in text">]>, undefined>;
42
- readonly type: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<["text", "voice", "file"], undefined>, v.DescriptionAction<"file" | "text" | "voice", "only messages of this type: text alone, a voice message, or a file">]>, undefined>;
43
40
  readonly newest: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.DescriptionAction<boolean, "newest first instead of best first">]>, undefined>;
44
41
  readonly exact: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.DescriptionAction<boolean, "bare words and quotes match their exact form only, as exact:word does; not with an AST">]>, undefined>;
45
42
  readonly context: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 20, undefined>, v.DescriptionAction<number, "messages around each hit">]>, undefined>;
@@ -47,13 +44,11 @@ export declare const messagesSearchInput: (messenger: Messenger) => v.ObjectSche
47
44
  readonly saved: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.DescriptionAction<string, "run a saved search (name) or an earlier run (id); text is AND-ed to it, other arguments replace its own">]>, undefined>;
48
45
  }, undefined>;
49
46
  /** `search_mail`: the mailboxes in the local store; no server, no fetching, no saved searches. */
50
- export declare const mailSearchInput: (messenger: Messenger) => v.ObjectSchema<{
51
- readonly offset: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1000, undefined>, v.DescriptionAction<number, "skip this many hits: the nextOffset of the page before">]>, undefined>;
52
- readonly detail: v.OptionalSchema<v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["brief", "full"], undefined>, v.DescriptionAction<"brief" | "full", string>]>, undefined>;
47
+ export declare const mailSearchInput: () => v.ObjectSchema<{
48
+ readonly page: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>, v.DescriptionAction<number, "which page, from 1: the page a page.next step names">]>, undefined>;
53
49
  readonly text: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.DescriptionAction<string, "the query, in the strict Lucene language">]>, undefined>;
54
50
  readonly ast: v.OptionalSchema<v.UnknownSchema, undefined>;
55
51
  readonly timezone: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
56
- readonly chat: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.DescriptionAction<string, string>]>, undefined>;
57
52
  readonly source: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.DescriptionAction<string, "only these mail accounts, comma-separated: email:<address>, or group:<name>; every one when unset">]>, undefined>;
58
53
  readonly newest: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.DescriptionAction<boolean, "newest first instead of best first">]>, undefined>;
59
54
  readonly exact: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.DescriptionAction<boolean, "bare words and quotes match their exact form only, as exact:word does; not with an AST">]>, undefined>;
@@ -78,33 +73,61 @@ export type MessagesSearchArgs = v.InferOutput<ReturnType<typeof messagesSearchI
78
73
  export declare const answerMessagesSearch: (messages: Pick<MessagesService, "search">, given: MessagesSearchArgs, defaults: {
79
74
  limit: number;
80
75
  signal?: AbortSignal;
81
- }, searches?: Pick<SearchesService, "resolve">, kind?: SearchKind) => Promise<{
82
- items: import("../../services/messages.js").FoundMessage[];
83
- hasMore: boolean;
84
- nextOffset?: number;
85
- refreshed?: import("../../services/search-refresh.js").SearchRefreshed;
86
- server?: import("../../services/server-search.js").ServerSearched;
87
- query?: import("../../services/messages-search.js").QueryMetadata;
88
- coverage?: import("../../services/messages-search.js").SearchCoverage;
89
- skipped?: import("../../search/account-list.js").SkippedSource[];
90
- accounts?: {
91
- resource: "mail";
92
- provider: string;
93
- account: string;
94
- }[];
95
- corrections: {
96
- from: string;
97
- to: string[];
98
- }[];
99
- completeness: (import("../../store/store.js").ChatCompleteness & import("../../store/store.js").AccountKey)[];
100
- wordsReady: boolean;
101
- stemsReady?: boolean;
102
- pictures?: import("../../services/pictures.js").PictureHit[];
103
- picturesSkipped?: string;
104
- page: number;
105
- limit: number;
106
- }>;
107
- export declare const MESSAGES_STATS_DESCRIPTION = "Count what a strict Lucene query matches in the local store, by chat, sender, calendar day or hour (in the timezone). Each message is counted once; no text means every stored message. Words match every form, as in search_messages; exact=true counts exact forms only. Counts are lower bounds where coverage is not complete. sync_first optionally refreshes within max_chats, sync_time and max_messages; failed refreshes keep counts with stale coverage and refreshed details. Returns { by, items: [{ key, name, account?, count }], total, hasMore, page, limit, query, coverage, completeness }.";
76
+ }, searches?: Pick<SearchesService, "resolve">, kind?: SearchKind) => Promise<import("../../cli/envelope.js").ListBody<{
77
+ ref: string;
78
+ chat_title?: string | null | undefined;
79
+ sender_name: string | null;
80
+ timestamp: string;
81
+ excerpt?: string | undefined;
82
+ matched_in?: "context" | "file" | "filename" | "picture" | "text" | "transcript" | undefined;
83
+ score?: number | undefined;
84
+ found_in?: "archive" | "both" | "server" | undefined;
85
+ discovery?: {
86
+ coverage: number;
87
+ matched_terms: string[];
88
+ missing_terms: string[];
89
+ parent?: string | undefined;
90
+ } | undefined;
91
+ context?: {
92
+ ref: string;
93
+ timestamp: string;
94
+ sender_name: string | null;
95
+ text: string;
96
+ }[] | undefined;
97
+ email?: {
98
+ subject: string | null;
99
+ from: {
100
+ name: string | null;
101
+ address: string;
102
+ ref: string | null;
103
+ } | null;
104
+ to: {
105
+ name: string | null;
106
+ address: string;
107
+ ref: string | null;
108
+ }[];
109
+ cc: {
110
+ name: string | null;
111
+ address: string;
112
+ ref: string | null;
113
+ }[];
114
+ bcc: {
115
+ name: string | null;
116
+ address: string;
117
+ ref: string | null;
118
+ }[];
119
+ reply_addresses: {
120
+ name: string | null;
121
+ address: string;
122
+ ref: string | null;
123
+ }[];
124
+ labels: string[];
125
+ thread: string;
126
+ read: boolean | null;
127
+ flagged: boolean | null;
128
+ } | undefined;
129
+ }>>;
130
+ export declare const MESSAGES_STATS_DESCRIPTION = "Count what a strict Lucene query matches in the local store, by chat, sender, calendar day or hour (in the timezone). Each message is counted once; no text means every stored message. Words match every form, as in search_messages; exact=true counts exact forms only. Counts are lower bounds where coverage is not complete. sync_first optionally refreshes within max_chats, sync_time and max_messages; failed refreshes keep counts with stale coverage and refreshed details. Returns { item: { by, total, rows: [{ key, ref?, name, count }] } }; meta.truncated marks more rows than limit, and missing names a chat the store does not hold whole.";
108
131
  export declare const messagesStatsInput: (messenger: Messenger) => v.ObjectSchema<{
109
132
  readonly sync_first: v.OptionalSchema<v.SchemaWithPipe<readonly [v.BooleanSchema<undefined>, v.DescriptionAction<boolean, "first fetch new messages within the bounds">]>, undefined>;
110
133
  readonly max_chats: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 100, undefined>]>, undefined>;
@@ -123,16 +146,14 @@ export declare const messagesStatsInput: (messenger: Messenger) => v.ObjectSchem
123
146
  export declare const answerMessagesStats: (messages: Pick<MessagesService, "stats">, args: v.InferOutput<ReturnType<typeof messagesStatsInput>>, defaults: {
124
147
  limit: number;
125
148
  signal?: AbortSignal;
126
- }, searches?: Pick<SearchesService, "resolve">) => Promise<{
127
- refreshed?: import("../../services/search-refresh.js").SearchRefreshed;
128
- by: import("../../services/messages-search.js").StatsGrouping;
129
- items: import("../../services/messages-search.js").StatsRow[];
149
+ }, searches?: Pick<SearchesService, "resolve">) => Promise<import("../../cli/envelope.js").ItemBody<{
150
+ by: "chat" | "day" | "hour" | "sender";
130
151
  total: number;
131
- hasMore: boolean;
132
- query: import("../../services/messages-search.js").QueryMetadata;
133
- coverage: import("../../services/messages-search.js").SearchCoverage;
134
- completeness: (import("../../store/store.js").ChatCompleteness & import("../../store/store.js").AccountKey)[];
135
- page: number;
136
- limit: number;
137
- }>;
152
+ rows: {
153
+ key: string;
154
+ ref?: string | undefined;
155
+ name: string | null;
156
+ count: number;
157
+ }[];
158
+ }>>;
138
159
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,4BAA4B,CAAA;AAO/E,eAAO,MAAM,2BAA2B,o4EACi1E,CAAA;AAEz3E,eAAO,MAAM,aAAa;IACxB,OAAO;IAQP,WAAW;CAGZ,CAAA;AAED,eAAO,MAAM,WAAW,SAAU;IAAE,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;CAGjG,CAAA;AAEF,eAAO,MAAM,MAAM,mSAQlB,CAAA;AAED,eAAO,MAAM,mBAAmB,cAAe,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;aAyDpD,CAAA;AAEJ,kGAAkG;AAClG,eAAO,MAAM,eAAe,cAAe,SAAS;;;;;;;;;;;;aA+BhD,CAAA;AAEJ,eAAO,MAAM,QAAQ,SAAU;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;;;;;;;;CASO,CAAA;AAER,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;AAyBtF,eAAO,MAAM,oBAAoB,aACrB,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,SAClC,kBAAkB,YACf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,aACtC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,SACrC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;EAuDjB,CAAA;AAED,eAAO,MAAM,0BAA0B,klBAC0iB,CAAA;AAEjlB,eAAO,MAAM,kBAAkB,cAAe,SAAS;;;;;;;;;;;;;;aA0BnD,CAAA;AAEJ,eAAO,MAAM,mBAAmB,aACpB,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,QAClC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,YAChD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,aACtC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;;;;;;;;;;;EAyB5C,CAAA"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,4BAA4B,CAAA;AAE9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,4BAA4B,CAAA;AAO/E,eAAO,MAAM,2BAA2B,oqEAC2nE,CAAA;AAEnqE,eAAO,MAAM,aAAa;IACxB,OAAO;IAQP,WAAW;CAGZ,CAAA;AAED,eAAO,MAAM,WAAW,SAAU;IAAE,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;CAGjG,CAAA;AAEF,eAAO,MAAM,IAAI,gSAQhB,CAAA;AAED,eAAO,MAAM,mBAAmB,cAAe,SAAS;;;;;;;;;;;;;;;;;;;;;;;;aAyCpD,CAAA;AAEJ,kGAAkG;AAClG,eAAO,MAAM,eAAe;;;;;;;;;;aAqBxB,CAAA;AAEJ,eAAO,MAAM,QAAQ,SAAU;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;;;;;;;;CASO,CAAA;AAER,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;AAyBtF,eAAO,MAAM,oBAAoB,aACrB,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,SAClC,kBAAkB,YACf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,aACtC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,SACrC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DjB,CAAA;AAED,eAAO,MAAM,0BAA0B,qoBAC6lB,CAAA;AAEpoB,eAAO,MAAM,kBAAkB,cAAe,SAAS;;;;;;;;;;;;;;aA0BnD,CAAA;AAEJ,eAAO,MAAM,mBAAmB,aACpB,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,QAClC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,YAChD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,aACtC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;;;;;;;;;GAyB5C,CAAA"}
@@ -1,13 +1,14 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import * as v from "valibot";
3
+ import { messagesAnswer, offsetOf } from "../../cli/messenger/search-answers.js";
4
+ import { countsAnswer } from "../../cli/messenger/stats-answers.js";
3
5
  import { parseDuration } from "../../cli/settings.js";
4
- import { DETAILS } from "../../output-detail.js";
5
6
  import { MAX_SEARCH_OFFSET } from "../../services/messages.js";
6
7
  import { syncInputs } from "../search-sync.js";
7
8
  import { threadArgs, threadInputs } from "../thread-options.js";
8
9
  import { chatOf, limit } from "../tool.js";
9
10
  const EXACT = "bare words and quotes match their exact form only, as exact:word does; not with an AST";
10
- export const MESSAGES_SEARCH_DESCRIPTION = "Use discover=true for partial lexical evidence and eligible replies to natural questions in the local archive, without model downloads; inspect each hit’s discovery.missingTerms and surrounding messages before answering. Explicit syntax stays strict, and ranking is not answer confidence. Search the local store, and the messenger's server where it can search, using the Lucene 9.12.3 profile, default AND, with strict Boolean matching. Legacy discovery is explicit with language=legacy. Text or a versioned AST, account-scoped filters, calendar timezone, term/body regex and candidate presets use one service. Empty hits still report archive coverage. `saved` runs a saved search (searches_list) or an earlier run (searches_history). With sync_first, first fetch new messages within max_chats (5), sync_time (30s), max_messages (500), under messages.sync-first permission. A failed or bounded refresh keeps local results with stale coverage and refreshed details. thread=true attaches each hit's bounded parent/reply graph, with provenance and stale-edge labels; thread_hops, thread_messages, thread_bytes, thread_within set its separate bounds. Guide: https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md. Text words and quoted phrases match every form of their words (Snowball stems, exact forms ranked first, query.stemming says how); exact:word, or exact=true, matches the exact form only. A bare word also matches voice transcripts, file names and file text; each hit's matchedIn says where (text, transcript, filename, file) and its excerpt comes from there; text:, transcript:, content: (file text), filename: narrow to one place. Without discover=true, where the messenger's server can search, it is also asked by default (backend=both; archive for the local store only) within server_time (5s), under messages.server-search: its hits are saved and re-checked by the same strict query, each hit says its source (archive, server, both), and server says what the server step did. coverage says what the archive held: messages and chats searched, chats never fetched or behind, up to ten attention chats, and next — the command that would improve the answer; when next is set and nothing was found, run it (or ask the owner) before concluding the message does not exist. Returns { items, page, limit, hasMore, corrections, completeness, wordsReady, stemsReady, query, coverage, server? }.";
11
+ export const MESSAGES_SEARCH_DESCRIPTION = "Use discover=true for partial lexical evidence and eligible replies to natural questions in the local archive, without model downloads; inspect each item's discovery.missing_terms and its context before answering. Explicit syntax stays strict, and ranking is not answer confidence. Search the local store, and the messenger's server where it can search, using the Lucene 9.12.3 profile, default AND, with strict Boolean matching. Legacy discovery is explicit with language=legacy. chat: narrows to one chat; has:voice, has:file and NOT has:attachment to voice messages, files or text alone. `saved` runs a saved search (searches_list) or an earlier run (searches_history). With sync_first, first fetch new messages within max_chats (5), sync_time (30s), max_messages (500), under messages.sync-first permission. thread=true puts each hit's bounded parent/reply graph in its context; thread_hops, thread_messages, thread_bytes, thread_within set its bounds. Guide: https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md. Text words and quoted phrases match every form of their words (Snowball stems, exact forms ranked first); exact:word, or exact=true, matches the exact form only. A bare word also matches voice transcripts, file names and file text; each item's matched_in says where (text, transcript, filename, file) and its excerpt comes from there; items with matched_in picture follow the text hits on the first page: pictures found by what they show, where the profile turned picture search on; text:, transcript:, content: (file text), filename: narrow to one place. Without discover=true, where the messenger's server can search, it is also asked by default (backend=both; archive for the local store only) within server_time (5s), under messages.server-search: its hits are saved and re-checked by the same strict query, and each item's found_in says archive, server or both. Returns { items, page, next?, missing?, meta }: items are message hits; meta.accounts the accounts read. A missing entry with field coverage means the archive lacks messages: when nothing was found, run its next step (messages sync) or ask the owner before concluding the message does not exist.";
11
12
  export const backendInputs = {
12
13
  backend: v.optional(v.pipe(v.picklist(["archive", "server", "both"]), v.description("both (default), archive, or the messenger's server; server hits are saved and re-checked by the same strict query, each hit says its source; needs messages.server-search"))),
13
14
  server_time: v.optional(v.pipe(v.string(), v.description("how long to wait for the server, default 5s, at most 60s"))),
@@ -16,11 +17,9 @@ export const backendArgs = (args) => ({
16
17
  ...(args.backend === undefined ? {} : { backend: args.backend }),
17
18
  ...(args.server_time === undefined ? {} : { server: { timeMs: parseDuration(args.server_time, "server_time") } }),
18
19
  });
19
- export const offset = v.optional(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(MAX_SEARCH_OFFSET), v.description("skip this many hits: the nextOffset of the page before")));
20
+ export const page = v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(MAX_SEARCH_OFFSET), v.description("which page, from 1: the page a page.next step names")));
20
21
  export const messagesSearchInput = (messenger) => v.object({
21
- offset,
22
- detail: v.optional(v.pipe(v.picklist(DETAILS), v.description("brief: reference, title, time, sender and excerpt only; full: the whole text and every provider field; " +
23
- "unset: people, thread, labels and an excerpt"))),
22
+ page,
24
23
  // Typed as present so the answer code reads them; offered only where the server can search.
25
24
  ...(messenger.serverSearch ? backendInputs : {}),
26
25
  ...threadInputs,
@@ -30,9 +29,7 @@ export const messagesSearchInput = (messenger) => v.object({
30
29
  discover: v.optional(v.pipe(v.boolean(), v.description("partial lexical discovery with eligible replies in the local archive; use for questions when wording is uncertain; hits are evidence, not confirmed answers"))),
31
30
  language: v.optional(v.picklist(["lucene", "legacy"])),
32
31
  timezone: v.optional(v.string()),
33
- chat: v.optional(chatOf(messenger)),
34
32
  source: v.optional(v.pipe(v.string(), v.minLength(1), v.description("a messenger held on this machine; personal, bots or all — as in: in text"))),
35
- type: v.optional(v.pipe(v.picklist(["text", "voice", "file"]), v.description("only messages of this type: text alone, a voice message, or a file"))),
36
33
  newest: v.optional(v.pipe(v.boolean(), v.description("newest first instead of best first"))),
37
34
  exact: v.optional(v.pipe(v.boolean(), v.description(EXACT))),
38
35
  context: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(20), v.description("messages around each hit"))),
@@ -40,14 +37,11 @@ export const messagesSearchInput = (messenger) => v.object({
40
37
  saved: v.optional(v.pipe(v.string(), v.minLength(1), v.description("run a saved search (name) or an earlier run (id); text is AND-ed to it, other arguments replace its own"))),
41
38
  });
42
39
  /** `search_mail`: the mailboxes in the local store; no server, no fetching, no saved searches. */
43
- export const mailSearchInput = (messenger) => v.object({
44
- offset,
45
- detail: v.optional(v.pipe(v.picklist(DETAILS), v.description("brief: reference, title, time, sender and excerpt only; full: the whole text and every provider field; " +
46
- "unset: people, thread, labels and an excerpt"))),
40
+ export const mailSearchInput = () => v.object({
41
+ page,
47
42
  text: v.optional(v.pipe(v.string(), v.description("the query, in the strict Lucene language"))),
48
43
  ast: v.optional(v.unknown()),
49
44
  timezone: v.optional(v.string()),
50
- chat: v.optional(chatOf(messenger)),
51
45
  source: v.optional(v.pipe(v.string(), v.minLength(1), v.description("only these mail accounts, comma-separated: email:<address>, or group:<name>; every one when unset"))),
52
46
  newest: v.optional(v.pipe(v.boolean(), v.description("newest first instead of best first"))),
53
47
  exact: v.optional(v.pipe(v.boolean(), v.description(EXACT))),
@@ -63,7 +57,7 @@ export const syncArgs = (args) => args.sync_first
63
57
  },
64
58
  }
65
59
  : {};
66
- const typedOf = (args) => Object.fromEntries(["text", "discover", "language", "timezone", "chat", "source", "newest", "exact", "context", "limit", "by"].flatMap((key) => (args[key] === undefined ? [] : [[key, args[key]]])));
60
+ const typedOf = (args) => Object.fromEntries(["text", "discover", "language", "timezone", "source", "newest", "exact", "context", "limit", "by"].flatMap((key) => (args[key] === undefined ? [] : [[key, args[key]]])));
67
61
  /** `saved` needs the searches service; a host that mounts the tool without it refuses `saved` rather than ignore it. */
68
62
  const resolveSaved = async (searches, args) => {
69
63
  if (args.saved === undefined)
@@ -74,13 +68,23 @@ const resolveSaved = async (searches, args) => {
74
68
  throw new CliError("validation_error", "with saved, give more words as text, not an AST");
75
69
  return searches.resolve(args.saved, typedOf(args));
76
70
  };
77
- const TYPES = { text: "NOT has:attachment", voice: "has:voice", file: "has:file" };
78
- const withType = (text, type) => type === undefined ? text : text === undefined ? TYPES[type] : `(${text}) AND ${TYPES[type]}`;
71
+ const offsetArg = (page, limit) => {
72
+ const offset = offsetOf(page, limit);
73
+ return offset === undefined ? {} : { offset };
74
+ };
79
75
  export const answerMessagesSearch = async (messages, given, defaults, searches, kind = "messages") => {
80
- if (given.type !== undefined && given.ast !== undefined)
81
- throw new CliError("validation_error", "type narrows text; an AST names its own fields");
82
- const text = withType(given.text, given.type);
83
- const args = { ...given, ...(text === undefined ? {} : { text }) };
76
+ const args = given;
77
+ const again = {
78
+ ...(args.text === undefined ? {} : { query: args.text }),
79
+ ...(args.saved === undefined ? {} : { saved: args.saved }),
80
+ ...(args.source === undefined ? {} : { source: args.source }),
81
+ ...(args.discover ? { discover: true } : {}),
82
+ ...(args.language === undefined ? {} : { language: args.language }),
83
+ ...(args.exact ? { exact: true } : {}),
84
+ ...(args.newest ? { newest: true } : {}),
85
+ ...(args.timezone === undefined ? {} : { timezone: args.timezone }),
86
+ };
87
+ const answer = (found, limit) => messagesAnswer(`search ${kind}`, found, { limit, page: args.page ?? 1, again }, args.text);
84
88
  const resolved = await resolveSaved(searches, args);
85
89
  if (resolved) {
86
90
  const { params, pattern } = resolved;
@@ -97,7 +101,7 @@ export const answerMessagesSearch = async (messages, given, defaults, searches,
97
101
  signal: defaults.signal,
98
102
  ...(params.timezone === undefined ? {} : { timezone: params.timezone }),
99
103
  limit: size,
100
- ...(args.offset === undefined ? {} : { offset: args.offset }),
104
+ ...offsetArg(args.page, size),
101
105
  newest: params.newest === true,
102
106
  ...(params.exact ? { exact: true } : {}),
103
107
  context: params.context ?? 0,
@@ -105,7 +109,7 @@ export const answerMessagesSearch = async (messages, given, defaults, searches,
105
109
  ...(params.source === undefined ? {} : { source: params.source }),
106
110
  saved: resolved.id,
107
111
  });
108
- return { ...found, page: 1, limit: size };
112
+ return answer(found, size);
109
113
  }
110
114
  if (args.text === undefined && args.ast === undefined)
111
115
  throw new CliError("validation_error", "give search text, a versioned AST, or saved");
@@ -122,16 +126,15 @@ export const answerMessagesSearch = async (messages, given, defaults, searches,
122
126
  signal: defaults.signal,
123
127
  ...(args.timezone === undefined ? {} : { timezone: args.timezone }),
124
128
  limit: size,
125
- ...(args.offset === undefined ? {} : { offset: args.offset }),
129
+ ...offsetArg(args.page, size),
126
130
  newest: args.newest === true,
127
131
  ...(args.exact ? { exact: true } : {}),
128
132
  context: args.context ?? 0,
129
- ...(args.chat === undefined ? {} : { chat: args.chat }),
130
133
  ...(args.source === undefined ? {} : { source: args.source }),
131
134
  });
132
- return { ...found, page: 1, limit: size };
135
+ return answer(found, size);
133
136
  };
134
- export const MESSAGES_STATS_DESCRIPTION = "Count what a strict Lucene query matches in the local store, by chat, sender, calendar day or hour (in the timezone). Each message is counted once; no text means every stored message. Words match every form, as in search_messages; exact=true counts exact forms only. Counts are lower bounds where coverage is not complete. sync_first optionally refreshes within max_chats, sync_time and max_messages; failed refreshes keep counts with stale coverage and refreshed details. Returns { by, items: [{ key, name, account?, count }], total, hasMore, page, limit, query, coverage, completeness }.";
137
+ export const MESSAGES_STATS_DESCRIPTION = "Count what a strict Lucene query matches in the local store, by chat, sender, calendar day or hour (in the timezone). Each message is counted once; no text means every stored message. Words match every form, as in search_messages; exact=true counts exact forms only. Counts are lower bounds where coverage is not complete. sync_first optionally refreshes within max_chats, sync_time and max_messages; failed refreshes keep counts with stale coverage and refreshed details. Returns { item: { by, total, rows: [{ key, ref?, name, count }] } }; meta.truncated marks more rows than limit, and missing names a chat the store does not hold whole.";
135
138
  export const messagesStatsInput = (messenger) => v.object({
136
139
  ...syncInputs,
137
140
  text: v.optional(v.pipe(v.string(), v.minLength(1), v.description("a strict Lucene query; omit to count all"))),
@@ -164,6 +167,6 @@ export const answerMessagesStats = async (messages, args, defaults, searches) =>
164
167
  ...(params.source === undefined ? {} : { source: params.source }),
165
168
  ...(resolved ? { saved: resolved.id } : {}),
166
169
  });
167
- return { ...stats, page: 1, limit: size };
170
+ return countsAnswer(stats);
168
171
  };
169
172
  //# sourceMappingURL=search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/mcp/tools/search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"searches.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/searches.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAO/D,OAAO,EAAE,KAAK,OAAO,EAA6B,MAAM,YAAY,CAAA;AAUpE,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA+F1E,CAAA"}
1
+ {"version":3,"file":"searches.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/searches.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAO/D,OAAO,EAAE,KAAK,OAAO,EAA2C,MAAM,YAAY,CAAA;AASlF,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAsH1E,CAAA"}
@@ -1,39 +1,50 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import * as v from "valibot";
3
- import { listed } from "../../cli/paging.js";
3
+ import { itemOf, listOf } from "../../cli/envelope.js";
4
4
  import { isAdminSelection } from "../../services/admin-statistics.js";
5
5
  import { servicesFor, storedDeps } from "../../services/index.js";
6
6
  import { readRankingSelection } from "../../services/rankings-selection.js";
7
- import { chatOf, limit, READ, tool } from "../tool.js";
7
+ import { savedSearchItem } from "../../services/searches.js";
8
+ import { chatOf, limit, page, paging, READ, tool } from "../tool.js";
8
9
  const LOCAL = { readOnlyHint: false, openWorldHint: false };
9
- const ROW = "{ id, name, command, params, language, version, fieldsVersion, createdAt, lastRunAt, runs }";
10
10
  const reference = v.pipe(v.string(), v.minLength(1), v.description("a saved search's name, or the id of any row of searches_history"));
11
11
  export const searchesTools = (messenger) => {
12
12
  const services = (store, account, guard) => servicesFor(storedDeps(messenger, store, account, guard));
13
13
  return {
14
14
  searches_list: tool({
15
15
  title: "List saved searches",
16
- description: `The saved searches, by name; search_messages and stats_messages_show run one with \`saved\`. Returns { items: [${ROW}], page, limit, hasMore }.`,
16
+ description: "The saved searches, by name; search_messages and stats_messages_show run one with `saved`.",
17
17
  input: v.object({}),
18
18
  annotations: { ...READ, openWorldHint: false },
19
- stored: async (store, account, _args, defaults) => listed(await services(store, account, defaults.guard).searches.list()),
19
+ output: { entity: "saved_search", list: true },
20
+ stored: async (store, account, _args, defaults) => {
21
+ const items = (await services(store, account, defaults.guard).searches.list()).map(savedSearchItem);
22
+ return listOf("searches list", { items, limit: Math.max(1, items.length), has_more: false });
23
+ },
20
24
  }),
21
25
  searches_history: tool({
22
26
  title: "Search history",
23
27
  description: "The searches and counts that ran, newest first, saved ones included: the query and options as given, " +
24
- `never the results. \`saved\` with an id runs one again. Returns { items: [${ROW}], page, limit, hasMore }.`,
25
- input: v.object({ limit }),
28
+ "never the results. `saved` with an id runs one again.",
29
+ input: v.object({ limit, page }),
26
30
  annotations: { ...READ, openWorldHint: false },
31
+ output: { entity: "saved_search", list: true },
27
32
  stored: async (store, account, args, defaults) => {
28
- const size = args.limit ?? defaults.limit;
29
- return { ...(await services(store, account, defaults.guard).searches.history(size)), page: 1, limit: size };
33
+ const { size, number, window } = paging(args, defaults);
34
+ const found = await services(store, account, defaults.guard).searches.history(window.limit, window.offset);
35
+ return listOf("searches history", {
36
+ items: found.items.map(savedSearchItem),
37
+ limit: size,
38
+ has_more: found.has_more,
39
+ page: number,
40
+ });
30
41
  },
31
42
  }),
32
43
  searches_create: tool({
33
44
  title: "Save a search",
34
45
  description: "Saves a search under a name without running it; the query is checked against today's fields. Takes " +
35
46
  "search_messages's arguments, plus `by` for stats_messages_show. A taken name is refused unless `replace`. " +
36
- `Writes only to the local store. Returns ${ROW}.`,
47
+ "Writes only to the local store.",
37
48
  input: v.object({
38
49
  name: v.pipe(v.string(), v.minLength(1), v.description("up to 64 letters a–z, digits and hyphens")),
39
50
  text: v.optional(v.pipe(v.string(), v.minLength(1), v.description("the query: Lucene text or legacy syntax"))),
@@ -50,31 +61,36 @@ export const searchesTools = (messenger) => {
50
61
  replace: v.optional(v.pipe(v.boolean(), v.description("overwrite a saved search of the same name"))),
51
62
  }),
52
63
  annotations: { ...LOCAL, destructiveHint: false, idempotentHint: false },
64
+ output: { entity: "saved_search", list: false },
53
65
  stored: async (store, account, { name, replace, ...params }, defaults) => {
54
66
  if (params.selection !== undefined) {
55
67
  if (Object.entries(params).some(([key, value]) => key !== "selection" && value !== undefined))
56
68
  throw new CliError("validation_error", "with selection, save the resolved ranking query without additional options");
57
69
  if (isAdminSelection(params.selection))
58
- return services(store, account, defaults.guard).searches.create(name, params, { replace: replace === true });
70
+ return itemOf(savedSearchItem(await services(store, account, defaults.guard).searches.create(name, params, {
71
+ replace: replace === true,
72
+ })));
59
73
  const selection = await readRankingSelection(store, params.selection);
60
- return services(store, account, defaults.guard).searches.create(name, {
74
+ const saved = await services(store, account, defaults.guard).searches.create(name, {
61
75
  selection,
62
76
  target: selection.target,
63
77
  ...selection.options,
64
78
  timezone: selection.timezone,
65
79
  language: "lucene",
66
80
  }, { replace: replace === true });
81
+ return itemOf(savedSearchItem(saved));
67
82
  }
68
- return services(store, account, defaults.guard).searches.create(name, params, { replace: replace === true });
83
+ return itemOf(savedSearchItem(await services(store, account, defaults.guard).searches.create(name, params, { replace: replace === true })));
69
84
  },
70
85
  }),
71
86
  searches_delete: tool({
72
87
  title: "Delete a saved search",
73
- description: `Deletes a saved search, or one run from the history. Writes only to the local store. Returns ${ROW}.`,
88
+ description: "Deletes a saved search, or one run from the history. Writes only to the local store.",
74
89
  input: v.object({ name: reference }),
75
90
  annotations: { ...LOCAL, destructiveHint: true, idempotentHint: false },
91
+ output: { entity: "saved_search", list: false },
76
92
  stored: async (store, account, args, defaults) => {
77
- return services(store, account, defaults.guard).searches.delete(args.name);
93
+ return itemOf(savedSearchItem(await services(store, account, defaults.guard).searches.delete(args.name)));
78
94
  },
79
95
  }),
80
96
  searches_clear: tool({
@@ -1 +1 @@
1
- {"version":3,"file":"searches.js","sourceRoot":"","sources":["../../../src/mcp/tools/searches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"searches.js","sourceRoot":"","sources":["../../../src/mcp/tools/searches.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/stats.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,KAAK,OAAO,EAA+B,MAAM,YAAY,CAAA;AAEtE,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAkCtE,CAAA"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/stats.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAI/D,OAAO,EAAE,KAAK,OAAO,EAA+B,MAAM,YAAY,CAAA;AAEtE,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgCtE,CAAA"}
@@ -4,13 +4,15 @@ import { chatChart } from "../../charts/chat.js";
4
4
  import { CHART_KINDS, CHART_SIZE } from "../../charts/model.js";
5
5
  import { chartPng } from "../../charts/png.js";
6
6
  import { chartRenderer } from "../../charts/render.js";
7
+ import { sealed } from "../../cli/envelope.js";
8
+ import { chartAnswer } from "../../cli/messenger/stats-answers.js";
7
9
  import { servicesFor, storedDeps } from "../../services/index.js";
8
10
  import { momentOf } from "../../services/moment.js";
9
11
  import { chatOf, Picture, READ, tool } from "../tool.js";
10
12
  export const statsTools = (messenger) => ({
11
13
  stats_charts: tool({
12
14
  title: "A chart from a chat's statistics",
13
- description: "A neutral chart description as JSON, or a dark PNG image with that JSON when format is png: " +
15
+ description: "A neutral chart description as JSON, or a dark PNG image beside that JSON when format is png: " +
14
16
  "messages or active authors per day or week, from the local store. " +
15
17
  "Missing dates are gaps, and partial marks lower bounds. Membership needs online events and is unavailable here. " +
16
18
  "No image file is written and no messenger connection is opened.",
@@ -23,6 +25,7 @@ export const statsTools = (messenger) => ({
23
25
  format: v.optional(v.pipe(v.picklist(["json", "png"]), v.description("JSON by default; png adds image content"))),
24
26
  }),
25
27
  annotations: { ...READ, openWorldHint: false },
28
+ output: { entity: "chart", list: false },
26
29
  stored: async (store, account, args, defaults) => {
27
30
  const timezone = timezoneOf(args.timezone);
28
31
  const by = args.by ?? "day";
@@ -33,12 +36,9 @@ export const statsTools = (messenger) => ({
33
36
  });
34
37
  const chart = chatChart(stats, { kind: args.chart_kind ?? "messages", by, timezone });
35
38
  if (args.format !== "png")
36
- return { chart };
39
+ return chartAnswer(chart);
37
40
  const image = await chartPng(await (await chartRenderer()).render(chart, CHART_SIZE));
38
- return new Picture(image.bytes, image.mimeType, {
39
- chart,
40
- image: { format: image.format, width: image.width, height: image.height },
41
- });
41
+ return new Picture(image.bytes, image.mimeType, sealed(chartAnswer(chart)));
42
42
  },
43
43
  }),
44
44
  });