@leemour/max-cli 0.10.0 → 0.12.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 (249) hide show
  1. package/README.md +25 -4
  2. package/dist/cache/index.d.ts.map +1 -1
  3. package/dist/cache/index.js +10 -4
  4. package/dist/cache/index.js.map +1 -1
  5. package/dist/client.d.ts +35 -2
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +178 -44
  8. package/dist/client.js.map +1 -1
  9. package/dist/commands/backup.d.ts.map +1 -1
  10. package/dist/commands/backup.js +6 -2
  11. package/dist/commands/backup.js.map +1 -1
  12. package/dist/commands/cache.d.ts.map +1 -1
  13. package/dist/commands/cache.js +6 -5
  14. package/dist/commands/cache.js.map +1 -1
  15. package/dist/commands/chats.js +2 -2
  16. package/dist/commands/chats.js.map +1 -1
  17. package/dist/commands/complete.d.ts.map +1 -1
  18. package/dist/commands/complete.js +28 -22
  19. package/dist/commands/complete.js.map +1 -1
  20. package/dist/commands/config.d.ts.map +1 -1
  21. package/dist/commands/config.js +5 -1
  22. package/dist/commands/config.js.map +1 -1
  23. package/dist/commands/context.d.ts +4 -0
  24. package/dist/commands/context.d.ts.map +1 -1
  25. package/dist/commands/context.js +6 -14
  26. package/dist/commands/context.js.map +1 -1
  27. package/dist/commands/doctor.js +51 -39
  28. package/dist/commands/doctor.js.map +1 -1
  29. package/dist/commands/mcp.js +3 -3
  30. package/dist/commands/mcp.js.map +1 -1
  31. package/dist/commands/messages.d.ts.map +1 -1
  32. package/dist/commands/messages.js +6 -4
  33. package/dist/commands/messages.js.map +1 -1
  34. package/dist/commands/models.d.ts.map +1 -1
  35. package/dist/commands/models.js +29 -23
  36. package/dist/commands/models.js.map +1 -1
  37. package/dist/commands/recipients.d.ts.map +1 -1
  38. package/dist/commands/recipients.js +25 -17
  39. package/dist/commands/recipients.js.map +1 -1
  40. package/dist/commands/sends.d.ts.map +1 -1
  41. package/dist/commands/sends.js +8 -6
  42. package/dist/commands/sends.js.map +1 -1
  43. package/dist/commands/server.d.ts.map +1 -1
  44. package/dist/commands/server.js +43 -35
  45. package/dist/commands/server.js.map +1 -1
  46. package/dist/commands/session.d.ts.map +1 -1
  47. package/dist/commands/session.js +6 -10
  48. package/dist/commands/session.js.map +1 -1
  49. package/dist/commands/watch.d.ts +17 -0
  50. package/dist/commands/watch.d.ts.map +1 -1
  51. package/dist/commands/watch.js +73 -38
  52. package/dist/commands/watch.js.map +1 -1
  53. package/dist/config.d.ts +1 -1
  54. package/dist/config.d.ts.map +1 -1
  55. package/dist/config.js +18 -2
  56. package/dist/config.js.map +1 -1
  57. package/dist/diagnose.d.ts +4 -3
  58. package/dist/diagnose.d.ts.map +1 -1
  59. package/dist/diagnose.js +4 -4
  60. package/dist/diagnose.js.map +1 -1
  61. package/dist/domain/models.d.ts +20 -0
  62. package/dist/domain/models.d.ts.map +1 -1
  63. package/dist/domain/models.js.map +1 -1
  64. package/dist/download.d.ts +22 -3
  65. package/dist/download.d.ts.map +1 -1
  66. package/dist/download.js +133 -27
  67. package/dist/download.js.map +1 -1
  68. package/dist/export.d.ts +3 -0
  69. package/dist/export.d.ts.map +1 -1
  70. package/dist/export.js +13 -9
  71. package/dist/export.js.map +1 -1
  72. package/dist/generated/client.generated.d.ts +9 -0
  73. package/dist/generated/client.generated.d.ts.map +1 -1
  74. package/dist/generated/client.generated.js +9 -0
  75. package/dist/generated/client.generated.js.map +1 -1
  76. package/dist/generated/opcodes.generated.d.ts +3 -0
  77. package/dist/generated/opcodes.generated.d.ts.map +1 -1
  78. package/dist/generated/opcodes.generated.js +3 -0
  79. package/dist/generated/opcodes.generated.js.map +1 -1
  80. package/dist/generated/operations.generated.d.ts +20 -0
  81. package/dist/generated/operations.generated.d.ts.map +1 -1
  82. package/dist/generated/operations.generated.js +6 -0
  83. package/dist/generated/operations.generated.js.map +1 -1
  84. package/dist/mcp/confirm.d.ts +21 -9
  85. package/dist/mcp/confirm.d.ts.map +1 -1
  86. package/dist/mcp/confirm.js +55 -29
  87. package/dist/mcp/confirm.js.map +1 -1
  88. package/dist/mcp/instructions.js +3 -3
  89. package/dist/mcp/instructions.js.map +1 -1
  90. package/dist/mcp/prompts.d.ts +7 -0
  91. package/dist/mcp/prompts.d.ts.map +1 -0
  92. package/dist/mcp/prompts.js +45 -0
  93. package/dist/mcp/prompts.js.map +1 -0
  94. package/dist/mcp/resources.d.ts +12 -0
  95. package/dist/mcp/resources.d.ts.map +1 -0
  96. package/dist/mcp/resources.js +42 -0
  97. package/dist/mcp/resources.js.map +1 -0
  98. package/dist/mcp/server.d.ts.map +1 -1
  99. package/dist/mcp/server.js +4 -0
  100. package/dist/mcp/server.js.map +1 -1
  101. package/dist/mcp/tools.d.ts.map +1 -1
  102. package/dist/mcp/tools.js +143 -15
  103. package/dist/mcp/tools.js.map +1 -1
  104. package/dist/output.d.ts.map +1 -1
  105. package/dist/output.js +24 -2
  106. package/dist/output.js.map +1 -1
  107. package/dist/program.d.ts.map +1 -1
  108. package/dist/program.js +51 -5
  109. package/dist/program.js.map +1 -1
  110. package/dist/protocol/connection.d.ts +2 -0
  111. package/dist/protocol/connection.d.ts.map +1 -1
  112. package/dist/protocol/connection.js +27 -5
  113. package/dist/protocol/connection.js.map +1 -1
  114. package/dist/protocol/frame.d.ts +2 -0
  115. package/dist/protocol/frame.d.ts.map +1 -1
  116. package/dist/protocol/frame.js +3 -1
  117. package/dist/protocol/frame.js.map +1 -1
  118. package/dist/protocol/lz4.js +8 -5
  119. package/dist/protocol/lz4.js.map +1 -1
  120. package/dist/rendering/messages.js +9 -10
  121. package/dist/rendering/messages.js.map +1 -1
  122. package/dist/report.d.ts +10 -6
  123. package/dist/report.d.ts.map +1 -1
  124. package/dist/report.js +45 -11
  125. package/dist/report.js.map +1 -1
  126. package/dist/resolve.d.ts +4 -3
  127. package/dist/resolve.d.ts.map +1 -1
  128. package/dist/resolve.js +9 -10
  129. package/dist/resolve.js.map +1 -1
  130. package/dist/runs/recording.d.ts +1 -0
  131. package/dist/runs/recording.d.ts.map +1 -1
  132. package/dist/runs/recording.js +13 -0
  133. package/dist/runs/recording.js.map +1 -1
  134. package/dist/sends/guard.d.ts +35 -4
  135. package/dist/sends/guard.d.ts.map +1 -1
  136. package/dist/sends/guard.js +128 -28
  137. package/dist/sends/guard.js.map +1 -1
  138. package/dist/sends/journal.d.ts +17 -3
  139. package/dist/sends/journal.d.ts.map +1 -1
  140. package/dist/sends/journal.js +62 -2
  141. package/dist/sends/journal.js.map +1 -1
  142. package/dist/sends/recipients.d.ts +3 -1
  143. package/dist/sends/recipients.d.ts.map +1 -1
  144. package/dist/sends/recipients.js +7 -2
  145. package/dist/sends/recipients.js.map +1 -1
  146. package/dist/server/lines.d.ts +8 -2
  147. package/dist/server/lines.d.ts.map +1 -1
  148. package/dist/server/lines.js +13 -2
  149. package/dist/server/lines.js.map +1 -1
  150. package/dist/server/server-connection.d.ts +9 -6
  151. package/dist/server/server-connection.d.ts.map +1 -1
  152. package/dist/server/server-connection.js +16 -7
  153. package/dist/server/server-connection.js.map +1 -1
  154. package/dist/server/server.d.ts +11 -4
  155. package/dist/server/server.d.ts.map +1 -1
  156. package/dist/server/server.js +132 -20
  157. package/dist/server/server.js.map +1 -1
  158. package/dist/server/start.d.ts +2 -0
  159. package/dist/server/start.d.ts.map +1 -1
  160. package/dist/server/start.js +8 -3
  161. package/dist/server/start.js.map +1 -1
  162. package/dist/session/handshake.d.ts +12 -1
  163. package/dist/session/handshake.d.ts.map +1 -1
  164. package/dist/session/handshake.js +4 -2
  165. package/dist/session/handshake.js.map +1 -1
  166. package/dist/session/prompt.d.ts.map +1 -1
  167. package/dist/session/prompt.js +7 -1
  168. package/dist/session/prompt.js.map +1 -1
  169. package/dist/session/store.d.ts +9 -2
  170. package/dist/session/store.d.ts.map +1 -1
  171. package/dist/session/store.js +19 -4
  172. package/dist/session/store.js.map +1 -1
  173. package/dist/spec/define.d.ts +12 -0
  174. package/dist/spec/define.d.ts.map +1 -1
  175. package/dist/spec/define.js.map +1 -1
  176. package/dist/spec/guards.d.ts +16 -0
  177. package/dist/spec/guards.d.ts.map +1 -0
  178. package/dist/spec/guards.js +30 -0
  179. package/dist/spec/guards.js.map +1 -0
  180. package/dist/spec/index.d.ts.map +1 -1
  181. package/dist/spec/index.js +6 -0
  182. package/dist/spec/index.js.map +1 -1
  183. package/dist/spec/operations/account.d.ts.map +1 -1
  184. package/dist/spec/operations/account.js +3 -0
  185. package/dist/spec/operations/account.js.map +1 -1
  186. package/dist/spec/operations/assets.d.ts +10 -0
  187. package/dist/spec/operations/assets.d.ts.map +1 -0
  188. package/dist/spec/operations/assets.js +20 -0
  189. package/dist/spec/operations/assets.js.map +1 -0
  190. package/dist/spec/operations/attachments.d.ts.map +1 -1
  191. package/dist/spec/operations/attachments.js +2 -0
  192. package/dist/spec/operations/attachments.js.map +1 -1
  193. package/dist/spec/operations/banners.d.ts +7 -0
  194. package/dist/spec/operations/banners.d.ts.map +1 -0
  195. package/dist/spec/operations/banners.js +16 -0
  196. package/dist/spec/operations/banners.js.map +1 -0
  197. package/dist/spec/operations/calls.d.ts +8 -0
  198. package/dist/spec/operations/calls.d.ts.map +1 -0
  199. package/dist/spec/operations/calls.js +18 -0
  200. package/dist/spec/operations/calls.js.map +1 -0
  201. package/dist/spec/operations/chats.d.ts.map +1 -1
  202. package/dist/spec/operations/chats.js +46 -0
  203. package/dist/spec/operations/chats.js.map +1 -1
  204. package/dist/spec/operations/contacts.d.ts.map +1 -1
  205. package/dist/spec/operations/contacts.js +8 -0
  206. package/dist/spec/operations/contacts.js.map +1 -1
  207. package/dist/spec/operations/folders.d.ts.map +1 -1
  208. package/dist/spec/operations/folders.js +5 -0
  209. package/dist/spec/operations/folders.js.map +1 -1
  210. package/dist/spec/operations/login.d.ts.map +1 -1
  211. package/dist/spec/operations/login.js +6 -0
  212. package/dist/spec/operations/login.js.map +1 -1
  213. package/dist/spec/operations/messages.d.ts.map +1 -1
  214. package/dist/spec/operations/messages.js +50 -0
  215. package/dist/spec/operations/messages.js.map +1 -1
  216. package/dist/spec/operations/session.d.ts +5 -1
  217. package/dist/spec/operations/session.d.ts.map +1 -1
  218. package/dist/spec/operations/session.js +9 -1
  219. package/dist/spec/operations/session.js.map +1 -1
  220. package/dist/spec/operations/uploads.d.ts.map +1 -1
  221. package/dist/spec/operations/uploads.js +2 -0
  222. package/dist/spec/operations/uploads.js.map +1 -1
  223. package/dist/transcribe/index.d.ts.map +1 -1
  224. package/dist/transcribe/index.js +4 -1
  225. package/dist/transcribe/index.js.map +1 -1
  226. package/dist/transcribe/install.d.ts +3 -1
  227. package/dist/transcribe/install.d.ts.map +1 -1
  228. package/dist/transcribe/install.js +24 -1
  229. package/dist/transcribe/install.js.map +1 -1
  230. package/dist/upload.d.ts +3 -1
  231. package/dist/upload.d.ts.map +1 -1
  232. package/dist/upload.js +34 -4
  233. package/dist/upload.js.map +1 -1
  234. package/dist/version.d.ts +1 -1
  235. package/dist/version.js +1 -1
  236. package/package.json +11 -11
  237. package/skills/max-cli/SKILL.md +6 -2
  238. package/dist/testing/mock-max.d.ts +0 -49
  239. package/dist/testing/mock-max.d.ts.map +0 -1
  240. package/dist/testing/mock-max.js +0 -80
  241. package/dist/testing/mock-max.js.map +0 -1
  242. package/dist/testing/sandbox.d.ts +0 -2
  243. package/dist/testing/sandbox.d.ts.map +0 -1
  244. package/dist/testing/sandbox.js +0 -36
  245. package/dist/testing/sandbox.js.map +0 -1
  246. package/dist/testing/unscripted.d.ts +0 -2
  247. package/dist/testing/unscripted.d.ts.map +0 -1
  248. package/dist/testing/unscripted.js +0 -18
  249. package/dist/testing/unscripted.js.map +0 -1
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  <p align="center">
2
- <img src="https://raw.githubusercontent.com/leemour/max-cli/main/docs/design/logo.png" alt="max-cli" width="160">
2
+ <img src="https://raw.githubusercontent.com/leemour/max-cli/main/docs/design/logo_text.png" alt="Max CLI" width="480">
3
3
  </p>
4
4
 
5
5
  # max-cli
6
6
 
7
- Ваш личный аккаунт [MAX](https://max.ru) в терминале и в ИИ-агентах. `max` — командная строка и
7
+ Ваш личный аккаунт мессенджера [MAX](https://max.ru) в терминале и в ИИ-агентах. `max` — программа для терминала и
8
8
  MCP-сервер: читайте и пишите в чаты сами или поручите это Claude, Codex, Cursor и другим агентам.
9
9
 
10
10
  > ⚠️ **max-cli использует неофициальный внутренний API MAX.** API может измениться без
@@ -80,7 +80,7 @@ max messages send "Иван Петров" "Опаздываю на 15 минут
80
80
  - **Читает незаметно.** Чтение не ставит отметку «прочитано»: собеседник не видит, что вы открыли
81
81
  чат. Отметить прочитанным можно, когда нужно: `max chats read` или `--mark-read`.
82
82
  - **Агент не напишет лишнего.** Есть профиль только для чтения, список чатов, в которые можно
83
- писать, и лимит сообщений в час. MCP-сервер может показывать вам каждое сообщение до отправки.
83
+ писать, и лимит сообщений в час. MCP-сервер может показывать вам каждое действие до того, как его выполнить.
84
84
  Если имя подходит к двум чатам, `max` не выбирает сам, а показывает оба.
85
85
  - **Сообщение не уйдёт дважды.** Если связь оборвалась во время отправки, `max` прямо говорит, что
86
86
  не знает, дошло ли сообщение, и даёт команду для повтора. MAX узнаёт повтор и второго сообщения не
@@ -88,6 +88,10 @@ max messages send "Иван Петров" "Опаздываю на 15 минут
88
88
  - **Своя копия переписки.** Всё прочитанное сохраняется на вашем компьютере. По ней работает
89
89
  быстрый поиск по тексту сообщений, и её можно читать без интернета (`--offline`). При входе MAX
90
90
  присылает только то, что изменилось. Стереть копию — `max cache clear`.
91
+ - **Чужой текст не управляет вашим терминалом.** Имена, названия чатов, имена файлов и сообщения
92
+ пишут другие люди. Управляющие символы из них показываются как текст, имя всегда печатается в одну
93
+ строку, а автодополнение подставляет только номер чата — поддельную строку переписки или команду в
94
+ оболочке так не подсунуть.
91
95
  - **Пароль от аккаунта не лежит в файле.** Токен входа хранится в системном хранилище паролей:
92
96
  Keychain в macOS, Secret Service (GNOME Keyring, KWallet) в Linux, диспетчер учётных данных в
93
97
  Windows. В историю команд он не попадает.
@@ -111,7 +115,7 @@ max messages send "Иван Петров" "Опаздываю на 15 минут
111
115
 
112
116
  | | max-cli | [PyMax](https://github.com/MaxApiTeam/PyMax) | [max-mcp](https://github.com/renosaza/max-mcp) |
113
117
  |---|:-:|:-:|:-:|
114
- | что это | командная строка и MCP-сервер | библиотека на Python | MCP-сервер на PyMax |
118
+ | что это | программа для терминала и MCP-сервер | библиотека на Python | MCP-сервер на PyMax |
115
119
  | MCP-сервер и навык для агентов | ✅ | — | MCP |
116
120
  | ограничения для агента: только чтение, разрешённые действия, список чатов, лимит в час, подтверждение отправки | ✅ | — | — |
117
121
  | расшифровка голосовых в текст на вашем компьютере | ✅ | — | — |
@@ -140,6 +144,7 @@ max messages send "Иван Петров" "Опаздываю на 15 минут
140
144
  - [Вход](#вход)
141
145
  - [Использование](#использование)
142
146
  - [Для скриптов и агентов](#для-скриптов-и-агентов)
147
+ - [Безопасность](#безопасность)
143
148
  - [Документация](#документация)
144
149
  - [Разработка](#разработка)
145
150
  - [Дорожная карта](#дорожная-карта)
@@ -279,6 +284,22 @@ max chats list --json
279
284
  `4` — нужно войти, `6` — чат или сообщение не найдены, `9` — MAX не ответил вовремя, `14` —
280
285
  неизвестно, ушло ли сообщение. Все коды — в [docs/commands.md](docs/commands.md).
281
286
 
287
+ ## Безопасность
288
+
289
+ - Токен входа — в системном хранилище паролей, не в файле и не в строке команды.
290
+ - Локальная копия переписки и все служебные файлы доступны только вашему пользователю; от кражи
291
+ диска защищает шифрование диска целиком.
292
+ - Перед каждой отправкой, в том числе через фоновый сервер и MCP, `max` проверяет ограничения
293
+ профиля и пишет строку в журнал — без текста сообщения.
294
+ - MCP-сервер с `--confirm-send` показывает вам каждое действие, которое увидят другие, до того как
295
+ его выполнить; `--file` не отправляет ключи и скрытые файлы без `--allow-any-file`.
296
+ - Ограничения защищают от агента, которого уговорило прочитанное сообщение, но не от агента,
297
+ который хочет их обойти: против такого нужна граница снаружи — песочница или отдельный
298
+ пользователь.
299
+
300
+ Подробно — что пишется на диск, что уходит в сеть и чего инструмент не делает никогда:
301
+ [docs/security.md](docs/security.md).
302
+
282
303
  ## Документация
283
304
 
284
305
  - [docs/installation.md](docs/installation.md) — установка, обновление, куда что ложится
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,YAAY,CAAA;AAEvD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,MAAM,QAAO,MAAM,CAAC,UAAU,KAAiB,MACF,CAAA;AAEvF,eAAO,MAAM,gBAAgB,YAClB,MAAM,uBACmB,mBAAmB,KACpD,OAAO,CAAC,UAAU,GAAG,SAAS,CAchC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,YAAY,CAAA;AAEvD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,MAAM,QAAO,MAAM,CAAC,UAAU,KAAiB,MACF,CAAA;AAEvF,eAAO,MAAM,gBAAgB,YAClB,MAAM,uBACmB,mBAAmB,KACpD,OAAO,CAAC,UAAU,GAAG,SAAS,CAmBhC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { chmodSync, mkdirSync } from "node:fs";
1
+ import { chmodSync, closeSync, existsSync, mkdirSync, openSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { resolvePaths } from "@leemour/cli-core";
4
4
  import { openCache } from "./open.js";
@@ -17,9 +17,15 @@ export const openProfileCache = async (profile, { env = process.env, onProblem }
17
17
  // SQLite will not create a file in a directory that does not exist, and on a fresh machine
18
18
  // this one never does.
19
19
  mkdirSync(dirname(file), { recursive: true, mode: 0o700 });
20
- const store = openStore({ database: await openCache(file) });
21
- chmodSync(file, 0o600);
22
- return store;
20
+ chmodSync(dirname(file), 0o700);
21
+ // SQLite gives the -wal and -shm files the database's own mode, and writes the -wal while it
22
+ // opens — so the database has to be 0600 before that, not after. Older ones are put right too.
23
+ closeSync(openSync(file, "a", 0o600));
24
+ for (const path of [file, `${file}-wal`, `${file}-shm`]) {
25
+ if (existsSync(path))
26
+ chmodSync(path, 0o600);
27
+ }
28
+ return openStore({ database: await openCache(file) });
23
29
  }
24
30
  catch (error) {
25
31
  onProblem?.(`the local record is unavailable, so this ran against MAX: ${asReason(error)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAmB,SAAS,EAAE,MAAM,YAAY,CAAA;AAiBvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAU,EAAE,CAChG,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,KAAK,CAAC,CAAA;AAEvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAe,EACf,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAwB,EAAE,EACzB,EAAE;IACnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE3C,IAAI,CAAC;QACH,2FAA2F;QAC3F,uBAAuB;QACvB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5D,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtB,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,EAAE,CAAC,6DAA6D,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3F,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,mGAAmG;AACnG,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAU,EAAE;IAC1C,IAAI,KAAK,YAAY,eAAe;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IAC1D,MAAM,IAAI,GAAI,KAA4B,EAAE,IAAI,CAAA;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAA;AACrG,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAmB,SAAS,EAAE,MAAM,YAAY,CAAA;AAiBvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAU,EAAE,CAChG,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,KAAK,CAAC,CAAA;AAEvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAe,EACf,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAwB,EAAE,EACzB,EAAE;IACnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE3C,IAAI,CAAC;QACH,2FAA2F;QAC3F,uBAAuB;QACvB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAC/B,6FAA6F;QAC7F,+FAA+F;QAC/F,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QACrC,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;YACxD,IAAI,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,EAAE,CAAC,6DAA6D,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3F,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,mGAAmG;AACnG,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAU,EAAE;IAC1C,IAAI,KAAK,YAAY,eAAe;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IAC1D,MAAM,IAAI,GAAI,KAA4B,EAAE,IAAI,CAAA;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAA;AACrG,CAAC,CAAA"}
package/dist/client.d.ts CHANGED
@@ -1,12 +1,14 @@
1
1
  import type { CacheStore, PersonOrder, SyncSummary } from "./cache/store.js";
2
- import type { AccountSession, AttachmentLink, Chat, ChatCard, ChatKind, Contact, ContactImport, Deletion, Folder, GroupCard, GroupSettings, Id, Inbox, Message, MessageHit, Page, PersonCard, Pin, Profile, Reactions, ReadMark, WindowedMessage } from "./domain/models.js";
2
+ import type { AccountSession, AttachmentLink, Chat, ChatCard, ChatKind, Contact, ContactImport, Deletion, Folder, GroupCard, GroupSettings, Id, Inbox, Message, MessageChange, MessageHit, Page, PersonCard, Pin, Profile, Reactions, ReadMark, WindowedMessage } from "./domain/models.js";
3
3
  import { type Wire } from "./protocol/connection.js";
4
4
  import { type Payload } from "./protocol/frame.js";
5
5
  import { type DiagnosticEvent } from "./runs/events.js";
6
6
  import type { SendGuard } from "./sends/guard.js";
7
7
  import type { ChatAction } from "./sends/journal.js";
8
+ import { type Resume } from "./session/handshake.js";
8
9
  import { type QrLogin } from "./session/login.js";
9
10
  import { type SessionState, type SessionStore } from "./session/store.js";
11
+ import { ASSET_TYPES } from "./spec/operations/assets.js";
10
12
  export interface MaxClientOptions {
11
13
  store: SessionStore;
12
14
  timeoutMs?: number;
@@ -17,6 +19,8 @@ export interface MaxClientOptions {
17
19
  * changed. `max serve` needs that: it hands its login to other commands as theirs.
18
20
  */
19
21
  fullLogin?: boolean;
22
+ /** The previous connection's login, for logging in again as a web tab does (`MAX-51`). `max serve` only. */
23
+ resume?: ResumeFrom;
20
24
  /**
21
25
  * Where a protocol note goes. Never stdout: in machine mode that stream carries one JSON value
22
26
  * and nothing else.
@@ -55,7 +59,7 @@ export interface MaxClientOptions {
55
59
  */
56
60
  export declare class MaxClient {
57
61
  #private;
58
- constructor({ store, timeoutMs, connection, warn, cache, offline, events, sends, fullLogin, }: MaxClientOptions);
62
+ constructor({ store, timeoutMs, connection, warn, cache, offline, events, sends, fullLogin, resume, }: MaxClientOptions);
59
63
  readonly account: {
60
64
  me: () => Promise<Profile>;
61
65
  /**
@@ -107,6 +111,8 @@ export declare class MaxClient {
107
111
  * the difference between an answer and a card of nulls for a chat that does not exist.
108
112
  */
109
113
  show: (reference: string) => Promise<ChatCard>;
114
+ /** The other person in a one-to-one chat, by the chat's participants; `undefined` for anything else. */
115
+ partner: (chatId: Id) => Promise<Id | undefined>;
110
116
  /** What a link leads to, without joining it. */
111
117
  inspect: (link: string) => Promise<GroupCard>;
112
118
  join: (link: string) => Promise<GroupCard>;
@@ -123,6 +129,7 @@ export declare class MaxClient {
123
129
  */
124
130
  create: (title: string, people?: string[]) => Promise<GroupCard>;
125
131
  members: {
132
+ /** No history unless asked (`NEED-272`): what was said before somebody joined is not theirs by default. */
126
133
  add: (reference: string, people: string[], { history }?: {
127
134
  history?: boolean;
128
135
  }) => Promise<ChatChange>;
@@ -318,6 +325,7 @@ export declare class MaxClient {
318
325
  replyTo?: Id;
319
326
  markdown?: boolean;
320
327
  files?: string[];
328
+ anyFile?: boolean;
321
329
  at?: number;
322
330
  }) => Promise<Message>;
323
331
  /** Puts one emoji reaction on a message; it replaces the one you had. */
@@ -414,6 +422,13 @@ export declare class MaxClient {
414
422
  * What a hidden web tab reports once, 20 s after it opened: the chat list, shown at `at`.
415
423
  * `sessionId` is when the tab's connection began, and it survives the tab's reconnects.
416
424
  */
425
+ /**
426
+ * **The reads a web tab sends after every login** (`MAX-52`, recorded 2026-09-25), in its order
427
+ * and all at once, as it sends them: folders, banners, call history, then the four asset sets.
428
+ * Each carries the sync value its previous answer returned — 0 the first time — and the answers
429
+ * are kept only for those. `max serve` alone sends them; a one-shot command never did.
430
+ */
431
+ readLikeTab: (sync: TabSync) => Promise<TabSync>;
417
432
  chatListShown: ({ at, sessionId }: {
418
433
  at: number;
419
434
  sessionId: number;
@@ -423,6 +438,11 @@ export declare class MaxClient {
423
438
  * a command as that command's own login.
424
439
  */
425
440
  snapshot: () => Payload;
441
+ /**
442
+ * What the next login on a new connection sends to pick up where this one is (`MAX-51`):
443
+ * `undefined` when this login lacks what that needs, and the next one is then a full login.
444
+ */
445
+ resumeFrom: () => ResumeFrom | undefined;
426
446
  /**
427
447
  * Keeps the snapshot current from one push. **`false` means it can no longer be trusted** and
428
448
  * the server stops handing it out until it has logged in again. What web.max.ru does with each
@@ -443,6 +463,8 @@ export declare class MaxClient {
443
463
  * Anything else pushed answers `undefined`.
444
464
  */
445
465
  message: (opcode: number, payload: Payload) => Promise<MessageHit | undefined>;
466
+ /** An edit, a deletion or a reaction pushed by MAX, or `undefined` for anything else. */
467
+ change: (opcode: number, payload: Payload) => Promise<MessageChange | undefined>;
446
468
  };
447
469
  /**
448
470
  * Opens the connection and logs in with the stored token, or with one offered for trial.
@@ -490,6 +512,17 @@ export interface PageRequest {
490
512
  * `undefined` for anything that is not a message id.
491
513
  */
492
514
  export declare const timeOfMessageId: (id: Id) => number | undefined;
515
+ /** What `readLikeTab` sends back to MAX on the next login. */
516
+ export interface TabSync {
517
+ folders: number;
518
+ calls: number;
519
+ assets: Partial<Record<(typeof ASSET_TYPES)[number], number>>;
520
+ }
521
+ export declare const FIRST_TAB_SYNC: TabSync;
522
+ export interface ResumeFrom {
523
+ login: Resume;
524
+ chats: Payload[];
525
+ }
493
526
  /** Bounded so that deleting a long history is many spread-out calls, never one sweep (`MAX-47`). */
494
527
  export declare const DELETE_AT_ONCE = 10;
495
528
  /** What web.max.ru asks for per page when history is scrolled up (`RES-9`). */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}