@wirecat/max-cli 0.0.0-stage → 0.42.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 +21 -0
  2. package/README.md +530 -2
  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 +125 -4
  546. package/skills/max-cli/SKILL.md +518 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Viacheslav Ptsarev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,531 @@
1
- # Temporary Holding Version
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/WireCatLabs/max-cli/main/docs/design/logo_text.png" alt="Max CLI" width="480">
3
+ </p>
2
4
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
5
+ # max-cli
6
+
7
+ Ваши боты [MAX](https://max.ru) и ваш личный аккаунт — в терминале и в ИИ-агентах. `max` —
8
+ программа для терминала и MCP-сервер: пишите от имени бота через официальный Bot API, а в свои
9
+ чаты — сами или руками Claude, Codex, Cursor и других агентов. В группах, которые вы ведёте, —
10
+ следите за непрочитанным и сразу реагируйте на проблемы: спам, чужие ссылки, флуд, вопросы без
11
+ ответа — по вашим правилам.
12
+
13
+ Работает в Windows, macOS и Linux. Документация — [wirecat.dev/ru/docs/max](https://wirecat.dev/ru/docs/max).
14
+
15
+ ```sh
16
+ max sales bot messages send "Команда продаж" "Сборка готова" # от имени бота
17
+ max messages send "Иван Петров" "Опаздываю на 15 минут" # от вашего имени
18
+ ```
19
+
20
+ [![npm](https://img.shields.io/npm/v/@wirecat/max-cli)](https://www.npmjs.com/package/@wirecat/max-cli)
21
+ [![CI](https://github.com/WireCatLabs/max-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/WireCatLabs/max-cli/actions/workflows/ci.yml)
22
+ [![Node](https://img.shields.io/node/v/@wirecat/max-cli)](https://nodejs.org/)
23
+ [![Bun](https://img.shields.io/badge/bun-1.3%2B-f9f1e1)](https://bun.sh/)
24
+ [![npm downloads](https://img.shields.io/npm/dm/@wirecat/max-cli)](https://www.npmjs.com/package/@wirecat/max-cli)
25
+ [![License: MIT](https://img.shields.io/npm/l/@wirecat/max-cli)](LICENSE)
26
+
27
+ ## Бот
28
+
29
+ `max bot` работает с ботом через **официальный** [Bot API MAX](https://dev.max.ru/docs-api) по токену
30
+ бота. Ботов может быть несколько: каждый хранится под именем, которое вы выбираете, и это имя —
31
+ первое слово команды.
32
+
33
+ **Полный Bot API.** Все методы официальной схемы MAX доступны из терминала через
34
+ `max <бот> bot api <операция>`: параметры — флаги, тело запроса — JSON. Удобные команды
35
+ для сообщений и чатов дополняются полным API для собственных сценариев и автоматизации.
36
+ [Руководство по Bot API](docs/bot.md) и [полный справочник команд](docs/commands.md).
37
+
38
+ ```sh
39
+ max sales bot auth set # токен — в скрытом вводе, MAX его проверит
40
+ max sales bot me # какой это бот
41
+ max sales bot api get-updates --limit 10 # номер группы — в поле chat_id
42
+ max sales bot messages send "Команда продаж" "Сборка готова" --file report.pdf
43
+ max sales bot recipients add "Команда продаж" # писать только сюда
44
+ max bot list --check # все боты на этом компьютере
45
+ ```
46
+
47
+ Чат называют по номеру или, когда бот его уже видел, по названию; человеку пишут как
48
+ `user:<номер>`. Где взять номер чата — [docs/bot.md](docs/bot.md#где-взять-номер-чата).
49
+
50
+ - **Сообщения и чаты.** Отправка в чат по номеру, человеку как `user:<номер>` или в чат по
51
+ названию; правка, удаление, чтение, закрепление. `chats list` — чаты, которые бот видел: списка
52
+ чатов бота у MAX нет.
53
+ - **Файлы, участники, комментарии, кнопки, меню команд, вебхуки.** `messages send --file`,
54
+ `chats members`, `chats admins`, `comments`, `callbacks answer`, `commands`, `webhooks` — у каждой записи тот
55
+ же список получателей и журнал.
56
+ - **Модерация от имени бота.** `bot chats moderate` сверяет новое в группе с правилами
57
+ (`bot chats rules`) и удаляет спам и людей — с запретом вернуться по ссылке. Вступления видит
58
+ `bot watch`, который печатает всё, что происходит в чатах бота.
59
+ - **Копия переписки на этом компьютере.** `bot contacts show <кто>` — где человек писал и его личный
60
+ чат с ботом; `bot search messages --from <кто>` и `bot messages between <кто> <кто>` — без
61
+ запросов к MAX.
62
+ - **Бот для агента.** `max sales bot mcp` — MCP-сервер бота: агенту доступно то, что разрешают
63
+ `permissions` профиля бота; `ask` и `allow` разрешают действие без формы, а `readonly` запрещает запись.
64
+ - **Все методы Bot API.** Полное покрытие официальной схемы через `max bot api <операция>` — с флагами
65
+ для параметров и JSON-телом, которое сверяется со схемой до отправки.
66
+ - **Бот не напишет лишнего.** У каждого бота свой список чатов, куда ему можно писать, и журнал
67
+ всего, что он отправил, — без текста. `permissions` ограничивает и бота.
68
+ - **Токен не в файле.** Токен бота — в системном хранилище паролей, отдельно от вашего.
69
+
70
+ Бота создают на [business.max.ru](https://business.max.ru/self); MAX выдаёт их подтверждённым
71
+ организациям, ИП и самозанятым. Полностью — [docs/bot.md](docs/bot.md).
72
+
73
+ ## Личный аккаунт
74
+
75
+ `max` без слова `bot` работает с вашим личным аккаунтом: как ещё одно ваше устройство, со всеми
76
+ чатами, историей, группами и контактами.
77
+
78
+ > ⚠️ **Для личного аккаунта max-cli использует неофициальный внутренний API MAX.** API может
79
+ > измениться без предупреждения, а использование инструмента может нарушать условия сервиса. Вы
80
+ > используете max-cli на свой риск; авторы и контрибьюторы не несут ответственности за блокировки
81
+ > аккаунтов, потерю данных или другие последствия. Бот работает через официальный API, и к нему
82
+ > это не относится.
83
+
84
+ ```sh
85
+ max chats list --limit 5
86
+ max messages list "Иван Петров"
87
+ max messages send "Иван Петров" "Опаздываю на 15 минут"
88
+ ```
89
+
90
+ Всё ниже, до раздела «Установка», — про личный аккаунт. Полностью — [docs/usage.md](docs/usage.md).
91
+
92
+ ## Как это использовать
93
+
94
+ Самое полезное — поручить переписку агенту: Claude, Codex или другому. Он читает чаты через `max`
95
+ и делает то, что вы попросили словами.
96
+
97
+ - **Проверка по расписанию.** Утром и вечером агент смотрит, что пришло, и присылает короткую
98
+ сводку: кто ждёт ответа, что срочно, что можно не читать.
99
+ - **Отчёты.** Итог недели по рабочему чату: что решили, кто что взял на себя, какие вопросы
100
+ остались без ответа.
101
+ - **Кто кому должен.** `max review` одним вызовом отдаёт всё, что было в переписке с прошлого
102
+ обзора, — ваши сообщения тоже, голосовые — текстом. Агент раскладывает это на «я должен», «жду от
103
+ других» и «нужно уточнить», а прежде чем назвать что-то просроченным, проверяет рабочие группы:
104
+ может, уже сделано.
105
+ - **Напоминания.** Кому вы обещали ответить и не ответили; чей вопрос висит третий день.
106
+ - **Черновики ответов.** Агент предлагает текст, а отправляете вы — или он сам, если вы разрешили
107
+ писать в этот чат.
108
+ - **Поиск.** «Когда мы договорились о встрече с Иваном?» — ответ с датой и самим сообщением.
109
+ - **Группа, которую вы ведёте.** Какие вопросы висят без ответа, кто вступил за неделю и с каким
110
+ аккаунтом, удалить приглашения в чужие чаты — по вашим правилам и с вашим «да»
111
+ ([ниже](#группы-которые-вы-ведёте)).
112
+
113
+ Как это выглядит:
114
+
115
+ ```text
116
+ Вы: Что я кому обещал за последние три дня?
117
+ Агент: (вызывает max review: 12 чатов, 3 голосовых расшифровано)
118
+ Я должен
119
+ · Ивану Петрову — прислать счёт до пятницы. «Иван Петров», 24.09
120
+ Жду от других
121
+ · Ольга — макет к 25.09. В группе «Дизайн» его пока нет
122
+ Нужно уточнить
123
+ · «Проект Альфа»: кто везёт образцы — договорились «потом решим», 25.09
124
+ Следующий обзор — с 26.09, 14:05.
125
+ Вы: Напомни Ольге про макет.
126
+ Агент: Черновик: «Ольга, привет! Как там макет?» Отправить?
127
+ Вы: Да.
128
+ ```
129
+
130
+ Агент отправляет только по вашей просьбе; подтверждение вызовов настройте в своём ИИ-приложении. Чтение не ставит отметку «прочитано». Как настроить
131
+ агента под каждую задачу — готовые запросы, расписание и ограничения:
132
+ [docs/recipes.md](docs/recipes.md).
133
+
134
+ ## Группы, которые вы ведёте
135
+
136
+ ```sh
137
+ max review --chat "Поход" --unanswered # вопросы, на которые сутки никто не ответил
138
+ max chats events "Поход" # кто вступил и вышел за неделю
139
+ max chats members list "Поход" --all # все участники: когда заведён аккаунт
140
+ max chats rules set "Поход" invites delete # приглашения в чужие чаты — удалять
141
+ max chats moderate "Поход" --allow-dangerous # проверить группу и сделать, что разрешено
142
+ ```
143
+
144
+ Проверка сверяет новое в группе с вашими правилами: заблокированные люди, приглашения, ссылки,
145
+ пересланное, флуд, совсем новые аккаунты. По умолчанию она только отмечает. Для каждого действия
146
+ вы решаете сами: никогда, только с флагом, с вашим подтверждением или сразу. Сценарии с агентом,
147
+ все правила и ограничения — [docs/groups.md](docs/groups.md).
148
+
149
+ ## Как это работает
150
+
151
+ `max` работает от вашего имени, как ещё одно ваше устройство, а не как бот. Вы входите один раз
152
+ по QR-коду, и дальше доступно то же, что в приложении: чаты, сообщения, файлы, группы, контакты и
153
+ профиль.
154
+
155
+ Агенту `max` подключается одним из двух способов:
156
+
157
+ - **Агент с терминалом** — Claude Code, Codex, Gemini CLI. Он сам вызывает команды `max`. Дайте
158
+ ему навык (skill) — инструкцию, как работать с `max`: одна команда, см.
159
+ [ниже](#для-скриптов-и-агентов).
160
+ - **Агент без терминала** — Claude Desktop, Cursor и другие клиенты MCP. Подключите `max mcp`:
161
+ готовую запись для их настроек печатает `max mcp config`. Там же есть команды `/catch-up` (что
162
+ нового), `/review` (кто кому должен), `/reply` (черновик ответа) и `/find` (поиск). По умолчанию
163
+ права агента задают `permissions`; большинство записей разрешено по умолчанию. `readonly`
164
+ запрещает запись, а `ask` и `allow` допускают вызванную запись без серверной формы.
165
+
166
+ ## Что умеет
167
+
168
+ - **Читать.** Чаты, история, одно сообщение вместе с соседними, непрочитанное во всех чатах
169
+ сразу (`max inbox`), вся переписка с прошлого обзора для разбора «кто кому должен» (`max review`), новые сообщения по мере прихода (`max watch`), скачивание вложений,
170
+ расшифровка голосовых в текст на вашем компьютере, выгрузка переписки в JSONL или Markdown.
171
+ - **Искать.** Сообщения — по тексту всего прочитанного, без подключения к MAX. Чаты и контакты —
172
+ по части названия или имени.
173
+ - **Писать.** Текст и разметка, ответы, фото, видео, файлы и голосовые, правка, пересылка, закрепление, реакции,
174
+ опросы, отложенная отправка, удаление — у себя или у всех.
175
+ - **Вести группы и каналы.** Создать группу, вступить по ссылке, выйти, участники и админы,
176
+ название и настройки, ссылка-приглашение, папки. Для админа — вопросы без
177
+ ответа, кто вступил и вышел, все участники с возрастом аккаунта, правила и проверка группы по ним
178
+ ([docs/groups.md](docs/groups.md)).
179
+ - **Контакты и аккаунт.** Найти человека по номеру, добавить, удалить, переименовать для себя,
180
+ заблокировать, импортировать из файла; изменить профиль и фото; посмотреть и завершить другие
181
+ сеансы.
182
+ - **Входить удобным способом.** QR-код прямо в терминале, QR-код или SMS через web.max.ru в
183
+ браузере, или готовый токен.
184
+
185
+ ## Чем он хорош
186
+
187
+ - **Читает незаметно.** Чтение не ставит отметку «прочитано»: собеседник не видит, что вы открыли
188
+ чат. Отметить прочитанным можно, когда нужно: `max chats mark-read` или `--mark-read`.
189
+ - **Агент не напишет лишнего.** Есть профиль только для чтения, список чатов, в которые можно
190
+ писать, и лимит сообщений в час. В MCP сервер проверяет права профиля; подтверждение действий настраивается в приложении агента.
191
+ Если имя подходит к двум чатам, `max` не выбирает сам, а показывает оба.
192
+ - **Модерация по вашим правилам, а не по чужим.** Проверка группы по умолчанию только отмечает.
193
+ Удалить сообщение или человека она может, только если вы разрешили: для каждого действия —
194
+ никогда, с флагом, с вашим подтверждением или сразу. Не больше 10 действий за раз, и ничего не
195
+ следит за группой в фоне.
196
+ - **Сообщение не уйдёт дважды.** Если связь оборвалась во время отправки, `max` прямо говорит, что
197
+ не знает, дошло ли сообщение, и даёт команду для повтора. MAX узнаёт повтор и второго сообщения не
198
+ создаёт.
199
+ - **Своя копия переписки.** Всё прочитанное сохраняется на вашем компьютере. По ней работает
200
+ быстрый поиск по тексту сообщений, и её можно читать без интернета (`--offline`). При входе MAX
201
+ присылает только изменившихся людей. Полный список заново — `max contacts sync`; данные
202
+ покинутых чатов удаляет `max store clear --left --allow-dangerous`.
203
+ - **Чужой текст не управляет вашим терминалом.** Имена, названия чатов, имена файлов и сообщения
204
+ пишут другие люди. Управляющие символы из них показываются как текст, имя всегда печатается в одну
205
+ строку, а автодополнение подставляет только номер чата — поддельную строку переписки или команду в
206
+ оболочке так не подсунуть.
207
+ - **Пароль от аккаунта не лежит в файле.** Токен входа хранится в системном хранилище паролей:
208
+ Keychain в macOS, Secret Service (GNOME Keyring, KWallet) в Linux, диспетчер учётных данных в
209
+ Windows. В историю команд он не попадает.
210
+ - **Скрипт и агент разбирают ответ без догадок.** С `--json` команда отдаёт только данные, в одной и
211
+ той же форме, без текста для человека вокруг. Ошибка приходит отдельно и с номером, поэтому
212
+ скрипт сразу понимает, что случилось: нет входа, чат не найден или MAX не ответил вовремя.
213
+ - **Разбор проблем без вашей переписки.** `--trace` показывает каждый запрос к MAX, чтобы понять,
214
+ почему команда не сработала. В этой записи нет текстов, имён, телефонов и токена, поэтому её
215
+ можно приложить к сообщению об ошибке. Удачный запуск без флага не записывается, неудачный — всегда, тоже без текстов.
216
+
217
+ ## Под заказ
218
+
219
+ Делаем автоматизацию процессов и инструменты под вашу задачу: интеграции с MAX и другими
220
+ мессенджерами, ИИ-агентов, внутренние сервисы. Пишите на [info@neirox.ai](mailto:info@neirox.ai).
221
+
222
+ ## Чем отличается от других
223
+
224
+ Для MAX уже есть хорошие проекты, и max-cli многому у них научился.
225
+ [PyMax](https://github.com/MaxApiTeam/PyMax) — самая полная библиотека для личного аккаунта; её код
226
+ помог разобрать многие операции протокола. Выбирайте то, что подходит под задачу.
227
+
228
+ | | max-cli | [PyMax](https://github.com/MaxApiTeam/PyMax) | [max-mcp](https://github.com/renosaza/max-mcp) |
229
+ |---|:-:|:-:|:-:|
230
+ | что это | программа для терминала и MCP-сервер | библиотека на Python | MCP-сервер на PyMax |
231
+ | MCP-сервер и навык для агентов | ✅ | — | MCP |
232
+ | ограничения для агента: только чтение, разрешённые действия, список чатов, лимит в час, подтверждение отправки | ✅ | — | — |
233
+ | расшифровка голосовых в текст на вашем компьютере | ✅ | — | — |
234
+ | готовые команды — не нужно писать свою программу | ✅ | — (библиотека для своего кода на Python) | — |
235
+ | локальная копия с поиском и чтением без интернета | ✅ | — | — |
236
+ | новые сообщения в реальном времени | ✅ `max watch` | ✅ обработчики событий | — |
237
+ | отложенная отправка — уходит, даже если компьютер выключен | ✅ | ✅ | — |
238
+ | выгрузка переписки в JSONL или Markdown | ✅ | — | — |
239
+ | чтение, отправка текста, фото и файлов | ✅ | ✅ | ✅ |
240
+ | реакции, правка, пересылка, закрепление | ✅ | ✅ | — |
241
+ | удаление сообщений — у себя или у всех, с лимитом | ✅ | ✅ | — |
242
+ | отметка «прочитано» по запросу | ✅ | ✅ | — |
243
+ | группы и каналы: создать, вступить, участники, админы | ✅ | ✅ | чтение каналов |
244
+ | для админа группы: вопросы без ответа, новенькие, проверка по правилам | ✅ | — | — |
245
+ | контакты, профиль, другие сеансы | ✅ | ✅ | — |
246
+ | отправка видео | ✅ | ✅ | — |
247
+ | отправка кружков | — | ✅ | — |
248
+ | отправка голосовых | ✅ | ⚠️ в 2.4.1 не проходит ([#102](https://github.com/MaxApiTeam/PyMax/issues/102), [#103](https://github.com/MaxApiTeam/PyMax/issues/103)) | — |
249
+ | опросы: показать, проголосовать, создать, закрыть | ✅ | ✅ | — |
250
+ | фото профиля | ✅ | ✅ | — |
251
+ | вход с облачным паролем | ✅ по QR-коду | ✅ | — |
252
+ | установить или снять облачный пароль | — | ✅ | — |
253
+
254
+ Для бота есть `max bot` — через официальный Bot API, отдельно от личного аккаунта
255
+ ([docs/bot.md](docs/bot.md)). Таблица выше — про личный аккаунт.
256
+
257
+ ## Содержание
258
+
259
+ - [Бот](#бот)
260
+ - [Личный аккаунт](#личный-аккаунт)
261
+ - [Группы, которые вы ведёте](#группы-которые-вы-ведёте)
262
+ - [Установка](#установка)
263
+ - [Вход](#вход)
264
+ - [Использование](#использование)
265
+ - [Для скриптов и агентов](#для-скриптов-и-агентов)
266
+ - [Безопасность](#безопасность)
267
+ - [Документация](#документация)
268
+ - [Разработка](#разработка)
269
+ - [Дорожная карта](#дорожная-карта)
270
+ - [Лицензия](#лицензия)
271
+ - [Участие](#участие)
272
+
273
+ ## Установка
274
+
275
+ Пакет — **`@wirecat/max-cli`**, команда, которую он ставит, — **`max`**.
276
+
277
+ Запустить, ничего не устанавливая:
278
+
279
+ ```sh
280
+ npx @wirecat/max-cli --help
281
+ ```
282
+
283
+ Поставить насовсем:
284
+
285
+ ```sh
286
+ npm install -g @wirecat/max-cli
287
+ max --version
288
+ max setup --agent codex # вход и подключение навыка агента
289
+ ```
290
+
291
+ Глобальная установка через npm устанавливает навык агента, а на Windows сохраняет PATH
292
+ для новых терминалов. Агенту в уже открытом терминале нужно обновить окружение и прочитать
293
+ `max skill show` перед входом. `MAX_INSTALL_AGENT=none` отключает установку навыка.
294
+
295
+ Нужен **Node 22.16+ (ветка 22.x) или 24+**, либо **Bun 1.3+**. Работает на macOS, Linux и Windows. Подробности,
296
+ переменные окружения и то, куда ложатся файлы, — [docs/installation.md](docs/installation.md).
297
+
298
+ Если после установки команда `max` не находится, `npx @wirecat/max-cli doctor` скажет почему и
299
+ напечатает команду, которая это исправит.
300
+
301
+ ## Вход
302
+
303
+ `max setup` проводит через первый запуск: проверяет локальные каталоги, показывает QR-код,
304
+ проверяет аккаунт и до пяти чатов, затем предлагает подключить навык агента. Выделите около
305
+ пяти минут. Скачивание истории — отдельный шаг после выбора чата и объёма; setup не запускает
306
+ фоновый сервис. Повторный запуск проверяет существующую сессию без нового входа.
307
+
308
+ ```sh
309
+ max setup --agent codex # QR-вход и навык Codex
310
+ max setup --agent claude # или Claude Code
311
+ max setup --method qr-chrome # QR через web.max.ru в Chromium
312
+ max setup --method sms # номер телефона вводится в браузере
313
+ max setup --method token # скрытый ввод токена или stdin
314
+ max setup --help # все способы и примеры
315
+ ```
316
+
317
+ Вместо агента можно выбрать `cursor`, `gemini`, `all` или `none`. Агент перед входом читает
318
+ `max skill show`; инструкция доступна без сессии. `max session start` остаётся отдельной
319
+ командой импорта токена, а `max session start qr` — явного повторного входа при истёкшей сессии
320
+ ([docs/sessions.md](docs/sessions.md)).
321
+
322
+ Несколько аккаунтов — несколько профилей, и профиль называется **первым словом**, а не флагом:
323
+
324
+ ```sh
325
+ max chats list # профиль default
326
+ max personal chats list # профиль personal
327
+ export MAX_PROFILE=personal # или на всю сессию оболочки
328
+ ```
329
+
330
+ ## Использование
331
+
332
+ **Бот пишет в группу, закрепляет объявление и следит за порядком:**
333
+
334
+ ```sh
335
+ max sales bot messages send "Команда продаж" "**Сборка готова**" --md --file report.pdf
336
+ max sales bot messages pin "Команда продаж" <mid> # id сообщения — из ответа на send
337
+ max sales bot watch --events # всё, что происходит в чатах бота, по мере прихода
338
+ max sales bot chats rules set "Команда продаж" links delete
339
+ max sales bot chats moderate "Команда продаж" --dry-run # что нарушает правила — без действий
340
+ max sales bot contacts show "Иван" # где человек писал и его личный чат с ботом
341
+ ```
342
+
343
+ **Разговор от своего имени:**
344
+
345
+ ```sh
346
+ max inbox # непрочитанное во всех чатах, ничего не отмечая
347
+ max messages list "Иван Петров" --limit 20
348
+ max messages send "Иван Петров" "Созвонимся в 15:00?" --reply-to <id>
349
+ max reactions add "Иван Петров" <id> 👍
350
+ max messages send 0 "Позвонить маме" --at-time 2h # напоминание себе в «Избранное» через два часа
351
+ max review --since-time 1d # вся переписка за сутки: кто кому что обещал
352
+ ```
353
+
354
+ **Группа, которую вы ведёте:**
355
+
356
+ ```sh
357
+ max chats create "Поход" "Аня" "Борис" # создать и позвать людей
358
+ max chats admins add "Поход" "Аня" --can pin,members
359
+ max chats link reset "Поход" # старая ссылка-приглашение перестаёт работать
360
+ max polls create "Поход" "Когда едем?" "Суббота" "Воскресенье"
361
+ max review --chat "Поход" --unanswered # вопросы, на которые сутки никто не ответил
362
+ max chats moderate "Поход" --dry-run # спам, чужие ссылки, флуд — по вашим правилам
363
+ ```
364
+
365
+ **Найти и сохранить:**
366
+
367
+ ```sh
368
+ max search all "договор" # сообщения, почта и заметки сразу, без сети
369
+ max search messages "договор" --chat "Проект Альфа" # только сообщения одного чата
370
+ max store fetch "Проект Альфа" --last 500
371
+ max store export "Проект Альфа" --format markdown --output alfa.md
372
+ ```
373
+
374
+ Каждая команда отвечает JSON с `--json` и пишет в журнал, что отправила, — без текстов.
375
+
376
+ Полностью: [docs/usage.md](docs/usage.md). Каждая команда и каждая опция:
377
+ [docs/commands.md](docs/commands.md) — эта страница собирается из самой программы, поэтому описать
378
+ версию, которой не существует, она не может.
379
+
380
+ ## Для скриптов и агентов
381
+
382
+ ### Навык для агентов с терминалом
383
+
384
+ Навык (skill) — файл с инструкцией, который агент читает перед работой. В навыке `max` описано,
385
+ какие команды есть, что агент делает только по вашей просьбе и как безопасно повторить отправку.
386
+ Его понимают **Claude Code**, **Codex**, **Cursor** и **Gemini CLI**. Навык ставится одной командой и всегда
387
+ той же версии, что и `max`:
388
+
389
+ ```sh
390
+ max skill show # прочитать перед входом
391
+ max skill install --for all # установить без входа
392
+ ```
393
+
394
+ Команда кладёт навык в `~/.claude/skills/max-cli/` для Claude Code и в `~/.agents/skills/max-cli/`
395
+ для Codex, Gemini CLI и Cursor (при поддержке обнаружения навыков); `--for claude` или `--for agents` — только в одну из папок. После
396
+ обновления `max` запустите её ещё раз. Если навыка нет или он старше `max`, агент раз в сутки
397
+ увидит об этом строку в stderr; выключается `max config set skillHint false --defaults`.
398
+
399
+ Как эти агенты находят навыки: [Codex](https://learn.chatgpt.com/docs/build-skills),
400
+ [Gemini CLI](https://geminicli.com/docs/cli/skills/).
401
+
402
+ ### MCP-сервер для агентов без терминала
403
+
404
+ Claude Desktop, Cursor и другие клиенты MCP подключаются к `max mcp` и работают с тем же
405
+ аккаунтом. Права `deny`/`readonly` запрещают записи; `ask`/`allow` допускают запрошенное действие через MCP.
406
+ Серверных форм подтверждения нет; подтверждение вызовов зависит от настроек вашего ИИ-приложения.
407
+ Навык доступен ресурсом `max://skill`. Для браузерных клиентов есть
408
+ `max mcp --http --public-url https://<имя>.ts.net`: HTTPS-туннель и вход по коду.
409
+ `--permission ключ=уровень` временно переопределяет права процесса ([подключение](docs/remote.md)).
410
+
411
+ ```sh
412
+ max mcp doctor # проверить локальный MCP
413
+ max mcp setup codex # Codex
414
+ max mcp setup claude-code # Claude Code
415
+ max mcp config # запись для Claude Desktop, Cursor и других — с полными путями
416
+ ```
417
+
418
+ Команды сервера — `/catch-up`, `/review`, `/reply`, `/find` — готовые просьбы: агент знает, какие
419
+ инструменты вызвать и чего не делать.
420
+
421
+ ### Ответы в JSON
422
+
423
+ ```sh
424
+ max chats list --json
425
+ ```
426
+
427
+ С `--json` команда печатает только данные в JSON, без таблиц, цвета и подсказок. Так же она
428
+ работает, когда её вывод читает другая программа, — например, в конвейере `max … | jq`. Любой
429
+ список — чаты, сообщения, участники, всё у бота — приходит в одной форме:
430
+
431
+ ```json
432
+ { "items": [ … ], "page": 1, "limit": 20, "hasMore": true }
433
+ ```
434
+
435
+ Ошибка приходит отдельно от данных — одной строкой в stderr, а stdout остаётся пустым, поэтому её
436
+ нельзя принять за пустой результат:
437
+
438
+ ```json
439
+ {"error":{"code":"authentication_error","message":"no session for profile \"default\" — run `max setup` in a local terminal; agents: read `max skill show`"}}
440
+ ```
441
+
442
+ У каждой ошибки есть номер — код завершения программы. По нему скрипт решает, что делать дальше:
443
+ `4` — нужно войти, `6` — чат или сообщение не найдены, `9` — MAX не ответил вовремя, `14` —
444
+ неизвестно, выполнено ли изменение. Все коды — в [docs/commands.md](docs/commands.md).
445
+
446
+ ## Безопасность
447
+
448
+ - Токен входа — в системном хранилище паролей, не в файле и не в строке команды.
449
+ - Локальная копия переписки и все служебные файлы доступны только вашему пользователю; от кражи
450
+ диска защищает шифрование диска целиком.
451
+ - Перед каждой отправкой, в том числе через фоновый сервер и MCP, `max` проверяет ограничения
452
+ профиля и пишет строку в журнал — без текста сообщения.
453
+ - Подтверждение MCP-вызовов настройте в приложении агента. `--file` не отправляет ключи и скрытые
454
+ файлы без `--allow-any-file`; ограничения профиля действуют при каждом вызове.
455
+ - Ограничения защищают от агента, которого уговорило прочитанное сообщение, но не от агента,
456
+ который хочет их обойти: против такого нужна граница снаружи — песочница или отдельный
457
+ пользователь.
458
+
459
+ Подробно — что пишется на диск, что уходит в сеть и чего инструмент не делает никогда:
460
+ [docs/security.md](docs/security.md).
461
+
462
+ ## Документация
463
+
464
+ - [docs/installation.md](docs/installation.md) — установка, обновление, куда что ложится
465
+ - [docs/bot.md](docs/bot.md) — бот: токен, несколько ботов, сообщения, чаты, список получателей, любая операция API
466
+ - [docs/usage.md](docs/usage.md) — личный аккаунт: вход, чтение, отправка, машинный режим
467
+ - [docs/sessions.md](docs/sessions.md) — токен, хранилище паролей, профили
468
+ - [docs/configuration.md](docs/configuration.md) — настройка по шагам
469
+ - [docs/configuration-reference.md](docs/configuration-reference.md) — все ключи, переменные и порядок разрешения
470
+ - [docs/cli-contract.md](docs/cli-contract.md) — команды, JSON, ошибки, пределы и запуск агентом
471
+ - [docs/mcp.md](docs/mcp.md) — MCP-сервер: подключение, отправка, соединение с MAX
472
+ - [docs/remote.md](docs/remote.md) — ChatGPT или Claude в браузере
473
+ - [docs/groups.md](docs/groups.md) — группы, которые вы ведёте: сценарии с агентом, правила, проверка
474
+ - [docs/people.md](docs/people.md) — один человек: профиль, его сообщения по чатам, похож ли на бота
475
+ - [docs/recipes.md](docs/recipes.md) — рецепты для агентов: сводки, отчёты, долги, напоминания, расписание
476
+ - [docs/diagnostics.md](docs/diagnostics.md) — `--trace`, `--record`, `max runs`
477
+ - [docs/roadmap.md](docs/roadmap.md) — что планируется
478
+ - [docs/security.md](docs/security.md) — что пишется на диск, а что никогда
479
+ - [docs/troubleshooting.md](docs/troubleshooting.md) — по симптому: что делать, когда не работает
480
+ - [docs/commands.md](docs/commands.md) — каждая команда и опция — **генерируется** из программы
481
+ - [docs/dev/protocol.md](docs/dev/protocol.md) — каждый опкод и откуда известна его форма — **генерируется**
482
+ - [docs/dev/ARCHITECTURE.md](docs/dev/ARCHITECTURE.md) — как это устроено и какие швы нельзя пересекать
483
+ - [docs/dev/BACKLOG.md](docs/dev/BACKLOG.md) — что осталось
484
+
485
+ Оглавление целиком — [docs/README.md](docs/README.md).
486
+
487
+ ## Разработка
488
+
489
+ ```sh
490
+ pnpm install
491
+ pnpm lint && pnpm typecheck && pnpm test
492
+ pnpm build && pnpm smoke:bun # собранная команда под вторым рантаймом
493
+ pnpm generate # переписать сгенерированные файлы
494
+ ```
495
+
496
+ Протокол MAX неофициальный и разобран обратной инженерией: это не Bot API. Каждый опкод и форма
497
+ каждого сообщения объявлены один раз в `src/spec/`, а реестр, типизированный клиент и
498
+ [docs/dev/protocol.md](docs/dev/protocol.md) из них генерируются — и CI падает, если дерево устарело.
499
+
500
+ Половина, не имеющая отношения к MAX — потоки вывода, рендерер, коды ошибок, хранилище паролей, часы, —
501
+ вынесена в [`@wirecat/cli-core`](https://github.com/WireCatLabs/cli-core) и общая с `braze-cli`.
502
+
503
+ ## Дорожная карта
504
+
505
+ [docs/roadmap.md](docs/roadmap.md).
506
+
507
+ ## Лицензия
508
+
509
+ MIT — см. [LICENSE](LICENSE).
510
+
511
+ ## Участие
512
+
513
+ Пулл-реквесты, сообщения об ошибках и предложения приветствуются —
514
+ [issues](https://github.com/WireCatLabs/max-cli/issues). Как устроен код и как его проверять —
515
+ [docs/dev/ARCHITECTURE.md](docs/dev/ARCHITECTURE.md) и [docs/dev/TESTING.md](docs/dev/TESTING.md).
516
+
517
+ ### Private contact notes and automatic tags
518
+
519
+ `max contacts alias set <person> <alias>` задаёт локальное имя для выбранного аккаунта;
520
+ `contacts rename` меняет запись в адресной книге мессенджера. Собственные заметки:
521
+ `contacts notes add <person> --file <path>`, затем `list`, `show`, `edit --revision <n>` и `remove`.
522
+ `contacts show --with-notes` включает заметки явно; `contacts list --search-notes <text>` ищет в них.
523
+ Заметка о контакте видна в каждом профиле, который видит этот контакт; псевдоним — только в своём.
524
+ Обновление контактов сохраняет заметки и псевдонимы. Связывание людей не объединяет эти данные.
525
+
526
+ `max metadata refresh --chat <id>` сохраняет описание группы или канала локально;
527
+ `metadata get --chat <id>` читает сохранённые данные. `tags auto --chat <id> --dry-run`
528
+ показывает метки по ключевым словам. Для актуального описания добавьте `--refresh-metadata`
529
+ без `--dry-run`. Команда обрабатывает не более 500 чатов за запуск, по умолчанию 50.
530
+ Автоматические метки не удаляют ручные; `tags list|remove --source auto` выбирает только
531
+ автоматические метки. Текст сообщений и внешние модели при классификации не используются.
@@ -0,0 +1,17 @@
1
+ import type { Message } from "@wirecat/cli-messaging";
2
+ import type { MessageEditing, MessagePins, MessagePolls, MessageReactions, MessengerAdapter, ReadState, ServerReads } from "@wirecat/cli-messaging/cli";
3
+ import type { MaxClient } from "../client.js";
4
+ import type * as Max from "../domain/models.js";
5
+ import { type Reach } from "../download.js";
6
+ import type { SessionStore } from "../session/store.js";
7
+ export type MaxAdapter = MessengerAdapter & ServerReads & MessageEditing & MessagePins & MessageReactions & Pick<ReadState, "markRead"> & MessagePolls & Required<Pick<MessengerAdapter, "buttons" | "pressButton" | "startBot" | "botApp" | "botByLink" | "joinRequests" | "answerJoinRequest" | "people" | "addContact" | "removeContact" | "block" | "unblock" | "renameContact" | "importContacts" | "folders" | "createFolder" | "updateFolder" | "deleteFolder" | "calls" | "privacy" | "media" | "stickerSets" | "stickers" | "mute" | "updatePrivacy" | "orderFolders" | "updateProfile" | "endOtherSessions" | "sessions" | "lookup" | "createGroup" | "join" | "leave" | "deleteChat" | "clearHistory" | "group" | "updateGroup" | "resetInviteLink" | "addMembers" | "removeMembers" | "addAdmin" | "removeAdmin" | "members" | "chatEvents" | "inspect">>;
8
+ /**
9
+ * cli-messaging's port over a connected `MaxClient` that was built **without** its send guard: the
10
+ * shared services guard every write, and a second guard would count each one twice. The resend
11
+ * rule and the name filling stay in `MaxClient` (`NEED-34`).
12
+ */
13
+ export declare const maxAdapter: (client: MaxClient, store: SessionStore, reach?: Reach, warn?: (message: string) => void, options?: {
14
+ reactions?: boolean;
15
+ }) => MaxAdapter;
16
+ export declare const toMessage: ({ attachments, replyTo, forwardedFrom, ...message }: Max.Message) => Message;
17
+ //# sourceMappingURL=max-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/max-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA6B,OAAO,EAAwC,MAAM,wBAAwB,CAAA;AAEtH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EAET,WAAW,EACZ,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAA6B,KAAK,KAAK,EAAe,MAAM,gBAAgB,CAAA;AAInF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGvD,MAAM,MAAM,UAAU,GAAG,gBAAgB,GACvC,WAAW,GACX,cAAc,GACd,WAAW,GACX,gBAAgB,GAChB,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAC3B,YAAY,GACZ,QAAQ,CACN,IAAI,CACF,gBAAgB,EACd,SAAS,GACT,aAAa,GACb,UAAU,GACV,QAAQ,GACR,WAAW,GACX,cAAc,GACd,mBAAmB,GACnB,QAAQ,GACR,YAAY,GACZ,eAAe,GACf,OAAO,GACP,SAAS,GACT,eAAe,GACf,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,cAAc,GACd,cAAc,GACd,OAAO,GACP,SAAS,GACT,OAAO,GACP,aAAa,GACb,UAAU,GACV,MAAM,GACN,eAAe,GACf,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,UAAU,GACV,QAAQ,GACR,aAAa,GACb,MAAM,GACN,OAAO,GACP,YAAY,GACZ,cAAc,GACd,OAAO,GACP,aAAa,GACb,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,UAAU,GACV,aAAa,GACb,SAAS,GACT,YAAY,GACZ,SAAS,CACZ,CACF,CAAA;AASH;;;;GAIG;AACH,eAAO,MAAM,UAAU,WACb,SAAS,SACV,YAAY,UACZ,KAAK,SACN,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,YACtB;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KAC/B,UAsVF,CAAA;AAyCD,eAAO,MAAM,SAAS,wDAAyD,GAAG,CAAC,OAAO,KAAG,OAK3F,CAAA"}