@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
@@ -0,0 +1,33 @@
1
+ import type { Command } from "commander";
2
+ export declare const DEFAULT_PROFILE = "default";
3
+ /** How the command line names this profile: the first word, or nothing at all for the default. */
4
+ export declare const asFirstWord: (profile: string) => string;
5
+ export declare const usableProfileName: (profile: string) => string;
6
+ /**
7
+ * Every word that means a command at the top level.
8
+ *
9
+ * Taken off the built program rather than written out, because a list written out goes stale the
10
+ * day a command is added — and `help` is in it without being in `program.commands`: commander
11
+ * answers `max help chats` from an implicit command that is not in that array.
12
+ */
13
+ export declare const commandWords: (program: Command) => Set<string>;
14
+ /**
15
+ * **The first word is the profile unless it names a command.** `max personal chats list`, and
16
+ * `max chats list` on the default profile, with no flag in either.
17
+ *
18
+ * An option is never a profile, so `max --json chats list` still works.
19
+ */
20
+ export declare const liftProfile: (argv: string[], words: Set<string>) => {
21
+ profile?: string;
22
+ rest: string[];
23
+ };
24
+ /**
25
+ * Refused at creation, which is the only moment it can still be explained.
26
+ *
27
+ * A profile named after a command breaks silently and in the other direction: `max chats` would
28
+ * have to mean the command, so the profile called `chats` could never be selected at all.
29
+ */
30
+ export declare const refuseCommandName: (profile: string, words: Set<string>) => void;
31
+ /** The root of the command tree, from anywhere inside it. */
32
+ export declare const rootOf: (command: Command) => Command;
33
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,eAAO,MAAM,eAAe,YAAY,CAAA;AAExC,kGAAkG;AAClG,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,MAA4D,CAAA;AAW1G,eAAO,MAAM,iBAAiB,YAAa,MAAM,KAAG,MASnD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,YAAa,OAAO,KAAG,GAAG,CAAC,MAAM,CAC2C,CAAA;AAErG;;;;;GAKG;AACH,eAAO,MAAM,WAAW,SAAU,MAAM,EAAE,SAAS,GAAG,CAAC,MAAM,CAAC,KAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAIlG,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,YAAa,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,KAAG,IASvE,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,MAAM,YAAa,OAAO,KAAG,OAIzC,CAAA"}
@@ -0,0 +1,60 @@
1
+ import { CliError } from "@wirecat/cli-core";
2
+ export const DEFAULT_PROFILE = "default";
3
+ /** How the command line names this profile: the first word, or nothing at all for the default. */
4
+ export const asFirstWord = (profile) => (profile === DEFAULT_PROFILE ? "" : `${profile} `);
5
+ /**
6
+ * A profile name becomes a file name — `<state>/profiles/<name>.json` (`session/store.ts:103`) —
7
+ * and the keyring account is the same string.
8
+ *
9
+ * The first word on the command line is now the profile, so a mistyped path arrives here as a
10
+ * name, and `a/../b` would write that file somewhere nobody would think to look.
11
+ */
12
+ const PLAIN_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
13
+ export const usableProfileName = (profile) => {
14
+ if (!PLAIN_NAME.test(profile)) {
15
+ throw new CliError("validation_error", `"${profile}" cannot be a profile name — letters, digits, dot, dash and underscore only, ` +
16
+ "starting with a letter or a digit");
17
+ }
18
+ return profile;
19
+ };
20
+ /**
21
+ * Every word that means a command at the top level.
22
+ *
23
+ * Taken off the built program rather than written out, because a list written out goes stale the
24
+ * day a command is added — and `help` is in it without being in `program.commands`: commander
25
+ * answers `max help chats` from an implicit command that is not in that array.
26
+ */
27
+ export const commandWords = (program) => new Set(["help", ...program.commands.flatMap((command) => [command.name(), ...command.aliases()])]);
28
+ /**
29
+ * **The first word is the profile unless it names a command.** `max personal chats list`, and
30
+ * `max chats list` on the default profile, with no flag in either.
31
+ *
32
+ * An option is never a profile, so `max --json chats list` still works.
33
+ */
34
+ export const liftProfile = (argv, words) => {
35
+ const [first, ...rest] = argv;
36
+ if (first === undefined || first.startsWith("-") || words.has(first))
37
+ return { rest: argv };
38
+ return { profile: first, rest };
39
+ };
40
+ /**
41
+ * Refused at creation, which is the only moment it can still be explained.
42
+ *
43
+ * A profile named after a command breaks silently and in the other direction: `max chats` would
44
+ * have to mean the command, so the profile called `chats` could never be selected at all.
45
+ */
46
+ export const refuseCommandName = (profile, words) => {
47
+ if (words.has(profile)) {
48
+ throw new CliError("validation_error", `"${profile}" is a command, so \`max ${profile} …\` would always mean the command and never ` +
49
+ "this profile. Pick a name that is not one of: " +
50
+ [...words].sort().join(", "));
51
+ }
52
+ };
53
+ /** The root of the command tree, from anywhere inside it. */
54
+ export const rootOf = (command) => {
55
+ let root = command;
56
+ while (root.parent)
57
+ root = root.parent;
58
+ return root;
59
+ };
60
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAA;AAExC,kGAAkG;AAClG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAA;AAE1G;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,8BAA8B,CAAA;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,IAAI,OAAO,+EAA+E;YACxF,mCAAmC,CACtC,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAe,EAAE,CAC5D,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAErG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,KAAkB,EAAwC,EAAE;IACtG,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC3F,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACjC,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,KAAkB,EAAQ,EAAE;IAC7E,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,IAAI,OAAO,4BAA4B,OAAO,+CAA+C;YAC3F,gDAAgD;YAChD,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAW,EAAE;IAClD,IAAI,IAAI,GAAG,OAAO,CAAA;IAClB,OAAO,IAAI,CAAC,MAAM;QAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;IACtC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { type ProgramOptions } from "@wirecat/cli-messaging/cli";
2
+ import type { Command } from "commander";
3
+ import { type Environment } from "./commands/context.js";
4
+ export type { ProgramOptions };
5
+ export interface RunOptions extends Environment {
6
+ answer?: (question: string) => string | null | Promise<string | null>;
7
+ }
8
+ export declare const createProgram: (options?: ProgramOptions) => Command;
9
+ export declare const run: (argv: string[], options?: RunOptions) => Promise<number>;
10
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAGA,OAAO,EAQL,KAAK,cAAc,EAapB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWxC,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,uBAAuB,CAAA;AAyBjE,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACtE;AAqGD,eAAO,MAAM,aAAa,aAAa,cAAc,KAAQ,OAAqD,CAAA;AAElH,eAAO,MAAM,GAAG,SAAgB,MAAM,EAAE,YAAW,UAAU,KAAQ,OAAO,CAAC,MAAM,CAgBlF,CAAA"}
@@ -0,0 +1,172 @@
1
+ import { appendFileSync } from "node:fs";
2
+ import { CliError, processStreams } from "@wirecat/cli-core";
3
+ import { metaOf } from "@wirecat/cli-core/commands";
4
+ import { attachmentsCommand, conversationsCommand, createProgram as createSharedProgram, floodCommand, inboxCommand, metadataCommand, pollsCommand, provide as provideShared, reactionsCommand, repliesCommand, reviewCommand, run as runShared, searchCommand, searchesCommand, storeCommand as sharedStoreCommand, statsCommand, tagsCommand, tasksCommand, } from "@wirecat/cli-messaging/cli";
5
+ import { levelFor } from "@wirecat/cli-messaging/sends";
6
+ import { MAX_APP } from "./app.js";
7
+ import { accountCommand } from "./commands/account.js";
8
+ import { botCommand } from "./commands/bot.js";
9
+ import { botRecordingOf } from "./commands/bot-context.js";
10
+ import { callsCommand } from "./commands/calls.js";
11
+ import { chatsCommand } from "./commands/chats.js";
12
+ import { commandsCommand } from "./commands/commands.js";
13
+ import { completeCommand } from "./commands/complete.js";
14
+ import { configCommand } from "./commands/config.js";
15
+ import { contactsCommand } from "./commands/contacts.js";
16
+ import { provide } from "./commands/context.js";
17
+ import { doctorCommand } from "./commands/doctor.js";
18
+ import { mcpCommand } from "./commands/mcp.js";
19
+ import { messagesCommand } from "./commands/messages.js";
20
+ import { modelsCommand } from "./commands/models.js";
21
+ import { recipientsCommand } from "./commands/recipients.js";
22
+ import { runsCommand } from "./commands/runs.js";
23
+ import { sendsCommand } from "./commands/sends.js";
24
+ import { serveCommand } from "./commands/serve.js";
25
+ import { serverCommand } from "./commands/server.js";
26
+ import { sessionCommand } from "./commands/session.js";
27
+ import { setupCommand } from "./commands/setup.js";
28
+ import { skillCommand } from "./commands/skill.js";
29
+ import { stickersCommand } from "./commands/stickers.js";
30
+ import { upgradeCommand } from "./commands/upgrade.js";
31
+ import { watchCommand } from "./commands/watch.js";
32
+ import { resolveSettings } from "./config.js";
33
+ import { migrateInboxPoint } from "./inbox-point.js";
34
+ import { maxMessenger } from "./messenger.js";
35
+ import { assertReadable, commandPermission, permissionScope } from "./permissions.js";
36
+ import { rootOf } from "./profile.js";
37
+ import { modelsDirectory } from "./transcribe/install.js";
38
+ import { updateNotice } from "./update.js";
39
+ const definition = (options = {}) => ({
40
+ app: {
41
+ ...MAX_APP,
42
+ description: "MAX Messenger from the terminal: bots through the official Bot API (`max bot …`), and your personal account",
43
+ },
44
+ configuration: { resolveSettings },
45
+ commands: () => [
46
+ sessionCommand(),
47
+ setupCommand(),
48
+ accountCommand(),
49
+ callsCommand(),
50
+ stickersCommand(),
51
+ chatsCommand(),
52
+ contactsCommand(),
53
+ messagesCommand(),
54
+ sharedStoreCommand(maxMessenger),
55
+ statsCommand(maxMessenger),
56
+ tasksCommand(maxMessenger),
57
+ conversationsCommand(maxMessenger),
58
+ attachmentsCommand(maxMessenger),
59
+ tagsCommand(maxMessenger),
60
+ metadataCommand(maxMessenger),
61
+ searchCommand(maxMessenger),
62
+ searchesCommand(maxMessenger),
63
+ floodCommand(maxMessenger),
64
+ modelsCommand(),
65
+ pollsCommand(maxMessenger),
66
+ reactionsCommand(maxMessenger),
67
+ recipientsCommand(),
68
+ sendsCommand(),
69
+ inboxCommand(maxMessenger).hook("preAction", (command) => migrateInboxPoint(command)),
70
+ reviewCommand(maxMessenger),
71
+ repliesCommand(maxMessenger),
72
+ serveCommand(),
73
+ serverCommand(),
74
+ watchCommand(),
75
+ configCommand(),
76
+ doctorCommand(),
77
+ runsCommand(),
78
+ skillCommand(),
79
+ commandsCommand(),
80
+ upgradeCommand(),
81
+ completeCommand(),
82
+ mcpCommand(),
83
+ botCommand(),
84
+ ],
85
+ configure: (program) => {
86
+ program.addHelpText("after", "\nGetting started after installation:\n" +
87
+ " max setup Guided personal-account login; allow about 5 minutes\n" +
88
+ " max setup --agent codex Connect the skill for your agent\n" +
89
+ " max setup --help Login methods, Windows advice and examples\n" +
90
+ "\nAgents: read `max skill show` before login; `max commands --json` lists commands.\n" +
91
+ "Choose a chat and how much history to fetch after setup.\n" +
92
+ "Bots: `max <profile> bot auth set` connects a bot separately.\n");
93
+ program
94
+ .option("--serve", "start `max serve` in the background if it is not running (the default)")
95
+ .option("--no-serve", "do not start it; log in on this command's own connection unless one is running");
96
+ const descriptions = {
97
+ "--trace": "one line per request on stderr: ids and timings, never message content",
98
+ "--record": "keep this run under `max runs` — ids and timings, never message content",
99
+ "--quiet": "diagnostics off",
100
+ };
101
+ for (const option of program.options) {
102
+ const description = descriptions[option.long ?? ""];
103
+ if (description)
104
+ option.description = description;
105
+ }
106
+ program.hook("preAction", (_root, action) => {
107
+ const key = commandPermission(action);
108
+ if (key) {
109
+ const settings = resolveSettings(rootOf(action).opts(), { kind: key.startsWith("bot.") ? "bot" : "personal" });
110
+ assertReadable(settings, key);
111
+ if (metaOf(action).mutates && metaOf(action).local && levelFor(settings.permissions, key).level === "readonly")
112
+ throw new CliError("permission_error", `profile ${settings.profile} does not let ${key} write`, {
113
+ permission: key,
114
+ });
115
+ }
116
+ });
117
+ const argvLog = process.env.MAX_TEST_ARGV_LOG;
118
+ if (argvLog)
119
+ program.hook("preAction", (_root, action) => logParsed(argvLog, action));
120
+ },
121
+ prepare: (program, environment) => {
122
+ provide(program, {
123
+ ...options,
124
+ streams: environment.streams ?? processStreams,
125
+ signal: environment.signal,
126
+ commandSignal: environment.commandSignal,
127
+ trackCloseable: environment.trackCloseable,
128
+ answer: environment.answer,
129
+ env: environment.env,
130
+ });
131
+ provideShared(program, environment);
132
+ },
133
+ onFailure: (error, program) => botRecordingOf(program)?.fail(error),
134
+ });
135
+ export const createProgram = (options = {}) => createSharedProgram(definition(), options);
136
+ export const run = async (argv, options = {}) => {
137
+ const { recognizer, ...environment } = options;
138
+ const notice = updateNotice(argv, { tty: options.tty, environment: options.update });
139
+ const code = await permissionScope(() => runShared(argv, definition(options), {
140
+ ...environment,
141
+ ...(recognizer ? { recognizer: (model) => recognizer(model, modelsDirectory()) } : {}),
142
+ }));
143
+ const argvLog = process.env.MAX_TEST_ARGV_LOG;
144
+ if (argvLog && code === 0 && argv.some((word) => word === "--version" || word === "-V")) {
145
+ appendFileSync(argvLog, `${JSON.stringify({ command: "", options: ["--version"] })}\n`);
146
+ }
147
+ const line = await notice;
148
+ if (line && code === 0)
149
+ (options.streams ?? processStreams).diagnostic(line);
150
+ return code;
151
+ };
152
+ /**
153
+ * Under vitest only (`src/testing/sandbox.ts`): which command ran and which options were typed, for
154
+ * `pnpm test:matrix`. Words and option names — never an argument's value.
155
+ */
156
+ const logParsed = (file, action) => {
157
+ const words = [];
158
+ const options = [];
159
+ for (let at = action; at; at = at.parent) {
160
+ if (at.parent)
161
+ words.unshift(at.name());
162
+ for (const option of at.options) {
163
+ const key = option.attributeName();
164
+ if (at.getOptionValueSource(key) !== "cli" || !option.long)
165
+ continue;
166
+ if (option.negate === (at.getOptionValue(key) === false))
167
+ options.push(option.long);
168
+ }
169
+ }
170
+ appendFileSync(file, `${JSON.stringify({ command: words.join(" "), options })}\n`);
171
+ };
172
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { WebSocket } from "ws";
2
+ import { type InboundFrame, type Payload } from "./frame.js";
3
+ /** Where web.max.ru connects, read off its live socket on 2026-09-25. */
4
+ export declare const MAX_WEBSOCKET_URL = "wss://api.oneme.ru/websocket";
5
+ /** MAX's web client sends this; we send what it sends rather than announcing ourselves (§34). */
6
+ export declare const WEB_ORIGIN = "https://web.max.ru";
7
+ /**
8
+ * What one frame cost, reported as it happens.
9
+ *
10
+ * The transport is the only layer that knows the `seq` it allocated and how many bytes actually
11
+ * went over the socket, and it is the only one that can time the wait. It reports those and
12
+ * nothing else — **who is asking, and why, stays above it** (`ARCHITECTURE.md` §2).
13
+ */
14
+ export interface WireEvent {
15
+ phase: "sent" | "received";
16
+ seq: number;
17
+ opcode: number;
18
+ bytes: number;
19
+ }
20
+ export interface ConnectionOptions {
21
+ url?: string;
22
+ origin?: string;
23
+ /** Per request, not per connection. */
24
+ timeoutMs?: number;
25
+ /** Events MAX pushes on its own — messages arriving, presence. Ignored unless a caller cares. */
26
+ onEvent?: (frame: InboundFrame) => void;
27
+ /**
28
+ * **A connection that stays open**, as `max serve`'s does: it answers MAX's ping and acknowledges
29
+ * a new message the way web.max.ru does (bundle read 2026-09-24), and drops a push it has already
30
+ * seen. Off for a one-shot command, which is gone before either matters.
31
+ */
32
+ live?: boolean;
33
+ /** MAX closed the socket. Not called for our own `close()`. The connection is dead after it. */
34
+ onClose?: (error: Error) => void;
35
+ /** A push that could not be handled was dropped; the connection carries on. */
36
+ onError?: (error: Error) => void;
37
+ /** Injected in tests; defaults to the real `ws` client. */
38
+ createSocket?: (url: string, origin: string) => WebSocket;
39
+ }
40
+ export declare class ProtocolError extends Error {
41
+ readonly opcode: number;
42
+ readonly payload: Payload | null;
43
+ constructor(message: string, opcode: number, payload: Payload | null);
44
+ }
45
+ /** What a client needs of a connection — so one that goes through `max serve` can stand in. */
46
+ export type Wire = Pick<Connection, "open" | "invoke" | "close">;
47
+ /**
48
+ * One WebSocket, one command's worth of work, then closed.
49
+ *
50
+ * **Everything that could keep the process alive is owned here**: the socket, the per-request
51
+ * timers and the listeners. `close()` clears all three, and a command that opens a connection
52
+ * closes it in a `finally` — a CLI that prints its result and then hangs is a defect, not a rough
53
+ * edge (REQUIREMENTS §18).
54
+ */
55
+ export declare class Connection {
56
+ #private;
57
+ constructor(options?: ConnectionOptions);
58
+ open(): Promise<void>;
59
+ /**
60
+ * Sends one request and waits for the response carrying the same `seq`.
61
+ *
62
+ * MAX interleaves pushed events with responses on one socket, so the `seq` is the only thing
63
+ * tying an answer to its question — a reader that takes the next frame as its answer will
64
+ * eventually read somebody's incoming message instead.
65
+ *
66
+ * `watch` is told what left and what came back, for the caller that is keeping a diagnostic. It
67
+ * is called synchronously on the way out, so a request that never gets an answer is still on
68
+ * record — which is the run somebody actually wants to read.
69
+ */
70
+ invoke(opcode: number, payload?: Payload, watch?: (event: WireEvent) => void): Promise<Payload>;
71
+ /**
72
+ * Closes the socket and **settles anything still waiting**, rather than dropping it.
73
+ *
74
+ * ⚠ It used to clear the pending map without rejecting, which left the caller of an in-flight
75
+ * `invoke` awaiting a promise nothing could ever settle: the timers were cleared and the socket
76
+ * listeners removed in the same breath, so neither the timeout nor the close event was left to
77
+ * fire. Invisible in normal use, because `close()` runs in a `finally` once the body is done —
78
+ * and a hang the moment anything closes the connection while a request is out, which is exactly
79
+ * what a whole-command deadline does. Found by a test, not by a user.
80
+ */
81
+ close(): Promise<void>;
82
+ }
83
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/protocol/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC9B,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,OAAO,EAEb,MAAM,YAAY,CAAA;AAEnB,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,iCAAiC,CAAA;AAC/D,iGAAiG;AACjG,eAAO,MAAM,UAAU,uBAAuB,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iGAAiG;IACjG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gGAAgG;IAChG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,SAAS,CAAA;CAC1D;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAEhC,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAKnE;CACF;AAOD,+FAA+F;AAC/F,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;AAEhE;;;;;;;GAOG;AACH,qBAAa,UAAU;;IAuBrB,YAAY,OAAO,GAAE,iBAAsB,EAiB1C;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAgC1B;IAaD;;;;;;;;;;OAUG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAiCxG;IAED;;;;;;;;;OASG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB3B;CAoGF"}