@wirecat/max-cli 0.0.0 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/LICENSE +204 -0
  2. package/README.md +531 -0
  3. package/dist/adapter/max-adapter.d.ts +17 -0
  4. package/dist/adapter/max-adapter.d.ts.map +1 -0
  5. package/dist/adapter/max-adapter.js +364 -0
  6. package/dist/adapter/max-adapter.js.map +1 -0
  7. package/dist/app.d.ts +3 -0
  8. package/dist/app.d.ts.map +1 -0
  9. package/dist/app.js +9 -0
  10. package/dist/app.js.map +1 -0
  11. package/dist/bin/max.d.ts +3 -0
  12. package/dist/bin/max.d.ts.map +1 -0
  13. package/dist/bin/max.js +20 -0
  14. package/dist/bin/max.js.map +1 -0
  15. package/dist/bot/adapter.d.ts +25 -0
  16. package/dist/bot/adapter.d.ts.map +1 -0
  17. package/dist/bot/adapter.js +404 -0
  18. package/dist/bot/adapter.js.map +1 -0
  19. package/dist/bot/auth.d.ts +13 -0
  20. package/dist/bot/auth.d.ts.map +1 -0
  21. package/dist/bot/auth.js +9 -0
  22. package/dist/bot/auth.js.map +1 -0
  23. package/dist/bot/client.d.ts +26 -0
  24. package/dist/bot/client.d.ts.map +1 -0
  25. package/dist/bot/client.js +105 -0
  26. package/dist/bot/client.js.map +1 -0
  27. package/dist/bot/generated/manifest.d.ts +3 -0
  28. package/dist/bot/generated/manifest.d.ts.map +1 -0
  29. package/dist/bot/generated/manifest.js +1232 -0
  30. package/dist/bot/generated/manifest.js.map +1 -0
  31. package/dist/bot/generated/schemas.d.ts +271 -0
  32. package/dist/bot/generated/schemas.d.ts.map +1 -0
  33. package/dist/bot/generated/schemas.js +869 -0
  34. package/dist/bot/generated/schemas.js.map +1 -0
  35. package/dist/bot/generated/types.d.ts +1088 -0
  36. package/dist/bot/generated/types.d.ts.map +1 -0
  37. package/dist/bot/generated/types.js +5 -0
  38. package/dist/bot/generated/types.js.map +1 -0
  39. package/dist/bot/input.d.ts +6 -0
  40. package/dist/bot/input.d.ts.map +1 -0
  41. package/dist/bot/input.js +6 -0
  42. package/dist/bot/input.js.map +1 -0
  43. package/dist/bot/joins.d.ts +26 -0
  44. package/dist/bot/joins.d.ts.map +1 -0
  45. package/dist/bot/joins.js +56 -0
  46. package/dist/bot/joins.js.map +1 -0
  47. package/dist/bot/keep.d.ts +25 -0
  48. package/dist/bot/keep.d.ts.map +1 -0
  49. package/dist/bot/keep.js +98 -0
  50. package/dist/bot/keep.js.map +1 -0
  51. package/dist/bot/map.d.ts +14 -0
  52. package/dist/bot/map.d.ts.map +1 -0
  53. package/dist/bot/map.js +101 -0
  54. package/dist/bot/map.js.map +1 -0
  55. package/dist/bot/mcp-tools.d.ts +4 -0
  56. package/dist/bot/mcp-tools.d.ts.map +1 -0
  57. package/dist/bot/mcp-tools.js +78 -0
  58. package/dist/bot/mcp-tools.js.map +1 -0
  59. package/dist/bot/permissions.d.ts +14 -0
  60. package/dist/bot/permissions.d.ts.map +1 -0
  61. package/dist/bot/permissions.js +88 -0
  62. package/dist/bot/permissions.js.map +1 -0
  63. package/dist/bot/registry.d.ts +11 -0
  64. package/dist/bot/registry.d.ts.map +1 -0
  65. package/dist/bot/registry.js +13 -0
  66. package/dist/bot/registry.js.map +1 -0
  67. package/dist/bot/russian-trusted-root.d.ts +8 -0
  68. package/dist/bot/russian-trusted-root.d.ts.map +1 -0
  69. package/dist/bot/russian-trusted-root.js +41 -0
  70. package/dist/bot/russian-trusted-root.js.map +1 -0
  71. package/dist/bot/transport.d.ts +46 -0
  72. package/dist/bot/transport.d.ts.map +1 -0
  73. package/dist/bot/transport.js +252 -0
  74. package/dist/bot/transport.js.map +1 -0
  75. package/dist/bot/uploads.d.ts +42 -0
  76. package/dist/bot/uploads.d.ts.map +1 -0
  77. package/dist/bot/uploads.js +145 -0
  78. package/dist/bot/uploads.js.map +1 -0
  79. package/dist/client.d.ts +650 -0
  80. package/dist/client.d.ts.map +1 -0
  81. package/dist/client.js +2836 -0
  82. package/dist/client.js.map +1 -0
  83. package/dist/commands/account.d.ts +3 -0
  84. package/dist/commands/account.d.ts.map +1 -0
  85. package/dist/commands/account.js +4 -0
  86. package/dist/commands/account.js.map +1 -0
  87. package/dist/commands/bot-comments.d.ts +3 -0
  88. package/dist/commands/bot-comments.d.ts.map +1 -0
  89. package/dist/commands/bot-comments.js +74 -0
  90. package/dist/commands/bot-comments.js.map +1 -0
  91. package/dist/commands/bot-context.d.ts +38 -0
  92. package/dist/commands/bot-context.d.ts.map +1 -0
  93. package/dist/commands/bot-context.js +121 -0
  94. package/dist/commands/bot-context.js.map +1 -0
  95. package/dist/commands/bot-members.d.ts +14 -0
  96. package/dist/commands/bot-members.d.ts.map +1 -0
  97. package/dist/commands/bot-members.js +64 -0
  98. package/dist/commands/bot-members.js.map +1 -0
  99. package/dist/commands/bot-messenger.d.ts +10 -0
  100. package/dist/commands/bot-messenger.d.ts.map +1 -0
  101. package/dist/commands/bot-messenger.js +101 -0
  102. package/dist/commands/bot-messenger.js.map +1 -0
  103. package/dist/commands/bot-reads.d.ts +4 -0
  104. package/dist/commands/bot-reads.d.ts.map +1 -0
  105. package/dist/commands/bot-reads.js +13 -0
  106. package/dist/commands/bot-reads.js.map +1 -0
  107. package/dist/commands/bot-sends.d.ts +13 -0
  108. package/dist/commands/bot-sends.d.ts.map +1 -0
  109. package/dist/commands/bot-sends.js +103 -0
  110. package/dist/commands/bot-sends.js.map +1 -0
  111. package/dist/commands/bot-setup.d.ts +3 -0
  112. package/dist/commands/bot-setup.d.ts.map +1 -0
  113. package/dist/commands/bot-setup.js +20 -0
  114. package/dist/commands/bot-setup.js.map +1 -0
  115. package/dist/commands/bot.d.ts +3 -0
  116. package/dist/commands/bot.d.ts.map +1 -0
  117. package/dist/commands/bot.js +60 -0
  118. package/dist/commands/bot.js.map +1 -0
  119. package/dist/commands/calls.d.ts +3 -0
  120. package/dist/commands/calls.d.ts.map +1 -0
  121. package/dist/commands/calls.js +4 -0
  122. package/dist/commands/calls.js.map +1 -0
  123. package/dist/commands/chats.d.ts +3 -0
  124. package/dist/commands/chats.d.ts.map +1 -0
  125. package/dist/commands/chats.js +46 -0
  126. package/dist/commands/chats.js.map +1 -0
  127. package/dist/commands/commands.d.ts +2 -0
  128. package/dist/commands/commands.d.ts.map +1 -0
  129. package/dist/commands/commands.js +4 -0
  130. package/dist/commands/commands.js.map +1 -0
  131. package/dist/commands/complete.d.ts +2 -0
  132. package/dist/commands/complete.d.ts.map +1 -0
  133. package/dist/commands/complete.js +34 -0
  134. package/dist/commands/complete.js.map +1 -0
  135. package/dist/commands/config.d.ts +3 -0
  136. package/dist/commands/config.d.ts.map +1 -0
  137. package/dist/commands/config.js +170 -0
  138. package/dist/commands/config.js.map +1 -0
  139. package/dist/commands/contacts.d.ts +10 -0
  140. package/dist/commands/contacts.d.ts.map +1 -0
  141. package/dist/commands/contacts.js +80 -0
  142. package/dist/commands/contacts.js.map +1 -0
  143. package/dist/commands/context.d.ts +126 -0
  144. package/dist/commands/context.d.ts.map +1 -0
  145. package/dist/commands/context.js +137 -0
  146. package/dist/commands/context.js.map +1 -0
  147. package/dist/commands/doctor.d.ts +24 -0
  148. package/dist/commands/doctor.d.ts.map +1 -0
  149. package/dist/commands/doctor.js +308 -0
  150. package/dist/commands/doctor.js.map +1 -0
  151. package/dist/commands/mcp.d.ts +36 -0
  152. package/dist/commands/mcp.d.ts.map +1 -0
  153. package/dist/commands/mcp.js +214 -0
  154. package/dist/commands/mcp.js.map +1 -0
  155. package/dist/commands/messages.d.ts +3 -0
  156. package/dist/commands/messages.d.ts.map +1 -0
  157. package/dist/commands/messages.js +105 -0
  158. package/dist/commands/messages.js.map +1 -0
  159. package/dist/commands/models.d.ts +3 -0
  160. package/dist/commands/models.d.ts.map +1 -0
  161. package/dist/commands/models.js +4 -0
  162. package/dist/commands/models.js.map +1 -0
  163. package/dist/commands/paging.d.ts +59 -0
  164. package/dist/commands/paging.d.ts.map +1 -0
  165. package/dist/commands/paging.js +77 -0
  166. package/dist/commands/paging.js.map +1 -0
  167. package/dist/commands/recipients.d.ts +9 -0
  168. package/dist/commands/recipients.d.ts.map +1 -0
  169. package/dist/commands/recipients.js +74 -0
  170. package/dist/commands/recipients.js.map +1 -0
  171. package/dist/commands/runs.d.ts +2 -0
  172. package/dist/commands/runs.d.ts.map +1 -0
  173. package/dist/commands/runs.js +4 -0
  174. package/dist/commands/runs.js.map +1 -0
  175. package/dist/commands/sends.d.ts +3 -0
  176. package/dist/commands/sends.d.ts.map +1 -0
  177. package/dist/commands/sends.js +4 -0
  178. package/dist/commands/sends.js.map +1 -0
  179. package/dist/commands/serve-members.d.ts +14 -0
  180. package/dist/commands/serve-members.d.ts.map +1 -0
  181. package/dist/commands/serve-members.js +54 -0
  182. package/dist/commands/serve-members.js.map +1 -0
  183. package/dist/commands/serve-stems.d.ts +9 -0
  184. package/dist/commands/serve-stems.d.ts.map +1 -0
  185. package/dist/commands/serve-stems.js +26 -0
  186. package/dist/commands/serve-stems.js.map +1 -0
  187. package/dist/commands/serve.d.ts +10 -0
  188. package/dist/commands/serve.d.ts.map +1 -0
  189. package/dist/commands/serve.js +79 -0
  190. package/dist/commands/serve.js.map +1 -0
  191. package/dist/commands/server.d.ts +16 -0
  192. package/dist/commands/server.d.ts.map +1 -0
  193. package/dist/commands/server.js +51 -0
  194. package/dist/commands/server.js.map +1 -0
  195. package/dist/commands/session.d.ts +15 -0
  196. package/dist/commands/session.d.ts.map +1 -0
  197. package/dist/commands/session.js +169 -0
  198. package/dist/commands/session.js.map +1 -0
  199. package/dist/commands/setup.d.ts +3 -0
  200. package/dist/commands/setup.d.ts.map +1 -0
  201. package/dist/commands/setup.js +168 -0
  202. package/dist/commands/setup.js.map +1 -0
  203. package/dist/commands/skill.d.ts +3 -0
  204. package/dist/commands/skill.d.ts.map +1 -0
  205. package/dist/commands/skill.js +7 -0
  206. package/dist/commands/skill.js.map +1 -0
  207. package/dist/commands/stickers.d.ts +3 -0
  208. package/dist/commands/stickers.d.ts.map +1 -0
  209. package/dist/commands/stickers.js +4 -0
  210. package/dist/commands/stickers.js.map +1 -0
  211. package/dist/commands/upgrade.d.ts +2 -0
  212. package/dist/commands/upgrade.d.ts.map +1 -0
  213. package/dist/commands/upgrade.js +14 -0
  214. package/dist/commands/upgrade.js.map +1 -0
  215. package/dist/commands/watch.d.ts +27 -0
  216. package/dist/commands/watch.d.ts.map +1 -0
  217. package/dist/commands/watch.js +105 -0
  218. package/dist/commands/watch.js.map +1 -0
  219. package/dist/config.d.ts +385 -0
  220. package/dist/config.d.ts.map +1 -0
  221. package/dist/config.js +372 -0
  222. package/dist/config.js.map +1 -0
  223. package/dist/deadline.d.ts +2 -0
  224. package/dist/deadline.d.ts.map +1 -0
  225. package/dist/deadline.js +2 -0
  226. package/dist/deadline.js.map +1 -0
  227. package/dist/diagnose.d.ts +143 -0
  228. package/dist/diagnose.d.ts.map +1 -0
  229. package/dist/diagnose.js +183 -0
  230. package/dist/diagnose.js.map +1 -0
  231. package/dist/domain/map.d.ts +65 -0
  232. package/dist/domain/map.d.ts.map +1 -0
  233. package/dist/domain/map.js +431 -0
  234. package/dist/domain/map.js.map +1 -0
  235. package/dist/domain/models.d.ts +238 -0
  236. package/dist/domain/models.d.ts.map +1 -0
  237. package/dist/domain/models.js +17 -0
  238. package/dist/domain/models.js.map +1 -0
  239. package/dist/download.d.ts +38 -0
  240. package/dist/download.d.ts.map +1 -0
  241. package/dist/download.js +199 -0
  242. package/dist/download.js.map +1 -0
  243. package/dist/format-markdown.d.ts +13 -0
  244. package/dist/format-markdown.d.ts.map +1 -0
  245. package/dist/format-markdown.js +241 -0
  246. package/dist/format-markdown.js.map +1 -0
  247. package/dist/generated/client.generated.d.ts +95 -0
  248. package/dist/generated/client.generated.d.ts.map +1 -0
  249. package/dist/generated/client.generated.js +91 -0
  250. package/dist/generated/client.generated.js.map +1 -0
  251. package/dist/generated/opcodes.generated.d.ts +76 -0
  252. package/dist/generated/opcodes.generated.d.ts.map +1 -0
  253. package/dist/generated/opcodes.generated.js +76 -0
  254. package/dist/generated/opcodes.generated.js.map +1 -0
  255. package/dist/generated/operations.generated.d.ts +502 -0
  256. package/dist/generated/operations.generated.d.ts.map +1 -0
  257. package/dist/generated/operations.generated.js +72 -0
  258. package/dist/generated/operations.generated.js.map +1 -0
  259. package/dist/inbox-point.d.ts +3 -0
  260. package/dist/inbox-point.d.ts.map +1 -0
  261. package/dist/inbox-point.js +17 -0
  262. package/dist/inbox-point.js.map +1 -0
  263. package/dist/install/postinstall.d.ts +8 -0
  264. package/dist/install/postinstall.d.ts.map +1 -0
  265. package/dist/install/postinstall.js +62 -0
  266. package/dist/install/postinstall.js.map +1 -0
  267. package/dist/install.d.ts +43 -0
  268. package/dist/install.d.ts.map +1 -0
  269. package/dist/install.js +142 -0
  270. package/dist/install.js.map +1 -0
  271. package/dist/markdown.d.ts +13 -0
  272. package/dist/markdown.d.ts.map +1 -0
  273. package/dist/markdown.js +6 -0
  274. package/dist/markdown.js.map +1 -0
  275. package/dist/mcp/instructions.d.ts +13 -0
  276. package/dist/mcp/instructions.d.ts.map +1 -0
  277. package/dist/mcp/instructions.js +16 -0
  278. package/dist/mcp/instructions.js.map +1 -0
  279. package/dist/mcp/legacy-check.d.ts +12 -0
  280. package/dist/mcp/legacy-check.d.ts.map +1 -0
  281. package/dist/mcp/legacy-check.js +44 -0
  282. package/dist/mcp/legacy-check.js.map +1 -0
  283. package/dist/mcp/photo.d.ts +9 -0
  284. package/dist/mcp/photo.d.ts.map +1 -0
  285. package/dist/mcp/photo.js +38 -0
  286. package/dist/mcp/photo.js.map +1 -0
  287. package/dist/mcp/prompts.d.ts +7 -0
  288. package/dist/mcp/prompts.d.ts.map +1 -0
  289. package/dist/mcp/prompts.js +100 -0
  290. package/dist/mcp/prompts.js.map +1 -0
  291. package/dist/mcp/resources.d.ts +15 -0
  292. package/dist/mcp/resources.d.ts.map +1 -0
  293. package/dist/mcp/resources.js +56 -0
  294. package/dist/mcp/resources.js.map +1 -0
  295. package/dist/mcp/server.d.ts +31 -0
  296. package/dist/mcp/server.d.ts.map +1 -0
  297. package/dist/mcp/server.js +116 -0
  298. package/dist/mcp/server.js.map +1 -0
  299. package/dist/mcp/session.d.ts +30 -0
  300. package/dist/mcp/session.d.ts.map +1 -0
  301. package/dist/mcp/session.js +109 -0
  302. package/dist/mcp/session.js.map +1 -0
  303. package/dist/mcp/shared.d.ts +14 -0
  304. package/dist/mcp/shared.d.ts.map +1 -0
  305. package/dist/mcp/shared.js +46 -0
  306. package/dist/mcp/shared.js.map +1 -0
  307. package/dist/mcp/tools.d.ts +30 -0
  308. package/dist/mcp/tools.d.ts.map +1 -0
  309. package/dist/mcp/tools.js +248 -0
  310. package/dist/mcp/tools.js.map +1 -0
  311. package/dist/messenger.d.ts +15 -0
  312. package/dist/messenger.d.ts.map +1 -0
  313. package/dist/messenger.js +149 -0
  314. package/dist/messenger.js.map +1 -0
  315. package/dist/moderation/check.d.ts +103 -0
  316. package/dist/moderation/check.d.ts.map +1 -0
  317. package/dist/moderation/check.js +273 -0
  318. package/dist/moderation/check.js.map +1 -0
  319. package/dist/moderation/points.d.ts +8 -0
  320. package/dist/moderation/points.d.ts.map +1 -0
  321. package/dist/moderation/points.js +21 -0
  322. package/dist/moderation/points.js.map +1 -0
  323. package/dist/moderation/rules.d.ts +7 -0
  324. package/dist/moderation/rules.d.ts.map +1 -0
  325. package/dist/moderation/rules.js +24 -0
  326. package/dist/moderation/rules.js.map +1 -0
  327. package/dist/online.d.ts +23 -0
  328. package/dist/online.d.ts.map +1 -0
  329. package/dist/online.js +87 -0
  330. package/dist/online.js.map +1 -0
  331. package/dist/output.d.ts +2 -0
  332. package/dist/output.d.ts.map +1 -0
  333. package/dist/output.js +2 -0
  334. package/dist/output.js.map +1 -0
  335. package/dist/permissions.d.ts +20 -0
  336. package/dist/permissions.d.ts.map +1 -0
  337. package/dist/permissions.js +76 -0
  338. package/dist/permissions.js.map +1 -0
  339. package/dist/profile.d.ts +33 -0
  340. package/dist/profile.d.ts.map +1 -0
  341. package/dist/profile.js +60 -0
  342. package/dist/profile.js.map +1 -0
  343. package/dist/program.d.ts +10 -0
  344. package/dist/program.d.ts.map +1 -0
  345. package/dist/program.js +172 -0
  346. package/dist/program.js.map +1 -0
  347. package/dist/protocol/connection.d.ts +83 -0
  348. package/dist/protocol/connection.d.ts.map +1 -0
  349. package/dist/protocol/connection.js +301 -0
  350. package/dist/protocol/connection.js.map +1 -0
  351. package/dist/protocol/frame.d.ts +55 -0
  352. package/dist/protocol/frame.d.ts.map +1 -0
  353. package/dist/protocol/frame.js +149 -0
  354. package/dist/protocol/frame.js.map +1 -0
  355. package/dist/protocol/lz4.d.ts +15 -0
  356. package/dist/protocol/lz4.d.ts.map +1 -0
  357. package/dist/protocol/lz4.js +157 -0
  358. package/dist/protocol/lz4.js.map +1 -0
  359. package/dist/record.d.ts +41 -0
  360. package/dist/record.d.ts.map +1 -0
  361. package/dist/record.js +104 -0
  362. package/dist/record.js.map +1 -0
  363. package/dist/rendering/messages.d.ts +24 -0
  364. package/dist/rendering/messages.d.ts.map +1 -0
  365. package/dist/rendering/messages.js +172 -0
  366. package/dist/rendering/messages.js.map +1 -0
  367. package/dist/report.d.ts +43 -0
  368. package/dist/report.d.ts.map +1 -0
  369. package/dist/report.js +104 -0
  370. package/dist/report.js.map +1 -0
  371. package/dist/resolve.d.ts +6 -0
  372. package/dist/resolve.d.ts.map +1 -0
  373. package/dist/resolve.js +5 -0
  374. package/dist/resolve.js.map +1 -0
  375. package/dist/sends.d.ts +17 -0
  376. package/dist/sends.d.ts.map +1 -0
  377. package/dist/sends.js +97 -0
  378. package/dist/sends.js.map +1 -0
  379. package/dist/server/lines.d.ts +23 -0
  380. package/dist/server/lines.d.ts.map +1 -0
  381. package/dist/server/lines.js +56 -0
  382. package/dist/server/lines.js.map +1 -0
  383. package/dist/server/replies.d.ts +31 -0
  384. package/dist/server/replies.d.ts.map +1 -0
  385. package/dist/server/replies.js +95 -0
  386. package/dist/server/replies.js.map +1 -0
  387. package/dist/server/server-connection.d.ts +55 -0
  388. package/dist/server/server-connection.d.ts.map +1 -0
  389. package/dist/server/server-connection.js +245 -0
  390. package/dist/server/server-connection.js.map +1 -0
  391. package/dist/server/server.d.ts +88 -0
  392. package/dist/server/server.d.ts.map +1 -0
  393. package/dist/server/server.js +634 -0
  394. package/dist/server/server.js.map +1 -0
  395. package/dist/server/start.d.ts +37 -0
  396. package/dist/server/start.d.ts.map +1 -0
  397. package/dist/server/start.js +102 -0
  398. package/dist/server/start.js.map +1 -0
  399. package/dist/server/subscribe.d.ts +9 -0
  400. package/dist/server/subscribe.d.ts.map +1 -0
  401. package/dist/server/subscribe.js +26 -0
  402. package/dist/server/subscribe.js.map +1 -0
  403. package/dist/session/adopt.d.ts +22 -0
  404. package/dist/session/adopt.d.ts.map +1 -0
  405. package/dist/session/adopt.js +34 -0
  406. package/dist/session/adopt.js.map +1 -0
  407. package/dist/session/browser.d.ts +55 -0
  408. package/dist/session/browser.d.ts.map +1 -0
  409. package/dist/session/browser.js +321 -0
  410. package/dist/session/browser.js.map +1 -0
  411. package/dist/session/handshake.d.ts +57 -0
  412. package/dist/session/handshake.d.ts.map +1 -0
  413. package/dist/session/handshake.js +40 -0
  414. package/dist/session/handshake.js.map +1 -0
  415. package/dist/session/login.d.ts +20 -0
  416. package/dist/session/login.d.ts.map +1 -0
  417. package/dist/session/login.js +66 -0
  418. package/dist/session/login.js.map +1 -0
  419. package/dist/session/prompt.d.ts +2 -0
  420. package/dist/session/prompt.d.ts.map +1 -0
  421. package/dist/session/prompt.js +2 -0
  422. package/dist/session/prompt.js.map +1 -0
  423. package/dist/session/qr-terminal.d.ts +9 -0
  424. package/dist/session/qr-terminal.d.ts.map +1 -0
  425. package/dist/session/qr-terminal.js +34 -0
  426. package/dist/session/qr-terminal.js.map +1 -0
  427. package/dist/session/store.d.ts +76 -0
  428. package/dist/session/store.d.ts.map +1 -0
  429. package/dist/session/store.js +134 -0
  430. package/dist/session/store.js.map +1 -0
  431. package/dist/skill.d.ts +7 -0
  432. package/dist/skill.d.ts.map +1 -0
  433. package/dist/skill.js +8 -0
  434. package/dist/skill.js.map +1 -0
  435. package/dist/spec/check.d.ts +16 -0
  436. package/dist/spec/check.d.ts.map +1 -0
  437. package/dist/spec/check.js +44 -0
  438. package/dist/spec/check.js.map +1 -0
  439. package/dist/spec/define.d.ts +108 -0
  440. package/dist/spec/define.d.ts.map +1 -0
  441. package/dist/spec/define.js +47 -0
  442. package/dist/spec/define.js.map +1 -0
  443. package/dist/spec/guards.d.ts +16 -0
  444. package/dist/spec/guards.d.ts.map +1 -0
  445. package/dist/spec/guards.js +30 -0
  446. package/dist/spec/guards.js.map +1 -0
  447. package/dist/spec/identity.d.ts +57 -0
  448. package/dist/spec/identity.d.ts.map +1 -0
  449. package/dist/spec/identity.js +53 -0
  450. package/dist/spec/identity.js.map +1 -0
  451. package/dist/spec/index.d.ts +15 -0
  452. package/dist/spec/index.d.ts.map +1 -0
  453. package/dist/spec/index.js +84 -0
  454. package/dist/spec/index.js.map +1 -0
  455. package/dist/spec/operations/account.d.ts +39 -0
  456. package/dist/spec/operations/account.d.ts.map +1 -0
  457. package/dist/spec/operations/account.js +103 -0
  458. package/dist/spec/operations/account.js.map +1 -0
  459. package/dist/spec/operations/assets.d.ts +17 -0
  460. package/dist/spec/operations/assets.d.ts.map +1 -0
  461. package/dist/spec/operations/assets.js +43 -0
  462. package/dist/spec/operations/assets.js.map +1 -0
  463. package/dist/spec/operations/attachments.d.ts +15 -0
  464. package/dist/spec/operations/attachments.d.ts.map +1 -0
  465. package/dist/spec/operations/attachments.js +40 -0
  466. package/dist/spec/operations/attachments.js.map +1 -0
  467. package/dist/spec/operations/banners.d.ts +7 -0
  468. package/dist/spec/operations/banners.d.ts.map +1 -0
  469. package/dist/spec/operations/banners.js +16 -0
  470. package/dist/spec/operations/banners.js.map +1 -0
  471. package/dist/spec/operations/calls.d.ts +8 -0
  472. package/dist/spec/operations/calls.d.ts.map +1 -0
  473. package/dist/spec/operations/calls.js +25 -0
  474. package/dist/spec/operations/calls.js.map +1 -0
  475. package/dist/spec/operations/chats.d.ts +115 -0
  476. package/dist/spec/operations/chats.d.ts.map +1 -0
  477. package/dist/spec/operations/chats.js +331 -0
  478. package/dist/spec/operations/chats.js.map +1 -0
  479. package/dist/spec/operations/contacts.d.ts +39 -0
  480. package/dist/spec/operations/contacts.d.ts.map +1 -0
  481. package/dist/spec/operations/contacts.js +135 -0
  482. package/dist/spec/operations/contacts.js.map +1 -0
  483. package/dist/spec/operations/folders.d.ts +31 -0
  484. package/dist/spec/operations/folders.d.ts.map +1 -0
  485. package/dist/spec/operations/folders.js +94 -0
  486. package/dist/spec/operations/folders.js.map +1 -0
  487. package/dist/spec/operations/login.d.ts +64 -0
  488. package/dist/spec/operations/login.d.ts.map +1 -0
  489. package/dist/spec/operations/login.js +105 -0
  490. package/dist/spec/operations/login.js.map +1 -0
  491. package/dist/spec/operations/messages.d.ts +142 -0
  492. package/dist/spec/operations/messages.d.ts.map +1 -0
  493. package/dist/spec/operations/messages.js +347 -0
  494. package/dist/spec/operations/messages.js.map +1 -0
  495. package/dist/spec/operations/session.d.ts +120 -0
  496. package/dist/spec/operations/session.d.ts.map +1 -0
  497. package/dist/spec/operations/session.js +202 -0
  498. package/dist/spec/operations/session.js.map +1 -0
  499. package/dist/spec/operations/uploads.d.ts +31 -0
  500. package/dist/spec/operations/uploads.d.ts.map +1 -0
  501. package/dist/spec/operations/uploads.js +59 -0
  502. package/dist/spec/operations/uploads.js.map +1 -0
  503. package/dist/spec/scalars.d.ts +17 -0
  504. package/dist/spec/scalars.d.ts.map +1 -0
  505. package/dist/spec/scalars.js +33 -0
  506. package/dist/spec/scalars.js.map +1 -0
  507. package/dist/transcribe/index.d.ts +70 -0
  508. package/dist/transcribe/index.d.ts.map +1 -0
  509. package/dist/transcribe/index.js +127 -0
  510. package/dist/transcribe/index.js.map +1 -0
  511. package/dist/transcribe/install.d.ts +2 -0
  512. package/dist/transcribe/install.d.ts.map +1 -0
  513. package/dist/transcribe/install.js +2 -0
  514. package/dist/transcribe/install.js.map +1 -0
  515. package/dist/transcribe/models.d.ts +5 -0
  516. package/dist/transcribe/models.d.ts.map +1 -0
  517. package/dist/transcribe/models.js +6 -0
  518. package/dist/transcribe/models.js.map +1 -0
  519. package/dist/transcribe/speech.d.ts +25 -0
  520. package/dist/transcribe/speech.d.ts.map +1 -0
  521. package/dist/transcribe/speech.js +107 -0
  522. package/dist/transcribe/speech.js.map +1 -0
  523. package/dist/update.d.ts +31 -0
  524. package/dist/update.d.ts.map +1 -0
  525. package/dist/update.js +69 -0
  526. package/dist/update.js.map +1 -0
  527. package/dist/upload.d.ts +15 -0
  528. package/dist/upload.d.ts.map +1 -0
  529. package/dist/upload.js +97 -0
  530. package/dist/upload.js.map +1 -0
  531. package/dist/version.d.ts +2 -0
  532. package/dist/version.d.ts.map +1 -0
  533. package/dist/version.js +2 -0
  534. package/dist/version.js.map +1 -0
  535. package/dist/voice.d.ts +9 -0
  536. package/dist/voice.d.ts.map +1 -0
  537. package/dist/voice.js +36 -0
  538. package/dist/voice.js.map +1 -0
  539. package/dist/wire-events.d.ts +23 -0
  540. package/dist/wire-events.d.ts.map +1 -0
  541. package/dist/wire-events.js +47 -0
  542. package/dist/wire-events.js.map +1 -0
  543. package/install/postinstall.mjs +3 -0
  544. package/install/windows.ps1 +160 -0
  545. package/package.json +120 -3
  546. package/skills/max-cli/SKILL.md +523 -0
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const messagesCommand: () => Command;
3
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,eAAO,MAAM,eAAe,QAAO,OAgGlC,CAAA"}
@@ -0,0 +1,105 @@
1
+ import { CliError } from "@wirecat/cli-core";
2
+ import { deleteCommand, editCommand, forwardCommand, pinCommand, sendCommand, messagesCommand as sharedMessagesCommand, unpinCommand, } from "@wirecat/cli-messaging/cli";
3
+ import { Command } from "commander";
4
+ import { maxMessenger, sharedSubcommand } from "../messenger.js";
5
+ import { maxRecord } from "../record.js";
6
+ import { notDownloaded, transcribe } from "../transcribe/index.js";
7
+ import { isInstalled, modelsDirectory } from "../transcribe/install.js";
8
+ import { speechModel } from "../transcribe/models.js";
9
+ import { forCommand } from "./context.js";
10
+ export const messagesCommand = () => {
11
+ const command = new Command("messages").description("read and send messages in a chat");
12
+ const shared = sharedMessagesCommand(maxMessenger);
13
+ for (const name of ["list", "show", "context", "links"])
14
+ command.addCommand(sharedSubcommand(shared, name));
15
+ const list = command.commands.find((one) => one.name() === "list");
16
+ // MAX has no forum topics.
17
+ if (list)
18
+ Object.assign(list, { options: list.options.filter((option) => option.attributeName() !== "topic") });
19
+ const localLinks = sharedMessagesCommand({ ...maxMessenger, history: "store" });
20
+ command.addCommand(sharedSubcommand(localLinks, "link"));
21
+ const download = sharedSubcommand(shared, "download")
22
+ .option("--output <dir>", "compatibility alias for --output-dir")
23
+ .hook("preAction", (action) => {
24
+ const { output, outputDir } = action.opts();
25
+ if (output === undefined)
26
+ return;
27
+ if (action.getOptionValueSource("outputDir") !== "default" && outputDir !== output) {
28
+ throw new CliError("validation_error", "--output and --output-dir must name the same directory");
29
+ }
30
+ action.setOptionValue("outputDir", output);
31
+ });
32
+ command.addCommand(download);
33
+ command.addCommand(sharedSubcommand(shared, "evidence"));
34
+ /**
35
+ * **On this machine, and only with a model the owner downloaded** (`NEED-231`). The recording is
36
+ * fetched, the connection closed, and then the model runs — up to a minute for five minutes of
37
+ * speech, which should not hold a socket open.
38
+ */
39
+ command
40
+ .command("transcribe")
41
+ .argument("<chat>", "chat id, or part of a chat name")
42
+ .argument("<message>", "id of a voice message")
43
+ .description("turn a voice message into text, on this machine — the recording goes nowhere")
44
+ .option("--model <id>", "which downloaded speech model to use; `max models audio list` shows them")
45
+ .action(async function (chat, messageId) {
46
+ const { model: wanted } = this.opts();
47
+ const context = forCommand(this);
48
+ const { renderer, format, streams, settings, createClient, run } = context;
49
+ const model = speechModel(wanted ?? settings.transcribeModel);
50
+ const directory = modelsDirectory();
51
+ await run("messages transcribe", async (events) => {
52
+ const client = createClient({ events });
53
+ const record = maxRecord({ account: () => context.store.readState().viewerId });
54
+ try {
55
+ const chatId = await client.chats.resolve(chat);
56
+ if (!isInstalled(model, directory)) {
57
+ const kept = await record.transcript(chatId, messageId.trim());
58
+ if (kept?.source !== model.id)
59
+ throw notDownloaded(model);
60
+ }
61
+ const transcript = await transcribe(client, chatId, messageId.trim(), {
62
+ ...context.hearing,
63
+ model,
64
+ directory,
65
+ record,
66
+ release: async () => {
67
+ await client.close();
68
+ renderer.note(`transcribing with ${model.id} on this machine`);
69
+ },
70
+ });
71
+ if (format === "pretty")
72
+ streams.data(`${transcript.text}\n`);
73
+ else
74
+ renderer.result(transcript);
75
+ }
76
+ finally {
77
+ try {
78
+ await client.close();
79
+ }
80
+ finally {
81
+ await record.close();
82
+ }
83
+ }
84
+ });
85
+ });
86
+ const send = sendCommand(maxMessenger);
87
+ Object.assign(send, {
88
+ options: send.options.filter((option) => !["spoiler", "captionAbove", "commentTo"].includes(option.attributeName())),
89
+ });
90
+ command.addCommand(send);
91
+ command.addCommand(sharedSubcommand(shared, "scheduled"));
92
+ command.addCommand(editCommand(maxMessenger));
93
+ const remove = deleteCommand(maxMessenger);
94
+ remove.registeredArguments[1]?.argParser((value, previous = []) => [
95
+ ...previous,
96
+ ...value.split(",").map((id) => id.trim()),
97
+ ]);
98
+ command.addCommand(remove);
99
+ command.addCommand(forwardCommand(maxMessenger));
100
+ command.addCommand(pinCommand(maxMessenger));
101
+ command.addCommand(unpinCommand(maxMessenger));
102
+ command.addCommand(sharedSubcommand(shared, "press"));
103
+ return command;
104
+ };
105
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare const modelsCommand: () => Command;
3
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,eAAO,MAAM,aAAa,QAAO,OAA4C,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { modelsCommand as sharedModelsCommand } from "@wirecat/cli-messaging/cli";
2
+ import { maxMessenger } from "../messenger.js";
3
+ export const modelsCommand = () => sharedModelsCommand(maxMessenger);
4
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA"}
@@ -0,0 +1,59 @@
1
+ import { type Renderer, type RenderFormat, type Streams } from "@wirecat/cli-core";
2
+ import type { Command } from "commander";
3
+ import type { Settings } from "../config.js";
4
+ import type { Page } from "../domain/models.js";
5
+ /** Checked while parsing, so the error can quote what was typed rather than the `NaN` it became. */
6
+ export declare const wholeNumber: (flag: string) => (value: string) => number;
7
+ /**
8
+ * The three flags every listing shares, so no command invents its own spelling of them.
9
+ *
10
+ * ⚠ **None of them gets a `default`.** With one, commander reports the flag as always given and a
11
+ * configured `limit` could never win it; the number lives once, in `resolveSettings`.
12
+ */
13
+ export declare const withPaging: (command: Command) => Command;
14
+ /**
15
+ * Which rows to ask the store for. `--all` means no limit, which the store reads as "everything".
16
+ *
17
+ * ⚠ **A page number over a live list can repeat or skip a row.** The order is most-recent-first,
18
+ * so a message arriving between page one and page two pushes somebody across the boundary. Every
19
+ * CLI that pages this way has this; it is in `--help` rather than engineered away.
20
+ */
21
+ export declare const window: ({ limit, page, all }: Settings) => {
22
+ limit?: number;
23
+ offset: number;
24
+ };
25
+ /**
26
+ * A list with no pages — folders, members, runs, everything a bot lists — in the envelope a paged
27
+ * one uses (`NEED-358`), so an agent reads one shape. `--jsonl` streams it and a person gets the table.
28
+ * `extra` goes beside it: a Bot API list paged by `marker` carries its marker and `hasMore`.
29
+ */
30
+ export declare const renderList: (renderer: Renderer, format: RenderFormat, items: readonly unknown[], extra?: {
31
+ hasMore?: boolean;
32
+ } & Record<string, unknown>) => void;
33
+ export declare const listed: (items: readonly unknown[]) => {
34
+ items: readonly unknown[];
35
+ page: number;
36
+ limit: number;
37
+ hasMore: boolean;
38
+ };
39
+ /**
40
+ * **One shape for every listing**, and the caller never has to work out which one it got.
41
+ *
42
+ * In the machine modes stdout carries the envelope. For a person it carries the table it always
43
+ * did, and the line about there being another page goes to **stderr** as a note — stdout is data
44
+ * in every mode, and a pager's hint is not data.
45
+ *
46
+ * It is a helper each command calls rather than something inside `renderer.result`, because
47
+ * `account show` and `session start` are not lists and keep answering a bare object.
48
+ */
49
+ export declare const renderPage: <T>({ renderer, format, settings, streams, }: {
50
+ renderer: Renderer;
51
+ format: RenderFormat;
52
+ settings: Settings;
53
+ streams: Streams;
54
+ }, { items, hasMore }: Page<T>, view?: (items: T[]) => string,
55
+ /** What to type for the rest, when the listing is not paged by `--page`. */
56
+ more?: (items: T[]) => string,
57
+ /** Fields beside the page in `--json`. */
58
+ extra?: object) => void;
59
+ //# sourceMappingURL=paging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paging.d.ts","sourceRoot":"","sources":["../../src/commands/paging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE/C,oGAAoG;AACpG,eAAO,MAAM,WAAW,SACf,MAAM,aACL,MAAM,KAAG,MAKhB,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,YAAa,OAAO,KAAG,OAIF,CAAA;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,yBAA0B,QAAQ,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAC3B,CAAA;AAE7D;;;;GAIG;AACH,eAAO,MAAM,UAAU,aACX,QAAQ,UACV,YAAY,SACb,SAAS,OAAO,EAAE,UAClB;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACrD,IAGF,CAAA;AAED,eAAO,MAAM,MAAM,UAAW,SAAS,OAAO,EAAE;;;;;CAA8D,CAAA;AAE9G;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,4CAMvB;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,sBACjE,IAAI,CAAC,CAAC,CAAC,SACpB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,MAAM;AAC7B,4EAA4E;OACrE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,MAAM;AAC7B,0CAA0C;QACnC,MAAM,KACZ,IAuBF,CAAA"}
@@ -0,0 +1,77 @@
1
+ import { CliError } from "@wirecat/cli-core";
2
+ /** Checked while parsing, so the error can quote what was typed rather than the `NaN` it became. */
3
+ export const wholeNumber = (flag) => (value) => {
4
+ if (!/^\d+$/.test(value.trim()) || Number(value) < 1) {
5
+ throw new CliError("validation_error", `${flag} takes a whole number from 1 upwards, not "${value}"`);
6
+ }
7
+ return Number(value);
8
+ };
9
+ /**
10
+ * The three flags every listing shares, so no command invents its own spelling of them.
11
+ *
12
+ * ⚠ **None of them gets a `default`.** With one, commander reports the flag as always given and a
13
+ * configured `limit` could never win it; the number lives once, in `resolveSettings`.
14
+ */
15
+ export const withPaging = (command) => command
16
+ .option("--limit <n>", "how many to show", wholeNumber("--limit"))
17
+ .option("--page <n>", "which page, starting at 1", wholeNumber("--page"))
18
+ .option("--all", "every row, no paging");
19
+ /**
20
+ * Which rows to ask the store for. `--all` means no limit, which the store reads as "everything".
21
+ *
22
+ * ⚠ **A page number over a live list can repeat or skip a row.** The order is most-recent-first,
23
+ * so a message arriving between page one and page two pushes somebody across the boundary. Every
24
+ * CLI that pages this way has this; it is in `--help` rather than engineered away.
25
+ */
26
+ export const window = ({ limit, page, all }) => all ? { offset: 0 } : { limit, offset: (page - 1) * limit };
27
+ /**
28
+ * A list with no pages — folders, members, runs, everything a bot lists — in the envelope a paged
29
+ * one uses (`NEED-358`), so an agent reads one shape. `--jsonl` streams it and a person gets the table.
30
+ * `extra` goes beside it: a Bot API list paged by `marker` carries its marker and `hasMore`.
31
+ */
32
+ export const renderList = (renderer, format, items, extra = {}) => {
33
+ if (format === "json")
34
+ renderer.result({ ...listed(items), ...extra });
35
+ else
36
+ renderer.stream(items);
37
+ };
38
+ export const listed = (items) => ({ items, page: 1, limit: items.length, hasMore: false });
39
+ /**
40
+ * **One shape for every listing**, and the caller never has to work out which one it got.
41
+ *
42
+ * In the machine modes stdout carries the envelope. For a person it carries the table it always
43
+ * did, and the line about there being another page goes to **stderr** as a note — stdout is data
44
+ * in every mode, and a pager's hint is not data.
45
+ *
46
+ * It is a helper each command calls rather than something inside `renderer.result`, because
47
+ * `account show` and `session start` are not lists and keep answering a bare object.
48
+ */
49
+ export const renderPage = ({ renderer, format, settings, streams, }, { items, hasMore }, view,
50
+ /** What to type for the rest, when the listing is not paged by `--page`. */
51
+ more,
52
+ /** Fields beside the page in `--json`. */
53
+ extra = {}) => {
54
+ if (format === "jsonl") {
55
+ renderer.stream(items);
56
+ if (!settings.all && hasMore)
57
+ renderer.note(more ? more(items) : `more — \`--page ${settings.page + 1}\` for the next`);
58
+ return;
59
+ }
60
+ if (format !== "pretty") {
61
+ renderer.result({
62
+ items,
63
+ page: settings.all ? 1 : settings.page,
64
+ limit: settings.all ? items.length : settings.limit,
65
+ hasMore: settings.all ? false : hasMore,
66
+ ...extra,
67
+ });
68
+ return;
69
+ }
70
+ if (view)
71
+ streams.data(view(items));
72
+ else
73
+ renderer.result(items);
74
+ if (!settings.all && hasMore)
75
+ renderer.note(more ? more(items) : `page ${settings.page} of more — \`--page ${settings.page + 1}\` for the next`);
76
+ };
77
+ //# sourceMappingURL=paging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paging.js","sourceRoot":"","sources":["../../src/commands/paging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * The chats this profile may send to. Off until the first `add`; `off` turns it off again.
4
+ *
5
+ * Scripts may change it too (`NEED-159` answers): the list stops a model that a message talked
6
+ * into writing somewhere, not an agent set on getting around it.
7
+ */
8
+ export declare const recipientsCommand: () => Command;
9
+ //# sourceMappingURL=recipients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipients.d.ts","sourceRoot":"","sources":["../../src/commands/recipients.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,OA8DpC,CAAA"}
@@ -0,0 +1,74 @@
1
+ import { CliError } from "@wirecat/cli-core";
2
+ import { annotate } from "@wirecat/cli-core/commands";
3
+ import { Command } from "commander";
4
+ import { recipientListFor } from "../sends.js";
5
+ import { forCommand } from "./context.js";
6
+ import { renderList } from "./paging.js";
7
+ /**
8
+ * The chats this profile may send to. Off until the first `add`; `off` turns it off again.
9
+ *
10
+ * Scripts may change it too (`NEED-159` answers): the list stops a model that a message talked
11
+ * into writing somewhere, not an agent set on getting around it.
12
+ */
13
+ export const recipientsCommand = () => {
14
+ const command = new Command("recipients").description("the chats this profile may send to, when the list is on");
15
+ command
16
+ .command("list")
17
+ .description("the chats on the list; empty and off until the first add")
18
+ .action(async function () {
19
+ const { settings, renderer, format, run } = forCommand(this);
20
+ await run("recipients list", async () => {
21
+ const chats = recipientListFor(settings.profile).read();
22
+ renderList(renderer, format, chats ?? []);
23
+ if (!chats)
24
+ renderer.note("the recipient list is off — this profile may send to any chat");
25
+ else if (chats.length === 0)
26
+ renderer.note("the recipient list is on and empty — this profile may send nowhere");
27
+ });
28
+ });
29
+ annotate(command.command("add"), { mutates: true, local: true })
30
+ .argument("<chat>", "chat id, or part of a chat name")
31
+ .description("allow sending to this chat; the first add turns the list on")
32
+ .action(async function (chat) {
33
+ const { settings, renderer, createClient, run } = forCommand(this);
34
+ await run("recipients add", async (events) => {
35
+ const client = createClient({ events });
36
+ try {
37
+ const found = await client.chats.show(chat);
38
+ const partnerId = found.kind === "dialog" ? await client.chats.partner(found.id) : undefined;
39
+ const added = recipientListFor(settings.profile).add({
40
+ id: found.id,
41
+ title: found.title,
42
+ ...(partnerId ? { partnerId } : {}),
43
+ addedAt: new Date().toISOString(),
44
+ });
45
+ renderer.result({ id: found.id, title: found.title, added });
46
+ }
47
+ finally {
48
+ await client.close();
49
+ }
50
+ });
51
+ });
52
+ annotate(command.command("remove"), { mutates: true, local: true })
53
+ .argument("<chat>", "chat id, or the title as the list shows it")
54
+ .description("stop allowing this chat; the list stays on")
55
+ .action(async function (chat) {
56
+ const { settings, renderer, run } = forCommand(this);
57
+ await run("recipients remove", async () => {
58
+ const gone = recipientListFor(settings.profile).remove(chat);
59
+ if (!gone)
60
+ throw new CliError("not_found", `${chat.trim()} is not on the recipient list of ${settings.profile}`);
61
+ renderer.result({ id: gone.id, title: gone.title, removed: true });
62
+ });
63
+ });
64
+ annotate(command.command("clear"), { mutates: true, local: true })
65
+ .description("empty the list and turn it off: this profile may send to any chat again")
66
+ .action(async function () {
67
+ const { settings, renderer, run } = forCommand(this);
68
+ await run("recipients clear", async () => {
69
+ renderer.result({ cleared: true, wasOn: recipientListFor(settings.profile).off() });
70
+ });
71
+ });
72
+ return command;
73
+ };
74
+ //# sourceMappingURL=recipients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipients.js","sourceRoot":"","sources":["../../src/commands/recipients.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const runsCommand: () => import("commander").Command;
2
+ //# sourceMappingURL=runs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,mCAAmC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { runsCommand as sharedRunsCommand } from "@wirecat/cli-messaging/cli";
2
+ import { MAX_APP } from "../app.js";
3
+ export const runsCommand = () => sharedRunsCommand(MAX_APP);
4
+ //# sourceMappingURL=runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare const sendsCommand: () => Command;
3
+ //# sourceMappingURL=sends.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sends.d.ts","sourceRoot":"","sources":["../../src/commands/sends.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,eAAO,MAAM,YAAY,QAAO,OAA2C,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { sendsCommand as sharedSendsCommand } from "@wirecat/cli-messaging/cli";
2
+ import { maxMessenger } from "../messenger.js";
3
+ export const sendsCommand = () => sharedSendsCommand(maxMessenger);
4
+ //# sourceMappingURL=sends.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sends.js","sourceRoot":"","sources":["../../src/commands/sends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,GAAY,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ import type { MaxClient } from "../client.js";
2
+ import type { SessionStore } from "../session/store.js";
3
+ export declare const serveMembers: ({ client, store, note, env, firstMs, everyMs, }: {
4
+ client: () => MaxClient | undefined;
5
+ store: SessionStore;
6
+ note: (line: string) => void;
7
+ env?: NodeJS.ProcessEnv;
8
+ firstMs?: number;
9
+ everyMs?: number;
10
+ }) => {
11
+ start: () => void;
12
+ stop: () => Promise<void>;
13
+ };
14
+ //# sourceMappingURL=serve-members.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-members.d.ts","sourceRoot":"","sources":["../../src/commands/serve-members.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAI7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,eAAO,MAAM,YAAY,oDAOtB;IACD,MAAM,EAAE,MAAM,SAAS,GAAG,SAAS,CAAA;IACnC,KAAK,EAAE,YAAY,CAAA;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;IAkCG,KAAK;IACL,IAAI;CAUP,CAAA"}
@@ -0,0 +1,54 @@
1
+ import { CliError } from "@wirecat/cli-core";
2
+ import { memberFetches } from "@wirecat/cli-messaging/cli";
3
+ import { chatsService, onlineDeps } from "@wirecat/cli-messaging/services";
4
+ import { openStore } from "@wirecat/cli-messaging/store";
5
+ import { maxAdapter } from "../adapter/max-adapter.js";
6
+ import { resolveSettings } from "../config.js";
7
+ import { maxMessenger } from "../messenger.js";
8
+ import { assertReadable } from "../permissions.js";
9
+ export const serveMembers = ({ client, store, note, env = process.env, firstMs, everyMs, }) => {
10
+ let opened;
11
+ const worker = memberFetches({
12
+ ...(firstMs === undefined ? {} : { firstMs }),
13
+ ...(everyMs === undefined ? {} : { everyMs }),
14
+ withStore: async (work) => {
15
+ const account = store.readState().viewerId;
16
+ if (!account)
17
+ throw new CliError("authentication_error", "the server has no account");
18
+ opened ??= openStore({ env });
19
+ return work(await opened, { provider: "max", account });
20
+ },
21
+ fetch: async (db, account, chatId) => {
22
+ assertReadable(resolveSettings({ profile: store.profile }, { env }), "chats.members.fetch");
23
+ const held = client();
24
+ if (!held)
25
+ throw new CliError("network_error", "the server is disconnected");
26
+ if (store.readState().viewerId !== account.account)
27
+ throw new CliError("authentication_error", "the server account changed");
28
+ // Reads use the held connection; the worker must never open its own login.
29
+ const guard = {
30
+ check: () => {
31
+ throw new CliError("permission_error", "member fetching cannot write");
32
+ },
33
+ record: () => { },
34
+ };
35
+ const deps = onlineDeps(maxMessenger, maxAdapter(held, store), guard, { profile: store.profile, env });
36
+ await chatsService({ ...deps, account: async () => account, store: async () => db }).fetchMembers(chatId, {});
37
+ },
38
+ // Provider errors may contain names or message text; only the category belongs in the log.
39
+ warn: () => note("daily member fetching failed; retry with `chats members fetch` or check server connectivity and permissions"),
40
+ });
41
+ return {
42
+ start: worker.start,
43
+ stop: async () => {
44
+ await worker.stop();
45
+ if (opened) {
46
+ const db = opened;
47
+ opened = undefined;
48
+ const connection = await db.catch(() => undefined);
49
+ await connection?.close();
50
+ }
51
+ },
52
+ };
53
+ };
54
+ //# sourceMappingURL=serve-members.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-members.js","sourceRoot":"","sources":["../../src/commands/serve-members.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /** Needs no MAX connection, so it runs beside the server rather than inside it. */
2
+ export declare const serveStems: ({ note, env }: {
3
+ note: (line: string) => void;
4
+ env?: NodeJS.ProcessEnv;
5
+ }) => {
6
+ start: () => void;
7
+ stop: () => Promise<void>;
8
+ };
9
+ //# sourceMappingURL=serve-stems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-stems.d.ts","sourceRoot":"","sources":["../../src/commands/serve-stems.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,eAAO,MAAM,UAAU,kBAAiC;IAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE;IAU7G,KAAK;IACL,IAAI;CAUP,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { stemFills } from "@wirecat/cli-messaging/cli";
2
+ import { openStore } from "@wirecat/cli-messaging/store";
3
+ /** Needs no MAX connection, so it runs beside the server rather than inside it. */
4
+ export const serveStems = ({ note, env = process.env }) => {
5
+ let opened;
6
+ const worker = stemFills({
7
+ withStore: async (work) => {
8
+ opened ??= openStore({ env });
9
+ return work(await opened);
10
+ },
11
+ warn: () => note("filling search stems failed; `max store migrate` finishes them"),
12
+ });
13
+ return {
14
+ start: worker.start,
15
+ stop: async () => {
16
+ await worker.stop();
17
+ if (opened) {
18
+ const db = opened;
19
+ opened = undefined;
20
+ const connection = await db.catch(() => undefined);
21
+ await connection?.close();
22
+ }
23
+ },
24
+ };
25
+ };
26
+ //# sourceMappingURL=serve-stems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-stems.js","sourceRoot":"","sources":["../../src/commands/serve-stems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAqB,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE3E,mFAAmF;AACnF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAA6D,EAAE,EAAE;IACnH,IAAI,MAAyC,CAAA;IAC7C,MAAM,MAAM,GAAG,SAAS,CAAC;QACvB,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACxB,MAAM,KAAK,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;YAC7B,OAAO,IAAI,CAAC,MAAM,MAAM,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gEAAgE,CAAC;KACnF,CAAC,CAAA;IACF,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YACnB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,EAAE,GAAG,MAAM,CAAA;gBACjB,MAAM,GAAG,SAAS,CAAA;gBAClB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAClD,MAAM,UAAU,EAAE,KAAK,EAAE,CAAA;YAC3B,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * `max serve` — stays up, holding one logged-in connection, until Ctrl-C (`MAX-16`).
4
+ *
5
+ * Typed by hand it runs in the foreground until stopped. **Any command that needs MAX starts one
6
+ * in the background when none is running** (`serve` setting, `--no-serve` to decline), and that
7
+ * one is given `--idle`, so it does not outlive the work that started it.
8
+ */
9
+ export declare const serveCommand: () => Command;
10
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAA;AAW3C;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,QAAO,OA6D1B,CAAA"}