@wirecat/max-cli 0.50.0 → 0.52.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 (219) hide show
  1. package/README.md +9 -9
  2. package/dist/adapter/max-adapter.d.ts.map +1 -1
  3. package/dist/adapter/max-adapter.js +8 -4
  4. package/dist/adapter/max-adapter.js.map +1 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +2 -0
  7. package/dist/app.js.map +1 -1
  8. package/dist/bot/adapter.d.ts.map +1 -1
  9. package/dist/bot/adapter.js +3 -2
  10. package/dist/bot/adapter.js.map +1 -1
  11. package/dist/bot/mcp-tools.d.ts.map +1 -1
  12. package/dist/bot/mcp-tools.js +3 -3
  13. package/dist/bot/mcp-tools.js.map +1 -1
  14. package/dist/bot/transport.d.ts.map +1 -1
  15. package/dist/bot/transport.js +8 -3
  16. package/dist/bot/transport.js.map +1 -1
  17. package/dist/bot/uploads.d.ts +2 -2
  18. package/dist/bot/uploads.d.ts.map +1 -1
  19. package/dist/bot/uploads.js +3 -3
  20. package/dist/bot/uploads.js.map +1 -1
  21. package/dist/client/account.d.ts +39 -0
  22. package/dist/client/account.d.ts.map +1 -0
  23. package/dist/client/account.js +92 -0
  24. package/dist/client/account.js.map +1 -0
  25. package/dist/client/chat-members.d.ts +27 -0
  26. package/dist/client/chat-members.d.ts.map +1 -0
  27. package/dist/client/chat-members.js +73 -0
  28. package/dist/client/chat-members.js.map +1 -0
  29. package/dist/client/chat-reads.d.ts +57 -0
  30. package/dist/client/chat-reads.d.ts.map +1 -0
  31. package/dist/client/chat-reads.js +160 -0
  32. package/dist/client/chat-reads.js.map +1 -0
  33. package/dist/client/chat-writes.d.ts +111 -0
  34. package/dist/client/chat-writes.d.ts.map +1 -0
  35. package/dist/client/chat-writes.js +240 -0
  36. package/dist/client/chat-writes.js.map +1 -0
  37. package/dist/client/contacts.d.ts +39 -0
  38. package/dist/client/contacts.d.ts.map +1 -0
  39. package/dist/client/contacts.js +93 -0
  40. package/dist/client/contacts.js.map +1 -0
  41. package/dist/client/delivery.d.ts +35 -0
  42. package/dist/client/delivery.d.ts.map +1 -0
  43. package/dist/client/delivery.js +62 -0
  44. package/dist/client/delivery.js.map +1 -0
  45. package/dist/client/folders.d.ts +20 -0
  46. package/dist/client/folders.d.ts.map +1 -0
  47. package/dist/client/folders.js +57 -0
  48. package/dist/client/folders.js.map +1 -0
  49. package/dist/client/history.d.ts +41 -0
  50. package/dist/client/history.d.ts.map +1 -0
  51. package/dist/client/history.js +111 -0
  52. package/dist/client/history.js.map +1 -0
  53. package/dist/client/live.d.ts +38 -0
  54. package/dist/client/live.d.ts.map +1 -0
  55. package/dist/client/live.js +182 -0
  56. package/dist/client/live.js.map +1 -0
  57. package/dist/client/login.d.ts +11 -0
  58. package/dist/client/login.d.ts.map +1 -0
  59. package/dist/client/login.js +8 -0
  60. package/dist/client/login.js.map +1 -0
  61. package/dist/client/message-reads.d.ts +53 -0
  62. package/dist/client/message-reads.d.ts.map +1 -0
  63. package/dist/client/message-reads.js +164 -0
  64. package/dist/client/message-reads.js.map +1 -0
  65. package/dist/client/message-writes.d.ts +84 -0
  66. package/dist/client/message-writes.d.ts.map +1 -0
  67. package/dist/client/message-writes.js +254 -0
  68. package/dist/client/message-writes.js.map +1 -0
  69. package/dist/client/people.d.ts +31 -0
  70. package/dist/client/people.d.ts.map +1 -0
  71. package/dist/client/people.js +130 -0
  72. package/dist/client/people.js.map +1 -0
  73. package/dist/client/polls.d.ts +53 -0
  74. package/dist/client/polls.d.ts.map +1 -0
  75. package/dist/client/polls.js +141 -0
  76. package/dist/client/polls.js.map +1 -0
  77. package/dist/client/read-policy.d.ts +2 -0
  78. package/dist/client/read-policy.d.ts.map +1 -0
  79. package/dist/client/read-policy.js +34 -0
  80. package/dist/client/read-policy.js.map +1 -0
  81. package/dist/client/request.d.ts +21 -0
  82. package/dist/client/request.d.ts.map +1 -0
  83. package/dist/client/request.js +69 -0
  84. package/dist/client/request.js.map +1 -0
  85. package/dist/client/session.d.ts +50 -0
  86. package/dist/client/session.d.ts.map +1 -0
  87. package/dist/client/session.js +293 -0
  88. package/dist/client/session.js.map +1 -0
  89. package/dist/client/stickers.d.ts +12 -0
  90. package/dist/client/stickers.d.ts.map +1 -0
  91. package/dist/client/stickers.js +29 -0
  92. package/dist/client/stickers.js.map +1 -0
  93. package/dist/client/types.d.ts +54 -0
  94. package/dist/client/types.d.ts.map +1 -0
  95. package/dist/client/types.js +2 -0
  96. package/dist/client/types.js.map +1 -0
  97. package/dist/client/upload-transport.d.ts +15 -0
  98. package/dist/client/upload-transport.d.ts.map +1 -0
  99. package/dist/client/upload-transport.js +49 -0
  100. package/dist/client/upload-transport.js.map +1 -0
  101. package/dist/client/uploads.d.ts +15 -0
  102. package/dist/client/uploads.d.ts.map +1 -0
  103. package/dist/client/uploads.js +25 -0
  104. package/dist/client/uploads.js.map +1 -0
  105. package/dist/client/values.d.ts +120 -0
  106. package/dist/client/values.d.ts.map +1 -0
  107. package/dist/client/values.js +186 -0
  108. package/dist/client/values.js.map +1 -0
  109. package/dist/client/writes.d.ts +40 -0
  110. package/dist/client/writes.d.ts.map +1 -0
  111. package/dist/client/writes.js +186 -0
  112. package/dist/client/writes.js.map +1 -0
  113. package/dist/client.d.ts +29 -644
  114. package/dist/client.d.ts.map +1 -1
  115. package/dist/client.js +267 -2828
  116. package/dist/client.js.map +1 -1
  117. package/dist/commands/bot-comments.d.ts.map +1 -1
  118. package/dist/commands/bot-comments.js +13 -13
  119. package/dist/commands/bot-comments.js.map +1 -1
  120. package/dist/commands/bot-context.d.ts.map +1 -1
  121. package/dist/commands/bot-context.js +11 -3
  122. package/dist/commands/bot-context.js.map +1 -1
  123. package/dist/commands/bot-members.d.ts.map +1 -1
  124. package/dist/commands/bot-members.js +25 -14
  125. package/dist/commands/bot-members.js.map +1 -1
  126. package/dist/commands/bot-messenger.d.ts +5 -2
  127. package/dist/commands/bot-messenger.d.ts.map +1 -1
  128. package/dist/commands/bot-messenger.js +7 -11
  129. package/dist/commands/bot-messenger.js.map +1 -1
  130. package/dist/commands/bot-setup.d.ts.map +1 -1
  131. package/dist/commands/bot-setup.js +3 -2
  132. package/dist/commands/bot-setup.js.map +1 -1
  133. package/dist/commands/bot.d.ts +2 -1
  134. package/dist/commands/bot.d.ts.map +1 -1
  135. package/dist/commands/bot.js +6 -6
  136. package/dist/commands/bot.js.map +1 -1
  137. package/dist/commands/config.d.ts.map +1 -1
  138. package/dist/commands/config.js +33 -33
  139. package/dist/commands/config.js.map +1 -1
  140. package/dist/commands/contacts.d.ts.map +1 -1
  141. package/dist/commands/contacts.js +4 -5
  142. package/dist/commands/contacts.js.map +1 -1
  143. package/dist/commands/doctor.d.ts.map +1 -1
  144. package/dist/commands/doctor.js +10 -9
  145. package/dist/commands/doctor.js.map +1 -1
  146. package/dist/commands/mcp.d.ts.map +1 -1
  147. package/dist/commands/mcp.js +13 -13
  148. package/dist/commands/mcp.js.map +1 -1
  149. package/dist/commands/messages.d.ts.map +1 -1
  150. package/dist/commands/messages.js +12 -4
  151. package/dist/commands/messages.js.map +1 -1
  152. package/dist/commands/paging.d.ts +0 -36
  153. package/dist/commands/paging.d.ts.map +1 -1
  154. package/dist/commands/paging.js +0 -50
  155. package/dist/commands/paging.js.map +1 -1
  156. package/dist/commands/recipients.d.ts.map +1 -1
  157. package/dist/commands/recipients.js +15 -14
  158. package/dist/commands/recipients.js.map +1 -1
  159. package/dist/commands/serve.d.ts.map +1 -1
  160. package/dist/commands/serve.js +14 -4
  161. package/dist/commands/serve.js.map +1 -1
  162. package/dist/commands/session.d.ts.map +1 -1
  163. package/dist/commands/session.js +8 -7
  164. package/dist/commands/session.js.map +1 -1
  165. package/dist/commands/setup.js +2 -2
  166. package/dist/commands/setup.js.map +1 -1
  167. package/dist/commands/watch.d.ts +4 -2
  168. package/dist/commands/watch.d.ts.map +1 -1
  169. package/dist/commands/watch.js +21 -5
  170. package/dist/commands/watch.js.map +1 -1
  171. package/dist/config.d.ts +843 -143
  172. package/dist/config.d.ts.map +1 -1
  173. package/dist/config.js +33 -33
  174. package/dist/config.js.map +1 -1
  175. package/dist/mcp/legacy-check.d.ts.map +1 -1
  176. package/dist/mcp/legacy-check.js +5 -3
  177. package/dist/mcp/legacy-check.js.map +1 -1
  178. package/dist/mcp/photo.d.ts.map +1 -1
  179. package/dist/mcp/photo.js +2 -2
  180. package/dist/mcp/photo.js.map +1 -1
  181. package/dist/mcp/prompts.d.ts.map +1 -1
  182. package/dist/mcp/prompts.js +10 -8
  183. package/dist/mcp/prompts.js.map +1 -1
  184. package/dist/mcp/tools.d.ts.map +1 -1
  185. package/dist/mcp/tools.js +36 -27
  186. package/dist/mcp/tools.js.map +1 -1
  187. package/dist/messenger.d.ts.map +1 -1
  188. package/dist/messenger.js +11 -1
  189. package/dist/messenger.js.map +1 -1
  190. package/dist/permissions.d.ts.map +1 -1
  191. package/dist/permissions.js +4 -1
  192. package/dist/permissions.js.map +1 -1
  193. package/dist/program.d.ts.map +1 -1
  194. package/dist/program.js +7 -3
  195. package/dist/program.js.map +1 -1
  196. package/dist/protocol/connection.d.ts.map +1 -1
  197. package/dist/protocol/connection.js +44 -12
  198. package/dist/protocol/connection.js.map +1 -1
  199. package/dist/sends.d.ts +1 -1
  200. package/dist/sends.js +1 -1
  201. package/dist/server/server.d.ts +3 -1
  202. package/dist/server/server.d.ts.map +1 -1
  203. package/dist/server/server.js +39 -21
  204. package/dist/server/server.js.map +1 -1
  205. package/dist/server/subscribe.d.ts.map +1 -1
  206. package/dist/server/subscribe.js +30 -4
  207. package/dist/server/subscribe.js.map +1 -1
  208. package/dist/server/subscribers.d.ts +18 -0
  209. package/dist/server/subscribers.d.ts.map +1 -0
  210. package/dist/server/subscribers.js +146 -0
  211. package/dist/server/subscribers.js.map +1 -0
  212. package/dist/upload.d.ts +6 -5
  213. package/dist/upload.d.ts.map +1 -1
  214. package/dist/upload.js +16 -11
  215. package/dist/upload.js.map +1 -1
  216. package/dist/version.d.ts +1 -1
  217. package/dist/version.js +1 -1
  218. package/package.json +3 -3
  219. package/skills/max-cli/SKILL.md +79 -59
@@ -16,6 +16,7 @@ import { VERSION } from "../version.js";
16
16
  import { fromLine, lineReader, toLine } from "./lines.js";
17
17
  import { serverReplies } from "./replies.js";
18
18
  import { forwardedOperation, OPERATIONS_FINGERPRINT, stopServer } from "./server-connection.js";
19
+ import { Subscribers } from "./subscribers.js";
19
20
  /** The web client's keep-alive interval (web.max.ru bundle, 2026-09-24). A different one is a fingerprint. */
20
21
  const PING_EVERY_MS = 30_000;
21
22
  /**
@@ -51,8 +52,9 @@ const REFRESH_EVERY_MS = 60_000;
51
52
  */
52
53
  export class MaxServer {
53
54
  #options;
55
+ #now;
54
56
  #record;
55
- #subscribers = new Set();
57
+ #subscribers;
56
58
  #listener;
57
59
  #client;
58
60
  #ping;
@@ -68,8 +70,8 @@ export class MaxServer {
68
70
  #markUp = () => { };
69
71
  #refresh;
70
72
  #lastRefresh = 0;
71
- #lastUse = Date.now();
72
- #startedAt = new Date().toISOString();
73
+ #lastUse;
74
+ #startedAt;
73
75
  #idle;
74
76
  #telemetry;
75
77
  /** What the last reads after login answered, sent back on the next login as the tab does (`MAX-52`). */
@@ -78,6 +80,7 @@ export class MaxServer {
78
80
  #resume;
79
81
  #handing = Promise.resolve();
80
82
  #connecting = new Set();
83
+ #connectPromise;
81
84
  #replies;
82
85
  #members;
83
86
  #finish;
@@ -85,6 +88,10 @@ export class MaxServer {
85
88
  done;
86
89
  constructor(options) {
87
90
  this.#options = options;
91
+ this.#now = options.now ?? Date.now;
92
+ this.#lastUse = this.#now();
93
+ this.#startedAt = new Date(this.#lastUse).toISOString();
94
+ this.#subscribers = new Subscribers(options, options.note);
88
95
  this.#members = options.members?.(() => (this.#stopped ? undefined : this.#client));
89
96
  this.#record = maxRecord({ account: () => options.store.readState().viewerId });
90
97
  this.#replies = serverReplies({
@@ -113,7 +120,7 @@ export class MaxServer {
113
120
  async start() {
114
121
  // The socket first: whoever binds it is the profile's one server, and a second one learns it
115
122
  // before it has logged in — not after, with a login MAX has already counted.
116
- const sessionId = Date.now();
123
+ const sessionId = this.#now();
117
124
  try {
118
125
  await this.#listen();
119
126
  await this.#connect();
@@ -127,11 +134,11 @@ export class MaxServer {
127
134
  }
128
135
  if (this.#stopped)
129
136
  return;
130
- this.#reportChatList(sessionId, Date.now() + CHAT_LIST_SHOWN_AFTER_MS);
137
+ this.#reportChatList(sessionId, this.#now() + CHAT_LIST_SHOWN_AFTER_MS);
131
138
  const { idleMs } = this.#options;
132
139
  if (idleMs !== undefined) {
133
140
  this.#idle = setInterval(() => {
134
- if (this.#open.size === 0 && Date.now() - this.#lastUse >= idleMs) {
141
+ if (this.#open.size === 0 && this.#now() - this.#lastUse >= idleMs) {
135
142
  this.#options.note(`nobody has used it for ${Math.round(idleMs / 60_000)} min — stopping`);
136
143
  void this.stop();
137
144
  }
@@ -179,7 +186,20 @@ export class MaxServer {
179
186
  * replaces, if any. Pushes that arrive before the login finishes are held and replayed, not
180
187
  * dropped: `Connection` has already acknowledged them, so MAX will not send them again.
181
188
  */
182
- async #connect() {
189
+ #connect() {
190
+ if (this.#connectPromise)
191
+ return this.#connectPromise;
192
+ const connecting = this.#connectOnce();
193
+ this.#connectPromise = connecting;
194
+ void connecting
195
+ .finally(() => {
196
+ if (this.#connectPromise === connecting)
197
+ this.#connectPromise = undefined;
198
+ })
199
+ .catch(() => { });
200
+ return connecting;
201
+ }
202
+ async #connectOnce() {
183
203
  if (this.#stopped)
184
204
  return;
185
205
  const { store, timeoutMs, events } = this.#options;
@@ -203,6 +223,7 @@ export class MaxServer {
203
223
  const client = new MaxClient({
204
224
  store,
205
225
  connection,
226
+ now: this.#now,
206
227
  // `#forward` guards every write a command hands this server, before this client sends it.
207
228
  sends: "caller",
208
229
  fullLogin: true,
@@ -233,7 +254,7 @@ export class MaxServer {
233
254
  this.#members?.start();
234
255
  this.#markUp();
235
256
  this.#attempt = 0;
236
- this.#lastRefresh = Date.now();
257
+ this.#lastRefresh = this.#now();
237
258
  clearInterval(this.#ping);
238
259
  this.#ping = setInterval(() => {
239
260
  client.live.ping().catch(() => { });
@@ -241,7 +262,7 @@ export class MaxServer {
241
262
  if (replaced)
242
263
  await replaced.close().catch(() => { });
243
264
  else
244
- this.#broadcast({ event: "status", connected: true, at: new Date().toISOString() });
265
+ this.#broadcast({ event: "status", connected: true, at: new Date(this.#now()).toISOString() });
245
266
  for (const [opcode, payload] of early)
246
267
  this.#pushed(client, opcode, payload);
247
268
  client.live
@@ -253,7 +274,7 @@ export class MaxServer {
253
274
  }
254
275
  /** Once per server, never again after a reconnect: the tab it copies keeps its session too. */
255
276
  #reportChatList(sessionId, at) {
256
- const wait = Math.max(0, sessionId + (this.#options.telemetryAfterMs ?? TELEMETRY_AFTER_MS) - Date.now());
277
+ const wait = Math.max(0, sessionId + (this.#options.telemetryAfterMs ?? TELEMETRY_AFTER_MS) - this.#now());
257
278
  this.#telemetry = setTimeout(() => {
258
279
  this.#client?.live
259
280
  .chatListShown({ at, sessionId })
@@ -290,7 +311,7 @@ export class MaxServer {
290
311
  if (this.#refresh || this.#stopped)
291
312
  return;
292
313
  const every = this.#options.refreshEveryMs ?? REFRESH_EVERY_MS;
293
- const wait = Math.max(0, this.#lastRefresh + every - Date.now());
314
+ const wait = Math.max(0, this.#lastRefresh + every - this.#now());
294
315
  this.#refresh = setTimeout(() => {
295
316
  this.#connect()
296
317
  .catch((error) => {
@@ -315,7 +336,7 @@ export class MaxServer {
315
336
  client?.close().catch(() => { });
316
337
  if (this.#stopped)
317
338
  return;
318
- this.#broadcast({ event: "status", connected: false, at: new Date().toISOString() });
339
+ this.#broadcast({ event: "status", connected: false, at: new Date(this.#now()).toISOString() });
319
340
  this.#reconnectLater(error);
320
341
  }
321
342
  #reconnectLater(error) {
@@ -339,8 +360,6 @@ export class MaxServer {
339
360
  assertReadable(resolveSettings({ profile: this.#options.store.profile }), "messages.watch");
340
361
  }
341
362
  catch {
342
- for (const socket of this.#subscribers)
343
- socket.destroy();
344
363
  this.#subscribers.clear();
345
364
  return;
346
365
  }
@@ -354,8 +373,7 @@ export class MaxServer {
354
373
  this.#seen.delete(this.#seen.values().next().value);
355
374
  }
356
375
  const line = toLine(event);
357
- for (const socket of this.#subscribers)
358
- socket.write(line);
376
+ this.#subscribers.broadcast(line);
359
377
  }
360
378
  async #listen() {
361
379
  const path = this.#options.store.socketPath();
@@ -400,7 +418,7 @@ export class MaxServer {
400
418
  socket.on("close", () => {
401
419
  this.#subscribers.delete(socket);
402
420
  this.#open.delete(socket);
403
- this.#lastUse = Date.now();
421
+ this.#lastUse = this.#now();
404
422
  });
405
423
  socket.on("data", lineReader((line) => {
406
424
  this.#request(socket, line).catch(() => socket.destroy());
@@ -418,7 +436,7 @@ export class MaxServer {
418
436
  const status = {
419
437
  event: "status",
420
438
  connected: this.connected,
421
- at: new Date().toISOString(),
439
+ at: new Date(this.#now()).toISOString(),
422
440
  byHand: !this.#options.startedByCommand,
423
441
  pid: process.pid,
424
442
  version: VERSION,
@@ -426,7 +444,7 @@ export class MaxServer {
426
444
  startedAt: this.#startedAt,
427
445
  };
428
446
  const { id } = request;
429
- this.#lastUse = Date.now();
447
+ this.#lastUse = this.#now();
430
448
  if (request.subscribe === true) {
431
449
  try {
432
450
  assertReadable(resolveSettings({ profile: this.#options.store.profile }), "messages.watch");
@@ -436,7 +454,7 @@ export class MaxServer {
436
454
  return;
437
455
  }
438
456
  this.#subscribers.add(socket);
439
- socket.write(toLine(status));
457
+ this.#subscribers.write(socket, toLine(status));
440
458
  }
441
459
  else if (request.status === true) {
442
460
  socket.write(toLine(status));
@@ -510,7 +528,7 @@ export class MaxServer {
510
528
  let guard;
511
529
  try {
512
530
  entry = { ...operation.guard(request), ...(operationId === undefined ? {} : { operationId }) };
513
- // Read again for every write, so `config set readOnly true` needs no restart.
531
+ // Read again for every write, so `config set read_only true` needs no restart.
514
532
  guard =
515
533
  this.#options.guard?.() ??
516
534
  guardFor(resolveSettings({ profile: this.#options.store.profile }), this.#options.note, async (key) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/server/subscribe.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,SACd,MAAM,WACH,MAAM,WACN,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,WAC5B,WAAW,KACnB,OAAO,CAAC,IAAI,CAmBX,CAAA"}
1
+ {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/server/subscribe.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,SACd,MAAM,WACH,MAAM,WACN,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,WAC5B,WAAW,KACnB,OAAO,CAAC,IAAI,CA6CX,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { connect } from "node:net";
2
- import { CliError } from "@wirecat/cli-base";
2
+ import { CliError, errorCodes } from "@wirecat/cli-base";
3
3
  import { asFirstWord } from "../profile.js";
4
4
  import { fromLine, lineReader } from "./lines.js";
5
5
  /**
@@ -9,10 +9,33 @@ import { fromLine, lineReader } from "./lines.js";
9
9
  * long-lived connection nobody asked for.
10
10
  */
11
11
  export const subscribe = (path, profile, onEvent, signal) => new Promise((resolve, reject) => {
12
+ if (signal?.aborted) {
13
+ resolve();
14
+ return;
15
+ }
12
16
  const socket = connect(path);
13
- signal?.addEventListener("abort", () => socket.end(), { once: true });
17
+ const abort = () => socket.destroy();
18
+ signal?.addEventListener("abort", abort, { once: true });
14
19
  socket.once("connect", () => socket.write(`${JSON.stringify({ subscribe: true })}\n`));
15
- socket.on("data", lineReader((line) => onEvent(fromLine(line))));
20
+ socket.on("data", lineReader((line) => {
21
+ const event = fromLine(line);
22
+ if (event.error && typeof event.error === "object") {
23
+ const error = event.error;
24
+ const code = errorCodes.includes(error.code) ? error.code : "provider_error";
25
+ reject(new CliError(code, error.message ?? "watch subscription failed", {
26
+ ...(error.reason === undefined ? {} : { reason: error.reason }),
27
+ }));
28
+ socket.destroy();
29
+ return;
30
+ }
31
+ try {
32
+ onEvent(event);
33
+ }
34
+ catch (error) {
35
+ reject(error);
36
+ socket.destroy();
37
+ }
38
+ }));
16
39
  socket.once("error", (error) => {
17
40
  if (error.code === "ENOENT" || error.code === "ECONNREFUSED") {
18
41
  const command = `max ${asFirstWord(profile)}serve`;
@@ -21,6 +44,9 @@ export const subscribe = (path, profile, onEvent, signal) => new Promise((resolv
21
44
  else
22
45
  reject(error);
23
46
  });
24
- socket.once("close", () => resolve());
47
+ socket.once("close", () => {
48
+ signal?.removeEventListener("abort", abort);
49
+ resolve();
50
+ });
25
51
  });
26
52
  //# sourceMappingURL=subscribe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/server/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAGjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAY,EACZ,OAAe,EACf,OAAqC,EACrC,MAAoB,EACL,EAAE,CACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACrE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACtF,MAAM,CAAC,EAAE,CACP,MAAM,EACN,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B,CAAC,CAAC,CACxE,CAAA;IACD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;QACpD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAA;YAClD,MAAM,CACJ,IAAI,QAAQ,CAAC,WAAW,EAAE,qCAAqC,OAAO,wBAAwB,OAAO,IAAI,CAAC,CAC3G,CAAA;QACH,CAAC;;YAAM,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/server/subscribe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Socket } from "node:net";
2
+ export declare const SUBSCRIBER_BUFFER_BYTES: number;
3
+ export declare const SUBSCRIBER_TOTAL_BUFFER_BYTES: number;
4
+ export interface SubscriberBudgets {
5
+ maxSubscriberBufferBytes?: number;
6
+ maxSubscriberTotalBufferBytes?: number;
7
+ }
8
+ /** Each subscriber owns its wait for drain; the shared budget includes writes not yet flushed. */
9
+ export declare class Subscribers {
10
+ #private;
11
+ constructor(budgets?: SubscriberBudgets, note?: (message: string) => void);
12
+ add(socket: Socket): void;
13
+ delete(socket: Socket): void;
14
+ clear(): void;
15
+ broadcast(line: string): void;
16
+ write(socket: Socket, line: string): void;
17
+ }
18
+ //# sourceMappingURL=subscribers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribers.d.ts","sourceRoot":"","sources":["../../src/server/subscribers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAItC,eAAO,MAAM,uBAAuB,QAAmB,CAAA;AACvD,eAAO,MAAM,6BAA6B,QAAoB,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,6BAA6B,CAAC,EAAE,MAAM,CAAA;CACvC;AAcD,kGAAkG;AAClG,qBAAa,WAAW;;IAOtB,YAAY,OAAO,GAAE,iBAAsB,EAAE,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAe,EAItF;IAED,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAmBxB;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAU3B;IAED,KAAK,IAAI,IAAI,CAKZ;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE5B;IAED,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAqBxC;CA0DF"}
@@ -0,0 +1,146 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { toLine } from "./lines.js";
3
+ export const SUBSCRIBER_BUFFER_BYTES = 64 * 1024 * 1024;
4
+ export const SUBSCRIBER_TOTAL_BUFFER_BYTES = 256 * 1024 * 1024;
5
+ /** Each subscriber owns its wait for drain; the shared budget includes writes not yet flushed. */
6
+ export class Subscribers {
7
+ #subscribers = new Map();
8
+ #perSubscriber;
9
+ #total;
10
+ #note;
11
+ #bytes = 0;
12
+ constructor(budgets = {}, note = () => { }) {
13
+ this.#perSubscriber = budget(budgets.maxSubscriberBufferBytes ?? SUBSCRIBER_BUFFER_BYTES);
14
+ this.#total = budget(budgets.maxSubscriberTotalBufferBytes ?? SUBSCRIBER_TOTAL_BUFFER_BYTES);
15
+ this.#note = note;
16
+ }
17
+ add(socket) {
18
+ if (this.#subscribers.has(socket))
19
+ return;
20
+ const subscriber = {
21
+ socket,
22
+ queue: [],
23
+ bytes: 0,
24
+ blocked: false,
25
+ closed: false,
26
+ failed: false,
27
+ head: 0,
28
+ drain: () => {
29
+ subscriber.blocked = false;
30
+ this.#flush(subscriber);
31
+ },
32
+ close: () => this.delete(socket),
33
+ };
34
+ this.#subscribers.set(socket, subscriber);
35
+ socket.on("drain", subscriber.drain);
36
+ socket.once("close", subscriber.close);
37
+ }
38
+ delete(socket) {
39
+ const subscriber = this.#subscribers.get(socket);
40
+ if (!subscriber)
41
+ return;
42
+ subscriber.closed = true;
43
+ this.#bytes -= subscriber.bytes;
44
+ subscriber.bytes = 0;
45
+ subscriber.queue.length = 0;
46
+ socket.off("drain", subscriber.drain);
47
+ socket.off("close", subscriber.close);
48
+ this.#subscribers.delete(socket);
49
+ }
50
+ clear() {
51
+ for (const socket of this.#subscribers.keys()) {
52
+ this.delete(socket);
53
+ socket.destroy();
54
+ }
55
+ }
56
+ broadcast(line) {
57
+ for (const socket of this.#subscribers.keys())
58
+ this.write(socket, line);
59
+ }
60
+ write(socket, line) {
61
+ const subscriber = this.#subscribers.get(socket);
62
+ if (!subscriber || subscriber.closed || subscriber.failed)
63
+ return;
64
+ const bytes = Buffer.byteLength(line);
65
+ if (this.#perSubscriber > 0 && subscriber.bytes + bytes > this.#perSubscriber) {
66
+ this.#overflow(subscriber);
67
+ return;
68
+ }
69
+ if (this.#total > 0 && this.#bytes + bytes > this.#total) {
70
+ // The watcher holding the most is the slow one; cutting off whoever happens to be written next is not.
71
+ const largest = this.#largest();
72
+ if (largest && largest !== subscriber)
73
+ this.#overflow(largest);
74
+ if (largest === subscriber || this.#bytes + bytes > this.#total) {
75
+ this.#overflow(subscriber);
76
+ return;
77
+ }
78
+ }
79
+ subscriber.bytes += bytes;
80
+ this.#bytes += bytes;
81
+ subscriber.queue.push(line);
82
+ this.#flush(subscriber);
83
+ }
84
+ #flush(subscriber) {
85
+ while (!subscriber.closed &&
86
+ !subscriber.failed &&
87
+ !subscriber.blocked &&
88
+ subscriber.head < subscriber.queue.length) {
89
+ const line = subscriber.queue[subscriber.head];
90
+ subscriber.queue[subscriber.head] = undefined;
91
+ subscriber.head += 1;
92
+ if (subscriber.head > 1024 && subscriber.head * 2 > subscriber.queue.length) {
93
+ subscriber.queue = subscriber.queue.slice(subscriber.head);
94
+ subscriber.head = 0;
95
+ }
96
+ if (line === undefined)
97
+ break;
98
+ const bytes = Buffer.byteLength(line);
99
+ try {
100
+ subscriber.blocked = !subscriber.socket.write(line, (error) => {
101
+ if (subscriber.closed)
102
+ return;
103
+ subscriber.bytes -= bytes;
104
+ this.#bytes -= bytes;
105
+ if (error) {
106
+ this.delete(subscriber.socket);
107
+ subscriber.socket.destroy();
108
+ }
109
+ });
110
+ }
111
+ catch {
112
+ this.delete(subscriber.socket);
113
+ subscriber.socket.destroy();
114
+ }
115
+ }
116
+ }
117
+ #largest() {
118
+ let largest;
119
+ for (const subscriber of this.#subscribers.values())
120
+ if (!subscriber.failed && (!largest || subscriber.bytes > largest.bytes))
121
+ largest = subscriber;
122
+ return largest;
123
+ }
124
+ #overflow(subscriber) {
125
+ const message = "watch subscription exceeded its output buffer budget; reconnect or increase subscriber limits";
126
+ this.#note(message);
127
+ // Retain accounting for bytes already accepted by the socket until it closes.
128
+ const queued = subscriber.queue
129
+ .slice(subscriber.head)
130
+ .reduce((sum, line) => sum + (line === undefined ? 0 : Buffer.byteLength(line)), 0);
131
+ subscriber.queue.length = 0;
132
+ subscriber.bytes -= queued;
133
+ this.#bytes -= queued;
134
+ subscriber.failed = true;
135
+ subscriber.socket.end(toLine({ error: { code: "invalid_response", reason: "output.too-large", message } }));
136
+ const deadline = setTimeout(() => subscriber.socket.destroy(), 1000);
137
+ deadline.unref();
138
+ subscriber.socket.once("close", () => clearTimeout(deadline));
139
+ }
140
+ }
141
+ const budget = (value) => {
142
+ if (!Number.isSafeInteger(value) || value < 0)
143
+ throw new CliError("validation_error", "a subscriber buffer budget is a whole number of bytes, 0 for unlimited");
144
+ return value;
145
+ };
146
+ //# sourceMappingURL=subscribers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribers.js","sourceRoot":"","sources":["../../src/server/subscribers.ts"],"names":[],"mappings":"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"}
package/dist/upload.d.ts CHANGED
@@ -1,15 +1,16 @@
1
1
  export declare const isImage: (path: string) => boolean;
2
2
  export declare const isVideo: (path: string) => boolean;
3
- export declare const readUpload: (path: string, { anyFile }?: {
3
+ /** The file as a Blob that reads it while it uploads; nothing is held in memory first. */
4
+ export declare const openUpload: (path: string, { anyFile }?: {
4
5
  anyFile?: boolean;
5
- }) => Promise<Buffer>;
6
+ }) => Promise<Blob>;
6
7
  /** Measured 2026-09-24: a multipart POST, field `file`, answers `{photos: {<key>: {token}}}`. */
7
- export declare const uploadPhoto: (url: string, path: string, bytes: Buffer) => Promise<string>;
8
+ export declare const uploadPhoto: (url: string, path: string, body: Blob) => Promise<string>;
8
9
  /**
9
10
  * Measured 2026-09-24: the bytes raw, with `Content-Range: 0-<end>/<size>` — no `bytes ` unit, as
10
11
  * PyMax sends it and MAX accepted.
11
12
  */
12
- export declare const uploadFile: (url: string, path: string, bytes: Buffer) => Promise<void>;
13
+ export declare const uploadFile: (url: string, path: string, body: Blob) => Promise<void>;
13
14
  /** Measured 2026-09-27 with the `bytes ` unit, which PyMax and the web client send for these. */
14
- export declare const uploadMedia: (kind: "video" | "voice message", url: string, path: string, bytes: Buffer) => Promise<void>;
15
+ export declare const uploadMedia: (kind: "video" | "voice message", url: string, path: string, body: Blob) => Promise<void>;
15
16
  //# sourceMappingURL=upload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/upload.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,OAAqD,CAAA;AAK5F,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,OAA4D,CAAA;AA2BnG,eAAO,MAAM,UAAU,SAAgB,MAAM,gBAAuB;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAQ,OAAO,CAAC,MAAM,CAc9G,CAAA;AAUD,iGAAiG;AACjG,eAAO,MAAM,WAAW,QAAe,MAAM,QAAQ,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAY1F,CAAA;AAkBD;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,QAAQ,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CACN,CAAA;AAE5E,iGAAiG;AACjG,eAAO,MAAM,WAAW,SAAU,OAAO,GAAG,eAAe,OAAO,MAAM,QAAQ,MAAM,SAAS,MAAM,kBACrB,CAAA"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/upload.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,OAAqD,CAAA;AAK5F,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,OAA4D,CAAA;AA2BnG,0FAA0F;AAC1F,eAAO,MAAM,UAAU,SAAgB,MAAM,gBAAuB;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAQ,OAAO,CAAC,IAAI,CAgB5G,CAAA;AAUD,iGAAiG;AACjG,eAAO,MAAM,WAAW,QAAe,MAAM,QAAQ,MAAM,QAAQ,IAAI,KAAG,OAAO,CAAC,MAAM,CAYvF,CAAA;AAkBD;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,QAAQ,MAAM,QAAQ,IAAI,KAAG,OAAO,CAAC,IAAI,CACV,CAAA;AAErE,iGAAiG;AACjG,eAAO,MAAM,WAAW,SAAU,OAAO,GAAG,eAAe,OAAO,MAAM,QAAQ,MAAM,QAAQ,IAAI,kBACzB,CAAA"}