@wirecat/max-cli 0.0.0 → 0.43.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 (546) hide show
  1. package/LICENSE +204 -0
  2. package/README.md +531 -0
  3. package/dist/adapter/max-adapter.d.ts +17 -0
  4. package/dist/adapter/max-adapter.d.ts.map +1 -0
  5. package/dist/adapter/max-adapter.js +364 -0
  6. package/dist/adapter/max-adapter.js.map +1 -0
  7. package/dist/app.d.ts +3 -0
  8. package/dist/app.d.ts.map +1 -0
  9. package/dist/app.js +9 -0
  10. package/dist/app.js.map +1 -0
  11. package/dist/bin/max.d.ts +3 -0
  12. package/dist/bin/max.d.ts.map +1 -0
  13. package/dist/bin/max.js +20 -0
  14. package/dist/bin/max.js.map +1 -0
  15. package/dist/bot/adapter.d.ts +25 -0
  16. package/dist/bot/adapter.d.ts.map +1 -0
  17. package/dist/bot/adapter.js +404 -0
  18. package/dist/bot/adapter.js.map +1 -0
  19. package/dist/bot/auth.d.ts +13 -0
  20. package/dist/bot/auth.d.ts.map +1 -0
  21. package/dist/bot/auth.js +9 -0
  22. package/dist/bot/auth.js.map +1 -0
  23. package/dist/bot/client.d.ts +26 -0
  24. package/dist/bot/client.d.ts.map +1 -0
  25. package/dist/bot/client.js +105 -0
  26. package/dist/bot/client.js.map +1 -0
  27. package/dist/bot/generated/manifest.d.ts +3 -0
  28. package/dist/bot/generated/manifest.d.ts.map +1 -0
  29. package/dist/bot/generated/manifest.js +1232 -0
  30. package/dist/bot/generated/manifest.js.map +1 -0
  31. package/dist/bot/generated/schemas.d.ts +271 -0
  32. package/dist/bot/generated/schemas.d.ts.map +1 -0
  33. package/dist/bot/generated/schemas.js +869 -0
  34. package/dist/bot/generated/schemas.js.map +1 -0
  35. package/dist/bot/generated/types.d.ts +1088 -0
  36. package/dist/bot/generated/types.d.ts.map +1 -0
  37. package/dist/bot/generated/types.js +5 -0
  38. package/dist/bot/generated/types.js.map +1 -0
  39. package/dist/bot/input.d.ts +6 -0
  40. package/dist/bot/input.d.ts.map +1 -0
  41. package/dist/bot/input.js +6 -0
  42. package/dist/bot/input.js.map +1 -0
  43. package/dist/bot/joins.d.ts +26 -0
  44. package/dist/bot/joins.d.ts.map +1 -0
  45. package/dist/bot/joins.js +56 -0
  46. package/dist/bot/joins.js.map +1 -0
  47. package/dist/bot/keep.d.ts +25 -0
  48. package/dist/bot/keep.d.ts.map +1 -0
  49. package/dist/bot/keep.js +98 -0
  50. package/dist/bot/keep.js.map +1 -0
  51. package/dist/bot/map.d.ts +14 -0
  52. package/dist/bot/map.d.ts.map +1 -0
  53. package/dist/bot/map.js +101 -0
  54. package/dist/bot/map.js.map +1 -0
  55. package/dist/bot/mcp-tools.d.ts +4 -0
  56. package/dist/bot/mcp-tools.d.ts.map +1 -0
  57. package/dist/bot/mcp-tools.js +78 -0
  58. package/dist/bot/mcp-tools.js.map +1 -0
  59. package/dist/bot/permissions.d.ts +14 -0
  60. package/dist/bot/permissions.d.ts.map +1 -0
  61. package/dist/bot/permissions.js +88 -0
  62. package/dist/bot/permissions.js.map +1 -0
  63. package/dist/bot/registry.d.ts +11 -0
  64. package/dist/bot/registry.d.ts.map +1 -0
  65. package/dist/bot/registry.js +13 -0
  66. package/dist/bot/registry.js.map +1 -0
  67. package/dist/bot/russian-trusted-root.d.ts +8 -0
  68. package/dist/bot/russian-trusted-root.d.ts.map +1 -0
  69. package/dist/bot/russian-trusted-root.js +41 -0
  70. package/dist/bot/russian-trusted-root.js.map +1 -0
  71. package/dist/bot/transport.d.ts +46 -0
  72. package/dist/bot/transport.d.ts.map +1 -0
  73. package/dist/bot/transport.js +252 -0
  74. package/dist/bot/transport.js.map +1 -0
  75. package/dist/bot/uploads.d.ts +42 -0
  76. package/dist/bot/uploads.d.ts.map +1 -0
  77. package/dist/bot/uploads.js +145 -0
  78. package/dist/bot/uploads.js.map +1 -0
  79. package/dist/client.d.ts +650 -0
  80. package/dist/client.d.ts.map +1 -0
  81. package/dist/client.js +2836 -0
  82. package/dist/client.js.map +1 -0
  83. package/dist/commands/account.d.ts +3 -0
  84. package/dist/commands/account.d.ts.map +1 -0
  85. package/dist/commands/account.js +4 -0
  86. package/dist/commands/account.js.map +1 -0
  87. package/dist/commands/bot-comments.d.ts +3 -0
  88. package/dist/commands/bot-comments.d.ts.map +1 -0
  89. package/dist/commands/bot-comments.js +74 -0
  90. package/dist/commands/bot-comments.js.map +1 -0
  91. package/dist/commands/bot-context.d.ts +38 -0
  92. package/dist/commands/bot-context.d.ts.map +1 -0
  93. package/dist/commands/bot-context.js +121 -0
  94. package/dist/commands/bot-context.js.map +1 -0
  95. package/dist/commands/bot-members.d.ts +14 -0
  96. package/dist/commands/bot-members.d.ts.map +1 -0
  97. package/dist/commands/bot-members.js +64 -0
  98. package/dist/commands/bot-members.js.map +1 -0
  99. package/dist/commands/bot-messenger.d.ts +10 -0
  100. package/dist/commands/bot-messenger.d.ts.map +1 -0
  101. package/dist/commands/bot-messenger.js +101 -0
  102. package/dist/commands/bot-messenger.js.map +1 -0
  103. package/dist/commands/bot-reads.d.ts +4 -0
  104. package/dist/commands/bot-reads.d.ts.map +1 -0
  105. package/dist/commands/bot-reads.js +13 -0
  106. package/dist/commands/bot-reads.js.map +1 -0
  107. package/dist/commands/bot-sends.d.ts +13 -0
  108. package/dist/commands/bot-sends.d.ts.map +1 -0
  109. package/dist/commands/bot-sends.js +103 -0
  110. package/dist/commands/bot-sends.js.map +1 -0
  111. package/dist/commands/bot-setup.d.ts +3 -0
  112. package/dist/commands/bot-setup.d.ts.map +1 -0
  113. package/dist/commands/bot-setup.js +20 -0
  114. package/dist/commands/bot-setup.js.map +1 -0
  115. package/dist/commands/bot.d.ts +3 -0
  116. package/dist/commands/bot.d.ts.map +1 -0
  117. package/dist/commands/bot.js +60 -0
  118. package/dist/commands/bot.js.map +1 -0
  119. package/dist/commands/calls.d.ts +3 -0
  120. package/dist/commands/calls.d.ts.map +1 -0
  121. package/dist/commands/calls.js +4 -0
  122. package/dist/commands/calls.js.map +1 -0
  123. package/dist/commands/chats.d.ts +3 -0
  124. package/dist/commands/chats.d.ts.map +1 -0
  125. package/dist/commands/chats.js +46 -0
  126. package/dist/commands/chats.js.map +1 -0
  127. package/dist/commands/commands.d.ts +2 -0
  128. package/dist/commands/commands.d.ts.map +1 -0
  129. package/dist/commands/commands.js +4 -0
  130. package/dist/commands/commands.js.map +1 -0
  131. package/dist/commands/complete.d.ts +2 -0
  132. package/dist/commands/complete.d.ts.map +1 -0
  133. package/dist/commands/complete.js +34 -0
  134. package/dist/commands/complete.js.map +1 -0
  135. package/dist/commands/config.d.ts +3 -0
  136. package/dist/commands/config.d.ts.map +1 -0
  137. package/dist/commands/config.js +170 -0
  138. package/dist/commands/config.js.map +1 -0
  139. package/dist/commands/contacts.d.ts +10 -0
  140. package/dist/commands/contacts.d.ts.map +1 -0
  141. package/dist/commands/contacts.js +80 -0
  142. package/dist/commands/contacts.js.map +1 -0
  143. package/dist/commands/context.d.ts +126 -0
  144. package/dist/commands/context.d.ts.map +1 -0
  145. package/dist/commands/context.js +137 -0
  146. package/dist/commands/context.js.map +1 -0
  147. package/dist/commands/doctor.d.ts +24 -0
  148. package/dist/commands/doctor.d.ts.map +1 -0
  149. package/dist/commands/doctor.js +308 -0
  150. package/dist/commands/doctor.js.map +1 -0
  151. package/dist/commands/mcp.d.ts +36 -0
  152. package/dist/commands/mcp.d.ts.map +1 -0
  153. package/dist/commands/mcp.js +214 -0
  154. package/dist/commands/mcp.js.map +1 -0
  155. package/dist/commands/messages.d.ts +3 -0
  156. package/dist/commands/messages.d.ts.map +1 -0
  157. package/dist/commands/messages.js +105 -0
  158. package/dist/commands/messages.js.map +1 -0
  159. package/dist/commands/models.d.ts +3 -0
  160. package/dist/commands/models.d.ts.map +1 -0
  161. package/dist/commands/models.js +4 -0
  162. package/dist/commands/models.js.map +1 -0
  163. package/dist/commands/paging.d.ts +59 -0
  164. package/dist/commands/paging.d.ts.map +1 -0
  165. package/dist/commands/paging.js +77 -0
  166. package/dist/commands/paging.js.map +1 -0
  167. package/dist/commands/recipients.d.ts +9 -0
  168. package/dist/commands/recipients.d.ts.map +1 -0
  169. package/dist/commands/recipients.js +74 -0
  170. package/dist/commands/recipients.js.map +1 -0
  171. package/dist/commands/runs.d.ts +2 -0
  172. package/dist/commands/runs.d.ts.map +1 -0
  173. package/dist/commands/runs.js +4 -0
  174. package/dist/commands/runs.js.map +1 -0
  175. package/dist/commands/sends.d.ts +3 -0
  176. package/dist/commands/sends.d.ts.map +1 -0
  177. package/dist/commands/sends.js +4 -0
  178. package/dist/commands/sends.js.map +1 -0
  179. package/dist/commands/serve-members.d.ts +14 -0
  180. package/dist/commands/serve-members.d.ts.map +1 -0
  181. package/dist/commands/serve-members.js +54 -0
  182. package/dist/commands/serve-members.js.map +1 -0
  183. package/dist/commands/serve-stems.d.ts +9 -0
  184. package/dist/commands/serve-stems.d.ts.map +1 -0
  185. package/dist/commands/serve-stems.js +26 -0
  186. package/dist/commands/serve-stems.js.map +1 -0
  187. package/dist/commands/serve.d.ts +10 -0
  188. package/dist/commands/serve.d.ts.map +1 -0
  189. package/dist/commands/serve.js +79 -0
  190. package/dist/commands/serve.js.map +1 -0
  191. package/dist/commands/server.d.ts +16 -0
  192. package/dist/commands/server.d.ts.map +1 -0
  193. package/dist/commands/server.js +51 -0
  194. package/dist/commands/server.js.map +1 -0
  195. package/dist/commands/session.d.ts +15 -0
  196. package/dist/commands/session.d.ts.map +1 -0
  197. package/dist/commands/session.js +169 -0
  198. package/dist/commands/session.js.map +1 -0
  199. package/dist/commands/setup.d.ts +3 -0
  200. package/dist/commands/setup.d.ts.map +1 -0
  201. package/dist/commands/setup.js +168 -0
  202. package/dist/commands/setup.js.map +1 -0
  203. package/dist/commands/skill.d.ts +3 -0
  204. package/dist/commands/skill.d.ts.map +1 -0
  205. package/dist/commands/skill.js +7 -0
  206. package/dist/commands/skill.js.map +1 -0
  207. package/dist/commands/stickers.d.ts +3 -0
  208. package/dist/commands/stickers.d.ts.map +1 -0
  209. package/dist/commands/stickers.js +4 -0
  210. package/dist/commands/stickers.js.map +1 -0
  211. package/dist/commands/upgrade.d.ts +2 -0
  212. package/dist/commands/upgrade.d.ts.map +1 -0
  213. package/dist/commands/upgrade.js +14 -0
  214. package/dist/commands/upgrade.js.map +1 -0
  215. package/dist/commands/watch.d.ts +27 -0
  216. package/dist/commands/watch.d.ts.map +1 -0
  217. package/dist/commands/watch.js +105 -0
  218. package/dist/commands/watch.js.map +1 -0
  219. package/dist/config.d.ts +385 -0
  220. package/dist/config.d.ts.map +1 -0
  221. package/dist/config.js +372 -0
  222. package/dist/config.js.map +1 -0
  223. package/dist/deadline.d.ts +2 -0
  224. package/dist/deadline.d.ts.map +1 -0
  225. package/dist/deadline.js +2 -0
  226. package/dist/deadline.js.map +1 -0
  227. package/dist/diagnose.d.ts +143 -0
  228. package/dist/diagnose.d.ts.map +1 -0
  229. package/dist/diagnose.js +183 -0
  230. package/dist/diagnose.js.map +1 -0
  231. package/dist/domain/map.d.ts +65 -0
  232. package/dist/domain/map.d.ts.map +1 -0
  233. package/dist/domain/map.js +431 -0
  234. package/dist/domain/map.js.map +1 -0
  235. package/dist/domain/models.d.ts +238 -0
  236. package/dist/domain/models.d.ts.map +1 -0
  237. package/dist/domain/models.js +17 -0
  238. package/dist/domain/models.js.map +1 -0
  239. package/dist/download.d.ts +38 -0
  240. package/dist/download.d.ts.map +1 -0
  241. package/dist/download.js +199 -0
  242. package/dist/download.js.map +1 -0
  243. package/dist/format-markdown.d.ts +13 -0
  244. package/dist/format-markdown.d.ts.map +1 -0
  245. package/dist/format-markdown.js +241 -0
  246. package/dist/format-markdown.js.map +1 -0
  247. package/dist/generated/client.generated.d.ts +95 -0
  248. package/dist/generated/client.generated.d.ts.map +1 -0
  249. package/dist/generated/client.generated.js +91 -0
  250. package/dist/generated/client.generated.js.map +1 -0
  251. package/dist/generated/opcodes.generated.d.ts +76 -0
  252. package/dist/generated/opcodes.generated.d.ts.map +1 -0
  253. package/dist/generated/opcodes.generated.js +76 -0
  254. package/dist/generated/opcodes.generated.js.map +1 -0
  255. package/dist/generated/operations.generated.d.ts +502 -0
  256. package/dist/generated/operations.generated.d.ts.map +1 -0
  257. package/dist/generated/operations.generated.js +72 -0
  258. package/dist/generated/operations.generated.js.map +1 -0
  259. package/dist/inbox-point.d.ts +3 -0
  260. package/dist/inbox-point.d.ts.map +1 -0
  261. package/dist/inbox-point.js +17 -0
  262. package/dist/inbox-point.js.map +1 -0
  263. package/dist/install/postinstall.d.ts +8 -0
  264. package/dist/install/postinstall.d.ts.map +1 -0
  265. package/dist/install/postinstall.js +62 -0
  266. package/dist/install/postinstall.js.map +1 -0
  267. package/dist/install.d.ts +43 -0
  268. package/dist/install.d.ts.map +1 -0
  269. package/dist/install.js +142 -0
  270. package/dist/install.js.map +1 -0
  271. package/dist/markdown.d.ts +13 -0
  272. package/dist/markdown.d.ts.map +1 -0
  273. package/dist/markdown.js +6 -0
  274. package/dist/markdown.js.map +1 -0
  275. package/dist/mcp/instructions.d.ts +13 -0
  276. package/dist/mcp/instructions.d.ts.map +1 -0
  277. package/dist/mcp/instructions.js +16 -0
  278. package/dist/mcp/instructions.js.map +1 -0
  279. package/dist/mcp/legacy-check.d.ts +12 -0
  280. package/dist/mcp/legacy-check.d.ts.map +1 -0
  281. package/dist/mcp/legacy-check.js +44 -0
  282. package/dist/mcp/legacy-check.js.map +1 -0
  283. package/dist/mcp/photo.d.ts +9 -0
  284. package/dist/mcp/photo.d.ts.map +1 -0
  285. package/dist/mcp/photo.js +38 -0
  286. package/dist/mcp/photo.js.map +1 -0
  287. package/dist/mcp/prompts.d.ts +7 -0
  288. package/dist/mcp/prompts.d.ts.map +1 -0
  289. package/dist/mcp/prompts.js +100 -0
  290. package/dist/mcp/prompts.js.map +1 -0
  291. package/dist/mcp/resources.d.ts +15 -0
  292. package/dist/mcp/resources.d.ts.map +1 -0
  293. package/dist/mcp/resources.js +56 -0
  294. package/dist/mcp/resources.js.map +1 -0
  295. package/dist/mcp/server.d.ts +31 -0
  296. package/dist/mcp/server.d.ts.map +1 -0
  297. package/dist/mcp/server.js +116 -0
  298. package/dist/mcp/server.js.map +1 -0
  299. package/dist/mcp/session.d.ts +30 -0
  300. package/dist/mcp/session.d.ts.map +1 -0
  301. package/dist/mcp/session.js +109 -0
  302. package/dist/mcp/session.js.map +1 -0
  303. package/dist/mcp/shared.d.ts +14 -0
  304. package/dist/mcp/shared.d.ts.map +1 -0
  305. package/dist/mcp/shared.js +46 -0
  306. package/dist/mcp/shared.js.map +1 -0
  307. package/dist/mcp/tools.d.ts +30 -0
  308. package/dist/mcp/tools.d.ts.map +1 -0
  309. package/dist/mcp/tools.js +248 -0
  310. package/dist/mcp/tools.js.map +1 -0
  311. package/dist/messenger.d.ts +15 -0
  312. package/dist/messenger.d.ts.map +1 -0
  313. package/dist/messenger.js +149 -0
  314. package/dist/messenger.js.map +1 -0
  315. package/dist/moderation/check.d.ts +103 -0
  316. package/dist/moderation/check.d.ts.map +1 -0
  317. package/dist/moderation/check.js +273 -0
  318. package/dist/moderation/check.js.map +1 -0
  319. package/dist/moderation/points.d.ts +8 -0
  320. package/dist/moderation/points.d.ts.map +1 -0
  321. package/dist/moderation/points.js +21 -0
  322. package/dist/moderation/points.js.map +1 -0
  323. package/dist/moderation/rules.d.ts +7 -0
  324. package/dist/moderation/rules.d.ts.map +1 -0
  325. package/dist/moderation/rules.js +24 -0
  326. package/dist/moderation/rules.js.map +1 -0
  327. package/dist/online.d.ts +23 -0
  328. package/dist/online.d.ts.map +1 -0
  329. package/dist/online.js +87 -0
  330. package/dist/online.js.map +1 -0
  331. package/dist/output.d.ts +2 -0
  332. package/dist/output.d.ts.map +1 -0
  333. package/dist/output.js +2 -0
  334. package/dist/output.js.map +1 -0
  335. package/dist/permissions.d.ts +20 -0
  336. package/dist/permissions.d.ts.map +1 -0
  337. package/dist/permissions.js +76 -0
  338. package/dist/permissions.js.map +1 -0
  339. package/dist/profile.d.ts +33 -0
  340. package/dist/profile.d.ts.map +1 -0
  341. package/dist/profile.js +60 -0
  342. package/dist/profile.js.map +1 -0
  343. package/dist/program.d.ts +10 -0
  344. package/dist/program.d.ts.map +1 -0
  345. package/dist/program.js +172 -0
  346. package/dist/program.js.map +1 -0
  347. package/dist/protocol/connection.d.ts +83 -0
  348. package/dist/protocol/connection.d.ts.map +1 -0
  349. package/dist/protocol/connection.js +301 -0
  350. package/dist/protocol/connection.js.map +1 -0
  351. package/dist/protocol/frame.d.ts +55 -0
  352. package/dist/protocol/frame.d.ts.map +1 -0
  353. package/dist/protocol/frame.js +149 -0
  354. package/dist/protocol/frame.js.map +1 -0
  355. package/dist/protocol/lz4.d.ts +15 -0
  356. package/dist/protocol/lz4.d.ts.map +1 -0
  357. package/dist/protocol/lz4.js +157 -0
  358. package/dist/protocol/lz4.js.map +1 -0
  359. package/dist/record.d.ts +41 -0
  360. package/dist/record.d.ts.map +1 -0
  361. package/dist/record.js +104 -0
  362. package/dist/record.js.map +1 -0
  363. package/dist/rendering/messages.d.ts +24 -0
  364. package/dist/rendering/messages.d.ts.map +1 -0
  365. package/dist/rendering/messages.js +172 -0
  366. package/dist/rendering/messages.js.map +1 -0
  367. package/dist/report.d.ts +43 -0
  368. package/dist/report.d.ts.map +1 -0
  369. package/dist/report.js +104 -0
  370. package/dist/report.js.map +1 -0
  371. package/dist/resolve.d.ts +6 -0
  372. package/dist/resolve.d.ts.map +1 -0
  373. package/dist/resolve.js +5 -0
  374. package/dist/resolve.js.map +1 -0
  375. package/dist/sends.d.ts +17 -0
  376. package/dist/sends.d.ts.map +1 -0
  377. package/dist/sends.js +97 -0
  378. package/dist/sends.js.map +1 -0
  379. package/dist/server/lines.d.ts +23 -0
  380. package/dist/server/lines.d.ts.map +1 -0
  381. package/dist/server/lines.js +56 -0
  382. package/dist/server/lines.js.map +1 -0
  383. package/dist/server/replies.d.ts +31 -0
  384. package/dist/server/replies.d.ts.map +1 -0
  385. package/dist/server/replies.js +95 -0
  386. package/dist/server/replies.js.map +1 -0
  387. package/dist/server/server-connection.d.ts +55 -0
  388. package/dist/server/server-connection.d.ts.map +1 -0
  389. package/dist/server/server-connection.js +245 -0
  390. package/dist/server/server-connection.js.map +1 -0
  391. package/dist/server/server.d.ts +88 -0
  392. package/dist/server/server.d.ts.map +1 -0
  393. package/dist/server/server.js +634 -0
  394. package/dist/server/server.js.map +1 -0
  395. package/dist/server/start.d.ts +37 -0
  396. package/dist/server/start.d.ts.map +1 -0
  397. package/dist/server/start.js +102 -0
  398. package/dist/server/start.js.map +1 -0
  399. package/dist/server/subscribe.d.ts +9 -0
  400. package/dist/server/subscribe.d.ts.map +1 -0
  401. package/dist/server/subscribe.js +26 -0
  402. package/dist/server/subscribe.js.map +1 -0
  403. package/dist/session/adopt.d.ts +22 -0
  404. package/dist/session/adopt.d.ts.map +1 -0
  405. package/dist/session/adopt.js +34 -0
  406. package/dist/session/adopt.js.map +1 -0
  407. package/dist/session/browser.d.ts +55 -0
  408. package/dist/session/browser.d.ts.map +1 -0
  409. package/dist/session/browser.js +321 -0
  410. package/dist/session/browser.js.map +1 -0
  411. package/dist/session/handshake.d.ts +57 -0
  412. package/dist/session/handshake.d.ts.map +1 -0
  413. package/dist/session/handshake.js +40 -0
  414. package/dist/session/handshake.js.map +1 -0
  415. package/dist/session/login.d.ts +20 -0
  416. package/dist/session/login.d.ts.map +1 -0
  417. package/dist/session/login.js +66 -0
  418. package/dist/session/login.js.map +1 -0
  419. package/dist/session/prompt.d.ts +2 -0
  420. package/dist/session/prompt.d.ts.map +1 -0
  421. package/dist/session/prompt.js +2 -0
  422. package/dist/session/prompt.js.map +1 -0
  423. package/dist/session/qr-terminal.d.ts +9 -0
  424. package/dist/session/qr-terminal.d.ts.map +1 -0
  425. package/dist/session/qr-terminal.js +34 -0
  426. package/dist/session/qr-terminal.js.map +1 -0
  427. package/dist/session/store.d.ts +76 -0
  428. package/dist/session/store.d.ts.map +1 -0
  429. package/dist/session/store.js +134 -0
  430. package/dist/session/store.js.map +1 -0
  431. package/dist/skill.d.ts +7 -0
  432. package/dist/skill.d.ts.map +1 -0
  433. package/dist/skill.js +8 -0
  434. package/dist/skill.js.map +1 -0
  435. package/dist/spec/check.d.ts +16 -0
  436. package/dist/spec/check.d.ts.map +1 -0
  437. package/dist/spec/check.js +44 -0
  438. package/dist/spec/check.js.map +1 -0
  439. package/dist/spec/define.d.ts +108 -0
  440. package/dist/spec/define.d.ts.map +1 -0
  441. package/dist/spec/define.js +47 -0
  442. package/dist/spec/define.js.map +1 -0
  443. package/dist/spec/guards.d.ts +16 -0
  444. package/dist/spec/guards.d.ts.map +1 -0
  445. package/dist/spec/guards.js +30 -0
  446. package/dist/spec/guards.js.map +1 -0
  447. package/dist/spec/identity.d.ts +57 -0
  448. package/dist/spec/identity.d.ts.map +1 -0
  449. package/dist/spec/identity.js +53 -0
  450. package/dist/spec/identity.js.map +1 -0
  451. package/dist/spec/index.d.ts +15 -0
  452. package/dist/spec/index.d.ts.map +1 -0
  453. package/dist/spec/index.js +84 -0
  454. package/dist/spec/index.js.map +1 -0
  455. package/dist/spec/operations/account.d.ts +39 -0
  456. package/dist/spec/operations/account.d.ts.map +1 -0
  457. package/dist/spec/operations/account.js +103 -0
  458. package/dist/spec/operations/account.js.map +1 -0
  459. package/dist/spec/operations/assets.d.ts +17 -0
  460. package/dist/spec/operations/assets.d.ts.map +1 -0
  461. package/dist/spec/operations/assets.js +43 -0
  462. package/dist/spec/operations/assets.js.map +1 -0
  463. package/dist/spec/operations/attachments.d.ts +15 -0
  464. package/dist/spec/operations/attachments.d.ts.map +1 -0
  465. package/dist/spec/operations/attachments.js +40 -0
  466. package/dist/spec/operations/attachments.js.map +1 -0
  467. package/dist/spec/operations/banners.d.ts +7 -0
  468. package/dist/spec/operations/banners.d.ts.map +1 -0
  469. package/dist/spec/operations/banners.js +16 -0
  470. package/dist/spec/operations/banners.js.map +1 -0
  471. package/dist/spec/operations/calls.d.ts +8 -0
  472. package/dist/spec/operations/calls.d.ts.map +1 -0
  473. package/dist/spec/operations/calls.js +25 -0
  474. package/dist/spec/operations/calls.js.map +1 -0
  475. package/dist/spec/operations/chats.d.ts +115 -0
  476. package/dist/spec/operations/chats.d.ts.map +1 -0
  477. package/dist/spec/operations/chats.js +331 -0
  478. package/dist/spec/operations/chats.js.map +1 -0
  479. package/dist/spec/operations/contacts.d.ts +39 -0
  480. package/dist/spec/operations/contacts.d.ts.map +1 -0
  481. package/dist/spec/operations/contacts.js +135 -0
  482. package/dist/spec/operations/contacts.js.map +1 -0
  483. package/dist/spec/operations/folders.d.ts +31 -0
  484. package/dist/spec/operations/folders.d.ts.map +1 -0
  485. package/dist/spec/operations/folders.js +94 -0
  486. package/dist/spec/operations/folders.js.map +1 -0
  487. package/dist/spec/operations/login.d.ts +64 -0
  488. package/dist/spec/operations/login.d.ts.map +1 -0
  489. package/dist/spec/operations/login.js +105 -0
  490. package/dist/spec/operations/login.js.map +1 -0
  491. package/dist/spec/operations/messages.d.ts +142 -0
  492. package/dist/spec/operations/messages.d.ts.map +1 -0
  493. package/dist/spec/operations/messages.js +347 -0
  494. package/dist/spec/operations/messages.js.map +1 -0
  495. package/dist/spec/operations/session.d.ts +120 -0
  496. package/dist/spec/operations/session.d.ts.map +1 -0
  497. package/dist/spec/operations/session.js +202 -0
  498. package/dist/spec/operations/session.js.map +1 -0
  499. package/dist/spec/operations/uploads.d.ts +31 -0
  500. package/dist/spec/operations/uploads.d.ts.map +1 -0
  501. package/dist/spec/operations/uploads.js +59 -0
  502. package/dist/spec/operations/uploads.js.map +1 -0
  503. package/dist/spec/scalars.d.ts +17 -0
  504. package/dist/spec/scalars.d.ts.map +1 -0
  505. package/dist/spec/scalars.js +33 -0
  506. package/dist/spec/scalars.js.map +1 -0
  507. package/dist/transcribe/index.d.ts +70 -0
  508. package/dist/transcribe/index.d.ts.map +1 -0
  509. package/dist/transcribe/index.js +127 -0
  510. package/dist/transcribe/index.js.map +1 -0
  511. package/dist/transcribe/install.d.ts +2 -0
  512. package/dist/transcribe/install.d.ts.map +1 -0
  513. package/dist/transcribe/install.js +2 -0
  514. package/dist/transcribe/install.js.map +1 -0
  515. package/dist/transcribe/models.d.ts +5 -0
  516. package/dist/transcribe/models.d.ts.map +1 -0
  517. package/dist/transcribe/models.js +6 -0
  518. package/dist/transcribe/models.js.map +1 -0
  519. package/dist/transcribe/speech.d.ts +25 -0
  520. package/dist/transcribe/speech.d.ts.map +1 -0
  521. package/dist/transcribe/speech.js +107 -0
  522. package/dist/transcribe/speech.js.map +1 -0
  523. package/dist/update.d.ts +31 -0
  524. package/dist/update.d.ts.map +1 -0
  525. package/dist/update.js +69 -0
  526. package/dist/update.js.map +1 -0
  527. package/dist/upload.d.ts +15 -0
  528. package/dist/upload.d.ts.map +1 -0
  529. package/dist/upload.js +97 -0
  530. package/dist/upload.js.map +1 -0
  531. package/dist/version.d.ts +2 -0
  532. package/dist/version.d.ts.map +1 -0
  533. package/dist/version.js +2 -0
  534. package/dist/version.js.map +1 -0
  535. package/dist/voice.d.ts +9 -0
  536. package/dist/voice.d.ts.map +1 -0
  537. package/dist/voice.js +36 -0
  538. package/dist/voice.js.map +1 -0
  539. package/dist/wire-events.d.ts +23 -0
  540. package/dist/wire-events.d.ts.map +1 -0
  541. package/dist/wire-events.js +47 -0
  542. package/dist/wire-events.js.map +1 -0
  543. package/install/postinstall.mjs +3 -0
  544. package/install/windows.ps1 +160 -0
  545. package/package.json +120 -3
  546. package/skills/max-cli/SKILL.md +523 -0
@@ -0,0 +1,115 @@
1
+ import * as v from "valibot";
2
+ export declare const chatsList: import("../define.js").Operation<v.StrictObjectSchema<{
3
+ /** A cursor, not a count: MAX pages from a point in time. */
4
+ readonly marker: v.NumberSchema<undefined>;
5
+ readonly count: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
6
+ }, undefined>, v.LooseObjectSchema<{
7
+ readonly chats: v.OptionalSchema<v.ArraySchema<v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
8
+ }, undefined>>;
9
+ export declare const chatsHistory: import("../define.js").Operation<v.StrictObjectSchema<{
10
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
11
+ readonly from: v.NumberSchema<undefined>;
12
+ readonly forward: v.NumberSchema<undefined>;
13
+ readonly backward: v.NumberSchema<undefined>;
14
+ readonly forwardTime: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
15
+ readonly backwardTime: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
16
+ /** `DELAYED` is the queue of scheduled messages, read with `from: 1` and `forward` (measured 2026-09-24). */
17
+ readonly itemType: v.OptionalSchema<v.PicklistSchema<["REGULAR", "DELAYED"], undefined>, undefined>;
18
+ readonly getChat: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
19
+ readonly getMessages: v.BooleanSchema<undefined>;
20
+ }, undefined>, v.LooseObjectSchema<{
21
+ readonly messages: v.OptionalSchema<v.ArraySchema<v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
22
+ }, undefined>>;
23
+ export declare const chatsMark: import("../define.js").Operation<v.StrictObjectSchema<{
24
+ readonly type: v.LiteralSchema<"READ_MESSAGE", undefined>;
25
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
26
+ readonly messageId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
27
+ /**
28
+ * The read message's own time, in milliseconds — **not** when it was read. Correction
29
+ * 2026-09-25: this said "when it was read", and the client sent `Date.now()`, which marks every
30
+ * newer message read too.
31
+ */
32
+ readonly mark: v.NumberSchema<undefined>;
33
+ }, undefined>, v.LooseObjectSchema<{
34
+ readonly unread: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
35
+ readonly mark: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
36
+ }, undefined>>;
37
+ export declare const chatsLinkInfo: import("../define.js").Operation<v.StrictObjectSchema<{
38
+ readonly link: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
39
+ }, undefined>, v.LooseObjectSchema<{
40
+ readonly chat: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
41
+ readonly user: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
42
+ }, undefined>>;
43
+ export declare const chatsJoin: import("../define.js").Operation<v.StrictObjectSchema<{
44
+ readonly link: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
45
+ }, undefined>, v.LooseObjectSchema<{
46
+ readonly chat: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
47
+ }, undefined>>;
48
+ export declare const chatsLeave: import("../define.js").Operation<v.StrictObjectSchema<{
49
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
50
+ }, undefined>, v.LooseObjectSchema<{
51
+ readonly message: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
52
+ }, undefined>>;
53
+ export declare const chatsUpdate: import("../define.js").Operation<v.UnionSchema<[v.StrictObjectSchema<{
54
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
55
+ readonly theme: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
56
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
57
+ readonly photoToken: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
58
+ }, undefined>, v.StrictObjectSchema<{
59
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
60
+ readonly options: v.RecordSchema<v.StringSchema<undefined>, v.BooleanSchema<undefined>, undefined>;
61
+ }, undefined>, v.StrictObjectSchema<{
62
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
63
+ readonly revokePrivateLink: v.LiteralSchema<true, undefined>;
64
+ }, undefined>, v.StrictObjectSchema<{
65
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
66
+ readonly pinMessageId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
67
+ readonly notifyPin: v.BooleanSchema<undefined>;
68
+ }, undefined>], undefined>, v.LooseObjectSchema<{
69
+ readonly chat: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
70
+ }, undefined>>;
71
+ export declare const chatsMembers: import("../define.js").Operation<v.StrictObjectSchema<{
72
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
73
+ /** `JOIN_REQUEST` lists who asked to join a channel that approves joins (measured 2026-10-08). */
74
+ readonly type: v.PicklistSchema<["MEMBER", "JOIN_REQUEST"], undefined>;
75
+ /** A name to look for among those who asked, as web.max.ru sends it with `JOIN_REQUEST`. */
76
+ readonly query: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
77
+ /** 0 for the first page, then the `marker` the previous answer carried. */
78
+ readonly marker: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
79
+ readonly count: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>;
80
+ }, undefined>, v.LooseObjectSchema<{
81
+ readonly members: v.OptionalSchema<v.ArraySchema<v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
82
+ readonly marker: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
83
+ }, undefined>>;
84
+ export declare const chatsUpdateMembers: import("../define.js").Operation<v.StrictObjectSchema<{
85
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
86
+ readonly userIds: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>, undefined>, v.MinLengthAction<bigint[], 1, undefined>]>;
87
+ readonly operation: v.PicklistSchema<["add", "remove"], undefined>;
88
+ /** Absent means an ordinary member; `JOIN_REQUEST` answers who asked to join (web.max.ru, `remove` measured 2026-10-08). */
89
+ readonly type: v.OptionalSchema<v.PicklistSchema<["ADMIN", "JOIN_REQUEST"], undefined>, undefined>;
90
+ readonly showHistory: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
91
+ /** Always 0 from us: anything else probably erases the removed person's messages (`NEED-32`). */
92
+ readonly cleanMsgPeriod: v.OptionalSchema<v.LiteralSchema<0, undefined>, undefined>;
93
+ /** A sum of admin rights: members 2, admins 4, info 8, pin 16, post 256, edit 512, delete 1024. */
94
+ readonly permissions: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
95
+ }, undefined>, v.LooseObjectSchema<{
96
+ readonly chat: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
97
+ }, undefined>>;
98
+ export declare const chatsDelete: import("../define.js").Operation<v.StrictObjectSchema<{
99
+ chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
100
+ lastEventTime: v.NumberSchema<undefined>;
101
+ forAll: v.LiteralSchema<false, undefined>;
102
+ }, undefined>, v.LooseObjectSchema<{}, undefined>>;
103
+ export declare const chatsClear: import("../define.js").Operation<v.StrictObjectSchema<{
104
+ chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
105
+ lastEventTime: v.NumberSchema<undefined>;
106
+ forAll: v.LiteralSchema<false, undefined>;
107
+ }, undefined>, v.LooseObjectSchema<{}, undefined>>;
108
+ export declare const chatsApp: import("../define.js").Operation<v.StrictObjectSchema<{
109
+ readonly botId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
110
+ readonly chatId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
111
+ readonly startParam: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
112
+ }, undefined>, v.LooseObjectSchema<{
113
+ readonly url: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
114
+ }, undefined>>;
115
+ //# sourceMappingURL=chats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/chats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,eAAO,MAAM,SAAS;IAMlB,6DAA6D;;;;;cAW/D,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;IAerB,6GAA6G;;;;;;cAc/G,CAAA;AAEF,eAAO,MAAM,SAAS;;;;IAalB;;;;OAIG;;;;;cAcL,CAAA;AAKF,eAAO,MAAM,aAAa;;;;;cAmBxB,CAAA;AAEF,eAAO,MAAM,SAAS;;;;cAcpB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;cAarB,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;cA0DtB,CAAA;AAEF,eAAO,MAAM,YAAY;;IAOrB,kGAAkG;;IAElG,4FAA4F;;IAE5F,2EAA2E;;;;;;cAqB7E,CAAA;AAQF,eAAO,MAAM,kBAAkB;;;;IAS3B,4HAA4H;;;IAG5H,iGAAiG;;IAEjG,mGAAmG;;;;cA4BrG,CAAA;AASF,eAAO,MAAM,WAAW;;;;kDAiBtB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;kDAerB,CAAA;AAEF,eAAO,MAAM,QAAQ;;;;;;cAiBnB,CAAA"}
@@ -0,0 +1,331 @@
1
+ import * as v from "valibot";
2
+ import { defineOperation } from "../define.js";
3
+ import { ambiguous, chatOf, countOf, messageOf, peopleOf } from "../guards.js";
4
+ import { id } from "../scalars.js";
5
+ export const chatsList = defineOperation({
6
+ name: "chats.list",
7
+ constant: "CHATS_LIST",
8
+ opcode: 53,
9
+ auth: true,
10
+ request: v.strictObject({
11
+ /** A cursor, not a count: MAX pages from a point in time. */
12
+ marker: v.number(),
13
+ count: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
14
+ }),
15
+ response: v.looseObject({ chats: v.optional(v.array(v.looseObject({}))) }),
16
+ guard: null,
17
+ provenance: {
18
+ confidence: "measured",
19
+ sources: ["measured against MAX 2026-09-19", "max-api-docs/protocol/chats.md"],
20
+ notes: "The documentation describes `count`; tsmax sends only `marker`. Optional here for that reason.",
21
+ },
22
+ });
23
+ export const chatsHistory = defineOperation({
24
+ name: "chats.history",
25
+ constant: "CHAT_HISTORY",
26
+ opcode: 49,
27
+ auth: true,
28
+ request: v.strictObject({
29
+ chatId: id(),
30
+ from: v.number(),
31
+ forward: v.number(),
32
+ backward: v.number(),
33
+ // web.max.ru sends chatId, from, forward, backward, getMessages and nothing else (captured
34
+ // 2026-09-25), and so do we: without `interactive`, reading marks nothing (measured the same day,
35
+ // `pnpm probe:read-mark`, `RES-11`).
36
+ forwardTime: v.optional(v.number()),
37
+ backwardTime: v.optional(v.number()),
38
+ /** `DELAYED` is the queue of scheduled messages, read with `from: 1` and `forward` (measured 2026-09-24). */
39
+ itemType: v.optional(v.picklist(["REGULAR", "DELAYED"])),
40
+ getChat: v.optional(v.boolean()),
41
+ getMessages: v.boolean(),
42
+ }),
43
+ response: v.looseObject({ messages: v.optional(v.array(v.looseObject({}))) }),
44
+ guard: null,
45
+ provenance: {
46
+ confidence: "measured",
47
+ sources: [
48
+ "measured against MAX 2026-09-19",
49
+ "`DELAYED` from web.max.ru (2026-09-24, `FIND-78`), measured 2026-09-24 in Saved messages (`pnpm probe:scheduled`)",
50
+ ],
51
+ },
52
+ });
53
+ export const chatsMark = defineOperation({
54
+ name: "chats.mark",
55
+ constant: "CHAT_MARK",
56
+ opcode: 50,
57
+ auth: true,
58
+ /**
59
+ * Sent only by `max chats mark-read` and `messages list --mark-read`: reading never sends it, and the
60
+ * tests that assert so stay (REQUIREMENTS §19).
61
+ */
62
+ request: v.strictObject({
63
+ type: v.literal("READ_MESSAGE"),
64
+ chatId: id(),
65
+ messageId: id(),
66
+ /**
67
+ * The read message's own time, in milliseconds — **not** when it was read. Correction
68
+ * 2026-09-25: this said "when it was read", and the client sent `Date.now()`, which marks every
69
+ * newer message read too.
70
+ */
71
+ mark: v.number(),
72
+ }),
73
+ response: v.looseObject({ unread: v.optional(v.number()), mark: v.optional(v.number()) }),
74
+ guard: (request) => ({ chatId: chatOf(request), kind: "read", ...messageOf(request) }),
75
+ provenance: {
76
+ confidence: "measured",
77
+ sources: [
78
+ "web.max.ru frame captured 2026-09-25 opening an unread channel: type, chatId, messageId, mark (`RES-10`); its code sets mark to the message's time",
79
+ "measured against MAX 2026-09-25 in Saved messages (`pnpm smoke:live`, `MAX-56`)",
80
+ "PyMax `api/messages/service.py` read_message (53103f0)",
81
+ ],
82
+ notes: "The web client also sends `READ_REACTION` and `SET_AS_UNREAD` on this opcode; neither is used here.",
83
+ },
84
+ });
85
+ /** `join/<token>` — what 57 and 89 take for a private link. A public channel's link goes whole. */
86
+ const link = () => v.pipe(v.string(), v.minLength(1));
87
+ export const chatsLinkInfo = defineOperation({
88
+ name: "chats.linkInfo",
89
+ constant: "LINK_INFO",
90
+ opcode: 89,
91
+ auth: true,
92
+ request: v.strictObject({ link: link() }),
93
+ response: v.looseObject({ chat: v.optional(v.looseObject({})), user: v.optional(v.looseObject({})) }),
94
+ guard: null,
95
+ provenance: {
96
+ confidence: "measured",
97
+ sources: [
98
+ "measured against MAX 2026-09-24 (`pnpm probe:groups`)",
99
+ "a bot's link measured 2026-10-08 (`pnpm probe:bot-link`): `{user: {contact, summary, presence: {seen, status}}}`, `contact.options` with `BOT`",
100
+ "PyMax resolve_group_by_link",
101
+ ],
102
+ notes: "Joins nothing. Answers for a group the account has left, with `participants` empty. A person's or a bot's link " +
103
+ "answers `user` instead of `chat`.",
104
+ },
105
+ });
106
+ export const chatsJoin = defineOperation({
107
+ name: "chats.join",
108
+ constant: "CHAT_JOIN",
109
+ opcode: 57,
110
+ auth: true,
111
+ request: v.strictObject({ link: link() }),
112
+ response: v.looseObject({ chat: v.optional(v.looseObject({})) }),
113
+ guard: () => ({ chatId: null, kind: "chat", action: "join" }),
114
+ provenance: {
115
+ confidence: "measured",
116
+ sources: ["measured against MAX 2026-09-24 with a private group link (`pnpm probe:groups`)", "PyMax join_group"],
117
+ notes: "A public channel's link (`https://max.ru/<name>`) goes whole, as PyMax join_channel sends it — not measured.",
118
+ },
119
+ });
120
+ export const chatsLeave = defineOperation({
121
+ name: "chats.leave",
122
+ constant: "CHAT_LEAVE",
123
+ opcode: 58,
124
+ auth: true,
125
+ request: v.strictObject({ chatId: id() }),
126
+ response: v.looseObject({ message: v.optional(v.looseObject({})) }),
127
+ guard: (request) => ({ chatId: chatOf(request), kind: "chat", action: "leave" }),
128
+ provenance: {
129
+ confidence: "measured",
130
+ sources: ["measured against MAX 2026-09-24 (`pnpm probe:groups`)", "PyMax leave_group"],
131
+ notes: "Answers the service message about leaving, which the others in the chat see.",
132
+ },
133
+ });
134
+ export const chatsUpdate = defineOperation({
135
+ name: "chats.update",
136
+ constant: "CHAT_UPDATE",
137
+ opcode: 55,
138
+ auth: true,
139
+ request: v.union([
140
+ /** MAX calls the name `theme`; `photoToken` is a photo uploaded through `PHOTO_UPLOAD`. */
141
+ v.strictObject({
142
+ chatId: id(),
143
+ theme: v.optional(v.string()),
144
+ description: v.optional(v.string()),
145
+ photoToken: v.optional(v.string()),
146
+ }),
147
+ /** Only the flags that change. */
148
+ v.strictObject({ chatId: id(), options: v.record(v.string(), v.boolean()) }),
149
+ v.strictObject({ chatId: id(), revokePrivateLink: v.literal(true) }),
150
+ /** `"0"` unpins — the web client sends `message?.id ?? 0n`. */
151
+ v.strictObject({ chatId: id(), pinMessageId: id(), notifyPin: v.boolean() }),
152
+ ]),
153
+ response: v.looseObject({ chat: v.optional(v.looseObject({})) }),
154
+ guard: (request) => {
155
+ const chatId = chatOf(request);
156
+ const changes = [
157
+ "pinMessageId" in request,
158
+ "revokePrivateLink" in request,
159
+ "options" in request,
160
+ "theme" in request || "description" in request || "photoToken" in request,
161
+ ];
162
+ if (changes.filter(Boolean).length !== 1)
163
+ return ambiguous("chats.update");
164
+ if (changes[0]) {
165
+ const pinned = messageOf(request, "pinMessageId");
166
+ return {
167
+ chatId,
168
+ kind: "pin",
169
+ key: pinned.messageId === "0" ? "messages.unpin" : "messages.pin",
170
+ notify: request.notifyPin === true,
171
+ ...(pinned.messageId === "0" ? {} : pinned),
172
+ };
173
+ }
174
+ if (changes[1])
175
+ return { chatId, kind: "chat", action: "link.reset" };
176
+ if (changes[2])
177
+ return { chatId, kind: "chat", action: "settings" };
178
+ return { chatId, kind: "chat", action: "update" };
179
+ },
180
+ provenance: {
181
+ confidence: "measured",
182
+ sources: [
183
+ "measured against MAX 2026-09-24 (`pnpm probe:groups`, `pnpm probe:members`)",
184
+ "PyMax change_group_profile, change_group_settings, rework_invite_link",
185
+ "the pin: measured 2026-09-24 in a group the owner named (`pnpm probe:edit-pin-forward`, `PIN_CHAT`); web.max.ru `_app/immutable/chunks/5oCuRT0F.js`; PyMax `api/messages/payloads.py:95-98` (53103f0)",
186
+ "the photo: web.max.ru `_app/immutable/chunks/Cdo8IOYe.js` (2026-10-08) sends `{chatId, photoToken}` after `PHOTO_UPLOAD {count: 1}`; rumax a9ecaf3 `set_chat_photo`",
187
+ ],
188
+ notes: "A setting changed from false to true, measured 2026-09-24 (`pnpm probe:members`). max-api-docs calls 55 a no-op; it sent `{chatId}` alone. " +
189
+ "Pinning: the web client does not notify by default and PyMax does; ours follows the web client (`NEED-196`). " +
190
+ "Refused on 2026-09-24 in Saved messages and in a dialog with a person — `not.found` to pin, " +
191
+ "`chat.not.found` to unpin. The web client's dialog class answers `viewerCanPin` with `false`: MAX pins " +
192
+ "only in groups and channels. In a group it answers `{chat}` with `pinnedMessage`, and 0 clears it.",
193
+ },
194
+ });
195
+ export const chatsMembers = defineOperation({
196
+ name: "chats.members",
197
+ constant: "CHAT_MEMBERS",
198
+ opcode: 59,
199
+ auth: true,
200
+ request: v.strictObject({
201
+ chatId: id(),
202
+ /** `JOIN_REQUEST` lists who asked to join a channel that approves joins (measured 2026-10-08). */
203
+ type: v.picklist(["MEMBER", "JOIN_REQUEST"]),
204
+ /** A name to look for among those who asked, as web.max.ru sends it with `JOIN_REQUEST`. */
205
+ query: v.optional(v.string()),
206
+ /** 0 for the first page, then the `marker` the previous answer carried. */
207
+ marker: v.optional(v.number()),
208
+ count: v.pipe(v.number(), v.integer(), v.minValue(1)),
209
+ }),
210
+ response: v.looseObject({ members: v.optional(v.array(v.looseObject({}))), marker: v.optional(v.number()) }),
211
+ guard: null,
212
+ provenance: {
213
+ confidence: "measured",
214
+ sources: [
215
+ "`JOIN_REQUEST` measured against MAX 2026-09-24 (`pnpm probe:groups`): `{}`",
216
+ "measured again 2026-10-08 (`pnpm probe:join-requests`, MAX-71): on a PRIVATE group 55 `{options: {JOIN_REQUEST: true}}` " +
217
+ "answered the chat without that option, a second account joined by the link at once, and 59 `JOIN_REQUEST` answered `{}`",
218
+ "`MEMBER` measured 2026-09-27 on a group of 2 (`pnpm probe:member-list`): `{members: [{contact, presence, readMark}]}`, no `marker`",
219
+ "PyMax get_join_requests, get_chat_members (53103f0)",
220
+ ],
221
+ notes: "Join requests are not read here yet. A private group ignores the `JOIN_REQUEST` option (`FIND-249`, measured again " +
222
+ "2026-10-08); a channel keeps it, and then 57 only asks and `JOIN_REQUEST` answers `{members: [{contact, presence}]}` " +
223
+ "with no request time (measured 2026-10-08, `pnpm probe:join-requests`, MAX-73). " +
224
+ "Paging by `marker` is PyMax's claim: one page of two members carried none.",
225
+ },
226
+ });
227
+ const MEMBER_ACTIONS = {
228
+ MEMBER: ["members.add", "members.remove"],
229
+ ADMIN: ["admins.add", "admins.remove"],
230
+ JOIN_REQUEST: ["requests.accept", "requests.decline"],
231
+ };
232
+ export const chatsUpdateMembers = defineOperation({
233
+ name: "chats.updateMembers",
234
+ constant: "CHAT_MEMBERS_UPDATE",
235
+ opcode: 77,
236
+ auth: true,
237
+ request: v.strictObject({
238
+ chatId: id(),
239
+ userIds: v.pipe(v.array(id()), v.minLength(1)),
240
+ operation: v.picklist(["add", "remove"]),
241
+ /** Absent means an ordinary member; `JOIN_REQUEST` answers who asked to join (web.max.ru, `remove` measured 2026-10-08). */
242
+ type: v.optional(v.picklist(["ADMIN", "JOIN_REQUEST"])),
243
+ showHistory: v.optional(v.boolean()),
244
+ /** Always 0 from us: anything else probably erases the removed person's messages (`NEED-32`). */
245
+ cleanMsgPeriod: v.optional(v.literal(0)),
246
+ /** A sum of admin rights: members 2, admins 4, info 8, pin 16, post 256, edit 512, delete 1024. */
247
+ permissions: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0))),
248
+ }),
249
+ response: v.looseObject({ chat: v.optional(v.looseObject({})) }),
250
+ guard: (request) => {
251
+ const actions = MEMBER_ACTIONS[String(request.type ?? "MEMBER")];
252
+ const action = request.operation === "add" ? actions?.[0] : request.operation === "remove" ? actions?.[1] : undefined;
253
+ if (!action)
254
+ return ambiguous("chats.updateMembers");
255
+ return {
256
+ chatId: chatOf(request),
257
+ kind: "chat",
258
+ action,
259
+ people: countOf(request.userIds),
260
+ ...(action === "members.add" || action === "requests.accept" ? { personIds: peopleOf(request.userIds) } : {}),
261
+ };
262
+ },
263
+ provenance: {
264
+ confidence: "measured",
265
+ sources: [
266
+ "measured against MAX 2026-09-24 with a second person who agreed (`pnpm probe:members`): add, make admin, take admin back, remove",
267
+ "PyMax invite_users_to_group, remove_users_from_group, add_admin, confirm_join_request, decline_join_request",
268
+ ],
269
+ notes: "Taking admin rights back is `type: ADMIN, operation: remove` — in no source, measured. `JOIN_REQUEST` answers a request to join a channel; a private group takes none (`FIND-249`). max-api-docs calls 77 pin/archive/mute; measured otherwise. " +
270
+ "Adding a bot answers `participants.filter.out` while the bot's privacy setting forbids group chats, " +
271
+ "its default (measured 2026-09-27; dev.max.ru/docs/chatbots/bots-create/manage).",
272
+ },
273
+ });
274
+ /**
275
+ * Both of these act for this account only: `forAll` is pinned to `false`. The owner asked for deleting a
276
+ * chat on 2026-10-08, correcting `NEED-32` for chats; a tool that clears a conversation for everyone in it
277
+ * stays out.
278
+ */
279
+ const forMe = { chatId: id(), lastEventTime: v.number(), forAll: v.literal(false) };
280
+ export const chatsDelete = defineOperation({
281
+ name: "chats.delete",
282
+ constant: "CHAT_DELETE",
283
+ opcode: 52,
284
+ auth: true,
285
+ request: v.strictObject(forMe),
286
+ response: v.looseObject({}),
287
+ guard: (request) => ({ chatId: chatOf(request), kind: "chat", action: "delete" }),
288
+ provenance: {
289
+ confidence: "measured",
290
+ sources: [
291
+ "web.max.ru chunk `_app/immutable/chunks/Cdo8IOYe.js`, read 2026-10-08: `send(52, {chatId, lastEventTime, forAll})`",
292
+ "PyMax delete_chat",
293
+ "tsmax",
294
+ "measured against MAX 2026-10-01 on two throwaway test chats: `{ chatId, lastEventTime, forAll: true }` answered `{}` — the sender left, a control message said so, and the chat stayed for the other members",
295
+ ],
296
+ },
297
+ });
298
+ export const chatsClear = defineOperation({
299
+ name: "chats.clear",
300
+ constant: "CHAT_CLEAR",
301
+ opcode: 54,
302
+ auth: true,
303
+ request: v.strictObject(forMe),
304
+ response: v.looseObject({}),
305
+ guard: (request) => ({ chatId: chatOf(request), kind: "chat", action: "clear" }),
306
+ provenance: {
307
+ confidence: "confirmed",
308
+ sources: [
309
+ "web.max.ru chunk `_app/immutable/chunks/Cdo8IOYe.js`, read 2026-10-08: `send(54, {chatId, forAll, lastEventTime})`, the chat's last message then null",
310
+ "rumax a9ecaf3 `clear_chat_history`",
311
+ ],
312
+ },
313
+ });
314
+ export const chatsApp = defineOperation({
315
+ name: "chats.app",
316
+ constant: "BOT_WEB_APP",
317
+ opcode: 160,
318
+ auth: true,
319
+ request: v.strictObject({ botId: id(), chatId: id(), startParam: v.optional(v.string()) }),
320
+ /** ⚠ `url` signs the owner in to the bot's app: a credential. Nothing may log it or keep it in a fixture. */
321
+ response: v.looseObject({ url: v.optional(v.string()) }),
322
+ guard: (request) => ({ chatId: chatOf(request), kind: "reaction", key: "chats.app" }),
323
+ provenance: {
324
+ confidence: "observed",
325
+ sources: [
326
+ "web.max.ru code, chunk `Cdo8IOYe` (2026-10-08): `send(160, {botId, chatId, startParam: t || void 0})`, the answer handed on as the app's `{url}`",
327
+ ],
328
+ notes: 'Asked when the owner opens a bot\'s mini app; the web client falls back to `{url: ""}` for a bot without one.',
329
+ },
330
+ });
331
+ //# sourceMappingURL=chats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../../src/spec/operations/chats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;IACvC,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC;QACtB,6DAA6D;QAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAClE,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,KAAK,EAAE,IAAI;IACX,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,CAAC,iCAAiC,EAAE,gCAAgC,CAAC;QAC9E,KAAK,EAAE,gGAAgG;KACxG;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC;QACtB,MAAM,EAAE,EAAE,EAAE;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,2FAA2F;QAC3F,kGAAkG;QAClG,qCAAqC;QACrC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACnC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,6GAA6G;QAC7G,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;KACzB,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,KAAK,EAAE,IAAI;IACX,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,iCAAiC;YACjC,mHAAmH;SACpH;KACF;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;IACvC,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV;;;OAGG;IACH,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC;QACtB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/B,MAAM,EAAE,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE,EAAE;QACf;;;;WAIG;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;IACzF,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACtF,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,oJAAoJ;YACpJ,iFAAiF;YACjF,wDAAwD;SACzD;QACD,KAAK,EAAE,qGAAqG;KAC7G;CACF,CAAC,CAAA;AAEF,mGAAmG;AACnG,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;IAC3C,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACrG,KAAK,EAAE,IAAI;IACX,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,uDAAuD;YACvD,gJAAgJ;YAChJ,6BAA6B;SAC9B;QACD,KAAK,EACH,iHAAiH;YACjH,mCAAmC;KACtC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;IACvC,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAChE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC7D,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,CAAC,iFAAiF,EAAE,kBAAkB,CAAC;QAChH,KAAK,EACH,8GAA8G;KACjH;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACnE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAChF,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,CAAC,uDAAuD,EAAE,mBAAmB,CAAC;QACvF,KAAK,EAAE,8EAA8E;KACtF;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;IACzC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;QACf,2FAA2F;QAC3F,CAAC,CAAC,YAAY,CAAC;YACb,MAAM,EAAE,EAAE,EAAE;YACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7B,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACnC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACnC,CAAC;QACF,kCAAkC;QAClC,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC5E,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,+DAA+D;QAC/D,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;KAC7E,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAChE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC9B,MAAM,OAAO,GAAG;YACd,cAAc,IAAI,OAAO;YACzB,mBAAmB,IAAI,OAAO;YAC9B,SAAS,IAAI,OAAO;YACpB,OAAO,IAAI,OAAO,IAAI,aAAa,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO;SAC1E,CAAA;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,cAAc,CAAC,CAAA;QAC1E,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YACjD,OAAO;gBACL,MAAM;gBACN,IAAI,EAAE,KAAK;gBACX,GAAG,EAAE,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc;gBACjE,MAAM,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;gBAClC,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAC5C,CAAA;QACH,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;QACrE,IAAI,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;QACnE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IACnD,CAAC;IACD,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,6EAA6E;YAC7E,uEAAuE;YACvE,uMAAuM;YACvM,qKAAqK;SACtK;QACD,KAAK,EACH,6IAA6I;YAC7I,+GAA+G;YAC/G,8FAA8F;YAC9F,yGAAyG;YACzG,oGAAoG;KACvG;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC;QACtB,MAAM,EAAE,EAAE,EAAE;QACZ,kGAAkG;QAClG,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC5C,4FAA4F;QAC5F,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7B,2EAA2E;QAC3E,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KACtD,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;IAC5G,KAAK,EAAE,IAAI;IACX,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,4EAA4E;YAC5E,0HAA0H;gBACxH,yHAAyH;YAC3H,oIAAoI;YACpI,qDAAqD;SACtD;QACD,KAAK,EACH,qHAAqH;YACrH,uHAAuH;YACvH,kFAAkF;YAClF,4EAA4E;KAC/E;CACF,CAAC,CAAA;AAEF,MAAM,cAAc,GAAsD;IACxE,MAAM,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,KAAK,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;IACtC,YAAY,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;CACtD,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;IAChD,IAAI,EAAE,qBAAqB;IAC3B,QAAQ,EAAE,qBAAqB;IAC/B,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC;QACtB,MAAM,EAAE,EAAE,EAAE;QACZ,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9C,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,4HAA4H;QAC5H,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QACvD,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACpC,iGAAiG;QACjG,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxC,mGAAmG;QACnG,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KACxE,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAChE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAA;QAChE,MAAM,MAAM,GACV,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxG,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC,qBAAqB,CAAC,CAAA;QACpD,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,MAAM;YACZ,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAChC,GAAG,CAAC,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9G,CAAA;IACH,CAAC;IACD,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,kIAAkI;YAClI,6GAA6G;SAC9G;QACD,KAAK,EACH,kPAAkP;YAClP,sGAAsG;YACtG,iFAAiF;KACpF;CACF,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;AAEnF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;IACzC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3B,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACjF,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,oHAAoH;YACpH,mBAAmB;YACnB,OAAO;YACP,8MAA8M;SAC/M;KACF;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3B,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAChF,UAAU,EAAE;QACV,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE;YACP,uJAAuJ;YACvJ,oCAAoC;SACrC;KACF;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;IACtC,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;IAC1F,6GAA6G;IAC7G,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;IACxD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;IACrF,UAAU,EAAE;QACV,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,kJAAkJ;SACnJ;QACD,KAAK,EACH,+GAA+G;KAClH;CACF,CAAC,CAAA"}
@@ -0,0 +1,39 @@
1
+ import * as v from "valibot";
2
+ export declare const contactsInfo: import("../define.js").Operation<v.StrictObjectSchema<{
3
+ readonly contactIds: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>, undefined>;
4
+ }, undefined>, v.LooseObjectSchema<{
5
+ readonly contacts: v.OptionalSchema<v.ArraySchema<v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
6
+ }, undefined>>;
7
+ export declare const contactsPresence: import("../define.js").Operation<v.StrictObjectSchema<{
8
+ readonly contactIds: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>, undefined>;
9
+ }, undefined>, v.LooseObjectSchema<{
10
+ readonly presence: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
11
+ readonly time: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
12
+ }, undefined>>;
13
+ export declare const contactsByPhone: import("../define.js").Operation<v.StrictObjectSchema<{
14
+ readonly phone: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
15
+ }, undefined>, v.LooseObjectSchema<{
16
+ readonly contact: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
17
+ }, undefined>>;
18
+ export declare const contactsUpdate: import("../define.js").Operation<v.UnionSchema<[v.StrictObjectSchema<{
19
+ readonly contactId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
20
+ readonly action: v.PicklistSchema<["ADD", "REMOVE", "BLOCK", "UNBLOCK"], undefined>;
21
+ }, undefined>, v.StrictObjectSchema<{
22
+ readonly contactId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "an id is a whole number written as a string">, v.TransformAction<string, bigint>]>;
23
+ readonly action: v.LiteralSchema<"UPDATE", undefined>;
24
+ readonly firstName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
25
+ /** Always present, `null` when there is none: without it MAX answers and changes nothing. */
26
+ readonly lastName: v.NullableSchema<v.StringSchema<undefined>, undefined>;
27
+ }, undefined>], undefined>, v.LooseObjectSchema<{
28
+ readonly contact: v.OptionalSchema<v.LooseObjectSchema<{}, undefined>, undefined>;
29
+ }, undefined>>;
30
+ export declare const contactsImport: import("../define.js").Operation<v.StrictObjectSchema<{
31
+ /** Phone number to the name it was saved under. */
32
+ readonly contactList: v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
33
+ readonly firstName: v.StringSchema<undefined>;
34
+ }, undefined>, undefined>;
35
+ }, undefined>, v.LooseObjectSchema<{
36
+ readonly contacts: v.OptionalSchema<v.ArraySchema<v.LooseObjectSchema<{}, undefined>, undefined>, undefined>;
37
+ }, undefined>>;
38
+ export declare const unidentified36: import("../define.js").Reservation;
39
+ //# sourceMappingURL=contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../../src/spec/operations/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAI5B,eAAO,MAAM,YAAY;;;;cAavB,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;cAsB3B,CAAA;AAYF,eAAO,MAAM,eAAe;;;;cAiB1B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;IAYrB,6FAA6F;;;;cAqBjG,CAAA;AAEF,eAAO,MAAM,cAAc;IAMvB,mDAAmD;;;;;;cAcrD,CAAA;AAEF,eAAO,MAAM,cAAc,oCAgBzB,CAAA"}